Mercurial > emacs
changeset 30055:16e560dd4ab8
(eval-defun-2): Remove parameter
EVAL-DEFUN-ARG-INTERNAL; always print to minibuffer.
(eval-defun): If called with prefix arg, instrument code for
Edebug.
author | Gerd Moellmann <gerd@gnu.org> |
---|---|
date | Wed, 05 Jul 2000 15:16:15 +0000 |
parents | 72640301c1fe |
children | 2381ee2fec5b |
files | lisp/emacs-lisp/lisp-mode.el |
diffstat | 1 files changed, 30 insertions(+), 21 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/emacs-lisp/lisp-mode.el Wed Jul 05 15:15:53 2000 +0000 +++ b/lisp/emacs-lisp/lisp-mode.el Wed Jul 05 15:16:15 2000 +0000 @@ -408,7 +408,7 @@ (cons 'progn (mapcar 'eval-defun-1 (cdr form)))) (t form))) -(defun eval-defun-2 (eval-defun-arg-internal) +(defun eval-defun-2 () "Evaluate defun that point is in or before. The value is displayed in the minibuffer. If the current defun is actually a call to `defvar', @@ -430,7 +430,7 @@ ;; variables like `end'. (apply #'eval-region - (let ((standard-output (if eval-defun-arg-internal (current-buffer) t)) + (let ((standard-output t) beg end form) ;; Read the form from the buffer, and record where it ends. (save-excursion @@ -450,27 +450,36 @@ ;; The result of evaluation has been put onto VALUES. So return it. (car values)) -(defun eval-defun (eval-defun-arg-internal) - "Evaluate defun that point is in or before. -The value is displayed in the minibuffer. -If the current defun is actually a call to `defvar', -then reset the variable using the initial value expression -even if the variable already has some other value. -\(Normally `defvar' does not change the variable's value -if it already has a value.\) +(defun eval-defun (edebug-it) + "Evaluate the top-level form containing point, or after point. + +If the current defun is actually a call to `defvar', then reset the +variable using its initial value expression even if the variable +already has some other value. (Normally `defvar' does not change the +variable's value if it already has a value.) + +With a prefix argument, instrument the code for Edebug. + +If acting on a `defun' for FUNCTION, and the function was +instrumented, `Edebug: FUNCTION' is printed in the minibuffer. If not +instrumented, just FUNCTION is printed. -With argument, insert value in current buffer after the defun. -Return the result of evaluation." +If not acting on a `defun', the result of evaluation is displayed in +the minibuffer." (interactive "P") - (if (null eval-expression-debug-on-error) - (eval-defun-2 eval-defun-arg-internal) - (let ((old-value (make-symbol "t")) new-value value) - (let ((debug-on-error old-value)) - (setq value (eval-defun-2 eval-defun-arg-internal)) - (setq new-value debug-on-error)) - (unless (eq old-value new-value) - (setq debug-on-error new-value)) - value))) + (cond (edebug-it + (require 'edebug) + (eval-defun (not edebug-all-defs))) + (t + (if (null eval-expression-debug-on-error) + (eval-defun-2) + (let ((old-value (make-symbol "t")) new-value value) + (let ((debug-on-error old-value)) + (setq value (eval-defun-2)) + (setq new-value debug-on-error)) + (unless (eq old-value new-value) + (setq debug-on-error new-value)) + value))))) (defun lisp-comment-indent ()