[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/net/tramp.el
From: |
Kim F . Storm |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/net/tramp.el |
Date: |
Wed, 09 Feb 2005 10:52:26 -0500 |
Index: emacs/lisp/net/tramp.el
diff -c emacs/lisp/net/tramp.el:1.60 emacs/lisp/net/tramp.el:1.61
*** emacs/lisp/net/tramp.el:1.60 Sun Jan 16 13:18:31 2005
--- emacs/lisp/net/tramp.el Wed Feb 9 15:50:36 2005
***************
*** 34,40 ****
;;
;; Notes:
;; -----
! ;;
;; This package only works for Emacs 20 and higher, and for XEmacs 21
;; and higher. (XEmacs 20 is missing the `with-timeout' macro. Emacs
;; 19 is reported to have other problems. For XEmacs 21, you need the
--- 34,40 ----
;;
;; Notes:
;; -----
! ;;
;; This package only works for Emacs 20 and higher, and for XEmacs 21
;; and higher. (XEmacs 20 is missing the `with-timeout' macro. Emacs
;; 19 is reported to have other problems. For XEmacs 21, you need the
***************
*** 160,166 ****
(defgroup tramp nil
"Edit remote files with a combination of rsh and rcp or similar programs."
:group 'files
! :version "21.4")
(defcustom tramp-verbose 9
"*Verbosity level for tramp.el. 0 means be silent, 10 is most verbose."
--- 160,166 ----
(defgroup tramp nil
"Edit remote files with a combination of rsh and rcp or similar programs."
:group 'files
! :version "22.1")
(defcustom tramp-verbose 9
"*Verbosity level for tramp.el. 0 means be silent, 10 is most verbose."
***************
*** 205,211 ****
gives the same backup policy for Tramp files on their hosts like the
policy for local files."
! :type '(repeat
(list (regexp :tag "File regexp")
(string :tag "Backup Dir")
(set :inline t
--- 205,211 ----
gives the same backup policy for Tramp files on their hosts like the
policy for local files."
! :type '(repeat
(list (regexp :tag "File regexp")
(string :tag "Backup Dir")
(set :inline t
***************
*** 506,512 ****
(tramp-copy-args nil)
(tramp-copy-keep-date-arg "-p")
(tramp-password-end-of-line "xy")) ;see docstring for "xy"
! ("fcp"
(tramp-connection-function tramp-open-connection-rsh)
(tramp-login-program "fsh")
(tramp-copy-program "fcp")
--- 506,512 ----
(tramp-copy-args nil)
(tramp-copy-keep-date-arg "-p")
(tramp-password-end-of-line "xy")) ;see docstring for "xy"
! ("fcp"
(tramp-connection-function tramp-open-connection-rsh)
(tramp-login-program "fsh")
(tramp-copy-program "fcp")
***************
*** 633,639 ****
("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")
! ("ssht" tramp-multi-connect-rlogin "ssh %h -e none -t -t -l %u%n")
("su" tramp-multi-connect-su "su - %u%n")
("sudo" tramp-multi-connect-su "sudo -u %u -s -p Password:%n"))
"*List of connection functions for multi-hop methods.
--- 633,639 ----
("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")
! ("ssht" tramp-multi-connect-rlogin "ssh %h -e none -t -t -l %u%n")
("su" tramp-multi-connect-su "su - %u%n")
("sudo" tramp-multi-connect-su "sudo -u %u -s -p Password:%n"))
"*List of connection functions for multi-hop methods.
***************
*** 777,783 ****
"sudo" tramp-completion-function-alist-su)
(tramp-set-completion-function
"multi" nil)
! (tramp-set-completion-function
"scpx" tramp-completion-function-alist-ssh)
(tramp-set-completion-function
"sshx" tramp-completion-function-alist-ssh)
--- 777,783 ----
"sudo" tramp-completion-function-alist-su)
(tramp-set-completion-function
"multi" nil)
! (tramp-set-completion-function
"scpx" tramp-completion-function-alist-ssh)
(tramp-set-completion-function
"sshx" tramp-completion-function-alist-ssh)
***************
*** 2064,2070 ****
(setq filename (tramp-file-name-localname
(tramp-dissect-file-name
(expand-file-name filename)))))
!
;; Right, they are on the same host, regardless of user, method, etc.
;; We now make the link on the remote machine. This will occur as the
user
;; that FILENAME belongs to.
--- 2064,2070 ----
(setq filename (tramp-file-name-localname
(tramp-dissect-file-name
(expand-file-name filename)))))
!
;; Right, they are on the same host, regardless of user, method, etc.
;; We now make the link on the remote machine. This will occur as the
user
;; that FILENAME belongs to.
***************
*** 2073,2079 ****
l-multi-method l-method l-user l-host
(format "cd %s && %s -sf %s %s"
cwd ln
! filename
l-localname)
t)))))
--- 2073,2079 ----
l-multi-method l-method l-user l-host
(format "cd %s && %s -sf %s %s"
cwd ln
! filename
l-localname)
t)))))
***************
*** 2419,2425 ****
(let* ((attr (file-attributes f))
(modtime (nth 5 attr))
(mt (visited-file-modtime)))
!
(cond
;; file exists, and has a known modtime.
((and attr (not (equal modtime '(0 0))))
--- 2419,2425 ----
(let* ((attr (file-attributes f))
(modtime (nth 5 attr))
(mt (visited-file-modtime)))
!
(cond
;; file exists, and has a known modtime.
((and attr (not (equal modtime '(0 0))))
***************
*** 2766,2772 ****
(push (buffer-substring (point)
(tramp-line-end-position))
result))
!
(tramp-send-command multi-method method user host "cd")
(tramp-wait-for-output)
--- 2766,2772 ----
(push (buffer-substring (point)
(tramp-line-end-position))
result))
!
(tramp-send-command multi-method method user host "cd")
(tramp-wait-for-output)
***************
*** 3211,3217 ****
'file-error
(list "Removing old file name" "no such directory" filename)))
;; Which is better, -r or -R? (-r works for me <address@hidden>)
! (tramp-send-command multi-method method user host
(format "rm -r %s" (tramp-shell-quote-argument
localname)))
;; Wait for the remote system to return to us...
;; This might take a while, allow it plenty of time.
--- 3211,3217 ----
'file-error
(list "Removing old file name" "no such directory" filename)))
;; Which is better, -r or -R? (-r works for me <address@hidden>)
! (tramp-send-command multi-method method user host
(format "rm -r %s" (tramp-shell-quote-argument
localname)))
;; Wait for the remote system to return to us...
;; This might take a while, allow it plenty of time.
***************
*** 3219,3225 ****
;; Make sure that it worked...
(and (file-exists-p filename)
(error "Failed to recursively delete %s" filename))))
!
(defun tramp-handle-dired-call-process (program discard &rest arguments)
"Like `dired-call-process' for tramp files."
(with-parsed-tramp-file-name default-directory nil
--- 3219,3225 ----
;; Make sure that it worked...
(and (file-exists-p filename)
(error "Failed to recursively delete %s" filename))))
!
(defun tramp-handle-dired-call-process (program discard &rest arguments)
"Like `dired-call-process' for tramp files."
(with-parsed-tramp-file-name default-directory nil
***************
*** 3241,3247 ****
(tramp-send-command-and-check multi-method method user host nil)
(tramp-send-command multi-method method user host "cd")
(tramp-wait-for-output)))))
!
(defun tramp-handle-dired-compress-file (file &rest ok-flag)
"Like `dired-compress-file' for tramp files."
;; OK-FLAG is valid for XEmacs only, but not implemented.
--- 3241,3247 ----
(tramp-send-command-and-check multi-method method user host nil)
(tramp-send-command multi-method method user host "cd")
(tramp-wait-for-output)))))
!
(defun tramp-handle-dired-compress-file (file &rest ok-flag)
"Like `dired-compress-file' for tramp files."
;; OK-FLAG is valid for XEmacs only, but not implemented.
***************
*** 3501,3507 ****
This will break if COMMAND prints a newline, followed by the value of
`tramp-end-of-output', followed by another newline."
;; Asynchronous processes are far from being perfect. But it works at least
! ;; for `find-grep-dired' and `find-name-dired' in Emacs 21.4.
(if (tramp-tramp-file-p default-directory)
(with-parsed-tramp-file-name default-directory nil
(let ((asynchronous (string-match "[ \t]*&[ \t]*\\'" command))
--- 3501,3507 ----
This will break if COMMAND prints a newline, followed by the value of
`tramp-end-of-output', followed by another newline."
;; Asynchronous processes are far from being perfect. But it works at least
! ;; for `find-grep-dired' and `find-name-dired' in Emacs 22.1.
(if (tramp-tramp-file-p default-directory)
(with-parsed-tramp-file-name default-directory nil
(let ((asynchronous (string-match "[ \t]*&[ \t]*\\'" command))
***************
*** 3609,3615 ****
(when (and (numberp buffer) (zerop buffer))
(error "Implementation does not handle immediate return"))
(when (consp buffer) (error "Implementation does not handle error files"))
! (shell-command
(mapconcat 'tramp-shell-quote-argument
(cons program args)
" ")
--- 3609,3615 ----
(when (and (numberp buffer) (zerop buffer))
(error "Implementation does not handle immediate return"))
(when (consp buffer) (error "Implementation does not handle error files"))
! (shell-command
(mapconcat 'tramp-shell-quote-argument
(cons program args)
" ")
***************
*** 4213,4219 ****
(defun tramp-repair-jka-compr ()
"If jka-compr is already loaded, move it to the front of
! `file-name-handler-alist'. On Emacs 21.4 or so this will not be
necessary anymore."
(let ((jka (rassoc 'jka-compr-handler file-name-handler-alist)))
(when jka
--- 4213,4219 ----
(defun tramp-repair-jka-compr ()
"If jka-compr is already loaded, move it to the front of
! `file-name-handler-alist'. On Emacs 22.1 or so this will not be
necessary anymore."
(let ((jka (rassoc 'jka-compr-handler file-name-handler-alist)))
(when jka
***************
*** 4293,4299 ****
;; `tramp-completion-file-name-regexp-unified' aren't different.
;; If nil, `tramp-completion-run-real-handler' is called (i.e. forwarding to
;; `tramp-file-name-handler'). Otherwise, it takes `tramp-run-real-handler'.
! ;; Using `last-input-event' is a little bit risky, because completing a file
;; might require loading other files, like "~/.netrc", and for them it
;; shouldn't be decided based on that variable. On the other hand, those files
;; shouldn't have partial tramp file name syntax. Maybe another variable
should
--- 4293,4299 ----
;; `tramp-completion-file-name-regexp-unified' aren't different.
;; If nil, `tramp-completion-run-real-handler' is called (i.e. forwarding to
;; `tramp-file-name-handler'). Otherwise, it takes `tramp-run-real-handler'.
! ;; Using `last-input-event' is a little bit risky, because completing a file
;; might require loading other files, like "~/.netrc", and for them it
;; shouldn't be decided based on that variable. On the other hand, those files
;; shouldn't have partial tramp file name syntax. Maybe another variable
should
***************
*** 4397,4403 ****
(funcall (nth 0 x) (nth 1 x)))))
(tramp-get-completion-function m))
! (setq result (append result
(mapcar
(lambda (x)
(tramp-get-completion-user-host
--- 4397,4403 ----
(funcall (nth 0 x) (nth 1 x)))))
(tramp-get-completion-function m))
! (setq result (append result
(mapcar
(lambda (x)
(tramp-get-completion-user-host
***************
*** 4438,4444 ****
;; [nil nil "x" nil nil]
;; [nil "x" nil nil nil]
! ;; "/x:" "/x:y" "/x:y:"
;; [nil nil nil "x" ""] [nil nil nil "x" "y"] [nil "x" nil "y" ""]
;; "/[x/" "/[x/y"
;; [nil "x" nil "" nil] [nil "x" nil "y" nil]
--- 4438,4444 ----
;; [nil nil "x" nil nil]
;; [nil "x" nil nil nil]
! ;; "/x:" "/x:y" "/x:y:"
;; [nil nil nil "x" ""] [nil nil nil "x" "y"] [nil "x" nil "y" ""]
;; "/[x/" "/[x/y"
;; [nil "x" nil "" nil] [nil "x" nil "y" nil]
***************
*** 4907,4913 ****
"touch" nil (current-buffer) nil "-t" touch-time file))
(pop-to-buffer (current-buffer))
(error "tramp-touch: touch failed"))))))
!
(defun tramp-buffer-name (multi-method method user host)
"A name for the connection buffer for USER at HOST using METHOD."
(if multi-method
--- 4907,4913 ----
"touch" nil (current-buffer) nil "-t" touch-time file))
(pop-to-buffer (current-buffer))
(error "tramp-touch: touch failed"))))))
!
(defun tramp-buffer-name (multi-method method user host)
"A name for the connection buffer for USER at HOST using METHOD."
(if multi-method
***************
*** 5072,5078 ****
(file-exists-p existing)
(not (file-exists-p nonexisting))))
(error "Couldn't find command to check if file exists."))))
!
;; CCC test ksh or bash found for tilde expansion?
(defun tramp-find-shell (multi-method method user host)
--- 5072,5078 ----
(file-exists-p existing)
(not (file-exists-p nonexisting))))
(error "Couldn't find command to check if file exists."))))
!
;; CCC test ksh or bash found for tilde expansion?
(defun tramp-find-shell (multi-method method user host)
***************
*** 5171,5179 ****
(tramp-check-ls-commands multi-method method user host "gnuls"
tramp-remote-path)
(tramp-check-ls-commands multi-method method user host "gls"
tramp-remote-path)))
! ;; ------------------------------------------------------------
! ;; -- Functions for establishing connection --
! ;; ------------------------------------------------------------
;; The following functions are actions to be taken when seeing certain
;; prompts from the remote host. See the variable
--- 5171,5179 ----
(tramp-check-ls-commands multi-method method user host "gnuls"
tramp-remote-path)
(tramp-check-ls-commands multi-method method user host "gls"
tramp-remote-path)))
! ;; ------------------------------------------------------------
! ;; -- Functions for establishing connection --
! ;; ------------------------------------------------------------
;; The following functions are actions to be taken when seeing certain
;; prompts from the remote host. See the variable
***************
*** 5422,5428 ****
(when multi-method
(error "Cannot multi-connect using telnet connection method"))
(tramp-pre-connection multi-method method user host)
! (tramp-message 7 "Opening connection for address@hidden using %s..."
(or user (user-login-name)) host method)
(let ((process-environment (copy-sequence process-environment)))
(setenv "TERM" tramp-terminal-type)
--- 5422,5428 ----
(when multi-method
(error "Cannot multi-connect using telnet connection method"))
(tramp-pre-connection multi-method method user host)
! (tramp-message 7 "Opening connection for address@hidden using %s..."
(or user (user-login-name)) host method)
(let ((process-environment (copy-sequence process-environment)))
(setenv "TERM" tramp-terminal-type)
***************
*** 5456,5462 ****
p multi-method method user host)
(tramp-post-connection multi-method method user host)))))
!
(defun tramp-open-connection-rsh (multi-method method user host)
"Open a connection using an rsh METHOD.
This starts the command `rsh HOST -l USER'[*], then waits for a remote
--- 5456,5462 ----
p multi-method method user host)
(tramp-post-connection multi-method method user host)))))
!
(defun tramp-open-connection-rsh (multi-method method user host)
"Open a connection using an rsh METHOD.
This starts the command `rsh HOST -l USER'[*], then waits for a remote
***************
*** 5481,5487 ****
(error "Cannot multi-connect using rsh connection method"))
(tramp-pre-connection multi-method method user host)
(if (and user (not (string= user "")))
! (tramp-message 7 "Opening connection for address@hidden using %s..."
user host method)
(tramp-message 7 "Opening connection at %s using %s..." host method))
(let ((process-environment (copy-sequence process-environment))
--- 5481,5487 ----
(error "Cannot multi-connect using rsh connection method"))
(tramp-pre-connection multi-method method user host)
(if (and user (not (string= user "")))
! (tramp-message 7 "Opening connection for address@hidden using %s..."
user host method)
(tramp-message 7 "Opening connection at %s using %s..." host method))
(let ((process-environment (copy-sequence process-environment))
***************
*** 5510,5518 ****
(> emacs-major-version 20))
tramp-dos-coding-system))
(p (if (and user (not (string= user "")))
! (apply #'start-process bufnam buf login-program
real-host "-l" user login-args)
! (apply #'start-process bufnam buf login-program
real-host login-args)))
(found nil))
(tramp-set-process-query-on-exit-flag p nil)
--- 5510,5518 ----
(> emacs-major-version 20))
tramp-dos-coding-system))
(p (if (and user (not (string= user "")))
! (apply #'start-process bufnam buf login-program
real-host "-l" user login-args)
! (apply #'start-process bufnam buf login-program
real-host login-args)))
(found nil))
(tramp-set-process-query-on-exit-flag p nil)
***************
*** 5582,5591 ****
tramp-actions-before-shell)
(tramp-open-connection-setup-interactive-shell
p multi-method method user host)
! (tramp-post-connection multi-method method
user host)))))
! ;; HHH: Not Changed. Multi method. It is not clear to me how this can
;; handle not giving a user name in the "file name".
;;
;; This is more difficult than for the single-hop method. In the
--- 5582,5591 ----
tramp-actions-before-shell)
(tramp-open-connection-setup-interactive-shell
p multi-method method user host)
! (tramp-post-connection multi-method method
user host)))))
! ;; HHH: Not Changed. Multi method. It is not clear to me how this can
;; handle not giving a user name in the "file name".
;;
;; This is more difficult than for the single-hop method. In the
***************
*** 5655,5661 ****
(tramp-post-connection multi-method method user host)))))
;; HHH: Changed. Multi method. Don't know how to handle this in the case
! ;; of no user name provided. Hack to make it work as it did before:
;; changed `user' to `(or user (user-login-name))' in the places where
;; the value is actually used.
(defun tramp-multi-connect-telnet (p method user host command)
--- 5655,5661 ----
(tramp-post-connection multi-method method user host)))))
;; HHH: Changed. Multi method. Don't know how to handle this in the case
! ;; of no user name provided. Hack to make it work as it did before:
;; changed `user' to `(or user (user-login-name))' in the places where
;; the value is actually used.
(defun tramp-multi-connect-telnet (p method user host command)
***************
*** 5677,5684 ****
(tramp-process-multi-actions p method user host
tramp-multi-actions)))
! ;; HHH: Changed. Multi method. Don't know how to handle this in the case
! ;; of no user name provided. Hack to make it work as it did before:
;; changed `user' to `(or user (user-login-name))' in the places where
;; the value is actually used.
(defun tramp-multi-connect-rlogin (p method user host command)
--- 5677,5684 ----
(tramp-process-multi-actions p method user host
tramp-multi-actions)))
! ;; HHH: Changed. Multi method. Don't know how to handle this in the case
! ;; of no user name provided. Hack to make it work as it did before:
;; changed `user' to `(or user (user-login-name))' in the places where
;; the value is actually used.
(defun tramp-multi-connect-rlogin (p method user host command)
***************
*** 5703,5710 ****
(tramp-process-multi-actions p method user host
tramp-multi-actions)))
! ;; HHH: Changed. Multi method. Don't know how to handle this in the case
! ;; of no user name provided. Hack to make it work as it did before:
;; changed `user' to `(or user (user-login-name))' in the places where
;; the value is actually used.
(defun tramp-multi-connect-su (p method user host command)
--- 5703,5710 ----
(tramp-process-multi-actions p method user host
tramp-multi-actions)))
! ;; HHH: Changed. Multi method. Don't know how to handle this in the case
! ;; of no user name provided. Hack to make it work as it did before:
;; changed `user' to `(or user (user-login-name))' in the places where
;; the value is actually used.
(defun tramp-multi-connect-su (p method user host command)
***************
*** 6334,6340 ****
(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)))
--- 6334,6340 ----
(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)))
***************
*** 6667,6675 ****
""))
! ;; ------------------------------------------------------------
! ;; -- TRAMP file names --
! ;; ------------------------------------------------------------
;; Conversion functions between external representation and
;; internal data structure. Convenience functions for internal
;; data structure.
--- 6667,6675 ----
""))
! ;; ------------------------------------------------------------
! ;; -- TRAMP file names --
! ;; ------------------------------------------------------------
;; Conversion functions between external representation and
;; internal data structure. Convenience functions for internal
;; data structure.
***************
*** 6680,6686 ****
"Return t iff NAME is a tramp file."
(save-match-data
(string-match tramp-file-name-regexp name)))
!
;; HHH: Changed. Used to assign the return value of (user-login-name)
;; to the `user' part of the structure if a user name was not
;; provided, now it assigns nil.
--- 6680,6686 ----
"Return t iff NAME is a tramp file."
(save-match-data
(string-match tramp-file-name-regexp name)))
!
;; HHH: Changed. Used to assign the return value of (user-login-name)
;; to the `user' part of the structure if a user name was not
;; provided, now it assigns nil.
***************
*** 6733,6739 ****
If both MULTI-METHOD and METHOD are nil, do a lookup in
`tramp-default-method-alist'."
(or multi-method method (tramp-find-default-method user host)))
!
;; HHH: Not Changed. Multi method. Will probably not handle the case where
;; a user name is not provided in the "file name" very well.
(defun tramp-dissect-multi-file-name (name)
--- 6733,6739 ----
If both MULTI-METHOD and METHOD are nil, do a lookup in
`tramp-default-method-alist'."
(or multi-method method (tramp-find-default-method user host)))
!
;; HHH: Not Changed. Multi method. Will probably not handle the case where
;; a user name is not provided in the "file name" very well.
(defun tramp-dissect-multi-file-name (name)
***************
*** 6905,6911 ****
(if entry
(second entry)
(symbol-value param))))
!
;; Auto saving to a special directory.
--- 6905,6911 ----
(if entry
(second entry)
(symbol-value param))))
!
;; Auto saving to a special directory.
***************
*** 6937,6943 ****
(tramp-make-auto-save-file-name (buffer-file-name)))
ad-do-it))
! ;; In Emacs < 21.4 and XEmacs < 21.5 autosaved remote files have
;; permission 666 minus umask. This is a security threat.
(defun tramp-set-auto-save-file-modes ()
--- 6937,6943 ----
(tramp-make-auto-save-file-name (buffer-file-name)))
ad-do-it))
! ;; In Emacs < 22.1 and XEmacs < 21.5 autosaved remote files have
;; permission 666 minus umask. This is a security threat.
(defun tramp-set-auto-save-file-modes ()
***************
*** 7097,7105 ****
process flag)))
! ;; ------------------------------------------------------------
! ;; -- Kludges section --
! ;; ------------------------------------------------------------
;; Currently (as of Emacs 20.5), the function `shell-quote-argument'
;; does not deal well with newline characters. Newline is replaced by
--- 7097,7105 ----
process flag)))
! ;; ------------------------------------------------------------
! ;; -- Kludges section --
! ;; ------------------------------------------------------------
;; Currently (as of Emacs 20.5), the function `shell-quote-argument'
;; does not deal well with newline characters. Newline is replaced by
***************
*** 7362,7368 ****
;; strange when doing zerop, we should kill the process and start
;; again. (Greg Stark)
;; * Add caching for filename completion. (Greg Stark)
! ;; Of course, this has issues with usability (stale cache bites)
;; -- <address@hidden>
;; * Provide a local cache of old versions of remote files for the rsync
;; transfer method to use. (Greg Stark)
--- 7362,7368 ----
;; strange when doing zerop, we should kill the process and start
;; again. (Greg Stark)
;; * Add caching for filename completion. (Greg Stark)
! ;; Of course, this has issues with usability (stale cache bites)
;; -- <address@hidden>
;; * Provide a local cache of old versions of remote files for the rsync
;; transfer method to use. (Greg Stark)
- [Emacs-diffs] Changes to emacs/lisp/net/tramp.el,
Kim F . Storm <=