;; unless this spits out a complete line, including the '\n' at the
;; end.
;; The device number is returned as "-1", because there will be a virtual
-;; device number set in `tramp-handle-file-attributes'
+;; device number set in `tramp-handle-file-attributes'.
(defconst tramp-perl-file-attributes
"%s -e '
@stat = lstat($ARGV[0]);
$uid = ($ARGV[1] eq \"integer\") ? $stat[4] : \"\\\"\" . getpwuid($stat[4]) . \"\\\"\";
$gid = ($ARGV[1] eq \"integer\") ? $stat[5] : \"\\\"\" . getgrgid($stat[5]) . \"\\\"\";
printf(
- \"(\\\"%%s\\\" %%s %%u %%s %%s (%%u %%u) (%%u %%u) (%%u %%u) %%u.0 %%u t (%%u . %%u) (%%u %%u))\\n\",
+ \"(\\\"%%s\\\" %%s %%u %%s %%s (%%u %%u) (%%u %%u) (%%u %%u) %%u.0 %%u t (%%u . %%u) (%%u . %%u))\\n\",
$filename,
$type,
$stat[3],
;; provided by "lstat" aren't unique, because we operate on different hosts.
;; So we use virtual device numbers, generated by Tramp. Both Ange-FTP and
;; EFS use device number "-1". In order to be different, we use device number
-;; (-1 x), whereby "x" is unique for a given (method user host).
+;; (-1 . x), whereby "x" is unique for a given (method user host).
(defvar tramp-devices nil
"Keeps virtual device numbers.")
(unless (listp (nth 10 attr))
(setcar (nthcdr 10 attr)
(condition-case nil
- (list (floor (nth 10 attr) 65536)
+ (cons (floor (nth 10 attr) 65536)
(floor (mod (nth 10 attr) 65536)))
;; Inodes can be incredible huge. We must hide this.
(error (tramp-get-inode vec)))))
(unless (assoc string tramp-devices)
(add-to-list 'tramp-devices
(list string (length tramp-devices))))
- (list -1 (nth 1 (assoc string tramp-devices)))))
+ (cons -1 (nth 1 (assoc string tramp-devices)))))
(defun tramp-file-mode-from-int (mode)
"Turn an integer representing a file mode into an ls(1)-like string."