Michael Albinus <michael.albi...@gmx.de> writes: > ;; Symbolic link to a non-directory. > (list dired-re-sym > (list (lambda (end) > - (when-let ((file (dired-file-name-at-point))) > - (let ((truename (ignore-errors (file-truename file)))) > - (and (or (not truename) > - (not (file-directory-p truename))) > - (search-forward-regexp "\\(.+-> ?\\)\\(.+\\)" > - end t))))) > + (if (not (connection-local-value dired-check-symlinks)) > + (search-forward-regexp > + "\\(.+-> ?\\)\\(.+\\)" end t) > + (when-let ((file (dired-file-name-at-point))) > + (let ((truename (ignore-errors (file-truename file)))) > + (and (or (not truename) > + (not (file-directory-p truename))) > + (search-forward-regexp > + "\\(.+-> ?\\)\\(.+\\)" end t))))))
Minor nitpick: given the comment for this section (which seems to suggest this only applies to symlinks to non-directories), wouldn't it be "better" to simply have something like below instead for the if-then case? I.e., a separate entry in dired-font-lock-keywords for the failsafe. #+begin_src emacs-lisp ;; Generic face for symbolic links (list dired-re-sym (when (not (connection-local-value dired-check-symlinks)) '(".+" (dired-move-to-filename) nil (0 dired-symlink-face)))) #+end_src This is essentially what I have in my config today, and seems to behave as expected. -- Suhail