diff options
| author | Michael Albinus | 2005-08-07 15:42:42 +0000 |
|---|---|---|
| committer | Michael Albinus | 2005-08-07 15:42:42 +0000 |
| commit | d2a2c17f0f3735238953df26f42b4d18cb04bf4d (patch) | |
| tree | ea5e36c48aa2815bec2e15ca6856affeae1bafa5 | |
| parent | f38be8010a5d26ce7386fe8d8b3fec4c01671df0 (diff) | |
| download | emacs-d2a2c17f0f3735238953df26f42b4d18cb04bf4d.tar.gz emacs-d2a2c17f0f3735238953df26f42b4d18cb04bf4d.zip | |
Sync with Tramp 2.0.50.
| -rw-r--r-- | lisp/ChangeLog | 54 | ||||
| -rw-r--r-- | lisp/net/tramp-ftp.el | 4 | ||||
| -rw-r--r-- | lisp/net/tramp-smb.el | 22 | ||||
| -rw-r--r-- | lisp/net/tramp-uu.el | 2 | ||||
| -rw-r--r-- | lisp/net/tramp.el | 339 | ||||
| -rw-r--r-- | lisp/net/trampver.el | 4 | ||||
| -rw-r--r-- | man/ChangeLog | 10 | ||||
| -rw-r--r-- | man/tramp.texi | 206 | ||||
| -rw-r--r-- | man/trampver.texi | 2 |
9 files changed, 346 insertions, 297 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index cfadc22b26e..c70ccb0d7ff 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,57 @@ | |||
| 1 | 2005-08-07 Michael Albinus <michael.albinus@gmx.de> | ||
| 2 | |||
| 3 | Sync with Tramp 2.0.50. | ||
| 4 | |||
| 5 | * tramp.el: Remove defvar of `last-coding-system-used' in the | ||
| 6 | XEmacs case; not necessary anymore. | ||
| 7 | (tramp-user-regexp): Allow "@" as part of user name. | ||
| 8 | (tramp-handle-set-visited-file-modtime) | ||
| 9 | (tramp-handle-insert-file-contents) | ||
| 10 | (tramp-handle-write-region): No special handling for | ||
| 11 | `last-coding-system-used, because this is done in | ||
| 12 | `tramp-accept-process-output' now. | ||
| 13 | (tramp-accept-process-output): New defun. | ||
| 14 | (tramp-process-one-action, tramp-process-one-multi-action) | ||
| 15 | (tramp-wait-for-regexp, tramp-wait-for-output) | ||
| 16 | (tramp-discard-garbage-erase-buffer): Call it. Reported by David | ||
| 17 | Howells <dhowells@redhat.com>. | ||
| 18 | (clear-visited-file-modtime): Defadvice removed. The check for | ||
| 19 | unset buffer's modtime does not need to be based on | ||
| 20 | `tramp-buffer-file-attributes'. Suggested by RMS. | ||
| 21 | (tramp-message): Insert "\n" if not being at beginning of line. | ||
| 22 | (tramp-find-shell): Use `tramp-barf-if-no-shell-prompt' for code | ||
| 23 | sequence with same logic. | ||
| 24 | (tramp-completion-handle-expand-file-name): Discard call of | ||
| 25 | `tramp-drop-volume-letter'. It is not necessary, and there have | ||
| 26 | been problems with (expand-file-name "~/.netrc" "/") in ange-ftp. | ||
| 27 | Reported by Richard G. Bielawski | ||
| 28 | <Richard.G.Bielawski@wellsfargo.com>. | ||
| 29 | (tramp-do-copy-or-rename-file-out-of-band): Transfer message | ||
| 30 | should always be visible. | ||
| 31 | (tramp-handle-insert-directory, tramp-setup-complete) | ||
| 32 | (tramp-set-process-query-on-exit-flag) | ||
| 33 | (tramp-append-tramp-buffers): Pacify byte-compiler. | ||
| 34 | (tramp-bug): Delete non-existing variables from list. Apply | ||
| 35 | `tramp-load-report-modules' as pre-hook. Mask | ||
| 36 | `tramp-password-prompt-regexp', `tramp-shell-prompt-pattern' and | ||
| 37 | `shell-prompt-pattern' because of non-7bit characters. Reported | ||
| 38 | by Sebastian Luque <sluque@mun.ca>. | ||
| 39 | (tramp-reporter-dump-variable, tramp-load-report-modules): New | ||
| 40 | defuns. | ||
| 41 | (tramp-match-string-list): Remove function. | ||
| 42 | (tramp-wait-for-regexp): Remove call of that function. Suggested | ||
| 43 | by Kim F. Storm <storm@cua.dk>. | ||
| 44 | (tramp-set-auto-save-file-modes): Use octal integer code #o600 | ||
| 45 | instead of octal character code ?\600. The latter resulted in a | ||
| 46 | syntax error with XEmacs. | ||
| 47 | |||
| 48 | * tramp-smb.el: Remove defvar of `last-coding-system-used' in the | ||
| 49 | XEmacs case; not necessary anymore. | ||
| 50 | (tramp-smb-handle-write-region): No special handling for | ||
| 51 | `last-coding-system-used, because this is done in | ||
| 52 | `tramp-accept-process-output' now. | ||
| 53 | (tramp-smb-wait-for-output): Call `tramp-accept-process-output'. | ||
| 54 | |||
| 1 | 2005-08-06 Luc Teirlinck <teirllm@auburn.edu> | 55 | 2005-08-06 Luc Teirlinck <teirllm@auburn.edu> |
| 2 | 56 | ||
| 3 | * wid-edit.el (widget-choice-value-create): Unconditionally | 57 | * wid-edit.el (widget-choice-value-create): Unconditionally |
diff --git a/lisp/net/tramp-ftp.el b/lisp/net/tramp-ftp.el index 05beeb246e1..53cc392ad7a 100644 --- a/lisp/net/tramp-ftp.el +++ b/lisp/net/tramp-ftp.el | |||
| @@ -1,8 +1,8 @@ | |||
| 1 | ;;; tramp-ftp.el --- Tramp convenience functions for Ange-FTP and EFS -*- coding: iso-8859-1; -*- | 1 | ;;; tramp-ftp.el --- Tramp convenience functions for Ange-FTP -*- coding: iso-8859-1; -*- |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Michael Albinus <Michael.Albinus@alcatel.de> | 5 | ;; Author: Michael Albinus <michael.albinus@gmx.de> |
| 6 | ;; Keywords: comm, processes | 6 | ;; Keywords: comm, processes |
| 7 | 7 | ||
| 8 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/net/tramp-smb.el b/lisp/net/tramp-smb.el index 74e2796fdef..5644e081e6c 100644 --- a/lisp/net/tramp-smb.el +++ b/lisp/net/tramp-smb.el | |||
| @@ -46,11 +46,6 @@ | |||
| 46 | (defalias 'warnings 'identity) ; Pacify Emacs byte-compiler | 46 | (defalias 'warnings 'identity) ; Pacify Emacs byte-compiler |
| 47 | (byte-compiler-options (warnings (- unused-vars)))))) | 47 | (byte-compiler-options (warnings (- unused-vars)))))) |
| 48 | 48 | ||
| 49 | ;; XEmacs byte-compiler raises warning abouts `last-coding-system-used'. | ||
| 50 | (eval-when-compile | ||
| 51 | (unless (boundp 'last-coding-system-used) | ||
| 52 | (defvar last-coding-system-used nil))) | ||
| 53 | |||
| 54 | ;; Define SMB method ... | 49 | ;; Define SMB method ... |
| 55 | (defcustom tramp-smb-method "smb" | 50 | (defcustom tramp-smb-method "smb" |
| 56 | "*Method to connect SAMBA and M$ SMB servers." | 51 | "*Method to connect SAMBA and M$ SMB servers." |
| @@ -598,13 +593,6 @@ Catches errors for shares like \"C$/\", which are common in Microsoft Windows." | |||
| 598 | (let ((share (tramp-smb-get-share localname)) | 593 | (let ((share (tramp-smb-get-share localname)) |
| 599 | (file (tramp-smb-get-localname localname t)) | 594 | (file (tramp-smb-get-localname localname t)) |
| 600 | (curbuf (current-buffer)) | 595 | (curbuf (current-buffer)) |
| 601 | ;; We use this to save the value of `last-coding-system-used' | ||
| 602 | ;; after writing the tmp file. At the end of the function, | ||
| 603 | ;; we set `last-coding-system-used' to this saved value. | ||
| 604 | ;; This way, any intermediary coding systems used while | ||
| 605 | ;; talking to the remote shell or suchlike won't hose this | ||
| 606 | ;; variable. This approach was snarfed from ange-ftp.el. | ||
| 607 | coding-system-used | ||
| 608 | tmpfil) | 596 | tmpfil) |
| 609 | ;; Write region into a tmp file. | 597 | ;; Write region into a tmp file. |
| 610 | (setq tmpfil (tramp-make-temp-file)) | 598 | (setq tmpfil (tramp-make-temp-file)) |
| @@ -616,9 +604,6 @@ Catches errors for shares like \"C$/\", which are common in Microsoft Windows." | |||
| 616 | (if confirm ; don't pass this arg unless defined for backward compat. | 604 | (if confirm ; don't pass this arg unless defined for backward compat. |
| 617 | (list start end tmpfil append 'no-message lockname confirm) | 605 | (list start end tmpfil append 'no-message lockname confirm) |
| 618 | (list start end tmpfil append 'no-message lockname))) | 606 | (list start end tmpfil append 'no-message lockname))) |
| 619 | ;; Now, `last-coding-system-used' has the right value. Remember it. | ||
| 620 | (when (boundp 'last-coding-system-used) | ||
| 621 | (setq coding-system-used last-coding-system-used)) | ||
| 622 | 607 | ||
| 623 | (tramp-smb-maybe-open-connection user host share) | 608 | (tramp-smb-maybe-open-connection user host share) |
| 624 | (tramp-message-for-buffer | 609 | (tramp-message-for-buffer |
| @@ -636,10 +621,7 @@ Catches errors for shares like \"C$/\", which are common in Microsoft Windows." | |||
| 636 | (error "Buffer has changed from `%s' to `%s'" | 621 | (error "Buffer has changed from `%s' to `%s'" |
| 637 | curbuf (current-buffer))) | 622 | curbuf (current-buffer))) |
| 638 | (when (eq visit t) | 623 | (when (eq visit t) |
| 639 | (set-visited-file-modtime)) | 624 | (set-visited-file-modtime)))))) |
| 640 | ;; Make `last-coding-system-used' have the right value. | ||
| 641 | (when (boundp 'last-coding-system-used) | ||
| 642 | (setq last-coding-system-used coding-system-used)))))) | ||
| 643 | 625 | ||
| 644 | 626 | ||
| 645 | ;; Internal file name functions | 627 | ;; Internal file name functions |
| @@ -1000,7 +982,7 @@ Returns nil if an error message has appeared." | |||
| 1000 | (while (and (not found) (not err)) | 982 | (while (and (not found) (not err)) |
| 1001 | 983 | ||
| 1002 | ;; Accept pending output. | 984 | ;; Accept pending output. |
| 1003 | (accept-process-output proc) | 985 | (tramp-accept-process-output proc) |
| 1004 | 986 | ||
| 1005 | ;; Search for prompt. | 987 | ;; Search for prompt. |
| 1006 | (goto-char (point-min)) | 988 | (goto-char (point-min)) |
diff --git a/lisp/net/tramp-uu.el b/lisp/net/tramp-uu.el index bbfd44c9999..e1e22af3cab 100644 --- a/lisp/net/tramp-uu.el +++ b/lisp/net/tramp-uu.el | |||
| @@ -3,7 +3,7 @@ | |||
| 3 | 3 | ||
| 4 | ;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. | 4 | ;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Kai Gro,A_(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> | 6 | ;; Author: Kai Gro,A_(Bjohann <kai.grossjohann@gmx.net> |
| 7 | ;; Keywords: comm, terminals | 7 | ;; Keywords: comm, terminals |
| 8 | 8 | ||
| 9 | ;; This file is free software; you can redistribute it and/or modify | 9 | ;; This file is free software; you can redistribute it and/or modify |
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index 19794976f7f..e3ad3959591 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el | |||
| @@ -4,7 +4,8 @@ | |||
| 4 | ;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, | 4 | ;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, |
| 5 | ;; 2005 Free Software Foundation, Inc. | 5 | ;; 2005 Free Software Foundation, Inc. |
| 6 | 6 | ||
| 7 | ;; Author: kai.grossjohann@gmx.net | 7 | ;; Author: Kai Gro,A_(Bjohann <kai.grossjohann@gmx.net> |
| 8 | ;; Michael Albinus <michael.albinus@gmx.de> | ||
| 8 | ;; Keywords: comm, processes | 9 | ;; Keywords: comm, processes |
| 9 | 10 | ||
| 10 | ;; This file is part of GNU Emacs. | 11 | ;; This file is part of GNU Emacs. |
| @@ -147,11 +148,6 @@ Nil means to use a separate filename syntax for Tramp.") | |||
| 147 | (when (boundp 'byte-compile-not-obsolete-var) | 148 | (when (boundp 'byte-compile-not-obsolete-var) |
| 148 | (setq byte-compile-not-obsolete-var 'directory-sep-char))) | 149 | (setq byte-compile-not-obsolete-var 'directory-sep-char))) |
| 149 | 150 | ||
| 150 | ;; XEmacs byte-compiler raises warning abouts `last-coding-system-used'. | ||
| 151 | (eval-when-compile | ||
| 152 | (unless (boundp 'last-coding-system-used) | ||
| 153 | (defvar last-coding-system-used nil))) | ||
| 154 | |||
| 155 | ;;; User Customizable Internal Variables: | 151 | ;;; User Customizable Internal Variables: |
| 156 | 152 | ||
| 157 | (defgroup tramp nil | 153 | (defgroup tramp nil |
| @@ -1031,7 +1027,7 @@ Derived from `tramp-postfix-multi-hop-format'." | |||
| 1031 | :type 'regexp) | 1027 | :type 'regexp) |
| 1032 | 1028 | ||
| 1033 | (defcustom tramp-user-regexp | 1029 | (defcustom tramp-user-regexp |
| 1034 | "[^:@/ \t]*" | 1030 | "[^:/ \t]*" |
| 1035 | "*Regexp matching user names." | 1031 | "*Regexp matching user names." |
| 1036 | :group 'tramp | 1032 | :group 'tramp |
| 1037 | :type 'regexp) | 1033 | :type 'regexp) |
| @@ -1914,7 +1910,9 @@ This function expects to be called from the tramp buffer only!" | |||
| 1914 | tramp-current-multi-method tramp-current-method | 1910 | tramp-current-multi-method tramp-current-method |
| 1915 | tramp-current-user tramp-current-host)) | 1911 | tramp-current-user tramp-current-host)) |
| 1916 | (goto-char (point-max)) | 1912 | (goto-char (point-max)) |
| 1917 | (tramp-insert-with-face | 1913 | (unless (bolp) |
| 1914 | (insert "\n")) | ||
| 1915 | (tramp-insert-with-face | ||
| 1918 | 'italic | 1916 | 'italic |
| 1919 | (concat "# " (apply #'format fmt-string args) "\n")))))) | 1917 | (concat "# " (apply #'format fmt-string args) "\n")))))) |
| 1920 | 1918 | ||
| @@ -2370,16 +2368,13 @@ target of the symlink differ." | |||
| 2370 | (buffer-name))) | 2368 | (buffer-name))) |
| 2371 | (if time-list | 2369 | (if time-list |
| 2372 | (tramp-run-real-handler 'set-visited-file-modtime (list time-list)) | 2370 | (tramp-run-real-handler 'set-visited-file-modtime (list time-list)) |
| 2373 | (let ((f (buffer-file-name)) | 2371 | (let ((f (buffer-file-name))) |
| 2374 | (coding-system-used nil)) | ||
| 2375 | (with-parsed-tramp-file-name f nil | 2372 | (with-parsed-tramp-file-name f nil |
| 2376 | (let* ((attr (file-attributes f)) | 2373 | (let* ((attr (file-attributes f)) |
| 2377 | ;; '(-1 65535) means file doesn't exists yet. | 2374 | ;; '(-1 65535) means file doesn't exists yet. |
| 2378 | (modtime (or (nth 5 attr) '(-1 65535)))) | 2375 | (modtime (or (nth 5 attr) '(-1 65535)))) |
| 2379 | ;; We use '(0 0) as a don't-know value. See also | 2376 | ;; We use '(0 0) as a don't-know value. See also |
| 2380 | ;; `tramp-handle-file-attributes-with-ls'. | 2377 | ;; `tramp-handle-file-attributes-with-ls'. |
| 2381 | (when (boundp 'last-coding-system-used) | ||
| 2382 | (setq coding-system-used last-coding-system-used)) | ||
| 2383 | (if (not (equal modtime '(0 0))) | 2378 | (if (not (equal modtime '(0 0))) |
| 2384 | (tramp-run-real-handler 'set-visited-file-modtime (list modtime)) | 2379 | (tramp-run-real-handler 'set-visited-file-modtime (list modtime)) |
| 2385 | (save-excursion | 2380 | (save-excursion |
| @@ -2392,9 +2387,7 @@ target of the symlink differ." | |||
| 2392 | (setq attr (buffer-substring (point) | 2387 | (setq attr (buffer-substring (point) |
| 2393 | (progn (end-of-line) (point))))) | 2388 | (progn (end-of-line) (point))))) |
| 2394 | (setq tramp-buffer-file-attributes attr)) | 2389 | (setq tramp-buffer-file-attributes attr)) |
| 2395 | (when (boundp 'last-coding-system-used) | 2390 | nil))))) |
| 2396 | (setq last-coding-system-used coding-system-used)) | ||
| 2397 | nil))))) | ||
| 2398 | 2391 | ||
| 2399 | ;; CCC continue here | 2392 | ;; CCC continue here |
| 2400 | 2393 | ||
| @@ -2412,7 +2405,7 @@ of." | |||
| 2412 | ;; recorded last modification time. | 2405 | ;; recorded last modification time. |
| 2413 | (if (or (not (buffer-file-name)) | 2406 | (if (or (not (buffer-file-name)) |
| 2414 | (eq (visited-file-modtime) 0)) | 2407 | (eq (visited-file-modtime) 0)) |
| 2415 | t | 2408 | t |
| 2416 | (let ((f (buffer-file-name))) | 2409 | (let ((f (buffer-file-name))) |
| 2417 | (with-parsed-tramp-file-name f nil | 2410 | (with-parsed-tramp-file-name f nil |
| 2418 | (let* ((attr (file-attributes f)) | 2411 | (let* ((attr (file-attributes f)) |
| @@ -2447,12 +2440,6 @@ of." | |||
| 2447 | ;; if and only if that agrees with the buffer's record. | 2440 | ;; if and only if that agrees with the buffer's record. |
| 2448 | (t (equal mt '(-1 65535)))))))))) | 2441 | (t (equal mt '(-1 65535)))))))))) |
| 2449 | 2442 | ||
| 2450 | (defadvice clear-visited-file-modtime (after tramp activate) | ||
| 2451 | "Set `tramp-buffer-file-attributes' back to nil. | ||
| 2452 | Tramp uses this variable as an emulation for the actual modtime of the file, | ||
| 2453 | if the remote host can't provide the modtime." | ||
| 2454 | (setq tramp-buffer-file-attributes nil)) | ||
| 2455 | |||
| 2456 | (defun tramp-handle-set-file-modes (filename mode) | 2443 | (defun tramp-handle-set-file-modes (filename mode) |
| 2457 | "Like `set-file-modes' for tramp files." | 2444 | "Like `set-file-modes' for tramp files." |
| 2458 | (with-parsed-tramp-file-name filename nil | 2445 | (with-parsed-tramp-file-name filename nil |
| @@ -3137,8 +3124,7 @@ be a local filename. The method used must be an out-of-band method." | |||
| 3137 | tramp-current-method method | 3124 | tramp-current-method method |
| 3138 | tramp-current-user user | 3125 | tramp-current-user user |
| 3139 | tramp-current-host host) | 3126 | tramp-current-host host) |
| 3140 | (tramp-message | 3127 | (message "Transferring %s to %s..." filename newname) |
| 3141 | 5 "Transferring %s to file %s..." filename newname) | ||
| 3142 | 3128 | ||
| 3143 | ;; Use rcp-like program for file transfer. | 3129 | ;; Use rcp-like program for file transfer. |
| 3144 | (let ((p (apply 'start-process (buffer-name trampbuf) trampbuf | 3130 | (let ((p (apply 'start-process (buffer-name trampbuf) trampbuf |
| @@ -3147,8 +3133,7 @@ be a local filename. The method used must be an out-of-band method." | |||
| 3147 | (tramp-process-actions p multi-method method user host | 3133 | (tramp-process-actions p multi-method method user host |
| 3148 | tramp-actions-copy-out-of-band)) | 3134 | tramp-actions-copy-out-of-band)) |
| 3149 | (kill-buffer trampbuf) | 3135 | (kill-buffer trampbuf) |
| 3150 | (tramp-message | 3136 | (message "Transferring %s to %s...done" filename newname) |
| 3151 | 5 "Transferring %s to file %s...done" filename newname) | ||
| 3152 | 3137 | ||
| 3153 | ;; Set the mode. | 3138 | ;; Set the mode. |
| 3154 | (unless keep-date | 3139 | (unless keep-date |
| @@ -3319,7 +3304,7 @@ This is like `dired-recursive-delete-directory' for tramp files." | |||
| 3319 | (filename switches &optional wildcard full-directory-p) | 3304 | (filename switches &optional wildcard full-directory-p) |
| 3320 | "Like `insert-directory' for tramp files." | 3305 | "Like `insert-directory' for tramp files." |
| 3321 | (if (and (boundp 'ls-lisp-use-insert-directory-program) | 3306 | (if (and (boundp 'ls-lisp-use-insert-directory-program) |
| 3322 | (not ls-lisp-use-insert-directory-program)) | 3307 | (not (symbol-value 'ls-lisp-use-insert-directory-program))) |
| 3323 | (tramp-run-real-handler 'insert-directory | 3308 | (tramp-run-real-handler 'insert-directory |
| 3324 | (list filename switches wildcard full-directory-p)) | 3309 | (list filename switches wildcard full-directory-p)) |
| 3325 | ;; For the moment, we assume that the remote "ls" program does not | 3310 | ;; For the moment, we assume that the remote "ls" program does not |
| @@ -3505,7 +3490,7 @@ the result will be a local, non-Tramp, filename." | |||
| 3505 | ;; Remote commands. | 3490 | ;; Remote commands. |
| 3506 | 3491 | ||
| 3507 | (defvar tramp-async-proc nil | 3492 | (defvar tramp-async-proc nil |
| 3508 | "Global variable keeping asyncronous process object. | 3493 | "Global variable keeping asynchronous process object. |
| 3509 | Used in `tramp-handle-shell-command'") | 3494 | Used in `tramp-handle-shell-command'") |
| 3510 | 3495 | ||
| 3511 | (defun tramp-handle-shell-command (command &optional output-buffer error-buffer) | 3496 | (defun tramp-handle-shell-command (command &optional output-buffer error-buffer) |
| @@ -3762,7 +3747,6 @@ This will break if COMMAND prints a newline, followed by the value of | |||
| 3762 | 'insert-file-contents) | 3747 | 'insert-file-contents) |
| 3763 | 'file-local-copy))) | 3748 | 'file-local-copy))) |
| 3764 | (file-local-copy filename))) | 3749 | (file-local-copy filename))) |
| 3765 | (coding-system-used nil) | ||
| 3766 | (result nil)) | 3750 | (result nil)) |
| 3767 | (when visit | 3751 | (when visit |
| 3768 | (setq buffer-file-name filename) | 3752 | (setq buffer-file-name filename) |
| @@ -3772,15 +3756,10 @@ This will break if COMMAND prints a newline, followed by the value of | |||
| 3772 | multi-method method user host | 3756 | multi-method method user host |
| 3773 | 9 "Inserting local temp file `%s'..." local-copy) | 3757 | 9 "Inserting local temp file `%s'..." local-copy) |
| 3774 | (setq result (insert-file-contents local-copy nil beg end replace)) | 3758 | (setq result (insert-file-contents local-copy nil beg end replace)) |
| 3775 | ;; Now `last-coding-system-used' has right value. Remember it. | ||
| 3776 | (when (boundp 'last-coding-system-used) | ||
| 3777 | (setq coding-system-used last-coding-system-used)) | ||
| 3778 | (tramp-message-for-buffer | 3759 | (tramp-message-for-buffer |
| 3779 | multi-method method user host | 3760 | multi-method method user host |
| 3780 | 9 "Inserting local temp file `%s'...done" local-copy) | 3761 | 9 "Inserting local temp file `%s'...done" local-copy) |
| 3781 | (delete-file local-copy) | 3762 | (delete-file local-copy) |
| 3782 | (when (boundp 'last-coding-system-used) | ||
| 3783 | (setq last-coding-system-used coding-system-used)) | ||
| 3784 | (list (expand-file-name filename) | 3763 | (list (expand-file-name filename) |
| 3785 | (second result)))))) | 3764 | (second result)))))) |
| 3786 | 3765 | ||
| @@ -3845,7 +3824,7 @@ This will break if COMMAND prints a newline, followed by the value of | |||
| 3845 | ;; (string= lockname filename)) | 3824 | ;; (string= lockname filename)) |
| 3846 | ;; (error | 3825 | ;; (error |
| 3847 | ;; "tramp-handle-write-region: LOCKNAME must be nil or equal FILENAME")) | 3826 | ;; "tramp-handle-write-region: LOCKNAME must be nil or equal FILENAME")) |
| 3848 | ;; XEmacs takes a coding system as the sevent argument, not `confirm' | 3827 | ;; XEmacs takes a coding system as the seventh argument, not `confirm' |
| 3849 | (when (and (not (featurep 'xemacs)) | 3828 | (when (and (not (featurep 'xemacs)) |
| 3850 | confirm (file-exists-p filename)) | 3829 | confirm (file-exists-p filename)) |
| 3851 | (unless (y-or-n-p (format "File %s exists; overwrite anyway? " | 3830 | (unless (y-or-n-p (format "File %s exists; overwrite anyway? " |
| @@ -3859,13 +3838,6 @@ This will break if COMMAND prints a newline, followed by the value of | |||
| 3859 | (loc-dec (tramp-get-local-decoding multi-method method user host)) | 3838 | (loc-dec (tramp-get-local-decoding multi-method method user host)) |
| 3860 | (trampbuf (get-buffer-create "*tramp output*")) | 3839 | (trampbuf (get-buffer-create "*tramp output*")) |
| 3861 | (modes (file-modes filename)) | 3840 | (modes (file-modes filename)) |
| 3862 | ;; We use this to save the value of `last-coding-system-used' | ||
| 3863 | ;; after writing the tmp file. At the end of the function, | ||
| 3864 | ;; we set `last-coding-system-used' to this saved value. | ||
| 3865 | ;; This way, any intermediary coding systems used while | ||
| 3866 | ;; talking to the remote shell or suchlike won't hose this | ||
| 3867 | ;; variable. This approach was snarfed from ange-ftp.el. | ||
| 3868 | coding-system-used | ||
| 3869 | tmpfil) | 3841 | tmpfil) |
| 3870 | ;; Write region into a tmp file. This isn't really needed if we | 3842 | ;; Write region into a tmp file. This isn't really needed if we |
| 3871 | ;; use an encoding function, but currently we use it always | 3843 | ;; use an encoding function, but currently we use it always |
| @@ -3887,9 +3859,6 @@ This will break if COMMAND prints a newline, followed by the value of | |||
| 3887 | ;; the backup file. This case `save-buffer' handles | 3859 | ;; the backup file. This case `save-buffer' handles |
| 3888 | ;; permissions. | 3860 | ;; permissions. |
| 3889 | (when modes (set-file-modes tmpfil modes)) | 3861 | (when modes (set-file-modes tmpfil modes)) |
| 3890 | ;; Now, `last-coding-system-used' has the right value. Remember it. | ||
| 3891 | (when (boundp 'last-coding-system-used) | ||
| 3892 | (setq coding-system-used last-coding-system-used)) | ||
| 3893 | ;; This is a bit lengthy due to the different methods possible for | 3862 | ;; This is a bit lengthy due to the different methods possible for |
| 3894 | ;; file transfer. First, we check whether the method uses an rcp | 3863 | ;; file transfer. First, we check whether the method uses an rcp |
| 3895 | ;; program. If so, we call it. Otherwise, both encoding and | 3864 | ;; program. If so, we call it. Otherwise, both encoding and |
| @@ -3991,9 +3960,6 @@ This will break if COMMAND prints a newline, followed by the value of | |||
| 3991 | ;; We must pass modtime explicitely, because filename can be different | 3960 | ;; We must pass modtime explicitely, because filename can be different |
| 3992 | ;; from (buffer-file-name), f.e. if `file-precious-flag' is set. | 3961 | ;; from (buffer-file-name), f.e. if `file-precious-flag' is set. |
| 3993 | (nth 5 (file-attributes filename)))) | 3962 | (nth 5 (file-attributes filename)))) |
| 3994 | ;; Make `last-coding-system-used' have the right value. | ||
| 3995 | (when (boundp 'last-coding-system-used) | ||
| 3996 | (setq last-coding-system-used coding-system-used)) | ||
| 3997 | (when (or (eq visit t) | 3963 | (when (or (eq visit t) |
| 3998 | (eq visit nil) | 3964 | (eq visit nil) |
| 3999 | (stringp visit)) | 3965 | (stringp visit)) |
| @@ -4301,7 +4267,7 @@ necessary anymore." | |||
| 4301 | (symbol-function 'PC-expand-many-files)) | 4267 | (symbol-function 'PC-expand-many-files)) |
| 4302 | (defun PC-expand-many-files (name) | 4268 | (defun PC-expand-many-files (name) |
| 4303 | (if (tramp-tramp-file-p name) | 4269 | (if (tramp-tramp-file-p name) |
| 4304 | (expand-many-files name) | 4270 | (funcall (symbol-function 'expand-many-files) name) |
| 4305 | (tramp-save-PC-expand-many-files name)))) | 4271 | (tramp-save-PC-expand-many-files name)))) |
| 4306 | 4272 | ||
| 4307 | ;; Why isn't eval-after-load sufficient? | 4273 | ;; Why isn't eval-after-load sufficient? |
| @@ -4825,12 +4791,11 @@ User may be nil." | |||
| 4825 | (defun tramp-completion-handle-expand-file-name (name &optional dir) | 4791 | (defun tramp-completion-handle-expand-file-name (name &optional dir) |
| 4826 | "Like `expand-file-name' for tramp files." | 4792 | "Like `expand-file-name' for tramp files." |
| 4827 | (let ((fullname (concat (or dir default-directory) name))) | 4793 | (let ((fullname (concat (or dir default-directory) name))) |
| 4828 | (tramp-drop-volume-letter | 4794 | (if (tramp-completion-mode fullname) |
| 4829 | (if (tramp-completion-mode fullname) | 4795 | (tramp-run-real-handler |
| 4830 | (tramp-run-real-handler | 4796 | 'expand-file-name (list name dir)) |
| 4831 | 'expand-file-name (list name dir)) | 4797 | (tramp-completion-run-real-handler |
| 4832 | (tramp-completion-run-real-handler | 4798 | 'expand-file-name (list name dir))))) |
| 4833 | 'expand-file-name (list name dir)))))) | ||
| 4834 | 4799 | ||
| 4835 | ;;; Internal Functions: | 4800 | ;;; Internal Functions: |
| 4836 | 4801 | ||
| @@ -5127,12 +5092,9 @@ file exists and nonzero exit status otherwise." | |||
| 5127 | (tramp-send-command | 5092 | (tramp-send-command |
| 5128 | multi-method method user host | 5093 | multi-method method user host |
| 5129 | (concat "PS1='$ ' exec " shell)) ; | 5094 | (concat "PS1='$ ' exec " shell)) ; |
| 5130 | (unless (tramp-wait-for-regexp | 5095 | (tramp-barf-if-no-shell-prompt |
| 5131 | (get-buffer-process (current-buffer)) | 5096 | (get-buffer-process (current-buffer)) |
| 5132 | 60 (format "\\(\\(%s\\)\\|\\(%s\\)\\)\\'" | 5097 | 60 "Couldn't find remote `%s' prompt" shell) |
| 5133 | tramp-shell-prompt-pattern shell-prompt-pattern)) | ||
| 5134 | (pop-to-buffer (buffer-name)) | ||
| 5135 | (error "Couldn't find remote `%s' prompt" shell)) | ||
| 5136 | (tramp-message | 5098 | (tramp-message |
| 5137 | 9 "Setting remote shell prompt...") | 5099 | 9 "Setting remote shell prompt...") |
| 5138 | ;; Douglas Gray Stephens <DGrayStephens@slb.com> says that we | 5100 | ;; Douglas Gray Stephens <DGrayStephens@slb.com> says that we |
| @@ -5331,7 +5293,7 @@ The terminal type can be configured with `tramp-terminal-type'." | |||
| 5331 | (tramp-message 9 "Waiting 60s for prompt from remote shell") | 5293 | (tramp-message 9 "Waiting 60s for prompt from remote shell") |
| 5332 | (with-timeout (60 (throw 'tramp-action 'timeout)) | 5294 | (with-timeout (60 (throw 'tramp-action 'timeout)) |
| 5333 | (while (not found) | 5295 | (while (not found) |
| 5334 | (accept-process-output p 1) | 5296 | (tramp-accept-process-output p 1) |
| 5335 | (goto-char (point-min)) | 5297 | (goto-char (point-min)) |
| 5336 | (setq todo actions) | 5298 | (setq todo actions) |
| 5337 | (while todo | 5299 | (while todo |
| @@ -5368,7 +5330,7 @@ The terminal type can be configured with `tramp-terminal-type'." | |||
| 5368 | (tramp-message 9 "Waiting 60s for prompt from remote shell") | 5330 | (tramp-message 9 "Waiting 60s for prompt from remote shell") |
| 5369 | (with-timeout (60 (throw 'tramp-action 'timeout)) | 5331 | (with-timeout (60 (throw 'tramp-action 'timeout)) |
| 5370 | (while (not found) | 5332 | (while (not found) |
| 5371 | (accept-process-output p 1) | 5333 | (tramp-accept-process-output p 1) |
| 5372 | (setq todo actions) | 5334 | (setq todo actions) |
| 5373 | (goto-char (point-min)) | 5335 | (goto-char (point-min)) |
| 5374 | (while todo | 5336 | (while todo |
| @@ -5757,6 +5719,14 @@ character." | |||
| 5757 | 5719 | ||
| 5758 | ;; Utility functions. | 5720 | ;; Utility functions. |
| 5759 | 5721 | ||
| 5722 | (defun tramp-accept-process-output | ||
| 5723 | (&optional process timeout timeout-msecs) | ||
| 5724 | "Like `accept-process-output' for Tramp processes. | ||
| 5725 | This is needed in order to hide `last-coding-system-used', which is set | ||
| 5726 | for process communication also." | ||
| 5727 | (let (last-coding-system-used) | ||
| 5728 | (accept-process-output process timeout timeout-msecs))) | ||
| 5729 | |||
| 5760 | (defun tramp-wait-for-regexp (proc timeout regexp) | 5730 | (defun tramp-wait-for-regexp (proc timeout regexp) |
| 5761 | "Wait for a REGEXP to appear from process PROC within TIMEOUT seconds. | 5731 | "Wait for a REGEXP to appear from process PROC within TIMEOUT seconds. |
| 5762 | Expects the output of PROC to be sent to the current buffer. Returns | 5732 | Expects the output of PROC to be sent to the current buffer. Returns |
| @@ -5773,20 +5743,18 @@ nil." | |||
| 5773 | timeout)) | 5743 | timeout)) |
| 5774 | (with-timeout (timeout) | 5744 | (with-timeout (timeout) |
| 5775 | (while (not found) | 5745 | (while (not found) |
| 5776 | (accept-process-output proc 1) | 5746 | (tramp-accept-process-output proc 1) |
| 5777 | (unless (memq (process-status proc) '(run open)) | 5747 | (unless (memq (process-status proc) '(run open)) |
| 5778 | (error "Process has died")) | 5748 | (error "Process has died")) |
| 5779 | (goto-char (point-min)) | 5749 | (goto-char (point-min)) |
| 5780 | (setq found (when (re-search-forward regexp nil t) | 5750 | (setq found (re-search-forward regexp nil t)))))) |
| 5781 | (tramp-match-string-list))))))) | ||
| 5782 | (t | 5751 | (t |
| 5783 | (while (not found) | 5752 | (while (not found) |
| 5784 | (accept-process-output proc 1) | 5753 | (tramp-accept-process-output proc 1) |
| 5785 | (unless (memq (process-status proc) '(run open)) | 5754 | (unless (memq (process-status proc) '(run open)) |
| 5786 | (error "Process has died")) | 5755 | (error "Process has died")) |
| 5787 | (goto-char (point-min)) | 5756 | (goto-char (point-min)) |
| 5788 | (setq found (when (re-search-forward regexp nil t) | 5757 | (setq found (re-search-forward regexp nil t))))) |
| 5789 | (tramp-match-string-list)))))) | ||
| 5790 | (when tramp-debug-buffer | 5758 | (when tramp-debug-buffer |
| 5791 | (append-to-buffer | 5759 | (append-to-buffer |
| 5792 | (tramp-get-debug-buffer tramp-current-multi-method tramp-current-method | 5760 | (tramp-get-debug-buffer tramp-current-multi-method tramp-current-method |
| @@ -6399,7 +6367,7 @@ Sends COMMAND, then waits 30 seconds for shell prompt." | |||
| 6399 | timeout)) | 6367 | timeout)) |
| 6400 | (with-timeout (timeout) | 6368 | (with-timeout (timeout) |
| 6401 | (while (not found) | 6369 | (while (not found) |
| 6402 | (accept-process-output proc 1) | 6370 | (tramp-accept-process-output proc 1) |
| 6403 | (unless (memq (process-status proc) '(run open)) | 6371 | (unless (memq (process-status proc) '(run open)) |
| 6404 | (error "Process has died")) | 6372 | (error "Process has died")) |
| 6405 | (goto-char (point-max)) | 6373 | (goto-char (point-max)) |
| @@ -6407,7 +6375,7 @@ Sends COMMAND, then waits 30 seconds for shell prompt." | |||
| 6407 | (setq found (looking-at end-of-output)))))) | 6375 | (setq found (looking-at end-of-output)))))) |
| 6408 | (t | 6376 | (t |
| 6409 | (while (not found) | 6377 | (while (not found) |
| 6410 | (accept-process-output proc 1) | 6378 | (tramp-accept-process-output proc 1) |
| 6411 | (unless (memq (process-status proc) '(run open)) | 6379 | (unless (memq (process-status proc) '(run open)) |
| 6412 | (error "Process has died")) | 6380 | (error "Process has died")) |
| 6413 | (goto-char (point-max)) | 6381 | (goto-char (point-max)) |
| @@ -6444,18 +6412,6 @@ Sends COMMAND, then waits 30 seconds for shell prompt." | |||
| 6444 | ;; Return value is whether end-of-output sentinel was found. | 6412 | ;; Return value is whether end-of-output sentinel was found. |
| 6445 | found)) | 6413 | found)) |
| 6446 | 6414 | ||
| 6447 | (defun tramp-match-string-list (&optional string) | ||
| 6448 | "Returns list of all match strings. | ||
| 6449 | That is, (list (match-string 0) (match-string 1) ...), according to the | ||
| 6450 | number of matches." | ||
| 6451 | (let* ((nmatches (/ (length (match-data)) 2)) | ||
| 6452 | (i (- nmatches 1)) | ||
| 6453 | (res nil)) | ||
| 6454 | (while (>= i 0) | ||
| 6455 | (setq res (cons (match-string i string) res)) | ||
| 6456 | (setq i (- i 1))) | ||
| 6457 | res)) | ||
| 6458 | |||
| 6459 | (defun tramp-send-command-and-check (multi-method method user host command | 6415 | (defun tramp-send-command-and-check (multi-method method user host command |
| 6460 | &optional subshell) | 6416 | &optional subshell) |
| 6461 | "Run COMMAND and check its exit status. | 6417 | "Run COMMAND and check its exit status. |
| @@ -6556,7 +6512,7 @@ MULTI-METHOD, METHOD, USER, and HOST specify the connection." | |||
| 6556 | If `tramp-discard-garbage' is nil, just erase buffer." | 6512 | If `tramp-discard-garbage' is nil, just erase buffer." |
| 6557 | (if (not tramp-discard-garbage) | 6513 | (if (not tramp-discard-garbage) |
| 6558 | (erase-buffer) | 6514 | (erase-buffer) |
| 6559 | (while (prog1 (erase-buffer) (accept-process-output p 0.25)) | 6515 | (while (prog1 (erase-buffer) (tramp-accept-process-output p 0.25)) |
| 6560 | (when tramp-debug-buffer | 6516 | (when tramp-debug-buffer |
| 6561 | (save-excursion | 6517 | (save-excursion |
| 6562 | (set-buffer (tramp-get-debug-buffer multi-method method user host)) | 6518 | (set-buffer (tramp-get-debug-buffer multi-method method user host)) |
| @@ -6993,7 +6949,7 @@ as default." | |||
| 6993 | ;; auto-saved file belonging to another original file. This could | 6949 | ;; auto-saved file belonging to another original file. This could |
| 6994 | ;; be a security threat. | 6950 | ;; be a security threat. |
| 6995 | (set-file-modes buffer-auto-save-file-name | 6951 | (set-file-modes buffer-auto-save-file-name |
| 6996 | (or (file-modes bfn) ?\600))))) | 6952 | (or (file-modes bfn) #o600))))) |
| 6997 | 6953 | ||
| 6998 | (unless (or (> emacs-major-version 21) | 6954 | (unless (or (> emacs-major-version 21) |
| 6999 | (and (featurep 'xemacs) | 6955 | (and (featurep 'xemacs) |
| @@ -7130,10 +7086,11 @@ it does the right thing." | |||
| 7130 | "Specify if query is needed for process when Emacs is exited. | 7086 | "Specify if query is needed for process when Emacs is exited. |
| 7131 | If the second argument flag is non-nil, Emacs will query the user before | 7087 | If the second argument flag is non-nil, Emacs will query the user before |
| 7132 | exiting if process is running." | 7088 | exiting if process is running." |
| 7089 | (funcall | ||
| 7133 | (if (fboundp 'set-process-query-on-exit-flag) | 7090 | (if (fboundp 'set-process-query-on-exit-flag) |
| 7134 | (set-process-query-on-exit-flag process flag) | 7091 | (symbol-function 'set-process-query-on-exit-flag) |
| 7135 | (funcall (symbol-function 'process-kill-without-query) | 7092 | (symbol-function 'process-kill-without-query)) |
| 7136 | process flag))) | 7093 | process flag)) |
| 7137 | 7094 | ||
| 7138 | 7095 | ||
| 7139 | ;; ------------------------------------------------------------ | 7096 | ;; ------------------------------------------------------------ |
| @@ -7213,20 +7170,19 @@ Only works for Bourne-like shells." | |||
| 7213 | ;; CCC: This check is now also really awful; we should search all | 7170 | ;; CCC: This check is now also really awful; we should search all |
| 7214 | ;; of the filename format, not just the prefix. | 7171 | ;; of the filename format, not just the prefix. |
| 7215 | (when (string-match "\\[" tramp-prefix-format) | 7172 | (when (string-match "\\[" tramp-prefix-format) |
| 7216 | (defadvice file-expand-wildcards (around tramp-fix activate) | 7173 | (defadvice file-expand-wildcards (around tramp-fix activate) |
| 7217 | (let ((name (ad-get-arg 0))) | 7174 | (let ((name (ad-get-arg 0))) |
| 7218 | (if (tramp-tramp-file-p name) | 7175 | (if (tramp-tramp-file-p name) |
| 7219 | ;; If it's a Tramp file, dissect it and look if wildcards | 7176 | ;; If it's a Tramp file, dissect it and look if wildcards |
| 7220 | ;; need to be expanded at all. | 7177 | ;; need to be expanded at all. |
| 7221 | (let ((v (tramp-dissect-file-name name))) | 7178 | (let ((v (tramp-dissect-file-name name))) |
| 7222 | (if (string-match "[[*?]" (tramp-file-name-localname v)) | 7179 | (if (string-match "[[*?]" (tramp-file-name-localname v)) |
| 7223 | (let ((res ad-do-it)) | 7180 | (let ((res ad-do-it)) |
| 7224 | (setq ad-return-value (or res (list name)))) | 7181 | (setq ad-return-value (or res (list name)))) |
| 7225 | (setq ad-return-value (list name)))) | 7182 | (setq ad-return-value (list name)))) |
| 7226 | ;; If it is not a Tramp file, just run the original function. | 7183 | ;; If it is not a Tramp file, just run the original function. |
| 7227 | (let ((res ad-do-it)) | 7184 | (let ((res ad-do-it)) |
| 7228 | (setq ad-return-value (or res (list name))))))) | 7185 | (setq ad-return-value (or res (list name)))))))) |
| 7229 | ) | ||
| 7230 | 7186 | ||
| 7231 | ;; Tramp version is useful in a number of situations. | 7187 | ;; Tramp version is useful in a number of situations. |
| 7232 | 7188 | ||
| @@ -7246,69 +7202,74 @@ Only works for Bourne-like shells." | |||
| 7246 | (interactive) | 7202 | (interactive) |
| 7247 | (require 'reporter) | 7203 | (require 'reporter) |
| 7248 | (catch 'dont-send | 7204 | (catch 'dont-send |
| 7249 | (let ((reporter-prompt-for-summary-p t)) | 7205 | (let ((reporter-prompt-for-summary-p t)) |
| 7250 | (reporter-submit-bug-report | 7206 | (reporter-submit-bug-report |
| 7251 | tramp-bug-report-address ; to-address | 7207 | tramp-bug-report-address ; to-address |
| 7252 | (format "tramp (%s)" tramp-version) ; package name and version | 7208 | (format "tramp (%s)" tramp-version) ; package name and version |
| 7253 | `(;; Current state | 7209 | (delq nil |
| 7254 | tramp-ls-command | 7210 | `(;; Current state |
| 7255 | tramp-test-groks-nt | 7211 | tramp-ls-command |
| 7256 | tramp-file-exists-command | 7212 | tramp-test-groks-nt |
| 7257 | tramp-current-multi-method | 7213 | tramp-file-exists-command |
| 7258 | tramp-current-method | 7214 | tramp-current-multi-method |
| 7259 | tramp-current-user | 7215 | tramp-current-method |
| 7260 | tramp-current-host | 7216 | tramp-current-user |
| 7261 | 7217 | tramp-current-host | |
| 7262 | ;; System defaults | 7218 | |
| 7263 | tramp-auto-save-directory ; vars to dump | 7219 | ;; System defaults |
| 7264 | tramp-default-method | 7220 | tramp-auto-save-directory ; vars to dump |
| 7265 | tramp-rsh-end-of-line | 7221 | tramp-default-method |
| 7266 | tramp-default-password-end-of-line | 7222 | tramp-rsh-end-of-line |
| 7267 | tramp-remote-path | 7223 | tramp-default-password-end-of-line |
| 7268 | tramp-login-prompt-regexp | 7224 | tramp-remote-path |
| 7269 | tramp-password-prompt-regexp | 7225 | tramp-login-prompt-regexp |
| 7270 | tramp-wrong-passwd-regexp | 7226 | ;; Mask non-7bit characters |
| 7271 | tramp-yesno-prompt-regexp | 7227 | (tramp-password-prompt-regexp . tramp-reporter-dump-variable) |
| 7272 | tramp-yn-prompt-regexp | 7228 | tramp-wrong-passwd-regexp |
| 7273 | tramp-terminal-prompt-regexp | 7229 | tramp-yesno-prompt-regexp |
| 7274 | tramp-temp-name-prefix | 7230 | tramp-yn-prompt-regexp |
| 7275 | tramp-file-name-structure | 7231 | tramp-terminal-prompt-regexp |
| 7276 | tramp-file-name-regexp | 7232 | tramp-temp-name-prefix |
| 7277 | tramp-multi-file-name-structure | 7233 | tramp-file-name-structure |
| 7278 | tramp-multi-file-name-hop-structure | 7234 | tramp-file-name-regexp |
| 7279 | tramp-multi-methods | 7235 | tramp-multi-file-name-structure |
| 7280 | tramp-multi-connection-function-alist | 7236 | tramp-multi-file-name-hop-structure |
| 7281 | tramp-methods | 7237 | tramp-multi-methods |
| 7282 | tramp-end-of-output | 7238 | tramp-multi-connection-function-alist |
| 7283 | tramp-coding-commands | 7239 | tramp-methods |
| 7284 | tramp-actions-before-shell | 7240 | tramp-end-of-output |
| 7285 | tramp-actions-copy-out-of-band | 7241 | tramp-coding-commands |
| 7286 | tramp-multi-actions | 7242 | tramp-actions-before-shell |
| 7287 | tramp-terminal-type | 7243 | tramp-actions-copy-out-of-band |
| 7288 | tramp-shell-prompt-pattern | 7244 | tramp-multi-actions |
| 7289 | tramp-chunksize | 7245 | tramp-terminal-type |
| 7290 | ,(when (boundp 'tramp-backup-directory-alist) | 7246 | ;; Mask non-7bit characters |
| 7291 | 'tramp-backup-directory-alist) | 7247 | (tramp-shell-prompt-pattern . tramp-reporter-dump-variable) |
| 7292 | ,(when (boundp 'tramp-bkup-backup-directory-info) | 7248 | tramp-chunksize |
| 7293 | 'tramp-bkup-backup-directory-info) | 7249 | ,(when (boundp 'tramp-backup-directory-alist) |
| 7294 | 7250 | 'tramp-backup-directory-alist) | |
| 7295 | ;; Non-tramp variables of interest | 7251 | ,(when (boundp 'tramp-bkup-backup-directory-info) |
| 7296 | shell-prompt-pattern | 7252 | 'tramp-bkup-backup-directory-info) |
| 7297 | backup-by-copying | 7253 | |
| 7298 | backup-by-copying-when-linked | 7254 | ;; Non-tramp variables of interest |
| 7299 | backup-by-copying-when-mismatch | 7255 | ;; Mask non-7bit characters |
| 7300 | ,(when (boundp 'backup-by-copying-when-privileged-mismatch) | 7256 | (shell-prompt-pattern . tramp-reporter-dump-variable) |
| 7301 | 'backup-by-copying-when-privileged-mismatch) | 7257 | backup-by-copying |
| 7302 | ,(when (boundp 'password-cache) | 7258 | backup-by-copying-when-linked |
| 7303 | 'password-cache) | 7259 | backup-by-copying-when-mismatch |
| 7304 | ,(when (boundp 'password-cache-expiry) | 7260 | ,(when (boundp 'backup-by-copying-when-privileged-mismatch) |
| 7305 | 'password-cache-expiry) | 7261 | 'backup-by-copying-when-privileged-mismatch) |
| 7306 | ,(when (boundp 'backup-directory-alist) | 7262 | ,(when (boundp 'password-cache) |
| 7307 | 'backup-directory-alist) | 7263 | 'password-cache) |
| 7308 | ,(when (boundp 'bkup-backup-directory-info) | 7264 | ,(when (boundp 'password-cache-expiry) |
| 7309 | 'bkup-backup-directory-info) | 7265 | 'password-cache-expiry) |
| 7310 | file-name-handler-alist) | 7266 | ,(when (boundp 'backup-directory-alist) |
| 7311 | nil ; pre-hook | 7267 | 'backup-directory-alist) |
| 7268 | ,(when (boundp 'bkup-backup-directory-info) | ||
| 7269 | 'bkup-backup-directory-info) | ||
| 7270 | file-name-handler-alist)) | ||
| 7271 | |||
| 7272 | 'tramp-load-report-modules ; pre-hook | ||
| 7312 | 'tramp-append-tramp-buffers ; post-hook | 7273 | 'tramp-append-tramp-buffers ; post-hook |
| 7313 | "\ | 7274 | "\ |
| 7314 | Enter your bug report in this message, including as much detail as you | 7275 | Enter your bug report in this message, including as much detail as you |
| @@ -7327,8 +7288,43 @@ report. | |||
| 7327 | --bug report follows this line-- | 7288 | --bug report follows this line-- |
| 7328 | ")))) | 7289 | ")))) |
| 7329 | 7290 | ||
| 7330 | (defun tramp-append-tramp-buffers () | 7291 | (defun tramp-reporter-dump-variable (varsym mailbuf) |
| 7331 | "Append Tramp buffers into the bug report." | 7292 | "Pretty-print the value of the variable in symbol VARSYM. |
| 7293 | Used for non-7bit chars in strings." | ||
| 7294 | (let* ((reporter-eval-buffer (symbol-value 'reporter-eval-buffer)) | ||
| 7295 | (val (with-current-buffer reporter-eval-buffer | ||
| 7296 | (symbol-value varsym)))) | ||
| 7297 | |||
| 7298 | ;; There are characters to be masked. | ||
| 7299 | (when (and (boundp 'mm-7bit-chars) | ||
| 7300 | (string-match | ||
| 7301 | (concat "[^" (symbol-value 'mm-7bit-chars) "]") val)) | ||
| 7302 | (with-current-buffer reporter-eval-buffer | ||
| 7303 | (set varsym (concat "(base64-decode-string \"" | ||
| 7304 | (base64-encode-string val) | ||
| 7305 | "\")")))) | ||
| 7306 | |||
| 7307 | ;; Dump variable. | ||
| 7308 | (funcall (symbol-function 'reporter-dump-variable) varsym mailbuf) | ||
| 7309 | |||
| 7310 | ;; Remove string quotation. | ||
| 7311 | (forward-line -1) | ||
| 7312 | (when (looking-at | ||
| 7313 | (concat "\\(^.*\\)" "\"" ;; \1 " | ||
| 7314 | "\\((base64-decode-string \\)" "\\\\" ;; \2 \ | ||
| 7315 | "\\(\".*\\)" "\\\\" ;; \3 \ | ||
| 7316 | "\\(\")\\)" "\"$")) ;; \4 " | ||
| 7317 | (replace-match "\\1\\2\\3\\4") | ||
| 7318 | (beginning-of-line) | ||
| 7319 | (insert " ;; variable encoded due to non-printable characters\n")) | ||
| 7320 | (forward-line 1) | ||
| 7321 | |||
| 7322 | ;; Reset VARSYM to old value. | ||
| 7323 | (with-current-buffer reporter-eval-buffer | ||
| 7324 | (set varsym val)))) | ||
| 7325 | |||
| 7326 | (defun tramp-load-report-modules () | ||
| 7327 | "Load needed modules for reporting." | ||
| 7332 | 7328 | ||
| 7333 | ;; We load message.el and mml.el from Gnus. | 7329 | ;; We load message.el and mml.el from Gnus. |
| 7334 | (if (featurep 'xemacs) | 7330 | (if (featurep 'xemacs) |
| @@ -7338,9 +7334,12 @@ report. | |||
| 7338 | (require 'message nil 'noerror) | 7334 | (require 'message nil 'noerror) |
| 7339 | (require 'mml nil 'noerror)) | 7335 | (require 'mml nil 'noerror)) |
| 7340 | (when (functionp 'message-mode) | 7336 | (when (functionp 'message-mode) |
| 7341 | (funcall 'message-mode)) | 7337 | (funcall (symbol-function 'message-mode))) |
| 7342 | (when (functionp 'mml-mode) | 7338 | (when (functionp 'mml-mode) |
| 7343 | (funcall 'mml-mode t)) | 7339 | (funcall (symbol-function 'mml-mode) t))) |
| 7340 | |||
| 7341 | (defun tramp-append-tramp-buffers () | ||
| 7342 | "Append Tramp buffers into the bug report." | ||
| 7344 | 7343 | ||
| 7345 | (when (and | 7344 | (when (and |
| 7346 | (eq major-mode 'message-mode) | 7345 | (eq major-mode 'message-mode) |
| @@ -7394,10 +7393,10 @@ Therefore, the contents of files might be included in the debug buffer(s).") | |||
| 7394 | (goto-char (point-max)) | 7393 | (goto-char (point-max)) |
| 7395 | (insert "\n\n") | 7394 | (insert "\n\n") |
| 7396 | (dolist (buffer buffer-list) | 7395 | (dolist (buffer buffer-list) |
| 7397 | (mml-insert-empty-tag | 7396 | (funcall (symbol-function 'mml-insert-empty-tag) |
| 7398 | 'part 'type "text/plain" 'encoding "base64" | 7397 | 'part 'type "text/plain" 'encoding "base64" |
| 7399 | 'disposition "attachment" 'buffer (buffer-name buffer) | 7398 | 'disposition "attachment" 'buffer (buffer-name buffer) |
| 7400 | 'description (buffer-name buffer))) | 7399 | 'description (buffer-name buffer))) |
| 7401 | (set-buffer-modified-p nil)) | 7400 | (set-buffer-modified-p nil)) |
| 7402 | 7401 | ||
| 7403 | ;; Don't send. Delete the message buffer. | 7402 | ;; Don't send. Delete the message buffer. |
diff --git a/lisp/net/trampver.el b/lisp/net/trampver.el index 0feb93af987..2ba9f7b3249 100644 --- a/lisp/net/trampver.el +++ b/lisp/net/trampver.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. | 5 | ;; Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. |
| 6 | 6 | ||
| 7 | ;; Author: Kai.Grossjohann@CS.Uni-Dortmund.DE | 7 | ;; Author: Kai Gro,A_(Bjohann <kai.grossjohann@gmx.net> |
| 8 | ;; Keywords: comm, processes | 8 | ;; Keywords: comm, processes |
| 9 | 9 | ||
| 10 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
| @@ -30,7 +30,7 @@ | |||
| 30 | ;; are auto-frobbed from configure.ac, so you should edit that file and run | 30 | ;; are auto-frobbed from configure.ac, so you should edit that file and run |
| 31 | ;; "autoconf && ./configure" to change them. | 31 | ;; "autoconf && ./configure" to change them. |
| 32 | 32 | ||
| 33 | (defconst tramp-version "2.0.49" | 33 | (defconst tramp-version "2.0.50" |
| 34 | "This version of Tramp.") | 34 | "This version of Tramp.") |
| 35 | 35 | ||
| 36 | (defconst tramp-bug-report-address "tramp-devel@gnu.org" | 36 | (defconst tramp-bug-report-address "tramp-devel@gnu.org" |
diff --git a/man/ChangeLog b/man/ChangeLog index ddb84cb91be..f0119913494 100644 --- a/man/ChangeLog +++ b/man/ChangeLog | |||
| @@ -1,3 +1,13 @@ | |||
| 1 | 2005-08-07 Michael Albinus <michael.albinus@gmx.de> | ||
| 2 | |||
| 3 | Sync with Tramp 2.0.50. | ||
| 4 | |||
| 5 | * tramp.texi: Use @option{} consequently for method names. | ||
| 6 | (Inline methods, External transfer methods): Remove references to | ||
| 7 | Cygwin. | ||
| 8 | (Issues with Cygwin ssh): Explain trouble with Cygwin's ssh | ||
| 9 | implementation. | ||
| 10 | |||
| 1 | 2005-08-06 Eli Zaretskii <eliz@gnu.org> | 11 | 2005-08-06 Eli Zaretskii <eliz@gnu.org> |
| 2 | 12 | ||
| 3 | * mule.texi (Coding Systems): Rephrase the paragraph about | 13 | * mule.texi (Coding Systems): Rephrase the paragraph about |
diff --git a/man/tramp.texi b/man/tramp.texi index 756b467157c..9fef1d037b0 100644 --- a/man/tramp.texi +++ b/man/tramp.texi | |||
| @@ -218,10 +218,10 @@ How file names, directories and localnames are mangled and managed | |||
| 218 | @chapter An overview of @value{tramp} | 218 | @chapter An overview of @value{tramp} |
| 219 | @cindex overview | 219 | @cindex overview |
| 220 | 220 | ||
| 221 | After the installation of @value{tramp} into your @value{emacsname}, you | 221 | After the installation of @value{tramp} into your @value{emacsname}, |
| 222 | will be able to access files on remote machines as though they were | 222 | you will be able to access files on remote machines as though they |
| 223 | local. Access to the remote file system for editing files, version | 223 | were local. Access to the remote file system for editing files, |
| 224 | control, and @command{dired} are transparently enabled. | 224 | version control, and @code{dired} are transparently enabled. |
| 225 | 225 | ||
| 226 | Your access to the remote machine can be with the @command{rsh}, | 226 | Your access to the remote machine can be with the @command{rsh}, |
| 227 | @command{rlogin}, @command{telnet} programs or with any similar | 227 | @command{rlogin}, @command{telnet} programs or with any similar |
| @@ -289,9 +289,9 @@ Communication with this process happens through an | |||
| 289 | goes into a buffer. | 289 | goes into a buffer. |
| 290 | 290 | ||
| 291 | @item | 291 | @item |
| 292 | The remote host may prompt for a login name (for @command{telnet}). The | 292 | The remote host may prompt for a login name (for @command{telnet}). |
| 293 | login name is given in the file name, so @value{tramp} sends the login name and | 293 | The login name is given in the file name, so @value{tramp} sends the |
| 294 | a newline. | 294 | login name and a newline. |
| 295 | 295 | ||
| 296 | @item | 296 | @item |
| 297 | The remote host may prompt for a password or pass phrase (for | 297 | The remote host may prompt for a password or pass phrase (for |
| @@ -365,7 +365,6 @@ you are finished, you type @kbd{C-x C-s} to save the buffer. | |||
| 365 | Again, @value{tramp} transfers the file contents to the remote host either | 365 | Again, @value{tramp} transfers the file contents to the remote host either |
| 366 | inline or out-of-band. This is the reverse of what happens when reading | 366 | inline or out-of-band. This is the reverse of what happens when reading |
| 367 | the file. | 367 | the file. |
| 368 | |||
| 369 | @end itemize | 368 | @end itemize |
| 370 | 369 | ||
| 371 | I hope this has provided you with a basic overview of what happens | 370 | I hope this has provided you with a basic overview of what happens |
| @@ -653,7 +652,6 @@ easy to implement, so I haven't got around to it, yet. | |||
| 653 | @item @option{sshx} | 652 | @item @option{sshx} |
| 654 | @cindex method sshx | 653 | @cindex method sshx |
| 655 | @cindex sshx method | 654 | @cindex sshx method |
| 656 | @cindex Cygwin (with sshx method) | ||
| 657 | 655 | ||
| 658 | As you would expect, this is similar to @option{ssh}, only a little | 656 | As you would expect, this is similar to @option{ssh}, only a little |
| 659 | different. Whereas @option{ssh} opens a normal interactive shell on | 657 | different. Whereas @option{ssh} opens a normal interactive shell on |
| @@ -674,9 +672,9 @@ in without such questions. | |||
| 674 | This is also useful for Windows users where @command{ssh}, when | 672 | This is also useful for Windows users where @command{ssh}, when |
| 675 | invoked from an @value{emacsname} buffer, tells them that it is not | 673 | invoked from an @value{emacsname} buffer, tells them that it is not |
| 676 | allocating a pseudo tty. When this happens, the login shell is wont | 674 | allocating a pseudo tty. When this happens, the login shell is wont |
| 677 | to not print any shell prompt, which confuses @value{tramp} mightily. For | 675 | to not print any shell prompt, which confuses @value{tramp} mightily. |
| 678 | reasons unknown, some Windows ports for @command{ssh} (maybe the | 676 | For reasons unknown, some Windows ports for @command{ssh} require the |
| 679 | Cygwin one) require the doubled @samp{-t} option. | 677 | doubled @samp{-t} option. |
| 680 | 678 | ||
| 681 | This supports the @samp{-p} kludge. | 679 | This supports the @samp{-p} kludge. |
| 682 | 680 | ||
| @@ -817,7 +815,6 @@ This method supports the @samp{-p} hack. | |||
| 817 | @cindex scpx method | 815 | @cindex scpx method |
| 818 | @cindex scp (with scpx method) | 816 | @cindex scp (with scpx method) |
| 819 | @cindex ssh (with scpx method) | 817 | @cindex ssh (with scpx method) |
| 820 | @cindex Cygwin (with scpx method) | ||
| 821 | 818 | ||
| 822 | As you would expect, this is similar to @option{scp}, only a little | 819 | As you would expect, this is similar to @option{scp}, only a little |
| 823 | different. Whereas @option{scp} opens a normal interactive shell on | 820 | different. Whereas @option{scp} opens a normal interactive shell on |
| @@ -832,7 +829,6 @@ This is also useful for Windows users where @command{ssh}, when | |||
| 832 | invoked from an @value{emacsname} buffer, tells them that it is not | 829 | invoked from an @value{emacsname} buffer, tells them that it is not |
| 833 | allocating a pseudo tty. When this happens, the login shell is wont | 830 | allocating a pseudo tty. When this happens, the login shell is wont |
| 834 | to not print any shell prompt, which confuses @value{tramp} mightily. | 831 | to not print any shell prompt, which confuses @value{tramp} mightily. |
| 835 | Maybe this applies to the Cygwin port of SSH. | ||
| 836 | 832 | ||
| 837 | This method supports the @samp{-p} hack. | 833 | This method supports the @samp{-p} hack. |
| 838 | 834 | ||
| @@ -1025,7 +1021,7 @@ For example: | |||
| 1025 | '("sshf" tramp-multi-connect-rlogin "ssh %h -l %u -p 4400%n")) | 1021 | '("sshf" tramp-multi-connect-rlogin "ssh %h -l %u -p 4400%n")) |
| 1026 | @end lisp | 1022 | @end lisp |
| 1027 | 1023 | ||
| 1028 | Now you can use an @code{sshf} hop which connects to port 4400 instead of | 1024 | Now you can use an @option{sshf} hop which connects to port 4400 instead of |
| 1029 | the standard port. | 1025 | the standard port. |
| 1030 | 1026 | ||
| 1031 | 1027 | ||
| @@ -1074,16 +1070,16 @@ Another consideration with the selection of transfer methods is the | |||
| 1074 | environment you will use them in and, especially when used over the | 1070 | environment you will use them in and, especially when used over the |
| 1075 | Internet, the security implications of your preferred method. | 1071 | Internet, the security implications of your preferred method. |
| 1076 | 1072 | ||
| 1077 | The @command{rsh} and @command{telnet} methods send your password as | 1073 | The @option{rsh} and @option{telnet} methods send your password as |
| 1078 | plain text as you log in to the remote machine, as well as transferring | 1074 | plain text as you log in to the remote machine, as well as |
| 1079 | the files in such a way that the content can easily be read from other | 1075 | transferring the files in such a way that the content can easily be |
| 1080 | machines. | 1076 | read from other machines. |
| 1081 | 1077 | ||
| 1082 | If you need to connect to remote systems that are accessible from the | 1078 | If you need to connect to remote systems that are accessible from the |
| 1083 | Internet, you should give serious thought to using @command{ssh} based | 1079 | Internet, you should give serious thought to using @option{ssh} based |
| 1084 | methods to connect. These provide a much higher level of security, | 1080 | methods to connect. These provide a much higher level of security, |
| 1085 | making it a non-trivial exercise for someone to obtain your password or | 1081 | making it a non-trivial exercise for someone to obtain your password |
| 1086 | read the content of the files you are editing. | 1082 | or read the content of the files you are editing. |
| 1087 | 1083 | ||
| 1088 | 1084 | ||
| 1089 | @subsection Which method is the right one for me? | 1085 | @subsection Which method is the right one for me? |
| @@ -1101,28 +1097,29 @@ methods might be more efficient, but I guess that most people will want | |||
| 1101 | to edit mostly small files. | 1097 | to edit mostly small files. |
| 1102 | 1098 | ||
| 1103 | I guess that these days, most people can access a remote machine by | 1099 | I guess that these days, most people can access a remote machine by |
| 1104 | using @code{ssh}. So I suggest that you use the @code{ssh} method. | 1100 | using @command{ssh}. So I suggest that you use the @option{ssh} |
| 1105 | So, type @kbd{C-x C-f | 1101 | method. So, type @kbd{C-x C-f |
| 1106 | @value{prefix}ssh@value{postfixsinglehop}root@@otherhost@value{postfix}/etc/motd | 1102 | @value{prefix}ssh@value{postfixsinglehop}root@@otherhost@value{postfix}/etc/motd |
| 1107 | @key{RET}} to edit the @file{/etc/motd} file on the other host. | 1103 | @key{RET}} to edit the @file{/etc/motd} file on the other host. |
| 1108 | 1104 | ||
| 1109 | If you can't use @code{ssh} to log in to the remote host, then select a | 1105 | If you can't use @option{ssh} to log in to the remote host, then |
| 1110 | method that uses a program that works. For instance, Windows users | 1106 | select a method that uses a program that works. For instance, Windows |
| 1111 | might like the @code{plink} method which uses the PuTTY implementation | 1107 | users might like the @option{plink} method which uses the PuTTY |
| 1112 | of @code{ssh}. Or you use Kerberos and thus like @code{krlogin}. | 1108 | implementation of @command{ssh}. Or you use Kerberos and thus like |
| 1109 | @option{krlogin}. | ||
| 1113 | 1110 | ||
| 1114 | For the special case of editing files on the local host as another | 1111 | For the special case of editing files on the local host as another |
| 1115 | user, see the @code{su} or @code{sudo} method. It offers shortened | 1112 | user, see the @option{su} or @option{sudo} methods. They offer |
| 1116 | syntax for the @samp{root} account, like | 1113 | shortened syntax for the @samp{root} account, like |
| 1117 | @file{@value{prefix}su@value{postfixsinglehop}@value{postfix}/etc/motd}. | 1114 | @file{@value{prefix}su@value{postfixsinglehop}@value{postfix}/etc/motd}. |
| 1118 | 1115 | ||
| 1119 | People who edit large files may want to consider @code{scp} instead of | 1116 | People who edit large files may want to consider @option{scp} instead |
| 1120 | @code{ssh}, or @code{pscp} instead of @code{plink}. These out-of-band | 1117 | of @option{ssh}, or @option{pscp} instead of @option{plink}. These |
| 1121 | methods are faster than inline methods for large files. Note, however, | 1118 | out-of-band methods are faster than inline methods for large files. |
| 1122 | that out-of-band methods suffer from some limitations. Please try | 1119 | Note, however, that out-of-band methods suffer from some limitations. |
| 1123 | first whether you really get a noticeable speed advantage from using an | 1120 | Please try first whether you really get a noticeable speed advantage |
| 1124 | out-of-band method! Maybe even for large files, inline methods are | 1121 | from using an out-of-band method! Maybe even for large files, inline |
| 1125 | fast enough. | 1122 | methods are fast enough. |
| 1126 | 1123 | ||
| 1127 | 1124 | ||
| 1128 | @node Customizing Methods | 1125 | @node Customizing Methods |
| @@ -1365,16 +1362,16 @@ the remote host such that it behaves like @value{tramp} expects. This might | |||
| 1365 | be inconvenient because you have to invest a lot of effort into shell | 1362 | be inconvenient because you have to invest a lot of effort into shell |
| 1366 | setup before you can begin to use @value{tramp}. | 1363 | setup before you can begin to use @value{tramp}. |
| 1367 | 1364 | ||
| 1368 | The package, therefore, pursues a combined approach. It tries to figure | 1365 | The package, therefore, pursues a combined approach. It tries to |
| 1369 | out some of the more common setups, and only requires you to avoid | 1366 | figure out some of the more common setups, and only requires you to |
| 1370 | really exotic stuff. For example, it looks through a list of | 1367 | avoid really exotic stuff. For example, it looks through a list of |
| 1371 | directories to find some programs on the remote host. And also, it | 1368 | directories to find some programs on the remote host. And also, it |
| 1372 | knows that it is not obvious how to check whether a file exists, and | 1369 | knows that it is not obvious how to check whether a file exists, and |
| 1373 | therefore it tries different possibilities. (On some hosts and shells, | 1370 | therefore it tries different possibilities. (On some hosts and |
| 1374 | the command @code{test -e} does the trick, on some hosts the shell | 1371 | shells, the command @command{test -e} does the trick, on some hosts |
| 1375 | builtin doesn't work but the program @code{/usr/bin/test -e} or | 1372 | the shell builtin doesn't work but the program @command{/usr/bin/test |
| 1376 | @code{/bin/test -e} works. And on still other hosts, @code{ls -d} is | 1373 | -e} or @command{/bin/test -e} works. And on still other hosts, |
| 1377 | the right way to do this.) | 1374 | @command{ls -d} is the right way to do this.) |
| 1378 | 1375 | ||
| 1379 | Below you find a discussion of a few things that @value{tramp} does not deal | 1376 | Below you find a discussion of a few things that @value{tramp} does not deal |
| 1380 | with, and that you therefore have to set up correctly. | 1377 | with, and that you therefore have to set up correctly. |
| @@ -1409,11 +1406,11 @@ different user. The default value of | |||
| 1409 | @code{shell-prompt-pattern}, which is reported to work well in many | 1406 | @code{shell-prompt-pattern}, which is reported to work well in many |
| 1410 | circumstances. | 1407 | circumstances. |
| 1411 | 1408 | ||
| 1412 | @item @code{tset} and other questions | 1409 | @item @command{tset} and other questions |
| 1413 | @cindex Unix command tset | 1410 | @cindex Unix command tset |
| 1414 | @cindex tset Unix command | 1411 | @cindex tset Unix command |
| 1415 | 1412 | ||
| 1416 | Some people invoke the @code{tset} program from their shell startup | 1413 | Some people invoke the @command{tset} program from their shell startup |
| 1417 | scripts which asks the user about the terminal type of the shell. | 1414 | scripts which asks the user about the terminal type of the shell. |
| 1418 | Maybe some shells ask other questions when they are started. @value{tramp} | 1415 | Maybe some shells ask other questions when they are started. @value{tramp} |
| 1419 | does not know how to answer these questions. There are two approaches | 1416 | does not know how to answer these questions. There are two approaches |
| @@ -1443,20 +1440,21 @@ This weird effect was actually reported by a @value{tramp} user! | |||
| 1443 | @item Non-Bourne commands in @file{.profile} | 1440 | @item Non-Bourne commands in @file{.profile} |
| 1444 | 1441 | ||
| 1445 | After logging in to the remote host, @value{tramp} issues the command | 1442 | After logging in to the remote host, @value{tramp} issues the command |
| 1446 | @code{exec /bin/sh}. (Actually, the command is slightly different.) | 1443 | @command{exec /bin/sh}. (Actually, the command is slightly |
| 1447 | When @code{/bin/sh} is executed, it reads some init files, such as | 1444 | different.) When @command{/bin/sh} is executed, it reads some init |
| 1448 | @file{~/.shrc} or @file{~/.profile}. | 1445 | files, such as @file{~/.shrc} or @file{~/.profile}. |
| 1449 | 1446 | ||
| 1450 | Now, some people have a login shell which is not @code{/bin/sh} but a | 1447 | Now, some people have a login shell which is not @code{/bin/sh} but a |
| 1451 | Bourne-ish shell such as bash or ksh. Some of these people might put | 1448 | Bourne-ish shell such as bash or ksh. Some of these people might put |
| 1452 | their shell setup into the files @code{~/.shrc} or @code{~/.profile}. | 1449 | their shell setup into the files @file{~/.shrc} or @file{~/.profile}. |
| 1453 | This way, it is possible for non-Bourne constructs to end up in those | 1450 | This way, it is possible for non-Bourne constructs to end up in those |
| 1454 | files. Then, @code{exec /bin/sh} might cause the Bourne shell to barf | 1451 | files. Then, @command{exec /bin/sh} might cause the Bourne shell to |
| 1455 | on those constructs. | 1452 | barf on those constructs. |
| 1456 | 1453 | ||
| 1457 | As an example, imagine somebody putting @code{export FOO=bar} into the | 1454 | As an example, imagine somebody putting @command{export FOO=bar} into |
| 1458 | file @file{~/.profile}. The standard Bourne shell does not understand | 1455 | the file @file{~/.profile}. The standard Bourne shell does not |
| 1459 | this syntax and will emit a syntax error when it reaches this line. | 1456 | understand this syntax and will emit a syntax error when it reaches |
| 1457 | this line. | ||
| 1460 | 1458 | ||
| 1461 | Another example is the tilde (@code{~}) character, say when adding | 1459 | Another example is the tilde (@code{~}) character, say when adding |
| 1462 | @file{~/bin} to @code{$PATH}. Many Bourne shells will not expand this | 1460 | @file{~/bin} to @code{$PATH}. Many Bourne shells will not expand this |
| @@ -1467,8 +1465,8 @@ What can you do about this? | |||
| 1467 | 1465 | ||
| 1468 | Well, one possibility is to make sure that everything in @file{~/.shrc} | 1466 | Well, one possibility is to make sure that everything in @file{~/.shrc} |
| 1469 | and @file{~/.profile} on all remote hosts is Bourne-compatible. In the | 1467 | and @file{~/.profile} on all remote hosts is Bourne-compatible. In the |
| 1470 | above example, instead of @code{export FOO=bar}, you might use | 1468 | above example, instead of @command{export FOO=bar}, you might use |
| 1471 | @code{FOO=bar; export FOO} instead. | 1469 | @command{FOO=bar; export FOO} instead. |
| 1472 | 1470 | ||
| 1473 | The other possibility is to put your non-Bourne shell setup into some | 1471 | The other possibility is to put your non-Bourne shell setup into some |
| 1474 | other files. For example, bash reads the file @file{~/.bash_profile} | 1472 | other files. For example, bash reads the file @file{~/.bash_profile} |
| @@ -1476,14 +1474,15 @@ instead of @file{~/.profile}, if the former exists. So bash | |||
| 1476 | aficionados just rename their @file{~/.profile} to | 1474 | aficionados just rename their @file{~/.profile} to |
| 1477 | @file{~/.bash_profile} on all remote hosts, and Bob's your uncle. | 1475 | @file{~/.bash_profile} on all remote hosts, and Bob's your uncle. |
| 1478 | 1476 | ||
| 1479 | The @value{tramp} developers would like to circumvent this problem, so if you | 1477 | The @value{tramp} developers would like to circumvent this problem, so |
| 1480 | have an idea about it, please tell us. However, we are afraid it is not | 1478 | if you have an idea about it, please tell us. However, we are afraid |
| 1481 | that simple: before saying @code{exec /bin/sh}, @value{tramp} does not know | 1479 | it is not that simple: before saying @command{exec /bin/sh}, |
| 1482 | which kind of shell it might be talking to. It could be a Bourne-ish | 1480 | @value{tramp} does not know which kind of shell it might be talking |
| 1483 | shell like ksh or bash, or it could be a csh derivative like tcsh, or | 1481 | to. It could be a Bourne-ish shell like ksh or bash, or it could be a |
| 1484 | it could be zsh, or even rc. If the shell is Bourne-ish already, then | 1482 | csh derivative like tcsh, or it could be zsh, or even rc. If the |
| 1485 | it might be prudent to omit the @code{exec /bin/sh} step. But how to | 1483 | shell is Bourne-ish already, then it might be prudent to omit the |
| 1486 | find out if the shell is Bourne-ish? | 1484 | @command{exec /bin/sh} step. But how to find out if the shell is |
| 1485 | Bourne-ish? | ||
| 1487 | 1486 | ||
| 1488 | @end table | 1487 | @end table |
| 1489 | 1488 | ||
| @@ -1630,38 +1629,44 @@ This section needs a lot of work! Please help. | |||
| 1630 | 1629 | ||
| 1631 | @cindex method sshx with Cygwin | 1630 | @cindex method sshx with Cygwin |
| 1632 | @cindex sshx method with Cygwin | 1631 | @cindex sshx method with Cygwin |
| 1633 | If you use the Cygwin installation of ssh (you have to explicitly select | 1632 | The recent Cygwin installation of @command{ssh} works only with a |
| 1634 | it in the installer), then it should work out of the box to just select | 1633 | Cygwinized @value{emacsname}. You can check it by typing @kbd{M-x |
| 1635 | @code{sshx} as the connection method. You can find information about | 1634 | eshell}, and starting @kbd{ssh test.machine}. The problem is evident |
| 1636 | setting up Cygwin in their FAQ at @uref{http://cygwin.com/faq/}. | 1635 | if you see a message like this: |
| 1636 | |||
| 1637 | @example | ||
| 1638 | Pseudo-terminal will not be allocated because stdin is not a terminal. | ||
| 1639 | @end example | ||
| 1640 | |||
| 1641 | Older @command{ssh} versions of Cygwin are told to cooperate with | ||
| 1642 | @value{tramp} selecting @option{sshx} as the connection method. You | ||
| 1643 | can find information about setting up Cygwin in their FAQ at | ||
| 1644 | @uref{http://cygwin.com/faq/}. | ||
| 1637 | 1645 | ||
| 1638 | @cindex method scpx with Cygwin | 1646 | @cindex method scpx with Cygwin |
| 1639 | @cindex scpx method with Cygwin | 1647 | @cindex scpx method with Cygwin |
| 1640 | If you wish to use the @code{scpx} connection method, then you might | 1648 | If you wish to use the @option{scpx} connection method, then you might |
| 1641 | have the problem that @value{emacsname} calls @code{scp} with a | 1649 | have the problem that @value{emacsname} calls @command{scp} with a |
| 1642 | Windows filename such as @code{c:/foo}. The Cygwin version of | 1650 | Windows filename such as @code{c:/foo}. The Cygwin version of |
| 1643 | @code{scp} does not know about Windows filenames and interprets this | 1651 | @command{scp} does not know about Windows filenames and interprets this |
| 1644 | as a remote filename on the host @code{c}. | 1652 | as a remote filename on the host @code{c}. |
| 1645 | 1653 | ||
| 1646 | One possible workaround is to write a wrapper script for @code{scp} | 1654 | One possible workaround is to write a wrapper script for @option{scp} |
| 1647 | which converts the Windows filename to a Cygwinized filename. | 1655 | which converts the Windows filename to a Cygwinized filename. |
| 1648 | 1656 | ||
| 1649 | I guess that another workaround is to run @value{emacsname} under | ||
| 1650 | Cygwin, or to run a Cygwinized @value{emacsname}. | ||
| 1651 | |||
| 1652 | @cindex Cygwin and ssh-agent | 1657 | @cindex Cygwin and ssh-agent |
| 1653 | @cindex SSH_AUTH_SOCK and @value{emacsname} on Windows | 1658 | @cindex SSH_AUTH_SOCK and @value{emacsname} on Windows |
| 1654 | If you want to use either @code{ssh} based method on Windows, then you | 1659 | If you want to use either @option{ssh} based method on Windows, then |
| 1655 | might encounter problems with @code{ssh-agent}. Using this program, | 1660 | you might encounter problems with @command{ssh-agent}. Using this |
| 1656 | you can avoid typing the pass-phrase every time you log in. However, | 1661 | program, you can avoid typing the pass-phrase every time you log in. |
| 1657 | if you start @value{emacsname} from a desktop shortcut, then the | 1662 | However, if you start @value{emacsname} from a desktop shortcut, then |
| 1658 | environment variable @code{SSH_AUTH_SOCK} is not set and so | 1663 | the environment variable @code{SSH_AUTH_SOCK} is not set and so |
| 1659 | @value{emacsname} and thus @value{tramp} and thus @code{ssh} and | 1664 | @value{emacsname} and thus @value{tramp} and thus @command{ssh} and |
| 1660 | @code{scp} started from @value{tramp} cannot communicate with | 1665 | @command{scp} started from @value{tramp} cannot communicate with |
| 1661 | @code{ssh-agent}. It works better to start @value{emacsname} from | 1666 | @command{ssh-agent}. It works better to start @value{emacsname} from |
| 1662 | the shell. | 1667 | the shell. |
| 1663 | 1668 | ||
| 1664 | If anyone knows how to start @code{ssh-agent} under Windows in such a | 1669 | If anyone knows how to start @command{ssh-agent} under Windows in such a |
| 1665 | way that desktop shortcuts can profit, please holler. I don't really | 1670 | way that desktop shortcuts can profit, please holler. I don't really |
| 1666 | know anything at all about Windows@dots{} | 1671 | know anything at all about Windows@dots{} |
| 1667 | 1672 | ||
| @@ -2108,10 +2113,10 @@ remote host. | |||
| 2108 | There's this @file{~/.sh_history} file on the remote host which keeps | 2113 | There's this @file{~/.sh_history} file on the remote host which keeps |
| 2109 | growing and growing. What's that? | 2114 | growing and growing. What's that? |
| 2110 | 2115 | ||
| 2111 | Sometimes, @value{tramp} starts @code{ksh} on the remote host for tilde | 2116 | Sometimes, @value{tramp} starts @command{ksh} on the remote host for |
| 2112 | expansion. Maybe @code{ksh} saves the history by default. @value{tramp} | 2117 | tilde expansion. Maybe @command{ksh} saves the history by default. |
| 2113 | tries to turn off saving the history, but maybe you have to help. For | 2118 | @value{tramp} tries to turn off saving the history, but maybe you have |
| 2114 | example, you could put this in your @file{.kshrc}: | 2119 | to help. For example, you could put this in your @file{.kshrc}: |
| 2115 | 2120 | ||
| 2116 | @example | 2121 | @example |
| 2117 | if [ -f $HOME/.sh_history ] ; then | 2122 | if [ -f $HOME/.sh_history ] ; then |
| @@ -2316,18 +2321,18 @@ effect while preserving the @value{tramp} file name information. | |||
| 2316 | @itemize @bullet | 2321 | @itemize @bullet |
| 2317 | @item The uuencode method does not always work. | 2322 | @item The uuencode method does not always work. |
| 2318 | 2323 | ||
| 2319 | Due to the design of @value{tramp}, the encoding and decoding programs need to | 2324 | Due to the design of @value{tramp}, the encoding and decoding programs |
| 2320 | read from stdin and write to stdout. On some systems, @code{uudecode -o | 2325 | need to read from stdin and write to stdout. On some systems, |
| 2321 | -} will read stdin and write the decoded file to stdout, on other | 2326 | @command{uudecode -o -} will read stdin and write the decoded file to |
| 2322 | systems @code{uudecode -p} does the same thing. But some systems have | 2327 | stdout, on other systems @command{uudecode -p} does the same thing. |
| 2323 | uudecode implementations which cannot do this at all---it is not | 2328 | But some systems have uudecode implementations which cannot do this at |
| 2324 | possible to call these uudecode implementations with suitable parameters | 2329 | all---it is not possible to call these uudecode implementations with |
| 2325 | so that they write to stdout. | 2330 | suitable parameters so that they write to stdout. |
| 2326 | 2331 | ||
| 2327 | Of course, this could be circumvented: the @code{begin foo 644} line | 2332 | Of course, this could be circumvented: the @code{begin foo 644} line |
| 2328 | could be rewritten to put in some temporary file name, then | 2333 | could be rewritten to put in some temporary file name, then |
| 2329 | @code{uudecode} could be called, then the temp file could be printed and | 2334 | @command{uudecode} could be called, then the temp file could be |
| 2330 | deleted. | 2335 | printed and deleted. |
| 2331 | 2336 | ||
| 2332 | But I have decided that this is too fragile to reliably work, so on some | 2337 | But I have decided that this is too fragile to reliably work, so on some |
| 2333 | systems you'll have to do without the uuencode methods. | 2338 | systems you'll have to do without the uuencode methods. |
| @@ -2368,13 +2373,12 @@ to the files @file{.../xemacs-packages/lisp/tramp/auto-autoloads.el*}. | |||
| 2368 | 2373 | ||
| 2369 | In case of unified filenames, all @value{emacsname} download sites | 2374 | In case of unified filenames, all @value{emacsname} download sites |
| 2370 | are added to @code{tramp-default-method-alist} with default method | 2375 | are added to @code{tramp-default-method-alist} with default method |
| 2371 | @code{ftp} @xref{Default Method}. These settings shouldn't be touched | 2376 | @option{ftp} @xref{Default Method}. These settings shouldn't be touched |
| 2372 | for proper working of the @value{emacsname} package system. | 2377 | for proper working of the @value{emacsname} package system. |
| 2373 | 2378 | ||
| 2374 | The syntax for unified filenames is described in the @value{tramp} manual | 2379 | The syntax for unified filenames is described in the @value{tramp} manual |
| 2375 | for @value{emacsothername}. | 2380 | for @value{emacsothername}. |
| 2376 | @end ifset | 2381 | @end ifset |
| 2377 | |||
| 2378 | @end itemize | 2382 | @end itemize |
| 2379 | 2383 | ||
| 2380 | @node Concept Index | 2384 | @node Concept Index |
diff --git a/man/trampver.texi b/man/trampver.texi index 33a0aacbb9e..a77ae82d49b 100644 --- a/man/trampver.texi +++ b/man/trampver.texi | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | @c In the Tramp CVS, the version number is auto-frobbed from | 4 | @c In the Tramp CVS, the version number is auto-frobbed from |
| 5 | @c configure.ac, so you should edit that file and run | 5 | @c configure.ac, so you should edit that file and run |
| 6 | @c "autoconf && ./configure" to change the version number. | 6 | @c "autoconf && ./configure" to change the version number. |
| 7 | @set trampver 2.0.49 | 7 | @set trampver 2.0.50 |
| 8 | 8 | ||
| 9 | @c Other flags from configuration | 9 | @c Other flags from configuration |
| 10 | @set prefix /usr/local | 10 | @set prefix /usr/local |