(eval-defun-1): Add `defface'. Fix docstring.
This commit is contained in:
parent
2736c90501
commit
217297f8ec
1 changed files with 11 additions and 3 deletions
|
@ -570,8 +570,9 @@ Interactively, with prefix argument, print output into current buffer."
|
|||
value)))
|
||||
|
||||
(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))))
|
||||
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))
|
||||
form)
|
||||
((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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue