]> git.eshelyaron.com Git - emacs.git/commitdiff
Make sure 'dired-filename' property is always put by ls-lisp
authorEli Zaretskii <eliz@gnu.org>
Sat, 25 Nov 2017 10:35:09 +0000 (12:35 +0200)
committerEli Zaretskii <eliz@gnu.org>
Sat, 25 Nov 2017 10:35:09 +0000 (12:35 +0200)
* lisp/ls-lisp.el (ls-lisp-classify): Do not put the
'dired-filename' text property on the file name here...
(ls-lisp-classify-file): ...put it here instead.  (Bug#29423)

lisp/ls-lisp.el

index caddc7f760b831003a3ae68f4a9515a2b1524d8e..cf3bff5c4821f99042c0962a4f77b626bbdd2762 100644 (file)
@@ -713,23 +713,26 @@ SWITCHES is a list of characters.  Default sorting is alphabetic."
 (defun ls-lisp-classify-file (filename fattr)
   "Append a character to FILENAME indicating the file type.
 
+This function puts the `dired-filename' property on FILENAME, but
+not on the character indicator it appends.
 FATTR is the file attributes returned by `file-attributes' for the file.
 The file type indicators are `/' for directories, `@' for symbolic
 links, `|' for FIFOs, `=' for sockets, `*' for regular files that
 are executable, and nothing for other types of files."
   (let* ((type (car fattr))
         (modestr (nth 8 fattr))
-        (typestr (substring modestr 0 1)))
+        (typestr (substring modestr 0 1))
+         (file-name (propertize filename 'dired-filename t)))
     (cond
      (type
-      (concat filename (if (eq type t) "/" "@")))
+      (concat file-name (if (eq type t) "/" "@")))
      ((string-match "x" modestr)
-      (concat filename "*"))
+      (concat file-name "*"))
      ((string= "p" typestr)
-      (concat filename "|"))
+      (concat file-name "|"))
      ((string= "s" typestr)
-      (concat filename "="))
-     (t filename))))
+      (concat file-name "="))
+     (t file-name))))
 
 (defun ls-lisp-classify (filedata)
   "Append a character to file name in FILEDATA indicating the file type.
@@ -742,7 +745,6 @@ links, `|' for FIFOs, `=' for sockets, `*' for regular files that
 are executable, and nothing for other types of files."
   (let ((file-name (car filedata))
         (fattr (cdr filedata)))
-    (setq file-name (propertize file-name 'dired-filename t))
     (cons (ls-lisp-classify-file file-name fattr) fattr)))
 
 (defun ls-lisp-extension (filename)