Function: tramp-handle-file-truename
tramp-handle-file-truename is a byte-compiled function defined in
tramp.el.gz.
Signature
(tramp-handle-file-truename FILENAME)
Documentation
Like file-truename for Tramp files.
Source Code
;; Defined in /usr/src/emacs/lisp/net/tramp.el.gz
(defun tramp-handle-file-truename (filename)
"Like `file-truename' for Tramp files."
(tramp-skeleton-file-truename filename
(let ((result (directory-file-name localname))
(numchase 0)
;; Don't make the following value larger than necessary.
;; People expect an error message in a timely fashion when
;; something is wrong; otherwise they might think that Emacs
;; is hung. Of course, correctness has to come first.
(numchase-limit 20)
;; Unquoting could enable encryption.
tramp-crypt-enabled
symlink-target)
(while (and (setq symlink-target
(file-symlink-p (tramp-make-tramp-file-name v result)))
(< numchase numchase-limit))
(setq numchase (1+ numchase)
result
(if (tramp-tramp-file-p symlink-target)
(file-name-quote symlink-target 'top)
(tramp-drop-volume-letter
(expand-file-name
symlink-target (file-name-directory result)))))
(when (>= numchase numchase-limit)
(tramp-error
v 'file-error
"Maximum number (%d) of symlinks exceeded" numchase-limit)))
(directory-file-name result))))