summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcvs2svn <cvs2svn@FreeBSD.org>2004-04-27 00:31:37 +0000
committercvs2svn <cvs2svn@FreeBSD.org>2004-04-27 00:31:37 +0000
commit75e72205dec5b323b9c9a745e23618fd5c525158 (patch)
tree5c81c371bb8d708df8d714ed5ea902f96be1b171
parent7e475d60f53f104292ac3b1c0015eeb52678c424 (diff)
Notes
-rw-r--r--contrib/lukemftp/COPYING47
-rw-r--r--contrib/lukemftp/ChangeLog1084
-rw-r--r--contrib/lukemftp/FreeBSD-patchset64
-rw-r--r--contrib/lukemftp/INSTALL211
-rw-r--r--contrib/lukemftp/Makefile.in33
-rw-r--r--contrib/lukemftp/NEWS84
-rw-r--r--contrib/lukemftp/README61
-rw-r--r--contrib/lukemftp/THANKS30
-rw-r--r--contrib/lukemftp/acconfig.h92
-rw-r--r--contrib/lukemftp/aclocal.m4257
-rw-r--r--contrib/lukemftp/config.h.in275
-rwxr-xr-xcontrib/lukemftp/configure4229
-rw-r--r--contrib/lukemftp/configure.in307
-rw-r--r--contrib/lukemftp/diffout3500
-rwxr-xr-xcontrib/lukemftp/install-sh251
-rw-r--r--contrib/lukemftp/lukemftp.h403
-rw-r--r--contrib/lukemftp/src/ftp.cat11055
-rw-r--r--contrib/lukemftp/todo25
18 files changed, 0 insertions, 12008 deletions
diff --git a/contrib/lukemftp/COPYING b/contrib/lukemftp/COPYING
deleted file mode 100644
index 31acb7415c36..000000000000
--- a/contrib/lukemftp/COPYING
+++ /dev/null
@@ -1,47 +0,0 @@
-Copyright 1999, 2000 Luke Mewburn <lukem@netbsd.org>. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-3. All advertising materials mentioning features or use of this software
- must display the following acknowledgement:
- This product includes software developed by Luke Mewburn.
-4. The name of the author may not be used to endorse or promote products
- derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
-TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-This product also contains software developed by other people, and you
-are advised to read the various source files to read the full details
-of the other licenses. Those licenses also require the following
-acknowledgements:
-
- This product includes software developed by the NetBSD Foundation,
- Inc. and its contributors. Those contributors include:
- - Jaromir Dolecek
- - Klaus Klein
- - Luke Mewburn
- - Jason R. Thorpe of the Numerical Aerospace Simulation
- Facility, NASA Ames Research Center.
-
- This product includes software developed by the University of
- California, Berkeley and its contributors. Those contributors include:
- - Christos Zoulas of Cornell University.
- - Guido van Rossum.
-
- This product includes software developed by Christos Zoulas.
-
diff --git a/contrib/lukemftp/ChangeLog b/contrib/lukemftp/ChangeLog
deleted file mode 100644
index 8bdbb45faa89..000000000000
--- a/contrib/lukemftp/ChangeLog
+++ /dev/null
@@ -1,1084 +0,0 @@
-Mon Jun 10 08:12:35 UTC 2002 lukem
-
- * crank FTP_VERSION from 1.6-beta1 to 1.6-beta2
-
- * replace missing fseeko(), with a wrapper to fseek() which
- checks that the offset isn't > LONG_MAX
-
- * #include <regex.h> #if HAVE_REGEX_H
-
-Mon Jun 10 01:27:46 UTC 2002 lukem
-
- * check for and replace sa_family_t definition
-
- * don't bother checking for issetugid(); it was only used in the
- internal libedit to prevent $HOME/.editrc from being used if
- running set-id, and the newer libedit code wouldn't even read
- $HOME/.editrc if issetugid() wasn't available. as many target
- operating systems don't have issetugid(), and lukemftp isn't
- likely to be run set-id (and $HOME/.netrc is used in any case),
- the issetugid() check has been disabled in libedit.
-
- * add back cpp code which #defines REGEX #if HAVE_REGEX_H
-
-Wed Jun 5 14:39:11 UTC 2002 lukem
-
- * crank FTP_VERSION from 1.6alpha1 to 1.6-beta1
-
- * implement replacement setprogname()
-
- * use getprogname() instead of __progname
-
- * convert to christos' replacement fgetln(), as it's better than mine
-
- * merge ftp from NetBSD 20020605 to 20020606:
- - use setprogname()
- - only support -6 if INET6 is defined
-
-Wed Jun 5 13:08:25 UTC 2002 lukem
-
- * don't bother checking if <glob.h> is usable (see below).
-
- * always compile in local glob; it's the best way to ensure that
- various security issues are fixed
-
- * update libukem/glob.c from NetBSD's __glob13.c rev 1.22 and rev 1.23
-
- * merge libedit from NetBSD 20010413 to 20020606:
- - constify; passes all gcc and lint strict checks.
- - add config.h [Jason Evans], to create a portable version of
- libedit that can be easily compiled on other OS's.
- - PR/12963:Jason Waterman: Fix signed cast problems.
- - Fixed an __P remnant
- - Close quoting.
- - Generate <>& symbolically.
- - Punctuation and whitespace nits, fix a typo.
- - PR/14188: Anthony Mallet: Provide an opaque data
- pointer to client programs.
- - a couple of minor fixes. originally by Ruslan Ermilov
- <ru@FreeBSD.org>, highlighted to me by way of Mike Barcroft
- <mike@FreeBSD.org> (thanks!)
- - PR/14067: Anthony Mallet: Provide a programmatic way
- to set the read_char function via a new el_set() operation.
- Thanks, nicely done :-)
- - `existent', not `existant'
- - Don't use HAVE_ yet.
- - Fix a warning.
- - Remove an unused variable.
- - If term_init() fails, cleanup and return NULL. This
- avoids other lossage. Pointed by charles.
- - va_{start,end} audit: Make sure that each va_start has one
- and only one matching va_end, especially in error cases.
- If the va_list is used multiple times, do multiple
- va_starts/va_ends. If a function gets va_list as argument,
- don't let it use va_end (since it's the callers
- responsibility). Improved by comments from enami and
- christos -- thanks!
- - history_def_enter: fix off-by-one mistake in delete
- condition (the behaviour to keep at least one entry on the
- history list is retained). This fixes lib/9704 by Phil Nelson.
-
- * merge ftp from NetBSD 20020524 to 20020605:
- - when showing the final progress bar, replace "00:00 ETA"
- with the elapsed time. (suggested by simonb)
- - actually display transfer stats after a URL fetch.
- (bug introduced a *long* time ago)
- - update copyright & version
-
- * merge ftp from NetBSD 20001127 to 20020524:
- - Use "r+" instead of "r+w", since the latter is not standard.
- Noted by <Steve.McClellan@radisys.com> in private email.
- - Only send port number in HTTP/1.1 Host: request if port !=
- 80. Fixes [bin/15415] from Takahiro Kambe
- <taca@sky.yamashina.kyoto.jp>
- - Fix bad mode passed by mls() to recvrequest(). Fixes
- [bin/16642] from <steve.mcclellan@radisys.com>
- - update copyrights
- - minor knf
- - invoke cmdtab.c_handler()s with argv[0] == c_name instead
- of the supplied name. that way the full (unambiguous) name
- is displayed in error messages and usage strings.
- - line2 may overrun if line is too long (> 200). be more
- careful on strcpy.
- - Handle URLs without files correctly (e.g, when using '-o -').
- Fix from Anders Dinsen <anders@dinsen.net> in [bin/13768]
- - portnum is unsigned, use %u instead of %d
- - Add -4 to force IPv4 and -6 to force IPv6 address usage.
- From Hajimu UMEMOTO, via Mike Heffner of FreeBSD.
- - use u_char instead of char in base64_encode().
- problem noticed by Jorgen Lundman in private mail.
- - don't make broken file with -R option.
- - handle "*" in Content-Range properly.
- - If no_proxy condition is true && urltype == FTP_URL_T,
- use fetch_ftp to retrieve
- - convert to use getprogname()
- - Fix description for "form", "mode", and "struct" commands.
- Inspired by [bin/16736] from Steve McClellan
- <steve.mcclellan@radisys.com>
- - Generate <>& symbolically. I'm avoiding .../dist/...
- directories for now.
- - Punctuation nits.
- - Whitespace cleanup.
- - put "site" in alphabetical order. noted by Mike Barcroft
- in private email
- - avoid buffer overrun on PASV from malicious server.
- - Large file ASCII mode support by using fseeko()
- instead of fseek(). From Andrey A. Chernov of FreeBSD,
- via Mike Heffner.
- - Deal with const'ification if el_parse().
- - call setlocale() on startup
- - display a limited progress bar (containing bytes xferred
- and xfer rate) when the file size is unknown
- - disable progress bar during remglob()
-
-Thu Mar 14 05:41:49 UTC 2002 lukem
-
- * ensure all AF_INET6 use is protected with #ifdef INET6
-
- * remove unnecessary __attribute__ goop
-
- * libukem/snprintf.c: fix compile errors with gcc 3.x
-
-Tue Apr 17 08:07:29 UTC 2001 lukem
-
- * autoconf check for %q long long support in *printf()
- (instead of %ll), define and use HAVE_PRINTF_QD if so
-
- * ipv6 isn't compatible with socks, so disable the former
-
- * look for <libutil.h> (instead of <util.h>) and <arpa/nameser.h>
-
- * don't check for fparseln() twice
-
- * fix getaddrinfo() checks
-
- * crank FTP_VERSION from 1.5 to 1.6alpha1
-
- * always ensure _PATH_BSHELL and _PATH_TMP are defined
-
- * prototype inet_pton() if its missing
-
- * don't bother trying to use if_indextoname() in ip6_sa2str()
- (fixes problems on MacOS X)
-
- * in inet_pton(), pull in <arpa/nameser.h> for IN6ADDRSZ and INT16SZ,
- and define if missing
-
-Fri Apr 13 15:24:44 UTC 2001 lukem
-
- * only include <arpa/nameser.h> if we have it
-
- * update glob(3) to netbsd-current (20010329), adding support
- for GLOB_LIMIT and fixing various buffer overflows.
-
- * update editline from NetBSD 20000915 -> NetBSD 20010413
- - Enlarge editline buffers as needed to support arbitrary
- length lines. This also addresses lib/9712 by Phil Nelson.
- - consistently check for allocation failures and return -1,
- if we could not get more memory.
- - add support for home and end keys.
- - improve debugging support
- - el_line_t: make 'limit' const
-
-Mon Nov 27 23:23:40 EST 2000 lukem
-
- * merge ftp from NetBSD-current (20001127):
- - implement "mreget"; as per "mget" but uses "reget" instead
- of "get"
- - add -N netrc and $NETRC, as methods to select an alternative
- .netrc file
- - cache local user name and home directory for further use
- - in mget(), use docase() instead of a local version to do
- the case conversion.
- - format string cleanups
- - be more explicit that $ftp_proxy and $http_proxy are not
- supported for interactive sessions
- - cope with 2553bis getnameinfo (always attach scope id)
- getnameinfo error check.
- - use NI_MAXHOST with getnameinfo. we can assume presence of
- getnameinfo.
-
-Tue Nov 7 00:16:23 EST 2000 lukem
-
- * libukem/snprintf.c had a non-functional `%s' due to a
- function declaration mismatch. problem found and fixed
- by Hubert Feyrer <hubert@feyrer.de>
-
-Wed Oct 11 14:06:19 EST 2000 lukem
-
- * released version 1.5
-
-Tue Oct 3 10:22:36 EST 2000 lukem
-
- * crank to version 1.5 beta6
-
- * merge ftp from NetBSD-current (20001003)
- - explicitly use SOCK_STREAM with socket() instead of
- res->ai_socktype, because it appears that linux with glibc
- doesn't set the latter correctly after one of getaddrinfo()
- or getnameinfo().
- - clarify that $ftp_proxy only works for full URLs and can't
- be used for interactive connections.
-
-Mon Sep 25 21:52:12 EST 2000 lukem
-
- * crank to version 1.5 beta5
-
-Sun Sep 24 13:31:19 EST 2000 lukem
-
- * merge ftp from NetBSD-current (20000924)
- - since everything else here uses ANSI C, we might as well
- replace __STRING() with the ANSI C stringization stuff...
- - base64_encode should be static. picked up by hp/ux(!)
- compiler
- - It appears that whilst Apache 1.3.9 incorrectly puts a
- trailing space after the chunksize (before the \r\n),
- Apache 1.3.11 puts *multiple* trailing spaces after the
- chunksize. I 'm fairly certain that this is contrary to
- RFC 2068 section 3.6, but whatever...
- Found by David Brownlee <abs@mono.org>
- - always include <netdb.h>, not just when INET6 is defined.
- resolves PR [bin/10970] by Richard Earnshaw
- <rearnsha@cambridge.arm.com>>
- - in progressmeter() perform the check for foregroundproc() a
- little earlier
- - removed unused variable `items' in list_vertical()
-
-Sat Sep 23 15:43:34 EST 2000 lukem
-
- * remove unused sverrno in warnx() and errx()
-
- * remove unused h_error in getnameinfo()
-
- * in getaddrinfo(), don't bother declaring in6_addrany[] and
- in6_loopback #ifndef INET6
-
-Thu Sep 21 11:26:35 EST 2000 lukem
-
- * in getaddrinfo.c::str_isnumber(), use strtol() and check the
- result, instead of using strtoul() and not checking the result.
-
- * define INADDRSZ if it's not found (e.g, HP/UX doesn't seem to have
- it in <arpa/nameser.h>)
-
-Wed Sep 20 09:23:59 EST 2000 lukem
-
- * crank to version 1.5 beta4
-
-Mon Sep 18 18:19:54 EST 2000 lukem
-
- * add AC_AIX test, which defines _ALL_SOURCE under AIX
-
- * use ANSI # stringization instead of __STRING()
-
- * define HAVE_RFC2553_NETDB if <netdb.h> defines AI_NUMERICHOST
- (et al) and has getaddrinfo(). (some systems only implement RFC2133)
-
- * don't bother with AC_C_CONST as we depend upon ANSI C elsewhere
-
- * when HAVE_RFC2553_NETDB isn't set, and we're #defining various EAI_,
- AI_, and NI_ items, #undef first incase a system partially implements
- these in <netdb.h>
-
- * look for tgetent() in -ltinfo before -lncurses, because ncurses 5.0
- has been split up into multiple libraries.
- from Arkadiusz Miskiewicz <misiek@pld.org.pl>
-
-Fri Sep 15 01:09:10 EST 2000 lukem
-
- * don't bother defining __P() or __STRING() based on whether
- __STDC__ is available or not, since these aren't used any more
-
- * fix mkstemp() prototype
-
- * declare getpass() if necessary
-
- * we don't need the readline xxgdb hack in libedit...
-
- * convert to ansi declarations
-
- * use ansi prototypes instead of __P()
-
- * merge in changes from makelist 1.4 -> 1.6:
- - generate ansi prototypes instead of using __P(). noted by
- christos
- - fix a couple of comments
- - add -m option to makelist, which generates an mdoc table
- with the key bindings and their descriptions
- - manually add the output of 'sh ./makelist -m vi.c ed.c
- common.c' to a new section in editrc(5) called
- `EDITOR COMMANDS'
-
- * merge libedit from NetBSD-current (20000915)
- * convert to new style guide, which includes:
- - ansi prototypes & features (such as stdargs)
- - 8 space indents
- * history_def_set has a `const int' as a third arg, not an
- `int'. picked up by the ultrix compiler, reported by
- simonb@ ...
- * generate ansi prototypes instead of using __P(). noted by
- christos. fix a couple of comments
- * make xxgdb and a gdb linked with libedit's readline emulation
- work properly together. xxgdb communicates with a gdb
- running on a pty that it sets to -echo,-onlcr prior to
- forking the gdb process. GNU readline preserves the -echo
- setting while libedit was undoing it (setting the tty to a
- sane state and totally confusing xxgdb's parser).
- this diff simply disables libedit if both readline emulation
- and "stty -echo" are used/set. that is enough to make
- xxgdb work once again, but (XXX) this is not how GNU readline
- handles stty -echo (it does not echo anything, but editing
- commands like ^A,^K, etc. still work), so the readline
- emulation isn't perfect.
-
-Tue Aug 29 18:00:08 EST 2000 lukem
-
- * don't bother testing for #if __STDC__; just assume we have it...
-
-Mon Aug 28 22:45:08 EST 2000 lukem
-
- * refine tests for IPv6 #defines (EAI_, AI_, NI_, ...).
- should improve portability on systems which implement
- RFC 2133 but not RFC 2553.
-
-Wed Aug 9 02:12:51 EST 2000 lukem
-
- * use #if __STDC__ instead of #ifdef __STDC__
-
- * only test 'case NETDB_INTERNAL:' if it's defined
-
- * fix support for --program-prefix et al
-
- * only include <arpa/nameser.h> in the files that need it, because
- the DELETE define in some system's implementations causes name
- collisions in libedit.
-
-Mon Aug 7 08:17:37 EST 2000 lukem
-
- * merge ftp from NetBSD-current (20000807)
- * implement parseport(), which takes a string and attempts to
- convert it to a numeric port number
- * use parseport() in parse_url() and hookup()
- * don't try and lookup the port number using getaddrinfo(),
- as it's too hard to separate a failed host name lookup from
- a failed service name lookup. this was causing lossage on
- systems that don't have `http' in services(5) (such as
- solaris), but only crept in when we started using
- getaddrinfo() unconditionally.
-
-Wed Aug 2 23:43:50 EST 2000 lukem
-
- * crank to version 1.5 beta3
-
- * define NO_LONG_LONG not NO_QUAD
-
- * detect if struct sockaddr.sa_len exists (rather than relying upon
- #ifdef BSD4_4)
-
- * detect if socklen_t exists, and if not, typedef as unsigned int
-
- * detect if struct addrinfo exists, and if not declare it and #define
- associated EAI_, AI_, and NI_ defines.
-
- * look for & replace: getaddrinfo(), getnameinfo(), inet_ntop(),
- inet_pton()
- * look for gethostbyname2()
-
- * don't bother looking for hstrerror() or inet_aton() anymore
-
- * include <arpa/nameser.h> and <stddef.h>
-
- * define USE_SELECT instead of __USE_SELECT
-
- * always define HAVE_H_ERRNO
-
- * add Brian Stark to THANKS, for lots of AIX porting feedback
-
- * improve detection of sin_len for AIX (now part of sa_len test)
-
- * add functions needed by recent ftp import:
- getaddrinfo(), getnameinfo(), inet_ntop(), inet_pton()
- remove functions not needed anymore:
- hstrerror(), inet_aton()
-
- * use #if HAVE_ISSETUGID not #ifdef
-
- * update from NetBSD-current (20000802):
- - rename NO_QUAD to NO_LONG_LONG, QUAD* -> LL* and add ULL*
- (unsigned) equivalents. name change suggested by Klaus
- Klein <kjk@netbsd.org>
- - change defined(BSD4_4) || HAVE_SIN_LEN tests into
- HAVE_SOCKADDR_SA_LEN, and set the latter if BSD4_4 exists
-
-Mon Jul 31 10:59:10 EST 2000 lukem
-
- * merge ftp from NetBSD-current (20000731)
- - we can't just rename BSD4_4 -> HAVE_SIN_LEN, since bsd
- systems define BSD4_4; change tests to test for either
- defined(BSD4_4) or HAVE_SIN_LEN
- - more KNF
-
-Sun Jul 30 16:55:09 EST 2000 lukem
-
- * merge ftp from NetBSD-current (20000730):
- - clean up NO_QUAD support: create helper #defines and use as
- appropriate:
- #define NOQUAD ! NOQUAD
- ------- ------ - ------
- QUADF "%ld" "%lld"
- QUADFP(x) "%" x "ld" "%" x "lld"
- QUADT long long long
- STRTOL(x,y,z) strtol(x,y,z) strtoll(x,y,z)
- - always use getaddrinfo() and getnameinfo() instead of
- maintaining two code paths.
- - rename __USE_SELECT to USE_SELECT
- - rename BSD4_4 to HAVE_SIN_LEN
- - replace union sockunion {} with struct sockinet {}, and
- modify the code accordingly. this is possibly more portable,
- as it doesn't rely upon the structure alignment within the
- union for our own stuff.
-
-Fri Jul 28 22:11:17 EST 2000 lukem
-
- * merge ftp from NetBSD-current (20000728):
- - no trailing , on last item (FEAT_max) in enum
- - rename "opts" to "remopts", so people used to "o host"
- don't get bitten
-
-Wed Jul 26 18:59:19 EST 2000 lukem
-
- * merge ftp from NetBSD-current (20000726):
- - add support for FEAT and OPTS commands with `features' and
- `opts'. (from RFC 2389).
- - add support for MLST & MLSD (machine parseble listings)
- with 'mlst', 'mlsd' and 'pmlsd' (mlsd |$PAGER) commands.
- (from draft-ietf-ftpext-mlst-11)
- - rename remotesyst() to getremoteinfo(), and modify to parse
- the result from FEAT (if supported), and take into account
- the support for the various extensions such as MDTM, SIZE,
- REST (STREAM), MLSD, and FEAT/OPTS.
- - put each feature into one of the following categories:
- - known to work (explicit FEAT)
- - unknown but assume works until explicit failure,
- when it's then tagged as `known not to work'.
- - known not to work (FEAT succeeded but didn't return
- anything, or was unknown and then explicit failure)
- assign results into features[] matrix.
- - add support to getreply() so that an optional callback will
- be called for each line received from the server except for
- the first and last. this is used in FEAT (and MLST) parsing.
- - modify various commands to check if REST (STREAM), MDTM and
- SIZE are explicitly or implicitly supported before using.
- - fix `syst' when verbose is off.
- - minor knf (indent goto labels by one space, etc).
- - simply various command usage handlers by assuming that
- argv != NULL except for quit() and disconnect().
- - errx?/warnx? audit. do not pass variable alone, use %s.
-
- * check for issetugid() and don't use in libedit if it doesn't exist.
-
- * merge libedit from NetBSD-current (20000726):
- * Only look in home directory for .editrc. (Discussed
- with Christos.)
-
- * in glob.c #undef TILDE before redefining, because some AIX systems
- #define TILDE in <sys/ioctl.h>
-
-Mon Jul 10 00:28:51 EST 2000 lukem
-
- * released lukemftp 1.4
-
-Thu Jun 15 23:28:49 EST 2000 lukem
-
- * merge ftp from NetBSD-current (20000615):
- * migrate the SYST parsing from setpeer() into a separate
- remotesyst(). call remotesyst() only when login has been
- successful some servers don't let you run SYST until you've
- successfully logged in.
- * in fetch_ftp(), always call setpeer() with autologin
- disabled, and use the following ftp_login() to DTRT. this
- prevents ftp from trying to login a second time if the
- first autologin fails when connecting to a remote site
- anonymously using autofetch.
- * reset unix_proxy and unix_server in cleanuppeer()
- * missed a function conversion in the KNF sweep...
-
-Mon Jun 12 01:16:12 EST 2000 lukem
-
- * change lukemftp.h to check !HAVE_STRDUP instead of !HAVE_STRSUP.
- fixes compile problem on systems which have strdup() as a macro.
-
- * merge ftp from NetBSD-current (20000612):
- from itojun: better fix for previous (doesn't need
- in_addr_t or u_int32_t)
-
-Sun Jun 11 12:19:52 EST 2000 lukem
-
- * merge ftp from NetBSD-current (20000611):
- portability fixes for lukemftp:
- * initconn(): use in_addr_t instead of u_int32_t when
- manipulating IPv6 addresses (and assume anything with ipv6
- has in_addr_t; if not, i'll add an autoconf test for it)
- * ai_unmapped(): not all systems have sin_len; so only set
- #ifdef BSD4_4
- * fix some lint
-
-Mon Jun 5 21:10:31 EST 2000 lukem
-
- * released lukemftp 1.3
-
-Mon Jun 5 19:53:49 EST 2000 lukem
-
- * convert various support files to ANSI C
-
- * look for strtoll() instead of strtoq()
-
- * update COPYRIGHT, THANKS, NEWS
-
- * merge ftp from NetBSD-current (20000605):
- - fix ai_unmapped() to be a no-op in the !def INET6 case
- - display `(-INET6)' at the end of the version string if
- !def INET6
- - clarify in the man page that IPv6 support may not be present
- (for lukemftp :)
-
- * ensure <vis.h> has VIS_WHITE et al
-
-Sun Jun 4 18:00:07 EST 2000 lukem
-
- * merge ftp from NetBSD-current (20000604):
- - Change `ls' to use the `LIST' and not `NLST' FTP protocol
- command. Now that after many years on not caring we find
- certain popular ftp servers are starting to obey RFC959 to
- the letter of the law and will only return a list of
- filenames (not directories or other filetypes) in the
- output of `NLST', then `LIST' is more useful in this case.
- (Note that the aforementioned pedanticness means that
- filename completion isn't as useful as it could be...)
- Fixes [bin/8937] by David A. Gatwood
- <dgatwood@deepspace.mklinux.org>
- - convert to ANSI KNF
- - Add support for `fget localfile', which reads a list of
- filenames to retrieve from localfile. Based on work by
- Darren Reed.
- - Update copyright dates.
- - s/strtoq/strtoll/ (the latter is standardised)
- - Add support for 'ftp -u url file ...', to upload a list of
- files to given url. Mostly based on [bin/10019] by Scott
- Aaron Bamford <sab@ansic.net>
- - convert IPv4 mapped address (::ffff:10.1.1.1) into real IPv4
- address before touching it. IPv4 mapped address complicates
- too many things in FTP protocol handling.
- - do not pass scoped IPv6 address notation on Host: directive,
- since scope identifier is local to the originating node.
- do not allow scoped IPv6 address notation in URL, if it is
- via proxy.
- - fixes from cgd:
- * sanity check a length (otherwise certain bogus responses
- can crash ftp)
- * allow a transfer encoding type of `binary'; certain
- firewall vendors return this bogus type...
- - make debugging output unambiguous on IPv6 numeric addrs
- (don't use host:port)
- - http://[::1]:8080/ is legal.
- - send Host: directive with RFC2732 bracket notation for IPv6
- numeric, otherwise "host:port" is ambiguous to servers
- (clarification will be submitted as update to RFC2732).
- - only use getaddrinfo() et al if both NI_NUMERICHOST *and*
- INET6 are defined... (allows --disable-ipv6 in lukemftp's
- configure script to disable this as well, which is good for
- testing when it appears getaddrinfo() is borken)
- - updated comment on IPv4 mapped address. sync with kame.
- - Fix examples on using pipes in local filenames. AFAICT,
- ftp has always required `dir . |more' not as `dir |more'
- treats `|more' as the remote filename. Resolves [bin/9922]
- by Geoff Wing <mason@primenet.com.au>
- - ftp(1): treats IPv4 mapped destination as IPv4 peer, not
- native IPv6 peer. this does not support network with SIIT
- translator.
- - inhibit too-noisy message for scoped address data transfer
- (will be enabled in "debug" mode).
- - only use IPTOS_ setsockopt()s if they're defined (e.g, SunOS
- doesn't). from Havard.Eidnes@runit.sintef.no
- - allow IPv6 extended numeric address in host part.
- (draft-ietf-ipngwg-scopedaddr-format-01.txt). fixes PR 9616.
-
- * merge libedit from NetBSD-current (20000604):
- - use strtol() (instead of atoi()) for sane error detection
-
-Wed May 31 19:24:53 EST 2000 lukem
-
- * merge libedit from NetBSD-current (20000531):
- - Fix refresh glitches when using auto-margin.
- - Don't dump core on empty .editrc files.
- - el_insertstr takes a "const char *" not "char *" now as it
- doesn't modify the argument.
-
-Thu Feb 3 20:19:40 EST 2000 lukem
-
- * released lukemftp 1.2
-
-Tue Feb 1 09:47:51 EST 2000 lukem
-
- * add --enable-ipv6 and --disable-ipv6 to configure
-
- * modify libedit/sig.? to use sigfunc instead of sig_t, and
- deprecate autoconf tests for retsigtype and sig_t.
- This fixes portability problems with Digital UNIX 5.0.
-
- * merge ftp from NetBSD-current (20000201):
- - define private type `sigfunc' as
- typedef void (*sigfunc) __P((int));
- and replace use of sig_t and void (*)(int).
- certain other OSes define sig_t differently to that (they
- add extra arguments), and it causes problems due to
- function mismatches, etc...
-
-Wed Jan 26 22:54:38 EST 2000 lukem
-
- * search for tgetent() in -ltermcap then -lcurses and -lncurses
-
- * merge ftp from NetBSD-current (20000126):
- - roll back to using sscanf() instead of strptime() to parse
- `yyyymmddhhmmss' strings, since the latter technically can't
- parse dates without non alphanumerics between the elements
- (even though NetBSD's strptime() copes).
-
-Tue Jan 25 19:09:37 EST 2000 lukem
-
- * merge ftp from NetBSD-current (20000125):
- - complete_ambiguous(): be consistent about completing
- unambiguous matches; if the word is already complete then
- return CC_REFRESH so that the higher layer may append a
- suffix if necessary. Fix from Launey Thomas <ljt@alum.mit.edu>
- - change references from draft-ietf-ipngwg-url-literal-01.txt
- to RFC2732
- - work around bug in apache 1.3.9 which incorrectly puts a
- trailing space after the chunksize. noted by Jun-ichiro
- itojun Hagino <itojun@itojun.org> in [bin/9096]
- - work around lame ftpd's that don't return a correct post-Y2K
- date in the output of `MDTM'. obviously the programmer of
- aforementioned lame ftpd's did something like
- "19%02d", tm->tm_year
- instead of
- "%04d", tm->tm_year + TM_YEAR_BASE
- fixes [bin/9289] by jbernard@mines.edu
-
- * merge libedit from NetBSD-current (20000125):
- - PR/9244: Kevin Schoedel: libedit dumps bindings
- inconsistently
- - PR/9243: Kevin Schoedel: libedit ignores repeat count
- - Add support for automatic and magic margins (from tcsh)
- This makes the rightmost column usable on all programs
- that use editline.
-
-Tue Dec 21 08:59:22 EST 1999 lukem
-
- * update INSTALL notes for some systems
-
- * if sl_init() exists, check return value of sl_add() is int and
- compile in a replacement copy if it's not the case
-
- * don't look for <stringlist.h> - always use local prototypes; older
- NetBSD systems may have conflicting prototypes
-
-Mon Dec 20 11:21:28 EST 1999 lukem
-
- * merge ftp from NetBSD-current (19991220):
- - Move version from ftp_var.h to version.h
- - Fix chunked support; probably broke after rate limiting was added.
- Problem noticed/debugging assisted by giles lean
- <giles@nemeton.com.au>.
- - remove unnecessary freeaddrinfo(res), since res0 was changed to be
- freed earlier in itojun's last commit. fixes [bin/8948].
- - remove `const char *reason'; it was being assigned but not used.
- - fix memory leak in fetch_url (no freeaddrinfo was there).
- sync with recent KAME.
- - separate out the main `data pump' loop into two: one that supports
- rate limiting and one that doesn't. simplifies the code, and speeds
- up the latter case a bit, at the expense of duplicating a few
- lines...
-
-Sun Nov 28 18:20:41 EST 1999 lukem
-
- * merge ftp from NetBSD-current (19991128):
- - implement xsl_init() and xsl_add(); error checking forms of
- sl_{init,add}()
- - fix bug where the second press of <TAB> on an empty word (i.e, list
- all options) may have resulted in an strncmp() against NULL.
- (detected by _DIAGASSERT())
- - in cleanuppeer(), reset username to NULL after free()ing it.
- fixes [bin/8870] by Wolfgang Rupprecht <wolfgang@wsrcc.com>
- - complete_remote(): use remglob("", ...) instead of remglob(".", ...),
- for listings of the current working directory; some ftp servers don't
- like `NLST .'.
- [noted by Giles Lean <giles@nemeton.com.au>]
- - recvrequest(): treat remote=="" as remote==NULL when calling
- command(). (to support the above change)
- - support `[user@]' in `[user@]host' and `[user@]host[:][path]'.
- [based on idea (and initial code) from David Maxwell <david@fundy.ca>]
- - `idle' may be invoked without any args
- - reformat some comments
- - reformat usage string in program and man page
- - call updateremotepwd() after successful login, not after successful
- connect
- - always call setsockopt(, IPPROTO_IP, IP_TOS, ) (et al); using #if
- defined(IPPROTO_IP) doesn't work on certain foreign systems where
- enums instead of #defines are used...
- [noted by Matthias Pfaller <leo@dachau.marco.de>]
-
-Mon Nov 15 23:01:58 EST 1999 lukem
-
- * released lukemftp 1.1
-
-Mon Nov 15 09:07:01 EST 1999 lukem
-
- * merge libedit from NetBSD-current (19991115):
- - instead of using a private coord_t global variable to store
- the size of the rprompt, use the previously unused coord_t
- el->el_rprompt.p_pos
-
-Sat Nov 13 14:42:22 EST 1999 lukem
-
- * support caching of results in AC_MSG_TRY_{COMPILE,LINK}
- autoconf tests
-
- * add NEWS file
-
- * clarify copyright statement in COPYING
-
- * merge ftp from NetBSD-current (19991113):
- - implement `set rprompt'; right side version of `set prompt'.
- depends on EL_RPROMPT support i added to editline(3).
- - allow $FTPPROMPT and $FTPRPROMPT to override defaults for
- the relevant prompts
- - move `%' formatting code from prompt() to expandbuf().
- - implement `%.' and `%c', similar to the same % codes in
- tcsh(1) (functionality I added to tcsh nearly 6 years ago),
- except that `%.' always does `...trailing' and `%c' always
- does `/<x>trailing'.
- - unknown `%foo' codes get printed as `%foo'
- - implement updateremotepwd(); update the global variable
- `remotepwd' to contain the remote working directory.
- - add `set prompt', a user configurable prompt. (defaults to
- `ftp> '). the following escape characters a la tcsh(1) are
- supported: %/, %m, %M, and %n.
- - add global var `username'; used by prompt code
- - fix a couple of minor memory leaks
- - bump version
- - prevent minor memory leak (unnecessary strdup)
- - implement restarting file:/// non-proxied http:// URLs
- (with -R).
- - fix a semicolono which stopped file:/// from working
- - split the version string into product and version
- - be consistent about reporting the version between:
- + status command
- + about:version URL fetch
- + User-agent sent in http requests
- - hookup(): when using getservbyname() (when getaddrinfo()
- isn't available), if the provided port is a valid number
- use that rather than trying to do getservbyname() against
- it. fixes a problem on foreign systems noted by Chuck
- Silvers <chuq@chuq.com>
- - support `about:version'. also display the version in the
- output of `status'.
-
- * merge libedit from NetBSD-current (19991113):
- - implement printing a right-side prompt. code derived from
- similar work I wrote for tcsh(1) three years ago.
- - implement EL_RPROMPT, which allows a setting/getting of a
- function which returns a string to be used as the
- right-side prompt.
-
- * replace manually managed config.h.in with acconfig.h and use
- autoheader to generate the former.
-
- * add missing entry for `#undef write' in acconfig.h (for SOCKS)
-
- * configure.in:
- - use `LL' suffix on long long constant used to test
- snprintf("%lld")
- - test for EL_RPROMPT instead of EL_EDITMODE, since the
- former is is a newer required feature
-
- * in makelist, set LC_ALL="C", in case the locale confuses awk.
- problem noted by Peter Seebach <seebs@plethora.net>
-
-Wed Oct 27 07:00:00 UTC 1999 lukem
-
- * released 1.0
-
- * removed libedit/TEST/test.c; no need to distribute it
-
-Mon Oct 25 21:59:54 EST 1999 lukem
-
- * released 1.0b7
-
- * put VERSION string into lukemftp.h, and display with the `status'
- command
-
-Mon Oct 25 11:36:59 EST 1999 lukem
-
- * merge ftp from NetBSD-current (19991025):
- - fix up confirm() (broke `a' and `p' in last commit)
- - simplify main loop (don't need `top' variable any more)
- - use a struct sockaddr_in6.sin6_addr for the result from inet_pton(),
- rather than u_char buf[16]
- - add a few more comments
-
- new features:
- - add `usage'; displays the usage of a command.
- implemented by calling the c_handler() with argc = 0, argv =
- "funcname".
- - add `passive auto'; does the same as $FTPMODE=auto.
- - add `set [option value]'; display all options, or set an option to
- a value.
- - add `unset option'; unset an option.
- - add getoptionvalue() to retrieve an option's value, and replace a few
- global variables with calls to this.
- - implement cleanuppeer(), which resets various bits of state back to
- `disconnected'. call in disconnect() and lostpeer().
- - support completing on `options'.
- - improve recovery after a SIGINT may have closed the connection.
- XXX: there's still a couple to fix
-
- other stuff:
- - various consistency fixes in the man page.
- - ensure that the command usage strings in the code and man page
- match reality.
- - mput/mget: check that the connection still exists before each xfer.
- - minor cosmetic changes in confirm().
- - set code correctly in sizecmd() and modtime()
- - don't need \n in err() strings.
- - change lostpeer to take an argument (rather than casting
- (sig_t)lostpeer in signal handlers)
- - knf and whitespace police.
-
-Sun Oct 24 17:02:59 EST 1999 lukem
-
- * merge libedit from NetBSD-current (19991024):
- - don't assume locales are not working - it may not be
- the case
- - re_refresh(): cast the character passed to re_addc() to
- unsigned char, so we don't end up calling isprint() with
- negative value when chars are signed and character value
- is >= 128
- - Fix pointer arithmatic (caused problems on LP64, including
- ftp dumping core when `edit' was turned off then on).
- Problem solved by David Huggins-Daines <dhd@eradicator.org>
-
-Tue Oct 12 18:05:21 EST 1999 lukem
-
- * install man page from ${srcdir} not from .
-
-Tue Oct 12 17:00:41 EST 1999 lukem
-
- * released 1.0b6
-
- * merge from NetBSD-current (19991012):
- a few user interface and cosmetic tweaks:
- - confirm(): move from util.c to cmds.c. display mnemonic
- string in its prompt. add support for `q' (terminate
- current xfer), `?' (show help list)
- - in various signal handlers, output a linefeed only if
- fromatty.
- - if fgets(stdin) returned NULL (i.e, EOF), clearerr(stdin)
- because you don't want future fgets to fail. this is not
- done for the fgets() in the main command loop, since ftp
- will quit at that point.
- - unless ftp is invoked with -a, don't retain the anonftp
- setting between hosts (`ftp somehost:' sets anonftp, but
- you don't want that to `stick' if you close that connection
- and open a new one).
-
-Mon Oct 11 23:06:38 EST 1999 lukem
-
- * check for working const
-
- * reorganise addition of -lukem to LIBS (was being added twice)
-
- * merge from netbsd-current:
- - use sigjmp_buf instead of jmp_buf for sigsetjmp() buffer
-
- * libedit: don't bother generating & compiling editline.c, since
- its component parts are compiled anyway.
-
-Sun Oct 10 12:08:39 EST 1999 lukem
-
- * released 1.0b5
-
- * in libedit, use xsignal_restart() (from src/util.c) instead of
- signal(); the isn't guaranteed to work on some foreign systems
- (e.g, IRIX) if sigaction() is used in the same program.
-
- * merge from netbsd-current:
- - use sigsetjmp()/siglongjump() instead of setjmp()/longjmp();
- the latter don't save the signal mask on some foreign systems.
- - ensure signal handlers don't use stdio and do reset errno
- if they don't exit with siglongjmp()
- - use a common SIGINT handler for {send,recv}request()
- - allow a second SIGINT during the "xfer aborted. waiting for
- remote to finish abort." stage. if this occurs, just call
- lostpeer() to close the connection. whilst this might be
- considered brutal, it's also extremely handy if you're
- impatient or there's lossage at the remote end.
-
- * add preformatted manual page
-
- * fix --enable-editline
-
-Wed Oct 6 10:19:00 EST 1999 lukem
-
- * released 1.0b4
-
- * don't defining SIGINFO to SIGQUIT if the former doesn't exist; the
- code now supports both as a method of getting the transfer stats
-
- * rototill signal handling in the actual data xfer routines, and
- specifically set SIGQUIT to psummary in each one, to override
- editline's handler
-
-Tue Oct 5 23:48:29 EST 1999 lukem
-
- * factor out SIGINFO setting into a handler that is always active
- (but only prints out info if bytes > 0). only set the handler if
- SIGINFO is defined
-
- * hijack SIGQUIT to be the same as SIGINFO
-
- * in {recv,send}request(), factor a lot of duplicated code out into
- a `cleanup' section at the end
-
- * rework shell() a bit
-
- * enhancments from Marc Horowitz <marc@mit.edu> to improve
- connection timeouts:
- - implement xsignal_restart(), which only sets the SA_RESTART
- flag if specifically requested
- - xsignal() is now a wrapper to xsignal_restart(). INFO,
- USR1, USR2 and WINCH are restartable, ALRM, INT, PIPE and
- QUIT are not
- - improve getreply()'s timeout code to take advantage of the
- above
-
- * improve wording of how globbing works for `classic' URLs (host:path)
- suggested by John Refling <johnr@imageworks.com> in relation to PRs
- [bin/8519] and [bin/8520]
-
- * always compile in the `edit' command even if NO_EDITCOMPLETE defined
- it's just a no-op in the latter case, which is more consistent to
- the users
-
- * always compile in about: support (i.e, remove NO_ABOUT). i'm
- entitled to some vanity in this program...
-
- * update copyrights
-
-Mon Oct 4 10:57:41 EST 1999 lukem
-
- * Invoke ar with `cr' not `cq'
-
- * Use AC_PROG_RANLIB to find ranlib, and use it on the libraries
-
- * Remove `makelist' from dependency list for libedit files; re-running
- configure shouldn't result in rebuilding libedit
-
- * Add support for --{en,dis}able-editcomplete (defaults to enabled),
- which prevents libedit support from being compiled in.
- From Chris G. Demetriou <cgd@netbsd.org>
-
-Sun Oct 3 16:49:01 EST 1999 lukem
-
- * touch up the README
-
- * add COPYING, INSTALL, THANKS
-
- * whitespace consistency
-
- * in config.h, replace NO_QUAD with HAVE_QUAD_SUPPORT, and in
- lukemftp.h define the former if the latter is non zero
-
- * change test against GETPGRP_VOID from #ifdef to #if
-
- * snprintf(): in the truncation case, ensure that the length
- returned is the actual length, not the needed length
-
-Sat Oct 2 00:41:34 EST 1999 lukem
-
- * fix more lossage with $(srcdir) / $(VPATH) stuff; seems to work now
- when configured in a separate directory
-
- * actually test the correct variable when determining whether to run
- AC_FUNC_GETPGRP
-
-Fri Oct 1 19:32:22 EST 1999 lukem
-
- * released 1.0b3
-
- * use AC_PROG_MAKE_SET
-
- * determine setting of NO_QUAD with configure not lukemftp.h
-
- * if have long long and have snprintf, test that snprintf
- supports %lld. if it doesn't use private version
-
- * change strtoq from returning off_t to returning long long
-
- * updates from NetBSD mainline:
- - only try epsv once per connection (i.e, don't bother again
- if it fails)
- - improve description of rate command
- - fix up global vars; they're now externed in ftp_var.h
- except when main.c includes it
- - remove "pathnames.h"
-
-Fri Oct 1 10:08:43 EST 1999 lukem
-
- * updates from NetBSD mainline:
- - fix determining of homedir
- - parse_url(): fix checking of portnum
- - move kame copyrights after bsd/tnfi ones
-
- * released 1.0b2
-
- * add %lld and %qd support to snprintf() for displaying long long's
-
- * support VPATH and srcdir
-
-Thu Sep 30 17:19:35 EST 1999 lukem
-
- * released 1.0b1
-
- * fix from NetBSD mainline: in empty() FD_ZERO the correct variable
-
-Wed Sep 29 23:34:33 EST 1999 lukem
-
- * major rework; reimport code from NetBSD-current 1999/09/29 into
- separate subdirectories and build from there. organisation is now:
- libedit replacement libedit
- libukem replacements for missing functions
- src main ftp source
-
-Mon Sep 27 00:43:12 EST 1999 lukem
-
- * released 1.0 a6
-
-Sun Sep 26 17:17:05 EST 1999 lukem
-
- * released 1.0 a5
-
-Sat Sep 25 00:58:28 EST 1999 lukem
-
- * released 1.0 a4
-
-Fri Sep 24 17:07:07 EST 1999 lukem
-
- * released 1.0 a3
-
-Fri Sep 24 16:18:29 EST 1999 lukem
-
- * released 1.0 a2
-
-Tue Sep 21 11:38:49 EST 1999 lukem
-
- * import usr.src/bin/ftp and usr.src/lib/libedit sources from NetBSD
diff --git a/contrib/lukemftp/FreeBSD-patchset b/contrib/lukemftp/FreeBSD-patchset
deleted file mode 100644
index 2f9ff8a1ba11..000000000000
--- a/contrib/lukemftp/FreeBSD-patchset
+++ /dev/null
@@ -1,64 +0,0 @@
-diff -ru src.orig/cmds.c src/cmds.c
---- src.orig/cmds.c Sun Jun 15 22:11:43 2003
-+++ src/cmds.c Sun Jun 15 21:46:37 2003
-@@ -131,6 +131,7 @@
- #include <string.h>
- #include <time.h>
- #include <unistd.h>
-+#include <libutil.h>
-
- #include "ftp_var.h"
- #include "version.h"
-diff -ru src.orig/fetch.c src/fetch.c
---- src.orig/fetch.c Sun Jun 15 22:11:43 2003
-+++ src/fetch.c Sun Jun 15 21:46:53 2003
-@@ -69,6 +69,7 @@
- #include <string.h>
- #include <unistd.h>
- #include <time.h>
-+#include <libutil.h>
-
- #include "ftp_var.h"
- #include "version.h"
-Only in src: ftp.cat1
-diff -ru src.orig/progressbar.c src/progressbar.c
---- src.orig/progressbar.c Sun Jun 15 22:11:43 2003
-+++ src/progressbar.c Sun Jun 15 21:50:48 2003
-@@ -50,6 +50,7 @@
- */
- #include <sys/types.h>
- #include <sys/param.h>
-+#include <sys/time.h>
-
- #include <err.h>
- #include <errno.h>
-@@ -57,10 +58,12 @@
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
--#include <tzfile.h>
- #include <unistd.h>
-
- #include "progressbar.h"
-+
-+#define SECSPERHOUR (60 * 60)
-+#define SECSPERDAY ((long)60 * 60 * 24)
-
- #if !defined(NO_PROGRESS)
- /*
-diff -ru src.orig/util.c src/util.c
---- src.orig/util.c Sun Jun 15 22:11:44 2003
-+++ src/util.c Sun Jun 15 21:51:31 2003
-@@ -101,10 +101,11 @@
- #include <string.h>
- #include <termios.h>
- #include <time.h>
--#include <tzfile.h>
- #include <unistd.h>
-
- #include "ftp_var.h"
-+
-+#define TM_YEAR_BASE 1900
-
- /*
- * Connect to peer server and auto-login, if possible.
diff --git a/contrib/lukemftp/INSTALL b/contrib/lukemftp/INSTALL
deleted file mode 100644
index 97e82b0d46ed..000000000000
--- a/contrib/lukemftp/INSTALL
+++ /dev/null
@@ -1,211 +0,0 @@
-INSTALLATION INTRODUCTION
--------------------------
-
-This file describes how to compile and install lukemftp on your
-system.
-
- ============================================
- = =
- = NOTE: You will need an ANSI C compiler. =
- = =
- ============================================
-
-
-For most systems, execute the following to compile and install
-lukemftp:
- ./configure
- make
- make install
-
-A preformatted manual page (src/ftp.cat1) is also installed. If
-you wish to install the source (src/ftp.1), ensure that your system
-has up-to-date mandoc macros. groff ships with this macro suite,
-but it has bugs. Try:
- ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-current/src/share/tmac/
-for a more recent version.
-
-
-CONFIGURATION OPTIONS
----------------------
-
-lukemftp is configured using an `autoconf' generated `configure'
-script. `configure' supports the following options:
-
-* The standard `autoconf configure' options, including:
- --prefix=PREFIX install architecture-independent files in PREFIX
- [/usr/local]
- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
- [same as prefix]
- --srcdir=DIR find the sources in DIR [configure dir or ..]
- BSD or GNU make may be required for this to work.
-
-* Specific options:
- --enable-editcomplete Turn on command line editing and completion.
- --disable-editcomplete Turn off command line editing and completion
- [default: enabled].
- --enable-ipv6 Enable IPv6 support (if your OS supports it)
- --disable-ipv6 Disable IPv6 support (even if your OS supports it.)
- [default: enabled].
- --with-socks Compile with SOCKS firewall traversal support.
- --with-socks5[=PATH] Compile with SOCKS5 firewall traversal support.
- --with-socks4[=PATH] Compile with SOCKS4 firewall traversal support.
-
-The following environment variables can be set to override various
-compiler related settings.
- CC=compiler specify name of the C compiler (default: gcc or cc)
- CFLAGS=flags specify flags to C compiler (default: -O -g or just -O)
- LDFLAGS=flags specify flags to linker (default: none)
-
-This can be achieved with:
- env CC="compiler" CFLAGS="flags" LDFLAGS="flags" ./configure
-
-
- ============================================
- = =
- = NOTE: You will need an ANSI C compiler. =
- = =
- ============================================
-
-
-PLATFORM SPECIFIC NOTES
------------------------
-
-The following platforms & compilers have been tested:
-
-- AIX 4.1.5:
-- AIX 4.2.1:
-- AIX 4.3.3:
- - Compiler: xlc -qlanglvl=ansi
- version: xlC 3.1.4.10 -- C for AIX Compiler
- version: ibmcxx.cmp 3.6.6.6 -- IBM C and C++ Compilers
-
- Configure with:
- env CC="xlc" CFLAGS="-qlanglvl=ansi" ./configure
-
-- BSD/OS 4.0.1 (x86)
-- BSD/OS 4.1 (x86)
-- BSD/OS 4.1 (sparc)
-- BSD/OS 4.2 (x86)
- - Compiler: /bin/cc
- version: gcc 2.7.2.1
- version: gcc version 2.95.2 19991024
-
-- Digital UNIX 4.0b
-- Digital UNIX 4.0d
-- Digital UNIX 4.0f
- - Compiler: cc -std
- version: DEC C V5.2-036 on Digital UNIX V4.0 (Rev. 564)
- version: DEC C V5.9-005 on Digital UNIX V4.0 (Rev. 1229)
-
- Configure with
- env CC="cc -std" ./configure
-
- - Compiler: gcc
- version: 2.95.1
-
-- Digital UNIX 5.0
- - Compiler: cc
- version: Compaq C V6.1-011 on Digital UNIX V5.0 (Rev. 910)
-
-- FreeBSD 3.4 (i386):
-- FreeBSD 3.5 (i386):
-- FreeBSD 4.1 (i386):
- - Compiler: cc
- version: gcc version 2.7.2.3
- version: gcc version 2.95.2 19991024
-
-- HP/UX 10.20:
-- HP/UX 11.00:
- - Compiler: /opt/ansic/bin/cc -Ae
- version: A.10.32.03
-
- Configure with
- env CC="cc -Ae" ./configure
-
- To generate code that will run on old architectures you
- may need to add "+DAportable" to CC.
-
-
-- IRIX 6.5.4
-- IRIX 6.5.8
- Compiler: /bin/cc
- version: MIPSpro Compilers: Version 7.2.1
- Compiler:
- version: gcc version 2.95.2
-
-- HP/UX 11.00:
-- HP/UX 11.00 64 bit:
- - Compiler: /opt/ansic/bin/cc -Ae
- version: A.11.01.00
-
- Configure with
- env CC="cc -Ae" ./configure
-
-- NetBSD 1.3.3 (i386)
- Compiler: /usr/bin/cc
- Compiler: /usr/bin/cc
-
- Ignore warnings about ``passing arg 3 of `tputs' from
- incompatible pointer type''.
-
-- RedHat Linux 5.1 (?? i386)
-- RedHat Linux 5.2 (?? i386)
-- RedHat Linux 6.0 (Linux 2.2.10 i686)
-- RedHat Linux 6.1 (Linux 2.2.5-15 i686)
-- RedHat Linux 6.2 (Linux 2.2.16-3smp i686)
- - Compiler: cc
- version: egcs-1.1.2
-
-- Slackware (Linux 2.0.35 i686)
- - Compiler: cc
- version: 2.7.2.3
-
-- Solaris 2.6 (sparc)
-- Solaris 7 (sparc)
- - Compiler: /opt/SUNWspro/bin/cc
- version: WorkShop Compilers 5.0
-
- - Compiler: gcc
- version: egcs-1.1.2
-
-=============
-= OLD NOTES =
-=============
-
-XXX: clean up to match reality
-------------------------------
-
-- RedHat Linux 5.0 (i386)
- Compiler: cc
-
-- Solaris 2.5 (sparc)
-- Solaris 7 (x86)
- Compiler: /opt/SUNWspro/bin/cc
- version: SC3.0 15 Dec 1993
- version: WorkShop Compilers 5.0
- Compiler: gcc
- version: egcs-1.1.2
- version: gcc 2.8.1
- version: gcc 2.95.1
-
-- Solaris 7 (sparc) 64 bit
- Compiler: /opt/SUNWspro/bin/cc -xarch=v9
- version: WorkShop Compilers 5.0
-
-- SunOS 4
- Compiler: gcc -lresolv
- version:
-
-- SuSE Linux
- Compiler: gcc
- version:
-
- /usr/bin/ftp on SuSE Linux 6.4 is this ftp client.
-
- May need `gcc -L/usr/lib/termcap' if tgetent() et al aren't found.
-
-- Ultrix 4.5
- Compiler: cc
- version: MIPS C Compiler 3.0
- Compiler: gcc
- version: 2.7.2.2
diff --git a/contrib/lukemftp/Makefile.in b/contrib/lukemftp/Makefile.in
deleted file mode 100644
index 3e4f2984edfc..000000000000
--- a/contrib/lukemftp/Makefile.in
+++ /dev/null
@@ -1,33 +0,0 @@
-# $Id: Makefile.in,v 1.6 1999/11/13 01:18:22 lukem Exp $
-#
-
-srcdir = @srcdir@
-VPATH = @srcdir@
-SHELL = /bin/sh
-
-@SET_MAKE@
-
-
-SUBDIRS = libedit libukem src
-
-all: ftp
-
-ftp: @LIBEDIT@ @LIBUKEM@
- ( cd src; ${MAKE} )
-
-libedit.a:
- ( cd libedit; ${MAKE} )
-
-libukem.a:
- ( cd libukem; ${MAKE} )
-
-install clean:
- @for i in ${SUBDIRS}; do \
- ( echo "$@ ===> $$i" ; cd $$i ; ${MAKE} $@ ); \
- done
-
-distclean: clean
- @for i in ${SUBDIRS}; do \
- ( echo "$@ ===> $$i" ; cd $$i ; ${MAKE} $@ ); \
- done
- rm -f Makefile config.cache config.log config.status config.h
diff --git a/contrib/lukemftp/NEWS b/contrib/lukemftp/NEWS
deleted file mode 100644
index 614dec090a88..000000000000
--- a/contrib/lukemftp/NEWS
+++ /dev/null
@@ -1,84 +0,0 @@
-This is a brief description of the new features and fixes added to
-lukemftp-1.5 since the release of lukemftp-1.4. As always, the manual
-page (src/ftp.cat1) is the place to look for complete descriptions.
-
-* Add new commands:
- features list remote features supported by servers
- mlsd machine parseable directory listing
- mlst machine parseable file listing
- remopts set options on remote features
-
- These require support in the remote server for the ftp extensions
- described in RFC 2389 and draft-ietf-ftpext-mlst-11.
-
-* Fix support for the --program-prefix and --program-suffix configure
- options.
-
----
-This is a brief description of the new features and fixes added to
-lukemftp-1.4 since the release of lukemftp-1.3. As always, the manual
-page (src/ftp.cat1) is the place to look for complete descriptions.
-
-* Fix compilation problems on various non 4.4BSD derived platforms which
- support IPv6, and on Linux systems which have strdup() as a macro.
-
-* During auto-fetch, don't attempt to autologin a second time if the first
- time failed.
-
----
-This is a brief description of the new features and fixes added to
-lukemftp-1.3 since the release of lukemftp-1.2. As always, the manual
-page (src/ftp.cat1) is the place to look for complete descriptions.
-
-* The `ls' command now uses the `LIST' directive instead of `NLST',
- in order to be compatible with RFC959.
-
-* Add fget command, which reads a list of filenames to retrieve from
- the given file.
-
-* Add support for uploading files on the command-line with `ftp -u'.
-
-* Various fixes to the IPv6 support.
-
----
-This is a brief description of the new features and fixes added to
-lukemftp-1.2 since the release of lukemftp-1.1. As always, the manual
-page (src/ftp.cat1) is the place to look for complete descriptions.
-
-* During remote completion, only send ``NLST'' instead of ``NLST .''
- when reading the list of files from the remote server; some servers
- don't like the trailing `.'.
-
-* Support a leading ``[user@]'' for ``[user@]host[:][path]'' auto-fetches
- and ``[user@]host'' connections.
-
-* Always compile in support for setting the type of service on transfers.
- Should speed up transfers on Linux systems.
-
-* Improve performance of non-rate-limited transfers.
-
-* Work around ftp servers that aren't Y2K compliant in returning the
- modification time of a file.
-
-* Update the libedit library to support automatic and magic margins,
- allowing ftp's rprompt to move an extra character to the right.
-
----
-This is a brief description of the new features and fixes added to
-lukemftp-1.1 since the release of lukemftp-1.0. As always, the manual
-page (src/ftp.cat1) is the place to look for complete descriptions.
-
-* Implemented `set prompt' and `set rprompt', which allow you to
- configure the prompt and right side prompt (respectively).
- Some tcsh(1) style `%' escapes are supported, including
- %. %c %/ %m %M %n
-
-* Implemented restarting of file:/// and non-proxied http:// URLs
- (using -R)
-
-* Correctly parse remote ports given as numbers that don't appear in
- the services(5) database.
-
-* Prevent a couple of minor memory leaks
-
-* Add missing compilation setting for SOCKS
diff --git a/contrib/lukemftp/README b/contrib/lukemftp/README
deleted file mode 100644
index 4b3a12c328fa..000000000000
--- a/contrib/lukemftp/README
+++ /dev/null
@@ -1,61 +0,0 @@
-WHAT IS LUKEMFTP?
------------------
-
-`lukemftp' is what many users affectionately call the enhanced ftp
-client in NetBSD (http://www.netbsd.org). The `lukem' comes from
-the account name of the NetBSD developer who wrote most of the
-enhancements: Luke Mewburn <lukem@netbsd.org>.
-
-This package is a `port' of the NetBSD ftp client to other systems.
-
-The enhancements over the standard ftp client in 4.4BSD (and
-derivatives) include:
- * command-line editing within ftp
- * command-line fetching of URLS, including support for:
- - http proxies (c.f: $http_proxy, $ftp_proxy)
- - authentication
- * configurable prompt
- * context sensitive command and filename completion
- * dynamic progress bar
- * feature negotiation extensions from RFC 2389
- (c.f: `feat' and `remopts')
- * extensions to ftp from the IETF ftpext working group
- (c.f: `mlsd' and `mlst')
- * IPv6 support (from the WIDE project)
- * modification time preservation
- * paging of local and remote files, and of directory listings
- (c.f: `lpage', `page', `pdir')
- * passive mode support, with fallback to active mode
- * retrieval of filenames listed in a given file (c.f: `fget')
- * `set option' override of ftp environment variables
- * socks4/socks5 support
- * TIS Firewall Toolkit gate ftp proxy support (c.f: `gate')
- * transfer-rate throttling (c.f: `-T', `rate')
- * uploading of files on the command line (c.f: `-u')
-
-
-INSTALLATION
-------------
-
-Refer to `INSTALL' for more information on how to compile and install
-lukemftp.
-
-
-FEEDBACK / BUG REPORTS
-----------------------
-
-Please email feedback back to the maintainer: <lukem@netbsd.org>.
-
-
-COPYRIGHT
----------
-
-lukemftp is covered by a BSD-style copyright notice. Please refer to
-the file `COPYING' for more information.
-
-
-AVAILABILITY
-------------
-
-The primary ftp site for lukemftp is:
- ftp://ftp.netbsd.org/pub/NetBSD/misc/lukemftp/
diff --git a/contrib/lukemftp/THANKS b/contrib/lukemftp/THANKS
deleted file mode 100644
index bff4e25b28a2..000000000000
--- a/contrib/lukemftp/THANKS
+++ /dev/null
@@ -1,30 +0,0 @@
-Whilst a lot of the work in lukemftp (both the original sources in NetBSD
-and this port) was done by me (Luke Mewburn), it would not be as useable
-without the enhancements, fixes, or input from the following people:
-
-Brian Stark <bstark1990@netscape.net>
-Chris G. Demetriou <cgd@netbsd.org>
-Christos Zoulas <christos@netbsd.org>
-Dan Winship <danw@mit.edu>
-Darren Reed <darrenr@pobox.com>
-David Carrel <carrel@netbsd.org>
-Giles Lean <giles@nemeton.com.au>
-Havard Eidnes <Havard.Eidnes@runit.sintef.no>
-ITOH Yasufumi <itohy@netbsd.org>
-Jason R. Thorpe <thorpej@netbsd.org>
-John Hawkinson <jhawk@mit.edu>
-Joseph S. Myers <jsm28@cam.ac.uk>
-Jun-ichiro itojun Hagino <itojun@netbsd.org>
-Kimmo Suominen <kim@tac.nyc.ny.us>
-Klaus Klein <kleink@netbsd.org>
-Luke Mewburn <lukem@netbsd.org>
-Marc Horowitz <marc@mit.edu>
-Matthew R. Green <mrg@eterna.com.au>
-Matthias Pfaller <leo@dachau.marco.de>
-Matthias Scheler <tron@zhadum.de>
-Michael L. Hitch <osymh@terra.oscs.montana.edu>
-Scott Aaron Bamford <sab@ansic.net>
-Simon Burge <simonb@thistledown.com.au>
-Todd C. Miller <Todd.Miller@courtesan.com>
-
-Apologies to anyone I've missed.
diff --git a/contrib/lukemftp/acconfig.h b/contrib/lukemftp/acconfig.h
deleted file mode 100644
index fb3cbfae8f09..000000000000
--- a/contrib/lukemftp/acconfig.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/* $Id: acconfig.h,v 1.9 2002/06/10 01:27:13 lukem Exp $ */
-
-@TOP@
-@BOTTOM@
-
-/* Define if your compiler supports `long long' */
-#undef HAVE_LONG_LONG
-
-/* Define if *printf() uses %qd to print `long long' (otherwise uses %lld) */
-#undef HAVE_PRINTF_QD
-
-/* Define if in_port_t exists */
-#undef HAVE_IN_PORT_T
-
-/* Define if sa_family_t exists in <sys/socket.h> */
-#undef HAVE_SA_FAMILY_T
-
-/* Define if struct sockaddr.sa_len exists (implies sockaddr_in.sin_len, etc) */
-#undef HAVE_SOCKADDR_SA_LEN
-
-/* Define if socklen_t exists */
-#undef HAVE_SOCKLEN_T
-
-/* Define if AF_INET6 exists in <sys/socket.h> */
-#undef HAVE_AF_INET6
-
-/* Define if `struct sockaddr_in6' exists in <netinet/in.h> */
-#undef HAVE_SOCKADDR_IN6
-
-/* Define if `struct addrinfo' exists in <netdb.h> */
-#undef HAVE_ADDRINFO
-
-/*
- * Define if <netdb.h> contains AI_NUMERICHOST et al.
- * Systems which only implement RFC2133 will need this.
- */
-#undef HAVE_RFC2553_NETDB
-
-/* Define if `struct direct' has a d_namlen element */
-#undef HAVE_D_NAMLEN
-
-/* Define if h_errno exists in <netdb.h> */
-#undef HAVE_H_ERRNO_D
-
-/* Define if fclose() is declared in <stdio.h> */
-#undef HAVE_FCLOSE_D
-
-/* Define if getpass() is declared in <stdlib.h> or <unistd.h> */
-#undef HAVE_GETPASS_D
-
-/* Define if optarg is declared in <stdlib.h> or <unistd.h> */
-#undef HAVE_OPTARG_D
-
-/* Define if optind is declared in <stdlib.h> or <unistd.h> */
-#undef HAVE_OPTIND_D
-
-/* Define if pclose() is declared in <stdio.h> */
-#undef HAVE_PCLOSE_D
-
-/* Define if `long long' is supported and sizeof(off_t) >= 8 */
-#undef HAVE_QUAD_SUPPORT
-
-/* Define if strptime() is declared in <time.h> */
-#undef HAVE_STRPTIME_D
-
-/*
- * Define this if compiling with SOCKS (the firewall traversal library).
- * Also, you must define connect, getsockname, bind, accept, listen, and
- * select to their R-versions.
- */
-#undef SOCKS
-#undef SOCKS4
-#undef SOCKS5
-#undef connect
-#undef getsockname
-#undef bind
-#undef accept
-#undef listen
-#undef select
-#undef dup
-#undef dup2
-#undef fclose
-#undef gethostbyname
-#undef getpeername
-#undef read
-#undef recv
-#undef recvfrom
-#undef rresvport
-#undef send
-#undef sendto
-#undef shutdown
-#undef write
diff --git a/contrib/lukemftp/aclocal.m4 b/contrib/lukemftp/aclocal.m4
deleted file mode 100644
index 3e275089625a..000000000000
--- a/contrib/lukemftp/aclocal.m4
+++ /dev/null
@@ -1,257 +0,0 @@
-dnl $Id: aclocal.m4,v 1.5 1999/11/13 10:50:39 lukem Exp $
-dnl
-
-dnl
-dnl AC_MSG_TRY_COMPILE
-dnl
-dnl Written by Luke Mewburn <lukem@netbsd.org>
-dnl
-dnl Usage:
-dnl AC_MSG_TRY_COMPILE(Message, CacheVar, Includes, Code,
-dnl ActionPass [,ActionFail] )
-dnl
-dnl effectively does:
-dnl AC_CACHE_CHECK(Message, CacheVar,
-dnl AC_TRY_COMPILE(Includes, Code, CacheVar = yes, CacheVar = no)
-dnl if CacheVar == yes
-dnl AC_MESSAGE_RESULT(yes)
-dnl ActionPass
-dnl else
-dnl AC_MESSAGE_RESULT(no)
-dnl ActionFail
-dnl )
-dnl
-AC_DEFUN(AC_MSG_TRY_COMPILE, [
- AC_CACHE_CHECK($1, $2, [
- AC_TRY_COMPILE([ $3 ], [ $4; ], [ $2=yes ], [ $2=no ])
- ])
- if test "x[$]$2" = "xyes"; then
- $5
- else
- $6
- :
- fi
-])
-
-dnl
-dnl AC_MSG_TRY_LINK
-dnl
-dnl Usage:
-dnl AC_MSG_TRY_LINK(Message, CacheVar, Includes, Code,
-dnl ActionPass [,ActionFail] )
-dnl
-dnl as AC_MSG_TRY_COMPILE, but uses AC_TRY_LINK instead of AC_TRY_COMPILE
-dnl
-AC_DEFUN(AC_MSG_TRY_LINK, [
- AC_CACHE_CHECK($1, $2, [
- AC_TRY_LINK([ $3 ], [ $4; ], [ $2=yes ], [ $2=no ])
- ])
- if test "x[$]$2" = "xyes"; then
- $5
- else
- $6
- :
- fi
-])
-
-
-dnl
-dnl AC_LIBRARY_NET: #Id: net.m4,v 1.5 1997/11/09 21:36:54 jhawk Exp #
-dnl
-dnl Written by John Hawkinson <jhawk@mit.edu>. This code is in the Public
-dnl Domain.
-dnl
-dnl This test is for network applications that need socket() and
-dnl gethostbyname() -ish functions. Under Solaris, those applications need to
-dnl link with "-lsocket -lnsl". Under IRIX, they should *not* link with
-dnl "-lsocket" because libsocket.a breaks a number of things (for instance:
-dnl gethostbyname() under IRIX 5.2, and snoop sockets under most versions of
-dnl IRIX).
-dnl
-dnl Unfortunately, many application developers are not aware of this, and
-dnl mistakenly write tests that cause -lsocket to be used under IRIX. It is
-dnl also easy to write tests that cause -lnsl to be used under operating
-dnl systems where neither are necessary (or useful), such as SunOS 4.1.4, which
-dnl uses -lnsl for TLI.
-dnl
-dnl This test exists so that every application developer does not test this in
-dnl a different, and subtly broken fashion.
-dnl
-dnl It has been argued that this test should be broken up into two seperate
-dnl tests, one for the resolver libraries, and one for the libraries necessary
-dnl for using Sockets API. Unfortunately, the two are carefully intertwined and
-dnl allowing the autoconf user to use them independantly potentially results in
-dnl unfortunate ordering dependancies -- as such, such component macros would
-dnl have to carefully use indirection and be aware if the other components were
-dnl executed. Since other autoconf macros do not go to this trouble, and almost
-dnl no applications use sockets without the resolver, this complexity has not
-dnl been implemented.
-dnl
-dnl The check for libresolv is in case you are attempting to link statically
-dnl and happen to have a libresolv.a lying around (and no libnsl.a).
-dnl
-AC_DEFUN(AC_LIBRARY_NET, [
- # Most operating systems have gethostbyname() in the default searched
- # libraries (i.e. libc):
- AC_CHECK_FUNC(gethostbyname, ,
- # Some OSes (eg. Solaris) place it in libnsl:
- AC_CHECK_LIB(nsl, gethostbyname, ,
- # Some strange OSes (SINIX) have it in libsocket:
- AC_CHECK_LIB(socket, gethostbyname, ,
- # Unfortunately libsocket sometimes depends on libnsl.
- # AC_CHECK_LIB's API is essentially broken so the following
- # ugliness is necessary:
- AC_CHECK_LIB(socket, gethostbyname,
- LIBS="-lsocket -lnsl $LIBS",
- AC_CHECK_LIB(resolv, gethostbyname),
- -lnsl)
- )
- )
- )
- AC_CHECK_FUNC(socket, , AC_CHECK_LIB(socket, socket, ,
- AC_CHECK_LIB(socket, socket, LIBS="-lsocket -lnsl $LIBS", , -lnsl)))
- ])
-
-
-dnl Checks for SOCKS firewall support.
-dnl
-dnl Written by Matthew R. Green <mrg@eterna.com.au>
-dnl
-AC_DEFUN(AC_LIBRARY_SOCKS, [
- AC_MSG_CHECKING(whether to support SOCKS)
- AC_ARG_WITH(socks,
- [ --with-socks Compile with SOCKS firewall traversal support.],
- [
- case "$withval" in
- no)
- AC_MSG_RESULT(no)
- ;;
- yes)
- AC_MSG_RESULT(yes)
- AC_CHECK_LIB(socks5, SOCKSconnect, [
- socks=5
- LIBS="-lsocks5 $LIBS"], [
- AC_CHECK_LIB(socks, Rconnect, [
- socks=4
- LIBS="-lsocks $LIBS"], [
- AC_MSG_ERROR(Could not find socks library. You must first install socks.) ] ) ] )
- ;;
- esac
- ],
- AC_MSG_RESULT(no)
- )
-
- if test "x$socks" = "x"; then
- AC_MSG_CHECKING(whether to support SOCKS5)
- AC_ARG_WITH(socks5,
- [ --with-socks5[=PATH] Compile with SOCKS5 firewall traversal support.],
- [
- case "$withval" in
- no)
- AC_MSG_RESULT(no)
- ;;
- *)
- AC_MSG_RESULT(yes)
- socks=5
- if test "x$withval" = "xyes"; then
- withval="-lsocks5"
- else
- if test -d "$withval"; then
- if test -d "$withval/include"; then
- CFLAGS="$CFLAGS -I$withval/include"
- else
- CFLAGS="$CFLAGS -I$withval"
- fi
- if test -d "$withval/lib"; then
- withval="-L$withval/lib -lsocks5"
- else
- withval="-L$withval -lsocks5"
- fi
- fi
- fi
- LIBS="$withval $LIBS"
- # If Socks was compiled with Kerberos support, we will need
- # to link against kerberos libraries. Temporarily append
- # to LIBS. This is harmless if there is no kerberos support.
- TMPLIBS="$LIBS"
- LIBS="$LIBS $KERBEROS_LIBS"
- AC_TRY_LINK([],
- [ SOCKSconnect(); ],
- [],
- [ AC_MSG_ERROR(Could not find the $withval library. You must first install socks5.) ])
- LIBS="$TMPLIBS"
- ;;
- esac
- ],
- AC_MSG_RESULT(no)
- )
- fi
-
- if test "x$socks" = "x"; then
- AC_MSG_CHECKING(whether to support SOCKS4)
- AC_ARG_WITH(socks4,
- [ --with-socks4[=PATH] Compile with SOCKS4 firewall traversal support.],
- [
- case "$withval" in
- no)
- AC_MSG_RESULT(no)
- ;;
- *)
- AC_MSG_RESULT(yes)
- socks=4
- if test "x$withval" = "xyes"; then
- withval="-lsocks"
- else
- if test -d "$withval"; then
- withval="-L$withval -lsocks"
- fi
- fi
- LIBS="$withval $LIBS"
- AC_TRY_LINK([],
- [ Rconnect(); ],
- [],
- [ AC_MSG_ERROR(Could not find the $withval library. You must first install socks.) ])
- ;;
- esac
- ],
- AC_MSG_RESULT(no)
- )
- fi
-
- if test "x$socks" = "x4"; then
- AC_DEFINE(SOCKS)
- AC_DEFINE(SOCKS4)
- AC_DEFINE(connect, Rconnect)
- AC_DEFINE(getsockname, Rgetsockname)
- AC_DEFINE(bind, Rbind)
- AC_DEFINE(accept, Raccept)
- AC_DEFINE(listen, Rlisten)
- AC_DEFINE(select, Rselect)
- fi
-
- if test "x$socks" = "x5"; then
- AC_DEFINE(SOCKS)
- AC_DEFINE(SOCKS5)
- AC_DEFINE(connect,SOCKSconnect)
- AC_DEFINE(getsockname,SOCKSgetsockname)
- AC_DEFINE(getpeername,SOCKSgetpeername)
- AC_DEFINE(bind,SOCKSbind)
- AC_DEFINE(accept,SOCKSaccept)
- AC_DEFINE(listen,SOCKSlisten)
- AC_DEFINE(select,SOCKSselect)
- AC_DEFINE(recvfrom,SOCKSrecvfrom)
- AC_DEFINE(sendto,SOCKSsendto)
- AC_DEFINE(recv,SOCKSrecv)
- AC_DEFINE(send,SOCKSsend)
- AC_DEFINE(read,SOCKSread)
- AC_DEFINE(write,SOCKSwrite)
- AC_DEFINE(rresvport,SOCKSrresvport)
- AC_DEFINE(shutdown,SOCKSshutdown)
- AC_DEFINE(listen,SOCKSlisten)
- AC_DEFINE(close,SOCKSclose)
- AC_DEFINE(dup,SOCKSdup)
- AC_DEFINE(dup2,SOCKSdup2)
- AC_DEFINE(fclose,SOCKSfclose)
- AC_DEFINE(gethostbyname,SOCKSgethostbyname)
- fi
-])
diff --git a/contrib/lukemftp/config.h.in b/contrib/lukemftp/config.h.in
deleted file mode 100644
index d75433431562..000000000000
--- a/contrib/lukemftp/config.h.in
+++ /dev/null
@@ -1,275 +0,0 @@
-/* config.h.in. Generated automatically from configure.in by autoheader. */
-/* $Id: config.h.in,v 1.28 2002/06/10 08:10:33 lukem Exp $ */
-
-
-/* Define if on AIX 3.
- System headers sometimes define this.
- We just want to avoid a redefinition error message. */
-#ifndef _ALL_SOURCE
-#undef _ALL_SOURCE
-#endif
-
-/* Define if the closedir function returns void instead of int. */
-#undef CLOSEDIR_VOID
-
-/* Define if the `getpgrp' function takes no argument. */
-#undef GETPGRP_VOID
-
-/* Define if your C compiler doesn't accept -c and -o together. */
-#undef NO_MINUS_C_MINUS_O
-
-/* Define if your Fortran 77 compiler doesn't accept -c and -o together. */
-#undef F77_NO_MINUS_C_MINUS_O
-
-/* Define to `long' if <sys/types.h> doesn't define. */
-#undef off_t
-
-/* Define to the type of arg1 for select(). */
-#undef SELECT_TYPE_ARG1
-
-/* Define to the type of args 2, 3 and 4 for select(). */
-#undef SELECT_TYPE_ARG234
-
-/* Define to the type of arg5 for select(). */
-#undef SELECT_TYPE_ARG5
-
-/* Define if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* Define if you can safely include both <sys/time.h> and <time.h>. */
-#undef TIME_WITH_SYS_TIME
-
-/* Define if the closedir function returns void instead of int. */
-#undef VOID_CLOSEDIR
-
-/* The number of bytes in a off_t. */
-#undef SIZEOF_OFF_T
-
-/* Define if you have the err function. */
-#undef HAVE_ERR
-
-/* Define if you have the fgetln function. */
-#undef HAVE_FGETLN
-
-/* Define if you have the fparseln function. */
-#undef HAVE_FPARSELN
-
-/* Define if you have the fseeko function. */
-#undef HAVE_FSEEKO
-
-/* Define if you have the getaddrinfo function. */
-#undef HAVE_GETADDRINFO
-
-/* Define if you have the gethostbyname2 function. */
-#undef HAVE_GETHOSTBYNAME2
-
-/* Define if you have the getnameinfo function. */
-#undef HAVE_GETNAMEINFO
-
-/* Define if you have the getpassphrase function. */
-#undef HAVE_GETPASSPHRASE
-
-/* Define if you have the getpgrp function. */
-#undef HAVE_GETPGRP
-
-/* Define if you have the inet_ntop function. */
-#undef HAVE_INET_NTOP
-
-/* Define if you have the inet_pton function. */
-#undef HAVE_INET_PTON
-
-/* Define if you have the memmove function. */
-#undef HAVE_MEMMOVE
-
-/* Define if you have the mkstemp function. */
-#undef HAVE_MKSTEMP
-
-/* Define if you have the poll function. */
-#undef HAVE_POLL
-
-/* Define if you have the select function. */
-#undef HAVE_SELECT
-
-/* Define if you have the setprogname function. */
-#undef HAVE_SETPROGNAME
-
-/* Define if you have the sl_init function. */
-#undef HAVE_SL_INIT
-
-/* Define if you have the snprintf function. */
-#undef HAVE_SNPRINTF
-
-/* Define if you have the strdup function. */
-#undef HAVE_STRDUP
-
-/* Define if you have the strerror function. */
-#undef HAVE_STRERROR
-
-/* Define if you have the strlcat function. */
-#undef HAVE_STRLCAT
-
-/* Define if you have the strlcpy function. */
-#undef HAVE_STRLCPY
-
-/* Define if you have the strptime function. */
-#undef HAVE_STRPTIME
-
-/* Define if you have the strsep function. */
-#undef HAVE_STRSEP
-
-/* Define if you have the strtoll function. */
-#undef HAVE_STRTOLL
-
-/* Define if you have the strunvis function. */
-#undef HAVE_STRUNVIS
-
-/* Define if you have the strvis function. */
-#undef HAVE_STRVIS
-
-/* Define if you have the timegm function. */
-#undef HAVE_TIMEGM
-
-/* Define if you have the usleep function. */
-#undef HAVE_USLEEP
-
-/* Define if you have the <arpa/nameser.h> header file. */
-#undef HAVE_ARPA_NAMESER_H
-
-/* Define if you have the <dirent.h> header file. */
-#undef HAVE_DIRENT_H
-
-/* Define if you have the <err.h> header file. */
-#undef HAVE_ERR_H
-
-/* Define if you have the <libutil.h> header file. */
-#undef HAVE_LIBUTIL_H
-
-/* Define if you have the <ndir.h> header file. */
-#undef HAVE_NDIR_H
-
-/* Define if you have the <paths.h> header file. */
-#undef HAVE_PATHS_H
-
-/* Define if you have the <poll.h> header file. */
-#undef HAVE_POLL_H
-
-/* Define if you have the <regex.h> header file. */
-#undef HAVE_REGEX_H
-
-/* Define if you have the <sys/dir.h> header file. */
-#undef HAVE_SYS_DIR_H
-
-/* Define if you have the <sys/ndir.h> header file. */
-#undef HAVE_SYS_NDIR_H
-
-/* Define if you have the <sys/poll.h> header file. */
-#undef HAVE_SYS_POLL_H
-
-/* Define if you have the <termcap.h> header file. */
-#undef HAVE_TERMCAP_H
-
-/* Define if you have the <util.h> header file. */
-#undef HAVE_UTIL_H
-
-/* Define if you have the <vis.h> header file. */
-#undef HAVE_VIS_H
-
-/* Define if you have the nsl library (-lnsl). */
-#undef HAVE_LIBNSL
-
-/* Define if you have the socket library (-lsocket). */
-#undef HAVE_LIBSOCKET
-
-/* Define if you have the tinfo library (-ltinfo). */
-#undef HAVE_LIBTINFO
-
-/* Define if you have the util library (-lutil). */
-#undef HAVE_LIBUTIL
-
-/* Define if your compiler supports `long long' */
-#undef HAVE_LONG_LONG
-
-/* Define if *printf() uses %qd to print `long long' (otherwise uses %lld) */
-#undef HAVE_PRINTF_QD
-
-/* Define if in_port_t exists */
-#undef HAVE_IN_PORT_T
-
-/* Define if sa_family_t exists in <sys/socket.h> */
-#undef HAVE_SA_FAMILY_T
-
-/* Define if struct sockaddr.sa_len exists (implies sockaddr_in.sin_len, etc) */
-#undef HAVE_SOCKADDR_SA_LEN
-
-/* Define if socklen_t exists */
-#undef HAVE_SOCKLEN_T
-
-/* Define if AF_INET6 exists in <sys/socket.h> */
-#undef HAVE_AF_INET6
-
-/* Define if `struct sockaddr_in6' exists in <netinet/in.h> */
-#undef HAVE_SOCKADDR_IN6
-
-/* Define if `struct addrinfo' exists in <netdb.h> */
-#undef HAVE_ADDRINFO
-
-/*
- * Define if <netdb.h> contains AI_NUMERICHOST et al.
- * Systems which only implement RFC2133 will need this.
- */
-#undef HAVE_RFC2553_NETDB
-
-/* Define if `struct direct' has a d_namlen element */
-#undef HAVE_D_NAMLEN
-
-/* Define if h_errno exists in <netdb.h> */
-#undef HAVE_H_ERRNO_D
-
-/* Define if fclose() is declared in <stdio.h> */
-#undef HAVE_FCLOSE_D
-
-/* Define if getpass() is declared in <stdlib.h> or <unistd.h> */
-#undef HAVE_GETPASS_D
-
-/* Define if optarg is declared in <stdlib.h> or <unistd.h> */
-#undef HAVE_OPTARG_D
-
-/* Define if optind is declared in <stdlib.h> or <unistd.h> */
-#undef HAVE_OPTIND_D
-
-/* Define if pclose() is declared in <stdio.h> */
-#undef HAVE_PCLOSE_D
-
-/* Define if `long long' is supported and sizeof(off_t) >= 8 */
-#undef HAVE_QUAD_SUPPORT
-
-/* Define if strptime() is declared in <time.h> */
-#undef HAVE_STRPTIME_D
-
-/*
- * Define this if compiling with SOCKS (the firewall traversal library).
- * Also, you must define connect, getsockname, bind, accept, listen, and
- * select to their R-versions.
- */
-#undef SOCKS
-#undef SOCKS4
-#undef SOCKS5
-#undef connect
-#undef getsockname
-#undef bind
-#undef accept
-#undef listen
-#undef select
-#undef dup
-#undef dup2
-#undef fclose
-#undef gethostbyname
-#undef getpeername
-#undef read
-#undef recv
-#undef recvfrom
-#undef rresvport
-#undef send
-#undef sendto
-#undef shutdown
-#undef write
diff --git a/contrib/lukemftp/configure b/contrib/lukemftp/configure
deleted file mode 100755
index f759085c9eb7..000000000000
--- a/contrib/lukemftp/configure
+++ /dev/null
@@ -1,4229 +0,0 @@
-#! /bin/sh
-
-# From configure.in Revision: 1.37
-
-
-
-
-
-
-
-
-
-
-# Guess values for system-dependent variables and create Makefiles.
-# Generated automatically using autoconf version 2.13
-# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
-#
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-
-# Defaults:
-ac_help=
-ac_default_prefix=/usr/local
-# Any additions from configure.in:
-ac_help="$ac_help
-\
- --enable-editcomplete Turn on command line editing and completion.
- --disable-editcomplete Turn off command line editing and completion
- [default: enabled]."
-ac_help="$ac_help
-\
- --enable-ipv6 Enable IPv6 support (if your OS supports it).
- --disable-ipv6 Disable IPv6 support (even if your OS supports it)
- [default: enabled]."
-ac_help="$ac_help
- --with-socks Compile with SOCKS firewall traversal support."
-ac_help="$ac_help
- --with-socks5[=PATH] Compile with SOCKS5 firewall traversal support."
-ac_help="$ac_help
- --with-socks4[=PATH] Compile with SOCKS4 firewall traversal support."
-
-# Initialize some variables set by options.
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-build=NONE
-cache_file=./config.cache
-exec_prefix=NONE
-host=NONE
-no_create=
-nonopt=NONE
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-target=NONE
-verbose=
-x_includes=NONE
-x_libraries=NONE
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
-# Initialize some other variables.
-subdirs=
-MFLAGS= MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
-# Maximum number of lines to put in a shell here document.
-ac_max_here_lines=12
-
-ac_prev=
-for ac_option
-do
-
- # If the previous option needs an argument, assign it.
- if test -n "$ac_prev"; then
- eval "$ac_prev=\$ac_option"
- ac_prev=
- continue
- fi
-
- case "$ac_option" in
- -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
- *) ac_optarg= ;;
- esac
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case "$ac_option" in
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir="$ac_optarg" ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- build="$ac_optarg" ;;
-
- -cache-file | --cache-file | --cache-fil | --cache-fi \
- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
- ac_prev=cache_file ;;
- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
- cache_file="$ac_optarg" ;;
-
- -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
- ac_prev=datadir ;;
- -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
- | --da=*)
- datadir="$ac_optarg" ;;
-
- -disable-* | --disable-*)
- ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
- { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
- fi
- ac_feature=`echo $ac_feature| sed 's/-/_/g'`
- eval "enable_${ac_feature}=no" ;;
-
- -enable-* | --enable-*)
- ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
- { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
- fi
- ac_feature=`echo $ac_feature| sed 's/-/_/g'`
- case "$ac_option" in
- *=*) ;;
- *) ac_optarg=yes ;;
- esac
- eval "enable_${ac_feature}='$ac_optarg'" ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix="$ac_optarg" ;;
-
- -gas | --gas | --ga | --g)
- # Obsolete; use --with-gas.
- with_gas=yes ;;
-
- -help | --help | --hel | --he)
- # Omit some internal or obsolete options to make the list less imposing.
- # This message is too long to be a string in the A/UX 3.1 sh.
- cat << EOF
-Usage: configure [options] [host]
-Options: [defaults in brackets after descriptions]
-Configuration:
- --cache-file=FILE cache test results in FILE
- --help print this message
- --no-create do not create output files
- --quiet, --silent do not print \`checking...' messages
- --version print the version of autoconf that created configure
-Directory and file names:
- --prefix=PREFIX install architecture-independent files in PREFIX
- [$ac_default_prefix]
- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
- [same as prefix]
- --bindir=DIR user executables in DIR [EPREFIX/bin]
- --sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
- --libexecdir=DIR program executables in DIR [EPREFIX/libexec]
- --datadir=DIR read-only architecture-independent data in DIR
- [PREFIX/share]
- --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
- --sharedstatedir=DIR modifiable architecture-independent data in DIR
- [PREFIX/com]
- --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
- --libdir=DIR object code libraries in DIR [EPREFIX/lib]
- --includedir=DIR C header files in DIR [PREFIX/include]
- --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
- --infodir=DIR info documentation in DIR [PREFIX/info]
- --mandir=DIR man documentation in DIR [PREFIX/man]
- --srcdir=DIR find the sources in DIR [configure dir or ..]
- --program-prefix=PREFIX prepend PREFIX to installed program names
- --program-suffix=SUFFIX append SUFFIX to installed program names
- --program-transform-name=PROGRAM
- run sed PROGRAM on installed program names
-EOF
- cat << EOF
-Host type:
- --build=BUILD configure for building on BUILD [BUILD=HOST]
- --host=HOST configure for HOST [guessed]
- --target=TARGET configure for TARGET [TARGET=HOST]
-Features and packages:
- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
- --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
- --x-includes=DIR X include files are in DIR
- --x-libraries=DIR X library files are in DIR
-EOF
- if test -n "$ac_help"; then
- echo "--enable and --with options recognized:$ac_help"
- fi
- exit 0 ;;
-
- -host | --host | --hos | --ho)
- ac_prev=host ;;
- -host=* | --host=* | --hos=* | --ho=*)
- host="$ac_optarg" ;;
-
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
- | --includ=* | --inclu=* | --incl=* | --inc=*)
- includedir="$ac_optarg" ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir="$ac_optarg" ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir="$ac_optarg" ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir="$ac_optarg" ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst \
- | --locals | --local | --loca | --loc | --lo)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* \
- | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
- localstatedir="$ac_optarg" ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir="$ac_optarg" ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir="$ac_optarg" ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- prefix="$ac_optarg" ;;
-
- -program-prefix | --program-prefix | --program-prefi | --program-pref \
- | --program-pre | --program-pr | --program-p)
- ac_prev=program_prefix ;;
- -program-prefix=* | --program-prefix=* | --program-prefi=* \
- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
- program_prefix="$ac_optarg" ;;
-
- -program-suffix | --program-suffix | --program-suffi | --program-suff \
- | --program-suf | --program-su | --program-s)
- ac_prev=program_suffix ;;
- -program-suffix=* | --program-suffix=* | --program-suffi=* \
- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
- program_suffix="$ac_optarg" ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name="$ac_optarg" ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir="$ac_optarg" ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir="$ac_optarg" ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site="$ac_optarg" ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- srcdir="$ac_optarg" ;;
-
- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
- | --syscon | --sysco | --sysc | --sys | --sy)
- ac_prev=sysconfdir ;;
- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
- sysconfdir="$ac_optarg" ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target="$ac_optarg" ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers)
- echo "configure generated by autoconf version 2.13"
- exit 0 ;;
-
- -with-* | --with-*)
- ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
- { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
- fi
- ac_package=`echo $ac_package| sed 's/-/_/g'`
- case "$ac_option" in
- *=*) ;;
- *) ac_optarg=yes ;;
- esac
- eval "with_${ac_package}='$ac_optarg'" ;;
-
- -without-* | --without-*)
- ac_package=`echo $ac_option|sed -e 's/-*without-//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
- { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
- fi
- ac_package=`echo $ac_package| sed 's/-/_/g'`
- eval "with_${ac_package}=no" ;;
-
- --x)
- # Obsolete; use --with-x.
- with_x=yes ;;
-
- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
- | --x-incl | --x-inc | --x-in | --x-i)
- ac_prev=x_includes ;;
- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
- x_includes="$ac_optarg" ;;
-
- -x-libraries | --x-libraries | --x-librarie | --x-librari \
- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
- ac_prev=x_libraries ;;
- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
- x_libraries="$ac_optarg" ;;
-
- -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
- ;;
-
- *)
- if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
- echo "configure: warning: $ac_option: invalid host type" 1>&2
- fi
- if test "x$nonopt" != xNONE; then
- { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
- fi
- nonopt="$ac_option"
- ;;
-
- esac
-done
-
-if test -n "$ac_prev"; then
- { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
-fi
-
-trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
-
-# File descriptor usage:
-# 0 standard input
-# 1 file creation
-# 2 errors and warnings
-# 3 some systems may open it to /dev/tty
-# 4 used on the Kubota Titan
-# 6 checking for... messages and results
-# 5 compiler messages saved in config.log
-if test "$silent" = yes; then
- exec 6>/dev/null
-else
- exec 6>&1
-fi
-exec 5>./config.log
-
-echo "\
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-" 1>&5
-
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Also quote any args containing shell metacharacters.
-ac_configure_args=
-for ac_arg
-do
- case "$ac_arg" in
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c) ;;
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
- ac_configure_args="$ac_configure_args '$ac_arg'" ;;
- *) ac_configure_args="$ac_configure_args $ac_arg" ;;
- esac
-done
-
-# NLS nuisances.
-# Only set these to C if already set. These must not be set unconditionally
-# because not all systems understand e.g. LANG=C (notably SCO).
-# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
-# Non-C LC_CTYPE values break the ctype check.
-if test "${LANG+set}" = set; then LANG=C; export LANG; fi
-if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
-if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
-if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -rf conftest* confdefs.h
-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
-echo > confdefs.h
-
-# A filename unique to this package, relative to the directory that
-# configure is in, which we can look for to find out if srcdir is correct.
-ac_unique_file=lukemftp.h
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
- ac_srcdir_defaulted=yes
- # Try the directory containing this script, then its parent.
- ac_prog=$0
- ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
- test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
- srcdir=$ac_confdir
- if test ! -r $srcdir/$ac_unique_file; then
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-fi
-if test ! -r $srcdir/$ac_unique_file; then
- if test "$ac_srcdir_defaulted" = yes; then
- { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
- else
- { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
- fi
-fi
-srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
-
-# Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
- if test "x$prefix" != xNONE; then
- CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
- else
- CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
- fi
-fi
-for ac_site_file in $CONFIG_SITE; do
- if test -r "$ac_site_file"; then
- echo "loading site script $ac_site_file"
- . "$ac_site_file"
- fi
-done
-
-if test -r "$cache_file"; then
- echo "loading cache $cache_file"
- . $cache_file
-else
- echo "creating cache $cache_file"
- > $cache_file
-fi
-
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-ac_exeext=
-ac_objext=o
-if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
- # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
- if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
- ac_n= ac_c='
-' ac_t=' '
- else
- ac_n=-n ac_c= ac_t=
- fi
-else
- ac_n= ac_c='\c' ac_t=
-fi
-
-
-
-if test "$program_transform_name" = s,x,x,; then
- program_transform_name=
-else
- # Double any \ or $. echo might interpret backslashes.
- cat <<\EOF_SED > conftestsed
-s,\\,\\\\,g; s,\$,$$,g
-EOF_SED
- program_transform_name="`echo $program_transform_name|sed -f conftestsed`"
- rm -f conftestsed
-fi
-test "$program_prefix" != NONE &&
- program_transform_name="s,^,${program_prefix},; $program_transform_name"
-# Use a double $ so make ignores it.
-test "$program_suffix" != NONE &&
- program_transform_name="s,\$\$,${program_suffix},; $program_transform_name"
-
-# sed with no file args requires a program.
-test "$program_transform_name" = "" && program_transform_name="s,x,x,"
-
-# Check whether --enable-editcomplete or --disable-editcomplete was given.
-if test "${enable_editcomplete+set}" = set; then
- enableval="$enable_editcomplete"
- opt_editcomplete=$enableval
-else
- opt_editcomplete=yes
-fi
-
-# Check whether --enable-ipv6 or --disable-ipv6 was given.
-if test "${enable_ipv6+set}" = set; then
- enableval="$enable_ipv6"
- opt_ipv6=$enableval
-else
- opt_ipv6=yes
-fi
-
-
-echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:590: checking whether ${MAKE-make} sets \${MAKE}" >&5
-set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftestmake <<\EOF
-all:
- @echo 'ac_maketemp="${MAKE}"'
-EOF
-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=`
-if test -n "$ac_maketemp"; then
- eval ac_cv_prog_make_${ac_make}_set=yes
-else
- eval ac_cv_prog_make_${ac_make}_set=no
-fi
-rm -f conftestmake
-fi
-if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- SET_MAKE=
-else
- echo "$ac_t""no" 1>&6
- SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-# Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:619: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_CC="gcc"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:649: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_prog_rejected=no
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- break
- fi
- done
- IFS="$ac_save_ifs"
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# -gt 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- set dummy "$ac_dir/$ac_word" "$@"
- shift
- ac_cv_prog_CC="$@"
- fi
-fi
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
- if test -z "$CC"; then
- case "`uname -s`" in
- *win32* | *WIN32*)
- # Extract the first word of "cl", so it can be a program name with args.
-set dummy cl; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:700: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_CC="cl"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
- ;;
- esac
- fi
- test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
-fi
-
-echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:732: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
-
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-cat > conftest.$ac_ext << EOF
-
-#line 743 "configure"
-#include "confdefs.h"
-
-main(){return(0);}
-EOF
-if { (eval echo configure:748: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- ac_cv_prog_cc_works=yes
- # If we can't run a trivial program, we are probably using a cross compiler.
- if (./conftest; exit) 2>/dev/null; then
- ac_cv_prog_cc_cross=no
- else
- ac_cv_prog_cc_cross=yes
- fi
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- ac_cv_prog_cc_works=no
-fi
-rm -fr conftest*
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
-if test $ac_cv_prog_cc_works = no; then
- { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
-fi
-echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:774: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
-echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
-cross_compiling=$ac_cv_prog_cc_cross
-
-echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:779: checking whether we are using GNU C" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.c <<EOF
-#ifdef __GNUC__
- yes;
-#endif
-EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:788: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
- ac_cv_prog_gcc=yes
-else
- ac_cv_prog_gcc=no
-fi
-fi
-
-echo "$ac_t""$ac_cv_prog_gcc" 1>&6
-
-if test $ac_cv_prog_gcc = yes; then
- GCC=yes
-else
- GCC=
-fi
-
-ac_test_CFLAGS="${CFLAGS+set}"
-ac_save_CFLAGS="$CFLAGS"
-CFLAGS=
-echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:807: checking whether ${CC-cc} accepts -g" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- echo 'void f(){}' > conftest.c
-if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
- ac_cv_prog_cc_g=yes
-else
- ac_cv_prog_cc_g=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS="$ac_save_CFLAGS"
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-
-for ac_prog in mawk gawk nawk awk
-do
-# Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:843: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$AWK"; then
- ac_cv_prog_AWK="$AWK" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_AWK="$ac_prog"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-AWK="$ac_cv_prog_AWK"
-if test -n "$AWK"; then
- echo "$ac_t""$AWK" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-test -n "$AWK" && break
-done
-
-ac_aux_dir=
-for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
- if test -f $ac_dir/install-sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install-sh -c"
- break
- elif test -f $ac_dir/install.sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install.sh -c"
- break
- fi
-done
-if test -z "$ac_aux_dir"; then
- { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
-fi
-ac_config_guess=$ac_aux_dir/config.guess
-ac_config_sub=$ac_aux_dir/config.sub
-ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
-
-# Find a good install program. We prefer a C program (faster),
-# so one script is as good as another. But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# ./install, which can be erroneously created by make from ./install.sh.
-echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:903: checking for a BSD compatible install" >&5
-if test -z "$INSTALL"; then
-if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":"
- for ac_dir in $PATH; do
- # Account for people who put trailing slashes in PATH elements.
- case "$ac_dir/" in
- /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
- *)
- # OSF1 and SCO ODT 3.0 have their own names for install.
- # Don't use installbsd from OSF since it installs stuff as root
- # by default.
- for ac_prog in ginstall scoinst install; do
- if test -f $ac_dir/$ac_prog; then
- if test $ac_prog = install &&
- grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
- :
- else
- ac_cv_path_install="$ac_dir/$ac_prog -c"
- break 2
- fi
- fi
- done
- ;;
- esac
- done
- IFS="$ac_save_IFS"
-
-fi
- if test "${ac_cv_path_install+set}" = set; then
- INSTALL="$ac_cv_path_install"
- else
- # As a last resort, use the slow shell script. We don't cache a
- # path for INSTALL within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the path is relative.
- INSTALL="$ac_install_sh"
- fi
-fi
-echo "$ac_t""$INSTALL" 1>&6
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-# Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:958: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$RANLIB"; then
- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_RANLIB="ranlib"
- break
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
-fi
-fi
-RANLIB="$ac_cv_prog_RANLIB"
-if test -n "$RANLIB"; then
- echo "$ac_t""$RANLIB" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-for ac_prog in ar
-do
-# Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:990: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$AR"; then
- ac_cv_prog_AR="$AR" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_AR="$ac_prog"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-AR="$ac_cv_prog_AR"
-if test -n "$AR"; then
- echo "$ac_t""$AR" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-test -n "$AR" && break
-done
-
-echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:1020: checking how to run the C preprocessor" >&5
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
-if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- # This must be in double quotes, not single quotes, because CPP may get
- # substituted into the Makefile and "${CC-cc}" will confuse make.
- CPP="${CC-cc} -E"
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp.
- cat > conftest.$ac_ext <<EOF
-#line 1035 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1041: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- :
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CPP="${CC-cc} -E -traditional-cpp"
- cat > conftest.$ac_ext <<EOF
-#line 1052 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1058: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- :
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CPP="${CC-cc} -nologo -E"
- cat > conftest.$ac_ext <<EOF
-#line 1069 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1075: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- :
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CPP=/lib/cpp
-fi
-rm -f conftest*
-fi
-rm -f conftest*
-fi
-rm -f conftest*
- ac_cv_prog_CPP="$CPP"
-fi
- CPP="$ac_cv_prog_CPP"
-else
- ac_cv_prog_CPP="$CPP"
-fi
-echo "$ac_t""$CPP" 1>&6
-
-echo $ac_n "checking for AIX""... $ac_c" 1>&6
-echo "configure:1100: checking for AIX" >&5
-cat > conftest.$ac_ext <<EOF
-#line 1102 "configure"
-#include "confdefs.h"
-#ifdef _AIX
- yes
-#endif
-
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "yes" >/dev/null 2>&1; then
- rm -rf conftest*
- echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF
-#define _ALL_SOURCE 1
-EOF
-
-else
- rm -rf conftest*
- echo "$ac_t""no" 1>&6
-fi
-rm -f conftest*
-
-
-
-
-echo $ac_n "checking for fparseln in -lutil""... $ac_c" 1>&6
-echo "configure:1126: checking for fparseln in -lutil" >&5
-ac_lib_var=`echo util'_'fparseln | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lutil $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 1134 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char fparseln();
-
-int main() {
-fparseln()
-; return 0; }
-EOF
-if { (eval echo configure:1145: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_lib=HAVE_LIB`echo util | sed -e 's/[^a-zA-Z0-9_]/_/g' \
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- LIBS="-lutil $LIBS"
-
-else
- echo "$ac_t""no" 1>&6
-fi
-
-if test $opt_editcomplete = yes; then
- echo $ac_n "checking for tgetent in -ltinfo""... $ac_c" 1>&6
-echo "configure:1174: checking for tgetent in -ltinfo" >&5
-ac_lib_var=`echo tinfo'_'tgetent | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-ltinfo $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 1182 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char tgetent();
-
-int main() {
-tgetent()
-; return 0; }
-EOF
-if { (eval echo configure:1193: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_lib=HAVE_LIB`echo tinfo | sed -e 's/[^a-zA-Z0-9_]/_/g' \
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- LIBS="-ltinfo $LIBS"
-
-else
- echo "$ac_t""no" 1>&6
-echo $ac_n "checking for tgetent in -ltermcap""... $ac_c" 1>&6
-echo "configure:1219: checking for tgetent in -ltermcap" >&5
-ac_lib_var=`echo termcap'_'tgetent | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-ltermcap $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 1227 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char tgetent();
-
-int main() {
-tgetent()
-; return 0; }
-EOF
-if { (eval echo configure:1238: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_lib=HAVE_LIB`echo termcap | sed -e 's/^a-zA-Z0-9_/_/g' \
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- LIBS="-ltermcap $LIBS"
-
-else
- echo "$ac_t""no" 1>&6
-echo $ac_n "checking for tgetent in -lcurses""... $ac_c" 1>&6
-echo "configure:1264: checking for tgetent in -lcurses" >&5
-ac_lib_var=`echo curses'_'tgetent | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lcurses $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 1272 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char tgetent();
-
-int main() {
-tgetent()
-; return 0; }
-EOF
-if { (eval echo configure:1283: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_lib=HAVE_LIB`echo curses | sed -e 's/^a-zA-Z0-9_/_/g' \
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- LIBS="-lcurses $LIBS"
-
-else
- echo "$ac_t""no" 1>&6
-echo $ac_n "checking for tgetent in -lncurses""... $ac_c" 1>&6
-echo "configure:1309: checking for tgetent in -lncurses" >&5
-ac_lib_var=`echo ncurses'_'tgetent | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lncurses $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 1317 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char tgetent();
-
-int main() {
-tgetent()
-; return 0; }
-EOF
-if { (eval echo configure:1328: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_lib=HAVE_LIB`echo ncurses | sed -e 's/^a-zA-Z0-9_/_/g' \
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- LIBS="-lncurses $LIBS"
-
-else
- echo "$ac_t""no" 1>&6
-fi
-
-fi
-
-fi
-
-fi
-
-
-echo $ac_n "checking for library containing el_init""... $ac_c" 1>&6
-echo "configure:1363: checking for library containing el_init" >&5
-if eval "test \"`echo '$''{'ac_cv_search_el_init'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_func_search_save_LIBS="$LIBS"
-ac_cv_search_el_init="no"
-cat > conftest.$ac_ext <<EOF
-#line 1370 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char el_init();
-
-int main() {
-el_init()
-; return 0; }
-EOF
-if { (eval echo configure:1381: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- ac_cv_search_el_init="none required"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
-test "$ac_cv_search_el_init" = "no" && for i in edit; do
-LIBS="-l$i $ac_func_search_save_LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 1392 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char el_init();
-
-int main() {
-el_init()
-; return 0; }
-EOF
-if { (eval echo configure:1403: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- ac_cv_search_el_init="-l$i"
-break
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
-done
-LIBS="$ac_func_search_save_LIBS"
-fi
-
-echo "$ac_t""$ac_cv_search_el_init" 1>&6
-if test "$ac_cv_search_el_init" != "no"; then
- test "$ac_cv_search_el_init" = "none required" || LIBS="$ac_cv_search_el_init $LIBS"
- have_libedit=yes
-else :
- have_libedit=no
-fi
-fi
-
- # Most operating systems have gethostbyname() in the default searched
- # libraries (i.e. libc):
- echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6
-echo "configure:1428: checking for gethostbyname" >&5
-if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1433 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char gethostbyname(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char gethostbyname();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_gethostbyname) || defined (__stub___gethostbyname)
-choke me
-#else
-gethostbyname();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:1456: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_gethostbyname=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_gethostbyname=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'gethostbyname`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- :
-else
- echo "$ac_t""no" 1>&6
-# Some OSes (eg. Solaris) place it in libnsl:
- echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6
-echo "configure:1475: checking for gethostbyname in -lnsl" >&5
-ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lnsl $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 1483 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char gethostbyname();
-
-int main() {
-gethostbyname()
-; return 0; }
-EOF
-if { (eval echo configure:1494: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_lib=HAVE_LIB`echo nsl | sed -e 's/^a-zA-Z0-9_/_/g' \
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- LIBS="-lnsl $LIBS"
-
-else
- echo "$ac_t""no" 1>&6
-# Some strange OSes (SINIX) have it in libsocket:
- echo $ac_n "checking for gethostbyname in -lsocket""... $ac_c" 1>&6
-echo "configure:1521: checking for gethostbyname in -lsocket" >&5
-ac_lib_var=`echo socket'_'gethostbyname | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lsocket $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 1529 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char gethostbyname();
-
-int main() {
-gethostbyname()
-; return 0; }
-EOF
-if { (eval echo configure:1540: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_lib=HAVE_LIB`echo socket | sed -e 's/^a-zA-Z0-9_/_/g' \
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- LIBS="-lsocket $LIBS"
-
-else
- echo "$ac_t""no" 1>&6
-# Unfortunately libsocket sometimes depends on libnsl.
- # AC_CHECK_LIB's API is essentially broken so the following
- # ugliness is necessary:
- echo $ac_n "checking for gethostbyname in -lsocket""... $ac_c" 1>&6
-echo "configure:1569: checking for gethostbyname in -lsocket" >&5
-ac_lib_var=`echo socket'_'gethostbyname | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lsocket -lnsl $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 1577 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char gethostbyname();
-
-int main() {
-gethostbyname()
-; return 0; }
-EOF
-if { (eval echo configure:1588: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- LIBS="-lsocket -lnsl $LIBS"
-else
- echo "$ac_t""no" 1>&6
-echo $ac_n "checking for gethostbyname in -lresolv""... $ac_c" 1>&6
-echo "configure:1607: checking for gethostbyname in -lresolv" >&5
-ac_lib_var=`echo resolv'_'gethostbyname | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lresolv $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 1615 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char gethostbyname();
-
-int main() {
-gethostbyname()
-; return 0; }
-EOF
-if { (eval echo configure:1626: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_lib=HAVE_LIB`echo resolv | sed -e 's/^a-zA-Z0-9_/_/g' \
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- LIBS="-lresolv $LIBS"
-
-else
- echo "$ac_t""no" 1>&6
-fi
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
- echo $ac_n "checking for socket""... $ac_c" 1>&6
-echo "configure:1665: checking for socket" >&5
-if eval "test \"`echo '$''{'ac_cv_func_socket'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1670 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char socket(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char socket();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_socket) || defined (__stub___socket)
-choke me
-#else
-socket();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:1693: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_socket=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_socket=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'socket`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- :
-else
- echo "$ac_t""no" 1>&6
-echo $ac_n "checking for socket in -lsocket""... $ac_c" 1>&6
-echo "configure:1711: checking for socket in -lsocket" >&5
-ac_lib_var=`echo socket'_'socket | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lsocket $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 1719 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char socket();
-
-int main() {
-socket()
-; return 0; }
-EOF
-if { (eval echo configure:1730: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_lib=HAVE_LIB`echo socket | sed -e 's/^a-zA-Z0-9_/_/g' \
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- LIBS="-lsocket $LIBS"
-
-else
- echo "$ac_t""no" 1>&6
-echo $ac_n "checking for socket in -lsocket""... $ac_c" 1>&6
-echo "configure:1756: checking for socket in -lsocket" >&5
-ac_lib_var=`echo socket'_'socket | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lsocket -lnsl $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 1764 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char socket();
-
-int main() {
-socket()
-; return 0; }
-EOF
-if { (eval echo configure:1775: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- LIBS="-lsocket -lnsl $LIBS"
-else
- echo "$ac_t""no" 1>&6
-fi
-
-fi
-
-fi
-
-
-
- echo $ac_n "checking whether to support SOCKS""... $ac_c" 1>&6
-echo "configure:1802: checking whether to support SOCKS" >&5
- # Check whether --with-socks or --without-socks was given.
-if test "${with_socks+set}" = set; then
- withval="$with_socks"
-
- case "$withval" in
- no)
- echo "$ac_t""no" 1>&6
- ;;
- yes)
- echo "$ac_t""yes" 1>&6
- echo $ac_n "checking for SOCKSconnect in -lsocks5""... $ac_c" 1>&6
-echo "configure:1814: checking for SOCKSconnect in -lsocks5" >&5
-ac_lib_var=`echo socks5'_'SOCKSconnect | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lsocks5 $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 1822 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char SOCKSconnect();
-
-int main() {
-SOCKSconnect()
-; return 0; }
-EOF
-if { (eval echo configure:1833: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
-
- socks=5
- LIBS="-lsocks5 $LIBS"
-else
- echo "$ac_t""no" 1>&6
-
- echo $ac_n "checking for Rconnect in -lsocks""... $ac_c" 1>&6
-echo "configure:1855: checking for Rconnect in -lsocks" >&5
-ac_lib_var=`echo socks'_'Rconnect | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lsocks $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 1863 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char Rconnect();
-
-int main() {
-Rconnect()
-; return 0; }
-EOF
-if { (eval echo configure:1874: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
-
- socks=4
- LIBS="-lsocks $LIBS"
-else
- echo "$ac_t""no" 1>&6
-
- { echo "configure: error: Could not find socks library. You must first install socks." 1>&2; exit 1; }
-fi
-
-fi
-
- ;;
- esac
-
-else
- echo "$ac_t""no" 1>&6
-
-fi
-
-
- if test "x$socks" = "x"; then
- echo $ac_n "checking whether to support SOCKS5""... $ac_c" 1>&6
-echo "configure:1911: checking whether to support SOCKS5" >&5
- # Check whether --with-socks5 or --without-socks5 was given.
-if test "${with_socks5+set}" = set; then
- withval="$with_socks5"
-
- case "$withval" in
- no)
- echo "$ac_t""no" 1>&6
- ;;
- *)
- echo "$ac_t""yes" 1>&6
- socks=5
- if test "x$withval" = "xyes"; then
- withval="-lsocks5"
- else
- if test -d "$withval"; then
- if test -d "$withval/include"; then
- CFLAGS="$CFLAGS -I$withval/include"
- else
- CFLAGS="$CFLAGS -I$withval"
- fi
- if test -d "$withval/lib"; then
- withval="-L$withval/lib -lsocks5"
- else
- withval="-L$withval -lsocks5"
- fi
- fi
- fi
- LIBS="$withval $LIBS"
- # If Socks was compiled with Kerberos support, we will need
- # to link against kerberos libraries. Temporarily append
- # to LIBS. This is harmless if there is no kerberos support.
- TMPLIBS="$LIBS"
- LIBS="$LIBS $KERBEROS_LIBS"
- cat > conftest.$ac_ext <<EOF
-#line 1946 "configure"
-#include "confdefs.h"
-
-int main() {
- SOCKSconnect();
-; return 0; }
-EOF
-if { (eval echo configure:1953: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- :
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- { echo "configure: error: Could not find the $withval library. You must first install socks5." 1>&2; exit 1; }
-fi
-rm -f conftest*
- LIBS="$TMPLIBS"
- ;;
- esac
-
-else
- echo "$ac_t""no" 1>&6
-
-fi
-
- fi
-
- if test "x$socks" = "x"; then
- echo $ac_n "checking whether to support SOCKS4""... $ac_c" 1>&6
-echo "configure:1975: checking whether to support SOCKS4" >&5
- # Check whether --with-socks4 or --without-socks4 was given.
-if test "${with_socks4+set}" = set; then
- withval="$with_socks4"
-
- case "$withval" in
- no)
- echo "$ac_t""no" 1>&6
- ;;
- *)
- echo "$ac_t""yes" 1>&6
- socks=4
- if test "x$withval" = "xyes"; then
- withval="-lsocks"
- else
- if test -d "$withval"; then
- withval="-L$withval -lsocks"
- fi
- fi
- LIBS="$withval $LIBS"
- cat > conftest.$ac_ext <<EOF
-#line 1996 "configure"
-#include "confdefs.h"
-
-int main() {
- Rconnect();
-; return 0; }
-EOF
-if { (eval echo configure:2003: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- :
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- { echo "configure: error: Could not find the $withval library. You must first install socks." 1>&2; exit 1; }
-fi
-rm -f conftest*
- ;;
- esac
-
-else
- echo "$ac_t""no" 1>&6
-
-fi
-
- fi
-
- if test "x$socks" = "x4"; then
- cat >> confdefs.h <<\EOF
-#define SOCKS 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define SOCKS4 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define connect Rconnect
-EOF
-
- cat >> confdefs.h <<\EOF
-#define getsockname Rgetsockname
-EOF
-
- cat >> confdefs.h <<\EOF
-#define bind Rbind
-EOF
-
- cat >> confdefs.h <<\EOF
-#define accept Raccept
-EOF
-
- cat >> confdefs.h <<\EOF
-#define listen Rlisten
-EOF
-
- cat >> confdefs.h <<\EOF
-#define select Rselect
-EOF
-
- fi
-
- if test "x$socks" = "x5"; then
- cat >> confdefs.h <<\EOF
-#define SOCKS 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define SOCKS5 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define connect SOCKSconnect
-EOF
-
- cat >> confdefs.h <<\EOF
-#define getsockname SOCKSgetsockname
-EOF
-
- cat >> confdefs.h <<\EOF
-#define getpeername SOCKSgetpeername
-EOF
-
- cat >> confdefs.h <<\EOF
-#define bind SOCKSbind
-EOF
-
- cat >> confdefs.h <<\EOF
-#define accept SOCKSaccept
-EOF
-
- cat >> confdefs.h <<\EOF
-#define listen SOCKSlisten
-EOF
-
- cat >> confdefs.h <<\EOF
-#define select SOCKSselect
-EOF
-
- cat >> confdefs.h <<\EOF
-#define recvfrom SOCKSrecvfrom
-EOF
-
- cat >> confdefs.h <<\EOF
-#define sendto SOCKSsendto
-EOF
-
- cat >> confdefs.h <<\EOF
-#define recv SOCKSrecv
-EOF
-
- cat >> confdefs.h <<\EOF
-#define send SOCKSsend
-EOF
-
- cat >> confdefs.h <<\EOF
-#define read SOCKSread
-EOF
-
- cat >> confdefs.h <<\EOF
-#define write SOCKSwrite
-EOF
-
- cat >> confdefs.h <<\EOF
-#define rresvport SOCKSrresvport
-EOF
-
- cat >> confdefs.h <<\EOF
-#define shutdown SOCKSshutdown
-EOF
-
- cat >> confdefs.h <<\EOF
-#define listen SOCKSlisten
-EOF
-
- cat >> confdefs.h <<\EOF
-#define close SOCKSclose
-EOF
-
- cat >> confdefs.h <<\EOF
-#define dup SOCKSdup
-EOF
-
- cat >> confdefs.h <<\EOF
-#define dup2 SOCKSdup2
-EOF
-
- cat >> confdefs.h <<\EOF
-#define fclose SOCKSfclose
-EOF
-
- cat >> confdefs.h <<\EOF
-#define gethostbyname SOCKSgethostbyname
-EOF
-
- fi
-
-if test -n "$socks"; then
- if test $opt_ipv6 = yes; then
- echo "IPv6 is incompatible with socks, disabling IPv6 support"
- opt_ipv6=no
- fi
-fi
-
-
-
-ac_header_dirent=no
-for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6
-echo "configure:2166: checking for $ac_hdr that defines DIR" >&5
-if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 2171 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <$ac_hdr>
-int main() {
-DIR *dirp = 0;
-; return 0; }
-EOF
-if { (eval echo configure:2179: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_header_dirent_$ac_safe=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_header_dirent_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_dirent_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
- ac_header_dirent=$ac_hdr; break
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
-if test $ac_header_dirent = dirent.h; then
-echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6
-echo "configure:2204: checking for opendir in -ldir" >&5
-ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-ldir $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 2212 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char opendir();
-
-int main() {
-opendir()
-; return 0; }
-EOF
-if { (eval echo configure:2223: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- LIBS="$LIBS -ldir"
-else
- echo "$ac_t""no" 1>&6
-fi
-
-else
-echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6
-echo "configure:2245: checking for opendir in -lx" >&5
-ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lx $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 2253 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char opendir();
-
-int main() {
-opendir()
-; return 0; }
-EOF
-if { (eval echo configure:2264: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- LIBS="$LIBS -lx"
-else
- echo "$ac_t""no" 1>&6
-fi
-
-fi
-
-echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:2287: checking for ANSI C header files" >&5
-if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 2292 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2300: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- rm -rf conftest*
- ac_cv_header_stdc=yes
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-cat > conftest.$ac_ext <<EOF
-#line 2317 "configure"
-#include "confdefs.h"
-#include <string.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "memchr" >/dev/null 2>&1; then
- :
-else
- rm -rf conftest*
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-cat > conftest.$ac_ext <<EOF
-#line 2335 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "free" >/dev/null 2>&1; then
- :
-else
- rm -rf conftest*
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-if test "$cross_compiling" = yes; then
- :
-else
- cat > conftest.$ac_ext <<EOF
-#line 2356 "configure"
-#include "confdefs.h"
-#include <ctype.h>
-#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int main () { int i; for (i = 0; i < 256; i++)
-if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
-exit (0); }
-
-EOF
-if { (eval echo configure:2367: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- :
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_header_stdc=no
-fi
-rm -fr conftest*
-fi
-
-fi
-fi
-
-echo "$ac_t""$ac_cv_header_stdc" 1>&6
-if test $ac_cv_header_stdc = yes; then
- cat >> confdefs.h <<\EOF
-#define STDC_HEADERS 1
-EOF
-
-fi
-
-for ac_hdr in arpa/nameser.h err.h regex.h paths.h poll.h sys/poll.h \
- termcap.h util.h libutil.h vis.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2395: checking for $ac_hdr" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 2400 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2405: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-
-
-echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-echo "configure:2434: checking whether time.h and sys/time.h may both be included" >&5
-if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 2439 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/time.h>
-#include <time.h>
-int main() {
-struct tm *tp;
-; return 0; }
-EOF
-if { (eval echo configure:2448: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_header_time=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_header_time=no
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_header_time" 1>&6
-if test $ac_cv_header_time = yes; then
- cat >> confdefs.h <<\EOF
-#define TIME_WITH_SYS_TIME 1
-EOF
-
-fi
-
-echo $ac_n "checking for off_t""... $ac_c" 1>&6
-echo "configure:2469: checking for off_t" >&5
-if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 2474 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#if STDC_HEADERS
-#include <stdlib.h>
-#include <stddef.h>
-#endif
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "(^|[^a-zA-Z_0-9])off_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
- rm -rf conftest*
- ac_cv_type_off_t=yes
-else
- rm -rf conftest*
- ac_cv_type_off_t=no
-fi
-rm -f conftest*
-
-fi
-echo "$ac_t""$ac_cv_type_off_t" 1>&6
-if test $ac_cv_type_off_t = no; then
- cat >> confdefs.h <<\EOF
-#define off_t long
-EOF
-
-fi
-
-echo $ac_n "checking size of off_t""... $ac_c" 1>&6
-echo "configure:2502: checking size of off_t" >&5
-if eval "test \"`echo '$''{'ac_cv_sizeof_off_t'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$cross_compiling" = yes; then
- ac_cv_sizeof_off_t=0
-else
- cat > conftest.$ac_ext <<EOF
-#line 2510 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-main()
-{
- FILE *f=fopen("conftestval", "w");
- if (!f) exit(1);
- fprintf(f, "%d\n", sizeof(off_t));
- exit(0);
-}
-EOF
-if { (eval echo configure:2521: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- ac_cv_sizeof_off_t=`cat conftestval`
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_sizeof_off_t=0
-fi
-rm -fr conftest*
-fi
-
-fi
-echo "$ac_t""$ac_cv_sizeof_off_t" 1>&6
-cat >> confdefs.h <<EOF
-#define SIZEOF_OFF_T $ac_cv_sizeof_off_t
-EOF
-
-
-
- echo $ac_n "checking for long long""... $ac_c" 1>&6
-echo "configure:2542: checking for long long" >&5
-if eval "test \"`echo '$''{'ftp_cv_HAVE_LONG_LONG'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
- cat > conftest.$ac_ext <<EOF
-#line 2548 "configure"
-#include "confdefs.h"
-
-#include <sys/types.h>
-int main() {
-
-long long X = 2, Y = 1, Z;
-Z = X / Y; ;
-; return 0; }
-EOF
-if { (eval echo configure:2558: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- ftp_cv_HAVE_LONG_LONG=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ftp_cv_HAVE_LONG_LONG=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ftp_cv_HAVE_LONG_LONG" 1>&6
- if test "x$ftp_cv_HAVE_LONG_LONG" = "xyes"; then
-
-cat >> confdefs.h <<\EOF
-#define HAVE_LONG_LONG 1
-EOF
-
-have_long_long=yes
- else
- have_long_long=no
- :
- fi
-
-
-
- echo $ac_n "checking for in_port_t""... $ac_c" 1>&6
-echo "configure:2587: checking for in_port_t" >&5
-if eval "test \"`echo '$''{'ftp_cv_HAVE_IN_PORT_T'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
- cat > conftest.$ac_ext <<EOF
-#line 2593 "configure"
-#include "confdefs.h"
-
-#include <sys/types.h>
-#include <netinet/in.h>
-int main() {
- in_port_t X ;
-; return 0; }
-EOF
-if { (eval echo configure:2602: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ftp_cv_HAVE_IN_PORT_T=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ftp_cv_HAVE_IN_PORT_T=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ftp_cv_HAVE_IN_PORT_T" 1>&6
- if test "x$ftp_cv_HAVE_IN_PORT_T" = "xyes"; then
- cat >> confdefs.h <<\EOF
-#define HAVE_IN_PORT_T 1
-EOF
-
- else
-
- :
- fi
-
-
-
- echo $ac_n "checking for sa_family_t""... $ac_c" 1>&6
-echo "configure:2629: checking for sa_family_t" >&5
-if eval "test \"`echo '$''{'ftp_cv_HAVE_SA_FAMILY_T'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
- cat > conftest.$ac_ext <<EOF
-#line 2635 "configure"
-#include "confdefs.h"
-
-#include <sys/types.h>
-#include <sys/socket.h>
-int main() {
- sa_family_t X ;
-; return 0; }
-EOF
-if { (eval echo configure:2644: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ftp_cv_HAVE_SA_FAMILY_T=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ftp_cv_HAVE_SA_FAMILY_T=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ftp_cv_HAVE_SA_FAMILY_T" 1>&6
- if test "x$ftp_cv_HAVE_SA_FAMILY_T" = "xyes"; then
- cat >> confdefs.h <<\EOF
-#define HAVE_SA_FAMILY_T 1
-EOF
-
- else
-
- :
- fi
-
-
-
- echo $ac_n "checking for sockaddr_in.sin_len""... $ac_c" 1>&6
-echo "configure:2671: checking for sockaddr_in.sin_len" >&5
-if eval "test \"`echo '$''{'ftp_cv_HAVE_SOCKADDR_SA_LEN'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
- cat > conftest.$ac_ext <<EOF
-#line 2677 "configure"
-#include "confdefs.h"
-
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-int main() {
-
- struct sockaddr_in sin;
- int X = sin.sin_len ;
-; return 0; }
-EOF
-if { (eval echo configure:2689: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ftp_cv_HAVE_SOCKADDR_SA_LEN=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ftp_cv_HAVE_SOCKADDR_SA_LEN=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ftp_cv_HAVE_SOCKADDR_SA_LEN" 1>&6
- if test "x$ftp_cv_HAVE_SOCKADDR_SA_LEN" = "xyes"; then
- cat >> confdefs.h <<\EOF
-#define HAVE_SOCKADDR_SA_LEN 1
-EOF
-
- else
-
- :
- fi
-
-
-
- echo $ac_n "checking for socklen_t""... $ac_c" 1>&6
-echo "configure:2716: checking for socklen_t" >&5
-if eval "test \"`echo '$''{'ftp_cv_HAVE_SOCKLEN_T'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
- cat > conftest.$ac_ext <<EOF
-#line 2722 "configure"
-#include "confdefs.h"
-
-#include <sys/types.h>
-#include <sys/socket.h>
-int main() {
- socklen_t X ;
-; return 0; }
-EOF
-if { (eval echo configure:2731: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ftp_cv_HAVE_SOCKLEN_T=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ftp_cv_HAVE_SOCKLEN_T=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ftp_cv_HAVE_SOCKLEN_T" 1>&6
- if test "x$ftp_cv_HAVE_SOCKLEN_T" = "xyes"; then
- cat >> confdefs.h <<\EOF
-#define HAVE_SOCKLEN_T 1
-EOF
-
- else
-
- :
- fi
-
-
-if test $opt_ipv6 = yes; then
-
-
- echo $ac_n "checking for AF_INET6""... $ac_c" 1>&6
-echo "configure:2760: checking for AF_INET6" >&5
-if eval "test \"`echo '$''{'ftp_cv_HAVE_AF_INET6'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
- cat > conftest.$ac_ext <<EOF
-#line 2766 "configure"
-#include "confdefs.h"
-
-#include <sys/types.h>
-#include <sys/socket.h>
-int main() {
- int X = AF_INET6 ;
-; return 0; }
-EOF
-if { (eval echo configure:2775: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ftp_cv_HAVE_AF_INET6=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ftp_cv_HAVE_AF_INET6=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ftp_cv_HAVE_AF_INET6" 1>&6
- if test "x$ftp_cv_HAVE_AF_INET6" = "xyes"; then
- cat >> confdefs.h <<\EOF
-#define HAVE_AF_INET6 1
-EOF
-
- else
-
- :
- fi
-
-
-
- echo $ac_n "checking for struct sockaddr_in6""... $ac_c" 1>&6
-echo "configure:2802: checking for struct sockaddr_in6" >&5
-if eval "test \"`echo '$''{'ftp_cv_HAVE_SOCKADDR_IN6'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
- cat > conftest.$ac_ext <<EOF
-#line 2808 "configure"
-#include "confdefs.h"
-
-#include <sys/types.h>
-#include <netinet/in.h>
-int main() {
- struct sockaddr_in6 X ;
-; return 0; }
-EOF
-if { (eval echo configure:2817: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ftp_cv_HAVE_SOCKADDR_IN6=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ftp_cv_HAVE_SOCKADDR_IN6=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ftp_cv_HAVE_SOCKADDR_IN6" 1>&6
- if test "x$ftp_cv_HAVE_SOCKADDR_IN6" = "xyes"; then
- cat >> confdefs.h <<\EOF
-#define HAVE_SOCKADDR_IN6 1
-EOF
-
- else
-
- :
- fi
-
-
-fi
-
-
- echo $ac_n "checking for struct addrinfo""... $ac_c" 1>&6
-echo "configure:2846: checking for struct addrinfo" >&5
-if eval "test \"`echo '$''{'ftp_cv_HAVE_ADDRINFO'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
- cat > conftest.$ac_ext <<EOF
-#line 2852 "configure"
-#include "confdefs.h"
-
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netdb.h>
-int main() {
- struct addrinfo X ;
-; return 0; }
-EOF
-if { (eval echo configure:2862: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ftp_cv_HAVE_ADDRINFO=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ftp_cv_HAVE_ADDRINFO=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ftp_cv_HAVE_ADDRINFO" 1>&6
- if test "x$ftp_cv_HAVE_ADDRINFO" = "xyes"; then
- cat >> confdefs.h <<\EOF
-#define HAVE_ADDRINFO 1
-EOF
-
- else
-
- :
- fi
-
-
-
- echo $ac_n "checking for d_namlen in struct dirent""... $ac_c" 1>&6
-echo "configure:2889: checking for d_namlen in struct dirent" >&5
-if eval "test \"`echo '$''{'ftp_cv_HAVE_D_NAMLEN'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
- cat > conftest.$ac_ext <<EOF
-#line 2895 "configure"
-#include "confdefs.h"
-
-#if HAVE_DIRENT_H
-# include <dirent.h>
-#else
-# define dirent direct
-# if HAVE_SYS_NDIR_H
-# include <sys/ndir.h>
-# endif
-# if HAVE_SYS_DIR_H
-# include <sys/dir.h>
-# endif
-# if HAVE_NDIR_H
-# include <ndir.h>
-# endif
-#endif
-int main() {
-
- struct dirent dp;
- int X = dp.d_namlen; ;
-; return 0; }
-EOF
-if { (eval echo configure:2918: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ftp_cv_HAVE_D_NAMLEN=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ftp_cv_HAVE_D_NAMLEN=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ftp_cv_HAVE_D_NAMLEN" 1>&6
- if test "x$ftp_cv_HAVE_D_NAMLEN" = "xyes"; then
- cat >> confdefs.h <<\EOF
-#define HAVE_D_NAMLEN 1
-EOF
-
- else
-
- :
- fi
-
-
-
- echo $ac_n "checking for h_errno declaration""... $ac_c" 1>&6
-echo "configure:2945: checking for h_errno declaration" >&5
-if eval "test \"`echo '$''{'ftp_cv_HAVE_H_ERRNO_D'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
- cat > conftest.$ac_ext <<EOF
-#line 2951 "configure"
-#include "confdefs.h"
-
-#include <netdb.h>
-int main() {
- int X = h_errno ;
-; return 0; }
-EOF
-if { (eval echo configure:2959: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ftp_cv_HAVE_H_ERRNO_D=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ftp_cv_HAVE_H_ERRNO_D=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ftp_cv_HAVE_H_ERRNO_D" 1>&6
- if test "x$ftp_cv_HAVE_H_ERRNO_D" = "xyes"; then
- cat >> confdefs.h <<\EOF
-#define HAVE_H_ERRNO_D 1
-EOF
-
- else
-
- :
- fi
-
-
-
- echo $ac_n "checking for fclose() declaration""... $ac_c" 1>&6
-echo "configure:2986: checking for fclose() declaration" >&5
-if eval "test \"`echo '$''{'ftp_cv_HAVE_FCLOSE_D'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
- cat > conftest.$ac_ext <<EOF
-#line 2992 "configure"
-#include "confdefs.h"
-
-#include <stdio.h>
-int main() {
- int (*X)() = fclose ;
-; return 0; }
-EOF
-if { (eval echo configure:3000: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ftp_cv_HAVE_FCLOSE_D=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ftp_cv_HAVE_FCLOSE_D=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ftp_cv_HAVE_FCLOSE_D" 1>&6
- if test "x$ftp_cv_HAVE_FCLOSE_D" = "xyes"; then
- cat >> confdefs.h <<\EOF
-#define HAVE_FCLOSE_D 1
-EOF
-
- else
-
- :
- fi
-
-
-
- echo $ac_n "checking for getpass() declaration""... $ac_c" 1>&6
-echo "configure:3027: checking for getpass() declaration" >&5
-if eval "test \"`echo '$''{'ftp_cv_HAVE_GETPASS_D'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
- cat > conftest.$ac_ext <<EOF
-#line 3033 "configure"
-#include "confdefs.h"
-
-#include <stdlib.h>
-#include <unistd.h>
-int main() {
- char *(*X)() = getpass ;
-; return 0; }
-EOF
-if { (eval echo configure:3042: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ftp_cv_HAVE_GETPASS_D=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ftp_cv_HAVE_GETPASS_D=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ftp_cv_HAVE_GETPASS_D" 1>&6
- if test "x$ftp_cv_HAVE_GETPASS_D" = "xyes"; then
-
- cat >> confdefs.h <<\EOF
-#define HAVE_GETPASS_D 1
-EOF
-
- else
-
- :
- fi
-
-
-
- echo $ac_n "checking for optarg declaration""... $ac_c" 1>&6
-echo "configure:3070: checking for optarg declaration" >&5
-if eval "test \"`echo '$''{'ftp_cv_HAVE_OPTARG_D'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
- cat > conftest.$ac_ext <<EOF
-#line 3076 "configure"
-#include "confdefs.h"
-
-#include <stdlib.h>
-#include <unistd.h>
-int main() {
- char *X = optarg ;
-; return 0; }
-EOF
-if { (eval echo configure:3085: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ftp_cv_HAVE_OPTARG_D=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ftp_cv_HAVE_OPTARG_D=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ftp_cv_HAVE_OPTARG_D" 1>&6
- if test "x$ftp_cv_HAVE_OPTARG_D" = "xyes"; then
- cat >> confdefs.h <<\EOF
-#define HAVE_OPTARG_D 1
-EOF
-
- else
-
- :
- fi
-
-
-
- echo $ac_n "checking for optind declaration""... $ac_c" 1>&6
-echo "configure:3112: checking for optind declaration" >&5
-if eval "test \"`echo '$''{'ftp_cv_HAVE_OPTIND_D'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
- cat > conftest.$ac_ext <<EOF
-#line 3118 "configure"
-#include "confdefs.h"
-
-#include <stdlib.h>
-#include <unistd.h>
-int main() {
- int X = optind ;
-; return 0; }
-EOF
-if { (eval echo configure:3127: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ftp_cv_HAVE_OPTIND_D=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ftp_cv_HAVE_OPTIND_D=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ftp_cv_HAVE_OPTIND_D" 1>&6
- if test "x$ftp_cv_HAVE_OPTIND_D" = "xyes"; then
- cat >> confdefs.h <<\EOF
-#define HAVE_OPTIND_D 1
-EOF
-
- else
-
- :
- fi
-
-
-
- echo $ac_n "checking for pclose() declaration""... $ac_c" 1>&6
-echo "configure:3154: checking for pclose() declaration" >&5
-if eval "test \"`echo '$''{'ftp_cv_HAVE_PCLOSE_D'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
- cat > conftest.$ac_ext <<EOF
-#line 3160 "configure"
-#include "confdefs.h"
-
-#include <stdio.h>
-int main() {
- int (*X)() = pclose ;
-; return 0; }
-EOF
-if { (eval echo configure:3168: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ftp_cv_HAVE_PCLOSE_D=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ftp_cv_HAVE_PCLOSE_D=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ftp_cv_HAVE_PCLOSE_D" 1>&6
- if test "x$ftp_cv_HAVE_PCLOSE_D" = "xyes"; then
- cat >> confdefs.h <<\EOF
-#define HAVE_PCLOSE_D 1
-EOF
-
- else
-
- :
- fi
-
-
-
-for ac_func in err fgetln fseeko getaddrinfo getnameinfo inet_ntop inet_pton \
- mkstemp setprogname sl_init snprintf strdup strerror strlcat \
- strlcpy strptime strsep strunvis strvis timegm usleep
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3199: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 3204 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:3227: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-LIBOBJS="$LIBOBJS ${ac_func}.${ac_objext}"
-fi
-done
-
-
-for ac_func in gethostbyname2 getpassphrase getpgrp memmove poll select
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3256: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 3261 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:3284: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-if test $ac_cv_func_getpgrp = yes; then
- echo $ac_n "checking whether getpgrp takes no argument""... $ac_c" 1>&6
-echo "configure:3310: checking whether getpgrp takes no argument" >&5
-if eval "test \"`echo '$''{'ac_cv_func_getpgrp_void'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$cross_compiling" = yes; then
- { echo "configure: error: cannot check getpgrp if cross compiling" 1>&2; exit 1; }
-else
- cat > conftest.$ac_ext <<EOF
-#line 3318 "configure"
-#include "confdefs.h"
-
-/*
- * If this system has a BSD-style getpgrp(),
- * which takes a pid argument, exit unsuccessfully.
- *
- * Snarfed from Chet Ramey's bash pgrp.c test program
- */
-#include <stdio.h>
-#include <sys/types.h>
-
-int pid;
-int pg1, pg2, pg3, pg4;
-int ng, np, s, child;
-
-main()
-{
- pid = getpid();
- pg1 = getpgrp(0);
- pg2 = getpgrp();
- pg3 = getpgrp(pid);
- pg4 = getpgrp(1);
-
- /*
- * If all of these values are the same, it's pretty sure that
- * we're on a system that ignores getpgrp's first argument.
- */
- if (pg2 == pg4 && pg1 == pg3 && pg2 == pg3)
- exit(0);
-
- child = fork();
- if (child < 0)
- exit(1);
- else if (child == 0) {
- np = getpid();
- /*
- * If this is Sys V, this will not work; pgrp will be
- * set to np because setpgrp just changes a pgrp to be
- * the same as the pid.
- */
- setpgrp(np, pg1);
- ng = getpgrp(0); /* Same result for Sys V and BSD */
- if (ng == pg1) {
- exit(1);
- } else {
- exit(0);
- }
- } else {
- wait(&s);
- exit(s>>8);
- }
-}
-
-EOF
-if { (eval echo configure:3373: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- ac_cv_func_getpgrp_void=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_func_getpgrp_void=no
-fi
-rm -fr conftest*
-fi
-
-
-fi
-
-echo "$ac_t""$ac_cv_func_getpgrp_void" 1>&6
-if test $ac_cv_func_getpgrp_void = yes; then
- cat >> confdefs.h <<\EOF
-#define GETPGRP_VOID 1
-EOF
-
-fi
-
-fi
-if test $ac_cv_lib_util_fparseln != yes; then
- for ac_func in fparseln
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3401: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 3406 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:3429: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-LIBOBJS="$LIBOBJS ${ac_func}.${ac_objext}"
-fi
-done
-
-
-fi
-
-LIBOBJS="$LIBOBJS glob.o"
-
-if test $ac_cv_func_strptime = yes; then
-
- echo $ac_n "checking for strptime() declaration""... $ac_c" 1>&6
-echo "configure:3462: checking for strptime() declaration" >&5
-if eval "test \"`echo '$''{'ftp_cv_HAVE_STRPTIME_D'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
- cat > conftest.$ac_ext <<EOF
-#line 3468 "configure"
-#include "confdefs.h"
-
- #include <time.h>
-int main() {
- char *X = strptime("", "", NULL) ;
-; return 0; }
-EOF
-if { (eval echo configure:3476: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ftp_cv_HAVE_STRPTIME_D=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ftp_cv_HAVE_STRPTIME_D=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ftp_cv_HAVE_STRPTIME_D" 1>&6
- if test "x$ftp_cv_HAVE_STRPTIME_D" = "xyes"; then
- cat >> confdefs.h <<\EOF
-#define HAVE_STRPTIME_D 1
-EOF
-
- else
-
- :
- fi
-
-fi
-
-if test $have_long_long = yes -a $ac_cv_sizeof_off_t -ge 8; then
-
-
- echo $ac_n "checking *printf() support for %lld""... $ac_c" 1>&6
-echo "configure:3506: checking *printf() support for %lld" >&5
- can_printf_longlong=no
- if test "$cross_compiling" = yes; then
- :
-else
- cat > conftest.$ac_ext <<EOF
-#line 3512 "configure"
-#include "confdefs.h"
-
- #include <stdio.h>
- int main() {
- char buf[100];
- sprintf(buf, "%lld", 4294967300LL);
- return (strcmp(buf, "4294967300"));
- }
-
-EOF
-if { (eval echo configure:3523: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
-
- echo "$ac_t""yes" 1>&6
- can_printf_longlong=yes
-
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
-
- echo "$ac_t""no" 1>&6
-
-fi
-rm -fr conftest*
-fi
-
-
- if test $can_printf_longlong != yes; then
- echo $ac_n "checking *printf() support for %qd""... $ac_c" 1>&6
-echo "configure:3543: checking *printf() support for %qd" >&5
- if test "$cross_compiling" = yes; then
- :
-else
- cat > conftest.$ac_ext <<EOF
-#line 3548 "configure"
-#include "confdefs.h"
-
- #include <stdio.h>
- int main() {
- char buf[100];
- sprintf(buf, "%qd", 4294967300LL);
- return (strcmp(buf, "4294967300"));
- }
-
-EOF
-if { (eval echo configure:3559: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
-
- echo "$ac_t""yes" 1>&6
- can_printf_longlong=yes
- cat >> confdefs.h <<\EOF
-#define HAVE_PRINTF_QD 1
-EOF
-
-
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
-
- echo "$ac_t""no" 1>&6
-
-fi
-rm -fr conftest*
-fi
-
- fi
-
- if test $can_printf_longlong = yes; then
- cat >> confdefs.h <<\EOF
-#define HAVE_QUAD_SUPPORT 1
-EOF
-
- for ac_func in strtoll
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3590: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 3595 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:3618: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-LIBOBJS="$LIBOBJS ${ac_func}.${ac_objext}"
-fi
-done
-
-
- fi
-
-fi
-
-
-if test $opt_editcomplete = yes; then
- if test $have_libedit = yes; then
-
- echo $ac_n "checking for EL_RPROMPT in libedit""... $ac_c" 1>&6
-echo "configure:3653: checking for EL_RPROMPT in libedit" >&5
-if eval "test \"`echo '$''{'ftp_cv_have_libedit'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
- cat > conftest.$ac_ext <<EOF
-#line 3659 "configure"
-#include "confdefs.h"
-
- #include <histedit.h>
-int main() {
- int X = EL_RPROMPT ;
-; return 0; }
-EOF
-if { (eval echo configure:3667: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ftp_cv_have_libedit=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ftp_cv_have_libedit=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ftp_cv_have_libedit" 1>&6
- if test "x$ftp_cv_have_libedit" = "xyes"; then
- :
- else
- have_libedit=no
- :
- fi
-
- fi
-
- echo $ac_n "checking for working libedit""... $ac_c" 1>&6
-echo "configure:3691: checking for working libedit" >&5
- if test $have_libedit = no; then
- echo "$ac_t""no - using my own" 1>&6
- INCLUDES="-I\${srcdir}/../libedit $INCLUDES"
- LDFLAGS="-L../libedit $LDFLAGS"
- LIBS="-ledit $LIBS"
- LIBEDIT=libedit.a
- LIBDEPENDS="$LIBDEPENDS ../libedit/libedit.a"
- else
- echo "$ac_t""yes" 1>&6
- fi
-else
- CFLAGS="-DNO_EDITCOMPLETE $CFLAGS"
-fi
-
-if test $ac_cv_func_sl_init = yes; then
-
- echo $ac_n "checking if sl_add() returns int""... $ac_c" 1>&6
-echo "configure:3709: checking if sl_add() returns int" >&5
-if eval "test \"`echo '$''{'ftp_cv_INT_SL_ADD'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
- cat > conftest.$ac_ext <<EOF
-#line 3715 "configure"
-#include "confdefs.h"
-
- #include <stringlist.h>
-int main() {
- int f = sl_add((StringList *)0, "foo") ;
-; return 0; }
-EOF
-if { (eval echo configure:3723: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ftp_cv_INT_SL_ADD=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ftp_cv_INT_SL_ADD=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ftp_cv_INT_SL_ADD" 1>&6
- if test "x$ftp_cv_INT_SL_ADD" = "xyes"; then
- :
- else
- LIBOBJS="$LIBOBJS sl_init.o"
- :
- fi
-
-fi
-
-
-have_rfc2553_netdb=no
-if test $ac_cv_func_getaddrinfo = yes -a ! -n "$socks"; then
-
- echo $ac_n "checking for AI_NUMERICHOST""... $ac_c" 1>&6
-echo "configure:3751: checking for AI_NUMERICHOST" >&5
-if eval "test \"`echo '$''{'ftp_cv_have_ai_numerichost'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
- cat > conftest.$ac_ext <<EOF
-#line 3757 "configure"
-#include "confdefs.h"
-
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netdb.h>
-int main() {
- int X = AI_NUMERICHOST ;
-; return 0; }
-EOF
-if { (eval echo configure:3767: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ftp_cv_have_ai_numerichost=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ftp_cv_have_ai_numerichost=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ftp_cv_have_ai_numerichost" 1>&6
- if test "x$ftp_cv_have_ai_numerichost" = "xyes"; then
- have_rfc2553_netdb=yes
- else
-
- :
- fi
-
-fi
-echo $ac_n "checking for working getaddrinfo()""... $ac_c" 1>&6
-echo "configure:3790: checking for working getaddrinfo()" >&5
-if test $have_rfc2553_netdb = yes; then
- cat >> confdefs.h <<\EOF
-#define HAVE_RFC2553_NETDB 1
-EOF
-
- echo "$ac_t""yes" 1>&6
-else
- if test $ac_cv_func_getaddrinfo = yes; then
- LIBOBJS="$LIBOBJS getaddrinfo.o"
- echo "$ac_t""no - using local version" 1>&6
- else
- echo "$ac_t""using local version" 1>&6
- fi
-fi
-
-
-if test $ac_cv_header_vis_h = yes; then
-
- echo $ac_n "checking for VIS_WHITE in vis.h""... $ac_c" 1>&6
-echo "configure:3810: checking for VIS_WHITE in vis.h" >&5
-if eval "test \"`echo '$''{'ftp_cv_have_vis_white'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
- cat > conftest.$ac_ext <<EOF
-#line 3816 "configure"
-#include "confdefs.h"
-
- #include <sys/types.h>
- #include <vis.h>
-int main() {
- int X = VIS_WHITE ;
-; return 0; }
-EOF
-if { (eval echo configure:3825: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ftp_cv_have_vis_white=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ftp_cv_have_vis_white=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ftp_cv_have_vis_white" 1>&6
- if test "x$ftp_cv_have_vis_white" = "xyes"; then
- :
- else
- ac_cv_header_vis_h=no
- :
- fi
-
-fi
-
-
-if test -n "$LIBOBJS"; then
- INCLUDES="$INCLUDES -I\${srcdir}/../libukem"
- LDFLAGS="$LDFLAGS -L../libukem"
- LIBS="$LIBS -lukem"
- LIBUKEM=libukem.a
- LIBDEPENDS="$LIBDEPENDS ../libukem/libukem.a"
-fi
-
-
-
-
-
-
-
-trap '' 1 2 15
-cat > confcache <<\EOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs. It is not useful on other systems.
-# If it contains results you don't want to keep, you may remove or edit it.
-#
-# By default, configure uses ./config.cache as the cache file,
-# creating it if it does not exist already. You can give configure
-# the --cache-file=FILE option to use a different cache file; that is
-# what configure does when it calls configure scripts in
-# subdirectories, so they share the cache.
-# Giving --cache-file=/dev/null disables caching, for debugging configure.
-# config.status only pays attention to the cache file if you give it the
-# --recheck option to rerun configure.
-#
-EOF
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, don't put newlines in cache variables' values.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(set) 2>&1 |
- case `(ac_space=' '; set | grep ac_space) 2>&1` in
- *ac_space=\ *)
- # `set' does not quote correctly, so add quotes (double-quote substitution
- # turns \\\\ into \\, and sed turns \\ into \).
- sed -n \
- -e "s/'/'\\\\''/g" \
- -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
- ;;
- *)
- # `set' quotes correctly as required by POSIX, so do not add quotes.
- sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
- ;;
- esac >> confcache
-if cmp -s $cache_file confcache; then
- :
-else
- if test -w $cache_file; then
- echo "updating cache $cache_file"
- cat confcache > $cache_file
- else
- echo "not updating unwritable cache $cache_file"
- fi
-fi
-rm -f confcache
-
-trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-# Any assignment to VPATH causes Sun make to only execute
-# the first set of double-colon rules, so remove it if not needed.
-# If there is a colon in the path, we need to keep it.
-if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
-fi
-
-trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
-
-DEFS=-DHAVE_CONFIG_H
-
-# Without the "./", some shells look in PATH for config.status.
-: ${CONFIG_STATUS=./config.status}
-
-echo creating $CONFIG_STATUS
-rm -f $CONFIG_STATUS
-cat > $CONFIG_STATUS <<EOF
-#! /bin/sh
-# Generated automatically by configure.
-# Run this file to recreate the current configuration.
-# This directory was configured as follows,
-# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-#
-# $0 $ac_configure_args
-#
-# Compiler output produced by configure, useful for debugging
-# configure, is in ./config.log if it exists.
-
-ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
-for ac_option
-do
- case "\$ac_option" in
- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
- echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
- exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
- -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
- echo "$CONFIG_STATUS generated by autoconf version 2.13"
- exit 0 ;;
- -help | --help | --hel | --he | --h)
- echo "\$ac_cs_usage"; exit 0 ;;
- *) echo "\$ac_cs_usage"; exit 1 ;;
- esac
-done
-
-ac_given_srcdir=$srcdir
-ac_given_INSTALL="$INSTALL"
-
-trap 'rm -fr `echo "Makefile libedit/Makefile libedit/makelist libukem/Makefile \
- src/Makefile config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
-EOF
-cat >> $CONFIG_STATUS <<EOF
-
-# Protect against being on the right side of a sed subst in config.status.
-sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
- s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
-$ac_vpsub
-$extrasub
-s%@SHELL@%$SHELL%g
-s%@CFLAGS@%$CFLAGS%g
-s%@CPPFLAGS@%$CPPFLAGS%g
-s%@CXXFLAGS@%$CXXFLAGS%g
-s%@FFLAGS@%$FFLAGS%g
-s%@DEFS@%$DEFS%g
-s%@LDFLAGS@%$LDFLAGS%g
-s%@LIBS@%$LIBS%g
-s%@exec_prefix@%$exec_prefix%g
-s%@prefix@%$prefix%g
-s%@program_transform_name@%$program_transform_name%g
-s%@bindir@%$bindir%g
-s%@sbindir@%$sbindir%g
-s%@libexecdir@%$libexecdir%g
-s%@datadir@%$datadir%g
-s%@sysconfdir@%$sysconfdir%g
-s%@sharedstatedir@%$sharedstatedir%g
-s%@localstatedir@%$localstatedir%g
-s%@libdir@%$libdir%g
-s%@includedir@%$includedir%g
-s%@oldincludedir@%$oldincludedir%g
-s%@infodir@%$infodir%g
-s%@mandir@%$mandir%g
-s%@SET_MAKE@%$SET_MAKE%g
-s%@CC@%$CC%g
-s%@AWK@%$AWK%g
-s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
-s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
-s%@INSTALL_DATA@%$INSTALL_DATA%g
-s%@RANLIB@%$RANLIB%g
-s%@AR@%$AR%g
-s%@CPP@%$CPP%g
-s%@LIBOBJS@%$LIBOBJS%g
-s%@INCLUDES@%$INCLUDES%g
-s%@LIBEDIT@%$LIBEDIT%g
-s%@LIBUKEM@%$LIBUKEM%g
-s%@LIBDEPENDS@%$LIBDEPENDS%g
-
-CEOF
-EOF
-
-cat >> $CONFIG_STATUS <<\EOF
-
-# Split the substitutions into bite-sized pieces for seds with
-# small command number limits, like on Digital OSF/1 and HP-UX.
-ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
-ac_file=1 # Number of current file.
-ac_beg=1 # First line for current file.
-ac_end=$ac_max_sed_cmds # Line after last line for current file.
-ac_more_lines=:
-ac_sed_cmds=""
-while $ac_more_lines; do
- if test $ac_beg -gt 1; then
- sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
- else
- sed "${ac_end}q" conftest.subs > conftest.s$ac_file
- fi
- if test ! -s conftest.s$ac_file; then
- ac_more_lines=false
- rm -f conftest.s$ac_file
- else
- if test -z "$ac_sed_cmds"; then
- ac_sed_cmds="sed -f conftest.s$ac_file"
- else
- ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
- fi
- ac_file=`expr $ac_file + 1`
- ac_beg=$ac_end
- ac_end=`expr $ac_end + $ac_max_sed_cmds`
- fi
-done
-if test -z "$ac_sed_cmds"; then
- ac_sed_cmds=cat
-fi
-EOF
-
-cat >> $CONFIG_STATUS <<EOF
-
-CONFIG_FILES=\${CONFIG_FILES-"Makefile libedit/Makefile libedit/makelist libukem/Makefile \
- src/Makefile"}
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
- case "$ac_file" in
- *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
- ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
- *) ac_file_in="${ac_file}.in" ;;
- esac
-
- # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
-
- # Remove last slash and all that follows it. Not all systems have dirname.
- ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
- if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
- # The file is in a subdirectory.
- test ! -d "$ac_dir" && mkdir "$ac_dir"
- ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
- # A "../" for each directory in $ac_dir_suffix.
- ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
- else
- ac_dir_suffix= ac_dots=
- fi
-
- case "$ac_given_srcdir" in
- .) srcdir=.
- if test -z "$ac_dots"; then top_srcdir=.
- else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
- /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
- *) # Relative path.
- srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
- top_srcdir="$ac_dots$ac_given_srcdir" ;;
- esac
-
- case "$ac_given_INSTALL" in
- [/$]*) INSTALL="$ac_given_INSTALL" ;;
- *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
- esac
-
- echo creating "$ac_file"
- rm -f "$ac_file"
- configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
- case "$ac_file" in
- *Makefile*) ac_comsub="1i\\
-# $configure_input" ;;
- *) ac_comsub= ;;
- esac
-
- ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
- sed -e "$ac_comsub
-s%@configure_input@%$configure_input%g
-s%@srcdir@%$srcdir%g
-s%@top_srcdir@%$top_srcdir%g
-s%@INSTALL@%$INSTALL%g
-" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
-fi; done
-rm -f conftest.s*
-
-# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
-# NAME is the cpp macro being defined and VALUE is the value it is being given.
-#
-# ac_d sets the value in "#define NAME VALUE" lines.
-ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)'
-ac_dB='\([ ][ ]*\)[^ ]*%\1#\2'
-ac_dC='\3'
-ac_dD='%g'
-# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
-ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
-ac_uB='\([ ]\)%\1#\2define\3'
-ac_uC=' '
-ac_uD='\4%g'
-# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
-ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
-ac_eB='$%\1#\2define\3'
-ac_eC=' '
-ac_eD='%g'
-
-if test "${CONFIG_HEADERS+set}" != set; then
-EOF
-cat >> $CONFIG_STATUS <<EOF
- CONFIG_HEADERS="config.h"
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-fi
-for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
- case "$ac_file" in
- *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
- ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
- *) ac_file_in="${ac_file}.in" ;;
- esac
-
- echo creating $ac_file
-
- rm -f conftest.frag conftest.in conftest.out
- ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
- cat $ac_file_inputs > conftest.in
-
-EOF
-
-# Transform confdefs.h into a sed script conftest.vals that substitutes
-# the proper values into config.h.in to produce config.h. And first:
-# Protect against being on the right side of a sed subst in config.status.
-# Protect against being in an unquoted here document in config.status.
-rm -f conftest.vals
-cat > conftest.hdr <<\EOF
-s/[\\&%]/\\&/g
-s%[\\$`]%\\&%g
-s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp
-s%ac_d%ac_u%gp
-s%ac_u%ac_e%gp
-EOF
-sed -n -f conftest.hdr confdefs.h > conftest.vals
-rm -f conftest.hdr
-
-# This sed command replaces #undef with comments. This is necessary, for
-# example, in the case of _POSIX_SOURCE, which is predefined and required
-# on some systems where configure will not decide to define it.
-cat >> conftest.vals <<\EOF
-s%^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */%
-EOF
-
-# Break up conftest.vals because some shells have a limit on
-# the size of here documents, and old seds have small limits too.
-
-rm -f conftest.tail
-while :
-do
- ac_lines=`grep -c . conftest.vals`
- # grep -c gives empty output for an empty file on some AIX systems.
- if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi
- # Write a limited-size here document to conftest.frag.
- echo ' cat > conftest.frag <<CEOF' >> $CONFIG_STATUS
- sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS
- echo 'CEOF
- sed -f conftest.frag conftest.in > conftest.out
- rm -f conftest.in
- mv conftest.out conftest.in
-' >> $CONFIG_STATUS
- sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
- rm -f conftest.vals
- mv conftest.tail conftest.vals
-done
-rm -f conftest.vals
-
-cat >> $CONFIG_STATUS <<\EOF
- rm -f conftest.frag conftest.h
- echo "/* $ac_file. Generated automatically by configure. */" > conftest.h
- cat conftest.in >> conftest.h
- rm -f conftest.in
- if cmp -s $ac_file conftest.h 2>/dev/null; then
- echo "$ac_file is unchanged"
- rm -f conftest.h
- else
- # Remove last slash and all that follows it. Not all systems have dirname.
- ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
- if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
- # The file is in a subdirectory.
- test ! -d "$ac_dir" && mkdir "$ac_dir"
- fi
- rm -f $ac_file
- mv conftest.h $ac_file
- fi
-fi; done
-
-EOF
-cat >> $CONFIG_STATUS <<EOF
-
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-
-exit 0
-EOF
-chmod +x $CONFIG_STATUS
-rm -fr confdefs* $ac_clean_files
-test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
-
diff --git a/contrib/lukemftp/configure.in b/contrib/lukemftp/configure.in
deleted file mode 100644
index 4edb841e7731..000000000000
--- a/contrib/lukemftp/configure.in
+++ /dev/null
@@ -1,307 +0,0 @@
-dnl $Id: configure.in,v 1.37 2002/06/10 08:08:53 lukem Exp $
-dnl
-dnl configure.in --
-dnl process this file with autoconf to produce a configure script.
-dnl
-
-AC_REVISION($Revision: 1.37 $)dnl
-
-AC_INIT(lukemftp.h)
-
-dnl Arguments for which features are included
-dnl
-AC_ARG_PROGRAM
-AC_ARG_ENABLE(editcomplete, [\
- --enable-editcomplete Turn on command line editing and completion.
- --disable-editcomplete Turn off command line editing and completion
- [default: enabled].],
- opt_editcomplete=$enableval,
- opt_editcomplete=yes)
-AC_ARG_ENABLE(ipv6, [\
- --enable-ipv6 Enable IPv6 support (if your OS supports it).
- --disable-ipv6 Disable IPv6 support (even if your OS supports it)
- [default: enabled].],
- opt_ipv6=$enableval,
- opt_ipv6=yes)
-
-dnl Checks for programs.
-dnl
-AC_PROG_MAKE_SET
-AC_PROG_CC
-AC_PROG_AWK
-AC_PROG_INSTALL
-AC_PROG_RANLIB
-AC_CHECK_PROGS(AR, ar)
-AC_AIX
-
-
-dnl Checks for libraries.
-dnl
-AC_CHECK_LIB(util, fparseln)
-if test $opt_editcomplete = yes; then
- AC_CHECK_LIB(tinfo, tgetent, ,
- AC_CHECK_LIB(termcap, tgetent, ,
- AC_CHECK_LIB(curses, tgetent, ,
- AC_CHECK_LIB(ncurses, tgetent))))
- AC_SEARCH_LIBS(el_init, edit, have_libedit=yes, have_libedit=no)
-fi
-AC_LIBRARY_NET
-AC_LIBRARY_SOCKS
-if test -n "$socks"; then
- if test $opt_ipv6 = yes; then
- echo "IPv6 is incompatible with socks, disabling IPv6 support"
- opt_ipv6=no
- fi
-fi
-
-
-dnl Checks for header files.
-dnl
-AC_CONFIG_HEADER(config.h)
-AC_HEADER_DIRENT
-AC_HEADER_STDC
-AC_CHECK_HEADERS(arpa/nameser.h err.h regex.h paths.h poll.h sys/poll.h \
- termcap.h util.h libutil.h vis.h)
-
-
-dnl Checks for typedefs, structures, and compiler characteristics.
-dnl
-AC_HEADER_TIME
-AC_TYPE_OFF_T
-AC_CHECK_SIZEOF(off_t, 0)
-AC_MSG_TRY_LINK(for long long, ftp_cv_HAVE_LONG_LONG, [
-#include <sys/types.h>] , [
-long long X = 2, Y = 1, Z;
-Z = X / Y; ], [
-AC_DEFINE(HAVE_LONG_LONG, 1)
-have_long_long=yes], [have_long_long=no])
-
-AC_MSG_TRY_COMPILE(for in_port_t, ftp_cv_HAVE_IN_PORT_T, [
-#include <sys/types.h>
-#include <netinet/in.h> ], [ in_port_t X ], [AC_DEFINE(HAVE_IN_PORT_T, 1)])
-
-AC_MSG_TRY_COMPILE(for sa_family_t, ftp_cv_HAVE_SA_FAMILY_T, [
-#include <sys/types.h>
-#include <sys/socket.h> ], [ sa_family_t X ], [AC_DEFINE(HAVE_SA_FAMILY_T, 1)])
-
-AC_MSG_TRY_COMPILE(for sockaddr_in.sin_len, ftp_cv_HAVE_SOCKADDR_SA_LEN, [
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h> ], [
- struct sockaddr_in sin;
- int X = sin.sin_len ], [AC_DEFINE(HAVE_SOCKADDR_SA_LEN, 1)])
-
-AC_MSG_TRY_COMPILE(for socklen_t, ftp_cv_HAVE_SOCKLEN_T, [
-#include <sys/types.h>
-#include <sys/socket.h> ], [ socklen_t X ], [AC_DEFINE(HAVE_SOCKLEN_T, 1)])
-
-if test $opt_ipv6 = yes; then
-
- AC_MSG_TRY_COMPILE(for AF_INET6, ftp_cv_HAVE_AF_INET6, [
-#include <sys/types.h>
-#include <sys/socket.h> ],
- [ int X = AF_INET6 ], [AC_DEFINE(HAVE_AF_INET6, 1)])
-
- AC_MSG_TRY_COMPILE(for struct sockaddr_in6, ftp_cv_HAVE_SOCKADDR_IN6, [
-#include <sys/types.h>
-#include <netinet/in.h> ],
- [ struct sockaddr_in6 X ], [AC_DEFINE(HAVE_SOCKADDR_IN6, 1)])
-
-fi
-
-AC_MSG_TRY_COMPILE(for struct addrinfo, ftp_cv_HAVE_ADDRINFO, [
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netdb.h> ],
- [ struct addrinfo X ], [AC_DEFINE(HAVE_ADDRINFO, 1)])
-
-AC_MSG_TRY_COMPILE(for d_namlen in struct dirent, ftp_cv_HAVE_D_NAMLEN, [
-#if HAVE_DIRENT_H
-# include <dirent.h>
-#else
-# define dirent direct
-# if HAVE_SYS_NDIR_H
-# include <sys/ndir.h>
-# endif
-# if HAVE_SYS_DIR_H
-# include <sys/dir.h>
-# endif
-# if HAVE_NDIR_H
-# include <ndir.h>
-# endif
-#endif ], [
- struct dirent dp;
- int X = dp.d_namlen; ], [AC_DEFINE(HAVE_D_NAMLEN, 1)])
-
-AC_MSG_TRY_COMPILE(for h_errno declaration, ftp_cv_HAVE_H_ERRNO_D, [
-#include <netdb.h> ], [ int X = h_errno ], [AC_DEFINE(HAVE_H_ERRNO_D, 1)])
-
-AC_MSG_TRY_COMPILE(for fclose() declaration, ftp_cv_HAVE_FCLOSE_D, [
-#include <stdio.h> ], [ int (*X)() = fclose ], [AC_DEFINE(HAVE_FCLOSE_D, 1)])
-
-AC_MSG_TRY_COMPILE(for getpass() declaration, ftp_cv_HAVE_GETPASS_D, [
-#include <stdlib.h>
-#include <unistd.h> ], [ char *(*X)() = getpass ], [
- AC_DEFINE(HAVE_GETPASS_D, 1)])
-
-AC_MSG_TRY_COMPILE(for optarg declaration, ftp_cv_HAVE_OPTARG_D, [
-#include <stdlib.h>
-#include <unistd.h> ], [ char *X = optarg ], [AC_DEFINE(HAVE_OPTARG_D, 1)])
-
-AC_MSG_TRY_COMPILE(for optind declaration, ftp_cv_HAVE_OPTIND_D, [
-#include <stdlib.h>
-#include <unistd.h> ], [ int X = optind ], [AC_DEFINE(HAVE_OPTIND_D, 1)])
-
-AC_MSG_TRY_COMPILE(for pclose() declaration, ftp_cv_HAVE_PCLOSE_D, [
-#include <stdio.h> ], [ int (*X)() = pclose ], [AC_DEFINE(HAVE_PCLOSE_D, 1)])
-
-
-dnl Checks for library functions.
-dnl
-AC_REPLACE_FUNCS(err fgetln fseeko getaddrinfo getnameinfo inet_ntop inet_pton \
- mkstemp setprogname sl_init snprintf strdup strerror strlcat \
- strlcpy strptime strsep strunvis strvis timegm usleep)
-AC_CHECK_FUNCS(gethostbyname2 getpassphrase getpgrp memmove poll select)
-if test $ac_cv_func_getpgrp = yes; then
- AC_FUNC_GETPGRP
-fi
-if test $ac_cv_lib_util_fparseln != yes; then
- AC_REPLACE_FUNCS(fparseln)
-fi
-
-LIBOBJS="$LIBOBJS glob.o"
-
-if test $ac_cv_func_strptime = yes; then
- AC_MSG_TRY_COMPILE(for strptime() declaration, ftp_cv_HAVE_STRPTIME_D, [
- #include <time.h> ], [ char *X = strptime("", "", NULL) ],
- [AC_DEFINE(HAVE_STRPTIME_D, 1)])
-fi
-
-if test $have_long_long = yes -a $ac_cv_sizeof_off_t -ge 8; then
-
-dnl We assume that if sprintf() supports %lld or %qd,
-dnl then all of *printf() does. If not, disable long long
-dnl support because we don't know how to display it.
-
- AC_MSG_CHECKING(*printf() support for %lld)
- can_printf_longlong=no
- AC_TRY_RUN([
- #include <stdio.h>
- int main() {
- char buf[100];
- sprintf(buf, "%lld", 4294967300LL);
- return (strcmp(buf, "4294967300"));
- }
- ], [
- AC_MSG_RESULT(yes)
- can_printf_longlong=yes
- ], [
- AC_MSG_RESULT(no)
- ], [ : ])
-
- if test $can_printf_longlong != yes; then
- AC_MSG_CHECKING(*printf() support for %qd)
- AC_TRY_RUN([
- #include <stdio.h>
- int main() {
- char buf[100];
- sprintf(buf, "%qd", 4294967300LL);
- return (strcmp(buf, "4294967300"));
- }
- ], [
- AC_MSG_RESULT(yes)
- can_printf_longlong=yes
- AC_DEFINE(HAVE_PRINTF_QD, 1)
- ], [
- AC_MSG_RESULT(no)
- ], [ : ])
- fi
-
- if test $can_printf_longlong = yes; then
- AC_DEFINE(HAVE_QUAD_SUPPORT, 1)
- AC_REPLACE_FUNCS(strtoll)
- fi
-
-fi
-
-
-if test $opt_editcomplete = yes; then
- if test $have_libedit = yes; then
- AC_MSG_TRY_COMPILE(for EL_RPROMPT in libedit,
- ftp_cv_have_libedit, [
- #include <histedit.h> ], [ int X = EL_RPROMPT ], [:],
- have_libedit=no )
- fi
-
- AC_MSG_CHECKING(for working libedit)
- if test $have_libedit = no; then
- AC_MSG_RESULT(no - using my own)
- INCLUDES="-I\${srcdir}/../libedit $INCLUDES"
- LDFLAGS="-L../libedit $LDFLAGS"
- LIBS="-ledit $LIBS"
- LIBEDIT=libedit.a
- LIBDEPENDS="$LIBDEPENDS ../libedit/libedit.a"
- else
- AC_MSG_RESULT(yes)
- fi
-else
- CFLAGS="-DNO_EDITCOMPLETE $CFLAGS"
-fi
-
-if test $ac_cv_func_sl_init = yes; then
- AC_MSG_TRY_COMPILE(if sl_add() returns int, ftp_cv_INT_SL_ADD, [
- #include <stringlist.h> ], [ int f = sl_add((StringList *)0, "foo") ],
- [:] , [LIBOBJS="$LIBOBJS sl_init.o"])
-fi
-
-
-have_rfc2553_netdb=no
-if test $ac_cv_func_getaddrinfo = yes -a ! -n "$socks"; then
- AC_MSG_TRY_COMPILE(for AI_NUMERICHOST,
- ftp_cv_have_ai_numerichost, [
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netdb.h> ],
- [ int X = AI_NUMERICHOST ], [ have_rfc2553_netdb=yes ])
-fi
-AC_MSG_CHECKING(for working getaddrinfo())
-if test $have_rfc2553_netdb = yes; then
- AC_DEFINE(HAVE_RFC2553_NETDB, 1)
- AC_MSG_RESULT(yes)
-else
- if test $ac_cv_func_getaddrinfo = yes; then
- LIBOBJS="$LIBOBJS getaddrinfo.o"
- AC_MSG_RESULT(no - using local version)
- else
- AC_MSG_RESULT(using local version)
- fi
-fi
-
-
-if test $ac_cv_header_vis_h = yes; then
- AC_MSG_TRY_COMPILE(for VIS_WHITE in vis.h,
- ftp_cv_have_vis_white, [
- #include <sys/types.h>
- #include <vis.h> ], [ int X = VIS_WHITE ], [:],
- ac_cv_header_vis_h=no )
-fi
-
-
-if test -n "$LIBOBJS"; then
- INCLUDES="$INCLUDES -I\${srcdir}/../libukem"
- LDFLAGS="$LDFLAGS -L../libukem"
- LIBS="$LIBS -lukem"
- LIBUKEM=libukem.a
- LIBDEPENDS="$LIBDEPENDS ../libukem/libukem.a"
-fi
-
-dnl Create the Makefiles
-dnl
-
-AC_SUBST(INCLUDES)
-AC_SUBST(LIBEDIT)
-AC_SUBST(LIBUKEM)
-AC_SUBST(LIBDEPENDS)
-
-AC_OUTPUT(Makefile libedit/Makefile libedit/makelist libukem/Makefile \
- src/Makefile)
diff --git a/contrib/lukemftp/diffout b/contrib/lukemftp/diffout
deleted file mode 100644
index 932f748734f9..000000000000
--- a/contrib/lukemftp/diffout
+++ /dev/null
@@ -1,3500 +0,0 @@
-diff -Nru src/CVS/Entries /home/spock/ftp/CVS/Entries
---- src/CVS/Entries Thu Jan 30 11:00:13 2003
-+++ /home/spock/ftp/CVS/Entries Thu Jun 12 02:02:10 2003
-@@ -1,16 +1,17 @@
--/Makefile.in/1.1.1.1/Thu Jul 19 16:26:12 2001//
--/cmds.c/1.1.1.2/Sat Jun 15 09:40:32 2002//
--/cmdtab.c/1.1.1.2/Sat Jun 15 09:40:33 2002//
--/complete.c/1.1.1.1/Thu Jul 19 16:26:13 2001//
--/domacro.c/1.1.1.2/Sat Jun 15 09:40:33 2002//
--/extern.h/1.1.1.2/Sat Jun 15 09:40:33 2002//
--/fetch.c/1.1.1.3/Sat Jun 15 09:40:34 2002//
--/ftp.1/1.1.1.3/Sat Jun 15 09:40:35 2002//
--/ftp.c/1.1.1.3/Sat Jun 15 09:40:36 2002//
--/ftp.cat1/1.1.1.1/Sat Jun 15 09:40:31 2002//
--/ftp_var.h/1.1.1.3/Sat Jun 15 09:40:36 2002//
--/main.c/1.1.1.3/Sat Jun 15 09:40:36 2002//
--/ruserpass.c/1.1.1.2/Sat Jun 15 09:40:36 2002//
--/util.c/1.1.1.2/Sat Jun 15 09:40:37 2002//
--/version.h/1.1.1.2/Sat Jun 15 09:40:37 2002//
-+/Makefile/1.26/Tue Jan 21 16:08:06 2003//
-+/cmds.c/1.100/Sat Nov 30 03:10:55 2002//
-+/cmdtab.c/1.40/Mon Jul 29 04:24:47 2002//
-+/complete.c/1.38/Mon May 1 10:35:17 2000//
-+/domacro.c/1.19/Fri Feb 1 05:04:43 2002//
-+/extern.h/1.61/Tue Jan 21 16:08:07 2003//
-+/fetch.c/1.141/Wed May 14 14:31:00 2003//
-+/ftp.1/1.94/Wed May 14 14:31:00 2003//
-+/ftp.c/1.120/Wed Jun 5 10:20:49 2002//
-+/ftp_var.h/1.64/Tue Jan 21 16:08:07 2003//
-+/main.c/1.84/Wed May 14 14:31:00 2003//
-+/progressbar.c/1.3/Fri Feb 28 09:53:49 2003//
-+/progressbar.h/1.3/Fri Feb 28 09:53:49 2003//
-+/ruserpass.c/1.28/Wed Nov 15 00:11:04 2000//
-+/util.c/1.111/Fri Feb 28 09:54:51 2003//
-+/version.h/1.30/Fri Feb 28 09:54:20 2003//
- D
-diff -Nru src/CVS/Repository /home/spock/ftp/CVS/Repository
---- src/CVS/Repository Thu Jan 30 11:00:13 2003
-+++ /home/spock/ftp/CVS/Repository Thu Jun 12 02:02:10 2003
-@@ -1 +1 @@
--src/contrib/lukemftp/src
-+src/usr.bin/ftp
-diff -Nru src/CVS/Root /home/spock/ftp/CVS/Root
---- src/CVS/Root Thu Jan 30 11:00:13 2003
-+++ /home/spock/ftp/CVS/Root Thu Jun 12 02:02:09 2003
-@@ -1 +1 @@
--spock@current:/cvs/ncvs
-+:pserver:anoncvs@anoncvs.netbsd.org:/cvsroot
-diff -Nru src/Makefile /home/spock/ftp/Makefile
---- src/Makefile Wed Dec 31 19:00:00 1969
-+++ /home/spock/ftp/Makefile Thu Jun 12 02:02:10 2003
-@@ -0,0 +1,26 @@
-+# $NetBSD: Makefile,v 1.26 2003/01/21 16:08:06 jhawk Exp $
-+# from: @(#)Makefile 8.2 (Berkeley) 4/3/94
-+
-+PROG= ftp
-+SRCS= cmds.c cmdtab.c complete.c domacro.c fetch.c ftp.c main.c \
-+ progressbar.c ruserpass.c util.c
-+
-+# Uncomment the following to provide defaults for gate-ftp operation
-+#
-+#CPPFLAGS+=-DGATE_SERVER=\"ftp-gw.host\" # -DGATE_PORT=21
-+
-+.if defined(SMALLPROG)
-+CPPFLAGS+=-DNO_EDITCOMPLETE -DNO_ABOUT
-+.else
-+LDADD+= -ledit -ltermcap
-+DPADD+= ${LIBEDIT} ${LIBTERMCAP}
-+.endif
-+
-+.if !defined(SMALLPROG) || defined(SMALLPROG_INET6)
-+CPPFLAGS+= -DINET6
-+.endif
-+
-+cmds.o fetch.o: version.h
-+main.o: ftp_var.h
-+
-+.include <bsd.prog.mk>
-diff -Nru src/Makefile.in /home/spock/ftp/Makefile.in
---- src/Makefile.in Thu Jul 19 12:26:12 2001
-+++ /home/spock/ftp/Makefile.in Wed Dec 31 19:00:00 1969
-@@ -1,43 +0,0 @@
--#
--# $Id: Makefile.in,v 1.8 2000/08/08 07:04:27 lukem Exp $
--#
--
--srcdir = @srcdir@
--VPATH = @srcdir@
--SHELL = /bin/sh
--
--prefix = @prefix@
--exec_prefix = @exec_prefix@
--bindir = @bindir@
--mandir = @mandir@
--transform = @program_transform_name@
--
--mandircat1 = ${mandir}/cat1
--
--CC = @CC@
--CFLAGS = -I${srcdir} -I${srcdir}/.. -I. -I.. @INCLUDES@ @CFLAGS@
--LIBS = @LIBS@
--LDFLAGS = @LDFLAGS@
--
--INSTALL = @INSTALL@
--
--PROG = ftp
--OBJS = cmds.o cmdtab.o complete.o domacro.o fetch.o ftp.o main.o \
-- ruserpass.o util.o
--
--all: ${PROG}
--
--install: all
-- -mkdir -p ${bindir}
-- ${INSTALL} -m 555 ${PROG} ${bindir}/`echo ${PROG}|sed '$(transform)'`
-- -mkdir -p ${mandircat1}
-- ${INSTALL} -m 444 ${srcdir}/${PROG}.cat1 ${mandircat1}/`echo ${PROG}|sed '$(transform)'`.1
--
--${PROG}: ${OBJS} @LIBDEPENDS@
-- ${CC} ${CFLAGS} ${LDFLAGS} -o ${PROG} ${OBJS} ${LIBS}
--
--clean:
-- rm -f core ${PROG} ${OBJS}
--
--distclean: clean
-- rm -f Makefile
-diff -Nru src/cmds.c /home/spock/ftp/cmds.c
---- src/cmds.c Sat Jun 15 05:40:32 2002
-+++ /home/spock/ftp/cmds.c Thu Jun 12 02:02:10 2003
-@@ -1,4 +1,4 @@
--/* $NetBSD: cmds.c,v 1.98 2002/06/05 10:20:46 lukem Exp $ */
-+/* $NetBSD: cmds.c,v 1.100 2002/11/30 03:10:55 lukem Exp $ */
-
- /*-
- * Copyright (c) 1996-2002 The NetBSD Foundation, Inc.
-@@ -102,11 +102,35 @@
- * SUCH DAMAGE.
- */
-
-+#include <sys/cdefs.h>
-+#ifndef lint
-+#if 0
-+static char sccsid[] = "@(#)cmds.c 8.6 (Berkeley) 10/9/94";
-+#else
-+__RCSID("$NetBSD: cmds.c,v 1.100 2002/11/30 03:10:55 lukem Exp $");
-+#endif
-+#endif /* not lint */
-+
- /*
- * FTP User Program -- Command Routines.
- */
--
--#include "lukemftp.h"
-+#include <sys/types.h>
-+#include <sys/socket.h>
-+#include <sys/stat.h>
-+#include <sys/wait.h>
-+#include <arpa/ftp.h>
-+
-+#include <ctype.h>
-+#include <err.h>
-+#include <glob.h>
-+#include <limits.h>
-+#include <netdb.h>
-+#include <paths.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <time.h>
-+#include <unistd.h>
-
- #include "ftp_var.h"
- #include "version.h"
-@@ -1008,7 +1032,7 @@
- gatemode = 0;
- else {
- if (argc == 3)
-- gateport = strdup(argv[2]);
-+ gateport = xstrdup(argv[2]);
- (void)strlcpy(gsbuf, argv[1], sizeof(gsbuf));
- gateserver = gsbuf;
- gatemode = 1;
-diff -Nru src/cmdtab.c /home/spock/ftp/cmdtab.c
---- src/cmdtab.c Sat Jun 15 05:40:33 2002
-+++ /home/spock/ftp/cmdtab.c Thu Jun 12 02:02:10 2003
-@@ -1,4 +1,4 @@
--/* $NetBSD: cmdtab.c,v 1.39 2000/11/15 00:10:59 lukem Exp $ */
-+/* $NetBSD: cmdtab.c,v 1.40 2002/07/29 04:24:47 lukem Exp $ */
-
- /*-
- * Copyright (c) 1996-2000 The NetBSD Foundation, Inc.
-@@ -69,8 +69,16 @@
- * SUCH DAMAGE.
- */
-
--#include "lukemftp.h"
-+#include <sys/cdefs.h>
-+#ifndef lint
-+#if 0
-+static char sccsid[] = "@(#)cmdtab.c 8.4 (Berkeley) 10/9/94";
-+#else
-+__RCSID("$NetBSD: cmdtab.c,v 1.40 2002/07/29 04:24:47 lukem Exp $");
-+#endif
-+#endif /* not lint */
-
-+#include <stdio.h>
- #include "ftp_var.h"
-
- /*
-@@ -123,7 +131,7 @@
- char ntranshelp[] = "set translation table for default file name mapping";
- char optshelp[] = "show or set options for remote commands";
- char pagehelp[] = "view a remote file through your pager";
--char passivehelp[] = "enter passive transfer mode";
-+char passivehelp[] = "toggle use of passive transfer mode";
- char plshelp[] = "list contents of remote path through your pager";
- char pmlsdhelp[] = "list contents of remote directory in a machine "
- "parsable form through your pager";
-diff -Nru src/complete.c /home/spock/ftp/complete.c
---- src/complete.c Thu Jul 19 12:26:13 2001
-+++ /home/spock/ftp/complete.c Thu Jun 12 02:02:10 2003
-@@ -36,11 +36,23 @@
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-+#include <sys/cdefs.h>
-+#ifndef lint
-+__RCSID("$NetBSD: complete.c,v 1.38 2000/05/01 10:35:17 lukem Exp $");
-+#endif /* not lint */
-+
- /*
- * FTP user program - command and file completion routines
- */
-
--#include "lukemftp.h"
-+#include <sys/stat.h>
-+
-+#include <ctype.h>
-+#include <err.h>
-+#include <dirent.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-
- #include "ftp_var.h"
-
-diff -Nru src/domacro.c /home/spock/ftp/domacro.c
---- src/domacro.c Sat Jun 15 05:40:33 2002
-+++ /home/spock/ftp/domacro.c Thu Jun 12 02:02:10 2003
-@@ -33,7 +33,18 @@
- * SUCH DAMAGE.
- */
-
--#include "lukemftp.h"
-+#include <sys/cdefs.h>
-+#ifndef lint
-+#if 0
-+static char sccsid[] = "@(#)domacro.c 8.3 (Berkeley) 4/2/94";
-+#else
-+__RCSID("$NetBSD: domacro.c,v 1.19 2002/02/01 05:04:43 itojun Exp $");
-+#endif
-+#endif /* not lint */
-+
-+#include <ctype.h>
-+#include <stdio.h>
-+#include <string.h>
-
- #include "ftp_var.h"
-
-diff -Nru src/extern.h /home/spock/ftp/extern.h
---- src/extern.h Sat Jun 15 05:40:33 2002
-+++ /home/spock/ftp/extern.h Thu Jun 12 02:02:10 2003
-@@ -1,7 +1,7 @@
--/* $NetBSD: extern.h,v 1.60 2000/10/11 14:46:03 is Exp $ */
-+/* $NetBSD: extern.h,v 1.61 2003/01/21 16:08:07 jhawk Exp $ */
-
- /*-
-- * Copyright (c) 1996-2000 The NetBSD Foundation, Inc.
-+ * Copyright (c) 1996-2003 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
-@@ -110,7 +110,6 @@
- void abortxfer(int);
- void account(int, char **);
- void ai_unmapped(struct addrinfo *);
--void alarmtimer(int);
- int another(int *, char ***, const char *);
- int auto_fetch(int, char **);
- int auto_put(int, char **, const char *);
-@@ -123,7 +122,7 @@
- void cmdtimeout(int);
- void cmdscanner(void);
- int command(const char *, ...)
-- ;
-+ __attribute__((__format__(__printf__, 1, 2)));
- #ifndef NO_EDITCOMPLETE
- unsigned char complete(EditLine *, int);
- void controlediting(void);
-@@ -183,14 +182,11 @@
- void page(int, char **);
- int parseport(const char *, int);
- int parserate(int, char **, int);
--void progressmeter(int);
- char *prompt(void);
- void proxabort(int);
- void proxtrans(const char *, const char *, const char *);
- void psabort(int);
--void psummary(int);
- void pswitch(int);
--void ptransfer(int);
- void put(int, char **);
- void pwd(int, char **);
- void quit(int, char **);
-@@ -263,5 +259,3 @@
- StringList *xsl_init(void);
- void xsl_add(StringList *, char *);
- char *xstrdup(const char *);
--sigfunc xsignal(int, sigfunc);
--sigfunc xsignal_restart(int, sigfunc, int);
-diff -Nru src/fetch.c /home/spock/ftp/fetch.c
---- src/fetch.c Sun Feb 16 14:45:52 2003
-+++ /home/spock/ftp/fetch.c Thu Jun 12 02:02:11 2003
-@@ -1,7 +1,7 @@
--/* $NetBSD: fetch.c,v 1.136 2002/06/05 10:20:48 lukem Exp $ */
-+/* $NetBSD: fetch.c,v 1.141 2003/05/14 14:31:00 wiz Exp $ */
-
- /*-
-- * Copyright (c) 1997-2002 The NetBSD Foundation, Inc.
-+ * Copyright (c) 1997-2003 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
-@@ -39,11 +39,36 @@
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-+#include <sys/cdefs.h>
-+#ifndef lint
-+__RCSID("$NetBSD: fetch.c,v 1.141 2003/05/14 14:31:00 wiz Exp $");
-+#endif /* not lint */
-+
- /*
- * FTP User Program -- Command line file retrieval
- */
-
--#include "lukemftp.h"
-+#include <sys/types.h>
-+#include <sys/param.h>
-+#include <sys/socket.h>
-+#include <sys/stat.h>
-+#include <sys/time.h>
-+
-+#include <netinet/in.h>
-+
-+#include <arpa/ftp.h>
-+#include <arpa/inet.h>
-+
-+#include <ctype.h>
-+#include <err.h>
-+#include <errno.h>
-+#include <netdb.h>
-+#include <fcntl.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <unistd.h>
-+#include <time.h>
-
- #include "ftp_var.h"
- #include "version.h"
-@@ -155,7 +180,7 @@
- *response = (char *)xmalloc(rlen);
- (void)strlcpy(*response, scheme, rlen);
- len = strlcat(*response, " ", rlen);
-- base64_encode(clear, clen, *response + len);
-+ base64_encode(clear, clen, (u_char *)*response + len);
- memset(clear, 0, clen);
- rval = 0;
-
-@@ -235,12 +260,12 @@
- * XXX: this is not totally RFC 1738 compliant; <path> will have the
- * leading `/' unless it's an ftp:// URL, as this makes things easier
- * for file:// and http:// URLs. ftp:// URLs have the `/' between the
-- * host and the url-path removed, but any additional leading slashes
-- * in the url-path are retained (because they imply that we should
-+ * host and the URL-path removed, but any additional leading slashes
-+ * in the URL-path are retained (because they imply that we should
- * later do "CWD" with a null argument).
- *
- * Examples:
-- * input url output path
-+ * input URL output path
- * --------- -----------
- * "ftp://host" NULL
- * "http://host/" NULL
-@@ -484,7 +509,8 @@
- rval = fetch_ftp(url);
- goto cleanup_fetch_url;
- }
-- warnx("Invalid URL (no file after directory) `%s'", url);
-+ warnx("no file after directory (you must specify an "
-+ "output file) `%s'", url);
- goto cleanup_fetch_url;
- } else {
- if (debug)
-@@ -1372,7 +1398,7 @@
- dir ? dir : "<null>", file ? file : "<null>");
-
- dirhasglob = filehasglob = 0;
-- if (doglob && (urltype == CLASSIC_URL_T || urltype == FTP_URL_T)) {
-+ if (doglob && urltype == CLASSIC_URL_T) {
- if (! EMPTYSTRING(dir) && strpbrk(dir, "*?[]{}") != NULL)
- dirhasglob = 1;
- if (! EMPTYSTRING(file) && strpbrk(file, "*?[]{}") != NULL)
-@@ -1741,7 +1767,7 @@
- }
- }
- if (debug)
-- fprintf(ttyout, "auto_put: url `%s' argv[2] `%s'\n",
-+ fprintf(ttyout, "auto_put: URL `%s' argv[2] `%s'\n",
- path, uargv[2] ? uargv[2] : "<null>");
-
- /* connect and cwd */
-diff -Nru src/ftp.1 /home/spock/ftp/ftp.1
---- src/ftp.1 Sat Jun 15 05:40:35 2002
-+++ /home/spock/ftp/ftp.1 Thu Jun 12 02:02:11 2003
-@@ -1,6 +1,6 @@
--.\" $NetBSD: ftp.1,v 1.83 2002/06/05 10:20:48 lukem Exp $
-+.\" $NetBSD: ftp.1,v 1.94 2003/05/14 14:31:00 wiz Exp $
- .\"
--.\" Copyright (c) 1996-2002 The NetBSD Foundation, Inc.
-+.\" Copyright (c) 1996-2003 The NetBSD Foundation, Inc.
- .\" All rights reserved.
- .\"
- .\" This code is derived from software contributed to The NetBSD Foundation
-@@ -68,7 +68,7 @@
- .\"
- .\" @(#)ftp.1 8.3 (Berkeley) 10/9/94
- .\"
--.Dd May 18, 2002
-+.Dd January 20, 2003
- .Dt FTP 1
- .Os
- .Sh NAME
-@@ -76,7 +76,7 @@
- .Nd
- Internet file transfer program
- .Sh SYNOPSIS
--.Nm ""
-+.Nm
- .Op Fl 46AadefginpRtvV
- .Bk -words
- .Op Fl N Ar netrc
-@@ -88,46 +88,81 @@
- .Op Fl P Ar port
- .Ek
- .Bk -words
-+.Op Fl q Ar quittime
-+.Ek
-+.Bk -words
- .Op Fl r Ar retry
- .Ek
- .Bk -words
-+.\" [-T dir,max[,inc]]
- .Oo
--.Fl T
-+.Fl T Xo
- .Sm off
--.Xo
- .Ar dir ,
- .Ar max
- .Op , Ar inc
--.Xc
- .Sm on
-+.Xc
- .Oc
- .Ek
- .Bk -words
-+.\" [[user@]host [port]]
- .Oo
--[\fIuser\fR@]\fIhost\fR
-+.Oo Ar user Ns Li \&@ Oc Ns Ar host
- .Op Ar port
- .Oc
- .Ek
- .Bk -words
--[\fIuser\fR@]\fIhost\fR:[\fIpath\fR][/]
-+.\" [[user@]host:[path][/]]
-+.Sm off
-+.Oo
-+.Op Ar user Li \&@
-+.Ar host Li \&:
-+.Op Ar path
-+.Op Li /
-+.Oc
-+.Sm on
- .Ek
- .Bk -words
--.Op file:///\fIpath\fR
-+.\" [file:///path]
-+.Sm off
-+.Oo
-+.Li file:/// Ar path
-+.Oc
-+.Sm on
- .Ek
- .Bk -words
--.Op ftp://[\fIuser\fR[:\fIpassword\fR]@]\fIhost\fR[:\fIport\fR]/\fIpath\fR[/]
-+.\" [ftp://[user[:password]@]host[:port]/path[/]]
-+.Sm off
-+.Oo
-+.Li ftp://
-+.Oo Ar user
-+.Op Li \&: Ar password
-+.Li \&@ Oc
-+.Ar host Oo Li \&: Ar port Oc
-+.Li / Ar path
-+.Op Li /
-+.Op Li ;type= Ar X
-+.Oc
-+.Sm on
- .Ek
- .Bk -words
--.Op http://[\fIuser\fR[:\fIpassword\fR]@]\fIhost\fR[:\fIport\fR]/\fIpath\fR
-+.\" [http://[user[:password]@]host[:port]/path]
-+.Sm off
-+.Oo
-+.Li http://
-+.Oo Ar user
-+.Op Li \&: Ar password
-+.Li \&@ Oc
-+.Ar host Oo Li \&: Ar port Oc
-+.Li / Ar path
-+.Oc
-+.Sm on
- .Ek
- .Op Ar \&.\&.\&.
--.Nm ""
--.Fl u Ar url
--.\".Ar ftp://[\fIuser\fR[:\fIpassword\fR]@]\fIhost\fR[:\fIport\fR]/\fIpath\fR[/[file]]
--.\"|
--.\".Ar [\fIuser\fR@]\fIhost\fR:[\fIpath\fR][/[\fIfile\fR]]
-+.Nm
- .Bk -words
--file
-+.Fl u Ar URL Ar file
- .Ek
- .Op Ar \&.\&.\&.
- .Sh DESCRIPTION
-@@ -243,6 +278,10 @@
- Retry the connection attempt if it failed, pausing for
- .Ar wait
- seconds.
-+.It Fl q Ar quittime
-+Quit if the connection has stalled for
-+.Ar quittime
-+seconds.
- .It Fl R
- Restart all non-proxied auto-fetches.
- .It Fl t
-@@ -266,11 +305,11 @@
- Refer to
- .Ic rate
- for more information.
--.It Fl u Ar url file Op \&.\&.\&.
-+.It Fl u Ar URL file Op \&.\&.\&.
- Upload files on the command line to
--.Ar url
-+.Ar URL
- where
--.Ar url
-+.Ar URL
- is one of the ftp URL types as supported by auto-fetch
- (with an optional target filename for single file uploads), and
- .Ar file
-@@ -869,7 +908,7 @@
- .Tn FTP
- server at that port.
- If the
--.Ic auto-login
-+.Ic "set auto-login"
- option is on (default),
- .Nm
- will also attempt to automatically log the user in to
-@@ -882,10 +921,10 @@
- and display with the program specified by the
- .Ic "set pager"
- option.
--.It Ic passive Op Ic auto
-+.It Ic passive Op Cm auto
- Toggle passive mode (if no arguments are given).
- If
--.Ic auto
-+.Cm auto
- is given, act as if
- .Ev FTPMODE
- is set to
-@@ -896,14 +935,17 @@
- .Dv PASV
- command for all data connections instead of a
- .Dv PORT
--command. The
-+command.
-+The
- .Dv PASV
- command requests that the remote server open a port for the data connection
--and return the address of that port. The remote server listens on that
--port and the client connects to it. When using the more traditional
-+and return the address of that port.
-+The remote server listens on that port and the client connects to it.
-+When using the more traditional
- .Dv PORT
- command, the client listens on a port and sends that address to the remote
--server, who connects back to it. Passive mode is useful when using
-+server, who connects back to it.
-+Passive mode is useful when using
- .Nm
- through a gateway router or host that controls the directionality of
- traffic.
-@@ -965,34 +1007,34 @@
- .Pp
- When prompting is on, the following commands are available at a prompt:
- .Bl -tag -width 2n -offset indent
--.It Ic a
-+.It Cm a
- Answer
- .Sq yes
- to the current file, and automatically answer
- .Sq yes
- to any remaining files for the current command.
--.It Ic n
-+.It Cm n
- Answer
- .Sq no ,
- and do not transfer the file.
--.It Ic p
-+.It Cm p
- Answer
- .Sq yes
- to the current file, and turn off prompt mode
- (as is
- .Dq prompt off
- had been given).
--.It Ic q
-+.It Cm q
- Terminate the current operation.
--.It Ic y
-+.It Cm y
- Answer
- .Sq yes ,
- and transfer the file.
--.It Ic ?
-+.It Cm ?
- Display a help message.
- .El
- .Pp
--Any other reponse will answer
-+Any other response will answer
- .Sq yes
- to the current file.
- .It Ic proxy Ar ftp-command
-@@ -1072,11 +1114,11 @@
- .Ar direction
- may be one of:
- .Bl -tag -width "all" -offset indent -compact
--.It Ic all
-+.It Cm all
- Both directions.
--.It Ic get
-+.It Cm get
- Incoming transfers.
--.It Ic put
-+.It Cm put
- Outgoing transfers.
- .El
- .Pp
-@@ -1240,7 +1282,7 @@
- implementations which do ignore
- .Dv PORT
- commands but, incorrectly, indicate they've been accepted.
--.It Ic set Op Ar "option value"
-+.It Ic set Op Ar option Ar value
- Set
- .Ar option
- to
-@@ -1252,25 +1294,25 @@
- are not given, display all of the options and their values.
- The currently supported options are:
- .Bl -tag -width "http_proxy" -offset indent
--.It anonpass
-+.It Cm anonpass
- Defaults to
- .Ev $FTPANONPASS
--.It ftp_proxy
-+.It Cm ftp_proxy
- Defaults to
- .Ev $ftp_proxy .
--.It http_proxy
-+.It Cm http_proxy
- Defaults to
- .Ev $http_proxy .
--.It no_proxy
-+.It Cm no_proxy
- Defaults to
- .Ev $no_proxy .
--.It pager
-+.It Cm pager
- Defaults to
- .Ev $PAGER .
--.It prompt
-+.It Cm prompt
- Defaults to
- .Ev $FTPPROMPT .
--.It rprompt
-+.It Cm rprompt
- Defaults to
- .Ev $FTPRPROMPT .
- .El
-@@ -1415,13 +1457,14 @@
- interpretation of the argument.
- Supported suffixes are:
- .Bl -tag -width 3n -offset indent -compact
--.It b
--Causes no modification. (Optional)
--.It k
-+.It Li b
-+Causes no modification.
-+(Optional)
-+.It Li k
- Kilo; multiply the argument by 1024
--.It m
-+.It Li m
- Mega; multiply the argument by 1048576
--.It g
-+.It Li g
- Giga; multiply the argument by 1073741824
- .El
- .Pp
-@@ -1447,7 +1490,15 @@
- .Pp
- The following formats are valid syntax for an auto-fetch element:
- .Bl -tag -width "FOO "
--.It [user@]host:[path][/]
-+.\" [user@]host:[path][/]
-+.It Xo
-+.Sm off
-+.Op Ar user Li \&@
-+.Ar host Li \&:
-+.Op Ar path
-+.Op Li /
-+.Sm on
-+.Xc
- .Dq Classic
- .Tn FTP
- format.
-@@ -1471,7 +1522,19 @@
- in the current directory.
- Otherwise, the full remote name is used as the local name,
- relative to the local root directory.
--.It ftp://[user[:password]@]host[:port]/path[/][;type=X]
-+.\" ftp://[user[:password]@]host[:port]/path[/][;type=X]
-+.It Xo
-+.Sm off
-+.Li ftp://
-+.Oo Ar user
-+.Op Li \&: Ar password
-+.Li \&@ Oc
-+.Ar host Oo Li \&: Ar port Oc
-+.Li / Ar path
-+.Op Li /
-+.Op Li ;type= Ar X
-+.Sm on
-+.Xc
- An
- .Tn FTP
- URL, retrieved using the
-@@ -1493,15 +1556,94 @@
- .Ar password
- if supplied, otherwise prompt the user for one.
- .Pp
-+If a suffix of
-+.Sq ;type=A
-+or
-+.Sq ;type=I
-+is supplied, then the transfer type will take place as
-+ascii or binary (respectively).
-+The default transfer type is binary.
-+.Pp
- In order to be compliant with
- .Cm RFC 1738 ,
- .Nm
--strips the leading
--.Sq /
--from
-+interprets the
-+.Ar path
-+part of an
-+.Dq ftp://
-+auto-fetch URL as follows:
-+.Bl -bullet
-+.It
-+The
-+.Sq Li /
-+immediately after the
-+.Ar host Ns Oo Li \&: Ns Ar port Oc
-+is interpreted as a separator before the
-+.Ar path ,
-+and not as part of the
-+.Ar path
-+itself.
-+.It
-+The
-+.Ar path
-+is interpreted as a
-+.So Li / Sc Ns -separated
-+list of name components.
-+For all but the last such component,
-+.Nm
-+performs the equivalent of a
-+.Ic cd
-+command.
-+For the last path component,
-+.Nm
-+performs the equivalent of a
-+.Ic get
-+command.
-+.It
-+Empty name components,
-+which result from
-+.Sq Li //
-+within the
-+.Ar path ,
-+or from an extra
-+.Sq Li /
-+at the beginning of the
- .Ar path ,
--resulting in a transfer relative from the default login directory of
--the user.
-+will cause the equivalent of a
-+.Ic cd
-+command without a directory name.
-+This is unlikely to be useful.
-+.It
-+Any
-+.Sq Li \&% Ns Ar XX
-+codes within the path components are decoded, with
-+.Ar XX
-+representing a character code in hexadecimal.
-+This decoding takes place after the
-+.Ar path
-+has been split into components,
-+but before each component is used in the equivalent of a
-+.Ic cd
-+or
-+.Ic get
-+command.
-+Some often-used codes are
-+.Sq Li \&%2F
-+(which represents
-+.Sq Li / )
-+and
-+.Sq Li \&%7E
-+(which represents
-+.Sq Li ~ ) .
-+.El
-+.Pp
-+The above interpretation has the following consequences:
-+.Bl -bullet
-+.It
-+The path is interpreted relative to the
-+default login directory of the specified user or of the
-+.Sq anonymous
-+user.
- If the
- .Pa /
- directory is required, use a leading path of
-@@ -1519,15 +1661,57 @@
- .Sq mypass ,
- use
- .Dq ftp://myname:mypass@localhost/%2fetc/motd
--.Pp
--If a suffix of
--.Sq ;type=A
--or
--.Sq ;type=I
--is supplied, then the transfer type will take place as
--ascii or binary (respectively).
--The default transfer type is binary.
--.It http://[user[:password]@]host[:port]/path
-+.It
-+The exact
-+.Ic cd
-+and
-+.Ic get
-+commands can be controlled by careful choice of
-+where to use
-+.Sq /
-+and where to use
-+.Sq %2F
-+(or
-+.Sq %2f ) .
-+For example, the following URLs correspond to the
-+equivalents of the indicated commands:
-+.Bl -tag -width "ftp://host/%2Fdir1%2Fdir2%2Ffile"
-+.It ftp://host/dir1/dir2/file
-+.Dq "cd dir1" ,
-+.Dq "cd dir2" ,
-+.Dq "get file" .
-+.It ftp://host/%2Fdir1/dir2/file
-+.Dq "cd /dir1" ,
-+.Dq "cd dir2" ,
-+.Dq "get file" .
-+.It ftp://host/dir1%2Fdir2/file
-+.Dq "cd dir1/dir2" ,
-+.Dq "get file" .
-+.It ftp://host/%2Fdir1%2Fdir2/file
-+.Dq "cd /dir1/dir2" ,
-+.Dq "get file" .
-+.It ftp://host/dir1%2Fdir2%2Ffile
-+.Dq "get dir1/dir2/file" .
-+.It ftp://host/%2Fdir1%2Fdir2%2Ffile
-+.Dq "get /dir1/dir2/file" .
-+.El
-+.It
-+You must have appropriate access permission for each of the
-+intermediate directories that is used in the equivalent of a
-+.Ic cd
-+command.
-+.El
-+.\" http://[user[:password]@]host[:port]/path
-+.It Xo
-+.Sm off
-+.Li http://
-+.Oo Ar user
-+.Op Li \&: Ar password
-+.Li \&@ Oc
-+.Ar host Oo Li \&: Ar port Oc
-+.Li / Ar path
-+.Sm on
-+.Xc
- An
- .Tn HTTP
- URL, retrieved using the
-@@ -1540,16 +1724,22 @@
- proxy server.
- If
- .Tn HTTP
--authorisation is required to retrieve
-+authorization is required to retrieve
- .Ar path ,
- and
- .Sq user
- (and optionally
- .Sq password )
- is in the URL, use them for the first attempt to authenticate.
--.It file:///path
-+.\" file:///path
-+.It Xo
-+.Sm off
-+.Li file:/// Ar path
-+.Sm on
-+.Xc
- A local URL, copied from
--.Ar /path .
-+.Pa / Ns Ar path
-+on the local host.
- .El
- .Pp
- Unless noted otherwise above, and
-@@ -1736,7 +1926,7 @@
- .Nm
- supports only the default values for the remaining
- file transfer parameters:
--.Ic mode ,
-+.Ic mode ,
- .Ic form ,
- and
- .Ic struct .
-@@ -1841,6 +2031,14 @@
- .Ic init
- is defined, it is automatically executed as the last step in the
- auto-login process.
-+For example,
-+.Bd -literal -offset indent
-+default
-+macdef init
-+epsv4 off
-+.Ed
-+.Pp
-+followed by a blank line.
- .El
- .Sh COMMAND LINE EDITING
- .Nm
-@@ -1888,9 +2086,20 @@
- The following formatting sequences are replaced by the given
- information:
- .Bl -tag -width "%% " -offset indent
--.It %/
-+.It Li \&%/
- The current remote working directory.
--.It %c[[0]\fIn\fR], %.[[0]\fIn\fR]
-+.\" %c[[0]n], %.[[0]n]
-+.It Xo
-+.Sm off
-+.Li \&%c
-+.Op Oo Li 0 Oc Ar n
-+.Sm on
-+.No ,
-+.Sm off
-+.Li \&%.
-+.Op Oo Li 0 Oc Ar n
-+.Sm on
-+.Xc
- The trailing component of the current remote working directory, or
- .Em n
- trailing components if a digit
-@@ -1902,21 +2111,28 @@
- .Sq 0 ,
- the number of skipped components precede the trailing component(s) in
- the format
--.Dq /\fI\*[Lt]skipped\*[Gt]\fRtrailing
-+.\" ``/<number>trailing''
-+.Do
-+.Sm off
-+.Li / Li \*[Lt] Va number Li \*[Gt]
-+.Va trailing
-+.Sm on
-+.Dc
- (for
--.Sq %c )
-+.Sq \&%c )
- or
--.Dq ...trailing
-+.\" ``...trailing''
-+.Dq Li \&... Ns Va trailing
- (for
--.Sq %. ) .
--.It %M
-+.Sq \&%. ) .
-+.It Li \&%M
- The remote host name.
--.It %m
-+.It Li \&%m
- The remote host name, up to the first
- .Sq \&. .
--.It %n
-+.It Li \&%n
- The remote user name.
--.It %%
-+.It Li \&%%
- A single
- .Sq % .
- .El
-@@ -1934,15 +2150,15 @@
- Overrides the default operation mode.
- Support values are:
- .Bl -tag -width "passive"
--.It active
-+.It Cm active
- active mode
- .Tn FTP
- only
--.It auto
-+.It Cm auto
- automatic determination of passive or active (this is the default)
--.It gate
-+.It Cm gate
- gate-ftp mode
--.It passive
-+.It Cm passive
- passive mode
- .Tn FTP
- only
-@@ -2028,6 +2244,21 @@
- Each entry may have an optional trailing ":port", which restricts
- the matching to connections to that port.
- .El
-+.Sh EXTENDED PASSIVE MODE AND FIREWALLS
-+Some firewall configurations do not allow
-+.Nm
-+to use extended passive mode.
-+If you find that even a simple
-+.Ic ls
-+appears to hang after printing a message such as this:
-+.Pp
-+.Dl 229 Entering Extended Passive Mode (|||58551|)
-+.Pp
-+then you will need to disable extended passive mode with
-+.Ic epsv4 off .
-+See the above section
-+.Sx The .netrc File
-+for an example of how to make this automatic.
- .Sh SEE ALSO
- .Xr getservbyname 3 ,
- .Xr editrc 5 ,
-@@ -2061,7 +2292,9 @@
- were implemented in
- .Nx 1.3
- and later releases
--by Luke Mewburn \*[Lt]lukem@netbsd.org\*[Gt].
-+by
-+.An Luke Mewburn
-+.Aq lukem@NetBSD.org .
- .Pp
- IPv6 support was added by the WIDE/KAME project
- (but may not be present in all non-NetBSD versions of this program, depending
-diff -Nru src/ftp.c /home/spock/ftp/ftp.c
---- src/ftp.c Sat Jun 15 05:40:36 2002
-+++ /home/spock/ftp/ftp.c Thu Jun 12 02:02:11 2003
-@@ -98,9 +98,40 @@
- * SUCH DAMAGE.
- */
-
--#include "lukemftp.h"
-+#include <sys/cdefs.h>
-+#ifndef lint
-+#if 0
-+static char sccsid[] = "@(#)ftp.c 8.6 (Berkeley) 10/27/94";
-+#else
-+__RCSID("$NetBSD: ftp.c,v 1.120 2002/06/05 10:20:49 lukem Exp $");
-+#endif
-+#endif /* not lint */
-
-+#include <sys/types.h>
-+#include <sys/stat.h>
-+#include <sys/socket.h>
-+#include <sys/time.h>
-+
-+#include <netinet/in.h>
-+#include <netinet/in_systm.h>
-+#include <netinet/ip.h>
-+#include <arpa/inet.h>
-+#include <arpa/ftp.h>
- #include <arpa/telnet.h>
-+
-+#include <ctype.h>
-+#include <err.h>
-+#include <errno.h>
-+#include <netdb.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <time.h>
-+#include <unistd.h>
-+#include <stdarg.h>
-+#ifndef USE_SELECT
-+#include <poll.h>
-+#endif
-
- #include "ftp_var.h"
-
-diff -Nru src/ftp.cat1 /home/spock/ftp/ftp.cat1
---- src/ftp.cat1 Sat Jun 15 05:40:31 2002
-+++ /home/spock/ftp/ftp.cat1 Wed Dec 31 19:00:00 1969
-@@ -1,1055 +0,0 @@
--FTP(1) NetBSD Reference Manual FTP(1)
--
--NNAAMMEE
-- ffttpp - Internet file transfer program
--
--SSYYNNOOPPSSIISS
-- ffttpp [--4466AAaaddeeffggiinnppRRttvvVV] [--NN _n_e_t_r_c] [--oo _o_u_t_p_u_t] [--PP _p_o_r_t] [--rr _r_e_t_r_y] [--TT
-- _d_i_r,_m_a_x[,_i_n_c]] [[_u_s_e_r@]_h_o_s_t [_p_o_r_t]] [_u_s_e_r@]_h_o_s_t:[_p_a_t_h][/]
-- [file:///_p_a_t_h] [ftp://[_u_s_e_r[:_p_a_s_s_w_o_r_d]@]_h_o_s_t[:_p_o_r_t]/_p_a_t_h[/]]
-- [http://[_u_s_e_r[:_p_a_s_s_w_o_r_d]@]_h_o_s_t[:_p_o_r_t]/_p_a_t_h] [_._._.]
-- ffttpp --uu _u_r_l file [_._._.]
--
--DDEESSCCRRIIPPTTIIOONN
-- ffttpp is the user interface to the Internet standard File Transfer Proto-
-- col. The program allows a user to transfer files to and from a remote
-- network site.
--
-- The last five arguments will fetch a file using the FTP or HTTP proto-
-- cols, or by direct copying, into the current directory. This is ideal
-- for scripts. Refer to _A_U_T_O_-_F_E_T_C_H_I_N_G _F_I_L_E_S below for more information.
--
-- Options may be specified at the command line, or to the command inter-
-- preter.
--
-- --44 Forces ffttpp to only use IPv4 addresses.
--
-- --66 Forces ffttpp to only use IPv6 addresses.
--
-- --AA Force active mode ftp. By default, ffttpp will try to use passive
-- mode ftp and fall back to active mode if passive is not support-
-- ed by the server. This option causes ffttpp to always use an ac-
-- tive connection. It is only useful for connecting to very old
-- servers that do not implement passive mode properly.
--
-- --aa Causes ffttpp to bypass normal login procedure, and use an anony-
-- mous login instead.
--
-- --dd Enables debugging.
--
-- --ee Disables command line editing. This is useful for Emacs ange-
-- ftp mode.
--
-- --ff Forces a cache reload for transfers that go through the FTP or
-- HTTP proxies.
--
-- --gg Disables file name globbing.
--
-- --ii Turns off interactive prompting during multiple file transfers.
--
-- --nn Restrains ffttpp from attempting ``auto-login'' upon initial con-
-- nection. If auto-login is enabled, ffttpp will check the _._n_e_t_r_c
-- (see below) file in the user's home directory for an entry de-
-- scribing an account on the remote machine. If no entry exists,
-- ffttpp will prompt for the remote machine login name (default is
-- the user identity on the local machine), and, if necessary,
-- prompt for a password and an account with which to login.
--
-- --NN _n_e_t_r_c
-- Use _n_e_t_r_c instead of _~_/_._n_e_t_r_c. Refer to _T_H_E _._n_e_t_r_c _F_I_L_E for
-- more information.
--
-- --oo _o_u_t_p_u_t
-- When auto-fetching files, save the contents in _o_u_t_p_u_t. _o_u_t_p_u_t
-- is parsed according to the _F_I_L_E _N_A_M_I_N_G _C_O_N_V_E_N_T_I_O_N_S below. If
-- _o_u_t_p_u_t is not `-' or doesn't start with `|', then only the first
-- file specified will be retrieved into _o_u_t_p_u_t; all other files
-- will be retrieved into the basename of their remote name.
--
-- --pp Enable passive mode operation for use behind connection filter-
-- ing firewalls. This option has been deprecated as ffttpp now tries
-- to use passive mode by default, falling back to active mode if
-- the server does not support passive connections.
--
-- --PP _p_o_r_t Sets the port number to _p_o_r_t.
--
-- --rr _w_a_i_t Retry the connection attempt if it failed, pausing for _w_a_i_t sec-
-- onds.
--
-- --RR Restart all non-proxied auto-fetches.
--
-- --tt Enables packet tracing.
--
-- --TT _d_i_r_e_c_t_i_o_n,_m_a_x_i_m_u_m[,_i_n_c_r_e_m_e_n_t]
-- Set the maximum transfer rate for _d_i_r_e_c_t_i_o_n to _m_a_x_i_m_u_m
-- bytes/second, and if specified, the increment to _i_n_c_r_e_m_e_n_t
-- bytes/second. Refer to rraattee for more information.
--
-- --uu _u_r_l _f_i_l_e [...]
-- Upload files on the command line to _u_r_l where _u_r_l is one of the
-- ftp URL types as supported by auto-fetch (with an optional tar-
-- get filename for single file uploads), and _f_i_l_e is one or more
-- local files to be uploaded.
--
-- --vv Enable vveerrbboossee and pprrooggrreessss. This is the default if output is
-- to a terminal (and in the case of pprrooggrreessss, ffttpp is the fore-
-- ground process). Forces ffttpp to show all responses from the re-
-- mote server, as well as report on data transfer statistics.
--
-- --VV Disable vveerrbboossee and pprrooggrreessss, overriding the default of enabled
-- when output is to a terminal.
--
-- The client host with which ffttpp is to communicate may be specified on the
-- command line. If this is done, ffttpp will immediately attempt to establish
-- a connection to an FTP server on that host; otherwise, ffttpp will enter its
-- command interpreter and await instructions from the user. When ffttpp is
-- awaiting commands from the user the prompt `ftp>' is provided to the us-
-- er. The following commands are recognized by ffttpp:
--
-- !! [_c_o_m_m_a_n_d [_a_r_g_s]]
-- Invoke an interactive shell on the local machine. If there
-- are arguments, the first is taken to be a command to execute
-- directly, with the rest of the arguments as its arguments.
--
-- $$ _m_a_c_r_o_-_n_a_m_e [_a_r_g_s]
-- Execute the macro _m_a_c_r_o_-_n_a_m_e that was defined with the mmaaccddeeff
-- command. Arguments are passed to the macro unglobbed.
--
-- aaccccoouunntt [_p_a_s_s_w_d]
-- Supply a supplemental password required by a remote system
-- for access to resources once a login has been successfully
-- completed. If no argument is included, the user will be
-- prompted for an account password in a non-echoing input mode.
--
-- aappppeenndd _l_o_c_a_l_-_f_i_l_e [_r_e_m_o_t_e_-_f_i_l_e]
-- Append a local file to a file on the remote machine. If
-- _r_e_m_o_t_e_-_f_i_l_e is left unspecified, the local file name is used
-- in naming the remote file after being altered by any nnttrraannss
-- or nnmmaapp setting. File transfer uses the current settings for
-- ttyyppee, ffoorrmmaatt, mmooddee, and ssttrruuccttuurree.
--
-- aasscciiii Set the file transfer ttyyppee to network ASCII. This is the de-
-- fault type.
--
-- bbeellll Arrange that a bell be sounded after each file transfer com-
-- mand is completed.
--
-- bbiinnaarryy Set the file transfer ttyyppee to support binary image transfer.
--
-- bbyyee Terminate the FTP session with the remote server and exit
-- ffttpp. An end of file will also terminate the session and ex-
-- it.
--
-- ccaassee Toggle remote computer file name case mapping during ggeett,
-- mmggeett and mmppuutt commands. When ccaassee is on (default is off),
-- remote computer file names with all letters in upper case are
-- written in the local directory with the letters mapped to
-- lower case.
--
-- ccdd _r_e_m_o_t_e_-_d_i_r_e_c_t_o_r_y
-- Change the working directory on the remote machine to _r_e_m_o_t_e_-
-- _d_i_r_e_c_t_o_r_y.
--
-- ccdduupp Change the remote machine working directory to the parent of
-- the current remote machine working directory.
--
-- cchhmmoodd _m_o_d_e _r_e_m_o_t_e_-_f_i_l_e
-- Change the permission modes of the file _r_e_m_o_t_e_-_f_i_l_e on the
-- remote system to _m_o_d_e.
--
-- cclloossee Terminate the FTP session with the remote server, and return
-- to the command interpreter. Any defined macros are erased.
--
-- ccrr Toggle carriage return stripping during ascii type file re-
-- trieval. Records are denoted by a carriage return/linefeed
-- sequence during ascii type file transfer. When ccrr is on (the
-- default), carriage returns are stripped from this sequence to
-- conform with the UNIX single linefeed record delimiter.
-- Records on non-UNIX remote systems may contain single line-
-- feeds; when an ascii type transfer is made, these linefeeds
-- may be distinguished from a record delimiter only when ccrr is
-- off.
--
-- ddeebbuugg [_d_e_b_u_g_-_v_a_l_u_e]
-- Toggle debugging mode. If an optional _d_e_b_u_g_-_v_a_l_u_e is speci-
-- fied it is used to set the debugging level. When debugging
-- is on, ffttpp prints each command sent to the remote machine,
-- preceded by the string `-->'
--
-- ddeelleettee _r_e_m_o_t_e_-_f_i_l_e
-- Delete the file _r_e_m_o_t_e_-_f_i_l_e on the remote machine.
--
-- ddiirr [_r_e_m_o_t_e_-_p_a_t_h [_l_o_c_a_l_-_f_i_l_e]]
-- Print a listing of the contents of a directory on the remote
-- machine. The listing includes any system-dependent informa-
-- tion that the server chooses to include; for example, most
-- UNIX systems will produce output from the command `ls -l'.
-- If _r_e_m_o_t_e_-_p_a_t_h is left unspecified, the current working di-
-- rectory is used. If interactive prompting is on, ffttpp will
-- prompt the user to verify that the last argument is indeed
-- the target local file for receiving ddiirr output. If no local
-- file is specified, or if _l_o_c_a_l_-_f_i_l_e is `--', the output is
-- sent to the terminal.
--
-- ddiissccoonnnneecctt A synonym for cclloossee.
--
-- eeddiitt Toggle command line editing, and context sensitive command
-- and file completion. This is automatically enabled if input
-- is from a terminal, and disabled otherwise.
--
-- eeppssvv44 Toggle the use of the extended EPSV and EPRT commands on IPv4
-- connections; first try EPSV / EPRT, and then PASV / PORT.
-- This is enabled by default. If an extended command fails
-- then this option will be temporarily disabled for the dura-
-- tion of the current connection, or until eeppssvv44 is executed
-- again.
--
-- eexxiitt A synonym for bbyyee.
--
-- ffeeaattuurreess Display what features the remote server supports (using the
-- FEAT command).
--
-- ffggeett _l_o_c_a_l_f_i_l_e
-- Retrieve the files listed in _l_o_c_a_l_f_i_l_e, which has one line
-- per filename.
--
-- ffoorrmm _f_o_r_m_a_t
-- Set the file transfer ffoorrmm to _f_o_r_m_a_t. The default (and only
-- supported) format is ``non-print''.
--
-- ffttpp _h_o_s_t [_p_o_r_t]
-- A synonym for ooppeenn.
--
-- ggaattee [_h_o_s_t [_p_o_r_t]]
-- Toggle gate-ftp mode, which used to connect through the TIS
-- FWTK and Gauntlet ftp proxies. This will not be permitted if
-- the gate-ftp server hasn't been set (either explicitly by the
-- user, or from the FTPSERVER environment variable). If _h_o_s_t
-- is given, then gate-ftp mode will be enabled, and the gate-
-- ftp server will be set to _h_o_s_t. If _p_o_r_t is also given, that
-- will be used as the port to connect to on the gate-ftp serv-
-- er.
--
-- ggeett _r_e_m_o_t_e_-_f_i_l_e [_l_o_c_a_l_-_f_i_l_e]
-- Retrieve the _r_e_m_o_t_e_-_f_i_l_e and store it on the local machine.
-- If the local file name is not specified, it is given the same
-- name it has on the remote machine, subject to alteration by
-- the current ccaassee, nnttrraannss, and nnmmaapp settings. The current
-- settings for ttyyppee, ffoorrmm, mmooddee, and ssttrruuccttuurree are used while
-- transferring the file.
--
-- gglloobb Toggle filename expansion for mmddeelleettee, mmggeett, mmppuutt, and
-- mmrreeggeett. If globbing is turned off with gglloobb, the file name
-- arguments are taken literally and not expanded. Globbing for
-- mmppuutt is done as in csh(1). For mmddeelleettee, mmggeett, and mmrreeggeett,
-- each remote file name is expanded separately on the remote
-- machine and the lists are not merged. Expansion of a direc-
-- tory name is likely to be different from expansion of the
-- name of an ordinary file: the exact result depends on the
-- foreign operating system and ftp server, and can be previewed
-- by doing `mls remote-files -' Note: mmggeett, mmppuutt and mmrreeggeett are
-- not meant to transfer entire directory subtrees of files.
-- That can be done by transferring a tar(1) archive of the sub-
-- tree (in binary mode).
--
-- hhaasshh [_s_i_z_e]
-- Toggle hash-sign (``#'') printing for each data block trans-
-- ferred. The size of a data block defaults to 1024 bytes.
-- This can be changed by specifying _s_i_z_e in bytes. Enabling
-- hhaasshh disables pprrooggrreessss.
--
-- hheellpp [_c_o_m_m_a_n_d]
-- Print an informative message about the meaning of _c_o_m_m_a_n_d.
-- If no argument is given, ffttpp prints a list of the known com-
-- mands.
--
-- iiddllee [_s_e_c_o_n_d_s]
-- Set the inactivity timer on the remote server to _s_e_c_o_n_d_s sec-
-- onds. If _s_e_c_o_n_d_s is omitted, the current inactivity timer is
-- printed.
--
-- iimmaaggee A synonym for bbiinnaarryy.
--
-- llccdd [_d_i_r_e_c_t_o_r_y]
-- Change the working directory on the local machine. If no
-- _d_i_r_e_c_t_o_r_y is specified, the user's home directory is used.
--
-- lleessss _f_i_l_e A synonym for ppaaggee.
--
-- llppaaggee _l_o_c_a_l_-_f_i_l_e
-- Display _l_o_c_a_l_-_f_i_l_e with the program specified by the sseett
-- ppaaggeerr option.
--
-- llppwwdd Print the working directory on the local machine.
--
-- llss [_r_e_m_o_t_e_-_p_a_t_h [_l_o_c_a_l_-_f_i_l_e]]
-- A synonym for ddiirr.
--
-- mmaaccddeeff _m_a_c_r_o_-_n_a_m_e
-- Define a macro. Subsequent lines are stored as the macro
-- _m_a_c_r_o_-_n_a_m_e; a null line (consecutive newline characters in a
-- file or carriage returns from the terminal) terminates macro
-- input mode. There is a limit of 16 macros and 4096 total
-- characters in all defined macros. Macros remain defined un-
-- til a cclloossee command is executed. The macro processor inter-
-- prets `$' and `\' as special characters. A `$' followed by a
-- number (or numbers) is replaced by the corresponding argument
-- on the macro invocation command line. A `$' followed by an
-- `i' signals that macro processor that the executing macro is
-- to be looped. On the first pass `$i' is replaced by the
-- first argument on the macro invocation command line, on the
-- second pass it is replaced by the second argument, and so on.
-- A `\' followed by any character is replaced by that charac-
-- ter. Use the `\' to prevent special treatment of the `$'.
--
-- mmddeelleettee [_r_e_m_o_t_e_-_f_i_l_e_s]
-- Delete the _r_e_m_o_t_e_-_f_i_l_e_s on the remote machine.
--
-- mmddiirr _r_e_m_o_t_e_-_f_i_l_e_s _l_o_c_a_l_-_f_i_l_e
-- Like ddiirr, except multiple remote files may be specified. If
-- interactive prompting is on, ffttpp will prompt the user to ver-
-- ify that the last argument is indeed the target local file
-- for receiving mmddiirr output.
--
-- mmggeett _r_e_m_o_t_e_-_f_i_l_e_s
-- Expand the _r_e_m_o_t_e_-_f_i_l_e_s on the remote machine and do a ggeett
-- for each file name thus produced. See gglloobb for details on
-- the filename expansion. Resulting file names will then be
-- processed according to ccaassee, nnttrraannss, and nnmmaapp settings.
-- Files are transferred into the local working directory, which
-- can be changed with `lcd directory'; new local directories
-- can be created with `! mkdir directory'.
--
-- mmkkddiirr _d_i_r_e_c_t_o_r_y_-_n_a_m_e
-- Make a directory on the remote machine.
--
-- mmllss _r_e_m_o_t_e_-_f_i_l_e_s _l_o_c_a_l_-_f_i_l_e
-- Like llss, except multiple remote files may be specified, and
-- the _l_o_c_a_l_-_f_i_l_e must be specified. If interactive prompting
-- is on, ffttpp will prompt the user to verify that the last argu-
-- ment is indeed the target local file for receiving mmllss out-
-- put.
--
-- mmllssdd [_r_e_m_o_t_e_-_p_a_t_h]
-- Display the contents of _r_e_m_o_t_e_-_p_a_t_h (which should default to
-- the current directory if not given) in a machine-parsable
-- form, using MLSD. The format of display can be changed with
-- `remopts mlst ...'.
--
-- mmllsstt [_r_e_m_o_t_e_-_p_a_t_h]
-- Display the details about _r_e_m_o_t_e_-_p_a_t_h (which should default
-- to the current directory if not given) in a machine-parsable
-- form, using MLST. The format of display can be changed with
-- `remopts mlst ...'.
--
-- mmooddee _m_o_d_e_-_n_a_m_e
-- Set the file transfer mmooddee to _m_o_d_e_-_n_a_m_e. The default (and
-- only supported) mode is ``stream''.
--
-- mmooddttiimmee _r_e_m_o_t_e_-_f_i_l_e
-- Show the last modification time of the file on the remote ma-
-- chine.
--
-- mmoorree _f_i_l_e A synonym for ppaaggee.
--
-- mmppuutt _l_o_c_a_l_-_f_i_l_e_s
-- Expand wild cards in the list of local files given as argu-
-- ments and do a ppuutt for each file in the resulting list. See
-- gglloobb for details of filename expansion. Resulting file names
-- will then be processed according to nnttrraannss and nnmmaapp settings.
--
-- mmrreeggeett _r_e_m_o_t_e_-_f_i_l_e_s
-- As per mmggeett, but performs a rreeggeett instead of ggeett.
--
-- mmsseenndd _l_o_c_a_l_-_f_i_l_e_s
-- A synonym for mmppuutt.
--
-- nneewweerr _r_e_m_o_t_e_-_f_i_l_e [_l_o_c_a_l_-_f_i_l_e]
-- Get the file only if the modification time of the remote file
-- is more recent that the file on the current system. If the
-- file does not exist on the current system, the remote file is
-- considered nneewweerr. Otherwise, this command is identical to
-- _g_e_t.
--
-- nnlliisstt [_r_e_m_o_t_e_-_p_a_t_h [_l_o_c_a_l_-_f_i_l_e]]
-- A synonym for llss.
--
-- nnmmaapp [_i_n_p_a_t_t_e_r_n _o_u_t_p_a_t_t_e_r_n]
-- Set or unset the filename mapping mechanism. If no arguments
-- are specified, the filename mapping mechanism is unset. If
-- arguments are specified, remote filenames are mapped during
-- mmppuutt commands and ppuutt commands issued without a specified re-
-- mote target filename. If arguments are specified, local
-- filenames are mapped during mmggeett commands and ggeett commands
-- issued without a specified local target filename. This com-
-- mand is useful when connecting to a non-UNIX remote computer
-- with different file naming conventions or practices. The
-- mapping follows the pattern set by _i_n_p_a_t_t_e_r_n and _o_u_t_p_a_t_t_e_r_n.
-- [_I_n_p_a_t_t_e_r_n] is a template for incoming filenames (which may
-- have already been processed according to the nnttrraannss and ccaassee
-- settings). Variable templating is accomplished by including
-- the sequences `$1', `$2', ..., `$9' in _i_n_p_a_t_t_e_r_n. Use `\' to
-- prevent this special treatment of the `$' character. All
-- other characters are treated literally, and are used to de-
-- termine the nnmmaapp [_i_n_p_a_t_t_e_r_n] variable values. For example,
-- given _i_n_p_a_t_t_e_r_n $1.$2 and the remote file name "mydata.data",
-- $1 would have the value "mydata", and $2 would have the value
-- "data". The _o_u_t_p_a_t_t_e_r_n determines the resulting mapped file-
-- name. The sequences `$1', `$2', ...., `$9' are replaced by
-- any value resulting from the _i_n_p_a_t_t_e_r_n template. The se-
-- quence `$0' is replace by the original filename. Additional-
-- ly, the sequence `[_s_e_q_1, _s_e_q_2]' is replaced by [_s_e_q_1] if _s_e_q_1
-- is not a null string; otherwise it is replaced by _s_e_q_2. For
-- example, the command
--
-- nmap $1.$2.$3 [$1,$2].[$2,file]
--
-- would yield the output filename "myfile.data" for input file-
-- names "myfile.data" and "myfile.data.old", "myfile.file" for
-- the input filename "myfile", and "myfile.myfile" for the in-
-- put filename ".myfile". Spaces may be included in
-- _o_u_t_p_a_t_t_e_r_n, as in the example: `nmap $1 sed "s/ *$//" > $1'
-- . Use the `\' character to prevent special treatment of the
-- `$','[',']', and `,' characters.
--
-- nnttrraannss [_i_n_c_h_a_r_s [_o_u_t_c_h_a_r_s]]
-- Set or unset the filename character translation mechanism.
-- If no arguments are specified, the filename character trans-
-- lation mechanism is unset. If arguments are specified, char-
-- acters in remote filenames are translated during mmppuutt com-
-- mands and ppuutt commands issued without a specified remote tar-
-- get filename. If arguments are specified, characters in lo-
-- cal filenames are translated during mmggeett commands and ggeett
-- commands issued without a specified local target filename.
-- This command is useful when connecting to a non-UNIX remote
-- computer with different file naming conventions or practices.
-- Characters in a filename matching a character in _i_n_c_h_a_r_s are
-- replaced with the corresponding character in _o_u_t_c_h_a_r_s. If
-- the character's position in _i_n_c_h_a_r_s is longer than the length
-- of _o_u_t_c_h_a_r_s, the character is deleted from the file name.
--
-- ooppeenn _h_o_s_t [_p_o_r_t]
-- Establish a connection to the specified _h_o_s_t FTP server. An
-- optional port number may be supplied, in which case, ffttpp will
-- attempt to contact an FTP server at that port. If the aauuttoo--
-- llooggiinn option is on (default), ffttpp will also attempt to auto-
-- matically log the user in to the FTP server (see below).
--
-- ppaaggee _f_i_l_e Retrieve ffiillee and display with the program specified by the
-- sseett ppaaggeerr option.
--
-- ppaassssiivvee [aauuttoo]
-- Toggle passive mode (if no arguments are given). If aauuttoo is
-- given, act as if FTPMODE is set to `auto'. If passive mode
-- is turned on (default), ffttpp will send a PASV command for all
-- data connections instead of a PORT command. The PASV command
-- requests that the remote server open a port for the data con-
-- nection and return the address of that port. The remote
-- server listens on that port and the client connects to it.
-- When using the more traditional PORT command, the client lis-
-- tens on a port and sends that address to the remote server,
-- who connects back to it. Passive mode is useful when using
-- ffttpp through a gateway router or host that controls the direc-
-- tionality of traffic. (Note that though FTP servers are re-
-- quired to support the PASV command by RFC 1123, some do not.)
--
-- ppddiirr [_r_e_m_o_t_e_-_p_a_t_h]
-- Perform ddiirr [_r_e_m_o_t_e_-_p_a_t_h], and display the result with the
-- program specified by the sseett ppaaggeerr option.
--
-- ppllss [_r_e_m_o_t_e_-_p_a_t_h]
-- Perform llss [_r_e_m_o_t_e_-_p_a_t_h], and display the result with the
-- program specified by the sseett ppaaggeerr option.
--
-- ppmmllssdd [_r_e_m_o_t_e_-_p_a_t_h]
-- Perform mmllssdd [_r_e_m_o_t_e_-_p_a_t_h], and display the result with the
-- program specified by the sseett ppaaggeerr option.
--
-- pprreesseerrvvee Toggle preservation of modification times on retrieved files.
--
-- pprrooggrreessss Toggle display of transfer progress bar. The progress bar
-- will be disabled for a transfer that has _l_o_c_a_l_-_f_i_l_e as `--' or
-- a command that starts with `|'. Refer to _F_I_L_E _N_A_M_I_N_G
-- _C_O_N_V_E_N_T_I_O_N_S for more information. Enabling pprrooggrreessss disables
-- hhaasshh.
--
-- pprroommpptt Toggle interactive prompting. Interactive prompting occurs
-- during multiple file transfers to allow the user to selec-
-- tively retrieve or store files. If prompting is turned off
-- (default is on), any mmggeett or mmppuutt will transfer all files,
-- and any mmddeelleettee will delete all files.
--
-- When prompting is on, the following commands are available at
-- a prompt:
--
-- aa Answer `yes' to the current file, and automatically
-- answer `yes' to any remaining files for the current
-- command.
--
-- nn Answer `no', and do not transfer the file.
--
-- pp Answer `yes' to the current file, and turn off
-- prompt mode (as is ``prompt off'' had been given).
--
-- qq Terminate the current operation.
--
-- yy Answer `yes', and transfer the file.
--
-- ?? Display a help message.
--
-- Any other reponse will answer `yes' to the current file.
--
-- pprrooxxyy _f_t_p_-_c_o_m_m_a_n_d
-- Execute an ftp command on a secondary control connection.
-- This command allows simultaneous connection to two remote FTP
-- servers for transferring files between the two servers. The
-- first pprrooxxyy command should be an ooppeenn, to establish the sec-
-- ondary control connection. Enter the command "proxy ?" to
-- see other FTP commands executable on the secondary connec-
-- tion. The following commands behave differently when pref-
-- aced by pprrooxxyy: ooppeenn will not define new macros during the au-
-- to-login process, cclloossee will not erase existing macro defini-
-- tions, ggeett and mmggeett transfer files from the host on the pri-
-- mary control connection to the host on the secondary control
-- connection, and ppuutt, mmppuutt, and aappppeenndd transfer files from the
-- host on the secondary control connection to the host on the
-- primary control connection. Third party file transfers de-
-- pend upon support of the FTP protocol PASV command by the
-- server on the secondary control connection.
--
-- ppuutt _l_o_c_a_l_-_f_i_l_e [_r_e_m_o_t_e_-_f_i_l_e]
-- Store a local file on the remote machine. If _r_e_m_o_t_e_-_f_i_l_e is
-- left unspecified, the local file name is used after process-
-- ing according to any nnttrraannss or nnmmaapp settings in naming the
-- remote file. File transfer uses the current settings for
-- ttyyppee, ffoorrmmaatt, mmooddee, and ssttrruuccttuurree.
--
-- ppwwdd Print the name of the current working directory on the remote
-- machine.
--
-- qquuiitt A synonym for bbyyee.
--
-- qquuoottee _a_r_g_1 _a_r_g_2 _._._.
-- The arguments specified are sent, verbatim, to the remote FTP
-- server.
--
-- rraattee _d_i_r_e_c_t_i_o_n [_m_a_x_i_m_u_m [_i_n_c_r_e_m_e_n_t]]
-- Throttle the maximum transfer rate to _m_a_x_i_m_u_m bytes/second.
-- If _m_a_x_i_m_u_m is 0, disable the throttle.
--
-- _d_i_r_e_c_t_i_o_n may be one of:
-- aallll Both directions.
-- ggeett Incoming transfers.
-- ppuutt Outgoing transfers.
--
-- _m_a_x_i_m_u_m can by modified on the fly by _i_n_c_r_e_m_e_n_t bytes (de-
-- fault: 1024) each time a given signal is received:
--
-- SIGUSR1 Increment _m_a_x_i_m_u_m by _i_n_c_r_e_m_e_n_t bytes.
--
-- SIGUSR2 Decrement _m_a_x_i_m_u_m by _i_n_c_r_e_m_e_n_t bytes. The re-
-- sult must be a positive number.
--
-- If _m_a_x_i_m_u_m is not supplied, the current throttle rates are
-- displayed.
--
-- Note: rraattee is not yet implemented for ascii mode transfers.
--
-- rrccvvbbuuff _s_i_z_e
-- Set the size of the socket receive buffer to _s_i_z_e.
--
-- rreeccvv _r_e_m_o_t_e_-_f_i_l_e [_l_o_c_a_l_-_f_i_l_e]
-- A synonym for ggeett.
--
-- rreeggeett _r_e_m_o_t_e_-_f_i_l_e [_l_o_c_a_l_-_f_i_l_e]
-- rreeggeett acts like ggeett, except that if _l_o_c_a_l_-_f_i_l_e exists and is
-- smaller than _r_e_m_o_t_e_-_f_i_l_e, _l_o_c_a_l_-_f_i_l_e is presumed to be a par-
-- tially transferred copy of _r_e_m_o_t_e_-_f_i_l_e and the transfer is
-- continued from the apparent point of failure. This command
-- is useful when transferring very large files over networks
-- that are prone to dropping connections.
--
-- rreemmooppttss _c_o_m_m_a_n_d [_c_o_m_m_a_n_d_-_o_p_t_i_o_n_s]
-- Set options on the remote FTP server for _c_o_m_m_a_n_d to _c_o_m_m_a_n_d_-
-- _o_p_t_i_o_n_s (whose absence is handled on a command-specific ba-
-- sis). Remote FTP commands known to support options include:
-- `MLST' (used for MLSD and MLST).
--
-- rreennaammee [_f_r_o_m [_t_o]]
-- Rename the file _f_r_o_m on the remote machine, to the file _t_o.
--
-- rreesseett Clear reply queue. This command re-synchronizes command/re-
-- ply sequencing with the remote FTP server. Resynchronization
-- may be necessary following a violation of the FTP protocol by
-- the remote server.
--
-- rreessttaarrtt _m_a_r_k_e_r
-- Restart the immediately following ggeett or ppuutt at the indicated
-- _m_a_r_k_e_r. On UNIX systems, marker is usually a byte offset in-
-- to the file.
--
-- rrhheellpp [_c_o_m_m_a_n_d_-_n_a_m_e]
-- Request help from the remote FTP server. If a _c_o_m_m_a_n_d_-_n_a_m_e
-- is specified it is supplied to the server as well.
--
-- rrmmddiirr _d_i_r_e_c_t_o_r_y_-_n_a_m_e
-- Delete a directory on the remote machine.
--
-- rrssttaattuuss [_r_e_m_o_t_e_-_f_i_l_e]
-- With no arguments, show status of remote machine. If _r_e_m_o_t_e_-
-- _f_i_l_e is specified, show status of _r_e_m_o_t_e_-_f_i_l_e on remote ma-
-- chine.
--
-- rruunniiqquuee Toggle storing of files on the local system with unique file-
-- names. If a file already exists with a name equal to the
-- target local filename for a ggeett or mmggeett command, a ".1" is
-- appended to the name. If the resulting name matches another
-- existing file, a ".2" is appended to the original name. If
-- this process continues up to ".99", an error message is
-- printed, and the transfer does not take place. The generated
-- unique filename will be reported. Note that rruunniiqquuee will not
-- affect local files generated from a shell command (see be-
-- low). The default value is off.
--
-- sseenndd _l_o_c_a_l_-_f_i_l_e [_r_e_m_o_t_e_-_f_i_l_e]
-- A synonym for ppuutt.
--
-- sseennddppoorrtt Toggle the use of PORT commands. By default, ffttpp will at-
-- tempt to use a PORT command when establishing a connection
-- for each data transfer. The use of PORT commands can prevent
-- delays when performing multiple file transfers. If the PORT
-- command fails, ffttpp will use the default data port. When the
-- use of PORT commands is disabled, no attempt will be made to
-- use PORT commands for each data transfer. This is useful for
-- certain FTP implementations which do ignore PORT commands
-- but, incorrectly, indicate they've been accepted.
--
-- sseett [_o_p_t_i_o_n _v_a_l_u_e]
-- Set _o_p_t_i_o_n to _v_a_l_u_e. If _o_p_t_i_o_n and _v_a_l_u_e are not given, dis-
-- play all of the options and their values. The currently sup-
-- ported options are:
--
-- anonpass Defaults to $FTPANONPASS
--
-- ftp_proxy Defaults to $ftp_proxy.
--
-- http_proxy Defaults to $http_proxy.
--
-- no_proxy Defaults to $no_proxy.
--
-- pager Defaults to $PAGER.
--
-- prompt Defaults to $FTPPROMPT.
--
-- rprompt Defaults to $FTPRPROMPT.
--
-- ssiittee _a_r_g_1 _a_r_g_2 _._._.
-- The arguments specified are sent, verbatim, to the remote FTP
-- server as a SITE command.
--
-- ssiizzee _r_e_m_o_t_e_-_f_i_l_e
-- Return size of _r_e_m_o_t_e_-_f_i_l_e on remote machine.
--
-- ssnnddbbuuff _s_i_z_e
-- Set the size of the socket send buffer to _s_i_z_e.
--
-- ssttaattuuss Show the current status of ffttpp.
--
-- ssttrruucctt _s_t_r_u_c_t_-_n_a_m_e
-- Set the file transfer _s_t_r_u_c_t_u_r_e to _s_t_r_u_c_t_-_n_a_m_e. The default
-- (and only supported) structure is ``file''.
--
-- ssuunniiqquuee Toggle storing of files on remote machine under unique file
-- names. The remote FTP server must support FTP protocol STOU
-- command for successful completion. The remote server will
-- report unique name. Default value is off.
--
-- ssyysstteemm Show the type of operating system running on the remote ma-
-- chine.
--
-- tteenneexx Set the file transfer type to that needed to talk to TENEX
-- machines.
--
-- tthhrroottttllee A synonym for rraattee.
--
-- ttrraaccee Toggle packet tracing.
--
-- ttyyppee [_t_y_p_e_-_n_a_m_e]
-- Set the file transfer ttyyppee to _t_y_p_e_-_n_a_m_e. If no type is spec-
-- ified, the current type is printed. The default type is net-
-- work ASCII.
--
-- uummaasskk [_n_e_w_m_a_s_k]
-- Set the default umask on the remote server to _n_e_w_m_a_s_k. If
-- _n_e_w_m_a_s_k is omitted, the current umask is printed.
--
-- uunnsseett _o_p_t_i_o_n
-- Unset _o_p_t_i_o_n. Refer to sseett for more information.
--
-- uussaaggee _c_o_m_m_a_n_d
-- Print the usage message for _c_o_m_m_a_n_d.
--
-- uusseerr _u_s_e_r_-_n_a_m_e [_p_a_s_s_w_o_r_d [_a_c_c_o_u_n_t]]
-- Identify yourself to the remote FTP server. If the _p_a_s_s_w_o_r_d
-- is not specified and the server requires it, ffttpp will prompt
-- the user for it (after disabling local echo). If an _a_c_c_o_u_n_t
-- field is not specified, and the FTP server requires it, the
-- user will be prompted for it. If an _a_c_c_o_u_n_t field is speci-
-- fied, an account command will be relayed to the remote server
-- after the login sequence is completed if the remote server
-- did not require it for logging in. Unless ffttpp is invoked
-- with ``auto-login'' disabled, this process is done automati-
-- cally on initial connection to the FTP server.
--
-- vveerrbboossee Toggle verbose mode. In verbose mode, all responses from the
-- FTP server are displayed to the user. In addition, if ver-
-- bose is on, when a file transfer completes, statistics re-
-- garding the efficiency of the transfer are reported. By de-
-- fault, verbose is on.
--
-- xxffeerrbbuuff _s_i_z_e
-- Set the size of the socket send and receive buffers to _s_i_z_e.
--
-- ?? [_c_o_m_m_a_n_d]
-- A synonym for hheellpp.
--
-- Command arguments which have embedded spaces may be quoted with quote `"'
-- marks.
--
-- Commands which toggle settings can take an explicit oonn or ooffff argument to
-- force the setting appropriately.
--
-- Commands which take a byte count as an argument (e.g., hhaasshh, rraattee, and
-- xxffeerrbbuuff) support an optional suffix on the argument which changes the in-
-- terpretation of the argument. Supported suffixes are:
-- b Causes no modification. (Optional)
-- k Kilo; multiply the argument by 1024
-- m Mega; multiply the argument by 1048576
-- g Giga; multiply the argument by 1073741824
--
-- If ffttpp receives a SIGINFO (see the ``status'' argument of stty(1)) or
-- SIGQUIT signal whilst a transfer is in progress, the current transfer
-- rate statistics will be written to the standard error output, in the same
-- format as the standard completion message.
--
--AAUUTTOO--FFEETTCCHHIINNGG FFIILLEESS
-- In addition to standard commands, this version of ffttpp supports an auto-
-- fetch feature. To enable auto-fetch, simply pass the list of host-
-- names/files on the command line.
--
-- The following formats are valid syntax for an auto-fetch element:
--
-- [user@]host:[path][/]
-- ``Classic'' FTP format.
--
-- If _p_a_t_h contains a glob character and globbing is enabled, (see
-- gglloobb), then the equivalent of `mget path' is performed.
--
-- If the directory component of _p_a_t_h contains no globbing characters,
-- it is stored locally with the name basename (see basename(1)) of
-- ppaatthh, in the current directory. Otherwise, the full remote name is
-- used as the local name, relative to the local root directory.
--
-- ftp://[user[:password]@]host[:port]/path[/][;type=X]
-- An FTP URL, retrieved using the FTP protocol if sseett ffttpp__pprrooxxyy isn't
-- defined. Otherwise, transfer the URL using HTTP via the proxy de-
-- fined in sseett ffttpp__pprrooxxyy. If sseett ffttpp__pprrooxxyy isn't defined and _u_s_e_r is
-- given, login as _u_s_e_r. In this case, use _p_a_s_s_w_o_r_d if supplied, oth-
-- erwise prompt the user for one.
--
-- In order to be compliant with RRFFCC 11773388, ffttpp strips the leading `/'
-- from _p_a_t_h, resulting in a transfer relative from the default login
-- directory of the user. If the _/ directory is required, use a lead-
-- ing path of ``%2F''. If a user's home directory is required (and
-- the remote server supports the syntax), use a leading path of
-- ``%7Euser/''. For example, to retrieve _/_e_t_c_/_m_o_t_d from `localhost'
-- as the user `myname' with the password `mypass', use
-- ``ftp://myname:mypass@localhost/%2fetc/motd''
--
-- If a suffix of `;type=A' or `;type=I' is supplied, then the trans-
-- fer type will take place as ascii or binary (respectively). The
-- default transfer type is binary.
--
-- http://[user[:password]@]host[:port]/path
-- An HTTP URL, retrieved using the HTTP protocol. If sseett hhttttpp__pprrooxxyy
-- is defined, it is used as a URL to an HTTP proxy server. If HTTP
-- authorisation is required to retrieve _p_a_t_h, and `user' (and option-
-- ally `password') is in the URL, use them for the first attempt to
-- authenticate.
--
-- file:///path
-- A local URL, copied from _/_p_a_t_h.
--
-- Unless noted otherwise above, and --oo _o_u_t_p_u_t is not given, the file is
-- stored in the current directory as the basename(1) of _p_a_t_h.
--
-- If a classic format or an FTP URL format has a trailing `/' or an empty
-- _p_a_t_h component, then ffttpp will connect to the site and ccdd to the directory
-- given as the path, and leave the user in interactive mode ready for fur-
-- ther input. This will not work if sseett ffttpp__pprrooxxyy is being used.
--
-- Direct HTTP transfers use HTTP 1.1. Proxied FTP and HTTP transfers use
-- HTTP 1.0.
--
-- If --RR is given, all auto-fetches that don't go via the FTP or HTTP prox-
-- ies will be restarted. For FTP, this is implemented by using rreeggeett in-
-- stead of ggeett. For HTTP, this is implemented by using the `Range: bytes='
-- HTTP/1.1 directive.
--
-- If WWW or proxy WWW authentication is required, you will be prompted to
-- enter a username and password to authenticate with.
--
-- When specifying IPv6 numeric addresses in a URL, you need to surround the
-- address in square brackets. E.g.: ``ftp://[::1]:21/''. This is because
-- colons are used in IPv6 numeric address as well as being the separator
-- for the port number.
--
--AABBOORRTTIINNGG AA FFIILLEE TTRRAANNSSFFEERR
-- To abort a file transfer, use the terminal interrupt key (usually Ctrl-
-- C). Sending transfers will be immediately halted. Receiving transfers
-- will be halted by sending an FTP protocol ABOR command to the remote
-- server, and discarding any further data received. The speed at which
-- this is accomplished depends upon the remote server's support for ABOR
-- processing. If the remote server does not support the ABOR command, the
-- prompt will not appear until the remote server has completed sending the
-- requested file.
--
-- If the terminal interrupt key sequence is used whilst ffttpp is awaiting a
-- reply from the remote server for the ABOR processing, then the connection
-- will be closed. This is different from the traditional behaviour (which
-- ignores the terminal interrupt during this phase), but is considered more
-- useful.
--
--FFIILLEE NNAAMMIINNGG CCOONNVVEENNTTIIOONNSS
-- Files specified as arguments to ffttpp commands are processed according to
-- the following rules.
--
-- 1. If the file name `--' is specified, the _s_t_d_i_n (for reading) or _s_t_d_o_u_t
-- (for writing) is used.
--
-- 2. If the first character of the file name is `|', the remainder of the
-- argument is interpreted as a shell command. ffttpp then forks a shell,
-- using popen(3) with the argument supplied, and reads (writes) from
-- the stdout (stdin). If the shell command includes spaces, the argu-
-- ment must be quoted; e.g. ``"| ls -lt"''. A particularly useful
-- example of this mechanism is: ``dir "" |more''.
--
-- 3. Failing the above checks, if ``globbing'' is enabled, local file
-- names are expanded according to the rules used in the csh(1); c.f.
-- the gglloobb command. If the ffttpp command expects a single local file
-- (e.g. ppuutt), only the first filename generated by the "globbing" op-
-- eration is used.
--
-- 4. For mmggeett commands and ggeett commands with unspecified local file
-- names, the local filename is the remote filename, which may be al-
-- tered by a ccaassee, nnttrraannss, or nnmmaapp setting. The resulting filename
-- may then be altered if rruunniiqquuee is on.
--
-- 5. For mmppuutt commands and ppuutt commands with unspecified remote file
-- names, the remote filename is the local filename, which may be al-
-- tered by a nnttrraannss or nnmmaapp setting. The resulting filename may then
-- be altered by the remote server if ssuunniiqquuee is on.
--
--FFIILLEE TTRRAANNSSFFEERR PPAARRAAMMEETTEERRSS
-- The FTP specification specifies many parameters which may affect a file
-- transfer. The ttyyppee may be one of ``ascii'', ``image'' (binary),
-- ``ebcdic'', and ``local byte size'' (for PDP-10's and PDP-20's mostly).
-- ffttpp supports the ascii and image types of file transfer, plus local byte
-- size 8 for tteenneexx mode transfers.
--
-- ffttpp supports only the default values for the remaining file transfer pa-
-- rameters: mmooddee, ffoorrmm, and ssttrruucctt.
--
--TTHHEE ..nneettrrcc FFIILLEE
-- The _._n_e_t_r_c file contains login and initialization information used by the
-- auto-login process. It resides in the user's home directory, unless
-- overridden with the --NN _n_e_t_r_c option, or specified in the NETRC environ-
-- ment variable. The following tokens are recognized; they may be separat-
-- ed by spaces, tabs, or new-lines:
--
-- mmaacchhiinnee _n_a_m_e
-- Identify a remote machine _n_a_m_e. The auto-login process search-
-- es the _._n_e_t_r_c file for a mmaacchhiinnee token that matches the remote
-- machine specified on the ffttpp command line or as an ooppeenn command
-- argument. Once a match is made, the subsequent _._n_e_t_r_c tokens
-- are processed, stopping when the end of file is reached or an-
-- other mmaacchhiinnee or a ddeeffaauulltt token is encountered.
--
-- ddeeffaauulltt This is the same as mmaacchhiinnee _n_a_m_e except that ddeeffaauulltt matches
-- any name. There can be only one ddeeffaauulltt token, and it must be
-- after all mmaacchhiinnee tokens. This is normally used as:
--
-- default login anonymous password user@site
--
-- thereby giving the user an automatic anonymous FTP login to ma-
-- chines not specified in _._n_e_t_r_c. This can be overridden by us-
-- ing the --nn flag to disable auto-login.
--
-- llooggiinn _n_a_m_e
-- Identify a user on the remote machine. If this token is pre-
-- sent, the auto-login process will initiate a login using the
-- specified _n_a_m_e.
--
-- ppaasssswwoorrdd _s_t_r_i_n_g
-- Supply a password. If this token is present, the auto-login
-- process will supply the specified string if the remote server
-- requires a password as part of the login process. Note that if
-- this token is present in the _._n_e_t_r_c file for any user other
-- than _a_n_o_n_y_m_o_u_s, ffttpp will abort the auto-login process if the
-- _._n_e_t_r_c is readable by anyone besides the user.
--
-- aaccccoouunntt _s_t_r_i_n_g
-- Supply an additional account password. If this token is pre-
-- sent, the auto-login process will supply the specified string
-- if the remote server requires an additional account password,
-- or the auto-login process will initiate an ACCT command if it
-- does not.
--
-- mmaaccddeeff _n_a_m_e
-- Define a macro. This token functions like the ffttpp mmaaccddeeff com-
-- mand functions. A macro is defined with the specified name;
-- its contents begin with the next _._n_e_t_r_c line and continue until
-- a blank line (consecutive new-line characters) is encountered.
-- If a macro named iinniitt is defined, it is automatically executed
-- as the last step in the auto-login process.
--
--CCOOMMMMAANNDD LLIINNEE EEDDIITTIINNGG
-- ffttpp supports interactive command line editing, via the editline(3) li-
-- brary. It is enabled with the eeddiitt command, and is enabled by default if
-- input is from a tty. Previous lines can be recalled and edited with the
-- arrow keys, and other GNU Emacs-style editing keys may be used as well.
--
-- The editline(3) library is configured with a _._e_d_i_t_r_c file - refer to
-- editrc(5) for more information.
--
-- An extra key binding is available to ffttpp to provide context sensitive
-- command and filename completion (including remote file completion). To
-- use this, bind a key to the editline(3) command ffttpp--ccoommpplleettee. By de-
-- fault, this is bound to the TAB key.
--
--CCOOMMMMAANNDD LLIINNEE PPRROOMMPPTT
-- By default, ffttpp displays a command line prompt of ``ftp>'' to the user.
-- This can be changed with the sseett pprroommpptt command.
--
-- A prompt can be displayed on the right side of the screen (after the com-
-- mand input) with the sseett rrpprroommpptt command.
--
-- The following formatting sequences are replaced by the given information:
--
-- %/ The current remote working directory.
--
-- %c[[0]_n], %.[[0]_n]
-- The trailing component of the current remote working directo-
-- ry, or _n trailing components if a digit _n is given. If _n be-
-- gins with `0', the number of skipped components precede the
-- trailing component(s) in the format ``/_<_s_k_i_p_p_e_d_>trailing''
-- (for `%c') or ``...trailing'' (for `%.').
--
-- %M The remote host name.
--
-- %m The remote host name, up to the first `.'.
--
-- %n The remote user name.
--
-- %% A single `%'.
--
--EENNVVIIRROONNMMEENNTT
-- ffttpp uses the following environment variables.
--
-- FTPANONPASS Password to send in an anonymous FTP transfer. Defaults
-- to ```whoami`@''.
--
-- FTPMODE Overrides the default operation mode. Support values are:
--
-- active active mode FTP only
--
-- auto automatic determination of passive or active
-- (this is the default)
--
-- gate gate-ftp mode
--
-- passive passive mode FTP only
--
-- FTPPROMPT Command-line prompt to use. Defaults to ``ftp>''. Refer
-- to _C_O_M_M_A_N_D _L_I_N_E _P_R_O_M_P_T for more information.
--
-- FTPRPROMPT Command-line right side prompt to use. Defaults to ``''.
-- Refer to _C_O_M_M_A_N_D _L_I_N_E _P_R_O_M_P_T for more information.
--
-- FTPSERVER Host to use as gate-ftp server when ggaattee is enabled.
--
-- FTPSERVERPORT Port to use when connecting to gate-ftp server when ggaattee
-- is enabled. Default is port returned by a ggeettsseerrvvbbyynnaammee()
-- lookup of ``ftpgate/tcp''.
--
-- HOME For default location of a _._n_e_t_r_c file, if one exists.
--
-- NETRC An alternate location of the _._n_e_t_r_c file.
--
-- PAGER Used by various commands to display files. Defaults to
-- more(1) if empty or not set.
--
-- SHELL For default shell.
--
-- ftp_proxy URL of FTP proxy to use when making FTP URL requests (if
-- not defined, use the standard FTP protocol).
--
-- _N_O_T_E: this is not used for interactive sessions, only for
-- command-line fetches.
--
-- http_proxy URL of HTTP proxy to use when making HTTP URL requests.
-- If proxy authentication is required and there is a user-
-- name and password in this URL, they will automatically be
-- used in the first attempt to authenticate to the proxy.
--
-- Note that the use of a username and password in ftp_proxy
-- and http_proxy may be incompatible with other programs
-- that use it (such as lynx(1)).
--
-- _N_O_T_E: this is not used for interactive sessions, only for
-- command-line fetches.
--
-- no_proxy A space or comma separated list of hosts (or domains) for
-- which proxying is not to be used. Each entry may have an
-- optional trailing ":port", which restricts the matching to
-- connections to that port.
--
--SSEEEE AALLSSOO
-- getservbyname(3), editrc(5), services(5), ftpd(8)
--
--SSTTAANNDDAARRDDSS
-- ffttpp attempts to be compliant with RRFFCC 995599, RRFFCC 11112233, RRFFCC 11773388, RRFFCC 22006688,
-- RRFFCC 22338899, RRFFCC 22442288, RRFFCC 22773322, and ddrraafftt--iieettff--ffttppeexxtt--mmllsstt--1111.
--
--HHIISSTTOORRYY
-- The ffttpp command appeared in 4.2BSD.
--
-- Various features such as command line editing, context sensitive command
-- and file completion, dynamic progress bar, automatic fetching of files
-- and URLs, modification time preservation, transfer rate throttling, con-
-- figurable command line prompt, and other enhancements over the standard
-- BSD ffttpp were implemented in NetBSD 1.3 and later releases by Luke Mewburn
-- <lukem@netbsd.org>.
--
-- IPv6 support was added by the WIDE/KAME project (but may not be present
-- in all non-NetBSD versions of this program, depending if the operating
-- system supports IPv6 in a similar manner to KAME).
--
--BBUUGGSS
-- Correct execution of many commands depends upon proper behavior by the
-- remote server.
--
-- An error in the treatment of carriage returns in the 4.2BSD ascii-mode
-- transfer code has been corrected. This correction may result in incor-
-- rect transfers of binary files to and from 4.2BSD servers using the ascii
-- type. Avoid this problem by using the binary image type.
--
-- ffttpp assumes that all IPv4 mapped addresses (IPv6 addresses with a form
-- like ::ffff:10.1.1.1) indicate IPv4 destinations which can be handled by
-- AF_INET sockets. However, in certain IPv6 network configurations, this
-- assumption is not true. In such an environment, IPv4 mapped addresses
-- must be passed to AF_INET6 sockets directly. For example, if your site
-- uses a SIIT translator for IPv6-to-IPv4 translation, ffttpp is unable to
-- support your configuration.
--
--NetBSD 1.6_BETA1 May 18, 2002 16
-diff -Nru src/ftp_var.h /home/spock/ftp/ftp_var.h
---- src/ftp_var.h Sat Jun 15 05:40:36 2002
-+++ /home/spock/ftp/ftp_var.h Thu Jun 12 02:02:11 2003
-@@ -1,7 +1,7 @@
--/* $NetBSD: ftp_var.h,v 1.62 2001/12/26 09:40:16 lukem Exp $ */
-+/* $NetBSD: ftp_var.h,v 1.64 2003/01/21 16:08:07 jhawk Exp $ */
-
- /*-
-- * Copyright (c) 1996-2001 The NetBSD Foundation, Inc.
-+ * Copyright (c) 1996-2003 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
-@@ -111,14 +111,20 @@
- #define NO_PROGRESS
- #endif
-
-+#include <sys/param.h>
-+
-+#include <netinet/in.h>
-+#include <arpa/inet.h>
-+
-+#include <setjmp.h>
-+#include <stringlist.h>
-+
- #ifndef NO_EDITCOMPLETE
- #include <histedit.h>
- #endif /* !NO_EDITCOMPLETE */
-
--typedef void (*sigfunc)(int);
--
- #include "extern.h"
--
-+#include "progressbar.h"
-
- /*
- * Format of command table.
-@@ -175,7 +181,6 @@
-
- #define HASHBYTES 1024 /* default mark for `hash' command */
- #define DEFAULTINCR 1024 /* default increment for `rate' command */
--#define STALLTIME 5 /* # of seconds of no xfer before "stalling" */
-
- #define FTP_PORT 21 /* default if ! getservbyname("ftp/tcp") */
- #define HTTP_PORT 80 /* default if ! getservbyname("http/tcp") */
-@@ -204,9 +209,7 @@
- GLOBAL int hash; /* print # for each buffer transferred */
- GLOBAL int mark; /* number of bytes between hashes */
- GLOBAL int sendport; /* use PORT/LPRT cmd for each data connection */
--GLOBAL int verbose; /* print messages coming back from server */
- GLOBAL int connected; /* 1 = connected to server, -1 = logged in */
--GLOBAL int fromatty; /* input is from a terminal */
- GLOBAL int interactive; /* interactively prompt on m* cmds */
- GLOBAL int confirmrest; /* confirm rest of current m* cmd */
- GLOBAL int debug; /* debugging level */
-@@ -223,7 +226,6 @@
- GLOBAL int ntflag; /* use ntin ntout tables for name translation */
- GLOBAL int mapflag; /* use mapin mapout templates on file names */
- GLOBAL int preserve; /* preserve modification time on files */
--GLOBAL int progress; /* display transfer progress bar */
- GLOBAL int code; /* return/reply code for ftp command */
- GLOBAL int crflag; /* if 1, strip car. rets. on ascii gets */
- GLOBAL int passivemode; /* passive mode enabled */
-@@ -252,9 +254,7 @@
- GLOBAL int rate_put; /* maximum put xfer rate */
- GLOBAL int rate_put_incr; /* increment for put xfer rate */
- GLOBAL int retry_connect; /* seconds between retrying connection */
--GLOBAL int ttywidth; /* width of tty */
- GLOBAL char *tmpdir; /* temporary directory */
--GLOBAL FILE *ttyout; /* stdout, or stderr if retrieving to stdout */
- GLOBAL int epsv4; /* use EPSV/EPRT on IPv4 connections */
- GLOBAL int epsv4bad; /* EPSV doesn't work on the current server */
- GLOBAL int editing; /* command line editing enabled */
-@@ -268,10 +268,7 @@
- GLOBAL size_t cursor_argo; /* offset of cursor in margv[cursor_argc] */
- #endif /* !NO_EDITCOMPLETE */
-
--GLOBAL off_t bytes; /* current # of bytes read */
--GLOBAL off_t filesize; /* size of file being transferred */
- GLOBAL char *direction; /* direction transfer is occurring */
--GLOBAL off_t restart_point; /* offset to restart transfer */
-
- GLOBAL char *hostname; /* name of host connected to */
- GLOBAL int unix_server; /* server is unix, can use binary for ascii */
-@@ -287,8 +284,6 @@
- GLOBAL char *outfile; /* filename to output URLs to */
- GLOBAL int restartautofetch; /* restart auto-fetch */
-
--GLOBAL sigjmp_buf toplevel; /* non-local goto stuff for cmd scanner */
--
- GLOBAL char line[FTPBUFLEN]; /* input line buffer */
- GLOBAL char *stringbase; /* current scan point in line buffer */
- GLOBAL char argbuf[FTPBUFLEN]; /* argument storage buffer */
-@@ -336,29 +331,7 @@
- #endif
-
- #ifdef NO_LONG_LONG
--# define LLF "%ld"
--# define LLFP(x) "%" x "ld"
--# define LLT long
--# define ULLF "%lu"
--# define ULLFP(x) "%" x "lu"
--# define ULLT unsigned long
- # define STRTOLL(x,y,z) strtol(x,y,z)
- #else
--#if HAVE_PRINTF_QD
--# define LLF "%qd"
--# define LLFP(x) "%" x "qd"
--# define LLT long long
--# define ULLF "%qu"
--# define ULLFP(x) "%" x "qu"
--# define ULLT unsigned long long
--# define STRTOLL(x,y,z) strtoll(x,y,z)
--#else
--# define LLF "%lld"
--# define LLFP(x) "%" x "lld"
--# define LLT long long
--# define ULLF "%llu"
--# define ULLFP(x) "%" x "llu"
--# define ULLT unsigned long long
- # define STRTOLL(x,y,z) strtoll(x,y,z)
--#endif
- #endif
-diff -Nru src/main.c /home/spock/ftp/main.c
---- src/main.c Sat Jun 15 05:40:36 2002
-+++ /home/spock/ftp/main.c Thu Jun 12 02:02:11 2003
-@@ -1,4 +1,4 @@
--/* $NetBSD: main.c,v 1.82 2002/06/05 13:51:54 lukem Exp $ */
-+/* $NetBSD: main.c,v 1.84 2003/05/14 14:31:00 wiz Exp $ */
-
- /*-
- * Copyright (c) 1996-2002 The NetBSD Foundation, Inc.
-@@ -98,11 +98,36 @@
- * SUCH DAMAGE.
- */
-
-+#include <sys/cdefs.h>
-+#ifndef lint
-+__COPYRIGHT("@(#) Copyright (c) 1985, 1989, 1993, 1994\n\
-+ The Regents of the University of California. All rights reserved.\n");
-+#endif /* not lint */
-+
-+#ifndef lint
-+#if 0
-+static char sccsid[] = "@(#)main.c 8.6 (Berkeley) 10/9/94";
-+#else
-+__RCSID("$NetBSD: main.c,v 1.84 2003/05/14 14:31:00 wiz Exp $");
-+#endif
-+#endif /* not lint */
-+
- /*
- * FTP User Program -- Command Interface.
- */
-+#include <sys/types.h>
-+#include <sys/socket.h>
-
--#include "lukemftp.h"
-+#include <err.h>
-+#include <errno.h>
-+#include <netdb.h>
-+#include <paths.h>
-+#include <pwd.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <unistd.h>
-+#include <locale.h>
-
- #define GLOBAL /* force GLOBAL decls in ftp_var.h to be declared */
- #include "ftp_var.h"
-@@ -123,9 +148,7 @@
- char *cp, *ep, *anonuser, *anonpass, *upload_path;
- int dumbterm, s, len, isupload;
-
--#if 0 /* XXX */
- setlocale(LC_ALL, "");
--#endif
- setprogname(argv[0]);
-
- ftpport = "ftp";
-@@ -258,7 +281,7 @@
- }
- }
-
-- while ((ch = getopt(argc, argv, "46AadefginN:o:pP:r:RtT:u:vV")) != -1) {
-+ while ((ch = getopt(argc, argv, "46AadefginN:o:pP:q:r:RtT:u:vV")) != -1) {
- switch (ch) {
- case '4':
- family = AF_INET;
-@@ -330,6 +353,12 @@
- ftpport = optarg;
- break;
-
-+ case 'q':
-+ quit_time = strtol(optarg, &ep, 10);
-+ if (quit_time < 1 || *ep != '\0')
-+ errx(1, "bad quit value: %s", optarg);
-+ break;
-+
- case 'r':
- retry_connect = strtol(optarg, &ep, 10);
- if (retry_connect < 1 || *ep != '\0')
-@@ -1003,6 +1032,6 @@
- " [-T dir,max[,inc][[user@]host [port]]] [host:path[/]]\n"
- " [file:///file] [ftp://[user[:pass]@]host[:port]/path[/]]\n"
- " [http://[user[:pass]@]host[:port]/path] [...]\n"
--" %s -u url file [...]\n", progname, progname);
-+" %s -u URL file [...]\n", progname, progname);
- exit(1);
- }
-diff -Nru src/progressbar.c /home/spock/ftp/progressbar.c
---- src/progressbar.c Wed Dec 31 19:00:00 1969
-+++ /home/spock/ftp/progressbar.c Thu Jun 12 02:02:11 2003
-@@ -0,0 +1,460 @@
-+/* $NetBSD: progressbar.c,v 1.3 2003/02/28 09:53:49 lukem Exp $ */
-+
-+/*-
-+ * Copyright (c) 1997-2003 The NetBSD Foundation, Inc.
-+ * All rights reserved.
-+ *
-+ * This code is derived from software contributed to The NetBSD Foundation
-+ * by Luke Mewburn.
-+ *
-+ * This code is derived from software contributed to The NetBSD Foundation
-+ * by Jason R. Thorpe of the Numerical Aerospace Simulation Facility,
-+ * NASA Ames Research Center.
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions
-+ * are met:
-+ * 1. Redistributions of source code must retain the above copyright
-+ * notice, this list of conditions and the following disclaimer.
-+ * 2. Redistributions in binary form must reproduce the above copyright
-+ * notice, this list of conditions and the following disclaimer in the
-+ * documentation and/or other materials provided with the distribution.
-+ * 3. All advertising materials mentioning features or use of this software
-+ * must display the following acknowledgement:
-+ * This product includes software developed by the NetBSD
-+ * Foundation, Inc. and its contributors.
-+ * 4. Neither the name of The NetBSD Foundation nor the names of its
-+ * contributors may be used to endorse or promote products derived
-+ * from this software without specific prior written permission.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
-+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
-+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
-+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-+ * POSSIBILITY OF SUCH DAMAGE.
-+ */
-+
-+#include <sys/cdefs.h>
-+#ifndef lint
-+__RCSID("$NetBSD: progressbar.c,v 1.3 2003/02/28 09:53:49 lukem Exp $");
-+#endif /* not lint */
-+
-+/*
-+ * FTP User Program -- Misc support routines
-+ */
-+#include <sys/types.h>
-+#include <sys/param.h>
-+
-+#include <err.h>
-+#include <errno.h>
-+#include <signal.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <time.h>
-+#include <tzfile.h>
-+#include <unistd.h>
-+
-+#include "progressbar.h"
-+
-+#if !defined(NO_PROGRESS)
-+/*
-+ * return non-zero if we're the current foreground process
-+ */
-+int
-+foregroundproc(void)
-+{
-+ static pid_t pgrp = -1;
-+
-+ if (pgrp == -1)
-+ pgrp = getpgrp();
-+
-+ return (tcgetpgrp(fileno(ttyout)) == pgrp);
-+}
-+#endif /* !defined(NO_PROGRESS) */
-+
-+
-+#ifndef NO_PROGRESS
-+static void updateprogressmeter(int);
-+
-+/*
-+ * SIGALRM handler to update the progress meter
-+ */
-+static void
-+updateprogressmeter(int dummy)
-+{
-+ int oerrno = errno;
-+
-+ progressmeter(0);
-+ errno = oerrno;
-+}
-+#endif /* NO_PROGRESS */
-+
-+
-+/*
-+ * List of order of magnitude prefixes.
-+ * The last is `P', as 2^64 = 16384 Petabytes
-+ */
-+static const char prefixes[] = " KMGTP";
-+
-+/*
-+ * Display a transfer progress bar if progress is non-zero.
-+ * SIGALRM is hijacked for use by this function.
-+ * - Before the transfer, set filesize to size of file (or -1 if unknown),
-+ * and call with flag = -1. This starts the once per second timer,
-+ * and a call to updateprogressmeter() upon SIGALRM.
-+ * - During the transfer, updateprogressmeter will call progressmeter
-+ * with flag = 0
-+ * - After the transfer, call with flag = 1
-+ */
-+static struct timeval start;
-+static struct timeval lastupdate;
-+
-+#define BUFLEFT (sizeof(buf) - len)
-+
-+void
-+progressmeter(int flag)
-+{
-+ static off_t lastsize;
-+ off_t cursize;
-+ struct timeval now, wait;
-+#ifndef NO_PROGRESS
-+ struct timeval td;
-+ off_t abbrevsize, bytespersec;
-+ double elapsed;
-+ int ratio, barlength, i, len, remaining;
-+
-+ /*
-+ * Work variables for progress bar.
-+ *
-+ * XXX: if the format of the progress bar changes
-+ * (especially the number of characters in the
-+ * `static' portion of it), be sure to update
-+ * these appropriately.
-+ */
-+ char buf[256]; /* workspace for progress bar */
-+#define BAROVERHEAD 43 /* non `*' portion of progress bar */
-+ /*
-+ * stars should contain at least
-+ * sizeof(buf) - BAROVERHEAD entries
-+ */
-+ static const char stars[] =
-+"*****************************************************************************"
-+"*****************************************************************************"
-+"*****************************************************************************";
-+
-+#endif
-+
-+ if (flag == -1) {
-+ (void)gettimeofday(&start, NULL);
-+ lastupdate = start;
-+ lastsize = restart_point;
-+ }
-+
-+ (void)gettimeofday(&now, NULL);
-+ cursize = bytes + restart_point;
-+ timersub(&now, &lastupdate, &wait);
-+ if (cursize > lastsize) {
-+ lastupdate = now;
-+ lastsize = cursize;
-+ wait.tv_sec = 0;
-+ } else {
-+#ifndef STANDALONE_PROGRESS
-+ if (quit_time > 0 && wait.tv_sec > quit_time) {
-+ len = snprintf(buf, sizeof(buf), "\r\n%s: "
-+ "transfer aborted because stalled for %lu sec.\r\n",
-+ getprogname(), (unsigned long)wait.tv_sec);
-+ (void)write(fileno(ttyout), buf, len);
-+ (void)xsignal(SIGALRM, SIG_DFL);
-+ alarmtimer(0);
-+ siglongjmp(toplevel, 1);
-+ }
-+#endif /* !STANDALONE_PROGRESS */
-+ }
-+ /*
-+ * Always set the handler even if we are not the foreground process.
-+ */
-+#ifdef STANDALONE_PROGRESS
-+ if (progress) {
-+#else
-+ if (quit_time > 0 || progress) {
-+#endif /* !STANDALONE_PROGRESS */
-+ if (flag == -1) {
-+ (void)xsignal_restart(SIGALRM, updateprogressmeter, 1);
-+ alarmtimer(1); /* set alarm timer for 1 Hz */
-+ } else if (flag == 1) {
-+ (void)xsignal(SIGALRM, SIG_DFL);
-+ alarmtimer(0);
-+ }
-+ }
-+#ifndef NO_PROGRESS
-+ if (!progress)
-+ return;
-+ len = 0;
-+
-+ /*
-+ * print progress bar only if we are foreground process.
-+ */
-+ if (! foregroundproc())
-+ return;
-+
-+ len += snprintf(buf + len, BUFLEFT, "\r");
-+ if (filesize > 0) {
-+ ratio = (int)((double)cursize * 100.0 / (double)filesize);
-+ ratio = MAX(ratio, 0);
-+ ratio = MIN(ratio, 100);
-+ len += snprintf(buf + len, BUFLEFT, "%3d%% ", ratio);
-+
-+ /*
-+ * calculate the length of the `*' bar, ensuring that
-+ * the number of stars won't exceed the buffer size
-+ */
-+ barlength = MIN(sizeof(buf) - 1, ttywidth) - BAROVERHEAD;
-+ if (barlength > 0) {
-+ i = barlength * ratio / 100;
-+ len += snprintf(buf + len, BUFLEFT,
-+ "|%.*s%*s|", i, stars, barlength - i, "");
-+ }
-+ }
-+
-+ abbrevsize = cursize;
-+ for (i = 0; abbrevsize >= 100000 && i < sizeof(prefixes); i++)
-+ abbrevsize >>= 10;
-+ len += snprintf(buf + len, BUFLEFT, " " LLFP("5") " %c%c ",
-+ (LLT)abbrevsize,
-+ prefixes[i],
-+ i == 0 ? ' ' : 'B');
-+
-+ timersub(&now, &start, &td);
-+ elapsed = td.tv_sec + (td.tv_usec / 1000000.0);
-+
-+ bytespersec = 0;
-+ if (bytes > 0) {
-+ bytespersec = bytes;
-+ if (elapsed > 0.0)
-+ bytespersec /= elapsed;
-+ }
-+ for (i = 1; bytespersec >= 1024000 && i < sizeof(prefixes); i++)
-+ bytespersec >>= 10;
-+ len += snprintf(buf + len, BUFLEFT,
-+ " " LLFP("3") ".%02d %cB/s ",
-+ (LLT)(bytespersec / 1024),
-+ (int)((bytespersec % 1024) * 100 / 1024),
-+ prefixes[i]);
-+
-+ if (filesize > 0) {
-+ if (bytes <= 0 || elapsed <= 0.0 || cursize > filesize) {
-+ len += snprintf(buf + len, BUFLEFT, " --:-- ETA");
-+ } else if (wait.tv_sec >= STALLTIME) {
-+ len += snprintf(buf + len, BUFLEFT, " - stalled -");
-+ } else {
-+ remaining = (int)
-+ ((filesize - restart_point) / (bytes / elapsed) -
-+ elapsed);
-+ if (remaining >= 100 * SECSPERHOUR)
-+ len += snprintf(buf + len, BUFLEFT,
-+ " --:-- ETA");
-+ else {
-+ i = remaining / SECSPERHOUR;
-+ if (i)
-+ len += snprintf(buf + len, BUFLEFT,
-+ "%2d:", i);
-+ else
-+ len += snprintf(buf + len, BUFLEFT,
-+ " ");
-+ i = remaining % SECSPERHOUR;
-+ len += snprintf(buf + len, BUFLEFT,
-+ "%02d:%02d ETA", i / 60, i % 60);
-+ }
-+ }
-+ }
-+ if (flag == 1)
-+ len += snprintf(buf + len, BUFLEFT, "\n");
-+ (void)write(fileno(ttyout), buf, len);
-+
-+#endif /* !NO_PROGRESS */
-+}
-+
-+#ifndef STANDALONE_PROGRESS
-+/*
-+ * Display transfer statistics.
-+ * Requires start to be initialised by progressmeter(-1),
-+ * direction to be defined by xfer routines, and filesize and bytes
-+ * to be updated by xfer routines
-+ * If siginfo is nonzero, an ETA is displayed, and the output goes to stderr
-+ * instead of ttyout.
-+ */
-+void
-+ptransfer(int siginfo)
-+{
-+ struct timeval now, td, wait;
-+ double elapsed;
-+ off_t bytespersec;
-+ int remaining, hh, i, len;
-+
-+ char buf[256]; /* Work variable for transfer status. */
-+
-+ if (!verbose && !progress && !siginfo)
-+ return;
-+
-+ (void)gettimeofday(&now, NULL);
-+ timersub(&now, &start, &td);
-+ elapsed = td.tv_sec + (td.tv_usec / 1000000.0);
-+ bytespersec = 0;
-+ if (bytes > 0) {
-+ bytespersec = bytes;
-+ if (elapsed > 0.0)
-+ bytespersec /= elapsed;
-+ }
-+ len = 0;
-+ len += snprintf(buf + len, BUFLEFT, LLF " byte%s %s in ",
-+ (LLT)bytes, bytes == 1 ? "" : "s", direction);
-+ remaining = (int)elapsed;
-+ if (remaining > SECSPERDAY) {
-+ int days;
-+
-+ days = remaining / SECSPERDAY;
-+ remaining %= SECSPERDAY;
-+ len += snprintf(buf + len, BUFLEFT,
-+ "%d day%s ", days, days == 1 ? "" : "s");
-+ }
-+ hh = remaining / SECSPERHOUR;
-+ remaining %= SECSPERHOUR;
-+ if (hh)
-+ len += snprintf(buf + len, BUFLEFT, "%2d:", hh);
-+ len += snprintf(buf + len, BUFLEFT,
-+ "%02d:%02d ", remaining / 60, remaining % 60);
-+
-+ for (i = 1; bytespersec >= 1024000 && i < sizeof(prefixes); i++)
-+ bytespersec >>= 10;
-+ len += snprintf(buf + len, BUFLEFT, "(" LLF ".%02d %cB/s)",
-+ (LLT)(bytespersec / 1024),
-+ (int)((bytespersec % 1024) * 100 / 1024),
-+ prefixes[i]);
-+
-+ if (siginfo && bytes > 0 && elapsed > 0.0 && filesize >= 0
-+ && bytes + restart_point <= filesize) {
-+ remaining = (int)((filesize - restart_point) /
-+ (bytes / elapsed) - elapsed);
-+ hh = remaining / SECSPERHOUR;
-+ remaining %= SECSPERHOUR;
-+ len += snprintf(buf + len, BUFLEFT, " ETA: ");
-+ if (hh)
-+ len += snprintf(buf + len, BUFLEFT, "%2d:", hh);
-+ len += snprintf(buf + len, BUFLEFT, "%02d:%02d",
-+ remaining / 60, remaining % 60);
-+ timersub(&now, &lastupdate, &wait);
-+ if (wait.tv_sec >= STALLTIME)
-+ len += snprintf(buf + len, BUFLEFT, " (stalled)");
-+ }
-+ len += snprintf(buf + len, BUFLEFT, "\n");
-+ (void)write(siginfo ? STDERR_FILENO : fileno(ttyout), buf, len);
-+}
-+
-+/*
-+ * SIG{INFO,QUIT} handler to print transfer stats if a transfer is in progress
-+ */
-+void
-+psummary(int notused)
-+{
-+ int oerrno = errno;
-+
-+ if (bytes > 0) {
-+ if (fromatty)
-+ write(fileno(ttyout), "\n", 1);
-+ ptransfer(1);
-+ }
-+ errno = oerrno;
-+}
-+#endif /* !STANDALONE_PROGRESS */
-+
-+
-+/*
-+ * Set the SIGALRM interval timer for wait seconds, 0 to disable.
-+ */
-+void
-+alarmtimer(int wait)
-+{
-+ struct itimerval itv;
-+
-+ itv.it_value.tv_sec = wait;
-+ itv.it_value.tv_usec = 0;
-+ itv.it_interval = itv.it_value;
-+ setitimer(ITIMER_REAL, &itv, NULL);
-+}
-+
-+
-+/*
-+ * Install a POSIX signal handler, allowing the invoker to set whether
-+ * the signal should be restartable or not
-+ */
-+sigfunc
-+xsignal_restart(int sig, sigfunc func, int restartable)
-+{
-+ struct sigaction act, oact;
-+ act.sa_handler = func;
-+
-+ sigemptyset(&act.sa_mask);
-+#if defined(SA_RESTART) /* 4.4BSD, Posix(?), SVR4 */
-+ act.sa_flags = restartable ? SA_RESTART : 0;
-+#elif defined(SA_INTERRUPT) /* SunOS 4.x */
-+ act.sa_flags = restartable ? 0 : SA_INTERRUPT;
-+#else
-+#error "system must have SA_RESTART or SA_INTERRUPT"
-+#endif
-+ if (sigaction(sig, &act, &oact) < 0)
-+ return (SIG_ERR);
-+ return (oact.sa_handler);
-+}
-+
-+/*
-+ * Install a signal handler with the `restartable' flag set dependent upon
-+ * which signal is being set. (This is a wrapper to xsignal_restart())
-+ */
-+sigfunc
-+xsignal(int sig, sigfunc func)
-+{
-+ int restartable;
-+
-+ /*
-+ * Some signals print output or change the state of the process.
-+ * There should be restartable, so that reads and writes are
-+ * not affected. Some signals should cause program flow to change;
-+ * these signals should not be restartable, so that the system call
-+ * will return with EINTR, and the program will go do something
-+ * different. If the signal handler calls longjmp() or siglongjmp(),
-+ * it doesn't matter if it's restartable.
-+ */
-+
-+ switch(sig) {
-+#ifdef SIGINFO
-+ case SIGINFO:
-+#endif
-+ case SIGQUIT:
-+ case SIGUSR1:
-+ case SIGUSR2:
-+ case SIGWINCH:
-+ restartable = 1;
-+ break;
-+
-+ case SIGALRM:
-+ case SIGINT:
-+ case SIGPIPE:
-+ restartable = 0;
-+ break;
-+
-+ default:
-+ /*
-+ * This is unpleasant, but I don't know what would be better.
-+ * Right now, this "can't happen"
-+ */
-+ errx(1, "xsignal_restart called with signal %d", sig);
-+ }
-+
-+ return(xsignal_restart(sig, func, restartable));
-+}
-diff -Nru src/progressbar.h /home/spock/ftp/progressbar.h
---- src/progressbar.h Wed Dec 31 19:00:00 1969
-+++ /home/spock/ftp/progressbar.h Thu Jun 12 02:02:11 2003
-@@ -0,0 +1,99 @@
-+/* $NetBSD: progressbar.h,v 1.3 2003/02/28 09:53:49 lukem Exp $ */
-+
-+/*-
-+ * Copyright (c) 1996-2003 The NetBSD Foundation, Inc.
-+ * All rights reserved.
-+ *
-+ * This code is derived from software contributed to The NetBSD Foundation
-+ * by Luke Mewburn.
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions
-+ * are met:
-+ * 1. Redistributions of source code must retain the above copyright
-+ * notice, this list of conditions and the following disclaimer.
-+ * 2. Redistributions in binary form must reproduce the above copyright
-+ * notice, this list of conditions and the following disclaimer in the
-+ * documentation and/or other materials provided with the distribution.
-+ * 3. All advertising materials mentioning features or use of this software
-+ * must display the following acknowledgement:
-+ * This product includes software developed by the NetBSD
-+ * Foundation, Inc. and its contributors.
-+ * 4. Neither the name of The NetBSD Foundation nor the names of its
-+ * contributors may be used to endorse or promote products derived
-+ * from this software without specific prior written permission.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
-+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
-+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
-+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-+ * POSSIBILITY OF SUCH DAMAGE.
-+ */
-+
-+#ifndef STANDALONE_PROGRESS
-+#include <setjmp.h>
-+#endif /* !STANDALONE_PROGRESS */
-+
-+#ifndef GLOBAL
-+#define GLOBAL extern
-+#endif
-+
-+
-+#define STALLTIME 5 /* # of seconds of no xfer before "stalling" */
-+
-+typedef void (*sigfunc)(int);
-+
-+
-+GLOBAL FILE *ttyout; /* stdout, or stderr if retrieving to stdout */
-+
-+GLOBAL int progress; /* display transfer progress bar */
-+GLOBAL int ttywidth; /* width of tty */
-+
-+GLOBAL off_t bytes; /* current # of bytes read */
-+GLOBAL off_t filesize; /* size of file being transferred */
-+GLOBAL off_t restart_point; /* offset to restart transfer */
-+
-+
-+#ifndef STANDALONE_PROGRESS
-+GLOBAL int fromatty; /* input is from a terminal */
-+GLOBAL int verbose; /* print messages coming back from server */
-+GLOBAL int quit_time; /* maximum time to wait if stalled */
-+
-+GLOBAL char *direction; /* direction transfer is occurring */
-+
-+GLOBAL sigjmp_buf toplevel; /* non-local goto stuff for cmd scanner */
-+#endif /* !STANDALONE_PROGRESS */
-+
-+int foregroundproc(void);
-+void alarmtimer(int);
-+void progressmeter(int);
-+sigfunc xsignal(int, sigfunc);
-+sigfunc xsignal_restart(int, sigfunc, int);
-+
-+#ifndef STANDALONE_PROGRESS
-+void psummary(int);
-+void ptransfer(int);
-+#endif /* !STANDALONE_PROGRESS */
-+
-+
-+#ifdef NO_LONG_LONG
-+# define LLF "%ld"
-+# define LLFP(x) "%" x "ld"
-+# define LLT long
-+# define ULLF "%lu"
-+# define ULLFP(x) "%" x "lu"
-+# define ULLT unsigned long
-+#else
-+# define LLF "%lld"
-+# define LLFP(x) "%" x "lld"
-+# define LLT long long
-+# define ULLF "%llu"
-+# define ULLFP(x) "%" x "llu"
-+# define ULLT unsigned long long
-+#endif
-diff -Nru src/ruserpass.c /home/spock/ftp/ruserpass.c
---- src/ruserpass.c Sat Jun 15 05:40:36 2002
-+++ /home/spock/ftp/ruserpass.c Thu Jun 12 02:02:11 2003
-@@ -33,7 +33,26 @@
- * SUCH DAMAGE.
- */
-
--#include "lukemftp.h"
-+#include <sys/cdefs.h>
-+#ifndef lint
-+#if 0
-+static char sccsid[] = "@(#)ruserpass.c 8.4 (Berkeley) 4/27/95";
-+#else
-+__RCSID("$NetBSD: ruserpass.c,v 1.28 2000/11/15 00:11:04 lukem Exp $");
-+#endif
-+#endif /* not lint */
-+
-+#include <sys/types.h>
-+#include <sys/stat.h>
-+
-+#include <ctype.h>
-+#include <err.h>
-+#include <errno.h>
-+#include <netdb.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <unistd.h>
-
- #include "ftp_var.h"
-
-diff -Nru src/util.c /home/spock/ftp/util.c
---- src/util.c Sat Jun 15 05:40:37 2002
-+++ /home/spock/ftp/util.c Thu Jun 12 02:02:11 2003
-@@ -1,7 +1,7 @@
--/* $NetBSD: util.c,v 1.107 2002/06/05 10:20:50 lukem Exp $ */
-+/* $NetBSD: util.c,v 1.111 2003/02/28 09:54:51 lukem Exp $ */
-
- /*-
-- * Copyright (c) 1997-2002 The NetBSD Foundation, Inc.
-+ * Copyright (c) 1997-2003 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
-@@ -73,11 +73,36 @@
- * SUCH DAMAGE.
- */
-
-+#include <sys/cdefs.h>
-+#ifndef lint
-+__RCSID("$NetBSD: util.c,v 1.111 2003/02/28 09:54:51 lukem Exp $");
-+#endif /* not lint */
-+
- /*
- * FTP User Program -- Misc support routines
- */
--
--#include "lukemftp.h"
-+#include <sys/types.h>
-+#include <sys/socket.h>
-+#include <sys/ioctl.h>
-+#include <sys/time.h>
-+#include <netinet/in.h>
-+#include <arpa/ftp.h>
-+
-+#include <ctype.h>
-+#include <err.h>
-+#include <errno.h>
-+#include <fcntl.h>
-+#include <glob.h>
-+#include <signal.h>
-+#include <limits.h>
-+#include <netdb.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <termios.h>
-+#include <time.h>
-+#include <tzfile.h>
-+#include <unistd.h>
-
- #include "ftp_var.h"
-
-@@ -775,303 +800,6 @@
- code = ocode;
- }
-
--#ifndef NO_PROGRESS
--
--/*
-- * return non-zero if we're the current foreground process
-- */
--int
--foregroundproc(void)
--{
-- static pid_t pgrp = -1;
--
-- if (pgrp == -1)
--#if GETPGRP_VOID
-- pgrp = getpgrp();
--#else /* ! GETPGRP_VOID */
-- pgrp = getpgrp(0);
--#endif /* ! GETPGRP_VOID */
--
-- return (tcgetpgrp(fileno(ttyout)) == pgrp);
--}
--
--
--static void updateprogressmeter(int);
--
--/*
-- * SIGALRM handler to update the progress meter
-- */
--static void
--updateprogressmeter(int dummy)
--{
-- int oerrno = errno;
--
-- progressmeter(0);
-- errno = oerrno;
--}
--#endif /* NO_PROGRESS */
--
--
--/*
-- * List of order of magnitude prefixes.
-- * The last is `P', as 2^64 = 16384 Petabytes
-- */
--static const char prefixes[] = " KMGTP";
--
--/*
-- * Display a transfer progress bar if progress is non-zero.
-- * SIGALRM is hijacked for use by this function.
-- * - Before the transfer, set filesize to size of file (or -1 if unknown),
-- * and call with flag = -1. This starts the once per second timer,
-- * and a call to updateprogressmeter() upon SIGALRM.
-- * - During the transfer, updateprogressmeter will call progressmeter
-- * with flag = 0
-- * - After the transfer, call with flag = 1
-- */
--static struct timeval start;
--static struct timeval lastupdate;
--
--#define BUFLEFT (sizeof(buf) - len)
--
--void
--progressmeter(int flag)
--{
-- static off_t lastsize;
--#ifndef NO_PROGRESS
-- struct timeval now, td, wait;
-- off_t cursize, abbrevsize, bytespersec;
-- double elapsed;
-- int ratio, barlength, i, len, remaining;
--
-- /*
-- * Work variables for progress bar.
-- *
-- * XXX: if the format of the progress bar changes
-- * (especially the number of characters in the
-- * `static' portion of it), be sure to update
-- * these appropriately.
-- */
-- char buf[256]; /* workspace for progress bar */
--#define BAROVERHEAD 43 /* non `*' portion of progress bar */
-- /*
-- * stars should contain at least
-- * sizeof(buf) - BAROVERHEAD entries
-- */
-- const char stars[] =
--"*****************************************************************************"
--"*****************************************************************************"
--"*****************************************************************************";
--
--#endif
--
-- if (flag == -1) {
-- (void)gettimeofday(&start, NULL);
-- lastupdate = start;
-- lastsize = restart_point;
-- }
--#ifndef NO_PROGRESS
-- if (!progress)
-- return;
-- len = 0;
--
-- /*
-- * print progress bar only if we are foreground process.
-- */
-- if (! foregroundproc())
-- return;
--
-- (void)gettimeofday(&now, NULL);
-- cursize = bytes + restart_point;
-- timersub(&now, &lastupdate, &wait);
-- if (cursize > lastsize) {
-- lastupdate = now;
-- lastsize = cursize;
-- wait.tv_sec = 0;
-- }
--
-- len += snprintf(buf + len, BUFLEFT, "\r");
-- if (filesize > 0) {
-- ratio = (int)((double)cursize * 100.0 / (double)filesize);
-- ratio = MAX(ratio, 0);
-- ratio = MIN(ratio, 100);
-- len += snprintf(buf + len, BUFLEFT, "%3d%% ", ratio);
--
-- /*
-- * calculate the length of the `*' bar, ensuring that
-- * the number of stars won't exceed the buffer size
-- */
-- barlength = MIN(sizeof(buf) - 1, ttywidth) - BAROVERHEAD;
-- if (barlength > 0) {
-- i = barlength * ratio / 100;
-- len += snprintf(buf + len, BUFLEFT,
-- "|%.*s%*s|", i, stars, barlength - i, "");
-- }
-- }
--
-- abbrevsize = cursize;
-- for (i = 0; abbrevsize >= 100000 && i < sizeof(prefixes); i++)
-- abbrevsize >>= 10;
-- len += snprintf(buf + len, BUFLEFT, " " LLFP("5") " %c%c ",
-- (LLT)abbrevsize,
-- prefixes[i],
-- i == 0 ? ' ' : 'B');
--
-- timersub(&now, &start, &td);
-- elapsed = td.tv_sec + (td.tv_usec / 1000000.0);
--
-- bytespersec = 0;
-- if (bytes > 0) {
-- bytespersec = bytes;
-- if (elapsed > 0.0)
-- bytespersec /= elapsed;
-- }
-- for (i = 1; bytespersec >= 1024000 && i < sizeof(prefixes); i++)
-- bytespersec >>= 10;
-- len += snprintf(buf + len, BUFLEFT,
-- " " LLFP("3") ".%02d %cB/s ",
-- (LLT)(bytespersec / 1024),
-- (int)((bytespersec % 1024) * 100 / 1024),
-- prefixes[i]);
--
-- if (filesize > 0) {
-- if (bytes <= 0 || elapsed <= 0.0 || cursize > filesize) {
-- len += snprintf(buf + len, BUFLEFT, " --:-- ETA");
-- } else if (flag == 1) {
-- i = elapsed / SECSPERHOUR;
-- if (i)
-- len += snprintf(buf + len, BUFLEFT, "%2d:", i);
-- else
-- len += snprintf(buf + len, BUFLEFT, " ");
-- i = (int)elapsed % SECSPERHOUR;
-- len += snprintf(buf + len, BUFLEFT,
-- "%02d:%02d ", i / 60, i % 60);
-- } else if (wait.tv_sec >= STALLTIME) {
-- len += snprintf(buf + len, BUFLEFT, " - stalled -");
-- } else {
-- remaining = (int)
-- ((filesize - restart_point) / (bytes / elapsed) -
-- elapsed);
-- if (remaining >= 100 * SECSPERHOUR)
-- len += snprintf(buf + len, BUFLEFT,
-- " --:-- ETA");
-- else {
-- i = remaining / SECSPERHOUR;
-- if (i)
-- len += snprintf(buf + len, BUFLEFT,
-- "%2d:", i);
-- else
-- len += snprintf(buf + len, BUFLEFT,
-- " ");
-- i = remaining % SECSPERHOUR;
-- len += snprintf(buf + len, BUFLEFT,
-- "%02d:%02d ETA", i / 60, i % 60);
-- }
-- }
-- }
-- if (flag == 1)
-- len += snprintf(buf + len, BUFLEFT, "\n");
-- (void)write(fileno(ttyout), buf, len);
--
-- if (flag == -1) {
-- (void)xsignal_restart(SIGALRM, updateprogressmeter, 1);
-- alarmtimer(1); /* set alarm timer for 1 Hz */
-- } else if (flag == 1) {
-- (void)xsignal(SIGALRM, SIG_DFL);
-- alarmtimer(0);
-- }
--#endif /* !NO_PROGRESS */
--}
--
--/*
-- * Display transfer statistics.
-- * Requires start to be initialised by progressmeter(-1),
-- * direction to be defined by xfer routines, and filesize and bytes
-- * to be updated by xfer routines
-- * If siginfo is nonzero, an ETA is displayed, and the output goes to stderr
-- * instead of ttyout.
-- */
--void
--ptransfer(int siginfo)
--{
-- struct timeval now, td, wait;
-- double elapsed;
-- off_t bytespersec;
-- int remaining, hh, i, len;
--
-- char buf[256]; /* Work variable for transfer status. */
--
-- if (!verbose && !progress && !siginfo)
-- return;
--
-- (void)gettimeofday(&now, NULL);
-- timersub(&now, &start, &td);
-- elapsed = td.tv_sec + (td.tv_usec / 1000000.0);
-- bytespersec = 0;
-- if (bytes > 0) {
-- bytespersec = bytes;
-- if (elapsed > 0.0)
-- bytespersec /= elapsed;
-- }
-- len = 0;
-- len += snprintf(buf + len, BUFLEFT, LLF " byte%s %s in ",
-- (LLT)bytes, bytes == 1 ? "" : "s", direction);
-- remaining = (int)elapsed;
-- if (remaining > SECSPERDAY) {
-- int days;
--
-- days = remaining / SECSPERDAY;
-- remaining %= SECSPERDAY;
-- len += snprintf(buf + len, BUFLEFT,
-- "%d day%s ", days, days == 1 ? "" : "s");
-- }
-- hh = remaining / SECSPERHOUR;
-- remaining %= SECSPERHOUR;
-- if (hh)
-- len += snprintf(buf + len, BUFLEFT, "%2d:", hh);
-- len += snprintf(buf + len, BUFLEFT,
-- "%02d:%02d ", remaining / 60, remaining % 60);
--
-- for (i = 1; bytespersec >= 1024000 && i < sizeof(prefixes); i++)
-- bytespersec >>= 10;
-- len += snprintf(buf + len, BUFLEFT, "(" LLF ".%02d %cB/s)",
-- (LLT)(bytespersec / 1024),
-- (int)((bytespersec % 1024) * 100 / 1024),
-- prefixes[i]);
--
-- if (siginfo && bytes > 0 && elapsed > 0.0 && filesize >= 0
-- && bytes + restart_point <= filesize) {
-- remaining = (int)((filesize - restart_point) /
-- (bytes / elapsed) - elapsed);
-- hh = remaining / SECSPERHOUR;
-- remaining %= SECSPERHOUR;
-- len += snprintf(buf + len, BUFLEFT, " ETA: ");
-- if (hh)
-- len += snprintf(buf + len, BUFLEFT, "%2d:", hh);
-- len += snprintf(buf + len, BUFLEFT, "%02d:%02d",
-- remaining / 60, remaining % 60);
-- timersub(&now, &lastupdate, &wait);
-- if (wait.tv_sec >= STALLTIME)
-- len += snprintf(buf + len, BUFLEFT, " (stalled)");
-- }
-- len += snprintf(buf + len, BUFLEFT, "\n");
-- (void)write(siginfo ? STDERR_FILENO : fileno(ttyout), buf, len);
--}
--
--/*
-- * SIG{INFO,QUIT} handler to print transfer stats if a transfer is in progress
-- */
--void
--psummary(int notused)
--{
-- int oerrno = errno;
--
-- if (bytes > 0) {
-- if (fromatty)
-- write(fileno(ttyout), "\n", 1);
-- ptransfer(1);
-- }
-- errno = oerrno;
--}
-
- /*
- * List words in stringlist, vertically arranged
-@@ -1158,20 +886,6 @@
-
-
- /*
-- * Set the SIGALRM interval timer for wait seconds, 0 to disable.
-- */
--void
--alarmtimer(int wait)
--{
-- struct itimerval itv;
--
-- itv.it_value.tv_sec = wait;
-- itv.it_value.tv_usec = 0;
-- itv.it_interval = itv.it_value;
-- setitimer(ITIMER_REAL, &itv, NULL);
--}
--
--/*
- * Setup or cleanup EditLine structures
- */
- #ifndef NO_EDITCOMPLETE
-@@ -1552,85 +1266,4 @@
- if (s == NULL)
- err(1, "Unable to allocate memory for string copy");
- return (s);
--}
--
--/*
-- * Install a POSIX signal handler, allowing the invoker to set whether
-- * the signal should be restartable or not
-- */
--sigfunc
--xsignal_restart(int sig, sigfunc func, int restartable)
--{
--#ifdef ultrix /* XXX: this is lame - how do we test sigvec vs. sigaction? */
-- struct sigvec vec, ovec;
--
-- vec.sv_handler = func;
-- sigemptyset(&vec.sv_mask);
-- vec.sv_flags = 0;
-- if (sigvec(sig, &vec, &ovec) < 0)
-- return (SIG_ERR);
-- return (ovec.sv_handler);
--#else /* ! ultrix */
-- struct sigaction act, oact;
-- act.sa_handler = func;
--
-- sigemptyset(&act.sa_mask);
--#if defined(SA_RESTART) /* 4.4BSD, Posix(?), SVR4 */
-- act.sa_flags = restartable ? SA_RESTART : 0;
--#elif defined(SA_INTERRUPT) /* SunOS 4.x */
-- act.sa_flags = restartable ? 0 : SA_INTERRUPT;
--#else
--#error "system must have SA_RESTART or SA_INTERRUPT"
--#endif
-- if (sigaction(sig, &act, &oact) < 0)
-- return (SIG_ERR);
-- return (oact.sa_handler);
--#endif /* ! ultrix */
--}
--
--/*
-- * Install a signal handler with the `restartable' flag set dependent upon
-- * which signal is being set. (This is a wrapper to xsignal_restart())
-- */
--sigfunc
--xsignal(int sig, sigfunc func)
--{
-- int restartable;
--
-- /*
-- * Some signals print output or change the state of the process.
-- * There should be restartable, so that reads and writes are
-- * not affected. Some signals should cause program flow to change;
-- * these signals should not be restartable, so that the system call
-- * will return with EINTR, and the program will go do something
-- * different. If the signal handler calls longjmp() or siglongjmp(),
-- * it doesn't matter if it's restartable.
-- */
--
-- switch(sig) {
--#ifdef SIGINFO
-- case SIGINFO:
--#endif
-- case SIGQUIT:
-- case SIGUSR1:
-- case SIGUSR2:
-- case SIGWINCH:
-- restartable = 1;
-- break;
--
-- case SIGALRM:
-- case SIGINT:
-- case SIGPIPE:
-- restartable = 0;
-- break;
--
-- default:
-- /*
-- * This is unpleasant, but I don't know what would be better.
-- * Right now, this "can't happen"
-- */
-- errx(1, "xsignal_restart called with signal %d", sig);
-- }
--
-- return(xsignal_restart(sig, func, restartable));
- }
-diff -Nru src/version.h /home/spock/ftp/version.h
---- src/version.h Sat Jun 15 05:40:37 2002
-+++ /home/spock/ftp/version.h Thu Jun 12 02:02:11 2003
-@@ -1,6 +1,6 @@
--/* $NetBSD: version.h,v 1.29 2002/06/05 10:20:51 lukem Exp $ */
-+/* $NetBSD: version.h,v 1.30 2003/02/28 09:54:20 lukem Exp $ */
- /*-
-- * Copyright (c) 1999-2002 The NetBSD Foundation, Inc.
-+ * Copyright (c) 1999-2003 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
-@@ -40,5 +40,5 @@
- #endif
-
- #ifndef FTP_VERSION
--#define FTP_VERSION "20020605"
-+#define FTP_VERSION "20030228"
- #endif
diff --git a/contrib/lukemftp/install-sh b/contrib/lukemftp/install-sh
deleted file mode 100755
index e9de23842dcd..000000000000
--- a/contrib/lukemftp/install-sh
+++ /dev/null
@@ -1,251 +0,0 @@
-#!/bin/sh
-#
-# install - install a program, script, or datafile
-# This comes from X11R5 (mit/util/scripts/install.sh).
-#
-# Copyright 1991 by the Massachusetts Institute of Technology
-#
-# Permission to use, copy, modify, distribute, and sell this software and its
-# documentation for any purpose is hereby granted without fee, provided that
-# the above copyright notice appear in all copies and that both that
-# copyright notice and this permission notice appear in supporting
-# documentation, and that the name of M.I.T. not be used in advertising or
-# publicity pertaining to distribution of the software without specific,
-# written prior permission. M.I.T. makes no representations about the
-# suitability of this software for any purpose. It is provided "as is"
-# without express or implied warranty.
-#
-# Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
-# when there is no Makefile.
-#
-# This script is compatible with the BSD install script, but was written
-# from scratch. It can only install one file at a time, a restriction
-# shared with many OS's install programs.
-
-
-# set DOITPROG to echo to test this script
-
-# Don't use :- since 4.3BSD and earlier shells don't like it.
-doit="${DOITPROG-}"
-
-
-# put in absolute paths if you don't have them in your path; or use env. vars.
-
-mvprog="${MVPROG-mv}"
-cpprog="${CPPROG-cp}"
-chmodprog="${CHMODPROG-chmod}"
-chownprog="${CHOWNPROG-chown}"
-chgrpprog="${CHGRPPROG-chgrp}"
-stripprog="${STRIPPROG-strip}"
-rmprog="${RMPROG-rm}"
-mkdirprog="${MKDIRPROG-mkdir}"
-
-transformbasename=""
-transform_arg=""
-instcmd="$mvprog"
-chmodcmd="$chmodprog 0755"
-chowncmd=""
-chgrpcmd=""
-stripcmd=""
-rmcmd="$rmprog -f"
-mvcmd="$mvprog"
-src=""
-dst=""
-dir_arg=""
-
-while [ x"$1" != x ]; do
- case $1 in
- -c) instcmd="$cpprog"
- shift
- continue;;
-
- -d) dir_arg=true
- shift
- continue;;
-
- -m) chmodcmd="$chmodprog $2"
- shift
- shift
- continue;;
-
- -o) chowncmd="$chownprog $2"
- shift
- shift
- continue;;
-
- -g) chgrpcmd="$chgrpprog $2"
- shift
- shift
- continue;;
-
- -s) stripcmd="$stripprog"
- shift
- continue;;
-
- -t=*) transformarg=`echo $1 | sed 's/-t=//'`
- shift
- continue;;
-
- -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
- shift
- continue;;
-
- *) if [ x"$src" = x ]
- then
- src=$1
- else
- # this colon is to work around a 386BSD /bin/sh bug
- :
- dst=$1
- fi
- shift
- continue;;
- esac
-done
-
-if [ x"$src" = x ]
-then
- echo "install: no input file specified"
- exit 1
-else
- true
-fi
-
-if [ x"$dir_arg" != x ]; then
- dst=$src
- src=""
-
- if [ -d $dst ]; then
- instcmd=:
- chmodcmd=""
- else
- instcmd=mkdir
- fi
-else
-
-# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
-# might cause directories to be created, which would be especially bad
-# if $src (and thus $dsttmp) contains '*'.
-
- if [ -f $src -o -d $src ]
- then
- true
- else
- echo "install: $src does not exist"
- exit 1
- fi
-
- if [ x"$dst" = x ]
- then
- echo "install: no destination specified"
- exit 1
- else
- true
- fi
-
-# If destination is a directory, append the input filename; if your system
-# does not like double slashes in filenames, you may need to add some logic
-
- if [ -d $dst ]
- then
- dst="$dst"/`basename $src`
- else
- true
- fi
-fi
-
-## this sed command emulates the dirname command
-dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
-
-# Make sure that the destination directory exists.
-# this part is taken from Noah Friedman's mkinstalldirs script
-
-# Skip lots of stat calls in the usual case.
-if [ ! -d "$dstdir" ]; then
-defaultIFS='
-'
-IFS="${IFS-${defaultIFS}}"
-
-oIFS="${IFS}"
-# Some sh's can't handle IFS=/ for some reason.
-IFS='%'
-set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
-IFS="${oIFS}"
-
-pathcomp=''
-
-while [ $# -ne 0 ] ; do
- pathcomp="${pathcomp}${1}"
- shift
-
- if [ ! -d "${pathcomp}" ] ;
- then
- $mkdirprog "${pathcomp}"
- else
- true
- fi
-
- pathcomp="${pathcomp}/"
-done
-fi
-
-if [ x"$dir_arg" != x ]
-then
- $doit $instcmd $dst &&
-
- if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
-else
-
-# If we're going to rename the final executable, determine the name now.
-
- if [ x"$transformarg" = x ]
- then
- dstfile=`basename $dst`
- else
- dstfile=`basename $dst $transformbasename |
- sed $transformarg`$transformbasename
- fi
-
-# don't allow the sed command to completely eliminate the filename
-
- if [ x"$dstfile" = x ]
- then
- dstfile=`basename $dst`
- else
- true
- fi
-
-# Make a temp file name in the proper directory.
-
- dsttmp=$dstdir/#inst.$$#
-
-# Move or copy the file name to the temp name
-
- $doit $instcmd $src $dsttmp &&
-
- trap "rm -f ${dsttmp}" 0 &&
-
-# and set any options; do chmod last to preserve setuid bits
-
-# If any of these fail, we abort the whole thing. If we want to
-# ignore errors from any of these, just make sure not to ignore
-# errors from the above "$doit $instcmd $src $dsttmp" command.
-
- if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
-
-# Now rename the file to the real destination.
-
- $doit $rmcmd -f $dstdir/$dstfile &&
- $doit $mvcmd $dsttmp $dstdir/$dstfile
-
-fi &&
-
-
-exit 0
diff --git a/contrib/lukemftp/lukemftp.h b/contrib/lukemftp/lukemftp.h
deleted file mode 100644
index e8d83f6d6fd4..000000000000
--- a/contrib/lukemftp/lukemftp.h
+++ /dev/null
@@ -1,403 +0,0 @@
-/* $Id: lukemftp.h,v 1.43 2002/06/10 08:13:01 lukem Exp $ */
-
-#define FTP_PRODUCT "lukemftp"
-#define FTP_VERSION "1.6-beta2"
-
-#include "config.h"
-
-#include <sys/types.h>
-#include <sys/param.h>
-#include <sys/ioctl.h>
-#include <sys/socket.h>
-#include <sys/stat.h>
-#include <sys/wait.h>
-
-#include <netinet/in.h>
-#include <netinet/in_systm.h>
-#include <netinet/ip.h>
-
-#include <arpa/ftp.h>
-#include <arpa/inet.h>
-
-#include <ctype.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <limits.h>
-#include <netdb.h>
-#include <pwd.h>
-#include <setjmp.h>
-#include <signal.h>
-#include <stdarg.h>
-#include <stddef.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <termios.h>
-#include <unistd.h>
-
-#if HAVE_POLL
-# if HAVE_POLL_H
-# include <poll.h>
-# elif HAVE_SYS_POLL_H
-# include <sys/poll.h>
-# endif
-#elif HAVE_SELECT
-# define USE_SELECT
-#else
-# error "no poll() or select() found"
-#endif
-
-#if HAVE_DIRENT_H
-# include <dirent.h>
-#else
-# define dirent direct
-# if HAVE_SYS_NDIR_H
-# include <sys/ndir.h>
-# endif
-# if HAVE_SYS_DIR_H
-# include <sys/dir.h>
-# endif
-# if HAVE_NDIR_H
-# include <ndir.h>
-# endif
-#endif
-
-#if TIME_WITH_SYS_TIME
-# include <sys/time.h>
-# include <time.h>
-#else
-# if HAVE_SYS_TIME_H
-# include <sys/time.h>
-# else
-# include <time.h>
-# endif
-#endif
-
-#if HAVE_ERR_H
-# include <err.h>
-#endif
-
-#if USE_GLOB_H /* not set by configure; used by other build systems */
-# include <glob.h>
-#else
-# include "ftpglob.h"
-#endif
-
-#if HAVE_PATHS_H
-# include <paths.h>
-#endif
-#ifndef _PATH_BSHELL
-#define _PATH_BSHELL "/bin/sh"
-#endif
-#ifndef _PATH_TMP
-#define _PATH_TMP "/tmp/"
-#endif
-
-typedef struct _stringlist {
- char **sl_str;
- size_t sl_max;
- size_t sl_cur;
-} StringList;
-
-StringList *sl_init(void);
-int sl_add(StringList *, char *);
-void sl_free(StringList *, int);
-char *sl_find(StringList *, char *);
-
-#if HAVE_TERMCAP_H
-# include <termcap.h>
-#else
-int tgetent(char *, const char *);
-char *tgetstr(const char *, char **);
-int tgetflag(const char *);
-int tgetnum(const char *);
-char *tgoto(const char *, int, int);
-void tputs(const char *, int, int (*)(int));
-#endif
-
-#if HAVE_UTIL_H
-# include <util.h>
-#endif
-
-#if HAVE_LIBUTIL_H
-# include <libutil.h>
-#endif
-
-#if HAVE_VIS_H
-# include <vis.h>
-#else
-# include "ftpvis.h"
-#endif
-
-#if ! HAVE_IN_PORT_T
-typedef unsigned short in_port_t;
-#endif
-
-#if ! HAVE_SA_FAMILY_T
-typedef unsigned short sa_family_t;
-#endif
-
-#if ! HAVE_SOCKLEN_T
-typedef unsigned int socklen_t;
-#endif
-
-#if HAVE_AF_INET6 && HAVE_SOCKADDR_IN6
-# define INET6
-#endif
-
-
-#if ! HAVE_RFC2553_NETDB
-
- /* RFC 2553 */
-#undef EAI_ADDRFAMILY
-#define EAI_ADDRFAMILY 1 /* address family for hostname not supported */
-#undef EAI_AGAIN
-#define EAI_AGAIN 2 /* temporary failure in name resolution */
-#undef EAI_BADFLAGS
-#define EAI_BADFLAGS 3 /* invalid value for ai_flags */
-#undef EAI_FAIL
-#define EAI_FAIL 4 /* non-recoverable failure in name resolution */
-#undef EAI_FAMILY
-#define EAI_FAMILY 5 /* ai_family not supported */
-#undef EAI_MEMORY
-#define EAI_MEMORY 6 /* memory allocation failure */
-#undef EAI_NODATA
-#define EAI_NODATA 7 /* no address associated with hostname */
-#undef EAI_NONAME
-#define EAI_NONAME 8 /* hostname nor servname provided, or not known */
-#undef EAI_SERVICE
-#define EAI_SERVICE 9 /* servname not supported for ai_socktype */
-#undef EAI_SOCKTYPE
-#define EAI_SOCKTYPE 10 /* ai_socktype not supported */
-#undef EAI_SYSTEM
-#define EAI_SYSTEM 11 /* system error returned in errno */
-
- /* KAME extensions? */
-#undef EAI_BADHINTS
-#define EAI_BADHINTS 12
-#undef EAI_PROTOCOL
-#define EAI_PROTOCOL 13
-#undef EAI_MAX
-#define EAI_MAX 14
-
- /* RFC 2553 */
-#undef NI_MAXHOST
-#define NI_MAXHOST 1025
-#undef NI_MAXSERV
-#define NI_MAXSERV 32
-
-#undef NI_NOFQDN
-#define NI_NOFQDN 0x00000001
-#undef NI_NUMERICHOST
-#define NI_NUMERICHOST 0x00000002
-#undef NI_NAMEREQD
-#define NI_NAMEREQD 0x00000004
-#undef NI_NUMERICSERV
-#define NI_NUMERICSERV 0x00000008
-#undef NI_DGRAM
-#define NI_DGRAM 0x00000010
-
- /* RFC 2553 */
-#undef AI_PASSIVE
-#define AI_PASSIVE 0x00000001 /* get address to use bind() */
-#undef AI_CANONNAME
-#define AI_CANONNAME 0x00000002 /* fill ai_canonname */
-
- /* KAME extensions ? */
-#undef AI_NUMERICHOST
-#define AI_NUMERICHOST 0x00000004 /* prevent name resolution */
-#undef AI_MASK
-#define AI_MASK (AI_PASSIVE | AI_CANONNAME | AI_NUMERICHOST)
-
- /* RFC 2553 */
-#undef AI_ALL
-#define AI_ALL 0x00000100 /* IPv6 and IPv4-mapped (with AI_V4MAPPED) */
-#undef AI_V4MAPPED_CFG
-#define AI_V4MAPPED_CFG 0x00000200 /* accept IPv4-mapped if kernel supports */
-#undef AI_ADDRCONFIG
-#define AI_ADDRCONFIG 0x00000400 /* only if any address is assigned */
-#undef AI_V4MAPPED
-#define AI_V4MAPPED 0x00000800 /* accept IPv4-mapped IPv6 address */
-
-#endif /* ! HAVE_RFC2553_NETDB */
-
-
-#if ! HAVE_RFC2553_NETDB && ! HAVE_ADDRINFO
-
-struct addrinfo {
- int ai_flags; /* AI_PASSIVE, AI_CANONNAME, AI_NUMERICHOST */
- int ai_family; /* PF_xxx */
- int ai_socktype; /* SOCK_xxx */
- int ai_protocol; /* 0 or IPPROTO_xxx for IPv4 and IPv6 */
- size_t ai_addrlen; /* length of ai_addr */
- char *ai_canonname; /* canonical name for hostname */
- struct sockaddr *ai_addr; /* binary address */
- struct addrinfo *ai_next; /* next structure in linked list */
-};
-
-int getaddrinfo(const char *, const char *,
- const struct addrinfo *, struct addrinfo **);
-int getnameinfo(const struct sockaddr *, socklen_t, char *,
- size_t, char *, size_t, int);
-void freeaddrinfo(struct addrinfo *);
-char *gai_strerror(int);
-
-#endif /* ! HAVE_RFC2553_NETDB && ! HAVE_ADDRINFO */
-
-
-#if ! HAVE_D_NAMLEN
-# define DIRENT_MISSING_D_NAMLEN
-#endif
-
-#if ! HAVE_H_ERRNO_D
-extern int h_errno;
-#endif
-#define HAVE_H_ERRNO 1 /* XXX: an assumption for now... */
-
-#if ! HAVE_FCLOSE_D
-int fclose(FILE *);
-#endif
-
-#if ! HAVE_GETPASS_D
-char *getpass(const char *);
-#endif
-
-#if ! HAVE_OPTARG_D
-extern char *optarg;
-#endif
-
-#if ! HAVE_OPTIND_D
-extern int optind;
-#endif
-
-#if ! HAVE_PCLOSE_D
-int pclose(FILE *);
-#endif
-
-#if ! HAVE_ERR
-void err(int, const char *, ...);
-void errx(int, const char *, ...);
-void warn(const char *, ...);
-void warnx(const char *, ...);
-#endif
-
-#if ! HAVE_FGETLN
-char *fgetln(FILE *, size_t *);
-#endif
-
-#if ! HAVE_FSEEKO
-int fseeko(FILE *, off_t, int);
-#endif
-
-#if ! HAVE_FPARSELN
-# define FPARSELN_UNESCESC 0x01
-# define FPARSELN_UNESCCONT 0x02
-# define FPARSELN_UNESCCOMM 0x04
-# define FPARSELN_UNESCREST 0x08
-# define FPARSELN_UNESCALL 0x0f
-char *fparseln(FILE *, size_t *, size_t *, const char[3], int);
-#endif
-
-#if ! HAVE_INET_NTOP
-const char *inet_ntop(int, const void *, char *, size_t);
-#endif
-
-#if ! HAVE_INET_PTON
-int inet_pton(int, const char *, void *);
-#endif
-
-#if ! HAVE_MKSTEMP
-int mkstemp(char *);
-#endif
-
-#if ! HAVE_SETPROGNAME
-const char *getprogname(void);
-void setprogname(const char *);
-#endif
-
-#if ! HAVE_SNPRINTF
-int snprintf(char *, size_t, const char *, ...);
-#endif
-
-#if ! HAVE_STRDUP
-char *strdup(const char *);
-#endif
-
-#if ! HAVE_STRERROR
-char *strerror(int);
-#endif
-
-#if ! HAVE_STRPTIME || ! HAVE_STRPTIME_D
-char *strptime(const char *, const char *, struct tm *);
-#endif
-
-#if HAVE_QUAD_SUPPORT
-# if ! HAVE_STRTOLL && HAVE_LONG_LONG
-long long strtoll(const char *, char **, int);
-# if ! defined(QUAD_MIN)
-# define QUAD_MIN (-0x7fffffffffffffffL-1)
-# endif
-# if ! defined(QUAD_MAX)
-# define QUAD_MAX (0x7fffffffffffffffL)
-# endif
-# endif
-#else /* ! HAVE_QUAD_SUPPORT */
-# define NO_LONG_LONG 1
-#endif /* ! HAVE_QUAD_SUPPORT */
-
-#if ! HAVE_TIMEGM
-time_t timegm(struct tm *);
-#endif
-
-#if ! HAVE_HSTRERROR
-char *strerror(int);
-#endif
-
-#if ! HAVE_STRLCAT
-size_t strlcat(char *, const char *, size_t);
-#endif
-
-#if ! HAVE_STRLCPY
-size_t strlcpy(char *, const char *, size_t);
-#endif
-
-#if ! HAVE_STRSEP
-char *strsep(char **stringp, const char *delim);
-#endif
-
-#if ! HAVE_MEMMOVE
-# define memmove(a,b,c) bcopy((b),(a),(c))
- /* XXX: add others #defines for borken systems? */
-#endif
-
-#if HAVE_GETPASSPHRASE
-# define getpass getpassphrase
-#endif
-
-#if ! defined(MIN)
-# define MIN(a, b) ((a) < (b) ? (a) : (b))
-#endif
-#if ! defined(MAX)
-# define MAX(a, b) ((a) < (b) ? (b) : (a))
-#endif
-
-#if ! defined(timersub)
-# define timersub(tvp, uvp, vvp) \
- do { \
- (vvp)->tv_sec = (tvp)->tv_sec - (uvp)->tv_sec; \
- (vvp)->tv_usec = (tvp)->tv_usec - (uvp)->tv_usec; \
- if ((vvp)->tv_usec < 0) { \
- (vvp)->tv_sec--; \
- (vvp)->tv_usec += 1000000; \
- } \
- } while (0)
-#endif
-
-#if ! defined(S_ISLNK)
-# define S_ISLNK(m) ((m & S_IFMT) == S_IFLNK)
-#endif
-
-#define EPOCH_YEAR 1970
-#define SECSPERHOUR 3600
-#define SECSPERDAY 86400
-#define TM_YEAR_BASE 1900
diff --git a/contrib/lukemftp/src/ftp.cat1 b/contrib/lukemftp/src/ftp.cat1
deleted file mode 100644
index 091a1190c2f7..000000000000
--- a/contrib/lukemftp/src/ftp.cat1
+++ /dev/null
@@ -1,1055 +0,0 @@
-FTP(1) NetBSD Reference Manual FTP(1)
-
-NNAAMMEE
- ffttpp - Internet file transfer program
-
-SSYYNNOOPPSSIISS
- ffttpp [--4466AAaaddeeffggiinnppRRttvvVV] [--NN _n_e_t_r_c] [--oo _o_u_t_p_u_t] [--PP _p_o_r_t] [--rr _r_e_t_r_y] [--TT
- _d_i_r,_m_a_x[,_i_n_c]] [[_u_s_e_r@]_h_o_s_t [_p_o_r_t]] [_u_s_e_r@]_h_o_s_t:[_p_a_t_h][/]
- [file:///_p_a_t_h] [ftp://[_u_s_e_r[:_p_a_s_s_w_o_r_d]@]_h_o_s_t[:_p_o_r_t]/_p_a_t_h[/]]
- [http://[_u_s_e_r[:_p_a_s_s_w_o_r_d]@]_h_o_s_t[:_p_o_r_t]/_p_a_t_h] [_._._.]
- ffttpp --uu _u_r_l file [_._._.]
-
-DDEESSCCRRIIPPTTIIOONN
- ffttpp is the user interface to the Internet standard File Transfer Proto-
- col. The program allows a user to transfer files to and from a remote
- network site.
-
- The last five arguments will fetch a file using the FTP or HTTP proto-
- cols, or by direct copying, into the current directory. This is ideal
- for scripts. Refer to _A_U_T_O_-_F_E_T_C_H_I_N_G _F_I_L_E_S below for more information.
-
- Options may be specified at the command line, or to the command inter-
- preter.
-
- --44 Forces ffttpp to only use IPv4 addresses.
-
- --66 Forces ffttpp to only use IPv6 addresses.
-
- --AA Force active mode ftp. By default, ffttpp will try to use passive
- mode ftp and fall back to active mode if passive is not support-
- ed by the server. This option causes ffttpp to always use an ac-
- tive connection. It is only useful for connecting to very old
- servers that do not implement passive mode properly.
-
- --aa Causes ffttpp to bypass normal login procedure, and use an anony-
- mous login instead.
-
- --dd Enables debugging.
-
- --ee Disables command line editing. This is useful for Emacs ange-
- ftp mode.
-
- --ff Forces a cache reload for transfers that go through the FTP or
- HTTP proxies.
-
- --gg Disables file name globbing.
-
- --ii Turns off interactive prompting during multiple file transfers.
-
- --nn Restrains ffttpp from attempting ``auto-login'' upon initial con-
- nection. If auto-login is enabled, ffttpp will check the _._n_e_t_r_c
- (see below) file in the user's home directory for an entry de-
- scribing an account on the remote machine. If no entry exists,
- ffttpp will prompt for the remote machine login name (default is
- the user identity on the local machine), and, if necessary,
- prompt for a password and an account with which to login.
-
- --NN _n_e_t_r_c
- Use _n_e_t_r_c instead of _~_/_._n_e_t_r_c. Refer to _T_H_E _._n_e_t_r_c _F_I_L_E for
- more information.
-
- --oo _o_u_t_p_u_t
- When auto-fetching files, save the contents in _o_u_t_p_u_t. _o_u_t_p_u_t
- is parsed according to the _F_I_L_E _N_A_M_I_N_G _C_O_N_V_E_N_T_I_O_N_S below. If
- _o_u_t_p_u_t is not `-' or doesn't start with `|', then only the first
- file specified will be retrieved into _o_u_t_p_u_t; all other files
- will be retrieved into the basename of their remote name.
-
- --pp Enable passive mode operation for use behind connection filter-
- ing firewalls. This option has been deprecated as ffttpp now tries
- to use passive mode by default, falling back to active mode if
- the server does not support passive connections.
-
- --PP _p_o_r_t Sets the port number to _p_o_r_t.
-
- --rr _w_a_i_t Retry the connection attempt if it failed, pausing for _w_a_i_t sec-
- onds.
-
- --RR Restart all non-proxied auto-fetches.
-
- --tt Enables packet tracing.
-
- --TT _d_i_r_e_c_t_i_o_n,_m_a_x_i_m_u_m[,_i_n_c_r_e_m_e_n_t]
- Set the maximum transfer rate for _d_i_r_e_c_t_i_o_n to _m_a_x_i_m_u_m
- bytes/second, and if specified, the increment to _i_n_c_r_e_m_e_n_t
- bytes/second. Refer to rraattee for more information.
-
- --uu _u_r_l _f_i_l_e [...]
- Upload files on the command line to _u_r_l where _u_r_l is one of the
- ftp URL types as supported by auto-fetch (with an optional tar-
- get filename for single file uploads), and _f_i_l_e is one or more
- local files to be uploaded.
-
- --vv Enable vveerrbboossee and pprrooggrreessss. This is the default if output is
- to a terminal (and in the case of pprrooggrreessss, ffttpp is the fore-
- ground process). Forces ffttpp to show all responses from the re-
- mote server, as well as report on data transfer statistics.
-
- --VV Disable vveerrbboossee and pprrooggrreessss, overriding the default of enabled
- when output is to a terminal.
-
- The client host with which ffttpp is to communicate may be specified on the
- command line. If this is done, ffttpp will immediately attempt to establish
- a connection to an FTP server on that host; otherwise, ffttpp will enter its
- command interpreter and await instructions from the user. When ffttpp is
- awaiting commands from the user the prompt `ftp>' is provided to the us-
- er. The following commands are recognized by ffttpp:
-
- !! [_c_o_m_m_a_n_d [_a_r_g_s]]
- Invoke an interactive shell on the local machine. If there
- are arguments, the first is taken to be a command to execute
- directly, with the rest of the arguments as its arguments.
-
- $$ _m_a_c_r_o_-_n_a_m_e [_a_r_g_s]
- Execute the macro _m_a_c_r_o_-_n_a_m_e that was defined with the mmaaccddeeff
- command. Arguments are passed to the macro unglobbed.
-
- aaccccoouunntt [_p_a_s_s_w_d]
- Supply a supplemental password required by a remote system
- for access to resources once a login has been successfully
- completed. If no argument is included, the user will be
- prompted for an account password in a non-echoing input mode.
-
- aappppeenndd _l_o_c_a_l_-_f_i_l_e [_r_e_m_o_t_e_-_f_i_l_e]
- Append a local file to a file on the remote machine. If
- _r_e_m_o_t_e_-_f_i_l_e is left unspecified, the local file name is used
- in naming the remote file after being altered by any nnttrraannss
- or nnmmaapp setting. File transfer uses the current settings for
- ttyyppee, ffoorrmmaatt, mmooddee, and ssttrruuccttuurree.
-
- aasscciiii Set the file transfer ttyyppee to network ASCII. This is the de-
- fault type.
-
- bbeellll Arrange that a bell be sounded after each file transfer com-
- mand is completed.
-
- bbiinnaarryy Set the file transfer ttyyppee to support binary image transfer.
-
- bbyyee Terminate the FTP session with the remote server and exit
- ffttpp. An end of file will also terminate the session and ex-
- it.
-
- ccaassee Toggle remote computer file name case mapping during ggeett,
- mmggeett and mmppuutt commands. When ccaassee is on (default is off),
- remote computer file names with all letters in upper case are
- written in the local directory with the letters mapped to
- lower case.
-
- ccdd _r_e_m_o_t_e_-_d_i_r_e_c_t_o_r_y
- Change the working directory on the remote machine to _r_e_m_o_t_e_-
- _d_i_r_e_c_t_o_r_y.
-
- ccdduupp Change the remote machine working directory to the parent of
- the current remote machine working directory.
-
- cchhmmoodd _m_o_d_e _r_e_m_o_t_e_-_f_i_l_e
- Change the permission modes of the file _r_e_m_o_t_e_-_f_i_l_e on the
- remote system to _m_o_d_e.
-
- cclloossee Terminate the FTP session with the remote server, and return
- to the command interpreter. Any defined macros are erased.
-
- ccrr Toggle carriage return stripping during ascii type file re-
- trieval. Records are denoted by a carriage return/linefeed
- sequence during ascii type file transfer. When ccrr is on (the
- default), carriage returns are stripped from this sequence to
- conform with the UNIX single linefeed record delimiter.
- Records on non-UNIX remote systems may contain single line-
- feeds; when an ascii type transfer is made, these linefeeds
- may be distinguished from a record delimiter only when ccrr is
- off.
-
- ddeebbuugg [_d_e_b_u_g_-_v_a_l_u_e]
- Toggle debugging mode. If an optional _d_e_b_u_g_-_v_a_l_u_e is speci-
- fied it is used to set the debugging level. When debugging
- is on, ffttpp prints each command sent to the remote machine,
- preceded by the string `-->'
-
- ddeelleettee _r_e_m_o_t_e_-_f_i_l_e
- Delete the file _r_e_m_o_t_e_-_f_i_l_e on the remote machine.
-
- ddiirr [_r_e_m_o_t_e_-_p_a_t_h [_l_o_c_a_l_-_f_i_l_e]]
- Print a listing of the contents of a directory on the remote
- machine. The listing includes any system-dependent informa-
- tion that the server chooses to include; for example, most
- UNIX systems will produce output from the command `ls -l'.
- If _r_e_m_o_t_e_-_p_a_t_h is left unspecified, the current working di-
- rectory is used. If interactive prompting is on, ffttpp will
- prompt the user to verify that the last argument is indeed
- the target local file for receiving ddiirr output. If no local
- file is specified, or if _l_o_c_a_l_-_f_i_l_e is `--', the output is
- sent to the terminal.
-
- ddiissccoonnnneecctt A synonym for cclloossee.
-
- eeddiitt Toggle command line editing, and context sensitive command
- and file completion. This is automatically enabled if input
- is from a terminal, and disabled otherwise.
-
- eeppssvv44 Toggle the use of the extended EPSV and EPRT commands on IPv4
- connections; first try EPSV / EPRT, and then PASV / PORT.
- This is enabled by default. If an extended command fails
- then this option will be temporarily disabled for the dura-
- tion of the current connection, or until eeppssvv44 is executed
- again.
-
- eexxiitt A synonym for bbyyee.
-
- ffeeaattuurreess Display what features the remote server supports (using the
- FEAT command).
-
- ffggeett _l_o_c_a_l_f_i_l_e
- Retrieve the files listed in _l_o_c_a_l_f_i_l_e, which has one line
- per filename.
-
- ffoorrmm _f_o_r_m_a_t
- Set the file transfer ffoorrmm to _f_o_r_m_a_t. The default (and only
- supported) format is ``non-print''.
-
- ffttpp _h_o_s_t [_p_o_r_t]
- A synonym for ooppeenn.
-
- ggaattee [_h_o_s_t [_p_o_r_t]]
- Toggle gate-ftp mode, which used to connect through the TIS
- FWTK and Gauntlet ftp proxies. This will not be permitted if
- the gate-ftp server hasn't been set (either explicitly by the
- user, or from the FTPSERVER environment variable). If _h_o_s_t
- is given, then gate-ftp mode will be enabled, and the gate-
- ftp server will be set to _h_o_s_t. If _p_o_r_t is also given, that
- will be used as the port to connect to on the gate-ftp serv-
- er.
-
- ggeett _r_e_m_o_t_e_-_f_i_l_e [_l_o_c_a_l_-_f_i_l_e]
- Retrieve the _r_e_m_o_t_e_-_f_i_l_e and store it on the local machine.
- If the local file name is not specified, it is given the same
- name it has on the remote machine, subject to alteration by
- the current ccaassee, nnttrraannss, and nnmmaapp settings. The current
- settings for ttyyppee, ffoorrmm, mmooddee, and ssttrruuccttuurree are used while
- transferring the file.
-
- gglloobb Toggle filename expansion for mmddeelleettee, mmggeett, mmppuutt, and
- mmrreeggeett. If globbing is turned off with gglloobb, the file name
- arguments are taken literally and not expanded. Globbing for
- mmppuutt is done as in csh(1). For mmddeelleettee, mmggeett, and mmrreeggeett,
- each remote file name is expanded separately on the remote
- machine and the lists are not merged. Expansion of a direc-
- tory name is likely to be different from expansion of the
- name of an ordinary file: the exact result depends on the
- foreign operating system and ftp server, and can be previewed
- by doing `mls remote-files -' Note: mmggeett, mmppuutt and mmrreeggeett are
- not meant to transfer entire directory subtrees of files.
- That can be done by transferring a tar(1) archive of the sub-
- tree (in binary mode).
-
- hhaasshh [_s_i_z_e]
- Toggle hash-sign (``#'') printing for each data block trans-
- ferred. The size of a data block defaults to 1024 bytes.
- This can be changed by specifying _s_i_z_e in bytes. Enabling
- hhaasshh disables pprrooggrreessss.
-
- hheellpp [_c_o_m_m_a_n_d]
- Print an informative message about the meaning of _c_o_m_m_a_n_d.
- If no argument is given, ffttpp prints a list of the known com-
- mands.
-
- iiddllee [_s_e_c_o_n_d_s]
- Set the inactivity timer on the remote server to _s_e_c_o_n_d_s sec-
- onds. If _s_e_c_o_n_d_s is omitted, the current inactivity timer is
- printed.
-
- iimmaaggee A synonym for bbiinnaarryy.
-
- llccdd [_d_i_r_e_c_t_o_r_y]
- Change the working directory on the local machine. If no
- _d_i_r_e_c_t_o_r_y is specified, the user's home directory is used.
-
- lleessss _f_i_l_e A synonym for ppaaggee.
-
- llppaaggee _l_o_c_a_l_-_f_i_l_e
- Display _l_o_c_a_l_-_f_i_l_e with the program specified by the sseett
- ppaaggeerr option.
-
- llppwwdd Print the working directory on the local machine.
-
- llss [_r_e_m_o_t_e_-_p_a_t_h [_l_o_c_a_l_-_f_i_l_e]]
- A synonym for ddiirr.
-
- mmaaccddeeff _m_a_c_r_o_-_n_a_m_e
- Define a macro. Subsequent lines are stored as the macro
- _m_a_c_r_o_-_n_a_m_e; a null line (consecutive newline characters in a
- file or carriage returns from the terminal) terminates macro
- input mode. There is a limit of 16 macros and 4096 total
- characters in all defined macros. Macros remain defined un-
- til a cclloossee command is executed. The macro processor inter-
- prets `$' and `\' as special characters. A `$' followed by a
- number (or numbers) is replaced by the corresponding argument
- on the macro invocation command line. A `$' followed by an
- `i' signals that macro processor that the executing macro is
- to be looped. On the first pass `$i' is replaced by the
- first argument on the macro invocation command line, on the
- second pass it is replaced by the second argument, and so on.
- A `\' followed by any character is replaced by that charac-
- ter. Use the `\' to prevent special treatment of the `$'.
-
- mmddeelleettee [_r_e_m_o_t_e_-_f_i_l_e_s]
- Delete the _r_e_m_o_t_e_-_f_i_l_e_s on the remote machine.
-
- mmddiirr _r_e_m_o_t_e_-_f_i_l_e_s _l_o_c_a_l_-_f_i_l_e
- Like ddiirr, except multiple remote files may be specified. If
- interactive prompting is on, ffttpp will prompt the user to ver-
- ify that the last argument is indeed the target local file
- for receiving mmddiirr output.
-
- mmggeett _r_e_m_o_t_e_-_f_i_l_e_s
- Expand the _r_e_m_o_t_e_-_f_i_l_e_s on the remote machine and do a ggeett
- for each file name thus produced. See gglloobb for details on
- the filename expansion. Resulting file names will then be
- processed according to ccaassee, nnttrraannss, and nnmmaapp settings.
- Files are transferred into the local working directory, which
- can be changed with `lcd directory'; new local directories
- can be created with `! mkdir directory'.
-
- mmkkddiirr _d_i_r_e_c_t_o_r_y_-_n_a_m_e
- Make a directory on the remote machine.
-
- mmllss _r_e_m_o_t_e_-_f_i_l_e_s _l_o_c_a_l_-_f_i_l_e
- Like llss, except multiple remote files may be specified, and
- the _l_o_c_a_l_-_f_i_l_e must be specified. If interactive prompting
- is on, ffttpp will prompt the user to verify that the last argu-
- ment is indeed the target local file for receiving mmllss out-
- put.
-
- mmllssdd [_r_e_m_o_t_e_-_p_a_t_h]
- Display the contents of _r_e_m_o_t_e_-_p_a_t_h (which should default to
- the current directory if not given) in a machine-parsable
- form, using MLSD. The format of display can be changed with
- `remopts mlst ...'.
-
- mmllsstt [_r_e_m_o_t_e_-_p_a_t_h]
- Display the details about _r_e_m_o_t_e_-_p_a_t_h (which should default
- to the current directory if not given) in a machine-parsable
- form, using MLST. The format of display can be changed with
- `remopts mlst ...'.
-
- mmooddee _m_o_d_e_-_n_a_m_e
- Set the file transfer mmooddee to _m_o_d_e_-_n_a_m_e. The default (and
- only supported) mode is ``stream''.
-
- mmooddttiimmee _r_e_m_o_t_e_-_f_i_l_e
- Show the last modification time of the file on the remote ma-
- chine.
-
- mmoorree _f_i_l_e A synonym for ppaaggee.
-
- mmppuutt _l_o_c_a_l_-_f_i_l_e_s
- Expand wild cards in the list of local files given as argu-
- ments and do a ppuutt for each file in the resulting list. See
- gglloobb for details of filename expansion. Resulting file names
- will then be processed according to nnttrraannss and nnmmaapp settings.
-
- mmrreeggeett _r_e_m_o_t_e_-_f_i_l_e_s
- As per mmggeett, but performs a rreeggeett instead of ggeett.
-
- mmsseenndd _l_o_c_a_l_-_f_i_l_e_s
- A synonym for mmppuutt.
-
- nneewweerr _r_e_m_o_t_e_-_f_i_l_e [_l_o_c_a_l_-_f_i_l_e]
- Get the file only if the modification time of the remote file
- is more recent that the file on the current system. If the
- file does not exist on the current system, the remote file is
- considered nneewweerr. Otherwise, this command is identical to
- _g_e_t.
-
- nnlliisstt [_r_e_m_o_t_e_-_p_a_t_h [_l_o_c_a_l_-_f_i_l_e]]
- A synonym for llss.
-
- nnmmaapp [_i_n_p_a_t_t_e_r_n _o_u_t_p_a_t_t_e_r_n]
- Set or unset the filename mapping mechanism. If no arguments
- are specified, the filename mapping mechanism is unset. If
- arguments are specified, remote filenames are mapped during
- mmppuutt commands and ppuutt commands issued without a specified re-
- mote target filename. If arguments are specified, local
- filenames are mapped during mmggeett commands and ggeett commands
- issued without a specified local target filename. This com-
- mand is useful when connecting to a non-UNIX remote computer
- with different file naming conventions or practices. The
- mapping follows the pattern set by _i_n_p_a_t_t_e_r_n and _o_u_t_p_a_t_t_e_r_n.
- [_I_n_p_a_t_t_e_r_n] is a template for incoming filenames (which may
- have already been processed according to the nnttrraannss and ccaassee
- settings). Variable templating is accomplished by including
- the sequences `$1', `$2', ..., `$9' in _i_n_p_a_t_t_e_r_n. Use `\' to
- prevent this special treatment of the `$' character. All
- other characters are treated literally, and are used to de-
- termine the nnmmaapp [_i_n_p_a_t_t_e_r_n] variable values. For example,
- given _i_n_p_a_t_t_e_r_n $1.$2 and the remote file name "mydata.data",
- $1 would have the value "mydata", and $2 would have the value
- "data". The _o_u_t_p_a_t_t_e_r_n determines the resulting mapped file-
- name. The sequences `$1', `$2', ...., `$9' are replaced by
- any value resulting from the _i_n_p_a_t_t_e_r_n template. The se-
- quence `$0' is replace by the original filename. Additional-
- ly, the sequence `[_s_e_q_1, _s_e_q_2]' is replaced by [_s_e_q_1] if _s_e_q_1
- is not a null string; otherwise it is replaced by _s_e_q_2. For
- example, the command
-
- nmap $1.$2.$3 [$1,$2].[$2,file]
-
- would yield the output filename "myfile.data" for input file-
- names "myfile.data" and "myfile.data.old", "myfile.file" for
- the input filename "myfile", and "myfile.myfile" for the in-
- put filename ".myfile". Spaces may be included in
- _o_u_t_p_a_t_t_e_r_n, as in the example: `nmap $1 sed "s/ *$//" > $1'
- . Use the `\' character to prevent special treatment of the
- `$','[',']', and `,' characters.
-
- nnttrraannss [_i_n_c_h_a_r_s [_o_u_t_c_h_a_r_s]]
- Set or unset the filename character translation mechanism.
- If no arguments are specified, the filename character trans-
- lation mechanism is unset. If arguments are specified, char-
- acters in remote filenames are translated during mmppuutt com-
- mands and ppuutt commands issued without a specified remote tar-
- get filename. If arguments are specified, characters in lo-
- cal filenames are translated during mmggeett commands and ggeett
- commands issued without a specified local target filename.
- This command is useful when connecting to a non-UNIX remote
- computer with different file naming conventions or practices.
- Characters in a filename matching a character in _i_n_c_h_a_r_s are
- replaced with the corresponding character in _o_u_t_c_h_a_r_s. If
- the character's position in _i_n_c_h_a_r_s is longer than the length
- of _o_u_t_c_h_a_r_s, the character is deleted from the file name.
-
- ooppeenn _h_o_s_t [_p_o_r_t]
- Establish a connection to the specified _h_o_s_t FTP server. An
- optional port number may be supplied, in which case, ffttpp will
- attempt to contact an FTP server at that port. If the aauuttoo--
- llooggiinn option is on (default), ffttpp will also attempt to auto-
- matically log the user in to the FTP server (see below).
-
- ppaaggee _f_i_l_e Retrieve ffiillee and display with the program specified by the
- sseett ppaaggeerr option.
-
- ppaassssiivvee [aauuttoo]
- Toggle passive mode (if no arguments are given). If aauuttoo is
- given, act as if FTPMODE is set to `auto'. If passive mode
- is turned on (default), ffttpp will send a PASV command for all
- data connections instead of a PORT command. The PASV command
- requests that the remote server open a port for the data con-
- nection and return the address of that port. The remote
- server listens on that port and the client connects to it.
- When using the more traditional PORT command, the client lis-
- tens on a port and sends that address to the remote server,
- who connects back to it. Passive mode is useful when using
- ffttpp through a gateway router or host that controls the direc-
- tionality of traffic. (Note that though FTP servers are re-
- quired to support the PASV command by RFC 1123, some do not.)
-
- ppddiirr [_r_e_m_o_t_e_-_p_a_t_h]
- Perform ddiirr [_r_e_m_o_t_e_-_p_a_t_h], and display the result with the
- program specified by the sseett ppaaggeerr option.
-
- ppllss [_r_e_m_o_t_e_-_p_a_t_h]
- Perform llss [_r_e_m_o_t_e_-_p_a_t_h], and display the result with the
- program specified by the sseett ppaaggeerr option.
-
- ppmmllssdd [_r_e_m_o_t_e_-_p_a_t_h]
- Perform mmllssdd [_r_e_m_o_t_e_-_p_a_t_h], and display the result with the
- program specified by the sseett ppaaggeerr option.
-
- pprreesseerrvvee Toggle preservation of modification times on retrieved files.
-
- pprrooggrreessss Toggle display of transfer progress bar. The progress bar
- will be disabled for a transfer that has _l_o_c_a_l_-_f_i_l_e as `--' or
- a command that starts with `|'. Refer to _F_I_L_E _N_A_M_I_N_G
- _C_O_N_V_E_N_T_I_O_N_S for more information. Enabling pprrooggrreessss disables
- hhaasshh.
-
- pprroommpptt Toggle interactive prompting. Interactive prompting occurs
- during multiple file transfers to allow the user to selec-
- tively retrieve or store files. If prompting is turned off
- (default is on), any mmggeett or mmppuutt will transfer all files,
- and any mmddeelleettee will delete all files.
-
- When prompting is on, the following commands are available at
- a prompt:
-
- aa Answer `yes' to the current file, and automatically
- answer `yes' to any remaining files for the current
- command.
-
- nn Answer `no', and do not transfer the file.
-
- pp Answer `yes' to the current file, and turn off
- prompt mode (as is ``prompt off'' had been given).
-
- qq Terminate the current operation.
-
- yy Answer `yes', and transfer the file.
-
- ?? Display a help message.
-
- Any other reponse will answer `yes' to the current file.
-
- pprrooxxyy _f_t_p_-_c_o_m_m_a_n_d
- Execute an ftp command on a secondary control connection.
- This command allows simultaneous connection to two remote FTP
- servers for transferring files between the two servers. The
- first pprrooxxyy command should be an ooppeenn, to establish the sec-
- ondary control connection. Enter the command "proxy ?" to
- see other FTP commands executable on the secondary connec-
- tion. The following commands behave differently when pref-
- aced by pprrooxxyy: ooppeenn will not define new macros during the au-
- to-login process, cclloossee will not erase existing macro defini-
- tions, ggeett and mmggeett transfer files from the host on the pri-
- mary control connection to the host on the secondary control
- connection, and ppuutt, mmppuutt, and aappppeenndd transfer files from the
- host on the secondary control connection to the host on the
- primary control connection. Third party file transfers de-
- pend upon support of the FTP protocol PASV command by the
- server on the secondary control connection.
-
- ppuutt _l_o_c_a_l_-_f_i_l_e [_r_e_m_o_t_e_-_f_i_l_e]
- Store a local file on the remote machine. If _r_e_m_o_t_e_-_f_i_l_e is
- left unspecified, the local file name is used after process-
- ing according to any nnttrraannss or nnmmaapp settings in naming the
- remote file. File transfer uses the current settings for
- ttyyppee, ffoorrmmaatt, mmooddee, and ssttrruuccttuurree.
-
- ppwwdd Print the name of the current working directory on the remote
- machine.
-
- qquuiitt A synonym for bbyyee.
-
- qquuoottee _a_r_g_1 _a_r_g_2 _._._.
- The arguments specified are sent, verbatim, to the remote FTP
- server.
-
- rraattee _d_i_r_e_c_t_i_o_n [_m_a_x_i_m_u_m [_i_n_c_r_e_m_e_n_t]]
- Throttle the maximum transfer rate to _m_a_x_i_m_u_m bytes/second.
- If _m_a_x_i_m_u_m is 0, disable the throttle.
-
- _d_i_r_e_c_t_i_o_n may be one of:
- aallll Both directions.
- ggeett Incoming transfers.
- ppuutt Outgoing transfers.
-
- _m_a_x_i_m_u_m can by modified on the fly by _i_n_c_r_e_m_e_n_t bytes (de-
- fault: 1024) each time a given signal is received:
-
- SIGUSR1 Increment _m_a_x_i_m_u_m by _i_n_c_r_e_m_e_n_t bytes.
-
- SIGUSR2 Decrement _m_a_x_i_m_u_m by _i_n_c_r_e_m_e_n_t bytes. The re-
- sult must be a positive number.
-
- If _m_a_x_i_m_u_m is not supplied, the current throttle rates are
- displayed.
-
- Note: rraattee is not yet implemented for ascii mode transfers.
-
- rrccvvbbuuff _s_i_z_e
- Set the size of the socket receive buffer to _s_i_z_e.
-
- rreeccvv _r_e_m_o_t_e_-_f_i_l_e [_l_o_c_a_l_-_f_i_l_e]
- A synonym for ggeett.
-
- rreeggeett _r_e_m_o_t_e_-_f_i_l_e [_l_o_c_a_l_-_f_i_l_e]
- rreeggeett acts like ggeett, except that if _l_o_c_a_l_-_f_i_l_e exists and is
- smaller than _r_e_m_o_t_e_-_f_i_l_e, _l_o_c_a_l_-_f_i_l_e is presumed to be a par-
- tially transferred copy of _r_e_m_o_t_e_-_f_i_l_e and the transfer is
- continued from the apparent point of failure. This command
- is useful when transferring very large files over networks
- that are prone to dropping connections.
-
- rreemmooppttss _c_o_m_m_a_n_d [_c_o_m_m_a_n_d_-_o_p_t_i_o_n_s]
- Set options on the remote FTP server for _c_o_m_m_a_n_d to _c_o_m_m_a_n_d_-
- _o_p_t_i_o_n_s (whose absence is handled on a command-specific ba-
- sis). Remote FTP commands known to support options include:
- `MLST' (used for MLSD and MLST).
-
- rreennaammee [_f_r_o_m [_t_o]]
- Rename the file _f_r_o_m on the remote machine, to the file _t_o.
-
- rreesseett Clear reply queue. This command re-synchronizes command/re-
- ply sequencing with the remote FTP server. Resynchronization
- may be necessary following a violation of the FTP protocol by
- the remote server.
-
- rreessttaarrtt _m_a_r_k_e_r
- Restart the immediately following ggeett or ppuutt at the indicated
- _m_a_r_k_e_r. On UNIX systems, marker is usually a byte offset in-
- to the file.
-
- rrhheellpp [_c_o_m_m_a_n_d_-_n_a_m_e]
- Request help from the remote FTP server. If a _c_o_m_m_a_n_d_-_n_a_m_e
- is specified it is supplied to the server as well.
-
- rrmmddiirr _d_i_r_e_c_t_o_r_y_-_n_a_m_e
- Delete a directory on the remote machine.
-
- rrssttaattuuss [_r_e_m_o_t_e_-_f_i_l_e]
- With no arguments, show status of remote machine. If _r_e_m_o_t_e_-
- _f_i_l_e is specified, show status of _r_e_m_o_t_e_-_f_i_l_e on remote ma-
- chine.
-
- rruunniiqquuee Toggle storing of files on the local system with unique file-
- names. If a file already exists with a name equal to the
- target local filename for a ggeett or mmggeett command, a ".1" is
- appended to the name. If the resulting name matches another
- existing file, a ".2" is appended to the original name. If
- this process continues up to ".99", an error message is
- printed, and the transfer does not take place. The generated
- unique filename will be reported. Note that rruunniiqquuee will not
- affect local files generated from a shell command (see be-
- low). The default value is off.
-
- sseenndd _l_o_c_a_l_-_f_i_l_e [_r_e_m_o_t_e_-_f_i_l_e]
- A synonym for ppuutt.
-
- sseennddppoorrtt Toggle the use of PORT commands. By default, ffttpp will at-
- tempt to use a PORT command when establishing a connection
- for each data transfer. The use of PORT commands can prevent
- delays when performing multiple file transfers. If the PORT
- command fails, ffttpp will use the default data port. When the
- use of PORT commands is disabled, no attempt will be made to
- use PORT commands for each data transfer. This is useful for
- certain FTP implementations which do ignore PORT commands
- but, incorrectly, indicate they've been accepted.
-
- sseett [_o_p_t_i_o_n _v_a_l_u_e]
- Set _o_p_t_i_o_n to _v_a_l_u_e. If _o_p_t_i_o_n and _v_a_l_u_e are not given, dis-
- play all of the options and their values. The currently sup-
- ported options are:
-
- anonpass Defaults to $FTPANONPASS
-
- ftp_proxy Defaults to $ftp_proxy.
-
- http_proxy Defaults to $http_proxy.
-
- no_proxy Defaults to $no_proxy.
-
- pager Defaults to $PAGER.
-
- prompt Defaults to $FTPPROMPT.
-
- rprompt Defaults to $FTPRPROMPT.
-
- ssiittee _a_r_g_1 _a_r_g_2 _._._.
- The arguments specified are sent, verbatim, to the remote FTP
- server as a SITE command.
-
- ssiizzee _r_e_m_o_t_e_-_f_i_l_e
- Return size of _r_e_m_o_t_e_-_f_i_l_e on remote machine.
-
- ssnnddbbuuff _s_i_z_e
- Set the size of the socket send buffer to _s_i_z_e.
-
- ssttaattuuss Show the current status of ffttpp.
-
- ssttrruucctt _s_t_r_u_c_t_-_n_a_m_e
- Set the file transfer _s_t_r_u_c_t_u_r_e to _s_t_r_u_c_t_-_n_a_m_e. The default
- (and only supported) structure is ``file''.
-
- ssuunniiqquuee Toggle storing of files on remote machine under unique file
- names. The remote FTP server must support FTP protocol STOU
- command for successful completion. The remote server will
- report unique name. Default value is off.
-
- ssyysstteemm Show the type of operating system running on the remote ma-
- chine.
-
- tteenneexx Set the file transfer type to that needed to talk to TENEX
- machines.
-
- tthhrroottttllee A synonym for rraattee.
-
- ttrraaccee Toggle packet tracing.
-
- ttyyppee [_t_y_p_e_-_n_a_m_e]
- Set the file transfer ttyyppee to _t_y_p_e_-_n_a_m_e. If no type is spec-
- ified, the current type is printed. The default type is net-
- work ASCII.
-
- uummaasskk [_n_e_w_m_a_s_k]
- Set the default umask on the remote server to _n_e_w_m_a_s_k. If
- _n_e_w_m_a_s_k is omitted, the current umask is printed.
-
- uunnsseett _o_p_t_i_o_n
- Unset _o_p_t_i_o_n. Refer to sseett for more information.
-
- uussaaggee _c_o_m_m_a_n_d
- Print the usage message for _c_o_m_m_a_n_d.
-
- uusseerr _u_s_e_r_-_n_a_m_e [_p_a_s_s_w_o_r_d [_a_c_c_o_u_n_t]]
- Identify yourself to the remote FTP server. If the _p_a_s_s_w_o_r_d
- is not specified and the server requires it, ffttpp will prompt
- the user for it (after disabling local echo). If an _a_c_c_o_u_n_t
- field is not specified, and the FTP server requires it, the
- user will be prompted for it. If an _a_c_c_o_u_n_t field is speci-
- fied, an account command will be relayed to the remote server
- after the login sequence is completed if the remote server
- did not require it for logging in. Unless ffttpp is invoked
- with ``auto-login'' disabled, this process is done automati-
- cally on initial connection to the FTP server.
-
- vveerrbboossee Toggle verbose mode. In verbose mode, all responses from the
- FTP server are displayed to the user. In addition, if ver-
- bose is on, when a file transfer completes, statistics re-
- garding the efficiency of the transfer are reported. By de-
- fault, verbose is on.
-
- xxffeerrbbuuff _s_i_z_e
- Set the size of the socket send and receive buffers to _s_i_z_e.
-
- ?? [_c_o_m_m_a_n_d]
- A synonym for hheellpp.
-
- Command arguments which have embedded spaces may be quoted with quote `"'
- marks.
-
- Commands which toggle settings can take an explicit oonn or ooffff argument to
- force the setting appropriately.
-
- Commands which take a byte count as an argument (e.g., hhaasshh, rraattee, and
- xxffeerrbbuuff) support an optional suffix on the argument which changes the in-
- terpretation of the argument. Supported suffixes are:
- b Causes no modification. (Optional)
- k Kilo; multiply the argument by 1024
- m Mega; multiply the argument by 1048576
- g Giga; multiply the argument by 1073741824
-
- If ffttpp receives a SIGINFO (see the ``status'' argument of stty(1)) or
- SIGQUIT signal whilst a transfer is in progress, the current transfer
- rate statistics will be written to the standard error output, in the same
- format as the standard completion message.
-
-AAUUTTOO--FFEETTCCHHIINNGG FFIILLEESS
- In addition to standard commands, this version of ffttpp supports an auto-
- fetch feature. To enable auto-fetch, simply pass the list of host-
- names/files on the command line.
-
- The following formats are valid syntax for an auto-fetch element:
-
- [user@]host:[path][/]
- ``Classic'' FTP format.
-
- If _p_a_t_h contains a glob character and globbing is enabled, (see
- gglloobb), then the equivalent of `mget path' is performed.
-
- If the directory component of _p_a_t_h contains no globbing characters,
- it is stored locally with the name basename (see basename(1)) of
- ppaatthh, in the current directory. Otherwise, the full remote name is
- used as the local name, relative to the local root directory.
-
- ftp://[user[:password]@]host[:port]/path[/][;type=X]
- An FTP URL, retrieved using the FTP protocol if sseett ffttpp__pprrooxxyy isn't
- defined. Otherwise, transfer the URL using HTTP via the proxy de-
- fined in sseett ffttpp__pprrooxxyy. If sseett ffttpp__pprrooxxyy isn't defined and _u_s_e_r is
- given, login as _u_s_e_r. In this case, use _p_a_s_s_w_o_r_d if supplied, oth-
- erwise prompt the user for one.
-
- In order to be compliant with RRFFCC 11773388, ffttpp strips the leading `/'
- from _p_a_t_h, resulting in a transfer relative from the default login
- directory of the user. If the _/ directory is required, use a lead-
- ing path of ``%2F''. If a user's home directory is required (and
- the remote server supports the syntax), use a leading path of
- ``%7Euser/''. For example, to retrieve _/_e_t_c_/_m_o_t_d from `localhost'
- as the user `myname' with the password `mypass', use
- ``ftp://myname:mypass@localhost/%2fetc/motd''
-
- If a suffix of `;type=A' or `;type=I' is supplied, then the trans-
- fer type will take place as ascii or binary (respectively). The
- default transfer type is binary.
-
- http://[user[:password]@]host[:port]/path
- An HTTP URL, retrieved using the HTTP protocol. If sseett hhttttpp__pprrooxxyy
- is defined, it is used as a URL to an HTTP proxy server. If HTTP
- authorisation is required to retrieve _p_a_t_h, and `user' (and option-
- ally `password') is in the URL, use them for the first attempt to
- authenticate.
-
- file:///path
- A local URL, copied from _/_p_a_t_h.
-
- Unless noted otherwise above, and --oo _o_u_t_p_u_t is not given, the file is
- stored in the current directory as the basename(1) of _p_a_t_h.
-
- If a classic format or an FTP URL format has a trailing `/' or an empty
- _p_a_t_h component, then ffttpp will connect to the site and ccdd to the directory
- given as the path, and leave the user in interactive mode ready for fur-
- ther input. This will not work if sseett ffttpp__pprrooxxyy is being used.
-
- Direct HTTP transfers use HTTP 1.1. Proxied FTP and HTTP transfers use
- HTTP 1.0.
-
- If --RR is given, all auto-fetches that don't go via the FTP or HTTP prox-
- ies will be restarted. For FTP, this is implemented by using rreeggeett in-
- stead of ggeett. For HTTP, this is implemented by using the `Range: bytes='
- HTTP/1.1 directive.
-
- If WWW or proxy WWW authentication is required, you will be prompted to
- enter a username and password to authenticate with.
-
- When specifying IPv6 numeric addresses in a URL, you need to surround the
- address in square brackets. E.g.: ``ftp://[::1]:21/''. This is because
- colons are used in IPv6 numeric address as well as being the separator
- for the port number.
-
-AABBOORRTTIINNGG AA FFIILLEE TTRRAANNSSFFEERR
- To abort a file transfer, use the terminal interrupt key (usually Ctrl-
- C). Sending transfers will be immediately halted. Receiving transfers
- will be halted by sending an FTP protocol ABOR command to the remote
- server, and discarding any further data received. The speed at which
- this is accomplished depends upon the remote server's support for ABOR
- processing. If the remote server does not support the ABOR command, the
- prompt will not appear until the remote server has completed sending the
- requested file.
-
- If the terminal interrupt key sequence is used whilst ffttpp is awaiting a
- reply from the remote server for the ABOR processing, then the connection
- will be closed. This is different from the traditional behaviour (which
- ignores the terminal interrupt during this phase), but is considered more
- useful.
-
-FFIILLEE NNAAMMIINNGG CCOONNVVEENNTTIIOONNSS
- Files specified as arguments to ffttpp commands are processed according to
- the following rules.
-
- 1. If the file name `--' is specified, the _s_t_d_i_n (for reading) or _s_t_d_o_u_t
- (for writing) is used.
-
- 2. If the first character of the file name is `|', the remainder of the
- argument is interpreted as a shell command. ffttpp then forks a shell,
- using popen(3) with the argument supplied, and reads (writes) from
- the stdout (stdin). If the shell command includes spaces, the argu-
- ment must be quoted; e.g. ``"| ls -lt"''. A particularly useful
- example of this mechanism is: ``dir "" |more''.
-
- 3. Failing the above checks, if ``globbing'' is enabled, local file
- names are expanded according to the rules used in the csh(1); c.f.
- the gglloobb command. If the ffttpp command expects a single local file
- (e.g. ppuutt), only the first filename generated by the "globbing" op-
- eration is used.
-
- 4. For mmggeett commands and ggeett commands with unspecified local file
- names, the local filename is the remote filename, which may be al-
- tered by a ccaassee, nnttrraannss, or nnmmaapp setting. The resulting filename
- may then be altered if rruunniiqquuee is on.
-
- 5. For mmppuutt commands and ppuutt commands with unspecified remote file
- names, the remote filename is the local filename, which may be al-
- tered by a nnttrraannss or nnmmaapp setting. The resulting filename may then
- be altered by the remote server if ssuunniiqquuee is on.
-
-FFIILLEE TTRRAANNSSFFEERR PPAARRAAMMEETTEERRSS
- The FTP specification specifies many parameters which may affect a file
- transfer. The ttyyppee may be one of ``ascii'', ``image'' (binary),
- ``ebcdic'', and ``local byte size'' (for PDP-10's and PDP-20's mostly).
- ffttpp supports the ascii and image types of file transfer, plus local byte
- size 8 for tteenneexx mode transfers.
-
- ffttpp supports only the default values for the remaining file transfer pa-
- rameters: mmooddee, ffoorrmm, and ssttrruucctt.
-
-TTHHEE ..nneettrrcc FFIILLEE
- The _._n_e_t_r_c file contains login and initialization information used by the
- auto-login process. It resides in the user's home directory, unless
- overridden with the --NN _n_e_t_r_c option, or specified in the NETRC environ-
- ment variable. The following tokens are recognized; they may be separat-
- ed by spaces, tabs, or new-lines:
-
- mmaacchhiinnee _n_a_m_e
- Identify a remote machine _n_a_m_e. The auto-login process search-
- es the _._n_e_t_r_c file for a mmaacchhiinnee token that matches the remote
- machine specified on the ffttpp command line or as an ooppeenn command
- argument. Once a match is made, the subsequent _._n_e_t_r_c tokens
- are processed, stopping when the end of file is reached or an-
- other mmaacchhiinnee or a ddeeffaauulltt token is encountered.
-
- ddeeffaauulltt This is the same as mmaacchhiinnee _n_a_m_e except that ddeeffaauulltt matches
- any name. There can be only one ddeeffaauulltt token, and it must be
- after all mmaacchhiinnee tokens. This is normally used as:
-
- default login anonymous password user@site
-
- thereby giving the user an automatic anonymous FTP login to ma-
- chines not specified in _._n_e_t_r_c. This can be overridden by us-
- ing the --nn flag to disable auto-login.
-
- llooggiinn _n_a_m_e
- Identify a user on the remote machine. If this token is pre-
- sent, the auto-login process will initiate a login using the
- specified _n_a_m_e.
-
- ppaasssswwoorrdd _s_t_r_i_n_g
- Supply a password. If this token is present, the auto-login
- process will supply the specified string if the remote server
- requires a password as part of the login process. Note that if
- this token is present in the _._n_e_t_r_c file for any user other
- than _a_n_o_n_y_m_o_u_s, ffttpp will abort the auto-login process if the
- _._n_e_t_r_c is readable by anyone besides the user.
-
- aaccccoouunntt _s_t_r_i_n_g
- Supply an additional account password. If this token is pre-
- sent, the auto-login process will supply the specified string
- if the remote server requires an additional account password,
- or the auto-login process will initiate an ACCT command if it
- does not.
-
- mmaaccddeeff _n_a_m_e
- Define a macro. This token functions like the ffttpp mmaaccddeeff com-
- mand functions. A macro is defined with the specified name;
- its contents begin with the next _._n_e_t_r_c line and continue until
- a blank line (consecutive new-line characters) is encountered.
- If a macro named iinniitt is defined, it is automatically executed
- as the last step in the auto-login process.
-
-CCOOMMMMAANNDD LLIINNEE EEDDIITTIINNGG
- ffttpp supports interactive command line editing, via the editline(3) li-
- brary. It is enabled with the eeddiitt command, and is enabled by default if
- input is from a tty. Previous lines can be recalled and edited with the
- arrow keys, and other GNU Emacs-style editing keys may be used as well.
-
- The editline(3) library is configured with a _._e_d_i_t_r_c file - refer to
- editrc(5) for more information.
-
- An extra key binding is available to ffttpp to provide context sensitive
- command and filename completion (including remote file completion). To
- use this, bind a key to the editline(3) command ffttpp--ccoommpplleettee. By de-
- fault, this is bound to the TAB key.
-
-CCOOMMMMAANNDD LLIINNEE PPRROOMMPPTT
- By default, ffttpp displays a command line prompt of ``ftp>'' to the user.
- This can be changed with the sseett pprroommpptt command.
-
- A prompt can be displayed on the right side of the screen (after the com-
- mand input) with the sseett rrpprroommpptt command.
-
- The following formatting sequences are replaced by the given information:
-
- %/ The current remote working directory.
-
- %c[[0]_n], %.[[0]_n]
- The trailing component of the current remote working directo-
- ry, or _n trailing components if a digit _n is given. If _n be-
- gins with `0', the number of skipped components precede the
- trailing component(s) in the format ``/_<_s_k_i_p_p_e_d_>trailing''
- (for `%c') or ``...trailing'' (for `%.').
-
- %M The remote host name.
-
- %m The remote host name, up to the first `.'.
-
- %n The remote user name.
-
- %% A single `%'.
-
-EENNVVIIRROONNMMEENNTT
- ffttpp uses the following environment variables.
-
- FTPANONPASS Password to send in an anonymous FTP transfer. Defaults
- to ```whoami`@''.
-
- FTPMODE Overrides the default operation mode. Support values are:
-
- active active mode FTP only
-
- auto automatic determination of passive or active
- (this is the default)
-
- gate gate-ftp mode
-
- passive passive mode FTP only
-
- FTPPROMPT Command-line prompt to use. Defaults to ``ftp>''. Refer
- to _C_O_M_M_A_N_D _L_I_N_E _P_R_O_M_P_T for more information.
-
- FTPRPROMPT Command-line right side prompt to use. Defaults to ``''.
- Refer to _C_O_M_M_A_N_D _L_I_N_E _P_R_O_M_P_T for more information.
-
- FTPSERVER Host to use as gate-ftp server when ggaattee is enabled.
-
- FTPSERVERPORT Port to use when connecting to gate-ftp server when ggaattee
- is enabled. Default is port returned by a ggeettsseerrvvbbyynnaammee()
- lookup of ``ftpgate/tcp''.
-
- HOME For default location of a _._n_e_t_r_c file, if one exists.
-
- NETRC An alternate location of the _._n_e_t_r_c file.
-
- PAGER Used by various commands to display files. Defaults to
- more(1) if empty or not set.
-
- SHELL For default shell.
-
- ftp_proxy URL of FTP proxy to use when making FTP URL requests (if
- not defined, use the standard FTP protocol).
-
- _N_O_T_E: this is not used for interactive sessions, only for
- command-line fetches.
-
- http_proxy URL of HTTP proxy to use when making HTTP URL requests.
- If proxy authentication is required and there is a user-
- name and password in this URL, they will automatically be
- used in the first attempt to authenticate to the proxy.
-
- Note that the use of a username and password in ftp_proxy
- and http_proxy may be incompatible with other programs
- that use it (such as lynx(1)).
-
- _N_O_T_E: this is not used for interactive sessions, only for
- command-line fetches.
-
- no_proxy A space or comma separated list of hosts (or domains) for
- which proxying is not to be used. Each entry may have an
- optional trailing ":port", which restricts the matching to
- connections to that port.
-
-SSEEEE AALLSSOO
- getservbyname(3), editrc(5), services(5), ftpd(8)
-
-SSTTAANNDDAARRDDSS
- ffttpp attempts to be compliant with RRFFCC 995599, RRFFCC 11112233, RRFFCC 11773388, RRFFCC 22006688,
- RRFFCC 22338899, RRFFCC 22442288, RRFFCC 22773322, and ddrraafftt--iieettff--ffttppeexxtt--mmllsstt--1111.
-
-HHIISSTTOORRYY
- The ffttpp command appeared in 4.2BSD.
-
- Various features such as command line editing, context sensitive command
- and file completion, dynamic progress bar, automatic fetching of files
- and URLs, modification time preservation, transfer rate throttling, con-
- figurable command line prompt, and other enhancements over the standard
- BSD ffttpp were implemented in NetBSD 1.3 and later releases by Luke Mewburn
- <lukem@netbsd.org>.
-
- IPv6 support was added by the WIDE/KAME project (but may not be present
- in all non-NetBSD versions of this program, depending if the operating
- system supports IPv6 in a similar manner to KAME).
-
-BBUUGGSS
- Correct execution of many commands depends upon proper behavior by the
- remote server.
-
- An error in the treatment of carriage returns in the 4.2BSD ascii-mode
- transfer code has been corrected. This correction may result in incor-
- rect transfers of binary files to and from 4.2BSD servers using the ascii
- type. Avoid this problem by using the binary image type.
-
- ffttpp assumes that all IPv4 mapped addresses (IPv6 addresses with a form
- like ::ffff:10.1.1.1) indicate IPv4 destinations which can be handled by
- AF_INET sockets. However, in certain IPv6 network configurations, this
- assumption is not true. In such an environment, IPv4 mapped addresses
- must be passed to AF_INET6 sockets directly. For example, if your site
- uses a SIIT translator for IPv6-to-IPv4 translation, ffttpp is unable to
- support your configuration.
-
-NetBSD 1.6_BETA1 May 18, 2002 16
diff --git a/contrib/lukemftp/todo b/contrib/lukemftp/todo
deleted file mode 100644
index 486381579c29..000000000000
--- a/contrib/lukemftp/todo
+++ /dev/null
@@ -1,25 +0,0 @@
-$Id: todo,v 1.30 2002/06/10 08:08:53 lukem Exp $
-
-update NEWS, README, ...
-
-at end of configure, show summary of options used and features found
-
-if socks is defined, disable ipv6 and use own getaddrinfo()/getnameinfo()
-(for tron)
-
-add locale autoconf checks
-
-AC_CHECK_SIZEOF(off_t, 0) doesn't work on FreeBSD 4.0 because the
-test doesn't include <sys/types.h>. fix autoconf?
-
-in configure, check for ansi c compiler and barf if it fails
-
-check if we need #defines for memcpy() et al
-
-check for utimes() decls [which system?]
-
-possibly install editline.3 and editrc.5
-
-system specific tests (to remove need for manual intervention):
-- sunos4
- LIBS+= -lresolv