diff lispref/display.texi @ 66979:05e8ff7121b4

mention :ignore-defface
author Chong Yidong <cyd@stupidchicken.com>
date Fri, 18 Nov 2005 02:51:12 +0000
parents 8ad92df59512
children 1afb65446eaf
line wrap: on
line diff
--- a/lispref/display.texi	Fri Nov 18 02:48:58 2005 +0000
+++ b/lispref/display.texi	Fri Nov 18 02:51:12 2005 +0000
@@ -1859,6 +1859,11 @@
 next face gets a chance.  However, the @code{default} face must
 specify all attributes.
 
+  Any attribute can have the value @code{:ignore-defface}.  The effect
+of this is identical to @code{unspecified}.  It exists because of an
+technical ambiguity in giving attributes the value @code{unspecified}.
+@xref{Attribute Functions}.
+
   Some of these font attributes are meaningful only on certain kinds of
 displays---if your display cannot handle a certain attribute, the
 attribute is ignored.  (The attributes @code{:family}, @code{:width},
@@ -2051,6 +2056,14 @@
 for frame @var{frame}.  If @var{frame} is @code{nil}, it sets
 the attribute for all frames, and the defaults for new frames.
 
+Unless you know what you're doing, don't set an attribute to
+@code{unspecified}.  This is ambiguous---it is unclear whether it
+means to unspecify the value stored in the frame-local copies of the
+face (which means reverting to the original face spec), or the value
+in the face spec itself.  What you probably want is to set the
+attribute to @code{:ignore-defface}.  This forces the attribute value
+to be acquired from some other face during face merging.
+
 The extra arguments @var{arguments} specify the attributes to set, and
 the values for them.  They should consist of alternating attribute names
 (such as @code{:family} or @code{:underline}) and corresponding values.