Mercurial > emacs
changeset 95698:d87a51f8851f
(ftfont_spec_pattern): Accept the registry `ascii-0'.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Mon, 09 Jun 2008 07:16:15 +0000 |
parents | 419c6420a317 |
children | 0afdc320716c |
files | src/ftfont.c |
diffstat | 1 files changed, 28 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ftfont.c Mon Jun 09 07:14:37 2008 +0000 +++ b/src/ftfont.c Mon Jun 09 07:16:15 2008 +0000 @@ -490,6 +490,7 @@ registry = AREF (spec, FONT_REGISTRY_INDEX); if (NILP (registry) + || EQ (registry, Qascii_0) || EQ (registry, Qiso10646_1) || EQ (registry, Qunicode_bmp) || EQ (registry, Qunicode_sip)) @@ -669,6 +670,33 @@ fontset = FcFontList (NULL, pattern, objset); if (! fontset) goto err; +#if 0 + /* Need fix because this finds any fonts. */ + if (fontset->nfont == 0 && ! NILP (family)) + { + /* Try maching with configuration. For instance, the + configuration may specify "Nimbus Mono L" as an alias of + "Courier". */ + FcPattern *pat = FcPatternBuild (0, FC_FAMILY, FcTypeString, + SYMBOL_FcChar8 (family), NULL); + FcChar8 *fam; + + if (FcConfigSubstitute (NULL, pat, FcMatchPattern) == FcTrue) + { + for (i = 0; + FcPatternGetString (pat, FC_FAMILY, i, &fam) == FcResultMatch; + i++) + { + FcPatternDel (pattern, FC_FAMILY); + FcPatternAddString (pattern, FC_FAMILY, fam); + FcFontSetDestroy (fontset); + fontset = FcFontList (NULL, pattern, objset); + if (fontset->nfont > 0) + break; + } + } + } +#endif for (i = 0; i < fontset->nfont; i++) { Lisp_Object entity; @@ -1707,7 +1735,6 @@ ftfont_font_format (FcPattern *pattern) { FcChar8 *str; - int len; #ifdef FC_FONTFORMAT if (FcPatternGetString (pattern, FC_FONTFORMAT, 0, &str) != FcResultMatch)