changeset 66979:05e8ff7121b4

mention :ignore-defface
author Chong Yidong <cyd@stupidchicken.com>
date Fri, 18 Nov 2005 02:51:12 +0000
parents 40cc5f0fb379
children 22899a514a1c
files etc/NEWS lispref/ChangeLog lispref/display.texi
diffstat 3 files changed, 22 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/etc/NEWS	Fri Nov 18 02:48:58 2005 +0000
+++ b/etc/NEWS	Fri Nov 18 02:51:12 2005 +0000
@@ -4935,6 +4935,11 @@
 *** `set-fontset-font', `fontset-info', `fontset-font' now operate on
 the default fontset if the argument NAME is nil..
 
++++
+*** In `set-face-attribute', you can assign any attribute the value
+`:ignore-defface'.  This forces the attribute value to be acquired
+from some other face during face merging.
+
 ** Font-Lock changes:
 
 +++
--- a/lispref/ChangeLog	Fri Nov 18 02:48:58 2005 +0000
+++ b/lispref/ChangeLog	Fri Nov 18 02:51:12 2005 +0000
@@ -1,3 +1,7 @@
+2005-11-17  Chong Yidong  <cyd@stupidchicken.com>
+
+	* display.texi (Attribute Functions): Mention :ignore-defface.
+
 2005-11-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 
 	* modes.texi (Minor Mode Conventions): Use custom-set-minor-mode.
--- 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.