aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/dired.el26
1 files changed, 24 insertions, 2 deletions
diff --git a/lisp/dired.el b/lisp/dired.el
index d1ec3f36b18..05789a35166 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -517,9 +517,31 @@ Subexpression 2 must end right before the \\n.")
517 (list dired-re-dir 517 (list dired-re-dir
518 '(".+" (dired-move-to-filename) nil (0 dired-directory-face))) 518 '(".+" (dired-move-to-filename) nil (0 dired-directory-face)))
519 ;; 519 ;;
520 ;; Symbolic links. 520 ;; Symbolic link to a directory.
521 (list dired-re-sym 521 (list dired-re-sym
522 '(".+" (dired-move-to-filename) nil (0 dired-symlink-face))) 522 (list (lambda (end)
523 (when-let* ((file (dired-file-name-at-point))
524 (truename (ignore-errors (file-truename file))))
525 (and (file-directory-p truename)
526 (search-forward-regexp "\\(.+-> ?\\)\\(.+\\)" end t))))
527 '(dired-move-to-filename)
528 nil
529 '(1 dired-symlink-face)
530 '(2 dired-directory-face)))
531 ;;
532 ;; Symbolic link to a non-directory.
533 (list dired-re-sym
534 (list (lambda (end)
535 (when-let ((file (dired-file-name-at-point)))
536 (let ((truename (ignore-errors (file-truename file))))
537 (and (or (not truename)
538 (not (file-directory-p truename)))
539 (search-forward-regexp "\\(.+-> ?\\)\\(.+\\)"
540 end t)))))
541 '(dired-move-to-filename)
542 nil
543 '(1 dired-symlink-face)
544 '(2 'default)))
523 ;; 545 ;;
524 ;; Sockets, pipes, block devices, char devices. 546 ;; Sockets, pipes, block devices, char devices.
525 (list dired-re-special 547 (list dired-re-special