Subject: bug#28373: closed (Re: bug#28373: [PATCH] New variable controls whether dired confirms to kill buffers visiting deleted files)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 08 Sep 2017 09:42:02 +0000

Your bug report

#28373: [PATCH] New variable controls whether dired confirms to kill buffers visiting deleted files

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
28373: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=28373
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#28373: [PATCH] New variable controls whether dired confirms to kill buffers visiting deleted files
From: Eli Zaretskii <[email-masked]>
To: Alex Branham <[email-masked]>
Cc: [email-masked]
Date: Fri, 08 Sep 2017 12:41:04 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

> From: Alex Branham <[email-masked]>
> Cc: [email-masked]
> Date: Wed, 06 Sep 2017 13:11:45 -0500
> 
> Thanks for the review. I think I've addressed the things you've brought up; specific replies below.

Thanks, pushed to the master branch.

Two minor nits for the future:

 . please always mention the bug number in the commit log message
 . the NEWS entry should be marked with "+++" only if the new feature
   is described in the appropriate manual; otherwise it should be
   either marked with "---" (if it doesn't need to be in the manual),
   or not marked at all (which is a signal for the maintainers to
   consider documenting it at some future point).  This is explained
   at the beginning of NEWS.

Subject: [PATCH] New variable controls whether dired confirms to kill buffers visiting deleted files
From: Alex Branham <[email-masked]>
To: [email-masked]
Date: Wed, 06 Sep 2017 10:42:37 -0500
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello,

This is a patch to include a new variable that, when set to nil, makes dired kill buffers visiting deleted files without confirmation.

There are apparently some people interested in this:

https://emacs.stackexchange.com/questions/30676/how-to-always-kill-dired-buffer-when-deleting-a-folder

I read through the CONTRIBUTE file, but please let me know if something is wrong with the commit message and I can redo it.

Alex

>From e8be25d16b6381cafa8b345b0509944e1dc66c68 Mon Sep 17 00:00:00 2001
From: Alex Branham <[email-masked]>
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