# HG changeset patch # User Stefan Monnier # Date 944548292 0 # Node ID 91304e25926bbc84a3624fe70a2f2a6ec2d16425 # Parent f14026cd976702a8de3a986394ee21a8fc9764aa (save-some-buffers): Turn EXITING into the more general PRED argument to allow specifying a subset of buffers. diff -r f14026cd9767 -r 91304e25926b lisp/files.el --- a/lisp/files.el Tue Dec 07 06:30:44 1999 +0000 +++ b/lisp/files.el Tue Dec 07 06:31:32 1999 +0000 @@ -2517,11 +2517,14 @@ buffer-file-name nil t buffer-file-truename))) setmodes)) -(defun save-some-buffers (&optional arg exiting) +(defun save-some-buffers (&optional arg pred) "Save some modified file-visiting buffers. Asks user about each one. Optional argument (the prefix) non-nil means save all with no questions. -Optional second argument EXITING means ask about certain non-file buffers - as well as about file buffers." +Optional second argument PRED determines which buffers are considered: +If PRED is nil, all the file-visiting buffers are considered. +If PRED is t, then certain non-file buffers will also be considered. +If PRED is a zero-argument function, it indicates for each buffer whether + to consider it or not." (interactive "P") (save-window-excursion (let* ((queried nil) @@ -2533,10 +2536,12 @@ (not (buffer-base-buffer buffer)) (or (buffer-file-name buffer) - (and exiting + (and pred (progn (set-buffer buffer) (and buffer-offer-save (> (buffer-size) 0))))) + (or (not (functionp pred)) + (with-current-buffer buffer (funcall pred))) (if arg t (setq queried t)