]> code.delx.au - gnu-emacs/commit
Revamp face-spec-set to be more analogous to setq for faces.
authorChong Yidong <cyd@gnu.org>
Sun, 25 Nov 2012 04:50:20 +0000 (12:50 +0800)
committerChong Yidong <cyd@gnu.org>
Sun, 25 Nov 2012 04:50:20 +0000 (12:50 +0800)
commit1c4f115d4c4eb1aa71c25d21e8bdec2f8da97700
tree8fb4e906b3cc5455ab45383267eac3c49da5ef44
parent61d841dd15f1f9921e23d93e8a0c282fe568aed1
Revamp face-spec-set to be more analogous to setq for faces.

* lisp/faces.el (face-spec-set): Change the third arg to specify
whether this function is being called via defface, customize, or a
third party.  Set the appropriate symbol properties.  Clear the
override spec if setting via Custom.  Initialize face if necessary.
(face-spec-recalc): Allow theme faces to completely replace the
defface spec, in the same way as custom faces (Bug#8454).

* lisp/cus-edit.el (custom-face-set, custom-face-mark-to-save)
(custom-face-reset-saved, custom-face-mark-to-reset-standard):
Simplify by using the new arg to face-spec-set.

* lisp/cus-face.el (custom-declare-face): Move face initialization to
face-spec-set.
(custom-theme-set-faces): Don't initialize the face name here, as
that is now done in face-spec-set.

* lisp/emacs-lisp/lisp-mode.el (eval-defun-1): When evaluating defface,
reset face-override-spec too, and use custom-declare-face.

Fixes: debbugs:4988
etc/NEWS
lisp/ChangeLog
lisp/cus-edit.el
lisp/cus-face.el
lisp/emacs-lisp/lisp-mode.el
lisp/faces.el