summaryrefslogtreecommitdiff
path: root/lisp/ls-lisp.el
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2008-04-05 15:03:42 +0000
committerEli Zaretskii <eliz@gnu.org>2008-04-05 15:03:42 +0000
commitc902c8a7813df3c9b4f78e4e361d23d480ca234d (patch)
tree8425b366c4ba2ea8497d2fb502674cb32bb25f31 /lisp/ls-lisp.el
parent432409589726cd717f7bfa0f0e4de55698690928 (diff)
downloademacs-c902c8a7813df3c9b4f78e4e361d23d480ca234d.tar.gz
emacs-c902c8a7813df3c9b4f78e4e361d23d480ca234d.tar.bz2
emacs-c902c8a7813df3c9b4f78e4e361d23d480ca234d.zip
(ls-lisp-format): Support inodes that are 2- or 3-member cons cells.
Diffstat (limited to 'lisp/ls-lisp.el')
-rw-r--r--lisp/ls-lisp.el12
1 files changed, 11 insertions, 1 deletions
diff --git a/lisp/ls-lisp.el b/lisp/ls-lisp.el
index 2963168a899..854f47a59c3 100644
--- a/lisp/ls-lisp.el
+++ b/lisp/ls-lisp.el
@@ -529,7 +529,17 @@ SWITCHES, TIME-INDEX and NOW give the full switch list and time data."
;; for symbolic link, or nil.
(drwxrwxrwx (nth 8 file-attr))) ; attribute string ("drwxrwxrwx")
(concat (if (memq ?i switches) ; inode number
- (format " %6d" (nth 10 file-attr)))
+ (let ((inode (nth 10 file-attr)))
+ (if (consp inode)
+ (if (consp (cdr inode))
+ (format " %17.0f "
+ (+ (* (car inode) 1099511627776.0)
+ (* (cadr inode) 65536.0)
+ (cddr inode)))
+ (format " %17.0f "
+ (+ (* (car inode) 65536.0)
+ (cdr inode))))
+ (format " %17d " inode))))
;; nil is treated like "" in concat
(if (memq ?s switches) ; size in K
(format " %4.0f" (fceiling (/ file-size 1024.0))))