Function: tramp-fuse-handle-directory-files
tramp-fuse-handle-directory-files is a byte-compiled function defined
in tramp-fuse.el.gz.
Signature
(tramp-fuse-handle-directory-files DIRECTORY &optional FULL MATCH NOSORT COUNT)
Documentation
Like directory-files for Tramp files.
Source Code
;; Defined in /usr/src/emacs/lisp/net/tramp-fuse.el.gz
(defun tramp-fuse-handle-directory-files
(directory &optional full match nosort count)
"Like `directory-files' for Tramp files."
(unless (file-exists-p directory)
(tramp-compat-file-missing (tramp-dissect-file-name directory) directory))
(when (file-directory-p directory)
(setq directory (file-name-as-directory (expand-file-name directory)))
(with-parsed-tramp-file-name directory nil
(let ((result
(tramp-compat-directory-files
(tramp-fuse-local-file-name directory) full match nosort count)))
;; Massage the result.
(when full
(let ((local (concat "^" (regexp-quote (tramp-fuse-mount-point v))))
(remote (directory-file-name
(funcall
(if (tramp-compat-file-name-quoted-p directory)
#'tramp-compat-file-name-quote #'identity)
(file-remote-p directory)))))
(setq result
(mapcar
(lambda (x) (replace-regexp-in-string local remote x))
result))))
;; Some storage systems do not return "." and "..".
(dolist (item '(".." "."))
(when (and (string-match-p (or match (regexp-quote item)) item)
(not
(member (if full (setq item (concat directory item)) item)
result)))
(setq result (cons item result))))
;; Return result.
(tramp-fuse-remove-hidden-files
(if nosort result (sort result #'string<)))))))