From 160462d33d933b905d245318a75e005df9e0df03 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 15 Dec 2019 23:22:10 -0500 Subject: [PATCH] Refactor doom--switch-to-fallback-buffer-maybe-a Reduce technical debt by future proofing the advice. --- core/core-ui.el | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/core/core-ui.el b/core/core-ui.el index 616c1889d..fd80d6000 100644 --- a/core/core-ui.el +++ b/core/core-ui.el @@ -216,19 +216,21 @@ read-only or not file-visiting." (setq confirm-nonexistent-file-or-buffer t) -(defadvice! doom--switch-to-fallback-buffer-maybe-a (orig-fn) +(defadvice! doom--switch-to-fallback-buffer-maybe-a (&rest _) "Switch to `doom-fallback-buffer' if on last real buffer. Advice for `kill-current-buffer'. If in a dedicated window, delete it. If there are no real buffers left OR if all remaining buffers are visible in other windows, switch to `doom-fallback-buffer'. Otherwise, delegate to original `kill-current-buffer'." - :around #'kill-current-buffer + :before-until #'kill-current-buffer (let ((buf (current-buffer))) (cond ((window-dedicated-p) - (delete-window)) + (delete-window) + t) ((eq buf (doom-fallback-buffer)) - (message "Can't kill the fallback buffer.")) + (message "Can't kill the fallback buffer.") + t) ((doom-real-buffer-p buf) (if (and buffer-file-name (buffer-modified-p buf) @@ -247,8 +249,8 @@ windows, switch to `doom-fallback-buffer'. Otherwise, delegate to original (switch-to-buffer (doom-fallback-buffer))) (unless (delq (selected-window) (get-buffer-window-list buf nil t)) (kill-buffer buf))) - (run-hooks 'buffer-list-update-hook))) - ((funcall orig-fn))))) + (run-hooks 'buffer-list-update-hook)) + t)))) ;;