From ee6cff992302d80b9cbb0889725066c485dbf265 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Mon, 6 May 2013 18:33:24 -0400 Subject: [PATCH] * lisp/emacs-lisp/trace.el (trace--display-buffer): New function. (trace-make-advice): Use it. --- lisp/ChangeLog | 5 +++++ lisp/emacs-lisp/trace.el | 24 ++++++++++++++---------- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index d700b53f3a2..b58d8b5e610 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2013-05-06 Stefan Monnier + + * emacs-lisp/trace.el (trace--display-buffer): New function. + (trace-make-advice): Use it. + 2013-05-06 Juri Linkov * emacs-lisp/lisp-mode.el (eval-defun-2): Doc fix. (Bug#14344) diff --git a/lisp/emacs-lisp/trace.el b/lisp/emacs-lisp/trace.el index fce8643923f..42643bf2317 100644 --- a/lisp/emacs-lisp/trace.el +++ b/lisp/emacs-lisp/trace.el @@ -200,6 +200,18 @@ some global variables)." (defvar trace--timer nil) +(defun trace--display-buffer (buf) + (unless (or trace--timer + (get-buffer-window buf 'visible)) + (setq trace--timer + ;; Postpone the display to some later time, in case we + ;; can't actually do it now. + (run-with-timer 0 nil + (lambda () + (setq trace--timer nil) + (display-buffer buf nil 0)))))) + + (defun trace-make-advice (function buffer background context) "Build the piece of advice to be added to trace FUNCTION. FUNCTION is the name of the traced function. @@ -214,15 +226,7 @@ be printed along with the arguments in the trace." (unless inhibit-trace (with-current-buffer trace-buffer (set (make-local-variable 'window-point-insertion-type) t) - (unless (or background trace--timer - (get-buffer-window trace-buffer 'visible)) - (setq trace--timer - ;; Postpone the display to some later time, in case we - ;; can't actually do it now. - (run-with-timer 0 nil - (lambda () - (setq trace--timer nil) - (display-buffer trace-buffer))))) + (unless background (trace--display-buffer trace-buffer)) (goto-char (point-max)) ;; Insert a separator from previous trace output: (if (= trace-level 1) (insert trace-separator)) @@ -235,7 +239,7 @@ be printed along with the arguments in the trace." (unless inhibit-trace (let ((ctx (funcall context))) (with-current-buffer trace-buffer - (unless background (display-buffer trace-buffer)) + (unless background (trace--display-buffer trace-buffer)) (goto-char (point-max)) (insert (trace-exit-message -- 2.39.2