Mercurial > emacs
changeset 40475:3bf0c64f4520
(delay-mode-hooks): Add edebug-spec.
(edebug-instrument-function): Use `find-function-noselect'.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Tue, 30 Oct 2001 03:31:32 +0000 |
parents | e8c25a61215d |
children | 18b1b133e5c1 |
files | lisp/emacs-lisp/edebug.el |
diffstat | 1 files changed, 9 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/emacs-lisp/edebug.el Tue Oct 30 01:54:29 2001 +0000 +++ b/lisp/emacs-lisp/edebug.el Tue Oct 30 03:31:32 2001 +0000 @@ -2097,6 +2097,7 @@ (def-edebug-spec with-output-to-string t) (def-edebug-spec with-current-buffer t) (def-edebug-spec combine-after-change-calls t) +(def-edebug-spec delay-mode-hooks t) (def-edebug-spec with-temp-file t) (def-edebug-spec with-temp-buffer t) (def-edebug-spec with-temp-message t) @@ -3348,23 +3349,23 @@ (defun edebug-instrument-function (func) ;; Func should be a function symbol. ;; Return the function symbol, or nil if not instrumented. - (let ((func-marker)) - (setq func-marker (get func 'edebug)) + (let ((func-marker (get func 'edebug))) (cond ((markerp func-marker) ;; It is uninstrumented, so instrument it. - (save-excursion - (set-buffer (marker-buffer func-marker)) + (with-current-buffer (marker-buffer func-marker) (goto-char func-marker) (edebug-eval-top-level-form) func)) ((consp func-marker) (message "%s is already instrumented." func) func) - (t - ;; We could try harder, e.g. do a tags search. - (error "Don't know where %s is defined" func) - nil)))) + (t + (let ((loc (find-function-noselect func))) + (with-current-buffer (car loc) + (goto-char (cdr loc)) + (edebug-eval-top-level-form) + func)))))) (defun edebug-instrument-callee () "Instrument the definition of the function or macro about to be called.