>From e8be25d16b6381cafa8b345b0509944e1dc66c68 Mon Sep 17 00:00:00 2001 From: Alex Branham Date: Wed, 6 Sep 2017 10:29:50 -0500 Subject: [PATCH] Add dired-confirm-killing-deleted-buffers * lisp/dired-x.el (dired-clean-confirm-killing-deleted-buffers): * lisp/dired.el (dired-clean-up-after-deletion): Just kill buffers visiting deleted files without confirming if dired-clean-confirm-killing-deleted-buffers is nil * etc/NEWS: Document the change Copyright-paperwork-exempt: yes --- etc/NEWS | 4 ++++ lisp/dired-x.el | 6 ++++++ lisp/dired.el | 28 +++++++++++++++++----------- 3 files changed, 27 insertions(+), 11 deletions(-) diff --git a/etc/NEWS b/etc/NEWS index 2824349a53..4194f307b4 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -594,6 +594,10 @@ this is controlled by the 'wdired-create-parent-directories' variable. *** 'W' is now bound to 'browse-url-of-dired-file', and is useful for viewing HTML files and the like. ++++ +*** New variable 'dired-clean-confirm-killing-deleted-buffers' +controls whether dired asks to kill buffers visiting deleted files + --- ** html2text is now marked obsolete. diff --git a/lisp/dired-x.el b/lisp/dired-x.el index 1425278bdc..bfb5574da3 100644 --- a/lisp/dired-x.el +++ b/lisp/dired-x.el @@ -243,6 +243,12 @@ dired-clean-up-buffers-too :type 'boolean :group 'dired-x) +(defcustom dired-clean-confirm-killing-deleted-buffers t + "If nil, don't ask whether to kill buffers visiting deleted files." + :version "26.1" + :type 'boolean + :group 'dired-x) + ;;; KEY BINDINGS. (define-key dired-mode-map "\C-x\M-o" 'dired-omit-mode) diff --git a/lisp/dired.el b/lisp/dired.el index ff62183f09..bac3933502 100644 --- a/lisp/dired.el +++ b/lisp/dired.el @@ -3164,28 +3164,34 @@ dired-delete-entry (dired-clean-up-after-deletion file)) (defvar dired-clean-up-buffers-too) +(defvar dired-clean-confirm-killing-deleted-buffers) (defun dired-clean-up-after-deletion (fn) "Clean up after a deleted file or directory FN. -Removes any expanded subdirectory of deleted directory. -If `dired-x' is loaded and `dired-clean-up-buffers-too' is non-nil, -also offers to kill buffers visiting deleted files and directories." +Removes any expanded subdirectory of deleted directory. If +`dired-x' is loaded and `dired-clean-up-buffers-too' is non-nil, +also offers to kill buffers visiting deleted files and +directories. Similarly, if `dired-x' is loaded and +`dired-clean-confirm-killing-deleted-buffers is nil, kill the +buffers without asking.'" (save-excursion (and (cdr dired-subdir-alist) - (dired-goto-subdir fn) - (dired-kill-subdir))) + (dired-goto-subdir fn) + (dired-kill-subdir))) ;; Offer to kill buffer of deleted file FN. (when (and (featurep 'dired-x) dired-clean-up-buffers-too) (let ((buf (get-file-buffer fn))) (and buf - (funcall #'y-or-n-p - (format "Kill buffer of %s, too? " - (file-name-nondirectory fn))) + (or (not dired-clean-confirm-killing-deleted-buffers) + (funcall #'y-or-n-p + (format "Kill buffer of %s, too? " + (file-name-nondirectory fn)))) (kill-buffer buf))) (let ((buf-list (dired-buffers-for-dir (expand-file-name fn)))) (and buf-list - (y-or-n-p (format "Kill Dired buffer%s of %s, too? " - (dired-plural-s (length buf-list)) - (file-name-nondirectory fn))) + (or (not dired-clean-confirm-killing-deleted-buffers) + (y-or-n-p (format "Kill Dired buffer%s of %s, too? " + (dired-plural-s (length buf-list)) + (file-name-nondirectory fn)))) (dolist (buf buf-list) (kill-buffer buf)))))) -- 2.14.1