# HG changeset patch # User Chong Yidong # Date 1132282272 0 # Node ID 05e8ff7121b420878256166c810bda450b109845 # Parent 40cc5f0fb3791ae803552781a4ba0d6e4d9dab14 mention :ignore-defface diff -r 40cc5f0fb379 -r 05e8ff7121b4 etc/NEWS --- 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: +++ diff -r 40cc5f0fb379 -r 05e8ff7121b4 lispref/ChangeLog --- 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 + + * display.texi (Attribute Functions): Mention :ignore-defface. + 2005-11-16 Stefan Monnier * modes.texi (Minor Mode Conventions): Use custom-set-minor-mode. diff -r 40cc5f0fb379 -r 05e8ff7121b4 lispref/display.texi --- 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.