Simplify redisplay-x/separate_textual_runs
Aidan Kehoe
kehoea at parhasard.net
Fri Mar 30 11:44:38 EDT 2007
Ar an triochadú lá de mí Márta, scríobh Aidan Kehoe:
> [...] You’ve just done that Unicode conversion to throw away the result.
> That’s not very constructive, since the XFT redisplay routines *require*
> that the supplied strings are Unicode. I’m fighting with Cygwin right now
> to get it to usefully install fontconfig so I can check this out for
> certain, but I believe strongly that this will break redisplay with
> non-Latin-1 characters under XFT and Mule.
Confirmed. Cf. http://mid.gmane.org/17780.28830.970989.79622@parhasard.net
if you’re not sure how to tell XEmacs to use reasonble non-Latin-1 fonts
with XFT. Since that link seems to be broken right now, here’s the code I
use:
(when (featurep 'xft)
(set-specifier
(face-font 'default)
(cons '(x)
(fc-name-unparse
(fc-font-match (selected-device)
(fc-name-parse "Monospace-11.5:lang=en")))))
(loop
for (tag-name regex size) in
'((zh-tw "^chinese-\\(big5\\|cns\\)" 18)
(zh "^chinese-" 18)
(ja "^\\(japanese\\|katakana\\)-" 18)
(ko "^korean-" 18)
(am "^ethiopic-" 18)
(vi "^vietnamese-" 14)
(el "^greek-" 12)
(ru "^cyrillic-" 12)
(hu "^latin-iso8859-2" 12)
(ar "^arabic-" 16))
do
(define-specifier-tag tag-name nil
(list 'lambda '(charset)
(list 'string-match regex
'(symbol-name (charset-name charset)))))
(set-face-font 'default
(fc-name-unparse
(fc-font-match
(selected-device)
(fc-name-parse
(format "-%d:lang=%s"
size tag-name))))
nil (list 'x tag-name) 'append)))
--
On the quay of the little Black Sea port, where the rescued pair came once
more into contact with civilization, Dobrinton was bitten by a dog which was
assumed to be mad, though it may only have been indiscriminating. (Saki)
More information about the XEmacs-Patches
mailing list