Subject: new bloatarama in ftp(1)
To: None <current-users@NetBSD.ORG>
From: Luke Mewburn <lukem@connect.com.au>
List: current-users
Date: 01/20/1997 01:31:12
I've just committed a huge bunch of changes to ftp(1) that incorporate
various features that I (and others) wanted. Whilst ncftp has these
features, this ftp is plug in compatible with standard ftp and uses
the same .netrc. Enuf justification for my rampant featuritis.

This is the culmination of my spare time over the last week or so, and
involved fixing and documenting stuff line the editline(3) library so
I could use it :)

One thing I forgot in the commit message; Thanks to Jason Thorpe
<thorpej@netbsd.org> for providing the basic framework for the
http retrieval! I cleaned it up and added the proxy support (since
we non-Americans really believe in the concept of WWW caches ;),
but it was his code that was the foundation for this.

I hope you like it, especially the filename and command completion,
which is context sensitive (i.e, ftp(1) ``knows'' when it should
complete commands, local filenames, or remote filenames).

Here's the relevant bits of the commit message.

---
New features.
* Command line editing via editline(3) library.
* Context sensitive command and file completion, including remote files.

Enhancements to auto-fetch feature:
* Support for http:// URLs using the http protocol, including proxy HTTP
  support via $htty_proxy if it's defined.
* The connection is kept open between successive files on the same host.
  (obviously, this does not count for http requests.)
* Return value of ftp is 0 on no error, or the offset in argv[] of the file
  which failed (i.e., argv[x] failed, ftp returns x).
* If the path in an ftp URL or classic format line has a trailing '/', 
  cd to the path and enter interactive mode. Fixes [bin/3011], albiet
  requiring the user to help ftp in determining the operation.

Other changes:
* '-P port' works for normal ftp, and is the default for all classic style
  auto-fetch transfers and for ftp URLs that don't specify the port.
  (previously it would just work for the first xfer.)
* Some code moved into separated files along logical divisions.
* Editing and completion can be compiled out with -DSMALLFTP.
---

--
Luke Mewburn
<lukem@netbsd.org>	Developer, NetBSD Foundation
<lukem@connect.com.au>	Senior System Administrator, Connect.com.au