]> git.eshelyaron.com Git - emacs.git/commitdiff
; Fix last change (bug#79042)
authorEli Zaretskii <eliz@gnu.org>
Sat, 19 Jul 2025 10:05:05 +0000 (13:05 +0300)
committerEshel Yaron <me@eshelyaron.com>
Fri, 25 Jul 2025 08:08:10 +0000 (10:08 +0200)
(cherry picked from commit 3b2bfdfef63f051a36f4043c32596458ccae605f)

lisp/dired.el

index dfa6b0a812d659ff11c32044bd10e7e26b1d3084..b9dc8b0a0316f5f8d78f57ae98c6ef5173976077 100644 (file)
@@ -1892,8 +1892,8 @@ see `dired-use-ls-dired' for more details.")
 
 (defun dired-mouse-drag (event)
   "Begin a drag-and-drop operation for the file at EVENT.
-If there are marked files and that file is marked, drag every
-other marked file as well.  Otherwise, unmark all files."
+If there are marked files and the file at EVENT is marked, drag all the
+other marked files as well.  Otherwise, unmark all files."
   (interactive "e" dired-mode)
   (when mark-active
     (deactivate-mark))
@@ -1929,19 +1929,24 @@ other marked file as well.  Otherwise, unmark all files."
               ;; We can get an error if there's by some chance no file
               ;; name at point.
               (condition-case error
-                  (let ((filename (with-selected-window (posn-window
-                                                         (event-end event))
-                                    (let ((marked-files (dired-map-over-marks (dired-get-filename
-                                                                               nil 'no-error-if-not-filep)
-                                                                              'marked))
-                                          (file-name (dired-get-filename nil 'no-error-if-not-filep)))
-                                      (if (and marked-files
-                                               (member file-name marked-files))
-                                          marked-files
-                                        (when marked-files
-                                          (dired-map-over-marks (dired-unmark nil)
-                                                                'marked))
-                                        file-name)))))
+                  (let ((filename
+                         (with-selected-window (posn-window
+                                                (event-end event))
+                           (let ((marked-files
+                                  (dired-map-over-marks (dired-get-filename
+                                                         nil
+                                                         'no-error-if-not-filep)
+                                                        'marked))
+                                 (file-name
+                                  (dired-get-filename nil
+                                                      'no-error-if-not-filep)))
+                             (if (and marked-files
+                                      (member file-name marked-files))
+                                 marked-files
+                               (when marked-files
+                                 (dired-map-over-marks (dired-unmark nil)
+                                                       'marked))
+                               file-name)))))
                     (when filename
                       (if (and (consp filename)
                                (cdr filename))
@@ -4047,7 +4052,10 @@ non-empty directories is allowed."
 (defun dired-do-delete (&optional arg)
   "Delete all marked (or next ARG) files.
 `dired-recursive-deletes' controls whether deletion of
-non-empty directories is allowed."
+non-empty directories is allowed.
+
+When called from Lisp, if ARG is the symbol `marked', delete
+only the marked files, or none if no files are marked."
   ;; This is more consistent with the file marking feature than
   ;; dired-do-flagged-delete.
   (interactive "P" dired-mode)