]> git.eshelyaron.com Git - emacs.git/commitdiff
Make `d' in Dired skip dot files
authorLars Ingebrigtsen <larsi@gnus.org>
Mon, 23 May 2022 10:17:25 +0000 (12:17 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Mon, 23 May 2022 10:17:25 +0000 (12:17 +0200)
* lisp/dired.el (dired-mark): Skip dot files (bug#38729).  This
makes `C-u 10 d' (etc) consistent with marking the next ten lines
with the mouse and then hitting `d'.

etc/NEWS
lisp/dired.el

index c146b746cfe19630dc1540eb70cf175fb81b23ba..032450b6eef1772663f2d1c1481a9786dea0eb83 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -136,6 +136,14 @@ of 'user-emacs-directory'.
 \f
 * Incompatible changes in Emacs 29.1
 
+---
+** The 'd' command in Dired now more consistently skip dot files.
+In previous Emacs versions, commands like `C-u 10 d' would put the "D"
+mark on the next ten files, no matter whether they were dot files
+(i.e., "." and "..") or not, while marking the next ten lines with the
+mouse (in 'transient-mark-mode') and then hitting 'd' would skip dot
+files.  These now work equivalently.
+
 ---
 ** Isearch in "*Help*" and "*info*" now char-folds quote characters by default.
 This means that you can say 'C-s `foo' (GRAVE ACCENT) if the buffer
index 89fbd52aa62bce313f70454f197dfe5c7409e371..fbf26dbce7a8117295e1c2f81702a604595555e9 100644 (file)
@@ -3957,7 +3957,11 @@ this subdir."
     (let ((inhibit-read-only t))
       (dired-repeat-over-lines
        (prefix-numeric-value arg)
-       (lambda () (delete-char 1) (insert dired-marker-char)))))))
+       (lambda ()
+         (when (or (not (looking-at-p dired-re-dot))
+                   (not (equal dired-marker-char dired-del-marker)))
+           (delete-char 1)
+           (insert dired-marker-char))))))))
 
 (defun dired-unmark (arg &optional interactive)
   "Unmark the file at point in the Dired buffer.