diff options
author | Kenichi Handa <handa@m17n.org> | 2009-07-28 02:05:41 +0000 |
---|---|---|
committer | Kenichi Handa <handa@m17n.org> | 2009-07-28 02:05:41 +0000 |
commit | cdd29a5c0958812e4d06488b1050c540d438d15a (patch) | |
tree | 89276df8cd7c363d5e68f3aab7d1cdc8aec77148 | |
parent | b33f089c608a8b0c0b18ebc04b3d9354cb98d26a (diff) | |
download | emacs-cdd29a5c0958812e4d06488b1050c540d438d15a.tar.gz |
(font_parse_xlfd): Check DPI and AVGWIDTH properties more rigidly.
-rw-r--r-- | src/ChangeLog | 12 | ||||
-rw-r--r-- | src/font.c | 11 |
2 files changed, 20 insertions, 3 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 9d7a149b210..50cdcd733e8 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,15 @@ +2009-07-28 Kenichi Handa <handa@m17n.org> + + * font.c (font_parse_xlfd): Check DPI and AVGWIDTH properties more + rigidly. + + * xfont.c (xfont_list_pattern): Don't ignore the return value of + font_parse_xlfd. Check font properties more rigidly. + +2009-07-27 Kenichi Handa <handa@m17n.org> + + * xfaces.c (face_with_height): Call font_clear_prop. + 2009-07-26 Chong Yidong <cyd@stupidchicken.com> * nsfont.m (nsfont_draw): Revert 2009-07-15 change. diff --git a/src/font.c b/src/font.c index 6c2311cf236..8292a6e0354 100644 --- a/src/font.c +++ b/src/font.c @@ -1139,7 +1139,10 @@ font_parse_xlfd (name, font) } } - ASET (font, FONT_DPI_INDEX, INTERN_FIELD (XLFD_RESY_INDEX)); + val = INTERN_FIELD (XLFD_RESY_INDEX); + if (! NILP (val) && ! INTEGERP (val)) + return -1; + ASET (font, FONT_DPI_INDEX, val); val = INTERN_FIELD (XLFD_SPACING_INDEX); if (! NILP (val)) { @@ -1151,8 +1154,10 @@ font_parse_xlfd (name, font) p = f[XLFD_AVGWIDTH_INDEX]; if (*p == '~') p++; - ASET (font, FONT_AVGWIDTH_INDEX, - font_intern_prop (p, f[XLFD_REGISTRY_INDEX] - 1 - p, 0)); + val = font_intern_prop (p, f[XLFD_REGISTRY_INDEX] - 1 - p, 0); + if (! NILP (val) && ! INTEGERP (val)) + return -1; + ASET (font, FONT_AVGWIDTH_INDEX, val); } else { |