Function: tramp-handle-find-backup-file-name
tramp-handle-find-backup-file-name is a byte-compiled function defined
in tramp.el.gz.
Signature
(tramp-handle-find-backup-file-name FILENAME)
Documentation
Like find-backup-file-name for Tramp files.
Source Code
;; Defined in /usr/src/emacs/lisp/net/tramp.el.gz
(defun tramp-handle-find-backup-file-name (filename)
"Like `find-backup-file-name' for Tramp files."
(with-parsed-tramp-file-name filename nil
(let ((backup-directory-alist
(if tramp-backup-directory-alist
(mapcar
(lambda (x)
(cons
(car x)
(if (and (stringp (cdr x))
(file-name-absolute-p (cdr x))
(not (tramp-tramp-file-p (cdr x))))
(tramp-make-tramp-file-name v (cdr x))
(cdr x))))
tramp-backup-directory-alist)
backup-directory-alist))
result)
(prog1 ;; Run plain `find-backup-file-name'.
(setq result
(tramp-run-real-handler
#'find-backup-file-name (list filename)))
;; Protect against security hole.
(when (and (not tramp-allow-unsafe-temporary-files)
(not backup-inhibited)
(file-in-directory-p (car result) temporary-file-directory)
(= (or (file-attribute-user-id
(file-attributes filename 'integer))
tramp-unknown-id-integer)
tramp-root-id-integer)
(not (with-tramp-connection-property
(tramp-get-process v) "unsafe-temporary-file"
(yes-or-no-p
(concat
"Backup file on local temporary directory, "
"do you want to continue?")))))
(tramp-error v 'file-error "Unsafe backup file name"))))))