Commit f3c071dd authored by Michael Albinus's avatar Michael Albinus
Browse files

*** empty log message ***

parent 924e26eb
2007-05-28 Michael Albinus <michael.albinus@gmx.de>
Sync with Tramp 2.0.56.
* net/tramp.el:
* net/tramp-ftp.el:
* net/tramp-smb.el:
* net/tramp-util.el:
* net/tramp-vc.el:
Don't load cl.el, because that pollutes the namespace. Replace cl
macros by their implementations where necessary. Requested by
Richard Stallman <rms@gnu.org>.
* net/tramp.el (top): Make `set-buffer-multibyte' an alias if it
doesn't exist.
(with-parsed-tramp-file-name): Protect debug spec during
compilation.
(tramp-handle-insert-directory): Check (featurep 'ls-lisp).
(tramp-file-name-p, tramp-file-name-multi-method)
(tramp-file-name-method, tramp-file-name-user)
(tramp-file-name-host, tramp-file-name-localname): New defuns,
replacing defstruct `tramp-file-name'.
(tramp-handle-file-remote-p, tramp-completion-dissect-file-name1)
(tramp-dissect-file-name, tramp-dissect-multi-file-name): Apply
`vector' instead of `make-tramp-file-name'.
(tramp-handle-make-auto-save-file-name): Apply
`tramp-temporary-file-directory' for compatibility reasons.
(tramp-completion-mode): Use `natnump' instead of `wholenump'
because of XEmacs.
(tramp-completion-mode): `last-input-event' is nil when XEmacs is
started.
2007-05-27 Ryan Yeske <rcyeske@gmail.com> 2007-05-27 Ryan Yeske <rcyeske@gmail.com>
* net/webjump.el (webjump-sample-sites): * net/webjump.el (webjump-sample-sites):
......
;;; tramp-ftp.el --- Tramp convenience functions for Ange-FTP -*- coding: iso-8859-1; -*- ;;; tramp-ftp.el --- Tramp convenience functions for Ange-FTP -*- coding: iso-8859-1; -*-
;; Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. ;; Copyright (C) 2002, 2003, 2004, 2005, 2006,
;; 2007 Free Software Foundation, Inc.
;; Author: Michael Albinus <michael.albinus@gmx.de> ;; Author: Michael Albinus <michael.albinus@gmx.de>
;; Keywords: comm, processes ;; Keywords: comm, processes
...@@ -31,12 +32,7 @@ ...@@ -31,12 +32,7 @@
(require 'tramp) (require 'tramp)
(eval-when-compile (eval-when-compile (require 'custom))
(require 'cl)
(require 'custom)
;; Emacs 19.34 compatibility hack -- is this needed?
(or (>= emacs-major-version 20)
(load "cl-seq")))
;; Disable Ange-FTP from file-name-handler-alist. ;; Disable Ange-FTP from file-name-handler-alist.
;; To handle EFS, the following functions need to be dealt with: ;; To handle EFS, the following functions need to be dealt with:
......
...@@ -31,12 +31,7 @@ ...@@ -31,12 +31,7 @@
(require 'tramp) (require 'tramp)
;; Pacify byte-compiler ;; Pacify byte-compiler
(eval-when-compile (eval-when-compile (require 'custom))
(require 'cl)
(require 'custom)
;; Emacs 19.34 compatibility hack -- is this needed?
(or (>= emacs-major-version 20)
(load "cl-seq")))
;; Avoid byte-compiler warnings if the byte-compiler supports this. ;; Avoid byte-compiler warnings if the byte-compiler supports this.
;; Currently, XEmacs supports this. ;; Currently, XEmacs supports this.
......
...@@ -29,7 +29,6 @@ ...@@ -29,7 +29,6 @@
;;; Code: ;;; Code:
(eval-when-compile (require 'cl))
(require 'compile) (require 'compile)
(require 'tramp) (require 'tramp)
(add-hook 'tramp-util-unload-hook (add-hook 'tramp-util-unload-hook
......
;;; -*- coding: iso-2022-7bit; -*- ;;; -*- coding: iso-2022-7bit; -*-
;;; tramp-uu.el --- uuencode in Lisp ;;; tramp-uu.el --- uuencode in Lisp
;; Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. ;; Copyright (C) 2002, 2003, 2004, 2005, 2006,
;; 2007 Free Software Foundation, Inc.
;; Author: Kai Gro,A_(Bjohann <kai.grossjohann@gmx.net> ;; Author: Kai Gro,A_(Bjohann <kai.grossjohann@gmx.net>
;; Keywords: comm, terminals ;; Keywords: comm, terminals
......
...@@ -31,8 +31,6 @@ ...@@ -31,8 +31,6 @@
;;; Code: ;;; Code:
(eval-when-compile
(require 'cl))
(require 'vc) (require 'vc)
;; Old VC defines vc-rcs-release in vc.el, new VC requires extra module. ;; Old VC defines vc-rcs-release in vc.el, new VC requires extra module.
(unless (boundp 'vc-rcs-release) (unless (boundp 'vc-rcs-release)
......
...@@ -151,11 +151,7 @@ Otherwise, use a separate filename syntax for Tramp.") ...@@ -151,11 +151,7 @@ Otherwise, use a separate filename syntax for Tramp.")
(when (featurep 'tramp-smb) (when (featurep 'tramp-smb)
(unload-feature 'tramp-smb 'force))))))) (unload-feature 'tramp-smb 'force)))))))
(require 'cl)
(require 'custom) (require 'custom)
;; Emacs 19.34 compatibility hack -- is this needed?
(or (>= emacs-major-version 20)
(load "cl-seq"))
(unless (boundp 'custom-print-functions) (unless (boundp 'custom-print-functions)
(defvar custom-print-functions nil)) ; not autoloaded before Emacs 20.4 (defvar custom-print-functions nil)) ; not autoloaded before Emacs 20.4
...@@ -175,6 +171,11 @@ Otherwise, use a separate filename syntax for Tramp.") ...@@ -175,6 +171,11 @@ Otherwise, use a separate filename syntax for Tramp.")
(when (boundp 'byte-compile-not-obsolete-var) (when (boundp 'byte-compile-not-obsolete-var)
(setq byte-compile-not-obsolete-var 'directory-sep-char))) (setq byte-compile-not-obsolete-var 'directory-sep-char)))
;; `set-buffer-multibyte' comes from Emacs Leim.
(eval-and-compile
(unless (fboundp 'set-buffer-multibyte)
(defalias 'set-buffer-multibyte 'ignore)))
;;; User Customizable Internal Variables: ;;; User Customizable Internal Variables:
(defgroup tramp nil (defgroup tramp nil
...@@ -2077,7 +2078,9 @@ If VAR is nil, then we bind `v' to the structure and `multi-method', ...@@ -2077,7 +2078,9 @@ If VAR is nil, then we bind `v' to the structure and `multi-method',
(put 'with-parsed-tramp-file-name 'lisp-indent-function 2) (put 'with-parsed-tramp-file-name 'lisp-indent-function 2)
;; Enable debugging. ;; Enable debugging.
(def-edebug-spec with-parsed-tramp-file-name (form symbolp body)) (eval-and-compile
(when (featurep 'edebug)
(def-edebug-spec with-parsed-tramp-file-name (form symbolp body))))
;; Highlight as keyword. ;; Highlight as keyword.
(when (functionp 'font-lock-add-keywords) (when (functionp 'font-lock-add-keywords)
(funcall 'font-lock-add-keywords (funcall 'font-lock-add-keywords
...@@ -2384,10 +2387,10 @@ target of the symlink differ." ...@@ -2384,10 +2387,10 @@ target of the symlink differ."
"Integer constant overflow in reader") "Integer constant overflow in reader")
(string-match (string-match
"^[0-9]+\\([0-9][0-9][0-9][0-9][0-9]\\)\\'" "^[0-9]+\\([0-9][0-9][0-9][0-9][0-9]\\)\\'"
(caddr err))) (car (cddr err))))
(let* ((big (read (substring (caddr err) 0 (let* ((big (read (substring (car (cddr err)) 0
(match-beginning 1)))) (match-beginning 1))))
(small (read (match-string 1 (caddr err)))) (small (read (match-string 1 (car (cddr err)))))
(twiddle (/ small 65536))) (twiddle (/ small 65536)))
(cons (+ big twiddle) (cons (+ big twiddle)
(- small (* twiddle 65536)))))))) (- small (* twiddle 65536))))))))
...@@ -2807,7 +2810,7 @@ of." ...@@ -2807,7 +2810,7 @@ of."
object))) object)))
(cell root)) (cell root))
(while (cdr cell) (while (cdr cell)
(if (and match (not (string-match match (caadr cell)))) (if (and match (not (string-match match (car (cadr cell)))))
;; Remove from list ;; Remove from list
(setcdr cell (cddr cell)) (setcdr cell (cddr cell))
;; Include in list ;; Include in list
...@@ -3426,10 +3429,10 @@ This is like `dired-recursive-delete-directory' for tramp files." ...@@ -3426,10 +3429,10 @@ This is like `dired-recursive-delete-directory' for tramp files."
(defun tramp-handle-insert-directory (defun tramp-handle-insert-directory
(filename switches &optional wildcard full-directory-p) (filename switches &optional wildcard full-directory-p)
"Like `insert-directory' for tramp files." "Like `insert-directory' for tramp files."
(if (and (boundp 'ls-lisp-use-insert-directory-program) (if (and (featurep 'ls-lisp)
(not (symbol-value 'ls-lisp-use-insert-directory-program))) (not (symbol-value 'ls-lisp-use-insert-directory-program)))
(tramp-run-real-handler 'insert-directory (tramp-run-real-handler
(list filename switches wildcard full-directory-p)) 'insert-directory (list filename switches wildcard full-directory-p))
;; For the moment, we assume that the remote "ls" program does not ;; For the moment, we assume that the remote "ls" program does not
;; grok "--dired". In the future, we should detect this on ;; grok "--dired". In the future, we should detect this on
;; connection setup. ;; connection setup.
...@@ -3869,12 +3872,7 @@ This will break if COMMAND prints a newline, followed by the value of ...@@ -3869,12 +3872,7 @@ This will break if COMMAND prints a newline, followed by the value of
"Like `file-remote-p' for tramp files." "Like `file-remote-p' for tramp files."
(when (tramp-tramp-file-p filename) (when (tramp-tramp-file-p filename)
(with-parsed-tramp-file-name filename nil (with-parsed-tramp-file-name filename nil
(make-tramp-file-name (vector multi-method method user host ""))))
:multi-method multi-method
:method method
:user user
:host host
:localname ""))))
(defun tramp-handle-insert-file-contents (defun tramp-handle-insert-file-contents
(filename &optional visit beg end replace) (filename &optional visit beg end replace)
...@@ -3919,7 +3917,7 @@ This will break if COMMAND prints a newline, followed by the value of ...@@ -3919,7 +3917,7 @@ This will break if COMMAND prints a newline, followed by the value of
(when (boundp 'last-coding-system-used) (when (boundp 'last-coding-system-used)
(set 'last-coding-system-used coding-system-used)) (set 'last-coding-system-used coding-system-used))
(list (expand-file-name filename) (list (expand-file-name filename)
(second result)))))) (cadr result))))))
(defun tramp-handle-find-backup-file-name (filename) (defun tramp-handle-find-backup-file-name (filename)
...@@ -3978,7 +3976,8 @@ Returns a file name in `tramp-auto-save-directory' for autosaving this file." ...@@ -3978,7 +3976,8 @@ Returns a file name in `tramp-auto-save-directory' for autosaving this file."
(when (and (string-match (car x) buffer-file-name) (when (and (string-match (car x) buffer-file-name)
(not (car (cddr x)))) (not (car (cddr x))))
(setq tramp-auto-save-directory (setq tramp-auto-save-directory
(or tramp-auto-save-directory temporary-file-directory)))) (or tramp-auto-save-directory
(tramp-temporary-file-directory)))))
(symbol-value 'auto-save-file-name-transforms))) (symbol-value 'auto-save-file-name-transforms)))
;; Create directory. ;; Create directory.
(when tramp-auto-save-directory (when tramp-auto-save-directory
...@@ -4566,7 +4565,7 @@ Falls back to normal file name handler if no tramp file name handler exists." ...@@ -4566,7 +4565,7 @@ Falls back to normal file name handler if no tramp file name handler exists."
(member (match-string 1 file) (mapcar 'car tramp-methods))) (member (match-string 1 file) (mapcar 'car tramp-methods)))
((or (equal last-input-event 'tab) ((or (equal last-input-event 'tab)
;; Emacs ;; Emacs
(and (wholenump last-input-event) (and (natnump last-input-event)
(or (or
;; ?\t has event-modifier 'control ;; ?\t has event-modifier 'control
(char-equal last-input-event ?\t) (char-equal last-input-event ?\t)
...@@ -4575,6 +4574,10 @@ Falls back to normal file name handler if no tramp file name handler exists." ...@@ -4575,6 +4574,10 @@ Falls back to normal file name handler if no tramp file name handler exists."
(char-equal last-input-event ?\ ))))) (char-equal last-input-event ?\ )))))
;; XEmacs ;; XEmacs
(and (featurep 'xemacs) (and (featurep 'xemacs)
;; `last-input-event' might be nil.
(not (null last-input-event))
;; `last-input-event' may have no character approximation.
(funcall (symbol-function 'event-to-character) last-input-event)
(or (or
;; ?\t has event-modifier 'control ;; ?\t has event-modifier 'control
(char-equal (char-equal
...@@ -4771,24 +4774,14 @@ remote host and localname (filename on remote host)." ...@@ -4771,24 +4774,14 @@ remote host and localname (filename on remote host)."
(match-string (nth 1 structure) name))) (match-string (nth 1 structure) name)))
(if (and method (member method tramp-multi-methods)) (if (and method (member method tramp-multi-methods))
;; Not handled (yet). ;; Not handled (yet).
(make-tramp-file-name (vector method nil nil nil nil)
:multi-method method
:method nil
:user nil
:host nil
:localname nil)
(let ((user (and (nth 2 structure) (let ((user (and (nth 2 structure)
(match-string (nth 2 structure) name))) (match-string (nth 2 structure) name)))
(host (and (nth 3 structure) (host (and (nth 3 structure)
(match-string (nth 3 structure) name))) (match-string (nth 3 structure) name)))
(localname (and (nth 4 structure) (localname (and (nth 4 structure)
(match-string (nth 4 structure) name)))) (match-string (nth 4 structure) name))))
(make-tramp-file-name (vector nil method user host localname)))))))
:multi-method nil
:method method
:user user
:host host
:localname localname)))))))
;; This function returns all possible method completions, adding the ;; This function returns all possible method completions, adding the
;; trailing method delimeter. ;; trailing method delimeter.
...@@ -5191,7 +5184,7 @@ USER the array of user names, HOST the array of host names." ...@@ -5191,7 +5184,7 @@ USER the array of user names, HOST the array of host names."
(aref user i) (aref host i)) (aref user i) (aref host i))
(format "%s@%s:" (aref method i) (aref host i))) (format "%s@%s:" (aref method i) (aref host i)))
string-list)) string-list))
(incf i)) (setq i (1+ i)))
(format "*%s/%s %s*" (format "*%s/%s %s*"
prefix multi-method prefix multi-method
(apply 'concat (reverse string-list))))) (apply 'concat (reverse string-list)))))
...@@ -5928,7 +5921,7 @@ log in as u2 to h2." ...@@ -5928,7 +5921,7 @@ log in as u2 to h2."
;; is done here. ;; is done here.
(funcall multi-func p m u h command) (funcall multi-func p m u h command)
(erase-buffer) (erase-buffer)
(incf i))) (setq i (1+ i))))
(tramp-open-connection-setup-interactive-shell (tramp-open-connection-setup-interactive-shell
p multi-method method user host) p multi-method method user host)
(tramp-post-connection multi-method method user host))))) (tramp-post-connection multi-method method user host)))))
...@@ -6824,7 +6817,8 @@ If `tramp-discard-garbage' is nil, just erase buffer." ...@@ -6824,7 +6817,8 @@ If `tramp-discard-garbage' is nil, just erase buffer."
(defun tramp-mode-string-to-int (mode-string) (defun tramp-mode-string-to-int (mode-string)
"Converts a ten-letter `drwxrwxrwx'-style mode string into mode bits." "Converts a ten-letter `drwxrwxrwx'-style mode string into mode bits."
(let* ((mode-chars (string-to-vector mode-string)) (let* (case-fold-search
(mode-chars (string-to-vector mode-string))
(owner-read (aref mode-chars 1)) (owner-read (aref mode-chars 1))
(owner-write (aref mode-chars 2)) (owner-write (aref mode-chars 2))
(owner-execute-or-setid (aref mode-chars 3)) (owner-execute-or-setid (aref mode-chars 3))
...@@ -6836,45 +6830,61 @@ If `tramp-discard-garbage' is nil, just erase buffer." ...@@ -6836,45 +6830,61 @@ If `tramp-discard-garbage' is nil, just erase buffer."
(other-execute-or-sticky (aref mode-chars 9))) (other-execute-or-sticky (aref mode-chars 9)))
(save-match-data (save-match-data
(logior (logior
(case owner-read (cond
(?r (tramp-octal-to-decimal "00400")) (?- 0) ((char-equal owner-read ?r) (tramp-octal-to-decimal "00400"))
(t (error "Second char `%c' must be one of `r-'" owner-read))) ((char-equal owner-read ?-) 0)
(case owner-write (t (error "Second char `%c' must be one of `r-'" owner-read)))
(?w (tramp-octal-to-decimal "00200")) (?- 0) (cond
(t (error "Third char `%c' must be one of `w-'" owner-write))) ((char-equal owner-write ?w) (tramp-octal-to-decimal "00200"))
(case owner-execute-or-setid ((char-equal owner-write ?-) 0)
(?x (tramp-octal-to-decimal "00100")) (t (error "Third char `%c' must be one of `w-'" owner-write)))
(?S (tramp-octal-to-decimal "04000")) (cond
(?s (tramp-octal-to-decimal "04100")) ((char-equal owner-execute-or-setid ?x)
(?- 0) (tramp-octal-to-decimal "00100"))
(t (error "Fourth char `%c' must be one of `xsS-'" ((char-equal owner-execute-or-setid ?S)
owner-execute-or-setid))) (tramp-octal-to-decimal "04000"))
(case group-read ((char-equal owner-execute-or-setid ?s)
(?r (tramp-octal-to-decimal "00040")) (?- 0) (tramp-octal-to-decimal "04100"))
(t (error "Fifth char `%c' must be one of `r-'" group-read))) ((char-equal owner-execute-or-setid ?-) 0)
(case group-write (t (error "Fourth char `%c' must be one of `xsS-'"
(?w (tramp-octal-to-decimal "00020")) (?- 0) owner-execute-or-setid)))
(t (error "Sixth char `%c' must be one of `w-'" group-write))) (cond
(case group-execute-or-setid ((char-equal group-read ?r) (tramp-octal-to-decimal "00040"))
(?x (tramp-octal-to-decimal "00010")) ((char-equal group-read ?-) 0)
(?S (tramp-octal-to-decimal "02000")) (t (error "Fifth char `%c' must be one of `r-'" group-read)))
(?s (tramp-octal-to-decimal "02010")) (cond
(?- 0) ((char-equal group-write ?w) (tramp-octal-to-decimal "00020"))
(t (error "Seventh char `%c' must be one of `xsS-'" ((char-equal group-write ?-) 0)
group-execute-or-setid))) (t (error "Sixth char `%c' must be one of `w-'" group-write)))
(case other-read (cond
(?r (tramp-octal-to-decimal "00004")) (?- 0) ((char-equal group-execute-or-setid ?x)
(t (error "Eighth char `%c' must be one of `r-'" other-read))) (tramp-octal-to-decimal "00010"))
(case other-write ((char-equal group-execute-or-setid ?S)
(?w (tramp-octal-to-decimal "00002")) (?- 0) (tramp-octal-to-decimal "02000"))
((char-equal group-execute-or-setid ?s)
(tramp-octal-to-decimal "02010"))
((char-equal group-execute-or-setid ?-) 0)
(t (error "Seventh char `%c' must be one of `xsS-'"
group-execute-or-setid)))
(cond
((char-equal other-read ?r)
(tramp-octal-to-decimal "00004"))
((char-equal other-read ?-) 0)
(t (error "Eighth char `%c' must be one of `r-'" other-read)))
(cond
((char-equal other-write ?w) (tramp-octal-to-decimal "00002"))
((char-equal other-write ?-) 0)
(t (error "Nineth char `%c' must be one of `w-'" other-write))) (t (error "Nineth char `%c' must be one of `w-'" other-write)))
(case other-execute-or-sticky (cond
(?x (tramp-octal-to-decimal "00001")) ((char-equal other-execute-or-sticky ?x)
(?T (tramp-octal-to-decimal "01000")) (tramp-octal-to-decimal "00001"))
(?t (tramp-octal-to-decimal "01001")) ((char-equal other-execute-or-sticky ?T)
(?- 0) (tramp-octal-to-decimal "01000"))
(t (error "Tenth char `%c' must be one of `xtT-'" ((char-equal other-execute-or-sticky ?t)
other-execute-or-sticky))))))) (tramp-octal-to-decimal "01001"))
((char-equal other-execute-or-sticky ?-) 0)
(t (error "Tenth char `%c' must be one of `xtT-'"
other-execute-or-sticky)))))))
(defun tramp-convert-file-attributes (multi-method method user host attr) (defun tramp-convert-file-attributes (multi-method method user host attr)
"Convert file-attributes ATTR generated by perl script or ls. "Convert file-attributes ATTR generated by perl script or ls.
...@@ -6977,7 +6987,29 @@ Not actually used. Use `(format \"%o\" i)' instead?" ...@@ -6977,7 +6987,29 @@ Not actually used. Use `(format \"%o\" i)' instead?"
;; internal data structure. Convenience functions for internal ;; internal data structure. Convenience functions for internal
;; data structure. ;; data structure.
(defstruct tramp-file-name multi-method method user host localname) (defun tramp-file-name-p (obj)
"Check whether TRAMP-FILE-NAME is a Tramp object."
(and (vectorp obj) (= 5 (length obj))))
(defun tramp-file-name-multi-method (obj)
"Return MULTI-METHOD component of TRAMP-FILE-NAME."
(and (tramp-file-name-p obj) (aref obj 0)))
(defun tramp-file-name-method (obj)
"Return METHOD component of TRAMP-FILE-NAME."
(and (tramp-file-name-p obj) (aref obj 1)))
(defun tramp-file-name-user (obj)
"Return USER component of TRAMP-FILE-NAME."
(and (tramp-file-name-p obj) (aref obj 2)))
(defun tramp-file-name-host (obj)
"Return HOST component of TRAMP-FILE-NAME."
(and (tramp-file-name-p obj) (aref obj 3)))
(defun tramp-file-name-localname (obj)
"Return LOCALNAME component of TRAMP-FILE-NAME."
(and (tramp-file-name-p obj) (aref obj 4)))
(defun tramp-tramp-file-p (name) (defun tramp-tramp-file-p (name)
"Return t iff NAME is a tramp file." "Return t iff NAME is a tramp file."
...@@ -7010,12 +7042,7 @@ localname (file name on remote host)." ...@@ -7010,12 +7042,7 @@ localname (file name on remote host)."
(let ((user (match-string (nth 2 tramp-file-name-structure) name)) (let ((user (match-string (nth 2 tramp-file-name-structure) name))
(host (match-string (nth 3 tramp-file-name-structure) name)) (host (match-string (nth 3 tramp-file-name-structure) name))
(localname (match-string (nth 4 tramp-file-name-structure) name))) (localname (match-string (nth 4 tramp-file-name-structure) name)))
(make-tramp-file-name (vector nil method (or user nil) host localname))))))
:multi-method nil
:method method
:user (or user nil)
:host host
:localname localname))))))
(defun tramp-find-default-method (user host) (defun tramp-find-default-method (user host)
"Look up the right method to use in `tramp-default-method-alist'." "Look up the right method to use in `tramp-default-method-alist'."
...@@ -7055,7 +7082,7 @@ If both MULTI-METHOD and METHOD are nil, do a lookup in ...@@ -7055,7 +7082,7 @@ If both MULTI-METHOD and METHOD are nil, do a lookup in
(setq method (match-string method-index name)) (setq method (match-string method-index name))
(setq hops (match-string hops-index name)) (setq hops (match-string hops-index name))
(setq len (/ (length (match-data t)) 2)) (setq len (/ (length (match-data t)) 2))
(when (< localname-index 0) (incf localname-index len)) (when (< localname-index 0) (setq localname-index (+ localname-index len)))
(setq localname (match-string localname-index name)) (setq localname (match-string localname-index name))
(let ((index 0)) (let ((index 0))
(while (string-match hop-regexp hops index) (while (string-match hop-regexp hops index)
...@@ -7066,12 +7093,12 @@ If both MULTI-METHOD and METHOD are nil, do a lookup in ...@@ -7066,12 +7093,12 @@ If both MULTI-METHOD and METHOD are nil, do a lookup in
(cons (match-string hop-user-index hops) hop-users)) (cons (match-string hop-user-index hops) hop-users))
(setq hop-hosts (setq hop-hosts
(cons (match-string hop-host-index hops) hop-hosts)))) (cons (match-string hop-host-index hops) hop-hosts))))
(make-tramp-file-name (vector
:multi-method method method
:method (apply 'vector (reverse hop-methods)) (apply 'vector (reverse hop-methods))
:user (apply 'vector (reverse hop-users)) (apply 'vector (reverse hop-users))
:host (apply 'vector (reverse hop-hosts)) (apply 'vector (reverse hop-hosts))
:localname localname))) localname)))
(defun tramp-make-tramp-file-name (multi-method method user host localname) (defun tramp-make-tramp-file-name (multi-method method user host localname)
"Constructs a tramp file name from METHOD, USER, HOST and LOCALNAME." "Constructs a tramp file name from METHOD, USER, HOST and LOCALNAME."
...@@ -7103,7 +7130,7 @@ If both MULTI-METHOD and METHOD are nil, do a lookup in ...@@ -7103,7 +7130,7 @@ If both MULTI-METHOD and METHOD are nil, do a lookup in
(let ((m (aref method i)) (u (aref user i)) (h (aref host i))) (let ((m (aref method i)) (u (aref user i)) (h (aref host i)))
(setq hops (concat hops (format-spec hop-format (setq hops (concat hops (format-spec hop-format
`((?m . ,m) (?u . ,u) (?h . ,h))))) `((?m . ,m) (?u . ,u) (?h . ,h)))))
(incf i))) (setq i (1+ i))))
(concat prefix hops localname))) (concat prefix hops localname)))
(defun tramp-make-copy-program-file-name (user host localname) (defun tramp-make-copy-program-file-name (user host localname)
...@@ -7218,7 +7245,7 @@ as default." ...@@ -7218,7 +7245,7 @@ as default."
(assoc (tramp-find-method multi-method method user host) (assoc (tramp-find-method multi-method method user host)
tramp-methods)))) tramp-methods))))
(if entry (if entry
(second entry) (cadr entry)
(symbol-value param)))) (symbol-value param))))
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
;; are auto-frobbed from configure.ac, so you should edit that file and run ;; are auto-frobbed from configure.ac, so you should edit that file and run
;; "autoconf && ./configure" to change them. ;; "autoconf && ./configure" to change them.
(defconst tramp-version "2.0.55" (defconst tramp-version "2.0.56"
"This version of Tramp.") "This version of Tramp.")
(defconst tramp-bug-report-address "tramp-devel@gnu.org" (defconst tramp-bug-report-address "tramp-devel@gnu.org"
......
2007-05-28 Michael Albinus <michael.albinus@gmx.de>
Sync with Tramp 2.0.56.
* tramp.texi (Frequently Asked Questions): Improve ~/.zshrc
settings. Reported by Ted Zlatanov <tzz@lifelogs.com>.
2007-05-26 Michael Olson <mwolson@gnu.org> 2007-05-26 Michael Olson <mwolson@gnu.org>
* erc.texi (Modules): Fix references to completion modules. * erc.texi (Modules): Fix references to completion modules.
......
...@@ -2051,7 +2051,11 @@ setting the regular expression detecting the prompt. ...@@ -2051,7 +2051,11 @@ setting the regular expression detecting the prompt.
A special problem is the zsh, which uses left-hand side and right-hand A special problem is the zsh, which uses left-hand side and right-hand
side prompts in parallel. Therefore, it is necessary to disable the side prompts in parallel. Therefore, it is necessary to disable the
zsh line editor on the remote host. You shall add to @file{~/.zshrc} zsh line editor on the remote host. You shall add to @file{~/.zshrc}
the following command: @command{[ $TERM = "dumb" ] && unsetopt zle}. the following command:
@example
[ $TERM = "dumb" ] && unsetopt zle && PS1='$ '
@end example
@item @item
@value{tramp} doesn't transfer strings with more than 500 characters @value{tramp} doesn't transfer strings with more than 500 characters
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
@c In the Tramp CVS, the version number is auto-frobbed from @c In the Tramp CVS, the version number is auto-frobbed from
@c configure.ac, so you should edit that file and run @c configure.ac, so you should edit that file and run
@c "autoconf && ./configure" to change the version number.