Commit 217297f8 authored by Juri Linkov's avatar Juri Linkov
Browse files

(eval-defun-1): Add `defface'. Fix docstring.

parent 2736c905
......@@ -570,8 +570,9 @@ Interactively, with prefix argument, print output into current buffer."
(defun eval-defun-1 (form)
"Change defvar into defconst within FORM.
Likewise for other constructs as necessary."
"Treat some expressions specially.
Reset the `defvar' and `defcustom' variables to the initial value.
Reinitialize the face according to the `defface' specification."
;; The code in edebug-defun should be consistent with this, but not
;; the same, since this gets a macroexpended form.
(cond ((not (listp form))
......@@ -589,6 +590,13 @@ Likewise for other constructs as necessary."
;; Force variable to be bound.
(set-default (eval (nth 1 form)) (eval (nth 1 (nth 2 form))))
;; `defface' is macroexpanded to `custom-declare-face'.
((eq (car form) 'custom-declare-face)
;; Reset the face.
(put (eval (nth 1 form)) 'face-defface-spec nil)
(setq face-new-frame-defaults
(assq-delete-all (eval (nth 1 form)) face-new-frame-defaults))
((eq (car form) 'progn)
(cons 'progn (mapcar 'eval-defun-1 (cdr form))))
(t form)))
......@@ -624,7 +632,7 @@ Return the result of evaluation."
(setq beg (point))
(setq form (read (current-buffer)))
(setq end (point)))
;; Alter the form if necessary, changing defvar into defconst, etc.
;; Alter the form if necessary.
(setq form (eval-defun-1 (macroexpand form)))
(list beg end standard-output
`(lambda (ignore)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment