Mercurial > emacs
changeset 60308:9bc793e5120d
(inhibit-debug-on-entry): New var.
(debug): Use it. Move the inhibit-trace earlier.
(debug-entry-code): New const.
(debug-on-entry-1): Use it.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Mon, 28 Feb 2005 14:33:50 +0000 |
parents | ae8e54a87aa7 |
children | 7621f2acbeb0 |
files | lisp/emacs-lisp/debug.el |
diffstat | 1 files changed, 11 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/emacs-lisp/debug.el Mon Feb 28 13:31:19 2005 +0000 +++ b/lisp/emacs-lisp/debug.el Mon Feb 28 14:33:50 2005 +0000 @@ -93,6 +93,8 @@ (defvar debugger-outer-inhibit-redisplay) (defvar debugger-outer-cursor-in-echo-area) +(defvar inhibit-debug-on-entry nil) + ;;;###autoload (setq debugger 'debug) ;;;###autoload @@ -147,6 +149,8 @@ (setq overriding-terminal-local-map nil) ;; Don't let these magic variables affect the debugger itself. (let ((last-command nil) this-command track-mouse + (inhibit-trace t) + (inhibit-debug-on-entry t) unread-command-events unread-post-input-method-events last-input-event last-command-event last-nonmenu-event @@ -189,8 +193,7 @@ (backtrace-debug 3 t)) (debugger-reenable) (message "") - (let ((inhibit-trace t) - (standard-output nil) + (let ((standard-output nil) (buffer-read-only t)) (message "") ;; Make sure we unbind buffer-read-only in the right buffer. @@ -691,6 +694,10 @@ (setq body (cons (documentation function) body))) (fset function (cons 'lambda (cons (car contents) body))))))) + +(defconst debug-entry-code '(if inhibit-debug-on-entry nil (debug 'debug)) + "Code added to a function to cause it to call the debugger upon entry.") + (defun debug-on-entry-1 (function defn flag) (if (subrp defn) (error "%s is a built-in function" function) @@ -703,7 +710,7 @@ (if (stringp (car tail)) (setq tail (cdr tail))) ;; Skip the interactive form. (if (eq 'interactive (car-safe (car tail))) (setq tail (cdr tail))) - (unless (eq flag (equal (car tail) '(debug 'debug))) + (unless (eq flag (equal (car tail) debug-entry-code)) ;; If the function has no body, add nil as a body element. (when (null tail) (setq tail (list nil)) @@ -713,7 +720,7 @@ (progn (setcar tail (cadr tail)) (setcdr tail (cddr tail))) (setcdr tail (cons (car tail) (cdr tail))) - (setcar tail '(debug 'debug)))) + (setcar tail debug-entry-code))) defn)))) (defun debugger-list-functions ()