From: Chong Yidong Date: Fri, 18 Nov 2005 02:51:12 +0000 (+0000) Subject: mention :ignore-defface X-Git-Tag: emacs-pretest-22.0.90~5800 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=ce8d4e00b726cbc3fa9debcc84f19f752cf81dca;p=emacs.git mention :ignore-defface --- diff --git a/etc/NEWS b/etc/NEWS index 290777ca7a8..d19051d8002 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -4935,6 +4935,11 @@ was inconsistent with the face behavior under X. *** `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 --git a/lispref/ChangeLog b/lispref/ChangeLog index d8014b27613..3e07a51a007 100644 --- a/lispref/ChangeLog +++ b/lispref/ChangeLog @@ -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 --git a/lispref/display.texi b/lispref/display.texi index 75a64924516..00d9313aa24 100644 --- a/lispref/display.texi +++ b/lispref/display.texi @@ -1859,6 +1859,11 @@ the first face fails to specify a particular attribute, that means the 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 @@ This function sets one or more attributes of face @var{face} 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.