>>>> "Per" == Per Abrahamsen
<abraham(a)dina.kvl.dk> writes:
"Stephen J. Turnbull" <turnbull(a)sk.tsukuba.ac.jp> writes:
> Huh? `face-spec-set' is user-visible, but it is also
> definitely part of the Custom interface[1] despite the name.
Per> The "custom interface" above refers to the UI. Not everybody
Per> likes to set preferences by pushing buttons and filling out
Per> forms.
Oh. I assumed you meant the API, because I'm not going to have any
reason to go anywhere near the UI.
Per> Whether you consider `face-spec-set' to be part custom or
Per> faces API is irrelevant, the important point is that it is
Per> not an _internal_ function, so its interface cannot be
Per> changed incompatibly.
OK. I'm not talking about changing its interface at all, I'm talking
about changing its semantics in one case, that is when it is applied
to the 'default face.
The change I am proposing (either to `reset-face' or to the way it is
called by `face-spec-set') is arguably consistent with the
documentation of the function `reset-face': `reset-face' resets a face
to inherit all values from 'default. This can be interpreted to be a
no-op in the case of 'default.
Jan Vroonhof points out that this interpretation may cause a problem
for Custom, in that the current assumption is that `face-spec-set'
will reset all properties of a face. For derived faces, this is true,
and Custom only sets properties which differ from 'default. For
'default itself, this means that the current value will not get reset;
this operation is not well-defined in the case of 'default in any
case. What do you think Custom should do here?
As far as I can tell, Custom is going to have to special-case 'default
and all custom-relevant properties no matter what; I think that it
should explicitly reset each property it knows about to `(get 'default
property-custom-default)' when it would otherwise use `reset-face' on
a derived face.
--
University of Tsukuba Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
Institute of Policy and Planning Sciences Tel/fax: +81 (298) 53-5091
__________________________________________________________________________
__________________________________________________________________________
What are those two straight lines for? "Free software rules."