• Chong Yidong's avatar
    Revamp face-spec-set to be more analogous to setq for faces. · 1c4f115d
    Chong Yidong authored
    * 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
    1c4f115d
faces.el 99.3 KB