Mercurial > emacs
comparison lisp/files.el @ 95806:2e2ae1dd33cc
* emacs-lisp/map-ynp.el (map-y-or-n-p): Add support for other-window-scroll.
* files.el (save-some-buffers-action-alist): Only use recursive-edit
if the user enabled recursive-minibuffers.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Wed, 11 Jun 2008 01:47:48 +0000 |
parents | ffc05d56ac32 |
children | b76b9628d74f |
comparison
equal
deleted
inserted
replaced
95805:dc8b6f0d85e8 | 95806:2e2ae1dd33cc |
---|---|
4161 ;; return always nil, so that save-buffers-kill-emacs will not move | 4161 ;; return always nil, so that save-buffers-kill-emacs will not move |
4162 ;; over to the next unsaved buffer when calling `d'. | 4162 ;; over to the next unsaved buffer when calling `d'. |
4163 nil) | 4163 nil) |
4164 | 4164 |
4165 (defvar save-some-buffers-action-alist | 4165 (defvar save-some-buffers-action-alist |
4166 '((?\C-r | 4166 `((?\C-r |
4167 (lambda (buf) | 4167 ,(lambda (buf) |
4168 (view-buffer buf | 4168 (if (not enable-recursive-minibuffers) |
4169 (lambda (ignore) | 4169 (progn (display-buffer buf) |
4170 (exit-recursive-edit))) | 4170 (setq other-window-scroll-buffer buf)) |
4171 (recursive-edit) | 4171 (view-buffer buf (lambda (_) (exit-recursive-edit))) |
4172 ;; Return nil to ask about BUF again. | 4172 (recursive-edit)) |
4173 nil) | 4173 ;; Return nil to ask about BUF again. |
4174 nil) | |
4174 "view this buffer") | 4175 "view this buffer") |
4175 (?d (lambda (buf) | 4176 (?d ,(lambda (buf) |
4176 (save-window-excursion | 4177 (if (null buffer-file-name) |
4177 (diff-buffer-with-file buf)) | 4178 (message "Not applicable: no file") |
4178 (view-buffer (get-buffer-create "*Diff*") | 4179 (save-window-excursion (diff-buffer-with-file buf)) |
4179 (lambda (ignore) (exit-recursive-edit))) | 4180 (if (not enable-recursive-minibuffers) |
4180 (recursive-edit) | 4181 (progn (display-buffer (get-buffer-create "*Diff*")) |
4181 nil) | 4182 (setq other-window-scroll-buffer "*Diff*")) |
4183 (view-buffer (get-buffer-create "*Diff*") | |
4184 (lambda (_) (exit-recursive-edit))) | |
4185 (recursive-edit))) | |
4186 ;; Return nil to ask about BUF again. | |
4187 nil) | |
4182 "view changes in this buffer")) | 4188 "view changes in this buffer")) |
4183 "ACTION-ALIST argument used in call to `map-y-or-n-p'.") | 4189 "ACTION-ALIST argument used in call to `map-y-or-n-p'.") |
4184 | 4190 |
4185 (defvar buffer-save-without-query nil | 4191 (defvar buffer-save-without-query nil |
4186 "Non-nil means `save-some-buffers' should save this buffer without asking.") | 4192 "Non-nil means `save-some-buffers' should save this buffer without asking.") |
4214 (save-buffer)))) | 4220 (save-buffer)))) |
4215 ;; Ask about those buffers that merit it, | 4221 ;; Ask about those buffers that merit it, |
4216 ;; and record the number thus saved. | 4222 ;; and record the number thus saved. |
4217 (setq files-done | 4223 (setq files-done |
4218 (map-y-or-n-p | 4224 (map-y-or-n-p |
4219 (function | 4225 (lambda (buffer) |
4220 (lambda (buffer) | 4226 (and (buffer-modified-p buffer) |
4221 (and (buffer-modified-p buffer) | 4227 (not (buffer-base-buffer buffer)) |
4222 (not (buffer-base-buffer buffer)) | 4228 (or |
4223 (or | 4229 (buffer-file-name buffer) |
4224 (buffer-file-name buffer) | 4230 (and pred |
4225 (and pred | 4231 (progn |
4226 (progn | 4232 (set-buffer buffer) |
4227 (set-buffer buffer) | 4233 (and buffer-offer-save (> (buffer-size) 0))))) |
4228 (and buffer-offer-save (> (buffer-size) 0))))) | 4234 (or (not (functionp pred)) |
4229 (or (not (functionp pred)) | 4235 (with-current-buffer buffer (funcall pred))) |
4230 (with-current-buffer buffer (funcall pred))) | 4236 (if arg |
4231 (if arg | 4237 t |
4232 t | 4238 (setq queried t) |
4233 (setq queried t) | 4239 (if (buffer-file-name buffer) |
4234 (if (buffer-file-name buffer) | 4240 (format "Save file %s? " |
4235 (format "Save file %s? " | 4241 (buffer-file-name buffer)) |
4236 (buffer-file-name buffer)) | 4242 (format "Save buffer %s? " |
4237 (format "Save buffer %s? " | 4243 (buffer-name buffer)))))) |
4238 (buffer-name buffer))))))) | 4244 (lambda (buffer) |
4239 (function | 4245 (with-current-buffer buffer |
4240 (lambda (buffer) | 4246 (save-buffer))) |
4241 (set-buffer buffer) | 4247 (buffer-list) |
4242 (save-buffer))) | |
4243 (buffer-list) | |
4244 '("buffer" "buffers" "save") | 4248 '("buffer" "buffers" "save") |
4245 save-some-buffers-action-alist)) | 4249 save-some-buffers-action-alist)) |
4246 ;; Maybe to save abbrevs, and record whether | 4250 ;; Maybe to save abbrevs, and record whether |
4247 ;; we either saved them or asked to. | 4251 ;; we either saved them or asked to. |
4248 (and save-abbrevs abbrevs-changed | 4252 (and save-abbrevs abbrevs-changed |