From 9e269017e71b8a8208cd2d51c90d8fc61e69182d Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Fri, 28 Jan 2011 21:31:39 +0900 Subject: [PATCH] (ftfont_spec_pattern): Check each extra property value. --- src/ChangeLog | 5 +++++ src/ftfont.c | 20 +++++++++++++------- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index d3ac1b31788..5af18f38877 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2011-01-28 Kenichi Handa + + * ftfont.c (ftfont_spec_pattern): Check each extra property + value. + 2011-01-28 Stefan Monnier * xdisp.c (safe_eval_handler): Distinguish symbols and strings. diff --git a/src/ftfont.c b/src/ftfont.c index 9584422fc06..a20f2013e5a 100644 --- a/src/ftfont.c +++ b/src/ftfont.c @@ -749,7 +749,10 @@ ftfont_spec_pattern (Lisp_Object spec, char *otlayout, struct OpenTypeSpec **ots key = XCAR (XCAR (extra)), val = XCDR (XCAR (extra)); if (EQ (key, QCdpi)) - dpi = XINT (val); + { + if (INTEGERP (val)) + dpi = XINT (val); + } else if (EQ (key, QClang)) { if (! langset) @@ -769,12 +772,15 @@ ftfont_spec_pattern (Lisp_Object spec, char *otlayout, struct OpenTypeSpec **ots } else if (EQ (key, QCotf)) { - *otspec = ftfont_get_open_type_spec (val); - if (! *otspec) - return NULL; - strcat (otlayout, "otlayout:"); - OTF_TAG_STR ((*otspec)->script_tag, otlayout + 9); - script = (*otspec)->script; + if (CONSP (val)) + { + *otspec = ftfont_get_open_type_spec (val); + if (! *otspec) + return NULL; + strcat (otlayout, "otlayout:"); + OTF_TAG_STR ((*otspec)->script_tag, otlayout + 9); + script = (*otspec)->script; + } } else if (EQ (key, QCscript)) script = val; -- 2.11.4.GIT