diff options
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r-- | lisp/emacs-lisp/bytecomp.el | 12 | ||||
-rw-r--r-- | lisp/emacs-lisp/lisp-mode.el | 11 |
2 files changed, 19 insertions, 4 deletions
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index 5e415b870ee..f87300e8666 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el @@ -2765,9 +2765,15 @@ If FORM is a lambda or a macro, byte-compile it as a function." (byte-compile-warn "`%s' used from Lisp code\n\ That command is designed for interactive use only" fn)) (if (and handler - (or (not (byte-compile-version-cond - byte-compile-compatibility)) - (not (get (get fn 'byte-opcode) 'emacs19-opcode)))) + ;; Make sure that function exists. This is important + ;; for CL compiler macros since the symbol may be + ;; `cl-byte-compile-compiler-macro' but if CL isn't + ;; loaded, this function doesn't exist. + (or (not (memq handler '(cl-byte-compile-compiler-macro))) + (fboundp handler)) + (not (and (byte-compile-version-cond + byte-compile-compatibility) + (get (get fn 'byte-opcode) 'emacs19-opcode)))) (funcall handler form) (when (memq 'callargs byte-compile-warnings) (if (memq fn '(custom-declare-group custom-declare-variable custom-declare-face)) diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el index 84841aea97b..d5588f3811f 100644 --- a/lisp/emacs-lisp/lisp-mode.el +++ b/lisp/emacs-lisp/lisp-mode.el @@ -443,6 +443,9 @@ if that value is non-nil.") (defun eval-print-last-sexp () "Evaluate sexp before point; print value into current buffer. +If `eval-expression-debug-on-error' is non-nil, which is the default, +this command arranges for all errors to enter the debugger. + Note that printing the result is controlled by the variables `eval-expression-print-length' and `eval-expression-print-level', which see." @@ -614,7 +617,10 @@ With argument, print output into current buffer." (defun eval-last-sexp (eval-last-sexp-arg-internal) "Evaluate sexp before point; print value in minibuffer. -Interactively, with prefix argument, print output into current buffer." +Interactively, with prefix argument, print output into current buffer. + +If `eval-expression-debug-on-error' is non-nil, which is the default, +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) @@ -722,6 +728,9 @@ expression even if the variable already has some other value. \(Normally `defvar' and `defcustom' do not alter the value if there already is one.) +If `eval-expression-debug-on-error' is non-nil, which is the default, +this command arranges for all errors to enter the debugger. + With a prefix argument, instrument the code for Edebug. If acting on a `defun' for FUNCTION, and the function was |