]> git.eshelyaron.com Git - emacs.git/commitdiff
(Finternal_set_lisp_face_attribute): If FRAME is 0,
authorGerd Moellmann <gerd@gnu.org>
Thu, 7 Sep 2000 09:51:06 +0000 (09:51 +0000)
committerGerd Moellmann <gerd@gnu.org>
Thu, 7 Sep 2000 09:51:06 +0000 (09:51 +0000)
change face on all frames, and change the default for new frames.

src/xfaces.c

index ca7df408c2c3447232c2577a500e44491e3ef7ad..84f43d81d695a60ae36c87f5dd59f04cb4540c6a 100644 (file)
@@ -3631,10 +3631,11 @@ Value is TO.")
 DEFUN ("internal-set-lisp-face-attribute", Finternal_set_lisp_face_attribute,
        Sinternal_set_lisp_face_attribute, 3, 4, 0,
   "Set attribute ATTR of FACE to VALUE.\n\
-If optional argument FRAME is given, set the face attribute of face FACE\n\
-on that frame.  If FRAME is t, set the attribute of the default for face\n\
-FACE (for new frames).  If FRAME is omitted or nil, use the selected\n\
-frame.")
+FRAME being a frame means change the face on that frame.\n\
+FRAME nil means change change the face of the selected frame.\n\
+FRAME t means change the default for new frames.\n\
+FRAME 0 means change the face on all frames, and change the default\n\
+  for new frames.")
   (face, attr, value, frame)
      Lisp_Object face, attr, value, frame;
 {
@@ -3650,6 +3651,16 @@ frame.")
 
   face = resolve_face_name (face);
 
+  /* If FRAME is 0, change face on all frames, and change the
+     default for new frames.  */
+  if (INTEGERP (frame) && XINT (frame) == 0)
+    {
+      Lisp_Object tail;
+      FOR_EACH_FRAME (tail, frame)
+       Finternal_set_lisp_face_attribute (face, attr, value, frame);
+      return Finternal_set_lisp_face_attribute (face, attr, value, Qt);
+    }
+
   /* Set lface to the Lisp attribute vector of FACE.  */
   if (EQ (frame, Qt))
     lface = lface_from_face_name (NULL, face, 1);