[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/dired-duplicates 3c16f56388 48/57: Install workarounds
From: |
ELPA Syncer |
Subject: |
[elpa] externals/dired-duplicates 3c16f56388 48/57: Install workarounds for Emacs Dired bug #57565 |
Date: |
Sat, 4 Nov 2023 06:58:31 -0400 (EDT) |
branch: externals/dired-duplicates
commit 3c16f563880453ad65e1b19ec92d7c4c5a6269f2
Author: Harald Judt <h.judt@gmx.at>
Commit: Harald Judt <h.judt@gmx.at>
Install workarounds for Emacs Dired bug #57565
In current release versions, Emacs has a bug that causes the dired buffer
not
to update properly after delete operations. While a fix has been applied to
and
will be available in the future, old versions will continue to suffer from
this. This commit installs a workaround by providing supplemental functions
for
dired-duplicates dired buffers only, modifying the local keymap without
hopefully touching any other dired buffers.
This fix will only be applied for Emacs versions < 29, which has not been
released yet, but will hopefully contain this fix.
Reference:
https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=1d9e4900
---
dired-duplicates.el | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)
diff --git a/dired-duplicates.el b/dired-duplicates.el
index b9fc64b015..a9e46c85f9 100644
--- a/dired-duplicates.el
+++ b/dired-duplicates.el
@@ -200,6 +200,40 @@ The args ARG and NOCONFIRM are passed through from
(dired-duplicates--post-process-dired-buffer results))
(message "Reverting buffer complete."))
+(when (< emacs-major-version 29)
+ (defun dired-duplicates--do-delete (&optional arg)
+ "Delete all marked (or next ARG) files.
+
+This is the same as `dired-do-delete', but calls
+`dired-duplicates-dired-revert' afterwards."
+ (interactive)
+ (dired-do-delete arg)
+ (dired-duplicates-dired-revert)))
+
+(when (< emacs-major-version 29)
+ (defun dired-duplicates--do-flagged-delete (&optional nomessage)
+ "Delete flagged files.
+
+If NOMESSAGE is non-nil, we don't display any message
+if there are no flagged files.
+
+This is the same as `dired-do-flagged-delete', but calls
+`dired-duplicates-dired-revert' afterwards."
+ (interactive)
+ (dired-do-flagged-delete nomessage)
+ (dired-duplicates-dired-revert)))
+
+(defvar dired-duplicates-map
+ (let ((map (make-sparse-keymap)))
+ ;; workaround for Emacs bug #57565
+ (when (< emacs-major-version 29)
+ (define-key map (kbd "x") 'dired-duplicates--do-flagged-delete)
+ (define-key map (kbd "D") 'dired-duplicates--do-delete))
+ map)
+ "This keymap overrides the default `dired-mode-map'.
+
+It will be local to the `dired-duplicates' buffer.")
+
;;;###autoload
(defun dired-duplicates (directories)
"Find a list of duplicate files inside one or more DIRECTORIES.
@@ -222,6 +256,8 @@ The results will be shown in a Dired buffer."
(progn
(message "Finding duplicate files in %s completed." truncated-dirs)
(dired (cons "/" (flatten-list results)))
+ (set-keymap-parent dired-duplicates-map (current-local-map))
+ (setf (current-local-map) dired-duplicates-map)
(setq-local dired-duplicates-directories directories)
(setq-local revert-buffer-function 'dired-duplicates-dired-revert)
(dired-duplicates--post-process-dired-buffer results))
- [elpa] externals/dired-duplicates 03ad95f3a9 31/57: Add README.org, (continued)
- [elpa] externals/dired-duplicates 03ad95f3a9 31/57: Add README.org, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates 4cfe600a15 36/57: Use user-error instead of error in find-duplicates-checksum-file, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates b4a7b0a3e7 38/57: Lower required emacs version to 27.1, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates 31c1aa8880 40/57: Rename all occurrences of find-duplicates to dired-duplicates, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates 6df828caac 41/57: README.org: Add more detailed explanations, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates 887560b192 42/57: Get rid of separator files, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates 4c17bcdcc0 43/57: Separate search results using empty lines, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates 0a9a5d8b65 44/57: Make separating results optional again, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates 4664aed213 46/57: Fix truncating directories when calling dired-duplicates non-interactively, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates 94319f44f7 47/57: Improve checking parameters and handling parameter errors, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates 3c16f56388 48/57: Install workarounds for Emacs Dired bug #57565,
ELPA Syncer <=
- [elpa] externals/dired-duplicates c6193334fd 50/57: Update copyright notice to point to the FSF, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates c1dbfc5bcd 53/57: Improve error handling of checksum program, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates b5a9eb1cc1 26/57: flymake: Fix warning about unused lexical variables, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates 4fde2fbfa7 33/57: Fix first lines of docstrings, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates 94542206f7 49/57: Update GPL3 LICENSE file, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates 4cf9eeb365 54/57: Remove conditional checks that dolist does for free, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates ec0a89ca32 57/57: Remove commented line of code, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates 4a18d41af4 56/57: Use use-local-map instead of setf current-local-map, ELPA Syncer, 2023/11/04