summaryrefslogtreecommitdiff
path: root/lisp/simple.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/simple.el')
-rw-r--r--lisp/simple.el17
1 files changed, 17 insertions, 0 deletions
diff --git a/lisp/simple.el b/lisp/simple.el
index f2b3d82a7a5..653cffae62c 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -10560,6 +10560,23 @@ If the buffer doesn't exist, create it first."
(interactive)
(pop-to-buffer-same-window (get-scratch-buffer-create)))
+(defun kill-buffer--possibly-save (buffer)
+ (let ((response
+ (cadr
+ (read-multiple-choice
+ (format "Buffer %s modified; kill anyway?"
+ (buffer-name))
+ '((?y "yes" "kill buffer without saving")
+ (?n "no" "exit without doing anything")
+ (?s "save and then kill" "save the buffer and then kill it"))
+ nil nil (not use-short-answers)))))
+ (if (equal response "no")
+ nil
+ (unless (equal response "yes")
+ (with-current-buffer buffer
+ (save-buffer)))
+ t)))
+
(provide 'simple)