* lisp/emacs-lisp/trace.el (trace--display-buffer): New function.
authorStefan Monnier <monnier@iro.umontreal.ca>
Mon, 6 May 2013 22:33:24 +0000 (18:33 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Mon, 6 May 2013 22:33:24 +0000 (18:33 -0400)
(trace-make-advice): Use it.

lisp/ChangeLog
lisp/emacs-lisp/trace.el

index d700b53..b58d8b5 100644 (file)
@@ -1,3 +1,8 @@
+2013-05-06  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * emacs-lisp/trace.el (trace--display-buffer): New function.
+       (trace-make-advice): Use it.
+
 2013-05-06  Juri Linkov  <juri@jurta.org>
 
        * emacs-lisp/lisp-mode.el (eval-defun-2): Doc fix.  (Bug#14344)
index fce8643..42643bf 100644 (file)
@@ -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