From 4566dea4b35d8005f7c4fa2f8c89f06fc8f17c8b Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 11 Feb 2018 03:58:57 -0500 Subject: [PATCH] Fix save-buffer prompt occurring after buffer is buried --- core/core-ui.el | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/core/core-ui.el b/core/core-ui.el index b47891fe5..67d165933 100644 --- a/core/core-ui.el +++ b/core/core-ui.el @@ -554,15 +554,18 @@ windows, switch to `doom-fallback-buffer'. Otherwise, delegate to original ((eq buf (doom-fallback-buffer)) (message "Can't kill the fallback buffer.")) ((doom-real-buffer-p buf) - (when (or ;; if there aren't more real buffers than visible buffers, - ;; then there are no real, non-visible buffers left. - (not (cl-set-difference (doom-real-buffer-list) - (doom-visible-buffers))) - ;; if we end up back where we start (or previous-buffer - ;; returns nil), we have nowhere left to go - (memq (previous-buffer) (list buf 'nil))) - (switch-to-buffer (doom-fallback-buffer))) - (kill-buffer buf)) + (if (and (buffer-modified-p buf) + (not (y-or-n-p "Buffer %s is modified; kill anyway?"))) + (message "Aborted") + (when (or ;; if there aren't more real buffers than visible buffers, + ;; then there are no real, non-visible buffers left. + (not (cl-set-difference (doom-real-buffer-list) + (doom-visible-buffers))) + ;; if we end up back where we start (or previous-buffer + ;; returns nil), we have nowhere left to go + (memq (previous-buffer) (list buf 'nil))) + (switch-to-buffer (doom-fallback-buffer))) + (kill-buffer buf))) (t (funcall orig-fn)))))