annotate man/ange-ftp.texi @ 2:ac2d302a0011 r19-15b2

Import from CVS: tag r19-15b2
author cvs
date Mon, 13 Aug 2007 08:46:35 +0200
parents 376386a54a3c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1 \input texinfo @c -*-texinfo-*-
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2 @comment %**start of header (This is for running Texinfo on a region.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3 @setfilename ../info/ange-ftp.info
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
4 @settitle ange-ftp
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
5 @comment %**end of header (This is for running Texinfo on a region.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
6
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
7 @synindex pg vr
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
8
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
9 @node Top, What is ange-ftp?, (dir), (dir)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
10 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
11 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
12 @unnumbered Ange-ftp
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
13
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
14 This file documents ange-ftp, a system for transparent file-transfer
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
15 between remote hosts using the FTP protocol within GNU Emacs.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
16
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
17 This info is current to Version 4.2 of Ange-ftp.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
18
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
19 Documentation version: 1.32
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
20
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
21 Copyright @copyright{} 1991, 1992 Free Software Foundation, Inc.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
22
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
23 Permission is granted to make and distribute verbatim copies of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
24 this manual provided the copyright notice and this permission notice
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
25 are preserved on all copies.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
26
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
27 @ignore
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
28 Permission is granted to process this file through TeX and print the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
29 results, provided the printed document carries a copying permission
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
30 notice identical to this one except for the removal of this paragraph
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
31 (this paragraph not being relevant to the printed manual).
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
32
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
33 @end ignore
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
34 Permission is granted to copy and distribute modified versions of this
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
35 manual under the conditions for verbatim copying, provided that the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
36 entire resulting derived work is distributed under the terms of a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
37 permission notice identical to this one.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
38 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
39
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
40 @titlepage
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
41 @sp5
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
42 @center @titlefont{ange-ftp}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
43 @center version 4.2
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
44 @sp2
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
45 @center A transparent remote file system, by Andy Norman
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
46 @sp7
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
47 @center This documentation by David Smith.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
48 @center info-version 1.32
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
49 @page
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
50 @vskip 0pt plus 1filll
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
51 Copyright @copyright{} 1991, 1992 Free Software Foundation, Inc.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
52
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
53 Permission is granted to make and distribute verbatim copies of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
54 this manual provided the copyright notice and this permission notice
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
55 are preserved on all copies.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
56
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
57 Permission is granted to copy and distribute modified versions of this
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
58 manual under the conditions for verbatim copying, provided that the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
59 entire resulting derived work is distributed under the terms of a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
60 permission notice identical to this one.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
61 @end titlepage
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
62
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
63 @menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
64 * What is ange-ftp?:: A brief introduction to ange-ftp. Credits.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
65 * Installing ange-ftp:: Where to find it, and how to use it.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
66 * Using ange-ftp:: Ange-ftp -- a users' guide.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
67 * Getting help:: Mailing lists and newsgroups.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
68 * Bugs:: Known bugs, and a wish list.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
69
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
70 Indices:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
71 * Concept Index::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
72 * Variable and command index::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
73 @end menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
74
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
75
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
76 @node What is ange-ftp?, Installing ange-ftp, Top, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
77 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
78 @chapter Introducing ange-ftp.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
79
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
80 Ange-ftp is a system for transparent file-transfer between remote UNIX,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
81 VMS, CMS or MTS
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
82 hosts using FTP. This means that you can edit, copy and otherwise
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
83 manipulate files on any machine you have access to from within GNU Emacs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
84 as if it were a local file. Ange-ftp works by introducing an extended
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
85 filename syntax, and overloading functions such as
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
86 @code{insert-file-contents} so that accessing a remote file causes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
87 appropriate commands to be sent to an FTP process. Ange-ftp works with
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
88 Dired (and in particular Sebastian Kremer's Tree Dired) to facilitate
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
89 directory browsing and multiple file transfer from remote hosts.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
90
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
91 The author of ange-ftp is Andy (Ange) Norman (@code{ange@@hplb.hpl.hp.com}).
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
92 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
93 Many people have sent in enhancements, and Ange has been kept quite
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
94 busy testing them and incorporating them into ange-ftp. Current members
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
95 of the Ange-Ftp Hall of Fame include:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
96
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
97 @itemize @bullet
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
98 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
99 Many thanks to Roland McGrath for improving the filename syntax handling,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
100 for suggesting many enhancements and for numerous cleanups to the code.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
101
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
102 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
103 Thanks to Jamie Zawinski for bugfixes and for ideas such as gateways.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
104
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
105 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
106 Thanks to Ken Laprade for improved @file{.netrc} parsing and password
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
107 reading, and Dired/shell autoloading.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
108
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
109 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
110 Thanks to Sebastian Kremer for tree dired support and for many ideas and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
111 bugfixes.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
112
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
113 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
114 Thanks to Joe Wells for bugfixes, non-UNIX system support, VOS support,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
115 and hostname completion.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
116
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
117 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
118 Thanks to Nakagawa Takayuki for many good ideas, filename-completion, help
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
119 with file-name expansion, efficiency worries, stylistic concerns and many
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
120 bugfixes.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
121
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
122 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
123 Thanks to Sandy Rutherford who re-wrote most of ange-ftp to support VMS,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
124 MTS, CMS and UNIX-dls. Sandy also added dired-support for non-UNIX OS and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
125 auto-recognition of the host type.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
126
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
127 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
128 Also, thanks to Keith Waclena, Mark D. Baushke, Terence Kelleher,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
129 Ping Zhou, Edward Vielmetti, Jack Repenning, Mike Balenger, Todd
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
130 Kaufmann, Kjetil Svarstad, Tom Wurgler, Linus Tolke, Niko Makila, Carl
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
131 Edman, Bill Trost, Dave Brennan, Dan Jacobson, Andy Scott, Steve
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
132 Anderson, Sanjay Mathur, the folks on the ange-ftp-lovers mailing list
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
133 and many others whose names have been forgotten who have helped to debug
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
134 and fix problems with @file{ange-ftp.el}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
135 @end itemize
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
136 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
137
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
138 Finally, this info file was written by Dave Smith
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
139 (@code{dsmith@@stats.adelaide.edu.au}), although large chunks of it
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
140 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
141 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
142 (such as most of this node :-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
143 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
144 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
145 are plagiarised straight out of the extensive
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
146 comments section of @file{ange-ftp.el}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
147
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
148 @node Installing ange-ftp, Using ange-ftp, What is ange-ftp?, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
149 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
150 @chapter Installing ange-ftp
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
151
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
152 If you don't already have a copy of ange-ftp, or you want a later
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
153 version, ange-ftp is pretty easy to get hold of. FTP is the probably the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
154 simplest method, but other options such as mail are available.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
155
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
156 Once you have the Emacs-Lisp source, there are a few customisations you
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
157 might need to make. The ideal configuration is to have the FTP process running
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
158 on the same machine as you are running Emacs on, but this is not always
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
159 possible since some machines cannot access hosts outside the local
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
160 network. In this case, the FTP process needs to be run on a machine
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
161 which @emph{does} have access to the local world --- this is called the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
162 @strong{gateway host}. Ange-ftp has facilities to make use of a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
163 gateway host when accessing remote hosts.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
164
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
165 @menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
166 * Obtaining source code:: Where to find the ange-ftp source.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
167 * Installing source:: Where to put it, how to load it.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
168 * Using a gateway:: For when your local machine has limited access.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
169 * Other options:: More user variables to twiddle.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
170 @end menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
171
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
172 @node Obtaining source code, Installing source, ,Installing ange-ftp
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
173 @section How to get the ange-ftp source code
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
174 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
175
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
176 The latest version of ange-ftp should always be available for anonymous
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
177 FTP from
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
178 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
179 alpha.gnu.ai.mit.edu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
180 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
181 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
182 in the file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
183 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
184 ange-ftp/ange-ftp.tar.Z
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
185 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
186 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
187 (which includes both @file{ange-ftp.el} and this texinfo file.) In ange-ftp
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
188 notation, that's
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
189 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
190 /anonymous@@alpha.gnu.ai.mit.edu:ange-ftp/ange-ftp.tar.Z
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
191 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
192
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
193 Alternatively, ange-ftp is also part of the Emacs-Lisp Archive
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
194 @cindex Emacs-Lisp Archive
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
195 on
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
196 @code{archive.cis.ohio-state.edu}. The latest version should always be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
197 available on this site, but the Lisp-Code Directory entry is not always
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
198 up to date; it currently reads:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
199 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
200 ange-ftp (3.112) 91-08-12
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
201 Andy Norman, <ange@@hplb.hpl.hp.com>
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
202 archive.cis.ohio-state.edu:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
203 /pub/gnu/emacs/elisp-archive/as-is/ange-ftp.el.Z
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
204 transparent FTP Support for GNU Emacs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
205 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
206
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
207 Ange-ftp can also be found at:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
208 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
209 ugle.unit.no:/pub/gnu/emacs-lisp/ange-ftp.el.Z
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
210 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
211
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
212 Failing these, someone on the ange-ftp mailing list (@xref{Getting
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
213 help}) or the author himself (@xref{What is ange-ftp?}) may be able to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
214 help you find the latest version.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
215
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
216 If you intend to do a lot of browsing though archive sites it is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
217 definitely worth your while installing Sebastian Kremer's Tree Dired
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
218 @cindex Tree Dired, source
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
219 along with ange-ftp (if you haven't done it already). Tree Dired will
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
220 work with ange-ftp without any modifications: all you need to do is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
221 follow the installation instructions that come with the package. The
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
222 Tree Dired package comes complete with the latest version of ange-ftp,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
223 and is available for anonymous FTP from the following sites:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
224 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
225 ftp.thp.Uni-Koeln.DE:/pub/gnu/emacs/diredall.tar.Z (134.95.64.1)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
226 ftp.cs.buffalo.edu:pub/Emacs/diredall.tar.Z
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
227 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
228 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
229 Alternatively, you can get in touch with Sebastian himself
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
230 using his e-mail address: @code{sk@@thp.Uni-Koeln.DE}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
231
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
232 @node Installing source, Using a gateway, Obtaining source code, Installing ange-ftp
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
233 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
234 @section Installing the source
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
235
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
236 Installation is simply a matter of copying the file @file{ange-ftp.el}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
237 to a directory in your load-path. If you don't already have a load-path,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
238 this is probably a good time to make one. Just create a directory (say,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
239 @file{~/elisp}) in which you plan to keep your Emacs-Lisp files. Then
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
240 place the following line in your @file{.emacs}:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
241 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
242 (setq load-path (cons (expand-file-name "~/elisp") load-path))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
243 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
244 @cindex load path
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
245 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
246 The @code{expand-file-name} is @emph{important} --- omitting it is a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
247 common reason why load-paths do not work.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
248
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
249 Once you've copied @file{ange-ftp.el} to the appropriate directory, it is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
250 recommended to byte-compile it, with @kbd{M-x byte-compile-file}. Then
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
251 place the line
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
252 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
253 (require 'ange-ftp)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
254 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
255 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
256 in your @file{.emacs} (@emph{after} the line which modifies your
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
257 load-path, of course!) It's that simple.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
258
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
259 The above instructions should allow you to access all hosts that your
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
260 local machine can access. If your local host has limited access,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
261 however, you may wish to have ange-ftp working through a gateway
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
262 machine. If so, read on. Otherwise, @xref{Using ange-ftp} to get started
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
263 using ange-ftp.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
264
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
265 @node Using a gateway, Other options, Installing source, Installing ange-ftp
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
266 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
267 @section Using a gateway
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
268
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
269 Suppose you are running Emacs (and ange-ftp, of course) on a machine X
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
270 (let's call it the `local host') and you want to access a file on a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
271 machine Z (which we will call the `remote host'). Unfortunately, X does
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
272 not have FTP access to Z: when you try a manual FTP something like
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
273 the following happens:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
274 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
275 X$ ftp Z.foo.bar.com
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
276 ftp: connect: Host is unreachable
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
277 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
278 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
279 However, X @emph{does} have access to a machine Y (the `gateway
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
280 machine') which @emph{can} access Z. Fortunately, you have an account on
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
281 the gateway machine, and so the solution is to login to Y, ftp to Z,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
282 download the file you want from Z to Y, and then copy it from Y to the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
283 local host, X. This can get a bit tedious, to say the least, but
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
284 fortunately ange-ftp can do all the hard work for you.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
285
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
286 Firstly, you need to set the variable @code{ange-ftp-gateway-host} to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
287 the name of the gateway machine. The name should be the one that the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
288 local host recognises, that is, the name you use with @code{login} so
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
289 that it works.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
290 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
291 (setq ange-ftp-gateway-host "Y.local.lan.edu")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
292 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
293 @vindex ange-ftp-gateway-host
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
294 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
295 Since you only need to go through these convolutions for remote hosts
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
296 that the local host can't access directly, you can set the variable
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
297 @code{ange-ftp-local-host-regexp} to a regular expression which matches
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
298 those hostnames that X can access, but does not match those hosts that
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
299 only the gateway can access. In other words, if the host you are trying
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
300 to access matches @code{ange-ftp-local-host-regexp}, the FTP process
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
301 will be run on the local machine, otherwise it will be run on the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
302 gateway machine. For example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
303 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
304 (setq ange-ftp-local-host-regexp "\\.hp\\.com$\\|^[^.]*$")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
305 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
306 @vindex ange-ftp-local-host-regexp
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
307 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
308 will match all hosts that are in the @samp{.hp.com} domain, or don't have an
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
309 explicit domain in their name, but will fail to match hosts with
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
310 explicit domains or that are specified by their IP address.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
311
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
312 The next step is to determine whether you have a smart gateway, that is,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
313 @cindex smart gateways
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
314 if the FTP process on the gateway will accept commands of the form
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
315 @code{USER user@@host}. You can test this by trying a manual FTP:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
316 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
317 X$ ftp -n Y.local.lan.edu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
318 Connected to Y.local.lan.edu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
319 220 Y.local.lan.edu FTP server (Version ?.??? some-date) ready.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
320 ftp> user myname@@Z.foo.bar.com
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
321 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
322 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
323 If you then got a message like:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
324 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
325 331 Password required for myname@@Z.foo.bar.com
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
326 Password:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
327 530 Login incorrect.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
328 Login failed.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
329 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
330 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
331 then you @emph{don't} have a smart gateway. If you do, then something
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
332 else happens -- but since it doesn't work for me I can't say what!
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
333 Anyway, if you do have a smart gateway, put the line
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
334 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
335 (setq ange-ftp-smart-gateway t)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
336 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
337 @vindex ange-ftp-smart-gateway
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
338 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
339 in your @file{.emacs}. You may also wish to set the variable
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
340 @code{ange-ftp-smart-gateway-port}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
341 @vindex ange-ftp-smart-gateway-port
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
342 to the port of the gateway machine to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
343 use when smart gateway is in operation, but the default of 21 will
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
344 probably be fine. In any case, your installation has finished, so
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
345 @xref{Using ange-ftp} now -- the rest of this section is of no use to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
346 you. If on the other hand you don't have a smart gateway, put the line
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
347 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
348 (setq ange-ftp-smart-gateway nil) ; this is the default
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
349 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
350 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
351 in your @file{.emacs} and read on.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
352
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
353 Since to get files from Z to X we need to copy from Z to Y, and then
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
354 from Y to X, we need a place to store files on Y which is also
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
355 accessible by X, i.e. we need a directory which is mounted on both X and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
356 Y. Since we are assuming that the local host and the gateway machine are
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
357 on the same local network, it's fairly likely that this is the case
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
358 thanks to NFS.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
359 @cindex NFS
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
360 If such a directory exists, then ange-ftp can transfer files from Z to X
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
361 simply by FTP'ing from Z to the temporary directory on Y, and then using
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
362 a normal (local) copy from the image of the temporary directory on X to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
363 the destination directory. Unfortunately, ange-ftp requires that
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
364 this temporary directory
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
365 @cindex temporary files
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
366 has the @emph{same} name on both the local and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
367 gateway machines, so you might need to do some twiddling with symbolic
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
368 links, or ask your sysadmin to set something up with NFS. Once you have
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
369 found such a directory, set the variable
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
370 @code{ange-ftp-gateway-tmp-name-template}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
371 to the name of this directory plus an identifying filename prefix. For example:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
372 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
373 (setq ange-ftp-gateway-tmp-name-template "/nfs/hplose/ange/ange-ftp")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
374 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
375 @vindex ange-ftp-gateway-tmp-name-template
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
376 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
377 where @file{/nfs/hplose/ange} is a directory that is shared between the gateway
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
378 machine Y and the local machine X.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
379
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
380 The next step is to find a means of getting an FTP process running on
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
381 the gateway machine. The simplest method is to spawn a remote shell
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
382 @cindex remote shell
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
383 using @code{remsh} or @code{rsh} or their equivalent. Unfortunately, this
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
384 doesn't always work --- try the following:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
385 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
386 X$ rsh Y.local.lan.edu ftp
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
387 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
388 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
389 On my system, this command simply hangs. On others, it might be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
390 disallowed for security reasons. If it doesn't work for you, then skip
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
391 the rest of this paragraph. If it does, then you should set then
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
392 variable @code{ange-ftp-gateway-program} to the name of the program
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
393 used to spawn a remote shell. The default is @code{"remsh"}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
394 on HP-UX machines, and @code{"rsh"} otherwise. You should also set
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
395 @code{ange-ftp-gateway-program-interactive} to @code{nil}:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
396 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
397 (setq ange-ftp-gateway-program "rsh")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
398 (setq ange-ftp-gateway-program-interactive nil)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
399 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
400 @vindex ange-ftp-gateway-program
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
401 @vindex ange-ftp-gateway-program-interactive
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
402 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
403 and now your installation is complete.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
404
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
405 Since spawning a remote shell didn't work, ange-ftp needs to actually
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
406 login to the gateway machine to run ftp, the same as you would do if you
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
407 were running ftp manually. So you need to set the variable
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
408 @code{ange-ftp-gateway-program} to the name of the program that lets you
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
409 log onto the gateway machine --- probably @code{"rlogin"} or @code{"telnet"}:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
410 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
411 (setq ange-ftp-gateway-program "rlogin")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
412 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
413 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
414 Now set the variable @code{ange-ftp-gateway-prompt-pattern} to a regular
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
415 expression that matches the prompt you get when you login to the gateway
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
416 machine. Be very specific here; this regexp must not match
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
417 @emph{anything} in your login banner except this prompt.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
418 @code{shell-prompt-pattern}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
419 @vindex shell-prompt-pattern
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
420 is far too general as it appears to match
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
421 some login banners from Sun machines. For example:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
422 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
423 (setq ange-ftp-gateway-prompt-pattern "^[^$]*\\$ *")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
424 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
425 @vindex ange-ftp-gateway-prompt-pattern
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
426 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
427 You also need to set the variable
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
428 @code{ange-ftp-gateway-program-interactive}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
429 to @code{t} to let ange-ftp know that it has to "hand-hold" the login to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
430 the gateway machine:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
431 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
432 (setq ange-ftp-gateway-program-interactive t)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
433 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
434 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
435 Now comes a slightly tricky bit. You need to set the variable
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
436 @code{ange-ftp-gateway-setup-term-command} to a UNIX command that will
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
437 put the pty connected to the gateway machine into a no-echoing mode, and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
438 will strip off carriage-returns from output from the gateway machine.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
439 The default is @code{"stty -onlcr -echo\n"} for HP-UX machines, and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
440 @cindex HP-UX
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
441 @code{"stty -echo nl\n"} otherwise. So
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
442 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
443 (setq ange-ftp-gateway-setup-term-command "stty -echo nl\n")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
444 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
445 @vindex ange-ftp-gateway-setup-term-command
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
446 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
447 will probably work. If it does, then you're done. There's a bit of a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
448 problem for @code{tcsh}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
449 @cindex tcsh
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
450 users, though: in some versions of @code{tcsh}, the "tty
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
451 sanity checking" feature prevents the above commands from working. In
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
452 this case, an easy fix is to invoke @code{csh} first, and then run the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
453 @code{stty}:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
454 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
455 (setq ange-ftp-gateway-setup-term-command "exec csh\nstty -echo nl\n")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
456 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
457 or maybe
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
458 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
459 (setq ange-ftp-gateway-setup-term-command "(stty -echo nl; csh)\n")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
460 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
461 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
462 may well do the trick. When using this method, synchronisation may be a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
463 problem: if your gateway machine is slow in responding, when ange-ftp is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
464 ready for (and indeed has already sent) FTP commands, your machine may
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
465 still be setting up. This can cause ange-ftp to think that the FTP has
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
466 had an error, and abort. One solution is to set
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
467 @code{ange-ftp-skip-msgs}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
468 @vindex ange-ftp-skip-msgs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
469 (a regular expression matching messages from the ftp process that can be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
470 ignored) so that any line ending in @code{^M} (carriage-returns) will be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
471 ignored (since the @code{stty} hasn't come into effect yet) and also to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
472 ignore any lines beginning with your prompt (since this means the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
473 terminal setup is still in progress):
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
474 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
475 (setq ange-ftp-skip-msgs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
476 (concat "\\|^.*\C-M$\\|" ange-ftp-gateway-prompt-pattern
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
477 ange-ftp-skip-msgs))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
478 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
479 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
480 Unfortunately, this can also mean that sometimes ange-ftp won't
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
481 recognise a @emph{real} error, and simply hang -- but if that ever
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
482 happens @kbd{C-g} might get you out of it.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
483
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
484 @node Other options, , Using a gateway, Installing ange-ftp
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
485 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
486 @section Other user options
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
487
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
488 Here are the other user options available in ange-ftp:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
489
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
490 @code{ange-ftp-netrc-filename}: The name of a file in @code{netrc(5)}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
491 format that ange-ftp will use to match hostnames, users and their
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
492 respective passwords. Hostnames specified here are also used for hostname
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
493 completion.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
494 The default is @code{"~/.netrc"}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
495 @vindex ange-ftp-netrc-filename
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
496
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
497 @code{ange-ftp-default-user}: If this is a string, it is the username to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
498 use when none is specified in a filename. If @code{nil}, then the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
499 name under which the user is logged in is used. If non-@code{nil} but
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
500 not a string, the user is prompted for the name. The default is @code{nil}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
501 @vindex ange-ftp-default-user
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
502
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
503 @code{ange-ftp-default-password}: The password to use when the user is the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
504 same as @code{ange-ftp-default-user}. The default is @code{nil}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
505 @vindex ange-ftp-default-password
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
506
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
507 @code{ange-ftp-default-account}: Account password to use when the user
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
508 is the same as @code{ange-ftp-default-user}. The default is @code{nil}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
509 @vindex ange-ftp-default-account
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
510
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
511 @code{ange-ftp-generate-anonymous-password}: If this is @code{t}, then
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
512 ange-ftp will generate a password of the form @code{your_username@@local_host}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
513 when you specify a username of @code{anonymous} in the filename (or if
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
514 you are automatically logged in as @code{anonymous}). If this is a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
515 string, then that string is used instead. If it is @code{nil}, then the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
516 user is prompted for a password. The default is @code{nil}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
517 @vindex ange-ftp-generate-anonymous-password
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
518
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
519 @code{ange-ftp-dumb-unix-host-regexp}: The FTP servers on some machines have
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
520 problems if the @code{ls} command is used. The usual indication that
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
521 something is wrong is when ange-ftp erroneously thinks that a directory
2
ac2d302a0011 Import from CVS: tag r19-15b2
cvs
parents: 0
diff changeset
522 is just a plain file. The routine @code{ange-ftp-add-dumb-unix-host} can
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
523 be called to tell ange-ftp to limit itself to the @code{DIR} command and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
524 not @code{ls} for a given host (but this change will take effect for the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
525 current GNU Emacs session only). If a large number of machines with
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
526 similar hostnames have this problem then it is easier to change the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
527 value of this variable to a regexp which matches hostnames which have
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
528 this problem, particularly since ange-ftp cannot automatically detect
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
529 such hosts. The default is @code{nil}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
530 @vindex ange-ftp-dumb-unix-host-regexp
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
531 @pindex ange-ftp-add-dumb-unix-host
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
532
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
533 @code{ange-ftp-binary-file-name-regexp}: By default ange-ftp will
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
534 transfer files in ASCII mode. If a file being transferred matches the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
535 value of this regexp then the FTP process will be toggled into BINARY
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
536 mode before the transfer and back to ASCII mode after the transfer. The
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
537 default is:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
538 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
539 (concat "\\.Z$\\|\\.lzh$\\|\\.arc$\\|\\.zip$\\|\\.zoo$\\|\\.tar$\\|"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
540 "\\.dvi$\\|\\.ps$\\|\\.elc$\\|TAGS$\\|"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
541 "\\.gif$\\|\\.EXE\\(;[0-9]+\\)?$")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
542 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
543 @vindex ange-ftp-binary-file-name-regexp
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
544
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
545 @code{ange-ftp-hash-mark-size}: Ange-ftp by default requests that the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
546 FTP process sends hash marks (just @code{#} characters) during transfers
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
547 to keep track of how much data has been sent or received. This variable,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
548 if non-@code{nil}, should be the number of kilobytes represented by the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
549 FTP client's hash mark. The default value of 1 doesn't work for me --- I
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
550 use 2 instead.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
551 @vindex ange-ftp-hash-mark-size
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
552
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
553 @code{ange-ftp-process-verbose}: If this is @code{t} then ange-ftp will
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
554 be chatty about interaction with the FTP process. The default is @code{t}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
555 @vindex ange-ftp-process-verbose
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
556
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
557 @code{ange-ftp-ftp-program-name}: This should be the name of the FTP
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
558 program to run on the local host. The default value of @code{"ftp"}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
559 should be fine for most systems.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
560 @vindex ange-ftp-ftp-program-name
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
561
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
562 @code{ange-ftp-gateway-ftp-program-name}: Same as above, but this time
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
563 it's the name of the program to be used if a gateway is in use. The
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
564 default is again @code{"ftp"}, but some AT&T folks claim to use
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
565 something called @code{"pftp"} here.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
566 @vindex ange-ftp-gateway-ftp-program-name
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
567
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
568 @code{ange-ftp-make-backup-files}: A list of operating systems for which
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
569 ange-ftp will make Emacs backup files on the remote host. For example,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
570 @code{'(unix)} makes sense, but @code{'(unix vms)} or @code{'(vms)}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
571 would be silly, since VMS makes its own backups. The host type is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
572 determined by the function @code{ange-ftp-host-type}. Possible host
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
573 types are: @code{dumb-unix}; @code{vos}; @code{vms}; @code{mts}; and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
574 @code{unix}. The default of @code{nil} means make no backups on remote
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
575 hosts.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
576 @vindex ange-ftp-make-backup-files
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
577 @cindex backup files
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
578
2
ac2d302a0011 Import from CVS: tag r19-15b2
cvs
parents: 0
diff changeset
579 @code{ange-ftp-path-format}: This variable dictates the format of a
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
580 fully expanded remote pathname. This is a cons @code{(REGEXP . (HOST
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
581 USER PATH))}, where @code{REGEXP} is a regular expression matching the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
582 full remote pathname, and @code{HOST}, @code{USER}, and @code{PATH} are
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
583 the numbers of parenthesised expressions in @code{REGEXP} for the components
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
584 (in that order). The syntax can be customised with this variable to a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
585 certain extent, but there are limitations. The default is @*
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
586 @code{'("^/\\(\\([^@@/:]*\\)@@\\)?\\([^@@/:]*\\):\\(.*\\)" . (3 2 4))}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
587 @vindex ange-ftp-path-format
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
588
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
589 @code{ange-ftp-multi-msgs}: A regular expression matching messages from
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
590 the ftp process that start a multiline reply. The default is @*
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
591 @code{"^220-\\|^230-\\|^226\\|^25.-\\|^221-\\|^200-\\|^530-\\|^4[25]1-"}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
592 @vindex ange-ftp-multi-msgs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
593
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
594 @code{ange-ftp-good-msgs}: A regular expression matching messages from
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
595 the ftp process that indicate that the action that was initiated has
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
596 completed successfully. The default is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
597 @code{"^220 \\|^230 \\|^226\\|^25. \\|^221 \\|^200 \\|^[Hh]ash mark"}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
598 @vindex ange-ftp-good-msgs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
599
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
600 @code{ange-ftp-skip-msgs}: A regular expression matching messages from
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
601 the ftp process that can be ignored. The default is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
602 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
603 (concat "^200 \\(PORT\\|Port\\) \\|^331 \\|^150 \\|^350 \\|^[0-9]+ bytes \\|"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
604 "^Connected \\|^$\\|^Remote system\\|^Using\\|^ \\|Password:\\|"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
605 "^local:\\|^Trying\\|^125 \\|^550-")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
606 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
607 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
608 but you might need to tweak it if ange-ftp is giving up when it
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
609 shouldn't.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
610 @vindex ange-ftp-skip-msgs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
611
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
612 @code{ange-ftp-fatal-msgs}: A regular expression matching messages from
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
613 the FTP process that indicate something has gone drastically wrong
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
614 attempting the action that was initiated and that the FTP process should
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
615 (or already has) been killed. The default is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
616 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
617 (concat "^ftp: \\|^Not connected\\|^530 \\|^4[25]1 \\|rcmd: \\|"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
618 "^No control connection\\|unknown host\\|^lost connection")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
619 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
620 @vindex ange-ftp-fatal-msgs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
621
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
622 @code{ange-ftp-gateway-fatal-msgs}: Regular expression matching messages
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
623 from the rlogin / telnet process that indicates that logging in to the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
624 gateway machine has gone wrong. The default is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
625 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
626 "No route to host\\|Connection closed\\|No such host\\|Login incorrect"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
627 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
628 @vindex ange-ftp-gateway-fatal-msgs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
629
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
630 @code{ange-ftp-tmp-name-template}: This should be a directory and a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
631 filename prefix indicating where ange-ftp should make temporary files.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
632 The default of @code{"/tmp/ange-ftp"} should be fine for most systems.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
633 @vindex ange-ftp-tmp-name-template
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
634 @cindex temporary files
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
635
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
636 @code{ange-ftp-retry-time}: Number of seconds to wait before retrying if
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
637 a file or listing doesn't arrive. For slow connections, you might get a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
638 ``listing unreadable'' error messages
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
639 @cindex listing unreadable error
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
640 or an empty buffer for a file that you know has something in it. The
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
641 solution is to increase the value of @code{ange-ftp-retry-time}. Its default
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
642 value is 5 which is plenty for reasonable connections. However, for
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
643 some transatlantic connections 20 might be a better value.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
644 @vindex ange-ftp-retry-time
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
645
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
646 @node Using ange-ftp, Getting help, Installing ange-ftp, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
647 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
648 @chapter Using ange-ftp
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
649
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
650 Once you have ange-ftp installed, you never need worry about using FTP
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
651 again. The interface is completely transparent, and you may now use
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
652 Emacs commands such as @kbd{C-x C-f} (@code{find-file})
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
653 @pindex find-file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
654 on @emph{any}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
655 file that your local host (or, if you are using one) your gateway can
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
656 access. That file may be a regular file (for editing, viewing etc.), a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
657 directory (for invoking Dired) or even a symbolic link
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
658 @cindex symbolic links
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
659 (pointing to a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
660 directory or a regular file). All it takes is an extended filename
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
661 syntax. For example, if you give the filename
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
662 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
663 /ange@@anorman:/tmp/notes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
664 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
665 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
666 to @code{find-file}, then ange-ftp will spawn an FTP process, connect to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
667 the host @code{anorman} as user @code{ange}, get the file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
668 @file{/tmp/notes} and pop up a buffer containing the contents of that
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
669 file as if it were on the local filesystem. If ange-ftp needed a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
670 password to connect then it would prompt the user in the minibuffer.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
671 From then on you can edit that file as if it were any other file: saving
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
672 is with @kbd{C-x C-s} as usual --- in fact, everything is as usual.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
673
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
674 Ange-ftp is also extremely useful for regular "file-transfer" FTP jobs.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
675 Since Dired also works on remote directories when using ange-ftp, you
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
676 will be able to browse the filesystem on your favourite archive site
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
677 with consummate ease.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
678
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
679 @menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
680 * Remote filenames:: The ange-ftp extended filename syntax.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
681 * Using Dired:: Browsing directories.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
682 * Using a .netrc:: Preventing password pestering.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
683 * Ange-ftp commands:: Interactive commands supplied by ange-ftp.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
684 * DL support:: For hosts using descriptive directory listings.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
685 * Non-Unix Hosts:: Some hosts have funny filenames.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
686 * Completion:: On filenames and hostnames.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
687 * Accessing the FTP process:: For when manual tinkering is needed.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
688 @end menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
689
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
690 @node Remote filenames, Using Dired, , Using ange-ftp
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
691 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
692 @section Remote filename syntax
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
693
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
694 The general form of the extended filename syntax is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
695 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
696 /user@@host:path
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
697 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
698 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
699 which refers to the file pointed to by @code{path} on machine
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
700 @code{host} when logging in as user @code{user}. When @code{path} is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
701 supplied as a relative file-name (that is, without a leading @samp{/})
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
702 it is relative to @code{user}'s home directory (although such relative
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
703 filenames are ultimately converted to absolute ange-ftp pathnames). You
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
704 may even refer to home directories
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
705 @cindex home directories of other users
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
706 @cindex other users' home directories
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
707 of users on remote Unix sites using the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
708 standard tilde @samp{~} notation.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
709 @code{host} needs to be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
710 the fully qualified pathname if the local or gateway machine requires it
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
711 to be (however hostname completion is available if it is included in
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
712 your @file{.netrc} -- @xref{Using a .netrc}), or it may be an IP
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
713 @cindex IP numbers
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
714 @cindex numeric Internet addresses
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
715 number if your nameserver can't find the site. The @code{user@@} part
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
716 may be omitted, in which case the username is chosen on the basis of the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
717 variable @code{ange-ftp-default-user}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
718 @vindex ange-ftp-default-user
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
719 (@xref{Other options}) and your
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
720 @file{.netrc}. If a password is requested by the FTP process, ange-ftp
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
721 will either prompt you for it, or generate one on the basis of the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
722 variables @code{ange-ftp-default-password},
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
723 @vindex ange-ftp-default-password
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
724 and your @file{.netrc}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
725
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
726 Thus the following are all valid ange-ftp filenames:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
727 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
728 /anonymous@@waldo.uranium.com:pub/games/wumpus
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
729 /root@@127.44.3.1:/etc/passwd
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
730 /jbrown@@freddie.ucla.edu:~mblack/
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
731 /alpha.gnu.ai.mit.edu:ange-ftp/ange-ftp.tar.Z
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
732 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
733
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
734 @node Using Dired, Using a .netrc, Remote filenames, Using ange-ftp
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
735 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
736 @section Using Dired
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
737
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
738 This feature of ange-ftp is particularly useful when file-transfers, as
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
739 opposed to file-editing, are the order of the day. Simply run
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
740 @code{find-file} on a directory to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
741 get a listing of the files in that directory. For example, you might
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
742 run @code{find-file} on
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
743 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
744 /anonymous@@archive.site.com:pub
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
745 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
746 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
747 to see what's in the @file{pub} directory of your favourite archive
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
748 @cindex archive sites
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
749 site. This brings up a Dired buffer of all the files in that directory.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
750 The @kbd{f} command is useful for looking at @file{README} files --- if
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
751 you then decide to save it @kbd{C-x C-w} is useful. You can also use
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
752 this method to copy files, but the @kbd{c} command is easier. The
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
753 @kbd{f} command can also be used to descend the directory tree by
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
754 applying it to directories.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
755
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
756 You can also use Dired to refresh ange-ftp's internal cache. If you
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
757 (or anybody else) has changed a remote directory since you first accessed it
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
758 with ange-ftp, completion is not provided on any new files that ange-ftp
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
759 does not know about. If you have
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
760 (or create) a Dired buffer which contains the modified directory,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
761 executing @code{revert-buffer}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
762 @pindex revert-buffer
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
763 with a prefix argument (@kbd{C-u g} in the Dired buffer)
2
ac2d302a0011 Import from CVS: tag r19-15b2
cvs
parents: 0
diff changeset
764 will force a refresh of both the buffer @emph{and also ange-ftp's
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
765 internal cache}. If you find that filename completion isn't working on a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
766 @cindex filename completion
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
767 file that you @emph{know} is there, this is how to fix the problem.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
768
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
769 The version of Dired supplied with Emacs version 18.58 (and earlier
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
770 versions) does not include a capability for multiple file transfers. The
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
771 @cindex multiple file transfers
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
772 @cindex wildcards
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
773 Tree Dired package (@xref{Obtaining source code}), however, is ideal
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
774 for this application. Tree Dired provides facilities for maintaining an
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
775 entire directory tree in a Dired buffer, for marking files which match a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
776 certain regexp (or you can select files interactively) and then copying
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
777 all those files to your local host (or even a different remote host).
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
778 Another useful feature is Virtual Dired, which allows you to save Dired
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
779 @cindex virtual dired
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
780 buffers of remote hosts, allowing you to browse them at a later date
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
781 without actually needing to connect to the host. See the documentation
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
782 for Tree Dired for more details.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
783
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
784 Since ange-ftp is mostly transparent, modifying Dired or Tree Dired by
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
785 means of hooks or keybindings should still work.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
786
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
787 @node Using a .netrc, Ange-ftp commands, Using Dired, Using ange-ftp
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
788 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
789 @section Using a .netrc file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
790
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
791 Being prompted for passwords all the time can get rather annoying, but
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
792 there is a way to fix the problem --- a @file{.netrc} (but @xref{Other
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
793 options} and @code{ange-ftp-netrc-filename}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
794 @vindex ange-ftp-netrc-filename
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
795 if you want another
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
796 filename) file in your home directory. Basically, this is a file (in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
797 format of Unix @code{netrc(5)}) which
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
798 contains the names of all the machines you regularly login to, as well
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
799 as the username and password you use for that machine. You can also
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
800 supply an account password, if required.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
801
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
802 Your @file{.netrc} file consists of lines of the form
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
803 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
804 machine <machine-name> login <user-name> password <password>
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
805 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
806 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
807 It doesn't all have to be on the one line, though: any @code{login} or
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
808 @code{password} commands in the file refer to the previous
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
809 @code{machine} command. You can also have @code{account
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
810 <account-passwd>} commands if you need special account passwords.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
811
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
812 For example, you might have the following line in your @file{.netrc}:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
813 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
814 machine Y.local.lan.edu login myname password secret
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
815 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
816 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
817 Then if you run @code{find-file} on the file @file{/Y.local.lan.edu:somefile}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
818 you will automatically be logged in as user @code{myname} with password
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
819 @code{secret}. You can still login under another name and password, if
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
820 you so desire: just include the @code{user@@} part of the filename.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
821
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
822 You may also include a default option, as follows:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
823 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
824 default login <user-name> password <password>
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
825 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
826 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
827 which applies to any other machines not mentioned elsewhere in your
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
828 @file{.netrc}. A particularly useful application of this is with
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
829 anonymous logins:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
830 @cindex anonymous FTP
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
831 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
832 default login myname password myname@@myhost.edu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
833 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
834 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
835 so that accessing @file{/anyhost:anyfile} will automatically log you in
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
836 anonymously, provided the host is not mentioned in the @file{.netrc}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
837 Note also that if the value of @code{ange-ftp-default-user} is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
838 @vindex ange-ftp-default-user
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
839 non-@code{nil}, its value will have precedence over the username
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
840 supplied in the default option of the @file{.netrc}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
841
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
842 The @file{.netrc} file is also useful in another regard: machines
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
843 included in it are provided with hostname completion. That is, for any
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
844 @cindex hostname completion
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
845 machine in the @file{.netrc}, you need only type a slash and the first
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
846 few characters of its name and then press @key{TAB} to be logged in
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
847 automatically with a username and password from the @file{.netrc} file.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
848 So it's a good idea to put hosts you use regularly in your @file{.netrc}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
849 as well:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
850 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
851 machine archive.site.com login anonymous password myname@@X.local.lan.edu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
852 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
853
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
854
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
855 @node Ange-ftp commands, DL support, Using a .netrc, Using ange-ftp
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
856 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
857 @section Ange-ftp commands
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
858
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
859 Ange-ftp supplies a few interactive commands to make connecting with
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
860 hosts a little easier.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
861
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
862 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
863 Command @code{ange-ftp-set-user}: Prompts for a hostname and a username.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
864 Next time access to the host is attempted, ange-ftp will attempt to log
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
865 in again with the new username.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
866 @pindex ange-ftp-set-user
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
867
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
868 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
869 Command @code{ange-ftp-set-passwd}: Prompts for a hostname, user and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
870 password. Future logins to that host as that user will use the given
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
871 password.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
872 @pindex ange-ftp-set-passwd
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
873
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
874 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
875 Command @code{ange-ftp-set-account}: Prompts for a hostname, user and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
876 account. Future logins to that host as that user will use the given
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
877 account.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
878 @pindex ange-ftp-set-account
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
879
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
880 Note that the effects of the above three commands only last the duration
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
881 of the current Emacs session. To make their effects permanent, you may
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
882 include them as lisp code in your @file{.emacs}:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
883 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
884 (ange-ftp-set-user HOST USER)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
885 (ange-ftp-set-password HOST USER PASSWORD)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
886 (ange-ftp-set-account HOST USER ACCOUNT)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
887 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
888 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
889 This is an alternative to using a @file{.netrc}; @xref{Using a .netrc}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
890
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
891 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
892 Command @code{ange-ftp-kill-ftp-process}: kill the FTP process
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
893 associated with a given buffer's filename (by default the current
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
894 buffer). This is an easy way to achieve a resynch: any future accesses
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
895 to the remote host will cause the FTP process to be recreated.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
896 @pindex ange-ftp-kill-ftp-process
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
897
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
898 @node DL support, Non-Unix Hosts, Ange-ftp commands, Using ange-ftp
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
899 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
900 @section Descriptive directory listings
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
901
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
902 Some hosts (such as @code{cs.uwp.edu}) now use descriptive directory
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
903 listings
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
904 @cindex descriptive directory listings
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
905 @cindex extended directory listings
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
906 (which in fact contain @emph{less} information than the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
907 standard listing!) when issued the @code{ls} command, and ange-ftp has
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
908 been modified to cope with this. Ange-ftp can detect such listings, but
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
909 if you regularly use a remote host which uses this extended listing
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
910 format you should set the variable @code{ange-ftp-dl-dir-regexp} to a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
911 @vindex ange-ftp-dl-dir-regexp
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
912 regular expression which matches directories using the extended listing
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
913 format. You shouldn't anchor the regexp with @samp{$} -- that way the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
914 regexp will match subdirectories as well. Alternatively, you can use
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
915 the interactive command @code{ange-ftp-add-dl-dir} to temporarily add a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
916 @pindex ange-ftp-add-dl-dir
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
917 remote directory for this Emacs session only.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
918
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
919 Tree Dired has been modified to work with such descriptive listings.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
920
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
921 @node Non-Unix Hosts, Completion, DL support, Using ange-ftp
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
922 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
923 @section Using ange-ftp with non-Unix hosts
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
924
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
925 Ange-ftp also works with some non-Unix hosts, although not necessarily
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
926 with all the features available with Unix hosts. VMS, CMS, and MTS
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
927 systems will all now work with ange-ftp and Tree Dired (although
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
928 Classical Dired may well be broken on such systems.) Filename completion
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
929 also now works on these hosts.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
930
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
931 Ange-ftp should be able to automatically detect which type of host you
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
932 are using (VMS, CMS or MTS), but if it is unable to do so you can fix
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
933 the problem by setting the appropriate
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
934 @code{ange-ftp-TYPE-host-regexp} variable (where @code{TYPE} is one of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
935 @samp{vms}, @samp{cms} or @samp{mts}) -- see below. If ange-ftp is unable
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
936 to automatically detect any VMS, CMS or MTS host, please report this as
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
937 a bug: @xref{Bugs}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
938
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
939 In all cases the file-name conventions of the remote host are converted
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
940 to a UNIX-ish format, and this is the format you should use to find
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
941 files on such hosts.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
942
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
943 @menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
944 * VMS support:: Using ange-ftp with VMS systems
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
945 * CMS support:: Using ange-ftp with CMS systems
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
946 * MTS support:: Using ange-ftp with MTS systems
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
947 @end menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
948
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
949 @node VMS support, CMS support, , Non-Unix Hosts
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
950 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
951 @subsection VMS support
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
952 @cindex VMS filenames
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
953 VMS filenames are of the form @code{FILE.TYPE;##}, where both
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
954 @code{FILE} and @code{TYPE} can be up to 39 characters long, and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
955 @code{##} is an integer version number between 1 and 32,767. Valid
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
956 characters in filenames are @samp{A}-@samp{Z}, @samp{0}-@samp{9},
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
957 @samp{_}, @samp{-} and @samp{$}, however @samp{$} cannot begin a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
958 filename and @samp{-} cannot be used as the first or last character.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
959
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
960 Directories in VMS are converted to the standard UNIX @samp{/} notation.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
961 For example, the VMS filename
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
962 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
963 PUB$:[ANONYMOUS.SDSCPUB.NEXT]README.TXT;1
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
964 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
965 would be entered as
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
966 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
967 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
968 /PUB$$:/ANONYMOUS/SDSCPUB/NEXT/README.TXT;1
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
969 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
970 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
971 (The double @samp{$} is required to prevent Emacs from attempting to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
972 expand an environment variable.) Similarly, to anonymously FTP the file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
973 @file{[.CSV.POLICY]RULES.MEM;1} from @code{ymir.claremont.edu} you would
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
974 type @kbd{C-x C-f
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
975 /anonymous@@ymir.claremont.edu:CSV/POLICY/RULES.MEM;1}. You can always
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
976 drop off the @samp{;##} part at the end of the filename to get the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
977 latest version.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
978
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
979 Sandy Rutherford provides some tips for using VMS hosts:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
980 @itemize @bullet
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
981 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
982 Although VMS is not case sensitive, EMACS running under UNIX is.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
983 Therefore, to access a VMS file, you must enter the filename with upper
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
984 case letters.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
985
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
986 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
987 To access the latest version of file under VMS, you use the filename
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
988 without the @samp{;} and version number. You should always edit the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
989 latest version of a file. If you want to edit an earlier version, copy
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
990 it to a new file first. This has nothing to do with ange-ftp, but is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
991 simply good VMS operating practice. Therefore, to edit @file{FILE.TXT;3}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
992 (say 3 is latest version), do @kbd{C-x C-f
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
993 /ymir.claremont.edu:FILE.TXT}. If you inadvertently do
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
994 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
995 @kbd{C-x C-f /ymir.claremont.edu:FILE.TXT;3}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
996 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
997 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
998 you will find that VMS will not allow
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
999 you to save the file because it will refuse to overwrite
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1000 @file{FILE.TXT;3}, but instead will want to create @file{FILE.TXT;4},
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1001 and attach the buffer to this file. To get out of this situation,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1002 @kbd{M-x write-file /ymir.claremont.edu:FILE.TXT} will attach the buffer
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1003 to latest version of the file. For this reason, in Tree Dired @kbd{f}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1004 (@code{dired-find-file}),
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1005 @pindex dired-find-file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1006 always loads the file sans version, whereas @kbd{v},
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1007 (@code{dired-view-file}),
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1008 @pindex dired-view-file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1009 always loads the explicit version number. The
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1010 reasoning being that it reasonable to view old versions of a file, but
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1011 not to edit them.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1012
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1013 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1014 VMS filenames often contain @samp{$} characters: make sure you always
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1015 quote these as @samp{$$} and watch out for the Emacs bug which fails to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1016 quote @samp{$}'s when defaults are presented in the minibuffer: see
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1017 @xref{Bugs}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1018 @end itemize
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1019
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1020 Ange-ftp should automatically detect that you are using a VMS host. If
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1021 it fails to do so (which should be reported as a bug) you can use the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1022 command @code{ange-ftp-add-vms-host}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1023 @pindex ange-ftp-add-vms-host
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1024 to inform ange-ftp manually. For a more permanent effect, or
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1025 if you use a VMS host regularly, it's a good idea to set
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1026 @code{ange-ftp-vms-host-regexp} to a regular expression matching that
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1027 @vindex ange-ftp-vms-host-regexp
2
ac2d302a0011 Import from CVS: tag r19-15b2
cvs
parents: 0
diff changeset
1028 host's name. For instance, if you use @code{ymir.claremont.edu} a lot,
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1029 place the following in your .emacs:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1030 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1031 (setq ange-ftp-vms-host-regexp "^ymir.claremont.edu$")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1032 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1033
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1034 @node CMS support, MTS support, VMS support, Non-Unix Hosts
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1035 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1036 @subsection CMS support
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1037 Ange-ftp has full support, including Tree Dired support, for hosts
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1038 running CMS.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1039
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1040 @cindex CMS filenames
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1041 CMS filenames are entered in a UNIX-y way. Minidisks are
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1042 treated as UNIX directories; for example to access the file @file{READ.ME} in
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1043 minidisk @file{*.311} on @file{cuvmb.cc.columbia.edu}, you would enter
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1044 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1045 /anonymous@@cuvmb.cc.columbia.edu:/*.311/READ.ME
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1046 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1047 If @file{*.301} is the default minidisk for this account, you could access
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1048 @file{FOO.BAR} on this minidisk as
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1049 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1050 /anonymous@@cuvmb.cc.columbia.edu:FOO.BAR
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1051 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1052 CMS filenames are of the form @file{FILE.TYPE}, where both @file{FILE}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1053 and @file{TYPE} can be up to 8 characters. Again, beware that CMS
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1054 filenames are always upper case, and hence must be entered as such.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1055
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1056 Sandy Rutherford provides some tips on using CMS hosts:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1057 @itemize @bullet
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1058 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1059 CMS machines, with the exception of anonymous accounts, nearly always
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1060 need an account password. To have ange-ftp send an account password,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1061 you can either include it in your @file{.netrc} (@xref{Using a .netrc}), or use
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1062 @code{ange-ftp-set-account}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1063 @pindex ange-ftp-set-account
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1064
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1065 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1066 Ange-ftp cannot send ``write passwords'' for a minidisk. Hopefully, we
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1067 can fix this.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1068 @end itemize
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1069
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1070 Ange-ftp should automatically detect that you are using a CMS host. If
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1071 it fails to do so (which should be reported as a bug) you can use the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1072 command @code{ange-ftp-add-cms-host}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1073 @pindex ange-ftp-add-cms-host
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1074 to inform ange-ftp manually. For a more permanent effect, or
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1075 if you use a CMS host regularly, it's a good idea to set
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1076 @code{ange-ftp-cms-host-regexp} to a regular expression matching that
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1077 @vindex ange-ftp-cms-host-regexp
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1078 host's name.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1079
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1080 @node MTS support, , CMS support, Non-Unix Hosts
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1081 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1082 @subsection MTS support
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1083 Ange-ftp has full support, including Tree Dired support, for hosts
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1084 running the Michigan terminal system, and should be able to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1085 automatically recognise any MTS machine.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1086
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1087 @cindex MTS filenames
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1088 MTS filenames are entered in a UNIX-y way. For example, if your account
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1089 was @file{YYYY}, the file @file{FILE} in the account @file{XXXX:} on
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1090 @file{mtsg.ubc.ca} would be entered as
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1091 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1092 /YYYY@@mtsg.ubc.ca:/XXXX:/FILE
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1093 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1094 In other words, MTS accounts are treated as UNIX directories. Of course,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1095 to access a file in another account, you must have access permission for
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1096 it. If @file{FILE} were in your own account, then you could enter it in a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1097 relative path fashion as
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1098 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1099 /YYYY@@mtsg.ubc.ca:FILE
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1100 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1101 MTS filenames can be up to 12 characters. Like UNIX, the structure of the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1102 filename does not contain a type (i.e. it can have as many @samp{.}'s as you
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1103 like.) MTS filenames are always in upper case, and hence be sure to enter
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1104 them as such! MTS is not case sensitive, but an EMACS running under UNIX
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1105 is.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1106
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1107 Ange-ftp should automatically detect that you are using an MTS host. If
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1108 it fails to do so (which should be reported as a bug) you can use the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1109 command @code{ange-ftp-add-mts-host}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1110 @pindex ange-ftp-add-mts-host
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1111 to inform ange-ftp manually. For a more permanent effect, or
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1112 if you use an MTS host regularly, it's a good idea to set
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1113 @code{ange-ftp-mts-host-regexp} to a regular expression matching that
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1114 @vindex ange-ftp-mts-host-regexp
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1115 host's name.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1116
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1117 @node Completion, Accessing the FTP process, Non-Unix Hosts, Using ange-ftp
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1118 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1119 @section File- and host-name completion
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1120
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1121 Full filename completion is supported on all remote UNIX hosts and some
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1122 non-Unix hosts. Hostnames also have completion if they are mentioned in
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1123 the @file{.netrc} and no username is specified. However using the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1124 filename completion feature can be a bit of a two edged sword.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1125
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1126 To understand why, we need to discuss how ange-ftp works. Whenever
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1127 ange-ftp is asked to find a remote file (or directory) an @code{ls}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1128 command is sent to the FTP process to list all the files in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1129 directory. This list is maintained in an internal cache, to provide
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1130 filename completion for later requests on that directory. Ange-ftp keeps
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1131 this cache up-to-date by monitoring Emacs commands which affect files
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1132 and directories, but if a process outside Emacs (such as another user)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1133 changes a directory (e.g. a new file is added)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1134 completion won't work on
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1135 that file since ange-ftp doesn't know about it yet. The solution if to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1136 force ange-ftp to reread the directory and update it's cache, and the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1137 easiest way to do that is with Dired --- @xref{Using Dired} to see how.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1138
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1139 Another problem is that the @code{ls} command can take a long time,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1140 especially when dealing with distant hosts over slow links. So if you're
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1141 after a file in the @file{pub/images} directory but nothing else, it's a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1142 better idea to type @kbd{pub/images/file @key{TAB}} than @kbd{pub/im @key{TAB}}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1143 which will force a read of the @file{pub} directory (since
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1144 ange-ftp needs to know how to complete @code{im}). A little extra typing
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1145 can often save a lot of waiting. Don't be afraid to use the @key{TAB}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1146 key once the directory is cached, though.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1147
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1148 @node Accessing the FTP process, , Completion, Using ange-ftp
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1149 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1150 @section Accessing the FTP process buffer
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1151
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1152 The FTP process used to access the remote files is available for access
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1153 if you wish. It will be in a buffer
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1154 @cindex process buffers
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1155 @cindex buffers
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1156 called @samp{"*ftp @var{remote-file-name}*"},
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1157 i.e. if you found the file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1158 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1159 /anonymous@@archive.site.com:pub/README
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1160 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1161 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1162 there will be a buffer
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1163 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1164 *ftp anonymous@@archive.site.com*
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1165 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1166 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1167 where all the transfers are taking place. You can have a look at the buffer
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1168 using @kbd{C-x b} as usual, and even type in commands to the FTP process
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1169 under an interface very much like @samp{shell-mode}. There are two
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1170 instances when doing this can be very useful: one is accessing non-UNIX
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1171 hosts, where Dired and filename completion may not work (if ange-ftp
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1172 even works at all). The other is multiple (i.e. wildcard) file transfers
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1173 @cindex multiple file transfers
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1174 @cindex wildcards
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1175 which the standard version of Dired does not handle (but Tree Dired
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1176 @emph{does}, and is worth installing for this feature alone.) If you
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1177 are going to use @code{mget} or @code{mput}, make sure you type
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1178 @code{glob} first: ange-ftp turns globbing off by default. Don't be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1179 afraid of changing directories, either --- ange-ftp always uses absolute
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1180 pathnames when communicating with the FTP process.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1181
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1182 You can kill the FTP process at any time simply by killing this buffer.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1183 @cindex FTP processes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1184 @cindex processes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1185 This won't cause ange-ftp any grief whatsoever --- if you later make
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1186 another request to that host, ange-ftp will simply fire up another
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1187 process and create a new buffer to hold it.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1188
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1189 @node Getting help, Bugs, Using ange-ftp, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1190 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1191 @chapter Getting help
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1192
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1193 Ange-ftp has its own mailing list modestly called ange-ftp-lovers where
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1194 ange-ftp users discuss new features, problems, bug fixes etc. There is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1195 also another list called ange-ftp-lovers-announce which is reserved
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1196 exclusively for the announcement of new versions. All
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1197 users of ange-ftp are welcome to subscribe (see below) to either of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1198 these lists. New versions of ange-ftp are posted periodically to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1199 these lists.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1200
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1201 To [un]subscribe to ange-ftp-lovers or ange-ftp-lovers-announce, or to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1202 report mailer problems with the list, please mail one of the following
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1203 addresses:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1204 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1205 ange-ftp-lovers-request@@anorman.hpl.hp.com
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1206 ange-ftp-lovers-request%anorman.hpl.hp.com@@hplb.hpl.hp.com
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1207 hplb.hpl.hp.com!anorman.hpl.hp.com!ange-ftp-lovers-request
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1208 hplabs.hpl.hp.com!anorman.hpl.hp.com!ange-ftp-lovers-request
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1209 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1210 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1211 Please don't forget the @samp{-request} part, and please make it clear
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1212 in the request which mailing list you wish to join.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1213
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1214 For mail to be posted directly to ange-ftp-lovers, send to one of the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1215 following addresses:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1216 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1217 ange-ftp-lovers@@anorman.hpl.hp.com
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1218 ange-ftp-lovers%anorman.hpl.hp.com@@hplb.hpl.hp.com
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1219 hplb.hpl.hp.com!anorman.hpl.hp.com!ange-ftp-lovers
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1220 hplabs.hpl.hp.com!anorman.hpl.hp.com!ange-ftp-lovers
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1221 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1222 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1223 The ange-ftp-lovers mailing list is archived on
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1224 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1225 ftp.reed.edu:pub/mailing-lists/ange-ftp/
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1226 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1227
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1228 The newsgroup @code{gnu.emacs.help} also occasionally discusses ange-ftp.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1229
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1230 @node Bugs, Concept Index, Getting help, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1231 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1232 @chapter Bugs and Wish List
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1233
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1234 Here is a list of the known bugs in ange-ftp:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1235
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1236 @itemize @bullet
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1237 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1238 Be warned that files created by using ange-ftp will take account of the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1239 umask
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1240 @cindex umask
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1241 of the ftp daemon process rather than the umask of the creating
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1242 user. This is particulary important when logging in as the root user.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1243 The way that I tighten up the ftp daemon's umask under HP-UX is to make
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1244 sure that the umask is changed to 027 before I spawn @file{/etc/inetd}. I
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1245 suspect that there is something similar on other systems.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1246
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1247 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1248 Some combinations of FTP clients and servers break and get out of sync
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1249 when asked to list a non-existent directory. Some of the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1250 @code{ai.mit.edu} machines cause this problem for some FTP clients.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1251
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1252 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1253 Ange-ftp does not check to make sure that when creating a new file,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1254 you provide a valid filename for the remote operating system.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1255 If you do not, then the remote FTP server will most likely
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1256 translate your filename in some way. This may cause ange-ftp to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1257 get confused about what exactly is the name of the file. The
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1258 most common causes of this are using lower case filenames on systems
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1259 which support only upper case, and using filenames which are too
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1260 long.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1261
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1262 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1263 Null (blank) passwords confuse both ange-ftp and some FTP daemons.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1264
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1265 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1266 ange-ftp likes to use pty's
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1267 @cindex pty
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1268 to talk to its FTP processes. If GNU Emacs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1269 creates a FTP process that only talks via pipes (for example, if
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1270 @code{process-connection-type} is @code{nil})
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1271 @vindex process-connection-type
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1272 then ange-ftp won't be getting the information it requires at the time that
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1273 it wants it since pipes flush at different times to pty's. One
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1274 disgusting way around this problem is to talk to the FTP process via
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1275 rlogin which does the `right' things with pty's.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1276
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1277 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1278 You need to quote @samp{$} characters in filenames by using @samp{$$}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1279 instead. This isn't actually a bug, but rather an Emacs convention
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1280 (which allows environment variables in filenames.) What @emph{is} an bug
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1281 is that when filenames containing @samp{$}'s are inserted in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1282 minibuffer as defaults, the @samp{$} is not converted into the @samp{$$}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1283 quoted form --- hopefully this will be fixed in version 19. It doesn't
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1284 usually bother Unix users, but VMS filenames often contain @samp{$}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1285 Incidentally, Sebastian Kremer's @code{gmhist} package
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1286 @pindex gmhist
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1287 (which comes with the Tree Dired distribution: @xref{Obtaining source code})
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1288 fixes this bug.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1289
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1290 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1291 @cindex symbolic links
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1292 Some hosts (notably ULTRIX)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1293 @cindex ULTRIX
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1294 mark symbolic links with a @samp{@@} character in an @code{ls -F}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1295 listing. The variable @code{dired-ls-F-marks-symlinks}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1296 @vindex dired-ls-F-marks-symlinks
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1297 when set to @code{t} (the default) alerts Dired to this behaviour and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1298 everything is OK. Enabling this behaviour by default is not generally a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1299 problem on hosts which does @emph{not} mark symlinks in this way, but if
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1300 you have @code{dired-ls-F-marks-symlinks} set to @code{t} while
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1301 accessing a such a host, then Dired will think that a symbolic link whose name
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1302 ends in @samp{@@} (a strange thing indeed!) is a regular file. The fix
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1303 (other than setting @code{dired-ls-F-marks-symlinks to} @code{nil}, a bad idea
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1304 if you regularly access hosts who mark symbolic links) is to remove
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1305 @samp{F} from the @code{ls} listing switches (use @kbd{C-u s} in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1306 Dired buffer.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1307
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1308 Another problem with symbolic links arises with hosts who do not show
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1309 the linked file with @samp{->} in the listing, meaning that Dired will
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1310 not recognize the symlink. The solution here is to get a decent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1311 @code{ls} program on that machine.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1312
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1313 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1314 No classic dired support for non-UNIX systems. Tree dired was enough.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1315
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1316 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1317 If a directory listing is attempted for an empty directory on (at least some)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1318 VMS hosts, an ftp error is given. This is really an ftp bug, and I don't
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1319 know how to get ange-ftp work to around it.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1320
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1321 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1322 Bombs on filenames that start with a space. Deals well with filenames
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1323 containing spaces, but beware that the remote ftpd may not like them much.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1324
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1325 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1326 @cindex auto-saving
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1327 Doesn't autosave. Maybe someone could implement auto-saving on the local
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1328 host ...
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1329
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1330 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1331 @cindex compressing files
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1332 The code to do compression of files over ftp is not as careful as it
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1333 should be. It deletes the old remote version of the file, before
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1334 actually checking if the local to remote transfer of the compressed file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1335 succeeds. Of course to delete the original version of the file after
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1336 transferring the compressed version back is also dangerous, because some
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1337 OS's have severe restrictions on the length of filenames, and when the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1338 compressed version is copied back the @file{-Z} or @file{.Z} may be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1339 truncated. Then, ange-ftp would delete the only remaining version of the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1340 file. Maybe ange-ftp should make backups when it compresses files?
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1341
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1342 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1343 @cindex copying
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1344 Remote to remote copying of files on non-Unix machines can be risky. Depending
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1345 on the variable @code{ange-ftp-binary-file-name-regexp}, ange-ftp will use binary
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1346 mode for the copy. Between systems of different architecture, this still
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1347 may not be enough to guarantee the integrity of binary files. Binary file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1348 transfers from VMS machines are particularly problematical.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1349
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1350 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1351 @cindex CMS minidisks
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1352 Some CMS machines do not assign a default minidisk when you ftp them as
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1353 anonymous. It is then necessary to guess a valid minidisk name, and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1354 @code{cd} to it. This is (understandably) beyond ange-ftp; however
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1355 Sebastian Kremer says:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1356 @quotation
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1357 It is beyond ange-ftp, but if the @code{init} ftp macro were supported, one
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1358 could write the appropriate @code{cd} command into that. I used to do that
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1359 on a CMS machine I had an account on because I never could remember
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1360 the name of the minidisk. I think I even had to give an @code{account}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1361 command, too. Supporting @code{init} would be a very handy thing.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1362
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1363 Hmm, why start @code{ftp(1)} with the @code{-n} flag at all?
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1364 @end quotation
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1365
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1366 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1367 For CMS support, we send too many @code{cd}'s. Since @code{cd}'s are
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1368 cheap, I haven't worried about this too much. Eventually, we should have
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1369 some caching of the current minidisk.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1370 @end itemize
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1371
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1372 If you find any bugs or problems with this package, @strong{please}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1373 e-mail the author. Ideas and constructive comments are especially
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1374 welcome. So are any enhancements to ange-ftp, preferably debugged and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1375 documented. Also welcome are any typo fixes, corrections or additions to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1376 this manual. And just so you don't forget, here's Ange's address again:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1377 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1378 ange@@hplb.hpl.hp.com
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1379 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1380 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1381 Enjoy!
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1382
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1383 @node Concept Index, Variable and command index, Bugs, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1384 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1385 @unnumbered Concept Index
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1386
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1387 @printindex cp
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1388
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1389 @node Variable and command index, , Concept Index, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1390 @unnumbered Variable and command index
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1391
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1392 @printindex vr
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1393
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1394 @contents
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1395
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1396 @bye
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1397