Mercurial > hg > xemacs-beta
changeset 3665:5724b7632db3
[xemacs-hg @ 2006-11-07 15:54:42 by stephent]
Try to kill src/xft-fonts.h permanently.
author | stephent |
---|---|
date | Tue, 07 Nov 2006 15:54:47 +0000 |
parents | 1d313cd71cd7 |
children | 3214dca89755 |
files | lisp/unicode.el src/font-mgr.h src/lread.c src/xft-fonts.h |
diffstat | 3 files changed, 35 insertions(+), 69 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/unicode.el Tue Nov 07 14:04:56 2006 +0000 +++ b/lisp/unicode.el Tue Nov 07 15:54:47 2006 +0000 @@ -283,6 +283,38 @@ "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 14:04:56 2006 +0000 +++ b/src/font-mgr.h Tue Nov 07 15:54:47 2006 +0000 @@ -68,73 +68,4 @@ #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 14:04:56 2006 +0000 +++ b/src/lread.c Tue Nov 07 15:54:47 2006 +0000 @@ -1720,6 +1720,9 @@ { /* 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));