changeset 3666:3214dca89755

[xemacs-hg @ 2006-11-07 15:58:21 by stephent] Revert inadvertant commits to unicode.el, font-mgr.h, and lread.c.
author stephent
date Tue, 07 Nov 2006 15:58:24 +0000
parents 5724b7632db3
children 4c8ad140bcec
files lisp/unicode.el src/font-mgr.h src/lread.c
diffstat 3 files changed, 69 insertions(+), 35 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/unicode.el	Tue Nov 07 15:54:47 2006 +0000
+++ b/lisp/unicode.el	Tue Nov 07 15:58:24 2006 +0000
@@ -283,38 +283,6 @@
 	  "Sorry, encode-char doesn't yet support anything but the UCS.  ")
   (char-to-unicode char))
 
-(when (featurep 'mule)
-  ;; This CCL program is used for displaying the fallback UCS character set,
-  ;; and can be repurposed to lao and the IPA, all going well.
-  ;;
-  ;; define-ccl-program is available after mule-ccl is loaded, much later
-  ;; than this file in the build process. The below is the result of 
-  ;;
-  ;;   (macroexpand 
-  ;;    '(define-ccl-program ccl-encode-to-ucs-2
-  ;;      `(1
-  ;;        ((r1 = (r1 << 8))
-  ;; 	     (r1 = (r1 | r2))
-  ;; 	     (mule-to-unicode r0 r1)
-  ;; 	     (r1 = (r0 >> 8))
-  ;; 	     (r2 = (r0 & 255))))
-  ;;      "CCL program to transform Mule characters to UCS-2."))
-  ;;
-  ;; and it should occasionally be confirmed that the correspondence still
-  ;; holds.
-
-  (let ((prog [1 10 131127 8 98872 65823 147513 8 82009 255 22]))
-    (defconst ccl-encode-to-ucs-2 prog 
-      "CCL program to transform Mule characters to UCS-2.")
-    (put (quote ccl-encode-to-ucs-2) (quote ccl-program-idx) 
-	 (register-ccl-program (quote ccl-encode-to-ucs-2) prog)) nil))
-
-;; Won't do this just yet, though. 
-;; (set-charset-registry 'lao "iso10646-1")
-;; (set-charset-ccl-program 'lao 'ccl-encode-to-ucs-2)
-;; (set-charset-registry 'ipa "iso10646-1")
-;; (set-charset-ccl-program 'ipa 'ccl-encode-to-ucs-2)
-
 ;; #### UTF-7 is not yet implemented, and it's tricky to do.  There's
 ;; an implementation in appendix A.1 of the Unicode Standard, Version
 ;; 2.0, but I don't know its licensing characteristics.
--- a/src/font-mgr.h	Tue Nov 07 15:54:47 2006 +0000
+++ b/src/font-mgr.h	Tue Nov 07 15:58:24 2006 +0000
@@ -68,4 +68,73 @@
 #define CONCHECK_FCPATTERN(x) CONCHECK_RECORD (x, fc_pattern)
 #define XFCPATTERN_PTR(x) (XFCPATTERN(x)->fcpatPtr)
 
+#ifdef USE_XFT
+/*
+  The format of a fontname (as returned by fontconfig) is not well-documented,
+  But the character repertoire is represented in an ASCII-compatible way.  See
+  fccharset.c (FcCharSetUnparse).  So we can use UTF-8 for long names.
+
+  Currently we have a hack where different versions of the unparsed name are
+  used in different contexts fairly arbitrarily.  I don't think this is close
+  to coherency; even without the charset and lang properties fontconfig names
+  are too unwieldy to use.  We need to rethink the approach here.  I think
+  probably Lisp_Font_Instance.name should contain the font name as specified
+  to Lisp (almost surely much shorter than shortname, even, and most likely
+  wildcarded), while Lisp_Font_Instance.truename should contain the longname.
+  For now, I'm going to #ifdef the return values defaulting to short. -- sjt
+*/
+
+/*                DEBUGGING STUFF                */
+
+/* print message to stderr: one internal-format string argument */
+#define DEBUG_XFT0(level,s)		\
+  if (debug_xft > level) stderr_out (s)
+
+/* print message to stderr: one formatted argument */
+#define DEBUG_XFT1(level,format,x1)		\
+  if (debug_xft > level) stderr_out (format, x1)
+
+/* print message to stderr: two formatted arguments */
+#define DEBUG_XFT2(level,format,x1,x2)			\
+  if (debug_xft > level) stderr_out (format, x1, x2)
+
+/* print message to stderr: three formatted arguments */
+#define DEBUG_XFT3(level,format,x1,x2,x3)			\
+  if (debug_xft > level) stderr_out (format, x1, x2, x3)
+
+/* print message to stderr: four formatted arguments */
+#define DEBUG_XFT4(level,format,x1,x2,x3,x4)			\
+  if (debug_xft > level) stderr_out (format, x1, x2, x3, x4)
+
+/* print an Xft pattern to stderr
+   LEVEL is the debug level (to compare to debug_xft)
+   FORMAT is a newline-terminated printf format with one %s for the pattern
+     and must be internal format (eg, pure ASCII)
+   PATTERN is an FcPattern *. */
+#define PRINT_XFT_PATTERN(level,format,pattern)			\
+  do {								\
+    DECLARE_EISTRING (eistrpxft_name);				\
+    FcChar8 *name = FcNameUnparse (pattern);			\
+								\
+    eicpy_ext(eistrpxft_name, name, Qfc_font_name_encoding);	\
+    DEBUG_XFT1 (level, format, eidata(eistrpxft_name));		\
+    free (name);						\
+  } while (0)
+
+/* print a progress message
+   LEVEL is the debug level (to compare to debug_xft)
+   FONT is the Xft font name in UTF-8 (the native encoding of Xft)
+   LANG is the language being checked for support (must be ASCII). */
+#define CHECKING_LANG(level,font,lang)					\
+  do {									\
+    DECLARE_EISTRING (eistrcl_name);					\
+    eicpy_ext(eistrcl_name, font, Qfc_font_name_encoding);		\
+    DEBUG_XFT2 (level, "checking if %s handles %s\n",			\
+			eidata(eistrcl_name), lang);			\
+  } while (0)
+
+#else /* USE_XFT */
+
+#endif /* USE_XFT */
+
 #endif /* INCLUDED_font_mgr_h_ */
--- a/src/lread.c	Tue Nov 07 15:54:47 2006 +0000
+++ b/src/lread.c	Tue Nov 07 15:58:24 2006 +0000
@@ -1720,9 +1720,6 @@
 {
   /* This function can GC */
   Ichar c = readchar (readcharfun);
-  /* \u allows up to four hex digits, \U up to eight. Default to the
-     behaviour for \u, and change this value in the case that \U is seen. */
-  int unicode_hex_count = 4;
 
   if (c < 0)
     signal_error (Qend_of_file, 0, READCHARFUN_MAYBE (readcharfun));