all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#28373: [PATCH] New variable controls whether dired confirms to kill buffers visiting deleted files
@ 2017-09-06 15:42 Alex Branham
  2017-09-06 16:36 ` Eli Zaretskii
  0 siblings, 1 reply; 5+ messages in thread
From: Alex Branham @ 2017-09-06 15:42 UTC (permalink / raw
  To: 28373

[-- Attachment #1: Type: text/plain, Size: 433 bytes --]

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


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Add-dired-confirm-killing-deleted-buffers.patch --]
[-- Type: text/x-diff, Size: 3951 bytes --]

From e8be25d16b6381cafa8b345b0509944e1dc66c68 Mon Sep 17 00:00:00 2001
From: Alex Branham <branham@utexas.edu>
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


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* bug#28373: [PATCH] New variable controls whether dired confirms to kill buffers visiting deleted files
  2017-09-06 15:42 bug#28373: [PATCH] New variable controls whether dired confirms to kill buffers visiting deleted files Alex Branham
@ 2017-09-06 16:36 ` Eli Zaretskii
  2017-09-06 18:11   ` Alex Branham
  0 siblings, 1 reply; 5+ messages in thread
From: Eli Zaretskii @ 2017-09-06 16:36 UTC (permalink / raw
  To: Alex Branham; +Cc: 28373

> From: Alex Branham <alex.branham@gmail.com>
> Date: Wed, 06 Sep 2017 10:42:37 -0500
> 
> 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.

Thanks.  A few comments:

> * 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

This log entry makes it sound as if similar changes were made in both
dired.el and dired-x.el, which is not what your changes do.  The entry
for dired-x.el should only say this:

  * lisp/dired-x.el (dired-clean-confirm-killing-deleted-buffers): New variable.

> 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)

Why did you need this defvar?

>  (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.'"

We use the US English convention of leaving 2 spaces between
sentences.  Also, I'd simplify the last sentence to avoid repeating
what the previous one says, and perhaps even make one sentence out of
the two.

>    (save-excursion (and (cdr dired-subdir-alist)
> -		       (dired-goto-subdir fn)
> -		       (dired-kill-subdir)))
> +                       (dired-goto-subdir fn)
> +                       (dired-kill-subdir)))

Please don't change whitespace where you aren't changing code.

> +           (or (not dired-clean-confirm-killing-deleted-buffers)
> +               (funcall #'y-or-n-p
> +                        (format "Kill buffer of %s, too? "
> +                                (file-name-nondirectory fn))))

Isn't it better to use this instead:

      (and dired-clean-confirm-killing-deleted-buffers
           (funcall ...

?  What you wrote is akin to double negation, IMO.

Thanks again for working on this.





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#28373: [PATCH] New variable controls whether dired confirms to kill buffers visiting deleted files
  2017-09-06 16:36 ` Eli Zaretskii
@ 2017-09-06 18:11   ` Alex Branham
  2017-09-06 18:42     ` Eli Zaretskii
  2017-09-08  9:41     ` Eli Zaretskii
  0 siblings, 2 replies; 5+ messages in thread
From: Alex Branham @ 2017-09-06 18:11 UTC (permalink / raw
  To: Eli Zaretskii; +Cc: 28373

[-- Attachment #1: Type: text/plain, Size: 3157 bytes --]

Thanks for the review. I think I've addressed the things you've brought up; specific replies below.

While I have your attention, how do I start the process of FSF copyright assignment? I'd rather start it now so I don't have to deal with it later. And do I have to do one form for Emacs and another for org-mode, or will one form take care of both?

Thanks!

On Wed 06 Sep 2017 at 16:36, Eli Zaretskii <eliz@gnu.org> wrote:

>> * 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
>
> This log entry makes it sound as if similar changes were made in both
> dired.el and dired-x.el, which is not what your changes do.  The entry
> for dired-x.el should only say this:
>
>   * lisp/dired-x.el (dired-clean-confirm-killing-deleted-buffers): New variable.

Thanks, modified

>
>> 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)
>
> Why did you need this defvar?

I assumed I did since the other dired-clean variable is there. I guess I don't, though.

>
>>  (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.'"
>
> We use the US English convention of leaving 2 spaces between
> sentences.  Also, I'd simplify the last sentence to avoid repeating
> what the previous one says, and perhaps even make one sentence out of
> the two.

Modified, thanks.

>
>>    (save-excursion (and (cdr dired-subdir-alist)
>> -		       (dired-goto-subdir fn)
>> -		       (dired-kill-subdir)))
>> +                       (dired-goto-subdir fn)
>> +                       (dired-kill-subdir)))
>
> Please don't change whitespace where you aren't changing code.

That slipped past me, sorry!

>
>> +           (or (not dired-clean-confirm-killing-deleted-buffers)
>> +               (funcall #'y-or-n-p
>> +                        (format "Kill buffer of %s, too? "
>> +                                (file-name-nondirectory fn))))
>
> Isn't it better to use this instead:
>
>       (and dired-clean-confirm-killing-deleted-buffers
>            (funcall ...
>
> ?  What you wrote is akin to double negation, IMO.

I changed it to this. I could've sworn this is what I wrote originally and it didn't work, but it seems to work fine now.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0002-Add-dired-confirm-killing-deleted-buffers.patch --]
[-- Type: text/x-diff, Size: 3692 bytes --]

From 452435ac4816b7561056ad0ab75f6387e09b0296 Mon Sep 17 00:00:00 2001
From: Alex Branham <branham@utexas.edu>
Date: Wed, 6 Sep 2017 13:05:38 -0500
Subject: [PATCH] Add dired-confirm-killing-deleted-buffers

* lisp/dired-x.el (dired-clean-confirm-killing-deleted-buffers): New variable.
* 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   | 22 +++++++++++++---------
 3 files changed, 23 insertions(+), 9 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..33b9e66704 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -3167,9 +3167,11 @@ dired-clean-up-buffers-too
 
 (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,
+kill any buffers visiting those files, prompting for
+confirmation.  To disable confirmation, see
+`dired-clean-confirm-killing-deleted-buffers'."
   (save-excursion (and (cdr dired-subdir-alist)
 		       (dired-goto-subdir fn)
 		       (dired-kill-subdir)))
@@ -3177,15 +3179,17 @@ dired-clean-up-after-deletion
   (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)))
+           (and 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)))
+           (and 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


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* bug#28373: [PATCH] New variable controls whether dired confirms to kill buffers visiting deleted files
  2017-09-06 18:11   ` Alex Branham
@ 2017-09-06 18:42     ` Eli Zaretskii
  2017-09-08  9:41     ` Eli Zaretskii
  1 sibling, 0 replies; 5+ messages in thread
From: Eli Zaretskii @ 2017-09-06 18:42 UTC (permalink / raw
  To: Alex Branham; +Cc: 28373

> From: Alex Branham <alex.branham@gmail.com>
> Cc: 28373@debbugs.gnu.org
> 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, I will look into this soon.

> While I have your attention, how do I start the process of FSF copyright assignment? I'd rather start it now so I don't have to deal with it later. And do I have to do one form for Emacs and another for org-mode, or will one form take care of both?

Form sent off-list.  Thanks.





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#28373: [PATCH] New variable controls whether dired confirms to kill buffers visiting deleted files
  2017-09-06 18:11   ` Alex Branham
  2017-09-06 18:42     ` Eli Zaretskii
@ 2017-09-08  9:41     ` Eli Zaretskii
  1 sibling, 0 replies; 5+ messages in thread
From: Eli Zaretskii @ 2017-09-08  9:41 UTC (permalink / raw
  To: Alex Branham; +Cc: 28373-done

> From: Alex Branham <alex.branham@gmail.com>
> Cc: 28373@debbugs.gnu.org
> 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.





^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2017-09-08  9:41 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-09-06 15:42 bug#28373: [PATCH] New variable controls whether dired confirms to kill buffers visiting deleted files Alex Branham
2017-09-06 16:36 ` Eli Zaretskii
2017-09-06 18:11   ` Alex Branham
2017-09-06 18:42     ` Eli Zaretskii
2017-09-08  9:41     ` Eli Zaretskii

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.