Speed up exiting "emacs -Q"
authorEli Zaretskii <eliz@gnu.org>
Thu, 17 Feb 2022 13:26:37 +0000 (15:26 +0200)
committerEli Zaretskii <eliz@gnu.org>
Thu, 17 Feb 2022 13:26:37 +0000 (15:26 +0200)
* 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

index b2792818e67b88f56fd91b459090386398818385..a0501cffa1a209fb470c504bdf679e0fc215b546 100644 (file)
@@ -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.