emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master d51e6af: Put ELP results in a special-mode buffer


From: Lars Ingebrigtsen
Subject: master d51e6af: Put ELP results in a special-mode buffer
Date: Mon, 31 May 2021 02:17:08 -0400 (EDT)

branch: master
commit d51e6af9a70fac29881edf4e303d4f1ef4ec2b4a
Author: Lars Ingebrigtsen <larsi@gnus.org>
Commit: Lars Ingebrigtsen <larsi@gnus.org>

    Put ELP results in a special-mode buffer
    
    * lisp/emacs-lisp/elp.el (elp-results): Make `q' work in ELP
    results buffer (bug#14104).
    (elp-results-mode): Define as an empty special mode derivation.
---
 lisp/emacs-lisp/elp.el | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/lisp/emacs-lisp/elp.el b/lisp/emacs-lisp/elp.el
index 2ee19a3..7c7961c 100644
--- a/lisp/emacs-lisp/elp.el
+++ b/lisp/emacs-lisp/elp.el
@@ -483,6 +483,10 @@ original definition, use \\[elp-restore-function] or 
\\[elp-restore-all]."
                      'face 'link
                      'help-echo "mouse-2 or RET jumps to definition")))
 
+(define-derived-mode elp-results-mode special-mode "ELP"
+  "Mode for ELP results"
+  :interactive nil)
+
 ;;;###autoload
 (defun elp-results ()
   "Display current profiling results.
@@ -490,11 +494,12 @@ If `elp-reset-after-results' is non-nil, then current 
profiling
 information for all instrumented functions is reset after results are
 displayed."
   (interactive)
-  (let ((curbuf (current-buffer))
-       (resultsbuf (if elp-recycle-buffers-p
-                       (get-buffer-create elp-results-buffer)
-                     (generate-new-buffer elp-results-buffer))))
-    (set-buffer resultsbuf)
+  (pop-to-buffer
+   (if elp-recycle-buffers-p
+       (get-buffer-create elp-results-buffer)
+     (generate-new-buffer elp-results-buffer)))
+  (elp-results-mode)
+  (let ((inhibit-read-only t))
     (erase-buffer)
     ;; get the length of the longest function name being profiled
     (let* ((longest 0)
@@ -565,9 +570,6 @@ displayed."
       (if elp-sort-by-function
          (setq resvec (sort resvec elp-sort-by-function)))
       (mapc 'elp-output-result resvec))
-    ;; now pop up results buffer
-    (set-buffer curbuf)
-    (pop-to-buffer resultsbuf)
     ;; copy results to standard-output?
     (if (or elp-use-standard-output noninteractive)
         (princ (buffer-substring (point-min) (point-max)))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]