Function: tramp-skeleton-file-truename
tramp-skeleton-file-truename is a macro defined in tramp.el.gz.
Signature
(tramp-skeleton-file-truename FILENAME &rest BODY)
Documentation
Skeleton for tramp-*-handle-file-truename.
BODY is the backend specific code.
Source Code
;; Defined in /usr/src/emacs/lisp/net/tramp.el.gz
(defmacro tramp-skeleton-file-truename (filename &rest body)
"Skeleton for `tramp-*-handle-file-truename'.
BODY is the backend specific code."
(declare (indent 1) (debug (form body)))
;; Preserve trailing "/".
`(funcall
(if (directory-name-p ,filename) #'file-name-as-directory #'identity)
;; Quote properly.
(funcall
(if (file-name-quoted-p ,filename) #'file-name-quote #'identity)
(with-parsed-tramp-file-name
(file-name-unquote (expand-file-name ,filename)) nil
(tramp-make-tramp-file-name
v
(with-tramp-file-property v localname "file-truename"
(let (result)
(setq result (progn ,@body))
;; Detect cycle.
(when (and (file-symlink-p ,filename)
(string-equal result localname))
(tramp-error
v 'file-error
"Apparent cycle of symbolic links for %s" ,filename))
;; If the resulting localname looks remote, we must quote
;; it for security reasons.
(when (tramp-tramp-file-p result)
(setq result (file-name-quote result 'top)))
result)))))))