]> code.delx.au - gnu-emacs/blobdiff - src/font.c
Merge from emacs-24; up to 2014-07-21T01:34:03Z!monnier@iro.umontreal.ca
[gnu-emacs] / src / font.c
index 1324b6e99c2f08bf0319db3864f66ba41abeb619..8405065a0d0315acb1aa116ec546db62018b821b 100644 (file)
@@ -41,10 +41,6 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include TERM_HEADER
 #endif /* HAVE_WINDOW_SYSTEM */
 
-#ifndef MAX
-# define MAX(a, b) ((a) > (b) ? (a) : (b))
-#endif
-
 Lisp_Object Qopentype;
 
 /* Important character set strings.  */
@@ -367,7 +363,7 @@ font_style_to_value (enum font_property_index prop, Lisp_Object val,
     {
       int i, j;
       char *s;
-      Lisp_Object args[2], elt;
+      Lisp_Object elt;
 
       /* At first try exact match.  */
       for (i = 0; i < len; i++)
@@ -399,9 +395,9 @@ font_style_to_value (enum font_property_index prop, Lisp_Object val,
       eassert (len < 255);
       elt = Fmake_vector (make_number (2), make_number (100));
       ASET (elt, 1, val);
-      args[0] = table;
-      args[1] = Fmake_vector (make_number (1), elt);
-      ASET (font_style_table, prop - FONT_WEIGHT_INDEX, Fvconcat (2, args));
+      ASET (font_style_table, prop - FONT_WEIGHT_INDEX,
+           Fvconcat (2, ((Lisp_Object [])
+             { table, Fmake_vector (make_number (1), elt) })));
       return (100 << 8) | (i << 4);
     }
   else
@@ -1187,13 +1183,22 @@ font_parse_xlfd (char *name, ptrdiff_t len, Lisp_Object font)
        {
          val = prop[XLFD_ENCODING_INDEX];
          if (! NILP (val))
-           val = concat2 (build_local_string ("*-"), SYMBOL_NAME (val));
+           {
+             AUTO_STRING (stardash, "*-");
+             val = concat2 (stardash, SYMBOL_NAME (val));
+           }
        }
       else if (NILP (prop[XLFD_ENCODING_INDEX]))
-       val = concat2 (SYMBOL_NAME (val), build_local_string ("-*"));
+       {
+         AUTO_STRING (dashstar, "-*");
+         val = concat2 (SYMBOL_NAME (val), dashstar);
+       }
       else
-       val = concat3 (SYMBOL_NAME (val), build_local_string ("-"),
-                      SYMBOL_NAME (prop[XLFD_ENCODING_INDEX]));
+       {
+         AUTO_STRING (dash, "-");
+         val = concat3 (SYMBOL_NAME (val), dash,
+                        SYMBOL_NAME (prop[XLFD_ENCODING_INDEX]));
+       }
       if (! NILP (val))
        ASET (font, FONT_REGISTRY_INDEX, Fintern (val, Qnil));
 
@@ -1301,7 +1306,7 @@ font_unparse_xlfd (Lisp_Object font, int pixel_size, char *name, int nbytes)
   val = AREF (font, FONT_SIZE_INDEX);
   eassert (NUMBERP (val) || NILP (val));
   char font_size_index_buf[sizeof "-*"
-                          + MAX (INT_STRLEN_BOUND (EMACS_INT),
+                          + max (INT_STRLEN_BOUND (EMACS_INT),
                                  1 + DBL_MAX_10_EXP + 1)];
   if (INTEGERP (val))
     {
@@ -1789,10 +1794,8 @@ font_parse_family_registry (Lisp_Object family, Lisp_Object registry, Lisp_Objec
       p1 = strchr (p0, '-');
       if (! p1)
        {
-         if (SDATA (registry)[len - 1] == '*')
-           registry = concat2 (registry, build_local_string ("-*"));
-         else
-           registry = concat2 (registry, build_local_string ("*-*"));
+         AUTO_STRING (extra, ("*-*" + (len && p0[len - 1] == '*')));
+         registry = concat2 (registry, extra);
        }
       registry = Fdowncase (registry);
       ASET (font_spec, FONT_REGISTRY_INDEX, Fintern (registry, Qnil));
@@ -2685,7 +2688,7 @@ font_delete_unmatched (Lisp_Object vec, Lisp_Object spec, int size)
 {
   Lisp_Object entity, val;
   enum font_property_index prop;
-  int i;
+  ptrdiff_t i;
 
   for (val = Qnil, i = ASIZE (vec) - 1; i >= 0; i--)
     {
@@ -5019,7 +5022,7 @@ font_add_log (const char *action, Lisp_Object arg, Lisp_Object result)
   if (FONTP (arg))
     {
       Lisp_Object tail, elt;
-      Lisp_Object equalstr = build_local_string ("=");
+      AUTO_STRING (equalstr, "=");
 
       val = Ffont_xlfd_name (arg, Qt);
       for (tail = AREF (arg, FONT_EXTRA_INDEX); CONSP (tail);
@@ -5052,8 +5055,11 @@ font_add_log (const char *action, Lisp_Object arg, Lisp_Object result)
     {
       val = Ffont_xlfd_name (result, Qt);
       if (! FONT_SPEC_P (result))
-       val = concat3 (SYMBOL_NAME (AREF (result, FONT_TYPE_INDEX)),
-                      build_local_string (":"), val);
+       {
+         AUTO_STRING (colon, ":");
+         val = concat3 (SYMBOL_NAME (AREF (result, FONT_TYPE_INDEX)),
+                        colon, val);
+       }
       result = val;
     }
   else if (CONSP (result))