+2006-12-17 Michael Albinus <michael.albinus@gmx.de>
+
+ * net/tramp.el (tramp-default-method): Before setting to "pscp",
+ check whether package password.el is loaded, or Pageant is running.
+
2006-12-17 Ulf Jasper <ulf.jasper@web.de>
* calendar/icalendar.el (icalendar-version): Increase to "0.14".
:type '(repeat (list string function string)))
(defcustom tramp-default-method
- (if (and (fboundp 'executable-find)
- (executable-find "pscp"))
- "pscp"
- "scp")
+ (or
+ ;; An external copy method seems to be preferred, because it is
+ ;; much more performant for large files, and it hasn't too serious
+ ;; delays for small files. But it must be ensured that there
+ ;; aren't permanent password queries. Either the copy method shall
+ ;; reuse other channels (ControlMaster of OpenSSH does it), a
+ ;; password agent like "ssh-agent" or "Pageant" shall run, or the
+ ;; optional password.el package shall be active for password caching.
+ (and (fboundp 'executable-find)
+ ;; Check whether PuTTY is installed.
+ (executable-find "pscp")
+ (if (or
+ ;; password.el is loaded.
+ (fboundp 'password-read)
+ ;; Pageant is running.
+ (and (fboundp 'w32-window-exists-p)
+ (funcall (symbol-function 'w32-window-exists-p)
+ "Pageant" "Pageant")))
+ ;; We know that the password will not be retrieved again.
+ "pscp"
+ ;; When "pscp" exists, there is also "plink".
+ "plink"))
+ ;; Under UNIX, ControlMaster is activated. This does not work
+ ;; under Cygwin, but ssh-agent must be enabled then anyway due to
+ ;; the pseudo-tty problem of Cygwin's OpenSSH implementation. So
+ ;; it doesn't hurt to use "scp".
+ "scp")
"*Default method to use for transferring files.
See `tramp-methods' for possibilities.
Also see `tramp-default-method-alist'."