Mercurial > emacs
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)) |