(unless (fboundp 'uudecode-decode-region)
(autoload 'uudecode-decode-region "uudecode"))
-;; ;; It does not work to load EFS after loading TRAMP.
-;; (when (fboundp 'efs-file-handler-function)
-;; (require 'efs))
+;; XEmacs is distributed with few Lisp packages. Further packages are
+;; installed using EFS. If we use a unified filename format, then
+;; Tramp is required in addition to EFS. (But why can't Tramp just
+;; disable EFS when Tramp is loaded? Then XEmacs can ship with EFS
+;; just like before.) Another reason for using a separate filename
+;; syntax on XEmacs is that EFS hooks into XEmacs in many places, but
+;; Tramp only knows how to deal with `file-name-handler-alist', not
+;; the other places.
+;;;###autoload
+(defvar tramp-unified-filenames (not (featurep 'xemacs))
+ "Non-nil means to use unified Ange-FTP/Tramp filename syntax.
+Nil means to use a separate filename syntax for Tramp.")
;; Load foreign methods. Because they do require Tramp internally, this
;; must be done with the `eval-after-load' trick.
(unless (featurep 'xemacs)
(eval-after-load "tramp"
'(require 'tramp-ftp)))
+(when (and tramp-unified-filenames (featurep 'xemacs))
+ (eval-after-load "tramp"
+ '(require 'tramp-efs)))
;; tramp-smb uses "smbclient" from Samba.
;; Not available under Cygwin and Windows, because they don't offer
(when (fboundp 'byte-compiler-options)
(byte-compiler-options (warnings (- unused-vars)))))
-;; XEmacs is distributed with few Lisp packages. Further packages are
-;; installed using EFS. If we use a unified filename format, then
-;; Tramp is required in addition to EFS. (But why can't Tramp just
-;; disable EFS when Tramp is loaded? Then XEmacs can ship with EFS
-;; just like before.) Another reason for using a separate filename
-;; syntax on XEmacs is that EFS hooks into XEmacs in many places, but
-;; Tramp only knows how to deal with `file-name-handler-alist', not
-;; the other places.
-;;;###autoload
-(defvar tramp-unified-filenames (not (featurep 'xemacs))
- "Non-nil means to use unified Ange-FTP/Tramp filename syntax.
-Nil means to use a separate filename syntax for Tramp.")
-
;;; User Customizable Internal Variables:
(defgroup tramp nil
(defcustom tramp-methods
'( ("rcp" (tramp-connection-function tramp-open-connection-rsh)
- (tramp-rsh-program "rsh")
- (tramp-rcp-program "rcp")
+ (tramp-login-program "rsh")
+ (tramp-copy-program "rcp")
(tramp-remote-sh "/bin/sh")
- (tramp-rsh-args nil)
- (tramp-rcp-args nil)
- (tramp-rcp-keep-date-arg "-p")
- (tramp-su-program nil)
- (tramp-su-args nil)
- (tramp-telnet-program nil)
- (tramp-telnet-args nil))
+ (tramp-login-args nil)
+ (tramp-copy-args nil)
+ (tramp-copy-keep-date-arg "-p"))
("scp" (tramp-connection-function tramp-open-connection-rsh)
- (tramp-rsh-program "ssh")
- (tramp-rcp-program "scp")
+ (tramp-login-program "ssh")
+ (tramp-copy-program "scp")
(tramp-remote-sh "/bin/sh")
- (tramp-rsh-args ("-e" "none"))
- (tramp-rcp-args nil)
- (tramp-rcp-keep-date-arg "-p")
- (tramp-su-program nil)
- (tramp-su-args nil)
- (tramp-telnet-program nil)
- (tramp-telnet-args nil))
+ (tramp-login-args ("-e" "none"))
+ (tramp-copy-args nil)
+ (tramp-copy-keep-date-arg "-p"))
("scp1" (tramp-connection-function tramp-open-connection-rsh)
- (tramp-rsh-program "ssh")
- (tramp-rcp-program "scp")
+ (tramp-login-program "ssh")
+ (tramp-copy-program "scp")
(tramp-remote-sh "/bin/sh")
- (tramp-rsh-args ("-1" "-e" "none"))
- (tramp-rcp-args ("-1"))
- (tramp-rcp-keep-date-arg "-p")
- (tramp-su-program nil)
- (tramp-su-args nil)
- (tramp-telnet-program nil)
- (tramp-telnet-args nil))
+ (tramp-login-args ("-1" "-e" "none"))
+ (tramp-copy-args ("-1"))
+ (tramp-copy-keep-date-arg "-p"))
("scp2" (tramp-connection-function tramp-open-connection-rsh)
- (tramp-rsh-program "ssh")
- (tramp-rcp-program "scp")
+ (tramp-login-program "ssh")
+ (tramp-copy-program "scp")
(tramp-remote-sh "/bin/sh")
- (tramp-rsh-args ("-2" "-e" "none"))
- (tramp-rcp-args ("-2"))
- (tramp-rcp-keep-date-arg "-p")
- (tramp-su-program nil)
- (tramp-su-args nil)
- (tramp-telnet-program nil)
- (tramp-telnet-args nil))
+ (tramp-login-args ("-2" "-e" "none"))
+ (tramp-copy-args ("-2"))
+ (tramp-copy-keep-date-arg "-p"))
("scp1_old"
(tramp-connection-function tramp-open-connection-rsh)
- (tramp-rsh-program "ssh1")
- (tramp-rcp-program "scp1")
+ (tramp-login-program "ssh1")
+ (tramp-copy-program "scp1")
(tramp-remote-sh "/bin/sh")
- (tramp-rsh-args ("-e" "none"))
- (tramp-rcp-args nil)
- (tramp-rcp-keep-date-arg "-p")
- (tramp-su-program nil)
- (tramp-su-args nil)
- (tramp-telnet-program nil)
- (tramp-telnet-args nil))
+ (tramp-login-args ("-e" "none"))
+ (tramp-copy-args nil)
+ (tramp-copy-keep-date-arg "-p"))
("scp2_old"
(tramp-connection-function tramp-open-connection-rsh)
- (tramp-rsh-program "ssh2")
- (tramp-rcp-program "scp2")
+ (tramp-login-program "ssh2")
+ (tramp-copy-program "scp2")
(tramp-remote-sh "/bin/sh")
- (tramp-rsh-args ("-e" "none"))
- (tramp-rcp-args nil)
- (tramp-rcp-keep-date-arg "-p")
- (tramp-su-program nil)
- (tramp-su-args nil)
- (tramp-telnet-program nil)
- (tramp-telnet-args nil))
+ (tramp-login-args ("-e" "none"))
+ (tramp-copy-args nil)
+ (tramp-copy-keep-date-arg "-p"))
("rsync" (tramp-connection-function tramp-open-connection-rsh)
- (tramp-rsh-program "ssh")
- (tramp-rcp-program "rsync")
+ (tramp-login-program "ssh")
+ (tramp-copy-program "rsync")
(tramp-remote-sh "/bin/sh")
- (tramp-rsh-args ("-e" "none"))
- (tramp-rcp-args ("-e" "ssh"))
- (tramp-rcp-keep-date-arg "-t")
- (tramp-su-program nil)
- (tramp-su-args nil)
- (tramp-telnet-program nil)
- (tramp-telnet-args nil))
+ (tramp-login-args ("-e" "none"))
+ (tramp-copy-args ("-e" "ssh"))
+ (tramp-copy-keep-date-arg "-t"))
+ ("remcp" (tramp-connection-function tramp-open-connection-rsh)
+ (tramp-login-program "remsh")
+ (tramp-copy-program "rcp")
+ (tramp-remote-sh "/bin/sh")
+ (tramp-login-args nil)
+ (tramp-copy-args nil)
+ (tramp-copy-keep-date-arg "-p"))
("rsh" (tramp-connection-function tramp-open-connection-rsh)
- (tramp-rsh-program "rsh")
- (tramp-rcp-program nil)
+ (tramp-login-program "rsh")
+ (tramp-copy-program nil)
(tramp-remote-sh "/bin/sh")
- (tramp-rsh-args nil)
- (tramp-rcp-args nil)
- (tramp-rcp-keep-date-arg nil)
- (tramp-su-program nil)
- (tramp-su-args nil)
- (tramp-telnet-program nil)
- (tramp-telnet-args nil))
+ (tramp-login-args nil)
+ (tramp-copy-args nil)
+ (tramp-copy-keep-date-arg nil))
("ssh" (tramp-connection-function tramp-open-connection-rsh)
- (tramp-rsh-program "ssh")
- (tramp-rcp-program nil)
+ (tramp-login-program "ssh")
+ (tramp-copy-program nil)
(tramp-remote-sh "/bin/sh")
- (tramp-rsh-args ("-e" "none"))
- (tramp-rcp-args nil)
- (tramp-rcp-keep-date-arg nil)
- (tramp-su-program nil)
- (tramp-su-args nil)
- (tramp-telnet-program nil)
- (tramp-telnet-args nil))
+ (tramp-login-args ("-e" "none"))
+ (tramp-copy-args nil)
+ (tramp-copy-keep-date-arg nil))
("ssh1" (tramp-connection-function tramp-open-connection-rsh)
- (tramp-rsh-program "ssh")
- (tramp-rcp-program nil)
+ (tramp-login-program "ssh")
+ (tramp-copy-program nil)
(tramp-remote-sh "/bin/sh")
- (tramp-rsh-args ("-1" "-e" "none"))
- (tramp-rcp-args ("-1"))
- (tramp-rcp-keep-date-arg nil)
- (tramp-su-program nil)
- (tramp-su-args nil)
- (tramp-telnet-program nil)
- (tramp-telnet-args nil))
+ (tramp-login-args ("-1" "-e" "none"))
+ (tramp-copy-args ("-1"))
+ (tramp-copy-keep-date-arg nil))
("ssh2" (tramp-connection-function tramp-open-connection-rsh)
- (tramp-rsh-program "ssh")
- (tramp-rcp-program nil)
+ (tramp-login-program "ssh")
+ (tramp-copy-program nil)
(tramp-remote-sh "/bin/sh")
- (tramp-rsh-args ("-2" "-e" "none"))
- (tramp-rcp-args ("-2"))
- (tramp-rcp-keep-date-arg nil)
- (tramp-su-program nil)
- (tramp-su-args nil)
- (tramp-telnet-program nil)
- (tramp-telnet-args nil))
+ (tramp-login-args ("-2" "-e" "none"))
+ (tramp-copy-args ("-2"))
+ (tramp-copy-keep-date-arg nil))
("ssh1_old"
(tramp-connection-function tramp-open-connection-rsh)
- (tramp-rsh-program "ssh1")
- (tramp-rcp-program nil)
+ (tramp-login-program "ssh1")
+ (tramp-copy-program nil)
(tramp-remote-sh "/bin/sh")
- (tramp-rsh-args ("-e" "none"))
- (tramp-rcp-args nil)
- (tramp-rcp-keep-date-arg nil)
- (tramp-su-program nil)
- (tramp-su-args nil)
- (tramp-telnet-program nil)
- (tramp-telnet-args nil))
+ (tramp-login-args ("-e" "none"))
+ (tramp-copy-args nil)
+ (tramp-copy-keep-date-arg nil))
("ssh2_old"
(tramp-connection-function tramp-open-connection-rsh)
- (tramp-rsh-program "ssh2")
- (tramp-rcp-program nil)
+ (tramp-login-program "ssh2")
+ (tramp-copy-program nil)
+ (tramp-remote-sh "/bin/sh")
+ (tramp-login-args ("-e" "none"))
+ (tramp-copy-args nil)
+ (tramp-copy-keep-date-arg nil))
+ ("remsh" (tramp-connection-function tramp-open-connection-rsh)
+ (tramp-login-program "remsh")
+ (tramp-copy-program nil)
(tramp-remote-sh "/bin/sh")
- (tramp-rsh-args ("-e" "none"))
- (tramp-rcp-args nil)
- (tramp-rcp-keep-date-arg nil)
- (tramp-su-program nil)
- (tramp-su-args nil)
- (tramp-telnet-program nil)
- (tramp-telnet-args nil))
+ (tramp-login-args nil)
+ (tramp-copy-args nil)
+ (tramp-copy-keep-date-arg nil))
("telnet"
(tramp-connection-function tramp-open-connection-telnet)
- (tramp-rsh-program nil)
- (tramp-rcp-program nil)
+ (tramp-login-program "telnet")
+ (tramp-copy-program nil)
(tramp-remote-sh "/bin/sh")
- (tramp-rsh-args nil)
- (tramp-rcp-args nil)
- (tramp-rcp-keep-date-arg nil)
- (tramp-su-program nil)
- (tramp-su-args nil)
- (tramp-telnet-program "telnet")
- (tramp-telnet-args nil))
+ (tramp-login-args nil)
+ (tramp-copy-args nil)
+ (tramp-copy-keep-date-arg nil))
("su" (tramp-connection-function tramp-open-connection-su)
- (tramp-rsh-program nil)
- (tramp-rcp-program nil)
+ (tramp-login-program "su")
+ (tramp-copy-program nil)
(tramp-remote-sh "/bin/sh")
- (tramp-rsh-args nil)
- (tramp-rcp-args nil)
- (tramp-rcp-keep-date-arg nil)
- (tramp-su-program "su")
- (tramp-su-args ("-" "%u"))
- (tramp-telnet-program nil)
- (tramp-telnet-args nil))
+ (tramp-login-args ("-" "%u"))
+ (tramp-copy-args nil)
+ (tramp-copy-keep-date-arg nil))
("sudo" (tramp-connection-function tramp-open-connection-su)
- (tramp-rsh-program nil)
- (tramp-rcp-program nil)
+ (tramp-login-program "sudo")
+ (tramp-copy-program nil)
(tramp-remote-sh "/bin/sh")
- (tramp-rsh-args nil)
- (tramp-rcp-args nil)
- (tramp-rcp-keep-date-arg nil)
- (tramp-su-program "sudo")
- (tramp-su-args ("-u" "%u" "-s"))
- (tramp-telnet-program nil)
- (tramp-telnet-args nil))
+ (tramp-login-args ("-u" "%u" "-s"
+ "-p" "Password:"))
+ (tramp-copy-args nil)
+ (tramp-copy-keep-date-arg nil))
("multi" (tramp-connection-function tramp-open-connection-multi)
- (tramp-rsh-program nil)
- (tramp-rcp-program nil)
+ (tramp-login-program nil)
+ (tramp-copy-program nil)
(tramp-remote-sh "/bin/sh")
- (tramp-rsh-args nil)
- (tramp-rcp-args nil)
- (tramp-rcp-keep-date-arg nil)
- (tramp-su-program nil)
- (tramp-su-args nil)
- (tramp-telnet-program nil)
- (tramp-telnet-args nil))
+ (tramp-login-args nil)
+ (tramp-copy-args nil)
+ (tramp-copy-keep-date-arg nil))
("scpx" (tramp-connection-function tramp-open-connection-rsh)
- (tramp-rsh-program "ssh")
- (tramp-rcp-program "scp")
+ (tramp-login-program "ssh")
+ (tramp-copy-program "scp")
(tramp-remote-sh "/bin/sh")
- (tramp-rsh-args ("-e" "none" "-t" "-t" "/bin/sh"))
- (tramp-rcp-args nil)
- (tramp-rcp-keep-date-arg "-p")
- (tramp-telnet-program nil)
- (tramp-telnet-args nil))
+ (tramp-login-args ("-e" "none" "-t" "-t" "/bin/sh"))
+ (tramp-copy-args nil)
+ (tramp-copy-keep-date-arg "-p"))
("sshx" (tramp-connection-function tramp-open-connection-rsh)
- (tramp-rsh-program "ssh")
- (tramp-rcp-program nil)
+ (tramp-login-program "ssh")
+ (tramp-copy-program nil)
(tramp-remote-sh "/bin/sh")
- (tramp-rsh-args ("-e" "none" "-t" "-t" "/bin/sh"))
- (tramp-rcp-args nil)
- (tramp-rcp-keep-date-arg nil)
- (tramp-su-program nil)
- (tramp-su-args nil)
- (tramp-telnet-program nil)
- (tramp-telnet-args nil))
+ (tramp-login-args ("-e" "none" "-t" "-t" "/bin/sh"))
+ (tramp-copy-args nil)
+ (tramp-copy-keep-date-arg nil))
("krlogin"
(tramp-connection-function tramp-open-connection-rsh)
- (tramp-rsh-program "krlogin")
- (tramp-rcp-program nil)
+ (tramp-login-program "krlogin")
+ (tramp-copy-program nil)
(tramp-remote-sh "/bin/sh")
- (tramp-rsh-args ("-x"))
- (tramp-rcp-args nil)
- (tramp-rcp-keep-date-arg nil)
- (tramp-su-program nil)
- (tramp-su-args nil)
- (tramp-telnet-program nil)
- (tramp-telnet-args nil))
+ (tramp-login-args ("-x"))
+ (tramp-copy-args nil)
+ (tramp-copy-keep-date-arg nil))
("plink"
(tramp-connection-function tramp-open-connection-rsh)
- (tramp-rsh-program "plink")
- (tramp-rcp-program nil)
+ (tramp-login-program "plink")
+ (tramp-copy-program nil)
+ (tramp-remote-sh "/bin/sh")
+ (tramp-login-args ("-ssh")) ;optionally add "-v"
+ (tramp-copy-args nil)
+ (tramp-copy-keep-date-arg nil))
+ ("plink1"
+ (tramp-connection-function tramp-open-connection-rsh)
+ (tramp-login-program "plink")
+ (tramp-copy-program nil)
(tramp-remote-sh "/bin/sh")
- (tramp-rsh-args ("-ssh")) ;optionally add "-v"
- (tramp-rcp-args nil)
- (tramp-rcp-keep-date-arg nil)
- (tramp-su-program nil)
- (tramp-su-args nil)
- (tramp-telnet-program nil)
- (tramp-telnet-args nil))
+ (tramp-login-args ("-1" "-ssh")) ;optionally add "-v"
+ (tramp-copy-args nil)
+ (tramp-copy-keep-date-arg nil))
("pscp"
(tramp-connection-function tramp-open-connection-rsh)
- (tramp-rsh-program "plink")
- (tramp-rcp-program "pscp")
+ (tramp-login-program "plink")
+ (tramp-copy-program "pscp")
(tramp-remote-sh "/bin/sh")
- (tramp-rsh-args ("-ssh"))
- (tramp-rcp-args nil)
- (tramp-rcp-keep-date-arg "-p")
- (tramp-su-program nil)
- (tramp-su-args nil)
- (tramp-telnet-program nil)
- (tramp-telnet-args nil))
+ (tramp-login-args ("-ssh"))
+ (tramp-copy-args nil)
+ (tramp-copy-keep-date-arg "-p"))
("fcp"
(tramp-connection-function tramp-open-connection-rsh)
- (tramp-rsh-program "fsh")
- (tramp-rcp-program "fcp")
+ (tramp-login-program "fsh")
+ (tramp-copy-program "fcp")
(tramp-remote-sh "/bin/sh -i")
- (tramp-rsh-args ("sh" "-i"))
- (tramp-rcp-args nil)
- (tramp-rcp-keep-date-arg "-p")
- (tramp-su-program nil)
- (tramp-su-args nil)
- (tramp-telnet-program nil)
- (tramp-telnet-args nil))
+ (tramp-login-args ("sh" "-i"))
+ (tramp-copy-args nil)
+ (tramp-copy-keep-date-arg "-p"))
)
"*Alist of methods for remote files.
This is a list of entries of the form (NAME PARAM1 PARAM2 ...).
which groks tilde expansion, but it can search for it. Also note
that \"/bin/sh\" exists on all Unixen, this might not be true for
the value that you decide to use. You Have Been Warned.
- * `tramp-rsh-program'
- This specifies the name of the program to use for rsh; this might be
- the absolute filename of rsh or the name of a workalike program.
- * `tramp-rsh-args'
+ * `tramp-login-program'
+ This specifies the name of the program to use for logging in to the
+ remote host. Depending on `tramp-connection-function', this may be
+ the name of rsh or a workalike program (when
+ `tramp-connection-function' is `tramp-open-connection-rsh'), or the
+ name of telnet or a workalike (for `tramp-open-connection-telnet'),
+ or the name of su or a workalike (for `tramp-open-connection-su').
+ * `tramp-login-args'
This specifies the list of arguments to pass to the above
mentioned program. Please note that this is a list of arguments,
that is, normally you don't want to put \"-a -b\" or \"-f foo\"
here. Instead, you want two list elements, one for \"-a\" and one
for \"-b\", or one for \"-f\" and one for \"foo\".
- * `tramp-rcp-program'
- This specifies the name of the program to use for rcp; this might be
- the absolute filename of rcp or the name of a workalike program.
- * `tramp-rcp-args'
+ If `tramp-connection-function' is `tramp-open-connection-su', then
+ \"%u\" in this list is replaced by the user name, and \"%%\" can
+ be used to obtain a literal percent character.
+ * `tramp-copy-program'
+ This specifies the name of the program to use for remotely copying
+ the file; this might be the absolute filename of rcp or the name of
+ a workalike program.
+ * `tramp-copy-args'
This specifies the list of parameters to pass to the above mentioned
- program, the hints for `tramp-rsh-args' also apply here.
- * `tramp-rcp-keep-date-arg'
- This specifies the parameter to use for `rcp' when the timestamp
- of the original file should be kept. For `rcp', use `-p', for
+ program, the hints for `tramp-login-args' also apply here.
+ * `tramp-copy-keep-date-arg'
+ This specifies the parameter to use for the copying program when the
+ timestamp of the original file should be kept. For `rcp', use `-p', for
`rsync', use `-t'.
- * `tramp-su-program'
- This specifies the name of the program to use for `su'.
- * `tramp-su-args'
- This specifies the list of arguments to pass to `su'.
- \"%u\" is replaced by the user name, use \"%%\" for a literal
- percent character.
- * `tramp-telnet-program'
- Specifies the telnet program to use when using
- `tramp-open-connection-telnet' to log in.
- * `tramp-telnet-args'
- Specifies list of arguments to pass to `telnet'. The hints for
- `tramp-rsh-args' also apply here.
-
-What does all this mean? Well, you should specify `tramp-rsh-program',
-`tramp-telnet-program' or `tramp-su-program' for all methods; this program
-is used to log in to the remote site. Then, there are two ways to
-actually transfer the files between the local and the remote side.
-One way is using an additional rcp-like program. If you want to do
-this, set `tramp-rcp-program' in the method.
+
+What does all this mean? Well, you should specify `tramp-login-program'
+for all methods; this program is used to log in to the remote site. Then,
+there are two ways to actually transfer the files between the local and the
+remote side. One way is using an additional rcp-like program. If you want
+to do this, set `tramp-copy-program' in the method.
Another possibility for file transfer is inline transfer, i.e. the
-file is passed through the same buffer used by `tramp-rsh-program'. In
+file is passed through the same buffer used by `tramp-login-program'. In
this case, the file contents need to be protected since the
-`tramp-rsh-program' might use escape codes or the connection might not
+`tramp-login-program' might use escape codes or the connection might not
be eight-bit clean. Therefore, file contents are encoded for transit.
See the variable `tramp-coding-commands' for details.
So, to summarize: if the method is an out-of-band method, then you
-must specify `tramp-rcp-program' and `tramp-rcp-args'. If it is an
+must specify `tramp-copy-program' and `tramp-copy-args'. If it is an
inline method, then these two parameters should be nil. Every method,
inline or out of band, must specify `tramp-connection-function' plus
-the associated arguments (for example, the telnet program if you chose
+the associated arguments (for example, the login program if you chose
`tramp-open-connection-telnet').
Notes:
:type '(repeat
(cons string
(set (list (const tramp-connection-function) function)
- (list (const tramp-rsh-program)
+ (list (const tramp-login-program)
(choice (const nil) string))
- (list (const tramp-rcp-program)
+ (list (const tramp-copy-program)
(choice (const nil) string))
(list (const tramp-remote-sh)
(choice (const nil) string))
- (list (const tramp-rsh-args) (repeat string))
- (list (const tramp-rcp-args) (repeat string))
- (list (const tramp-rcp-keep-date-arg)
- (choice (const nil) string))
- (list (const tramp-su-program)
+ (list (const tramp-login-args) (repeat string))
+ (list (const tramp-copy-args) (repeat string))
+ (list (const tramp-copy-keep-date-arg)
(choice (const nil) string))
- (list (const tramp-su-args) (repeat string))
(list (const tramp-encoding-command)
(choice (const nil) string))
(list (const tramp-decoding-command)
(list (const tramp-encoding-function)
(choice (const nil) function))
(list (const tramp-decoding-function)
- (choice (const nil) function))
- (list (const tramp-telnet-program)
- (choice (const nil) string))
- (list (const tramp-telnet-args) (repeat string))))))
+ (choice (const nil) function))))))
(defcustom tramp-multi-methods '("multi" "multiu")
"*List of multi-hop methods.
(defcustom tramp-multi-connection-function-alist
'(("telnet" tramp-multi-connect-telnet "telnet %h%n")
("rsh" tramp-multi-connect-rlogin "rsh %h -l %u%n")
+ ("remsh" tramp-multi-connect-rlogin "remsh %h -l %u%n")
("ssh" tramp-multi-connect-rlogin "ssh %h -l %u%n")
("su" tramp-multi-connect-su "su - %u%n")
- ("sudo" tramp-multi-connect-su "sudo -u %u -s%n"))
+ ("sudo" tramp-multi-connect-su "sudo -u %u -s -p Password:%n"))
"*List of connection functions for multi-hop methods.
Each list item is a list of three items (METHOD FUNCTION COMMAND),
where METHOD is the name as used in the file name, FUNCTION is the
:group 'tramp
:type '(repeat (list string function string)))
-(defcustom tramp-default-method "ssh"
+(defcustom tramp-default-method
+ (if (and (fboundp 'executable-find)
+ (executable-find "plink"))
+ "plink"
+ "ssh")
"*Default method to use for transferring files.
See `tramp-methods' for possibilities.
Also see `tramp-default-method-alist'."
(unless (memq system-type '(windows-nt))
'((tramp-parse-rhosts "/etc/hosts.equiv")
(tramp-parse-rhosts "~/.rhosts")))
- "Default list of (FUNCTION FILE) pairs to be examined for rsh methods."
-)
+ "Default list of (FUNCTION FILE) pairs to be examined for rsh methods.")
;; Default values for non-Unices seeked
(defconst tramp-completion-function-alist-ssh
(tramp-parse-rhosts "~/.shosts")
(tramp-parse-shosts "~/.ssh/known_hosts")
(tramp-parse-sconfig "~/.ssh/config")))
- "Default list of (FUNCTION FILE) pairs to be examined for ssh methods."
-)
+ "Default list of (FUNCTION FILE) pairs to be examined for ssh methods.")
;; Default values for non-Unices seeked
(defconst tramp-completion-function-alist-telnet
(unless (memq system-type '(windows-nt))
'((tramp-parse-hosts "/etc/hosts")))
- "Default list of (FUNCTION FILE) pairs to be examined for telnet methods."
-)
+ "Default list of (FUNCTION FILE) pairs to be examined for telnet methods.")
;; Default values for non-Unices seeked
(defconst tramp-completion-function-alist-su
(unless (memq system-type '(windows-nt))
'((tramp-parse-passwd "/etc/passwd")))
- "Default list of (FUNCTION FILE) pairs to be examined for su methods."
-)
+ "Default list of (FUNCTION FILE) pairs to be examined for su methods.")
(defcustom tramp-completion-function-alist
(list (cons "rcp" tramp-completion-function-alist-rsh)
:type 'regexp)
(defcustom tramp-shell-prompt-pattern
- "^[^#$%>\n]*[#$%>] *"
+ "^[^#$%>\n]*[#$%>] *\\(\e\\[[0-9;]*[a-zA-Z]\\)?"
"Regexp to match prompts from remote shell.
Normally, Tramp expects you to configure `shell-prompt-pattern'
correctly, but sometimes it happens that you are connecting to a
remote host which sends a different kind of shell prompt. Therefore,
Tramp recognizes things matched by `shell-prompt-pattern' as prompt,
and also things matched by this variable. The default value of this
-variable is the same as the default value of `shell-prompt-pattern',
+variable is similar to the default value of `shell-prompt-pattern',
which should work well in many cases."
:group 'tramp
:type 'regexp)
In the connection buffer, this variable has the value of the like-named
method parameter, as specified in `tramp-methods' (which see).")
-(defvar tramp-rsh-program nil
+(defvar tramp-login-program nil
"This internal variable holds a parameter for `tramp-methods'.
In the connection buffer, this variable has the value of the like-named
method parameter, as specified in `tramp-methods' (which see).")
-(defvar tramp-rsh-args nil
+(defvar tramp-login-args nil
"This internal variable holds a parameter for `tramp-methods'.
In the connection buffer, this variable has the value of the like-named
method parameter, as specified in `tramp-methods' (which see).")
-(defvar tramp-rcp-program nil
+(defvar tramp-copy-program nil
"This internal variable holds a parameter for `tramp-methods'.
In the connection buffer, this variable has the value of the like-named
method parameter, as specified in `tramp-methods' (which see).")
-(defvar tramp-rcp-args nil
+(defvar tramp-copy-args nil
"This internal variable holds a parameter for `tramp-methods'.
In the connection buffer, this variable has the value of the like-named
method parameter, as specified in `tramp-methods' (which see).")
-(defvar tramp-rcp-keep-date-arg nil
+(defvar tramp-copy-keep-date-arg nil
"This internal variable holds a parameter for `tramp-methods'.
In the connection buffer, this variable has the value of the like-named
method parameter, as specified in `tramp-methods' (which see).")
In the connection buffer, this variable has the value of the like-named
method parameter, as specified in `tramp-methods' (which see).")
-(defvar tramp-telnet-program nil
- "This internal variable holds a parameter for `tramp-methods'.
-In the connection buffer, this variable has the value of the like-named
-method parameter, as specified in `tramp-methods' (which see).")
-
-(defvar tramp-telnet-args nil
- "This internal variable holds a parameter for `tramp-methods'.
-In the connection buffer, this variable has the value of the like-named
-method parameter, as specified in `tramp-methods' (which see).")
-
-(defvar tramp-su-program nil
- "This internal variable holds a parameter for `tramp-methods'.
-In the connection buffer, this variable has the value of the like-named
-method parameter, as specified in `tramp-methods' (which see).")
-
;; CCC `local in each buffer'?
(defvar tramp-ls-command nil
"This command is used to get a long listing with numeric user and group ids.
(setq numchase (1+ numchase))
(when (file-name-absolute-p symlink-target)
(setq result nil))
+ ;; If the symlink was absolute, we'll get a string like
+ ;; "/user@host:/some/target"; extract the
+ ;; "/some/target" part from it.
+ (when (tramp-tramp-file-p symlink-target)
+ (with-parsed-tramp-file-name symlink-target sym
+ (unless (equal (list multi-method method user host)
+ (list sym-multi-method sym-method
+ sym-user sym-host))
+ (error "Symlink target `%s' on wrong host"
+ symlink-target))
+ (setq symlink-target localname)))
(setq steps
(append (tramp-split-string symlink-target "/") steps)))
(t
"Like `file-symlink-p' for tramp files."
(with-parsed-tramp-file-name filename nil
(let ((x (car (tramp-handle-file-attributes filename))))
- (when (stringp x) x))))
+ (when (stringp x)
+ ;; When Tramp is running on VMS, then `file-name-absolute-p'
+ ;; might do weird things.
+ (if (file-name-absolute-p x)
+ (tramp-make-tramp-file-name
+ multi-method method user host x)
+ x)))))
(defun tramp-handle-file-writable-p (filename)
"Like `file-writable-p' for tramp files."
;; source and target file.
;; CCC: If both source and target are Tramp files,
- ;; and both are using the same rcp-program, then we
+ ;; and both are using the same copy-program, then we
;; can invoke rcp directly. Note that
;; default-directory should point to a local
;; directory if we want to invoke rcp.
;; would otherwise use backslash.
(let ((directory-sep-char ?/))
(tramp-make-tramp-file-name
- multi-method method user host
+ multi-method (or method (tramp-find-default-method user host))
+ user host
(tramp-drop-volume-letter
(tramp-run-real-handler 'expand-file-name
(list localname)))))))))
(with-parsed-tramp-file-name filename nil
(let ((output-buf (get-buffer-create "*tramp output*"))
(tramp-buf (tramp-get-buffer multi-method method user host))
- (rcp-program (tramp-get-rcp-program
- multi-method
- (tramp-find-method multi-method method user host)
- user host))
- (rcp-args (tramp-get-rcp-args
- multi-method
- (tramp-find-method multi-method method user host)
- user host))
+ (copy-program (tramp-get-copy-program
+ multi-method
+ (tramp-find-method multi-method method user host)
+ user host))
+ (copy-args (tramp-get-copy-args
+ multi-method
+ (tramp-find-method multi-method method user host)
+ user host))
;; We used to bind the following as late as possible.
;; loc-enc and loc-dec were bound directly before the if
;; statement that checks them. But the functions
(error "Cannot make local copy of non-existing file `%s'"
filename))
(setq tmpfil (tramp-make-temp-file))
- (cond (rcp-program
+ (cond (copy-program
;; Use rcp-like program for file transfer.
(tramp-message-for-buffer
multi-method method user host
(unless (equal
0
(apply #'call-process
- rcp-program
+ copy-program
nil output-buf nil
- (append rcp-args
+ (append copy-args
(list
- (tramp-make-rcp-program-file-name
+ (tramp-make-copy-program-file-name
user host
(tramp-shell-quote-argument localname))
tmpfil))))
(error
(concat "tramp-handle-file-local-copy: `%s' didn't work, "
"see buffer `%s' for details")
- rcp-program output-buf))
+ copy-program output-buf))
(tramp-message-for-buffer
multi-method method user host
5 "Fetching %s to tmp file %s...done" filename tmpfil))
(error "File not overwritten")))
(with-parsed-tramp-file-name filename nil
(let ((curbuf (current-buffer))
- (rcp-program (tramp-get-rcp-program
- multi-method (tramp-find-method multi-method method user host)
- user host))
- (rcp-args (tramp-get-rcp-args
+ (copy-program (tramp-get-copy-program
+ multi-method
+ (tramp-find-method multi-method method user host)
+ user host))
+ (copy-args (tramp-get-copy-args
multi-method
(tramp-find-method multi-method method user host)
user host))
;; decoding command must be specified. However, if the method
;; _also_ specifies an encoding function, then that is used for
;; encoding the contents of the tmp file.
- (cond (rcp-program
+ (cond (copy-program
;; use rcp-like program for file transfer
- (let ((argl (append rcp-args
+ (let ((argl (append copy-args
(list
tmpfil
- (tramp-make-rcp-program-file-name
+ (tramp-make-copy-program-file-name
user host
(tramp-shell-quote-argument localname))))))
(tramp-message-for-buffer
multi-method method user host
- 6 "Writing tmp file using `%s'..." rcp-program)
+ 6 "Writing tmp file using `%s'..." copy-program)
(save-excursion (set-buffer trampbuf) (erase-buffer))
(when tramp-debug-buffer
(save-excursion
method user host))
(goto-char (point-max))
(tramp-insert-with-face
- 'bold (format "$ %s %s\n" rcp-program
+ 'bold (format "$ %s %s\n" copy-program
(mapconcat 'identity argl " ")))))
(unless (equal 0
(apply #'call-process
- rcp-program nil trampbuf nil argl))
+ copy-program nil trampbuf nil argl))
(pop-to-buffer trampbuf)
(error
"Cannot write region to file `%s', command `%s' failed"
- filename rcp-program))
+ filename copy-program))
(tramp-message-for-buffer
multi-method method user host
6 "Transferring file using `%s'...done"
- rcp-program)))
+ copy-program)))
((and rem-enc rem-dec)
;; Use inline file transfer
(let ((tmpbuf (get-buffer-create " *tramp file transfer*")))
(fn (apply (cdr fn) args))
(t (tramp-run-real-handler operation args))))))
+;;;###autoload
(put 'tramp-file-name-handler 'file-remote-p t) ;for file-remote-p
;;;###autoload
(save-match-data (apply (cdr fn) args))
(tramp-completion-run-real-handler operation args))))
+;;;###autoload
+(put 'tramp-completion-file-name-handler 'safe-magic t)
+
;; Register in file name handler alist
;;;###autoload
(add-to-list 'file-name-handler-alist
(p (apply 'start-process
(tramp-buffer-name multi-method method user host)
(tramp-get-buffer multi-method method user host)
- (tramp-get-telnet-program
+ (tramp-get-login-program
multi-method
(tramp-find-method multi-method method user host)
user host)
host
- (tramp-get-telnet-args
+ (tramp-get-login-args
multi-method
(tramp-find-method multi-method method user host)
user host)))
(let ((process-environment (copy-sequence process-environment))
(bufnam (tramp-buffer-name multi-method method user host))
(buf (tramp-get-buffer multi-method method user host))
- (rsh-program (tramp-get-rsh-program
+ (login-program (tramp-get-login-program
multi-method
(tramp-find-method multi-method method user host)
user host))
- (rsh-args (tramp-get-rsh-args
+ (login-args (tramp-get-login-args
multi-method
(tramp-find-method multi-method method user host)
user host)))
;; The following should be changed. We need a more general
;; mechanism to parse extra host args.
(when (string-match "\\([^#]*\\)#\\(.*\\)" host)
- (setq rsh-args (cons "-p" (cons (match-string 2 host) rsh-args)))
+ (setq login-args (cons "-p" (cons (match-string 2 host) rsh-args)))
(setq host (match-string 1 host)))
(setenv "TERM" tramp-terminal-type)
(let* ((default-directory (tramp-temporary-file-directory))
(> emacs-major-version 20))
tramp-dos-coding-system))
(p (if (and user (not (string= user "")))
- (apply #'start-process bufnam buf rsh-program
- host "-l" user rsh-args)
- (apply #'start-process bufnam buf rsh-program
- host rsh-args)))
+ (apply #'start-process bufnam buf login-program
+ host "-l" user login-args)
+ (apply #'start-process bufnam buf login-program
+ host login-args)))
(found nil))
(process-kill-without-query p)
(p (apply 'start-process
(tramp-buffer-name multi-method method user host)
(tramp-get-buffer multi-method method user host)
- (tramp-get-su-program
+ (tramp-get-login-program
multi-method
(tramp-find-method multi-method method user host)
user host)
(mapcar
(lambda (x)
(format-spec x `((?u . ,(or user "root")))))
- (tramp-get-su-args
+ (tramp-get-login-args
multi-method
(tramp-find-method multi-method method user host)
user host))))
"]]"))))
found))
+(defun tramp-wait-for-shell-prompt (proc timeout)
+ "Wait for the shell prompt to appear from process PROC within TIMEOUT seconds.
+See `tramp-wait-for-regexp' for more details.
+Shell prompt pattern is determined by variables `shell-prompt-pattern'
+and `tramp-shell-prompt-pattern'."
+ (tramp-wait-for-regexp
+ proc timeout
+ (format "\\(%s\\|%s\\)\\'"
+ shell-prompt-pattern tramp-shell-prompt-pattern)))
+
+(defun tramp-barf-if-no-shell-prompt (proc timeout &rest error-args)
+ "Wait for shell prompt and barf if none appears.
+Looks at process PROC to see if a shell prompt appears in TIMEOUT
+seconds. If not, it produces an error message with the given ERROR-ARGS."
+ (unless (tramp-wait-for-shell-prompt proc timeout)
+ (pop-to-buffer (buffer-name))
+ (apply 'error error-args)))
+
(defun tramp-enter-password (p prompt)
"Prompt for a password and send it to the remote end.
Uses PROMPT as a prompt and sends the password to process P."
;; because that is read by some sh implementations (eg, bash when
;; called as sh) on startup; this way, we avoid the startup file
;; clobbering $PS1.
- (process-send-string nil (format "exec env 'ENV=' 'PS1=$ ' %s%s"
- (tramp-get-remote-sh
- multi-method method user host)
- tramp-rsh-end-of-line))
- (when tramp-debug-buffer
- (save-excursion
- (set-buffer (tramp-get-debug-buffer multi-method method user host))
- (goto-char (point-max))
- (tramp-insert-with-face
- 'bold (format "$ exec env PS1='$ ' %s\n"
- (tramp-get-remote-sh multi-method method user host)))))
- (tramp-message 9 "Waiting 30s for remote `%s' to come up..."
- (tramp-get-remote-sh multi-method method user host))
- (unless (tramp-wait-for-regexp
- p 30 (format "\\(%s\\|%s\\)\\'"
- shell-prompt-pattern tramp-shell-prompt-pattern))
- (pop-to-buffer (buffer-name))
- (error "Remote `%s' didn't come up. See buffer `%s' for details"
- (tramp-get-remote-sh multi-method method user host)
- (buffer-name)))
- (tramp-message 9 "Setting up remote shell environment")
+ (tramp-send-command-internal
+ multi-method method user host
+ (format "exec env 'ENV=' 'PS1=$ ' %s"
+ (tramp-get-remote-sh multi-method method user host))
+ (format "remote `%s' to come up"
+ (tramp-get-remote-sh multi-method method user host)))
+ (tramp-barf-if-no-shell-prompt
+ p 30
+ "Remote `%s' didn't come up. See buffer `%s' for details"
+ (tramp-get-remote-sh multi-method method user host)
+ (buffer-name))
+ (tramp-message 8 "Setting up remote shell environment")
(tramp-discard-garbage-erase-buffer p multi-method method user host)
- (process-send-string
- nil (format "stty -inlcr -echo kill '^U'%s" tramp-rsh-end-of-line))
- (unless (tramp-wait-for-regexp
- p 30 (format "\\(%s\\|%s\\)\\'"
- shell-prompt-pattern tramp-shell-prompt-pattern))
- (pop-to-buffer (buffer-name))
- (error "Couldn't `stty -echo', see buffer `%s'" (buffer-name)))
+ (tramp-send-command-internal multi-method method user host
+ "stty -inlcr -echo kill '^U'")
(erase-buffer)
- (process-send-string nil (format "TERM=dumb; export TERM%s"
- tramp-rsh-end-of-line))
- (unless (tramp-wait-for-regexp
- p 30 (format "\\(%s\\|%s\\)\\'"
- shell-prompt-pattern tramp-shell-prompt-pattern))
- (pop-to-buffer (buffer-name))
- (error "Couldn't `TERM=dumb; export TERM', see buffer `%s'" (buffer-name)))
+ (tramp-send-command-internal multi-method method user host
+ "TERM=dumb; export TERM")
;; Try to set up the coding system correctly.
;; CCC this can't be the right way to do it. Hm.
(save-excursion
(erase-buffer)
(tramp-message 9 "Determining coding system")
- (process-send-string nil (format "echo foo ; echo bar %s"
- tramp-rsh-end-of-line))
- (unless (tramp-wait-for-regexp
- p 30 (format "\\(%s\\|%s\\)\\'"
- shell-prompt-pattern tramp-shell-prompt-pattern))
- (pop-to-buffer (buffer-name))
- (error "Couldn't `echo foo; echo bar' to determine line endings'"))
+ (tramp-send-command-internal multi-method method user host
+ "echo foo ; echo bar")
(goto-char (point-min))
(if (featurep 'mule)
;; Use MULE to select the right EOL convention for communicating
;; because we're running on a non-MULE Emacs. Let's try
;; stty, instead.
(tramp-message 9 "Trying `stty -onlcr'")
- (process-send-string nil (format "stty -onlcr%s" tramp-rsh-end-of-line))
- (unless (tramp-wait-for-regexp
- p 30 (format "\\(%s\\|%s\\)\\'"
- shell-prompt-pattern tramp-shell-prompt-pattern))
- (pop-to-buffer (buffer-name))
- (error "Couldn't `stty -onlcr', see buffer `%s'" (buffer-name))))))
+ (tramp-send-command-internal multi-method method user host
+ "stty -onlcr"))))
(erase-buffer)
(tramp-message
9 "Waiting 30s for `HISTFILE=$HOME/.tramp_history; HISTSIZE=1'")
- (process-send-string
- nil (format "HISTFILE=$HOME/.tramp_history; HISTSIZE=1%s"
- tramp-rsh-end-of-line))
- (unless (tramp-wait-for-regexp
- p 30 (format "\\(%s\\|%s\\)\\'"
- shell-prompt-pattern tramp-shell-prompt-pattern))
- (pop-to-buffer (buffer-name))
- (error (concat "Couldn't `HISTFILE=$HOME/.tramp_history; "
- "HISTSIZE=1', see buffer `%s'")
- (buffer-name)))
+ (tramp-send-command-internal multi-method method user host
+ "HISTFILE=$HOME/.tramp_history; HISTSIZE=1")
(erase-buffer)
(tramp-message 9 "Waiting 30s for `set +o vi +o emacs'")
- (process-send-string
- nil (format "set +o vi +o emacs%s" ;mustn't `>/dev/null' with AIX?
- tramp-rsh-end-of-line))
- (unless (tramp-wait-for-regexp
- p 30 (format "\\(%s\\|%s\\)\\'"
- shell-prompt-pattern tramp-shell-prompt-pattern))
- (pop-to-buffer (buffer-name))
- (error "Couldn't `set +o vi +o emacs', see buffer `%s'"
- (buffer-name)))
+ (tramp-send-command-internal multi-method method user host
+ "set +o vi +o emacs")
(erase-buffer)
(tramp-message 9 "Waiting 30s for `unset MAIL MAILCHECK MAILPATH'")
- (process-send-string
- nil (format "unset MAIL MAILCHECK MAILPATH 1>/dev/null 2>/dev/null%s"
- tramp-rsh-end-of-line))
- (unless (tramp-wait-for-regexp
- p 30 (format "\\(%s\\|%s\\)\\'"
- shell-prompt-pattern tramp-shell-prompt-pattern))
- (pop-to-buffer (buffer-name))
- (error "Couldn't `unset MAIL MAILCHECK MAILPATH', see buffer `%s'"
- (buffer-name)))
+ (tramp-send-command-internal
+ multi-method method user host
+ "unset MAIL MAILCHECK MAILPATH 1>/dev/null 2>/dev/null")
(erase-buffer)
(tramp-message 9 "Waiting 30s for `unset CDPATH'")
- (process-send-string
- nil (format "unset CDPATH%s" tramp-rsh-end-of-line))
- (unless (tramp-wait-for-regexp
- p 30 (format "\\(%s\\|%s\\)\\'"
- shell-prompt-pattern tramp-shell-prompt-pattern))
- (pop-to-buffer (buffer-name))
- (error "Couldn't `unset CDPATH', see buffer `%s'"
- (buffer-name)))
+ (tramp-send-command-internal multi-method method user host
+ "unset CDPATH")
(erase-buffer)
(tramp-message 9 "Setting shell prompt")
;; Douglas Gray Stephens <DGrayStephens@slb.com> says that we must
" -e '" tramp-perl-file-attributes "' $1 2>/dev/null\n"
"}"))
(tramp-wait-for-output)
- (unless (tramp-get-rcp-program
+ (unless (tramp-get-copy-program
multi-method
(tramp-find-method multi-method method user host)
user host)
(tramp-set-connection-property "ln" ln multi-method method user host)))
(erase-buffer)
;; Find the right encoding/decoding commands to use.
- (unless (tramp-get-rcp-program
+ (unless (tramp-get-copy-program
multi-method
(tramp-find-method multi-method method user host)
user host)
(process-send-string proc
(concat command tramp-rsh-end-of-line))))
+(defun tramp-send-command-internal
+ (multi-method method user host command &optional msg)
+ "Send command to remote host and wait for success.
+Sends COMMAND, then waits 30 seconds for shell prompt."
+ (tramp-send-command multi-method method user host command t t)
+ (when msg
+ (tramp-message 9 "Waiting 30s for %s..." msg))
+ (tramp-barf-if-no-shell-prompt
+ nil 30
+ "Couldn't `%s', see buffer `%s'" command (buffer-name)))
+
(defun tramp-wait-for-output (&optional timeout)
"Wait for output from remote rsh command."
(let ((proc (get-buffer-process (current-buffer)))
(incf i)))
(concat prefix hops localname)))
-(defun tramp-make-rcp-program-file-name (user host localname)
- "Create a file name suitable to be passed to `rcp'."
+(defun tramp-make-copy-program-file-name (user host localname)
+ "Create a file name suitable to be passed to `rcp' and workalikes."
(if user
(format "%s@%s:%s" user host localname)
(format "%s:%s" host localname)))
(defun tramp-method-out-of-band-p (multi-method method user host)
"Return t if this is an out-of-band method, nil otherwise.
It is important to check for this condition, since it is not possible
-to enter a password for the `tramp-rcp-program'."
- (tramp-get-rcp-program
+to enter a password for the `tramp-copy-program'."
+ (tramp-get-copy-program
multi-method
(tramp-find-method multi-method method user host)
user host))
(error "Method `%s' didn't specify a remote shell"
(or multi-method method)))))
-(defun tramp-get-rsh-program (multi-method method user host)
- (second (or (assoc 'tramp-rsh-program
+(defun tramp-get-login-program (multi-method method user host)
+ (second (or (assoc 'tramp-login-program
(assoc (tramp-find-method multi-method method user host)
tramp-methods))
- (error "Method `%s' didn't specify an rsh program"
+ (error "Method `%s' didn't specify a login program"
(or multi-method method)))))
-(defun tramp-get-rsh-args (multi-method method user host)
- (second (or (assoc 'tramp-rsh-args
+(defun tramp-get-login-args (multi-method method user host)
+ (second (or (assoc 'tramp-login-args
(assoc (tramp-find-method multi-method method user host)
tramp-methods))
- (error "Method `%s' didn't specify rsh args"
+ (error "Method `%s' didn't specify login args"
(or multi-method method)))))
-(defun tramp-get-rcp-program (multi-method method user host)
- (second (or (assoc 'tramp-rcp-program
+(defun tramp-get-copy-program (multi-method method user host)
+ (second (or (assoc 'tramp-copy-program
(assoc (tramp-find-method multi-method method user host)
tramp-methods))
- (error "Method `%s' didn't specify an rcp program"
+ (error "Method `%s' didn't specify a copy program"
(or multi-method method)))))
-(defun tramp-get-rcp-args (multi-method method user host)
- (second (or (assoc 'tramp-rcp-args
+(defun tramp-get-copy-args (multi-method method user host)
+ (second (or (assoc 'tramp-copy-args
(assoc (tramp-find-method multi-method method user host)
tramp-methods))
- (error "Method `%s' didn't specify rcp args"
+ (error "Method `%s' didn't specify copy args"
(or multi-method method)))))
-(defun tramp-get-rcp-keep-date-arg (multi-method method user host)
- (second (or (assoc 'tramp-rcp-keep-date-arg
+(defun tramp-get-copy-keep-date-arg (multi-method method user host)
+ (second (or (assoc 'tramp-copy-keep-date-arg
(assoc (tramp-find-method multi-method method user host)
tramp-methods))
(error "Method `%s' didn't specify `keep-date' arg for tramp"
(or multi-method method)))))
-(defun tramp-get-su-program (multi-method method user host)
- (second (or (assoc 'tramp-su-program
- (assoc (tramp-find-method multi-method method user host)
- tramp-methods))
- (error "Method `%s' didn't specify a su program"
- (or multi-method method)))))
-
-(defun tramp-get-su-args (multi-method method user host)
- (second (or (assoc 'tramp-su-args
- (assoc (tramp-find-method multi-method method user host)
- tramp-methods))
- (error "Method `%s' didn't specify su args"
- (or multi-method method)))))
-
-(defun tramp-get-telnet-program (multi-method method user host)
- (second (or (assoc 'tramp-telnet-program
- (assoc (tramp-find-method multi-method method user host)
- tramp-methods))
- (error "Method `%s' didn't specify a telnet program"
- (or multi-method method)))))
-
-(defun tramp-get-telnet-args (multi-method method user host)
- (second (or (assoc 'tramp-telnet-args
- (assoc (tramp-find-method multi-method method user host)
- tramp-methods))
- (error "Method `%s' didn't specify telnet args"
- (or multi-method method)))))
-
-
;; Auto saving to a special directory.
(defun tramp-make-auto-save-file-name (fn)