Function: tramp-file-name-with-sudo

tramp-file-name-with-sudo is a byte-compiled function defined in tramp-cmds.el.gz.

Signature

(tramp-file-name-with-sudo FILENAME)

Documentation

Convert FILENAME into a multi-hop file name with "sudo".

An alternative method could be chosen with tramp-file-name-with-method.

Source Code

;; Defined in /usr/src/emacs/lisp/net/tramp-cmds.el.gz
(defun tramp-file-name-with-sudo (filename)
  "Convert FILENAME into a multi-hop file name with \"sudo\".
An alternative method could be chosen with `tramp-file-name-with-method'."
  (setq filename (expand-file-name filename))
  (if (tramp-tramp-file-p filename)
      (with-parsed-tramp-file-name filename nil
	(cond
	 ;; Remote file with proper method.
	 ((string-equal method tramp-file-name-with-method)
	  filename)
	 ;; Remote file on the local host.
	 ((and
	   (stringp tramp-local-host-regexp) (stringp host)
	   (string-match-p tramp-local-host-regexp host))
	  (tramp-make-tramp-file-name
	   (make-tramp-file-name
	    :method tramp-file-name-with-method :localname localname)))
	 ;; Remote file with multi-hop capable method.
	 ((tramp-multi-hop-p v)
	  (tramp-make-tramp-file-name
	   (make-tramp-file-name
	    :method (tramp-find-method tramp-file-name-with-method nil host)
	    :user (tramp-find-user tramp-file-name-with-method nil host)
	    :host (tramp-find-host tramp-file-name-with-method nil host)
	    :localname localname :hop (tramp-make-tramp-hop-name v))))
	 ;; Other remote file.
	 (t (tramp-user-error v "Multi-hop with `%s' not applicable" method))))
    ;; Local file.
    (tramp-make-tramp-file-name
     (make-tramp-file-name
      :method tramp-file-name-with-method :localname filename))))