]> git.eshelyaron.com Git - emacs.git/commitdiff
(Finternal_merge_in_global_face): Don't realize default face if it
authorChong Yidong <cyd@stupidchicken.com>
Sat, 5 Jul 2008 21:16:05 +0000 (21:16 +0000)
committerChong Yidong <cyd@stupidchicken.com>
Sat, 5 Jul 2008 21:16:05 +0000 (21:16 +0000)
didn't already exist.

src/xfaces.c

index 8482608832a899747e8ac8dc3b75f89599629d99..382e13276791f03b71e7aa19c8a77a5bcf23c81a 100644 (file)
@@ -3971,22 +3971,26 @@ Default face attributes override any local face attributes.  */)
       struct face *newface, *oldface = FACE_FROM_ID (f, DEFAULT_FACE_ID);
       Lisp_Object attrs[LFACE_VECTOR_SIZE];
 
-      bcopy (oldface->lface, attrs, sizeof attrs);
-      merge_face_vectors (f, lvec, attrs, 0);
-      newface = realize_face (c, attrs, DEFAULT_FACE_ID);
-
-      if ((! UNSPECIFIEDP (gvec[LFACE_FAMILY_INDEX])
-          || ! UNSPECIFIEDP (gvec[LFACE_FOUNDRY_INDEX])
-          || ! UNSPECIFIEDP (gvec[LFACE_HEIGHT_INDEX])
-          || ! UNSPECIFIEDP (gvec[LFACE_WEIGHT_INDEX])
-          || ! UNSPECIFIEDP (gvec[LFACE_SLANT_INDEX])
-          || ! UNSPECIFIEDP (gvec[LFACE_SWIDTH_INDEX])
-          || ! UNSPECIFIEDP (gvec[LFACE_FONT_INDEX]))
-         && newface->font)
+      /* This can be NULL (e.g., in batch mode).  */
+      if (oldface)
        {
-         Lisp_Object name = newface->font->props[FONT_NAME_INDEX];
-         Fmodify_frame_parameters (frame, Fcons (Fcons (Qfont, name),
-                                                 Qnil));
+         bcopy (oldface->lface, attrs, sizeof attrs);
+         merge_face_vectors (f, lvec, attrs, 0);
+         newface = realize_face (c, attrs, DEFAULT_FACE_ID);
+
+         if ((! UNSPECIFIEDP (gvec[LFACE_FAMILY_INDEX])
+              || ! UNSPECIFIEDP (gvec[LFACE_FOUNDRY_INDEX])
+              || ! UNSPECIFIEDP (gvec[LFACE_HEIGHT_INDEX])
+              || ! UNSPECIFIEDP (gvec[LFACE_WEIGHT_INDEX])
+              || ! UNSPECIFIEDP (gvec[LFACE_SLANT_INDEX])
+              || ! UNSPECIFIEDP (gvec[LFACE_SWIDTH_INDEX])
+              || ! UNSPECIFIEDP (gvec[LFACE_FONT_INDEX]))
+             && newface->font)
+           {
+             Lisp_Object name = newface->font->props[FONT_NAME_INDEX];
+             Fmodify_frame_parameters (frame, Fcons (Fcons (Qfont, name),
+                                                     Qnil));
+           }
        }
     }