From a6b7bb2dfd8dd436a1d845e35bedf910405c918b Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Thu, 17 Feb 2022 15:26:37 +0200 Subject: [PATCH] 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 b2792818e67..a0501cffa1a 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. -- 2.39.5