summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2024-02-08 13:51:55 +0200
committerEli Zaretskii <eliz@gnu.org>2024-02-08 13:51:55 +0200
commite2682316867ecb22ee1db5e3028a8150d95d1a80 (patch)
tree5c85ddab17eac9e492b23e0015fcfa83fc5aa3c8 /lisp
parente25d11314d84cc3e606515d6551e878cec4cfee4 (diff)
downloademacs-e2682316867ecb22ee1db5e3028a8150d95d1a80.tar.gz
emacs-e2682316867ecb22ee1db5e3028a8150d95d1a80.tar.bz2
emacs-e2682316867ecb22ee1db5e3028a8150d95d1a80.zip
Don't skip links to "." and ".." in Dired when marking files
* lisp/dired.el (dired-mark): Skip "." and "..", but not symlinks to those two. (Bug#38729) (Bug#68814)
Diffstat (limited to 'lisp')
-rw-r--r--lisp/dired.el5
1 files changed, 5 insertions, 0 deletions
diff --git a/lisp/dired.el b/lisp/dired.el
index c33569d79a2..d9fbafb98c3 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -4110,6 +4110,11 @@ this subdir."
(prefix-numeric-value arg)
(lambda ()
(when (or (not (looking-at-p dired-re-dot))
+ ;; Don't skip symlinks to ".", "..", etc.
+ (save-excursion
+ (re-search-forward
+ dired-permission-flags-regexp nil t)
+ (eq (char-after (match-beginning 1)) ?l))
(not (equal dired-marker-char dired-del-marker)))
(delete-char 1)
(insert dired-marker-char))))))))