[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/emacs-23 r100169: Back-port from trunk the
From: |
Eli Zaretskii |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/emacs-23 r100169: Back-port from trunk the fix for bug #6294. |
Date: |
Sat, 06 Nov 2010 12:08:33 +0200 |
User-agent: |
Bazaar (2.0.3) |
------------------------------------------------------------
revno: 100169
committer: Eli Zaretskii <address@hidden>
branch nick: emacs-23
timestamp: Sat 2010-11-06 12:08:33 +0200
message:
Back-port from trunk the fix for bug #6294.
ls-lisp.el (ls-lisp-classify-file): New function.
(ls-lisp-insert-directory): Call it if switches include -F.
(ls-lisp-classify): Call ls-lisp-classify-file.
(insert-directory): Remove blanks from switches.
modified:
lisp/ChangeLog
lisp/ls-lisp.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog 2010-11-06 09:57:24 +0000
+++ b/lisp/ChangeLog 2010-11-06 10:08:33 +0000
@@ -1,6 +1,10 @@
2010-11-06 Eli Zaretskii <address@hidden>
* ls-lisp.el (insert-directory): Doc fix. (bug#7285)
+ (ls-lisp-classify-file): New function.
+ (ls-lisp-insert-directory): Call it if switches include -F (bug#6294).
+ (ls-lisp-classify): Call ls-lisp-classify-file.
+ (insert-directory): Remove blanks from switches.
2010-11-07 Wilson Snyder <address@hidden>
=== modified file 'lisp/ls-lisp.el'
--- a/lisp/ls-lisp.el 2010-11-06 09:57:24 +0000
+++ b/lisp/ls-lisp.el 2010-11-06 10:08:33 +0000
@@ -236,7 +236,7 @@
(if (string-match "--dired " switches)
(setq switches (replace-match "" nil nil switches)))
;; Convert SWITCHES to a list of characters.
- (setq switches (delete ?- (append switches nil)))
+ (setq switches (delete ?\ (delete ?- (append switches nil))))
;; Sometimes we get ".../foo*/" as FILE. While the shell and
;; `ls' don't mind, we certainly do, because it makes us think
;; there is no wildcard, only a directory name.
@@ -406,7 +406,11 @@
(setq file (substring file 0 -1)))
(let ((fattr (file-attributes file 'string)))
(if fattr
- (insert (ls-lisp-format file fattr (nth 7 fattr)
+ (insert (ls-lisp-format
+ (if (memq ?F switches)
+ (ls-lisp-classify-file file fattr)
+ file)
+ fattr (nth 7 fattr)
switches time-index (current-time)))
(message "%s: doesn't exist or is inaccessible" file)
(ding) (sit-for 2))))) ; to show user the message!
@@ -523,29 +527,40 @@
(nreverse file-alist)
file-alist))
+(defun ls-lisp-classify-file (filename fattr)
+ "Append a character to FILENAME indicating the file type.
+
+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)))
+ (cond
+ (type
+ (concat filename (if (eq type t) "/" "@")))
+ ((string-match "x" modestr)
+ (concat filename "*"))
+ ((string= "p" typestr)
+ (concat filename "|"))
+ ((string= "s" typestr)
+ (concat filename "="))
+ (t filename))))
+
(defun ls-lisp-classify (filedata)
- "Append a character to each file name indicating the file type.
-Also, for regular files that are executable, append `*'.
+ "Append a character to file name in FILEDATA indicating the file type.
+
+FILEDATA has the form (FILENAME . ATTRIBUTES), where ATTRIBUTES is the
+structure returned by `file-attributes' for that file.
+
The file type indicators are `/' for directories, `@' for symbolic
-links, `|' for FIFOs, `=' for sockets, and nothing for regular files.
-\[But FIFOs and sockets are not recognized.]
-FILEDATA has the form (filename . `file-attributes'). Its `cadr' is t
-for directory, string (name linked to) for symbolic link, or nil."
+links, `|' for FIFOs, `=' for sockets, `*' for regular files that
+are executable, and nothing for other types of files."
(let ((file-name (car filedata))
- (type (cadr filedata)))
- (cond (type
- (cons
- (concat (propertize file-name 'dired-filename t)
- (if (eq type t) "/" "@"))
- (cdr filedata)))
- ((string-match "x" (nth 9 filedata))
- (cons
- (concat (propertize file-name 'dired-filename t) "*")
- (cdr filedata)))
- (t
- (cons
- (propertize file-name 'dired-filename t)
- (cdr 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)
"Return extension of FILENAME (ignoring any version extension)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/emacs-23 r100169: Back-port from trunk the fix for bug #6294.,
Eli Zaretskii <=