Subject: bug#10181: 24.0.92; [wishlist] split `diff-refine-change' in several faces

From: Juri Linkov <[email-masked]>
Date: Fri, 25 May 2012 23:35:58 +0300

> Good point.  We should change eval-defun-1 to look inside `progn'.
> Or alternatively, we should use eval-sexp-add-defvars after the
> macroexpand+specialcaseing.

`edebug-eval-defun' uses `eval-sexp-add-defvars' after the specialcaseing,
so `eval-defun-1' could do the same:

=== modified file 'lisp/emacs-lisp/lisp-mode.el'
--- lisp/emacs-lisp/lisp-mode.el	2012-05-24 23:24:47 +0000
+++ lisp/emacs-lisp/lisp-mode.el	2012-05-25 20:28:17 +0000
@@ -830,10 +830,10 @@ (defun eval-defun-2 ()
 	   (end-of-defun)
 	   (beginning-of-defun)
 	   (setq beg (point))
-	   (setq form (eval-sexp-add-defvars (read (current-buffer))))
+	   (setq form (read (current-buffer)))
 	   (setq end (point)))
 	 ;; Alter the form if necessary.
-	 (setq form (eval-defun-1 (macroexpand form)))
+	 (setq form (eval-sexp-add-defvars (eval-defun-1 (macroexpand form))))
 	 (list beg end standard-output
 	       `(lambda (ignore)
 		 ;; Skipping to the end of the specified region