summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r--lisp/emacs-lisp/lisp-mode.el50
1 files changed, 19 insertions, 31 deletions
diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el
index e9a05c5abca..4135c0f77e8 100644
--- a/lisp/emacs-lisp/lisp-mode.el
+++ b/lisp/emacs-lisp/lisp-mode.el
@@ -200,46 +200,34 @@ if that value is non-nil."
(lisp-mode-variables nil)
(run-hooks 'lisp-interaction-mode-hook))
-(defun eval-print-last-sexp (arg)
+(defun eval-print-last-sexp ()
"Evaluate sexp before point; print value into current buffer."
- (interactive "P")
- (eval-region
- (let ((stab (syntax-table)))
- (unwind-protect
- (save-excursion
- (set-syntax-table emacs-lisp-mode-syntax-table)
- (forward-sexp -1)
- (point))
- (set-syntax-table stab)))
- (point)
- (current-buffer)))
+ (interactive)
+ (eval-last-sexp t))
(defun eval-last-sexp (arg)
"Evaluate sexp before point; print value in minibuffer.
With argument, print output into current buffer."
(interactive "P")
- (eval-region
- (let ((stab (syntax-table)))
- (unwind-protect
- (save-excursion
- (set-syntax-table emacs-lisp-mode-syntax-table)
- (forward-sexp -1)
- (point))
- (set-syntax-table stab)))
- (point)
- (if arg (current-buffer) t)))
+ (prin1 (let ((stab (syntax-table)))
+ (eval (unwind-protect
+ (save-excursion
+ (set-syntax-table emacs-lisp-mode-syntax-table)
+ (forward-sexp -1)
+ (read (current-buffer)))
+ (set-syntax-table stab))))
+ (if arg (current-buffer) t)))
(defun eval-defun (arg)
- "Evaluate defun that point is in or before. Print value in minibuffer.
-With argument, edebug-defun it instead, preparing it for source-level
-debugging with the electric debugger."
+ "Evaluate defun that point is in or before.
+Print value in minibuffer.
+With argument, insert value in current buffer after the defun."
(interactive "P")
- (if arg (edebug-defun)
- (save-excursion
- (end-of-defun)
- (let ((end (point)))
- (beginning-of-defun)
- (eval-region (point) end t)))))
+ (prin1 (eval (save-excursion
+ (end-of-defun)
+ (beginning-of-defun)
+ (read (current-buffer))))
+ (if arg (current-buffer) t)))
(defun lisp-comment-indent ()
(if (looking-at "\\s<\\s<\\s<")