From: ange@hplb.hpl.hp.com (Andy Norman)
Subject: ange-ftp 4.20, part 8 of 8
Organization: Source only  Discussion and requests in gnu.emacs.help.
Distribution: gnu
Date: Wed, 19 Aug 1992 09:15:50 GMT

Submitted-by: ange@hplb.hpl.hp.com
Archive-name: ange-ftp/part08

---- Cut Here and feed the following to sh ----
#!/bin/sh
# this is ange-ftp.08 (part 8 of ange-ftp)
# do not concatenate these parts, unpack them in order with /bin/sh
# file ange-ftp.texinfo continued
#
if test ! -r _shar_seq_.tmp; then
	echo 'Please unpack part 1 first!'
	exit 1
fi
(read Scheck
 if test "$Scheck" != 8; then
	echo Please unpack part "$Scheck" next!
	exit 1
 else
	exit 0
 fi
) < _shar_seq_.tmp || exit 1
if test -f _shar_wnt_.tmp; then
sed 's/^X//' << 'SHAR_EOF' >> 'ange-ftp.texinfo' &&
@example
*ftp anonymous@@archive.site.com*
@end example
@noindent
where all the transfers are taking place. You can have a look at the buffer
using @kbd{C-x b} as usual, and even type in commands to the FTP process
under an interface very much like @samp{shell-mode}. There are two
instances when doing this can be very useful: one is accessing non-UNIX
hosts, where Dired and filename completion may not work (if ange-ftp
even works at all). The other is multiple (i.e. wildcard) file transfers
@cindex multiple file transfers
@cindex wildcards
which the standard version of Dired does not handle (but Tree Dired
@emph{does}, and is worth installing for this feature alone.)  If you
are going to use @code{mget} or @code{mput}, make sure you type
@code{glob} first: ange-ftp turns globbing off by default. Don't be
afraid of changing directories, either --- ange-ftp always uses absolute
pathnames when communicating with the FTP process.
X
You can kill the FTP process at any time simply by killing this buffer.
@cindex FTP processes
@cindex processes
This won't cause ange-ftp any grief whatsoever --- if you later make
another request to that host, ange-ftp will simply fire up another
process and create a new buffer to hold it.
X
@node Getting help, Bugs, Using ange-ftp, Top    
@comment  node-name,  next,  previous,  up
@chapter Getting help
X
Ange-ftp has its own mailing list modestly called ange-ftp-lovers where
ange-ftp users discuss new features, problems, bug fixes etc. There is
also another list called ange-ftp-lovers-announce which is reserved
exclusively for the announcement of new versions. All
users of ange-ftp are welcome to subscribe (see below) to either of
these lists.  New versions of ange-ftp are posted periodically to
these lists.
X
To [un]subscribe to ange-ftp-lovers or ange-ftp-lovers-announce, or to
report mailer problems with the list, please mail one of the following
addresses:
@example
ange-ftp-lovers-request@@anorman.hpl.hp.com
ange-ftp-lovers-request%anorman.hpl.hp.com@@hplb.hpl.hp.com
hplb.hpl.hp.com!anorman.hpl.hp.com!ange-ftp-lovers-request
hplabs.hpl.hp.com!anorman.hpl.hp.com!ange-ftp-lovers-request
@end example
@noindent
Please don't forget the @samp{-request} part, and please make it clear
in the request which mailing list you wish to join.
X
For mail to be posted directly to ange-ftp-lovers, send to one of the
following addresses:
@example
ange-ftp-lovers@@anorman.hpl.hp.com
ange-ftp-lovers%anorman.hpl.hp.com@@hplb.hpl.hp.com
hplb.hpl.hp.com!anorman.hpl.hp.com!ange-ftp-lovers
hplabs.hpl.hp.com!anorman.hpl.hp.com!ange-ftp-lovers
@end example
@noindent
The ange-ftp-lovers mailing list is archived on 
@example
ftp.reed.edu:pub/mailing-lists/ange-ftp/
@end example
X
The newsgroup @code{gnu.emacs.help} also occasionally discusses ange-ftp.
X
@node Bugs, Concept Index, Getting help, Top
@comment  node-name,  next,  previous,  up
@chapter Bugs and Wish List
X
Here is a list of the known bugs in ange-ftp:
X
@itemize @bullet
@item
Be warned that files created by using ange-ftp will take account of the
umask
@cindex umask
of the ftp daemon process rather than the umask of the creating
user.  This is particulary important when logging in as the root user.
The way that I tighten up the ftp daemon's umask under HP-UX is to make
sure that the umask is changed to 027 before I spawn @file{/etc/inetd}.  I
suspect that there is something similar on other systems.
X
@item
Some combinations of FTP clients and servers break and get out of sync
when asked to list a non-existent directory.  Some of the
@code{ai.mit.edu} machines cause this problem for some FTP clients.
X
@item
Ange-ftp does not check to make sure that when creating a new file,
you provide a valid filename for the remote operating system.
If you do not, then the remote FTP server will most likely
translate your filename in some way. This may cause ange-ftp to
get confused about what exactly is the name of the file. The
most common causes of this are using lower case filenames on systems
which support only upper case, and using filenames which are too
long.
X
@item
Null (blank) passwords confuse both ange-ftp and some FTP daemons.
X
@item
ange-ftp likes to use pty's
@cindex pty
to talk to its FTP processes. If GNU Emacs
creates a FTP process that only talks via pipes (for example, if 
@code{process-connection-type} is @code{nil})
@vindex process-connection-type
then ange-ftp won't be getting the information it requires at the time that 
it wants it since pipes flush at different times to pty's. One        
disgusting way around this problem is to talk to the FTP process via   
rlogin which does the `right' things with pty's.                       
X
@item
You need to quote @samp{$} characters in filenames by using @samp{$$}
instead. This isn't actually a bug, but rather an Emacs convention
(which allows environment variables in filenames.) What @emph{is} an bug
is that when filenames containing @samp{$}'s are inserted in the
minibuffer as defaults, the @samp{$} is not converted into the @samp{$$}
quoted form --- hopefully this will be fixed in version 19. It doesn't
usually bother Unix users, but VMS filenames often contain @samp{$}.
Incidentally, Sebastian Kremer's @code{gmhist} package
@pindex gmhist
(which comes with the Tree Dired distribution: @xref{Obtaining source code})
fixes this bug.
X
@item
@cindex symbolic links
Some hosts (notably ULTRIX)
@cindex ULTRIX
mark symbolic links with a @samp{@@} character in an @code{ls -F}
listing. The variable @code{dired-ls-F-marks-symlinks}
@vindex dired-ls-F-marks-symlinks
when set to @code{t} (the default) alerts Dired to this behaviour and
everything is OK. Enabling this behaviour by default is not generally a
problem on hosts which does @emph{not} mark symlinks in this way, but if
you have @code{dired-ls-F-marks-symlinks} set to @code{t} while
accessing a such a host, then Dired will think that a symbolic link whose name
ends in @samp{@@} (a strange thing indeed!) is a regular file. The fix
(other than setting @code{dired-ls-F-marks-symlinks to} @code{nil}, a bad idea
if you regularly access hosts who mark symbolic links) is to remove
@samp{F} from the @code{ls} listing switches (use @kbd{C-u s} in the
Dired buffer.)
X
Another problem with symbolic links arises with hosts who do not show
the linked file with @samp{->} in the listing, meaning that Dired will
not recognize the symlink. The solution here is to get a decent
@code{ls} program on that machine. 
X
@item
No classic dired support for non-UNIX systems. Tree dired was enough.
X
@item
If a directory listing is attempted for an empty directory on (at least some)
VMS hosts, an ftp error is given. This is really an ftp bug, and I don't
know how to get ange-ftp work to around it.
X
@item
Bombs on filenames that start with a space. Deals well with filenames
containing spaces, but beware that the remote ftpd may not like them much.
X
@item
@cindex auto-saving
Doesn't autosave. Maybe someone could implement auto-saving on the local
host ...
X
@item
@cindex compressing files
The code to do compression of files over ftp is not as careful as it
should be. It deletes the old remote version of the file, before
actually checking if the local to remote transfer of the compressed file
succeeds. Of course to delete the original version of the file after
transferring the compressed version back is also dangerous, because some
OS's have severe restrictions on the length of filenames, and when the
compressed version is copied back the @file{-Z} or @file{.Z} may be
truncated. Then, ange-ftp would delete the only remaining version of the
file. Maybe ange-ftp should make backups when it compresses files?
X
@item
@cindex copying
Remote to remote copying of files on non-Unix machines can be risky. Depending
on the variable @code{ange-ftp-binary-file-name-regexp}, ange-ftp will use binary
mode for the copy. Between systems of different architecture, this still
may not be enough to guarantee the integrity of binary files. Binary file
transfers from VMS machines are particularly problematical. 
X
@item
@cindex CMS minidisks
Some CMS machines do not assign a default minidisk when you ftp them as
anonymous. It is then necessary to guess a valid minidisk name, and
@code{cd} to it.  This is (understandably) beyond ange-ftp; however
Sebastian Kremer says:
@quotation
It is beyond ange-ftp, but if the @code{init} ftp macro were supported, one
could write the appropriate @code{cd} command into that.  I used to do that
on a CMS machine I had an account on because I never could remember
the name of the minidisk.  I think I even had to give an @code{account}
command, too. Supporting @code{init} would be a very handy thing.
X
Hmm, why start @code{ftp(1)} with the @code{-n} flag at all?
@end quotation
X
@item
For CMS support, we send too many @code{cd}'s. Since @code{cd}'s are
cheap, I haven't worried about this too much. Eventually, we should have
some caching of the current minidisk.
@end itemize
X
If you find any bugs or problems with this package, @strong{please}
e-mail the author. Ideas and constructive comments are especially
welcome. So are any enhancements to ange-ftp, preferably debugged and
documented. Also welcome are any typo fixes, corrections or additions to
this manual. And just so you don't forget, here's Ange's address again:
@example
ange@@hplb.hpl.hp.com
@end example
@noindent
Enjoy!
X
@node Concept Index, Variable and command index, Bugs, Top
@comment  node-name,  next,  previous,  up
@unnumbered Concept Index
X
@printindex cp
X
@node Variable and command index, , Concept Index, Top
@unnumbered Variable and command index
X
@printindex vr
X
@contents
X
@bye
X
SHAR_EOF
chmod 0644 ange-ftp.texinfo ||
echo 'restore of ange-ftp.texinfo failed'
Wc_c="`wc -c < 'ange-ftp.texinfo'`"
test 58145 -eq "$Wc_c" ||
	echo 'ange-ftp.texinfo: original size 58145, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
rm -f _shar_seq_.tmp
echo You have unpacked the last part
exit 0