(Fface_attribute_relative_p, Fmerge_face_attribute): Handle
authorChong Yidong <cyd@stupidchicken.com>
Fri, 18 Nov 2005 03:55:45 +0000 (03:55 +0000)
committerChong Yidong <cyd@stupidchicken.com>
Fri, 18 Nov 2005 03:55:45 +0000 (03:55 +0000)
Qignore_defface as a possible value.

src/ChangeLog
src/xfaces.c

index dcdc481..078164c 100644 (file)
@@ -3,9 +3,10 @@
        * xfaces.c (Qignore_defface): New variable.
        (syms_of_xfaces): Provide `:ignore-defface'.
        (IGNORE_DEFFACE_P): New macro.
-       (check_lface_attrs): Qignore_defface is a possible value.
-       (lface_fully_specified_p): Likewise.
-       (Finternal_set_lisp_face_attribute): Likewise.
+       (check_lface_attrs, lface_fully_specified_p)
+       (Finternal_set_lisp_face_attribute)
+       (Fface_attribute_relative_p, Fmerge_face_attribute): Handle
+       Qignore_defface as a possible value.
        (merge_face_vectors): The merged face is `unspecified' if the
        mergee specifies `:ignore-defface'.
 
index aafa9e5..89fad41 100644 (file)
@@ -4794,7 +4794,7 @@ DEFUN ("face-attribute-relative-p", Fface_attribute_relative_p,
      (attribute, value)
      Lisp_Object attribute, value;
 {
-  if (EQ (value, Qunspecified))
+  if (EQ (value, Qunspecified) || (EQ (value, Qignore_defface)))
     return Qt;
   else if (EQ (attribute, QCheight))
     return INTEGERP (value) ? Qnil : Qt;
@@ -4810,7 +4810,7 @@ the result will be absolute, otherwise it will be relative.  */)
      (attribute, value1, value2)
      Lisp_Object attribute, value1, value2;
 {
-  if (EQ (value1, Qunspecified))
+  if (EQ (value1, Qunspecified) || EQ (value1, Qignore_defface))
     return value2;
   else if (EQ (attribute, QCheight))
     return merge_face_heights (value1, value2, value1);