diff options
author | Andreas Schwab <schwab@suse.de> | 2007-07-06 17:30:06 +0000 |
---|---|---|
committer | Andreas Schwab <schwab@suse.de> | 2007-07-06 17:30:06 +0000 |
commit | 01d4effe81aa809fdab0c483371bf15356cc4c43 (patch) | |
tree | 3c970a35566a563f1b819a8698b4047a17e9f477 /lisp/emacs-lisp | |
parent | 325ba046131c3366eded009f5b472cbf5b594dd0 (diff) | |
download | emacs-01d4effe81aa809fdab0c483371bf15356cc4c43.tar.gz emacs-01d4effe81aa809fdab0c483371bf15356cc4c43.tar.bz2 emacs-01d4effe81aa809fdab0c483371bf15356cc4c43.zip |
(eval-last-sexp): Avoid introducing any
dynamic bindings around the evaluation of the expression.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r-- | lisp/emacs-lisp/lisp-mode.el | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el index 164756dfdc3..73379a816d7 100644 --- a/lisp/emacs-lisp/lisp-mode.el +++ b/lisp/emacs-lisp/lisp-mode.el @@ -628,13 +628,13 @@ this command arranges for all errors to enter the debugger." (interactive "P") (if (null eval-expression-debug-on-error) (eval-last-sexp-1 eval-last-sexp-arg-internal) - (let ((old-value eval-last-sexp-fake-value) new-value value) - (let ((debug-on-error old-value)) - (setq value (eval-last-sexp-1 eval-last-sexp-arg-internal)) - (setq new-value debug-on-error)) - (unless (eq old-value new-value) - (setq debug-on-error new-value)) - value))) + (let ((value + (let ((debug-on-error eval-last-sexp-fake-value)) + (cons (eval-last-sexp-1 eval-last-sexp-arg-internal) + debug-on-error)))) + (unless (eq (cdr value) eval-last-sexp-fake-value) + (setq debug-on-error (cdr value))) + (car value)))) (defun eval-defun-1 (form) "Treat some expressions specially. |