From: Michael Albinus Date: Sun, 17 Dec 2006 12:58:04 +0000 (+0000) Subject: * net/tramp.el (tramp-default-method): Before setting to "pscp", X-Git-Tag: emacs-pretest-22.0.92~70 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=210a7c2c92df94a193ae3143a4c39ee65923dd5f;p=emacs.git * net/tramp.el (tramp-default-method): Before setting to "pscp", check whether package password.el is loaded, or Pageant is running. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 30afd64ca65..a5de824ab06 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2006-12-17 Michael Albinus + + * 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 * calendar/icalendar.el (icalendar-version): Increase to "0.14". diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index a45e1a22ad5..b2e4ec814fd 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el @@ -684,10 +684,33 @@ various functions for details." :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'."