emacs-diffs
[Top][All Lists]
Advanced

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

master a6b7bb2dfd: Speed up exiting "emacs -Q"


From: Eli Zaretskii
Subject: master a6b7bb2dfd: Speed up exiting "emacs -Q"
Date: Thu, 17 Feb 2022 08:27:38 -0500 (EST)

branch: master
commit a6b7bb2dfd8dd436a1d845e35bedf910405c918b
Author: Eli Zaretskii <eliz@gnu.org>
Commit: Eli Zaretskii <eliz@gnu.org>

    Speed up exiting "emacs -Q"
    
    * lisp/files.el (files--buffers-needing-to-be-saved): Don't call
    functions from seq.el.  Using seq.el has an annoying side-effect
    of slowing down "C-x C-c" from "emacs -Q" due to the need to load
    seq.el.
---
 lisp/files.el | 37 ++++++++++++++++++++-----------------
 1 file changed, 20 insertions(+), 17 deletions(-)

diff --git a/lisp/files.el b/lisp/files.el
index b2792818e6..a0501cffa1 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -5826,23 +5826,26 @@ of the directory that was default during command 
invocation."
 (defun files--buffers-needing-to-be-saved (pred)
   "Return a list of buffers to save according to PRED.
 See `save-some-buffers' for PRED values."
-  (seq-filter
-   (lambda (buffer)
-     ;; Note that killing some buffers may kill others via
-     ;; hooks (e.g. Rmail and its viewing buffer).
-     (and (buffer-live-p buffer)
-         (buffer-modified-p buffer)
-          (not (buffer-base-buffer buffer))
-          (or
-           (buffer-file-name buffer)
-           (with-current-buffer buffer
-             (or (eq buffer-offer-save 'always)
-                 (and pred buffer-offer-save
-                      (> (buffer-size) 0)))))
-          (or (not (functionp pred))
-              (with-current-buffer buffer
-                (funcall pred)))))
-   (buffer-list)))
+  (let ((buffers
+         (mapcar (lambda (buffer)
+                   (if
+                       ;; Note that killing some buffers may kill others via
+                       ;; hooks (e.g. Rmail and its viewing buffer).
+                       (and (buffer-live-p buffer)
+                           (buffer-modified-p buffer)
+                            (not (buffer-base-buffer buffer))
+                            (or
+                             (buffer-file-name buffer)
+                             (with-current-buffer buffer
+                               (or (eq buffer-offer-save 'always)
+                                   (and pred buffer-offer-save
+                                        (> (buffer-size) 0)))))
+                            (or (not (functionp pred))
+                                (with-current-buffer buffer
+                                  (funcall pred))))
+                       buffer))
+                 (buffer-list))))
+         (delq nil buffers)))
 
 (defun save-some-buffers (&optional arg pred)
   "Save some modified file-visiting buffers.  Asks user about each one.



reply via email to

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