aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKai Großjohann2003-03-29 15:16:57 +0000
committerKai Großjohann2003-03-29 15:16:57 +0000
commitb1a2b924ce45cc99bd148afc65637841e88e314b (patch)
tree71a7254ba9aa43491c0e075c43524bd2603df99c
parentef6e365d099f5f2cd75d8ca783436e503fa5dabe (diff)
downloademacs-b1a2b924ce45cc99bd148afc65637841e88e314b.tar.gz
emacs-b1a2b924ce45cc99bd148afc65637841e88e314b.zip
* tramp.el: Version 2.0.31 released.
(tramp-handle-expand-file-name): Do not allow ".." to cross file handler boundaries, so that "/user@host:/../foo" expands to itself, rather than "/foo". This is intended to work in conjunction with a change in `file-relative-name' which makes sure to use absolute file names if FILE and DIRECTORY have different handlers. (tramp-handle-insert-directory): Comment out XEmacs kludge. Suggested by Katsumi Yamaoka <yamaoka@jpl.org>. * Makefile.in (../info/tramp): Compile Emacs, instead of XEmacs, version of manual. * tramp.texi (Auto-save and Backup): New node.
-rw-r--r--lisp/ChangeLog24
-rw-r--r--lisp/net/tramp-smb.el46
-rw-r--r--lisp/net/tramp.el90
-rw-r--r--lisp/net/trampver.el41
-rw-r--r--man/ChangeLog22
-rw-r--r--man/Makefile.in2
-rw-r--r--man/tramp.texi280
-rw-r--r--man/trampver.texi14
8 files changed, 393 insertions, 126 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index a7e5e0b7023..492b33ed134 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,27 @@
12003-03-29 Kai Gro,A_(Bjohann <kai.grossjohann@gmx.net>
2
3 * tramp.el: Version 2.0.31 released.
4 (tramp-handle-expand-file-name): Do not allow ".." to
5 cross file handler boundaries, so that "/user@host:/../foo"
6 expands to itself, rather than "/foo". This is intended to work
7 in conjunction with a change in `file-relative-name' which makes
8 sure to use absolute file names if FILE and DIRECTORY have
9 different handlers.
10 (tramp-handle-insert-directory): Comment out XEmacs
11 kludge. Suggested by Katsumi Yamaoka <yamaoka@jpl.org>.
12
132003-03-29 Michael Albinus <Michael.Albinus@alcatel.de>
14
15 * trampver.el: New file, to support Autoconf in Tramp CVS
16 repository.
17 * tramp.el (tramp-version, tramp-bug-report-address): Moved to
18 trampver.el, which is required now.
19 (tramp-chunksize): Type can be nil as well. Reported
20 by Markus Rost <rost@math.ohio-state.edu>.
21 * tramp-smb.el (tramp-smb-read-file-entry): Make reading size of a
22 listing entry more robust. Ranges from 10 chars (Samba 1) to 7-9
23 chars (Samba 2).
24
12003-03-29 John Paul Wallington <jpw@gnu.org> 252003-03-29 John Paul Wallington <jpw@gnu.org>
2 26
3 * international/mule.el (with-category-table): Use `make-symbol' 27 * international/mule.el (with-category-table): Use `make-symbol'
diff --git a/lisp/net/tramp-smb.el b/lisp/net/tramp-smb.el
index df3d9716cc5..8474b7a88a3 100644
--- a/lisp/net/tramp-smb.el
+++ b/lisp/net/tramp-smb.el
@@ -754,21 +754,38 @@ Result is a list of (LOCALNAME MODE SIZE MONTH DAY TIME YEAR)."
754;; They should have the format 754;; They should have the format
755;; 755;;
756;; \s-\{2,2} - leading spaces 756;; \s-\{2,2} - leading spaces
757;; \S-\(.*\S-\)\s-* - file name, 32 chars, left bound 757;; \S-\(.*\S-\)\s-* - file name, 30 chars, left bound
758;; \s-+[ADHRSV]* - permissions, 7 chars, right bound
758;; \s- - space delimeter 759;; \s- - space delimeter
759;; \s-*[ADHRS]* - permissions, 5 chars, right bound 760;; \s-+[0-9]+ - size, 8 chars, right bound
760;; \s- - space delimeter
761;; \s-*[0-9]+ - size, 8 (Samba) or 7 (Windows)
762;; chars, right bound
763;; \s-\{2,2\} - space delimeter 761;; \s-\{2,2\} - space delimeter
764;; \w\{3,3\} - weekday 762;; \w\{3,3\} - weekday
765;; \s- - space delimeter 763;; \s- - space delimeter
764;; \w\{3,3\} - month
765;; \s- - space delimeter
766;; [ 19][0-9] - day 766;; [ 19][0-9] - day
767;; \s- - space delimeter 767;; \s- - space delimeter
768;; [0-9]\{2,2\}:[0-9]\{2,2\}:[0-9]\{2,2\} - time 768;; [0-9]\{2,2\}:[0-9]\{2,2\}:[0-9]\{2,2\} - time
769;; \s- - space delimeter 769;; \s- - space delimeter
770;; [0-9]\{4,4\} - year 770;; [0-9]\{4,4\} - year
771;; 771;;
772;; samba/src/client.c (http://samba.org/doxygen/samba/client_8c-source.html)
773;; has function display_finfo:
774;;
775;; d_printf(" %-30s%7.7s %8.0f %s",
776;; finfo->name,
777;; attrib_string(finfo->mode),
778;; (double)finfo->size,
779;; asctime(LocalTime(&t)));
780;;
781;; in Samba 1.9, there's the following code:
782;;
783;; DEBUG(0,(" %-30s%7.7s%10d %s",
784;; CNV_LANG(finfo->name),
785;; attrib_string(finfo->mode),
786;; finfo->size,
787;; asctime(LocalTime(&t))));
788;;
772;; Problems: 789;; Problems:
773;; * Modern regexp constructs, like spy groups and counted repetitions, aren't 790;; * Modern regexp constructs, like spy groups and counted repetitions, aren't
774;; available in older Emacsen. 791;; available in older Emacsen.
@@ -828,27 +845,28 @@ Result is the list (LOCALNAME MODE SIZE MTIME)."
828 845
829 ;; size 846 ;; size
830 (if (string-match "\\([0-9]+\\)$" line) 847 (if (string-match "\\([0-9]+\\)$" line)
831 (setq 848 (let ((length (- (max 10 (1+ (length (match-string 1 line)))))))
832 size (string-to-number (match-string 1 line)) 849 (setq size (string-to-number (match-string 1 line)))
833 line (substring 850 (when (string-match "\\([ADHRSV]+\\)" (substring line length))
834 line 0 (- (max 8 (1+ (length (match-string 1 line))))))) 851 (setq length (+ length (match-end 0))))
852 (setq line (substring line 0 length)))
835 (return)) 853 (return))
836 854
837 ;; mode 855 ;; mode: ARCH, DIR, HIDDEN, RONLY, SYSTEM, VOLID
838 (if (string-match "\\(\\([ADHRS]+\\)?\\s-?\\)$" line) 856 (if (string-match "\\([ADHRSV]+\\)?$" line)
839 (setq 857 (setq
840 mode (or (match-string 2 line) "") 858 mode (or (match-string 1 line) "")
841 mode (save-match-data (format 859 mode (save-match-data (format
842 "%s%s" 860 "%s%s"
843 (if (string-match "D" mode) "d" "-") 861 (if (string-match "D" mode) "d" "-")
844 (mapconcat 862 (mapconcat
845 (lambda (x) "") " " 863 (lambda (x) "") " "
846 (concat "r" (if (string-match "R" mode) "-" "w") "x")))) 864 (concat "r" (if (string-match "R" mode) "-" "w") "x"))))
847 line (substring line 0 (- (1+ (length (match-string 2 line)))))) 865 line (substring line 0 -7))
848 (return)) 866 (return))
849 867
850 ;; localname 868 ;; localname
851 (if (string-match "^\\s-+\\(\\S-\\(.*\\S-\\)?\\)\\s-+$" line) 869 (if (string-match "^\\s-+\\(\\S-\\(.*\\S-\\)?\\)\\s-*$" line)
852 (setq localname (match-string 1 line)) 870 (setq localname (match-string 1 line))
853 (return)))) 871 (return))))
854 872
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index dcdaa49b1c5..5bfe55575e8 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -1,8 +1,9 @@
1;;; tramp.el --- Transparent Remote Access, Multiple Protocol -*- coding: iso-8859-1; -*- 1;;; -*- mode: Emacs-Lisp; coding: iso-8859-1; -*-
2;;; tramp.el --- Transparent Remote Access, Multiple Protocol
2 3
3;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. 4;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
4 5
5;; Author: Kai.Grossjohann@CS.Uni-Dortmund.DE 6;; Author: kai.grossjohann@gmx.net
6;; Keywords: comm, processes 7;; Keywords: comm, processes
7 8
8;; This file is part of GNU Emacs. 9;; This file is part of GNU Emacs.
@@ -29,8 +30,7 @@
29;; the local and the remote host, whereas tramp.el uses a combination 30;; the local and the remote host, whereas tramp.el uses a combination
30;; of rsh and rcp or other work-alike programs, such as ssh/scp. 31;; of rsh and rcp or other work-alike programs, such as ssh/scp.
31;; 32;;
32;; For more detailed instructions, please see the info file, which is 33;; For more detailed instructions, please see the info file.
33;; included in the file `tramp.tar.gz' mentioned below.
34;; 34;;
35;; Notes: 35;; Notes:
36;; ----- 36;; -----
@@ -46,13 +46,11 @@
46;; 46;;
47;; Also see the todo list at the bottom of this file. 47;; Also see the todo list at the bottom of this file.
48;; 48;;
49;; The current version of tramp.el can be retrieved from the following 49;; The current version of Tramp can be retrieved from the following URL:
50;; URL: ftp://ls6-ftp.cs.uni-dortmund.de/pub/src/emacs/tramp.tar.gz 50;; http://savannah.nongnu.org/download/tramp/
51;; For your convenience, the *.el file is available separately from
52;; the same directory.
53;; 51;;
54;; There's a mailing list for this, as well. Its name is: 52;; There's a mailing list for this, as well. Its name is:
55;; tramp-devel@mail.freesoftware.fsf.org 53;; tramp-devel@mail.freesoftware.fsf.org
56;; Send a mail with `help' in the subject (!) to the administration 54;; Send a mail with `help' in the subject (!) to the administration
57;; address for instructions on joining the list. The administration 55;; address for instructions on joining the list. The administration
58;; address is: 56;; address is:
@@ -69,14 +67,8 @@
69 67
70;;; Code: 68;;; Code:
71 69
72;; In the Tramp CVS repository, the version numer is auto-frobbed from 70;; The Tramp version number and bug report address, as prepared by configure.
73;; the Makefile, so you should edit the top-level Makefile to change 71(require 'trampver)
74;; the version number.
75(defconst tramp-version "2.0.30"
76 "This version of tramp.")
77
78(defconst tramp-bug-report-address "tramp-devel@mail.freesoftware.fsf.org"
79 "Email address to send bug reports to.")
80 72
81(require 'timer) 73(require 'timer)
82(require 'format-spec) ;from Gnus 5.8, also in tar ball 74(require 'format-spec) ;from Gnus 5.8, also in tar ball
@@ -1275,7 +1267,7 @@ checked via the following code:
1275Please raise a bug report via \"M-x tramp-bug\" if your system needs 1267Please raise a bug report via \"M-x tramp-bug\" if your system needs
1276this variable to be set as well." 1268this variable to be set as well."
1277 :group 'tramp 1269 :group 'tramp
1278 :type 'integer) 1270 :type '(choice (const nil) integer))
1279 1271
1280;;; Internal Variables: 1272;;; Internal Variables:
1281 1273
@@ -2831,6 +2823,10 @@ This is like `dired-recursive-delete-directory' for tramp files."
2831 (file-name-nondirectory localname))))) 2823 (file-name-nondirectory localname)))))
2832 (sit-for 1) ;needed for rsh but not ssh? 2824 (sit-for 1) ;needed for rsh but not ssh?
2833 (tramp-wait-for-output)) 2825 (tramp-wait-for-output))
2826 ;; The following let-binding is used by code that's commented
2827 ;; out. Let's leave the let-binding in for a while to see
2828 ;; that the commented-out code is really not needed. Commenting-out
2829 ;; happened on 2003-03-13.
2834 (let ((old-pos (point))) 2830 (let ((old-pos (point)))
2835 (insert-buffer-substring 2831 (insert-buffer-substring
2836 (tramp-get-buffer multi-method method user host)) 2832 (tramp-get-buffer multi-method method user host))
@@ -2843,13 +2839,16 @@ This is like `dired-recursive-delete-directory' for tramp files."
2843 (save-excursion 2839 (save-excursion
2844 (tramp-send-command multi-method method user host "cd") 2840 (tramp-send-command multi-method method user host "cd")
2845 (tramp-wait-for-output)) 2841 (tramp-wait-for-output))
2846 ;; Another XEmacs specialty follows. What's the right way to do 2842 ;; For the time being, the XEmacs kludge is commented out.
2847 ;; it? 2843 ;; Please test it on various XEmacs versions to see if it works.
2848 (when (and (featurep 'xemacs) 2844;; ;; Another XEmacs specialty follows. What's the right way to do
2849 (eq major-mode 'dired-mode)) 2845;; ;; it?
2850 (save-excursion 2846;; (when (and (featurep 'xemacs)
2851 (require 'dired) 2847;; (eq major-mode 'dired-mode))
2852 (dired-insert-set-properties old-pos (point))))))) 2848;; (save-excursion
2849;; (require 'dired)
2850;; (dired-insert-set-properties old-pos (point))))
2851 )))
2853 2852
2854;; Continuation of kluge to pacify byte-compiler. 2853;; Continuation of kluge to pacify byte-compiler.
2855;;(eval-when-compile 2854;;(eval-when-compile
@@ -2917,20 +2916,33 @@ the result will be a local, non-Tramp, filename."
2917 (setq uname (buffer-substring (point) (tramp-line-end-position))) 2916 (setq uname (buffer-substring (point) (tramp-line-end-position)))
2918 (setq localname (concat uname fname)) 2917 (setq localname (concat uname fname))
2919 (erase-buffer))) 2918 (erase-buffer)))
2920 ;; Look if localname starts with "/../" construct. If this is 2919 ;; No tilde characters in file name, do normal
2921 ;; the case, then we return a local name instead of a remote name. 2920 ;; expand-file-name (this does "/./" and "/../"). We bind
2922 (if (string-match "^/\\.\\./" localname) 2921 ;; directory-sep-char here for XEmacs on Windows, which
2923 (expand-file-name (substring localname 3)) 2922 ;; would otherwise use backslash.
2924 ;; No tilde characters in file name, do normal 2923 (let ((directory-sep-char ?/))
2925 ;; expand-file-name (this does "/./" and "/../"). We bind 2924 (tramp-make-tramp-file-name
2926 ;; directory-sep-char here for XEmacs on Windows, which 2925 multi-method method user host
2927 ;; would otherwise use backslash. 2926 (tramp-drop-volume-letter
2928 (let ((directory-sep-char ?/)) 2927 (tramp-run-real-handler 'expand-file-name
2929 (tramp-make-tramp-file-name 2928 (list localname)))))))))
2930 multi-method method user host 2929
2931 (tramp-drop-volume-letter 2930;; old version follows. it uses ".." to cross file handler
2932 (tramp-run-real-handler 'expand-file-name 2931;; boundaries.
2933 (list localname)))))))))) 2932;; ;; Look if localname starts with "/../" construct. If this is
2933;; ;; the case, then we return a local name instead of a remote name.
2934;; (if (string-match "^/\\.\\./" localname)
2935;; (expand-file-name (substring localname 3))
2936;; ;; No tilde characters in file name, do normal
2937;; ;; expand-file-name (this does "/./" and "/../"). We bind
2938;; ;; directory-sep-char here for XEmacs on Windows, which
2939;; ;; would otherwise use backslash.
2940;; (let ((directory-sep-char ?/))
2941;; (tramp-make-tramp-file-name
2942;; multi-method method user host
2943;; (tramp-drop-volume-letter
2944;; (tramp-run-real-handler 'expand-file-name
2945;; (list localname))))))))))
2934 2946
2935;; Remote commands. 2947;; Remote commands.
2936 2948
diff --git a/lisp/net/trampver.el b/lisp/net/trampver.el
new file mode 100644
index 00000000000..48d8123a9dd
--- /dev/null
+++ b/lisp/net/trampver.el
@@ -0,0 +1,41 @@
1;;; -*- mode: Emacs-Lisp; coding: iso-8859-1; -*-
2;;; trampver.el --- Transparent Remote Access, Multiple Protocol
3;;; lisp/trampver.el. Generated from trampver.el.in by configure.
4
5;; Copyright (C) 2003 Free Software Foundation, Inc.
6
7;; Author: Kai.Grossjohann@CS.Uni-Dortmund.DE
8;; Keywords: comm, processes
9
10;; This file is part of GNU Emacs.
11
12;; GNU Emacs is free software; you can redistribute it and/or modify
13;; it under the terms of the GNU General Public License as published by
14;; the Free Software Foundation; either version 2, or (at your option)
15;; any later version.
16
17;; GNU Emacs is distributed in the hope that it will be useful,
18;; but WITHOUT ANY WARRANTY; without even the implied warranty of
19;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20;; GNU General Public License for more details.
21
22;; You should have received a copy of the GNU General Public License
23;; along with GNU Emacs; see the file COPYING. If not, write to the
24;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
25;; Boston, MA 02111-1307, USA.
26
27;;; Code:
28
29;; In the Tramp CVS repository, the version numer and the bug report address
30;; are auto-frobbed from configure.ac, so you should edit that file and run
31;; "autoconf && ./configure" to change them.
32
33(defconst tramp-version "2.0.31"
34 "This version of Tramp.")
35
36(defconst tramp-bug-report-address "tramp-devel@mail.freesoftware.fsf.org"
37 "Email address to send bug reports to.")
38
39(provide 'trampver)
40
41;;; trampver.el ends here
diff --git a/man/ChangeLog b/man/ChangeLog
index 0757be1618d..9ffd9145fd7 100644
--- a/man/ChangeLog
+++ b/man/ChangeLog
@@ -1,3 +1,25 @@
12003-03-29 Kai Gro,A_(Bjohann <kai.grossjohann@gmx.net>
2
3 * Makefile.in (../info/tramp): Compile Emacs, instead of XEmacs,
4 version of manual.
5
6 * tramp.texi (Auto-save and Backup): New node.
7
82003-03-29 Michael Albinus <Michael.Albinus@alcatel.de>
9
10 * tramp.texi (Top): Include trampver.texi. Rename "Emacs" to "GNU
11 Emacs" in order to have better differentiation to "XEmacs".
12 `emacs-other-name', `emacs-other-dir' and `emacs-other-file-name'
13 are new macros in order to point to the other Emacs flavor where
14 appropriate. In info case, point to node `Installation' in order
15 to explain how to generate the other way. In html case, make a
16 link to the other html file.
17 (Obtaining TRAMP): Added a paragraph saying to perform `autoconf'
18 after CVS checkout/update.
19 (Installation): Completely rewritten.
20 (Installation parameters, Load paths): New sections under
21 `Installation'.
22
12003-02-28 Kai Gro,A_(Bjohann <kai.grossjohann@uni-duisburg.de> 232003-02-28 Kai Gro,A_(Bjohann <kai.grossjohann@uni-duisburg.de>
2 24
3 * tramp.texi: Version 2.0.30 released. 25 * tramp.texi: Version 2.0.30 released.
diff --git a/man/Makefile.in b/man/Makefile.in
index 54bc0709a50..bb179e7d545 100644
--- a/man/Makefile.in
+++ b/man/Makefile.in
@@ -268,7 +268,7 @@ emacs-mime.dvi: emacs-mime.texi
268 $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs-mime.texi 268 $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs-mime.texi
269 269
270../info/tramp: tramp.texi 270../info/tramp: tramp.texi
271 cd $(srcdir); $(MAKEINFO) tramp.texi 271 cd $(srcdir); $(MAKEINFO) -D emacs tramp.texi
272tramp.dvi: tramp.texi 272tramp.dvi: tramp.texi
273 $(ENVADD) $(TEXI2DVI) ${srcdir}/tramp.texi 273 $(ENVADD) $(TEXI2DVI) ${srcdir}/tramp.texi
274 274
diff --git a/man/tramp.texi b/man/tramp.texi
index 2d7be7d001b..3deb7872d8c 100644
--- a/man/tramp.texi
+++ b/man/tramp.texi
@@ -8,12 +8,10 @@
8@c This is *so* much nicer :) 8@c This is *so* much nicer :)
9@footnotestyle end 9@footnotestyle end
10 10
11@c In the Tramp CVS, the version number is auto-frobbed from the 11@c In the Tramp CVS, the version number is auto-frobbed from
12@c Makefile, so you should edit the top-level Makefile to change 12@c configure.ac, so you should edit that file and run
13@c the version number. 13@c "autoconf && ./configure" to change the version number.
14@macro trampver{} 14@include trampver.texi
152.0.30
16@end macro
17 15
18@c Entries for @command{install-info} to use 16@c Entries for @command{install-info} to use
19@dircategory Emacs 17@dircategory Emacs
@@ -27,15 +25,16 @@
27@sc{tramp} 25@sc{tramp}
28@end macro 26@end macro
29 27
30@c Distinguish between GNU Emacs and XEmacs. Derived from the
31@c Makefile variable $(EMACS-ID). Valid values are `emacs' and `xemacs'.
32@set emacs
33
34@c Some flags which make the text independent on the (X)Emacs flavor. 28@c Some flags which make the text independent on the (X)Emacs flavor.
29@c "emacs" resp "xemacs" are set in the Makefile.
30
35@c GNU Emacs values. 31@c GNU Emacs values.
36@ifset emacs 32@ifset emacs
37@set emacs-name Emacs 33@set emacs-name GNU Emacs
38@set emacs-dir emacs 34@set emacs-dir emacs
35@set emacs-other-name XEmacs
36@set emacs-other-dir xemacs
37@set emacs-other-file-name tramp-xemacs.html
39@set ftp-package-name Ange-FTP 38@set ftp-package-name Ange-FTP
40@set tramp-prefix / 39@set tramp-prefix /
41@set tramp-prefix-single-hop 40@set tramp-prefix-single-hop
@@ -48,6 +47,9 @@
48@ifset xemacs 47@ifset xemacs
49@set emacs-name XEmacs 48@set emacs-name XEmacs
50@set emacs-dir xemacs 49@set emacs-dir xemacs
50@set emacs-other-name GNU Emacs
51@set emacs-other-dir emacs
52@set emacs-other-file-name tramp-emacs.html
51@set ftp-package-name EFS 53@set ftp-package-name EFS
52@set tramp-prefix /[ 54@set tramp-prefix /[
53@set tramp-prefix-single-hop [ 55@set tramp-prefix-single-hop [
@@ -122,6 +124,16 @@ programs, such as @command{ssh}/@command{scp}.
122You can find the latest version of this document on the web at 124You can find the latest version of this document on the web at
123@uref{http://www.freesoftware.fsf.org/tramp/}. 125@uref{http://www.freesoftware.fsf.org/tramp/}.
124 126
127The manual has been generated for @value{emacs-name}.
128@ifinfo
129If you want to read the info pages for @value{emacs-other-name}, you
130should read in @ref{Installation} how to create them.
131@end ifinfo
132@ifhtml
133If you're using the other Emacs flavour, you should read the
134@uref{@value{emacs-other-file-name}, @value{emacs-other-name}} pages.
135@end ifhtml
136
125@ifhtml 137@ifhtml
126This manual is also available as a @uref{tramp_ja.html, Japanese 138This manual is also available as a @uref{tramp_ja.html, Japanese
127translation}. 139translation}.
@@ -176,6 +188,7 @@ Configuring @tramp{} for use
176* Remote Programs:: How @tramp{} finds and uses programs on the remote machine. 188* Remote Programs:: How @tramp{} finds and uses programs on the remote machine.
177* Remote shell setup:: Remote shell setup hints. 189* Remote shell setup:: Remote shell setup hints.
178* Windows setup hints:: Issues with Cygwin ssh. 190* Windows setup hints:: Issues with Cygwin ssh.
191* Auto-save and Backup:: Auto-save and Backup.
179 192
180Using @tramp 193Using @tramp
181 194
@@ -199,7 +212,7 @@ Things related to Version Control that don't fit elsewhere
199 212
200How file names, directories and localnames are mangled and managed. 213How file names, directories and localnames are mangled and managed.
201 214
202* Localname deconstruction:: Breaking a localname into its components. 215* Localname deconstruction:: Breaking a localname into its components.
203 216
204@end detailmenu 217@end detailmenu
205@end menu 218@end menu
@@ -368,23 +381,23 @@ behind the scenes when you open a file with @tramp{}.
368@chapter Obtaining @tramp{}. 381@chapter Obtaining @tramp{}.
369@cindex obtaining Tramp 382@cindex obtaining Tramp
370 383
371@tramp{} is freely available on the Internet and the latest release may be 384@tramp{} is freely available on the Internet and the latest release
372downloaded from 385may be downloaded from
373@uref{ftp://ls6-ftp.cs.uni-dortmund.de/pub/src/emacs/tramp.tar.gz}. This 386@uref{http://savannah.nongnu.org/download/tramp/}. This
374release includes the full documentation and code for @tramp{}, suitable 387release includes the full documentation and code for @tramp{},
375for installation. But Emacs (21.4 or later) includes @tramp{} 388suitable for installation. But Emacs (21.4 or later) includes
376already, and there is a @tramp{} package for XEmacs, as well. So 389@tramp{} already, and there is a @tramp{} package for XEmacs, as well.
377maybe it is easier to just use those. But if you want the bleeding 390So maybe it is easier to just use those. But if you want the bleeding
378edge, read on@dots{...} 391edge, read on@dots{...}
379 392
380For the especially brave, @tramp{} is available from CVS. The CVS version 393For the especially brave, @tramp{} is available from CVS. The CVS
381is the latest version of the code and may contain incomplete features or 394version is the latest version of the code and may contain incomplete
382new issues. Use these versions at your own risk. 395features or new issues. Use these versions at your own risk.
383 396
384Instructions for obtaining the latest development version of @tramp{} 397Instructions for obtaining the latest development version of @tramp{}
385from CVS can be found by going to the Savannah project page at the 398from CVS can be found by going to the Savannah project page at the
386following URL and then clicking on the CVS link in the navigation bar at 399following URL and then clicking on the CVS link in the navigation bar
387the top. 400at the top.
388 401
389@noindent 402@noindent
390@uref{http://savannah.gnu.org/projects/tramp/} 403@uref{http://savannah.gnu.org/projects/tramp/}
@@ -404,15 +417,25 @@ CVS password: @strong{(just hit RET here)}
404@end example 417@end example
405 418
406@noindent 419@noindent
407You should now have a directory @file{~/@value{emacs-dir}/tramp} containing the latest 420You should now have a directory @file{~/@value{emacs-dir}/tramp}
408version of @tramp{}. You can fetch the latest updates from the repository 421containing the latest version of @tramp{}. You can fetch the latest
409by issuing the command: 422updates from the repository by issuing the command:
410 423
411@example 424@example
412] @strong{cd ~/@value{emacs-dir}/tramp} 425] @strong{cd ~/@value{emacs-dir}/tramp}
413] @strong{cvs update -d} 426] @strong{cvs update -d}
414@end example 427@end example
415 428
429@noindent
430Once you've got updated files from the CVS repository, you need to run
431@command{autoconf} in order to get an up-to-date @file{configure}
432script:
433
434@example
435] @strong{cd ~/@value{emacs-dir}/tramp}
436] @strong{autoconf}
437@end example
438
416 439
417@node History 440@node History
418@chapter History of @tramp{} 441@chapter History of @tramp{}
@@ -442,33 +465,40 @@ following information is not necessary. Installing @tramp{} into your
442to rebuilding your machine from scratch. ;) 465to rebuilding your machine from scratch. ;)
443 466
444Seriously though, the installation should be a fairly simple matter. 467Seriously though, the installation should be a fairly simple matter.
445
446The easiest way to proceed is as follows: 468The easiest way to proceed is as follows:
447 469
448@itemize @bullet 470@itemize @bullet
449@item 471@item
450Choose a directory, say @file{~/@value{emacs-dir}/}. Change into that 472Choose a directory, say @file{~/@value{emacs-dir}/}. Change into that
451directory and unpack the tarball. This will give you a directory 473directory and unpack the tarball. This will give you a directory
452@file{~/@value{emacs-dir}/tramp/} which contains subdirectories 474@file{~/@value{emacs-dir}/tramp-@trampver{}/} which contains
453@file{lisp} for the Lisp code and @file{texi} for the documentation. 475subdirectories @file{lisp} for the Lisp code and @file{texi} for the
454 476documentation. Make a symbolic link:
455@item
456Optionally byte-compile all files in the Lisp directory,
457@file{~/@value{emacs-dir}/tramp/lisp/}, by issuing a command like the
458following from the top level directory
459@file{~/@value{emacs-dir}/tramp/}:
460 477
461@example 478@example
462make EMACS=@value{emacs-dir} all 479ln -s tramp-@trampver{} tramp
463@end example 480@end example
464 481
465If there are missing libraries reported it is likely they are provided 482@item
466in the @file{~/@value{emacs-dir}/tramp/contrib/} directory. This 483@command{cd} to @file{~/@value{emacs-dir}/tramp/} and type
467case, you need to call @command{make} like this: 484@command{./configure} to configure Tramp for your system.
468 485
469@example 486Running `configure' takes awhile. While running, it prints some
470make EMACS=@value{emacs-dir} USE_CONTRIB=1 all 487messages telling which features it is checking for.
471@end example 488
489@item
490Type @command{make} to build the byte-compiled Lisp files as well as
491the Info manual.
492
493@item
494Type @command{make install} to install the Tramp Lisp files and Info
495manual.
496
497@item
498You can remove the byte-compiled Lisp files and the Info manual from
499the source directory by typing @command{make clean}. To also remove
500the files that @command{configure} created, type @command{make
501distclean}.
472 502
473@item 503@item
474NOTE: If you run into problems running the example @command{make} 504NOTE: If you run into problems running the example @command{make}
@@ -480,11 +510,86 @@ d}) mode, at @file{~/@value{emacs-dir}/tramp/lisp}. Mark the lisp files with
480Something similar can be done to create the info manual. Just change 510Something similar can be done to create the info manual. Just change
481to directory @file{~/@value{emacs-dir}/tramp/texi} and load the 511to directory @file{~/@value{emacs-dir}/tramp/texi} and load the
482@file{tramp.texi} file in @value{emacs-name}. Then press @kbd{M-x 512@file{tramp.texi} file in @value{emacs-name}. Then press @kbd{M-x
483texinfo-format-buffer @key{RET}} to generate @file{tramp.info}. 513texinfo-format-buffer @key{RET}} to generate
514@file{~/@value{emacs-dir}/tramp/info/tramp}.
515@end itemize
484 516
485@item 517@menu
486Tell @value{emacs-name} about the new Lisp directory and the 518* Installation parameters:: Parameters in order to control installation.
487@tramp{} package with the following lines in @file{~/.emacs}: 519* Load paths:: How to plug-in @tramp{} into your environment.
520@end menu
521
522@node Installation parameters
523@section Parameters in order to control installation.
524@cindex installation
525
526By default, @command{make install} will install @tramp{}'s files in
527@file{@value{lispdir}} and @file{@value{infodir}}. You can specify an
528installation prefix other than @file{@value{prefix}} by giving
529@command{configure} the option @command{--prefix=PATH}.
530
531If your installed copy of Emacs is named something other than
532@command{@value{emacs-dir}}, you will need to tell `make' where to find it so
533that it can correctly byte-compile the @tramp{} sources.
534
535For example, to force the use of @value{emacs-other-name} you might do
536this:
537
538@example
539./configure --with-@value{emacs-other-dir}
540make
541make install
542@end example
543
544or this:
545
546@example
547./configure
548make EMACS=/usr/bin/@value{emacs-other-dir}-21.4
549make install
550@end example
551
552The syntax of @tramp{} file names is different for @value{emacs-name}
553and @value{emacs-other-name}. The Info manual will be generated for
554the Emacs flavor choosen in the @command{configure} phase. If you want
555the Info manual for the other version, you need to set the variable
556@command{EMACS_INFO} to @command{make}:
557
558@example
559./configure --with-@value{emacs-dir}
560make EMACS_INFO=@value{emacs-other-dir}
561@end example
562
563Also, the @command{--prefix=PATH} option to @command{configure} may
564not be general enough to set the paths you want. If not, you can pass
565variables to the @command{make} command to control the installation.
566For a complete list of tweakable variables, look in the makefile.
567
568For example, to put the Lisp files in @file{~/elisp} and the Info file
569in @file{~/info}, you would type:
570
571@example
572./configure
573make
574make lispdir=~/elisp infodir=~/info install
575@end example
576
577@tramp{} has some packages in its @file{contrib} directory which are
578missing in older Emacsen. If you want to use them, you must use the
579@command{USE_CONTRIB} environment variable:
580
581@example
582make USE_CONTRIB=1
583make USE_CONTRIB=1 install
584@end example
585
586@node Load paths
587@section How to plug-in @tramp{} into your environment.
588@cindex installation
589
590If you don't install @tramp{} into the intended directories, but prefer
591to use from the source directory, you need to add the following lines
592into your @file{.emacs}:
488 593
489@lisp 594@lisp
490(add-to-list 'load-path "~/@value{emacs-dir}/tramp/lisp/") 595(add-to-list 'load-path "~/@value{emacs-dir}/tramp/lisp/")
@@ -492,22 +597,33 @@ Tell @value{emacs-name} about the new Lisp directory and the
492(require 'tramp) 597(require 'tramp)
493@end lisp 598@end lisp
494 599
495The second @command{add-to-list} must be used only if you've compiled 600The second load-path must be used only if you've applied the
496with the @command{USE_CONTRIB} parameter. 601@command{USE_CONTRIB} parameter.
602
603@ifset xemacs
604NOTE: For @value{emacs-name}, the package @file{fsf-compat} must be
605installed. For details on package installation, see @ref{Packages, ,
606,xemacs}.
607@ifhtml
608(If the previous link doesn't work, try the @value{emacs-name}
609documentation at
610@uref{http://www.xemacs.org/Documentation/packageGuide.html,the
611@value{emacs-name} site}.)
612@end ifhtml
613@end ifset
497 614
498@item
499To be able to read the Info documentation, create a file 615To be able to read the Info documentation, create a file
500@file{~/@value{emacs-dir}/tramp/texi/dir} using the 616@file{~/@value{emacs-dir}/tramp/info/dir} using the
501@command{install-info} command, and add the directory to the search 617@command{install-info} command, and add the directory to the search
502path for Info. 618path for Info.
503 619
504NOTE: 620NOTE:
505On systems using the @cite{gnu} version of @command{install-info}, the 621On systems using the @cite{gnu} version of @command{install-info}, the
506@command{install-info} syntax is very direct and simple. One can 622@command{install-info} syntax is very direct and simple. One can
507change to directory @file{~/@value{emacs-dir}/tramp/texi} and type: 623change to directory @file{~/@value{emacs-dir}/tramp/info} and type:
508 624
509@example 625@example
510install-info tramp.info dir 626install-info tramp dir
511@end example 627@end example
512 628
513and a @file{dir} file will be created with the @tramp{} 629and a @file{dir} file will be created with the @tramp{}
@@ -522,47 +638,34 @@ file it recognizes. One can be found in a default installation of
522@value{emacs-name} at @file{/usr/info/dir}. Copy the top of this file 638@value{emacs-name} at @file{/usr/info/dir}. Copy the top of this file
523down to the first occurrence of @code{* Menu} including that line plus 639down to the first occurrence of @code{* Menu} including that line plus
524one more blank line, to your working directory 640one more blank line, to your working directory
525@file{~/@value{emacs-dir}/tramp/texi}, or use the sample 641@file{~/@value{emacs-dir}/tramp/info}, or use the sample
526@file{~/@value{emacs-dir}/tramp/texi/dir_sample}. 642@file{~/@value{emacs-dir}/tramp/texi/dir_sample}.
527 643
528Once a @file{dir} file is in place, this command will make the entry: 644Once a @file{dir} file is in place, this command will make the entry:
529 645
530@example 646@example
531install-info --infodir=. tramp.info 647install-info --infodir=. tramp
532@end example 648@end example
533 649
534If you want it in a specific category see @kbd{man install-info} for 650If you want it in a specific category see @kbd{man install-info} for
535further details. 651further details.
536 652
537If the environment variable @env{INFOPATH} is set, add the directory 653If the environment variable @env{INFOPATH} is set, add the directory
538@file{~/@value{emacs-dir}/tramp/texi/} to it. Else, add the directory to 654@file{~/@value{emacs-dir}/tramp/info/} to it. Else, add the directory to
539@ifset emacs 655@ifset emacs
540@code{Info-default-directory-list}, as follows: 656@code{Info-default-directory-list}, as follows:
541 657
542@lisp 658@lisp
543(add-to-list 'Info-default-directory-list "~/@value{emacs-dir}/tramp/texi/") 659(add-to-list 'Info-default-directory-list "~/@value{emacs-dir}/tramp/info/")
544@end lisp 660@end lisp
545@end ifset 661@end ifset
546@ifset xemacs 662@ifset xemacs
547@code{Info-directory-list}, as follows: 663@code{Info-directory-list}, as follows:
548@lisp 664@lisp
549(add-to-list 'Info-directory-list "~/@value{emacs-dir}/tramp/texi/") 665(add-to-list 'Info-directory-list "~/@value{emacs-dir}/tramp/info/")
550@end lisp 666@end lisp
551@end ifset 667@end ifset
552 668
553@end itemize
554
555@ifset xemacs
556For @value{emacs-name}, the package @file{fsf-compat} must be installed.
557For details on package installation, see @ref{Packages, , ,xemacs}.
558@ifhtml
559(If the previous link doesn't work, try the @value{emacs-name}
560documentation at
561@uref{http://www.xemacs.org/Documentation/packageGuide.html,the
562@value{emacs-name} site}.)
563@end ifhtml
564@end ifset
565
566@node Configuration 669@node Configuration
567@chapter Configuring @tramp{} for use 670@chapter Configuring @tramp{} for use
568@cindex configuration 671@cindex configuration
@@ -596,6 +699,7 @@ can use to connect to remote machines and transfer files
596* Remote Programs:: How @tramp{} finds and uses programs on the remote machine. 699* Remote Programs:: How @tramp{} finds and uses programs on the remote machine.
597* Remote shell setup:: Remote shell setup hints. 700* Remote shell setup:: Remote shell setup hints.
598* Windows setup hints:: Issues with Cygwin ssh. 701* Windows setup hints:: Issues with Cygwin ssh.
702* Auto-save and Backup:: Auto-save and Backup.
599@end menu 703@end menu
600 704
601 705
@@ -1419,6 +1523,38 @@ the variables @code{tramp-actions-before-shell} and
1419@end table 1523@end table
1420 1524
1421 1525
1526@node Auto-save and Backup
1527@section Auto-save and Backup configuration
1528@cindex auto-save
1529@cindex backup
1530@vindex backup-directory-alist
1531
1532Explaining auto-save is still to do.
1533
1534Normally, Emacs writes backup files to the same directory as the
1535original files, but this behavior can be changed via the variable
1536@code{backup-directory-alist}. In connection with @tramp{}, this can
1537have unexpected side effects. Suppose that you specify that all backups
1538should go to the directory @file{~/.emacs.d/backups/}, and then you edit
1539the file @file{/su:root@@localhost:/etc/secretfile}. The effect is that
1540the backup file will be owned by you and not by root, thus possibly
1541enabling others to see it even if they were not intended to see it.
1542
1543When @code{backup-directory-alist} is nil (the default), such problems
1544do not occur.
1545
1546If you wish to customize the variable, the workaround is to include
1547special settings for Tramp files. For example, the following statement
1548effectively `turns off' the effect of @code{backup-directory-alist} for
1549@tramp{} files:
1550
1551@lisp
1552(require 'tramp)
1553(add-to-list 'backup-directory-alist
1554 (cons tramp-file-name-regexp nil))
1555@end lisp
1556
1557
1422@node Windows setup hints 1558@node Windows setup hints
1423@section Issues with Cygwin ssh 1559@section Issues with Cygwin ssh
1424@cindex Cygwin, issues 1560@cindex Cygwin, issues
@@ -1730,7 +1866,7 @@ Where can I get the latest @tramp{}?
1730@tramp{} is available under the URL below. 1866@tramp{} is available under the URL below.
1731 1867
1732@noindent 1868@noindent
1733@uref{ftp://ls6-ftp.cs.uni-dortmund.de/pub/src/emacs/tramp.tar.gz} 1869@uref{http://savannah.nongnu.org/download/tramp/}
1734 1870
1735@noindent 1871@noindent
1736There is also a Savannah project page. 1872There is also a Savannah project page.
diff --git a/man/trampver.texi b/man/trampver.texi
new file mode 100644
index 00000000000..7ff409491e3
--- /dev/null
+++ b/man/trampver.texi
@@ -0,0 +1,14 @@
1@c -*-texinfo-*-
2@c texi/trampver.texi. Generated from trampver.texi.in by configure.
3
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
6@c "autoconf && ./configure" to change the version number.
7@macro trampver{}
82.0.31
9@end macro
10
11@c Other flags from configuration
12@set prefix /usr/local
13@set lispdir /usr/local/share/emacs/site-lisp
14@set infodir /usr/local/info