(ftfont_spec_pattern): Check each extra property value.
authorKenichi Handa <handa@m17n.org>
Fri, 28 Jan 2011 12:31:39 +0000 (21:31 +0900)
committerKenichi Handa <handa@m17n.org>
Fri, 28 Jan 2011 12:31:39 +0000 (21:31 +0900)
src/ChangeLog
src/ftfont.c

index d3ac1b3..5af18f3 100644 (file)
@@ -1,3 +1,8 @@
+2011-01-28  Kenichi Handa  <handa@m17n.org>
+
+       * ftfont.c (ftfont_spec_pattern): Check each extra property
+       value.
+
 2011-01-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * xdisp.c (safe_eval_handler): Distinguish symbols and strings.
index 9584422..a20f201 100644 (file)
@@ -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;