* nsfont.m (ns_findfonts): Fix 2009-07-24 change to return only one element, not...
authorAdrian Robert <Adrian.B.Robert@gmail.com>
Wed, 29 Jul 2009 16:03:12 +0000 (16:03 +0000)
committerAdrian Robert <Adrian.B.Robert@gmail.com>
Wed, 29 Jul 2009 16:03:12 +0000 (16:03 +0000)
src/ChangeLog
src/nsfont.m

index 523f19f..989831d 100644 (file)
@@ -1,3 +1,8 @@
+2009-07-29  Adrian Robert  <Adrian.B.Robert@gmail.com>
+
+       * nsfont.m (ns_findfonts): Fix 2009-07-24 change to return only one
+       element, not a list, for match case.
+
 2009-07-28  Kenichi Handa  <handa@m17n.org>
 
        * font.c (font_parse_xlfd): Check DPI and AVGWIDTH properties more
index 89b4290..a4c4444 100644 (file)
@@ -464,7 +464,7 @@ ns_findfonts (Lisp_Object font_spec, BOOL isMatch)
     /* If has non-unicode registry, give up. */
     tem = AREF (font_spec, FONT_REGISTRY_INDEX);
     if (! NILP (tem) && !EQ (tem, Qiso10646_1) && !EQ (tem, Qunicode_bmp))
-       return isMatch ? Fcons (ns_fallback_entity (), list) : Qnil;
+       return isMatch ? ns_fallback_entity () : Qnil;
 
     cFamilies = ns_get_covering_families (ns_get_req_script (font_spec), 0.90);
 
@@ -483,9 +483,12 @@ ns_findfonts (Lisp_Object font_spec, BOOL isMatch)
        if (![cFamilies containsObject:
                 [desc objectForKey: NSFontFamilyAttribute]])
            continue;
-       list = Fcons (ns_descriptor_to_entity (desc,
+        tem = ns_descriptor_to_entity (desc,
                                         AREF (font_spec, FONT_EXTRA_INDEX),
-                                        NULL), list);
+                                       NULL);
+        if (isMatch)
+          return tem;
+       list = Fcons (tem, list);
        if (fabs (ns_attribute_fvalue (desc, NSFontSlantTrait)) > 0.05)
            foundItal = YES;
       }
@@ -503,8 +506,8 @@ ns_findfonts (Lisp_Object font_spec, BOOL isMatch)
       }
 
     /* Return something if was a match and nothing found. */
-    if (isMatch && XINT (Flength (list)) == 0)
-      list = Fcons (ns_fallback_entity (), Qnil);
+    if (isMatch)
+      return ns_fallback_entity ();
 
     if (NSFONT_TRACE)
        fprintf (stderr, "    Returning %d entities.\n", XINT (Flength (list)));