* xfaces.c (Finternal_set_lisp_face_attribute): Use
authorChong Yidong <cyd@stupidchicken.com>
Sun, 20 Nov 2005 15:22:31 +0000 (15:22 +0000)
committerChong Yidong <cyd@stupidchicken.com>
Sun, 20 Nov 2005 15:22:31 +0000 (15:22 +0000)
:ignore-defface for new frame defaults when `unspecified' is
supplied.
(Finternal_get_lisp_face_attribute): Hide :ignore-defface.

src/ChangeLog
src/xfaces.c

index 548b9b1..e70e00e 100644 (file)
@@ -1,3 +1,10 @@
+2005-11-20  Chong Yidong  <cyd@stupidchicken.com>
+
+       * xfaces.c (Finternal_set_lisp_face_attribute): Use
+       :ignore-defface for new frame defaults when `unspecified' is
+       supplied.
+       (Finternal_get_lisp_face_attribute): Hide :ignore-defface.
+
 2005-11-20  Juri Linkov  <juri@jurta.org>
 
        * charset.c (invalid_character): Use Lisp-readable syntax
index 89fad41..8729441 100644 (file)
@@ -4054,7 +4054,11 @@ FRAME 0 means change the face on all frames, and change the default
 
   /* Set lface to the Lisp attribute vector of FACE.  */
   if (EQ (frame, Qt))
-    lface = lface_from_face_name (NULL, face, 1);
+    {
+      lface = lface_from_face_name (NULL, face, 1);
+      if (UNSPECIFIEDP (value))
+       value = Qignore_defface;
+    }
   else
     {
       if (NILP (frame))
@@ -4880,6 +4884,9 @@ frames).  If FRAME is omitted or nil, use the selected frame.  */)
   else
     signal_error ("Invalid face attribute name", keyword);
 
+  if (IGNORE_DEFFACE_P (value))
+    return Qunspecified;
+
   return value;
 }