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.