]> git.eshelyaron.com Git - emacs.git/commitdiff
Mark the end of file names correctly on Macos in wdired
authorLars Ingebrigtsen <larsi@gnus.org>
Tue, 4 Aug 2020 13:56:12 +0000 (15:56 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Tue, 4 Aug 2020 13:56:12 +0000 (15:56 +0200)
* lisp/wdired.el (wdired--restore-dired-filename-prop): Fix
problem with finding the end of the name on Macos.

lisp/wdired.el

index 768b8f597b4d9887337b22b6d0a47e6727fc86bd..b98becfafe7813a1330e32ae6ab27aa7d8bd783a 100644 (file)
@@ -609,7 +609,10 @@ Optional arguments are ignored."
 (defun wdired--restore-dired-filename-prop (beg end _len)
   (save-match-data
     (save-excursion
-      (let ((lep (line-end-position)))
+      (let ((lep (line-end-position))
+            (used-F (dired-check-switches
+                     dired-actual-switches
+                     "F" "classify")))
         (beginning-of-line)
         (when (re-search-forward
                directory-listing-before-filename-regexp lep t)
@@ -623,13 +626,17 @@ Optional arguments are ignored."
                          (and (re-search-backward
                                dired-permission-flags-regexp nil t)
                               (looking-at "l")
-                              (search-forward " -> " lep t))
+                              ;; macOS and Ultrix adds "@" to the end
+                              ;; of symlinks when using -F.
+                              (if (and used-F
+                                       dired-ls-F-marks-symlinks)
+                                  (re-search-forward "@? -> " lep t)
+                                (search-forward " -> " lep t)))
                          ;; When dired-listing-switches includes "F"
                          ;; or "classify", don't treat appended
                          ;; indicator characters as part of the file
                          ;; name (bug#34915).
-                         (and (dired-check-switches dired-actual-switches
-                                                    "F" "classify")
+                         (and used-F
                               (re-search-forward "[*/@|=>]$" lep t)))
                         (goto-char (match-beginning 0))
                       lep))