changeset 31440:67f5b4186ed2

(Finternal_set_lisp_face_attribute): If FRAME is 0, change face on all frames, and change the default for new frames.
author Gerd Moellmann <gerd@gnu.org>
date Thu, 07 Sep 2000 09:51:06 +0000
parents d7a98f35b441
children 81039e21ffec
files src/xfaces.c
diffstat 1 files changed, 15 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/xfaces.c	Thu Sep 07 09:50:30 2000 +0000
+++ b/src/xfaces.c	Thu Sep 07 09:51:06 2000 +0000
@@ -3631,10 +3631,11 @@
 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 @@
 
   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);