comparison lisp/emacs-lisp/lisp-mode.el @ 56686:c28ce21eb5ae

(eval-last-sexp): Don't cons a new symbol each time. (eval-last-sexp-fake-value): New variable.
author Richard M. Stallman <rms@gnu.org>
date Mon, 16 Aug 2004 22:44:11 +0000
parents 9650d55ad73d
children dcd7b1b4690d d8411455de48
comparison
equal deleted inserted replaced
56685:22f1ac802ffd 56686:c28ce21eb5ae
553 unabbreviated 553 unabbreviated
554 (buffer-substring-no-properties beg end)) 554 (buffer-substring-no-properties beg end))
555 )))) 555 ))))
556 556
557 557
558 (defvar eval-last-sexp-fake-value (make-symbol "t"))
559
558 (defun eval-last-sexp (eval-last-sexp-arg-internal) 560 (defun eval-last-sexp (eval-last-sexp-arg-internal)
559 "Evaluate sexp before point; print value in minibuffer. 561 "Evaluate sexp before point; print value in minibuffer.
560 Interactively, with prefix argument, print output into current buffer." 562 Interactively, with prefix argument, print output into current buffer."
561 (interactive "P") 563 (interactive "P")
562 (if (null eval-expression-debug-on-error) 564 (if (null eval-expression-debug-on-error)
563 (eval-last-sexp-1 eval-last-sexp-arg-internal) 565 (eval-last-sexp-1 eval-last-sexp-arg-internal)
564 (let ((old-value (make-symbol "t")) new-value value) 566 (let ((old-value eval-last-sexp-fake-value) new-value value)
565 (let ((debug-on-error old-value)) 567 (let ((debug-on-error old-value))
566 (setq value (eval-last-sexp-1 eval-last-sexp-arg-internal)) 568 (setq value (eval-last-sexp-1 eval-last-sexp-arg-internal))
567 (setq new-value debug-on-error)) 569 (setq new-value debug-on-error))
568 (unless (eq old-value new-value) 570 (unless (eq old-value new-value)
569 (setq debug-on-error new-value)) 571 (setq debug-on-error new-value))