"Stephen J. Turnbull" <turnbull(a)sk.tsukuba.ac.jp> writes:
Yoshiki> Your comment here is clearly wrong.
Huh? This is an example of the kind of thing that Custom does; Custom
is far too complicated to precisely trace whether any particular
function is doing evil or not. That's what I said.
No. You wrote in previous message
;; Reset faces created during auto-autoloads loading.
(reset-face symbol) ;; <--- YOU LOSE LOSE LOSE
;; And set it according to the spec.
;; NOTE THAT THE SPEC IS CUSTOM INTERNAL DATA.
;; CALLING FACE MANIPULATION FUNCTIONS DIRECTLY (EG,
;; IN .emacs) DOES NOT UPDATE IT.
You don't lose here. It's not "a typical example of the
cavalier way that Custom insists on resetting faces whenever
it does any manipulations".
Yoshiki> It is called only before .emacs (or .xemacs/init.el)
Yoshiki> loaded and never called again.
Doesn't satisfy the condition I just wrote? The points are that
Yes it does. Sorry for not being clear. I wasn't arguing
that codition is wrong.
(1) Custom is _full_ of calls to reset-face type functions that
destroy user customizations unless they were made through Custom.
Not in this case. Suppose you use Alexander's .emacs and
opened a new frame. As he wrote, it's shown in default
face. Then evaluate (setq frame-background-mode 'dark) and
open another frame. It's displayed in right faces.
(2) Custom is _full_ of functions that masquerade as non-custom
functions, making it impossible to see which code is really basic
and which code is a Custom layer. lisp/faces.el in particular is
a completely mixed bag of functions, most of which now expect
Custom-style specifications, not XEmacs specifier-style
specifications. However, this is not reflected in their names or
docstrings (except indirectly via reference to "defface", which
itself is a Custom interface).
Agreed. I found it very hard to read.
>> One thing you can try is to make sure that any Custom
>> called _before_ you do your own face manipulations.
Yoshiki> The issue here is not the order of Custom and user
Of course it is one of the issues. There may be others, too. But if
you make sure you do your own setting after Custom does, your settings
will rule. If you don't, Custom reserves the right to trash them.
Always has before, and it is impossible to tell from the code in
faces.el just what Custom does respect nowadays.
You're mixing general arguments and specific ones. In
general your statement is probably correct but in this
specific case it's not. His .emacs doesn't contain anything
related to Custom.
Yoshiki> background color of default face.
This may also be a problem.
This is THE problem.
I think adjusting faces with respect to the default face's
is a very bad idea as a basic function; it should be done at a very
high level, such as Custom themes. At lower levels, functions should
do what the user says.
Hmm... Then what background spec of defface is for? I'm
not a particular fun of it, but I think it's useful.
I agree following general arguments so those are deleted.