]> git.eshelyaron.com Git - emacs.git/commitdiff
* emacs-lisp/lisp-mode.el (eval-defun-1): Update the documentation
authorLars Magne Ingebrigtsen <larsi@gnus.org>
Wed, 6 Jul 2011 16:46:27 +0000 (18:46 +0200)
committerLars Magne Ingebrigtsen <larsi@gnus.org>
Wed, 6 Jul 2011 16:46:27 +0000 (18:46 +0200)
of faces when `M-C-x'-ing their definitions.  Also
clean up the code slightly.

Fixes: debbugs:8378
lisp/ChangeLog
lisp/emacs-lisp/lisp-mode.el

index 080f9494996e644bb5f9909d1a6e2e1a311e97cc..a2b389f4fe4ff141a1320aeb0196c0ab5e24ccbb 100644 (file)
 
 2011-07-06  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
+       * emacs-lisp/lisp-mode.el (eval-defun-1): Update the documentation
+       of faces when `M-C-x'-ing their definitions (bug#8378).  Also
+       clean up the code slightly.
+
        * progmodes/grep.el (rgrep): Don't bind `process-connection-type',
        because that makes the colours go away.
 
index 32f67a173f991a701ae64f2a92060216d03b41be..c8620aaa439ba9254ad837c6061edac26f76d098 100644 (file)
@@ -789,25 +789,25 @@ Reinitialize the face according to the `defface' specification."
        ;; `defface' is macroexpanded to `custom-declare-face'.
        ((eq (car form) 'custom-declare-face)
         ;; Reset the face.
-        (setq face-new-frame-defaults
-              (assq-delete-all (eval (nth 1 form) lexical-binding)
-                                face-new-frame-defaults))
-        (put (eval (nth 1 form) lexical-binding) 'face-defface-spec nil)
-        ;; Setting `customized-face' to the new spec after calling
-        ;; the form, but preserving the old saved spec in `saved-face',
-        ;; imitates the situation when the new face spec is set
-        ;; temporarily for the current session in the customize
-        ;; buffer, thus allowing `face-user-default-spec' to use the
-        ;; new customized spec instead of the saved spec.
-        ;; Resetting `saved-face' temporarily to nil is needed to let
-        ;; `defface' change the spec, regardless of a saved spec.
-        (prog1 `(prog1 ,form
-                  (put ,(nth 1 form) 'saved-face
-                       ',(get (eval (nth 1 form) lexical-binding)
-                               'saved-face))
-                  (put ,(nth 1 form) 'customized-face
-                       ,(nth 2 form)))
-          (put (eval (nth 1 form) lexical-binding) 'saved-face nil)))
+        (let ((face-symbol (eval (nth 1 form) lexical-binding)))
+          (setq face-new-frame-defaults
+                (assq-delete-all face-symbol face-new-frame-defaults))
+          (put face-symbol 'face-defface-spec nil)
+          (put face-symbol 'face-documentation (nth 3 form))
+          ;; Setting `customized-face' to the new spec after calling
+          ;; the form, but preserving the old saved spec in `saved-face',
+          ;; imitates the situation when the new face spec is set
+          ;; temporarily for the current session in the customize
+          ;; buffer, thus allowing `face-user-default-spec' to use the
+          ;; new customized spec instead of the saved spec.
+          ;; Resetting `saved-face' temporarily to nil is needed to let
+          ;; `defface' change the spec, regardless of a saved spec.
+          (prog1 `(prog1 ,form
+                    (put ,(nth 1 form) 'saved-face
+                         ',(get face-symbol 'saved-face))
+                    (put ,(nth 1 form) 'customized-face
+                         ,(nth 2 form)))
+            (put face-symbol 'saved-face nil))))
        ((eq (car form) 'progn)
         (cons 'progn (mapcar 'eval-defun-1 (cdr form))))
        (t form)))