emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs/src ChangeLog xfaces.c


From: Chong Yidong
Subject: [Emacs-diffs] emacs/src ChangeLog xfaces.c
Date: Sat, 05 Dec 2009 20:16:45 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Chong Yidong <cyd>      09/12/05 20:16:44

Modified files:
        src            : ChangeLog xfaces.c 

Log message:
        * xfaces.c (Fx_family_fonts): Handle 2009-07-14 change to return
        value of font_list_entities (Bug#5085).

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/src/ChangeLog?cvsroot=emacs&r1=1.7909&r2=1.7910
http://cvs.savannah.gnu.org/viewcvs/emacs/src/xfaces.c?cvsroot=emacs&r1=1.442&r2=1.443

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/emacs/emacs/src/ChangeLog,v
retrieving revision 1.7909
retrieving revision 1.7910
diff -u -b -r1.7909 -r1.7910
--- ChangeLog   4 Dec 2009 16:16:26 -0000       1.7909
+++ ChangeLog   5 Dec 2009 20:16:42 -0000       1.7910
@@ -1,3 +1,8 @@
+2009-12-05  Chong Yidong  <address@hidden>
+
+       * xfaces.c (Fx_family_fonts): Handle 2009-07-14 change to return
+       value of font_list_entities (Bug#5085).
+
 2009-12-04  Juanma Barranquero  <address@hidden>
 
        Fix `string-to-number' to deal consistently with integers and floats.

Index: xfaces.c
===================================================================
RCS file: /sources/emacs/emacs/src/xfaces.c,v
retrieving revision 1.442
retrieving revision 1.443
diff -u -b -r1.442 -r1.443
--- xfaces.c    11 Nov 2009 06:10:45 -0000      1.442
+++ xfaces.c    5 Dec 2009 20:16:44 -0000       1.443
@@ -1745,8 +1745,8 @@
      (family, frame)
      Lisp_Object family, frame;
 {
-  Lisp_Object font_spec, vec;
-  int i, nfonts;
+  Lisp_Object font_spec, list, *drivers, vec;
+  int i, nfonts, ndrivers;
   Lisp_Object result;
 
   if (NILP (frame))
@@ -1759,12 +1759,12 @@
       CHECK_STRING (family);
       font_parse_family_registry (family, Qnil, font_spec);
     }
-  vec = font_list_entities (frame, font_spec);
-  nfonts = ASIZE (vec);
-  if (nfonts == 0)
+
+  list = font_list_entities (frame, font_spec);
+  if (NILP (list))
     return Qnil;
-  if (nfonts > 1)
-    {
+
+  /* Sort the font entities.  */
       for (i = 0; i < 4; i++)
        switch (font_sort_order[i])
          {
@@ -1782,9 +1782,15 @@
       font_props_for_sorting[i++] = FONT_ADSTYLE_INDEX;
       font_props_for_sorting[i++] = FONT_REGISTRY_INDEX;
 
+  ndrivers = XINT (Flength (list));
+  drivers  = alloca (sizeof (Lisp_Object) * ndrivers);
+  for (i = 0; i < ndrivers; i++, list = XCDR (list))
+    drivers[i] = XCAR (list);
+  vec = Fvconcat (ndrivers, drivers);
+  nfonts = ASIZE (vec);
+
       qsort (XVECTOR (vec)->contents, nfonts, sizeof (Lisp_Object),
             compare_fonts_by_sort_order);
-    }
 
   result = Qnil;
   for (i = nfonts - 1; i >= 0; --i)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]