diff options
author | Damyan Pepper <damyanp@gmail.com> | 2010-10-13 16:07:28 +0200 |
---|---|---|
committer | Juanma Barranquero <lekktu@gmail.com> | 2010-10-13 16:07:28 +0200 |
commit | 9fa828240d621736a61f5938f78cc98805fdcf56 (patch) | |
tree | 799e6075c0e1a467522070c065165b5aeac32f95 /src/ftfont.c | |
parent | 7163badd35f9dc49dc5c0a26d2c037f8d4fb5ee7 (diff) | |
download | emacs-9fa828240d621736a61f5938f78cc98805fdcf56.tar.gz |
Fix handling of font properties on Windows (bug#6303).
* src/font.c (font_filter_properties): New function, refactored from
ftfont_filter_properties.
* src/font.h (font_filter_properties): Declare.
* src/ftfont.c (ftfont_filter_properties): Use font_filter_properties.
* src/w32font.c (w32font_booleans, w32font_non_booleans): New variables.
(w32font_filter_properties): New function.
(w32font_driver): Add w32font_filter_properties.
Diffstat (limited to 'src/ftfont.c')
-rw-r--r-- | src/ftfont.c | 43 |
1 files changed, 4 insertions, 39 deletions
diff --git a/src/ftfont.c b/src/ftfont.c index 33a96143fd0..4699c74470f 100644 --- a/src/ftfont.c +++ b/src/ftfont.c @@ -88,7 +88,7 @@ static Lisp_Object ftfont_lookup_cache P_ ((Lisp_Object, enum ftfont_cache_for)); static void ftfont_filter_properties P_ ((Lisp_Object font, Lisp_Object alist)); - + Lisp_Object ftfont_font_format P_ ((FcPattern *, Lisp_Object)); #define SYMBOL_FcChar8(SYM) (FcChar8 *) SDATA (SYMBOL_NAME (SYM)) @@ -264,7 +264,7 @@ ftfont_pattern_entity (p, extra) else { /* As this font is not scalable, parhaps this is a BDF or PCF - font. */ + font. */ FT_Face ft_face; ASET (entity, FONT_ADSTYLE_INDEX, get_adstyle_property (p)); @@ -2113,7 +2113,7 @@ ftfont_drive_otf (font, spec, in, from, to, out, adjustment) return to; } -static int +static int ftfont_try_otf (MFLTFont *font, MFLTOtfSpec *spec, MFLTGlyphString *in, int from, int to) { @@ -2681,42 +2681,7 @@ ftfont_filter_properties (font, alist) Lisp_Object font; Lisp_Object alist; { - Lisp_Object it; - int i; - - /* Set boolean values to Qt or Qnil */ - for (i = 0; ftfont_booleans[i] != NULL; ++i) - for (it = alist; ! NILP (it); it = XCDR (it)) - { - Lisp_Object key = XCAR (XCAR (it)); - Lisp_Object val = XCDR (XCAR (it)); - char *keystr = SDATA (SYMBOL_NAME (key)); - - if (strcmp (ftfont_booleans[i], keystr) == 0) - { - char *str = SYMBOLP (val) ? SDATA (SYMBOL_NAME (val)) : NULL; - if (INTEGERP (val)) str = XINT (val) != 0 ? "true" : "false"; - if (str == NULL) str = "true"; - - val = Qt; - if (strcmp ("false", str) == 0 || strcmp ("False", str) == 0 - || strcmp ("FALSE", str) == 0 || strcmp ("FcFalse", str) == 0 - || strcmp ("off", str) == 0 || strcmp ("OFF", str) == 0 - || strcmp ("Off", str) == 0) - val = Qnil; - Ffont_put (font, key, val); - } - } - - for (i = 0; ftfont_non_booleans[i] != NULL; ++i) - for (it = alist; ! NILP (it); it = XCDR (it)) - { - Lisp_Object key = XCAR (XCAR (it)); - Lisp_Object val = XCDR (XCAR (it)); - char *keystr = SDATA (SYMBOL_NAME (key)); - if (strcmp (ftfont_non_booleans[i], keystr) == 0) - Ffont_put (font, key, val); - } + font_filter_properties (font, alist, ftfont_booleans, ftfont_non_booleans); } |