summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenichi Handa <handa@m17n.org>2009-07-28 02:05:41 +0000
committerKenichi Handa <handa@m17n.org>2009-07-28 02:05:41 +0000
commitcdd29a5c0958812e4d06488b1050c540d438d15a (patch)
tree89276df8cd7c363d5e68f3aab7d1cdc8aec77148
parentb33f089c608a8b0c0b18ebc04b3d9354cb98d26a (diff)
downloademacs-cdd29a5c0958812e4d06488b1050c540d438d15a.tar.gz
(font_parse_xlfd): Check DPI and AVGWIDTH properties more rigidly.
-rw-r--r--src/ChangeLog12
-rw-r--r--src/font.c11
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
{