ChangeLog revision 98247
1Mon Jun 10 08:12:35 UTC 2002	lukem
2
3	* crank FTP_VERSION from 1.6-beta1 to 1.6-beta2
4
5	* replace missing fseeko(), with a wrapper to fseek() which
6	  checks that the offset isn't > LONG_MAX
7
8	* #include <regex.h> #if HAVE_REGEX_H
9
10Mon Jun 10 01:27:46 UTC 2002	lukem
11
12	* check for and replace sa_family_t definition
13
14	* don't bother checking for issetugid(); it was only used in the
15	  internal libedit to prevent $HOME/.editrc from being used if
16	  running set-id, and the newer libedit code wouldn't even read
17	  $HOME/.editrc if issetugid() wasn't available.  as many target
18	  operating systems don't have issetugid(), and lukemftp isn't
19	  likely to be run set-id (and $HOME/.netrc is used in any case),
20	  the issetugid() check has been disabled in libedit.
21
22	* add back cpp code which #defines REGEX #if HAVE_REGEX_H
23
24Wed Jun  5 14:39:11 UTC 2002	lukem
25
26	* crank FTP_VERSION from 1.6alpha1 to 1.6-beta1
27
28	* implement replacement setprogname()
29
30	* use getprogname() instead of __progname
31
32	* convert to christos' replacement fgetln(), as it's better than mine
33
34	* merge ftp from NetBSD 20020605 to 20020606:
35		- use setprogname()
36		- only support -6 if INET6 is defined
37
38Wed Jun  5 13:08:25 UTC 2002	lukem
39
40	* don't bother checking if <glob.h> is usable (see below).
41
42	* always compile in local glob; it's the best way to ensure that
43	  various security issues are fixed
44
45	* update libukem/glob.c from NetBSD's __glob13.c rev 1.22 and rev 1.23
46
47	* merge libedit from NetBSD 20010413 to 20020606:
48		- constify; passes all gcc and lint strict checks.
49		- add config.h [Jason Evans], to create a portable version of
50		  libedit that can be easily compiled on other OS's.
51		- PR/12963:Jason Waterman: Fix signed cast problems.
52		- Fixed an __P remnant
53		- Close quoting.
54		- Generate <>& symbolically.
55		- Punctuation and whitespace nits, fix a typo.
56		- PR/14188: Anthony Mallet: Provide an opaque data
57		  pointer to client programs.
58		- a couple of minor fixes.  originally by Ruslan Ermilov
59		  <ru@FreeBSD.org>, highlighted to me by way of Mike Barcroft
60		  <mike@FreeBSD.org> (thanks!)
61		- PR/14067: Anthony Mallet: Provide a programmatic way
62		  to set the read_char function via a new el_set() operation.
63		  Thanks, nicely done :-)
64		- `existent', not `existant'
65		- Don't use HAVE_ yet.
66		- Fix a warning.
67		- Remove an unused variable.
68		- If term_init() fails, cleanup and return NULL. This
69		  avoids other lossage.  Pointed by charles.
70		- va_{start,end} audit: Make sure that each va_start has one
71		  and only one matching va_end, especially in error cases.
72		  If the va_list is used multiple times, do multiple
73		  va_starts/va_ends.  If a function gets va_list as argument,
74		  don't let it use va_end (since it's the callers
75		  responsibility).  Improved by comments from enami and
76		  christos -- thanks!
77		- history_def_enter: fix off-by-one mistake in delete
78		  condition (the behaviour to keep at least one entry on the
79		  history list is retained). This fixes lib/9704 by Phil Nelson.
80
81	* merge ftp from NetBSD 20020524 to 20020605:
82		- when showing the final progress bar, replace "00:00 ETA"
83		  with the elapsed time.  (suggested by simonb)
84		- actually display transfer stats after a URL fetch.
85		  (bug introduced a *long* time ago)
86		- update copyright & version
87
88	* merge ftp from NetBSD 20001127 to 20020524:
89		- Use "r+" instead of "r+w", since the latter is not standard.
90		  Noted by <Steve.McClellan@radisys.com> in private email.
91		- Only send port number in HTTP/1.1 Host: request if port !=
92		  80.  Fixes [bin/15415] from Takahiro Kambe
93		  <taca@sky.yamashina.kyoto.jp>
94		- Fix bad mode passed by mls() to recvrequest().  Fixes
95		  [bin/16642] from <steve.mcclellan@radisys.com>
96		- update copyrights
97		- minor knf
98		- invoke cmdtab.c_handler()s with argv[0] == c_name instead
99		  of the supplied name. that way the full (unambiguous) name
100		  is displayed in error messages and usage strings.
101		- line2 may overrun if line is too long (> 200).  be more
102		  careful on strcpy.
103		- Handle URLs without files correctly (e.g, when using '-o -').
104		  Fix from Anders Dinsen <anders@dinsen.net> in [bin/13768]
105		- portnum is unsigned, use %u instead of %d
106		- Add -4 to force IPv4 and -6 to force IPv6 address usage.
107		  From Hajimu UMEMOTO, via Mike Heffner of FreeBSD.
108		- use u_char instead of char in base64_encode().
109		  problem noticed by Jorgen Lundman in private mail.
110		- don't make broken file with -R option.
111		- handle "*" in Content-Range properly.
112		- If no_proxy condition is true && urltype == FTP_URL_T,
113		  use fetch_ftp to retrieve
114		- convert to use getprogname()
115		- Fix description for "form", "mode", and "struct" commands.
116		  Inspired by [bin/16736] from Steve McClellan
117		  <steve.mcclellan@radisys.com>
118		- Generate <>& symbolically. I'm avoiding .../dist/...
119		  directories for now.
120		- Punctuation nits.
121		- Whitespace cleanup.
122		- put "site" in alphabetical order. noted by Mike Barcroft
123		  in private email
124		- avoid buffer overrun on PASV from malicious server.
125		- Large file ASCII mode support by using fseeko()
126		  instead of fseek().  From Andrey A. Chernov of FreeBSD,
127		  via Mike Heffner.
128		- Deal with const'ification if el_parse().
129		- call setlocale() on startup
130		- display a limited progress bar (containing bytes xferred
131		  and xfer rate) when the file size is unknown
132		- disable progress bar during remglob()
133
134Thu Mar 14 05:41:49 UTC 2002	lukem
135
136	* ensure all AF_INET6 use is protected with #ifdef INET6
137
138	* remove unnecessary __attribute__ goop
139
140	* libukem/snprintf.c: fix compile errors with gcc 3.x
141
142Tue Apr 17 08:07:29 UTC 2001	lukem
143
144	* autoconf check for %q long long support in *printf()
145	  (instead of %ll), define and use HAVE_PRINTF_QD if so
146
147	* ipv6 isn't compatible with socks, so disable the former
148
149	* look for <libutil.h> (instead of <util.h>) and <arpa/nameser.h>
150
151	* don't check for fparseln() twice
152
153	* fix getaddrinfo() checks
154
155	* crank FTP_VERSION from 1.5 to 1.6alpha1
156
157	* always ensure _PATH_BSHELL and _PATH_TMP are defined
158
159	* prototype inet_pton() if its missing
160
161	* don't bother trying to use if_indextoname() in ip6_sa2str()
162	  (fixes problems on MacOS X)
163
164	* in inet_pton(), pull in <arpa/nameser.h> for IN6ADDRSZ and INT16SZ,
165	  and define if missing
166
167Fri Apr 13 15:24:44 UTC 2001	lukem
168
169	* only include <arpa/nameser.h> if we have it
170
171	* update glob(3) to netbsd-current (20010329), adding support
172	  for GLOB_LIMIT and fixing various buffer overflows.
173
174	* update editline from NetBSD 20000915 -> NetBSD 20010413
175		- Enlarge editline buffers as needed to support arbitrary
176		  length lines.  This also addresses lib/9712 by Phil Nelson.
177		- consistently check for allocation failures and return -1,
178		  if we could not get more memory.
179		- add support for home and end keys.
180		- improve debugging support
181		- el_line_t: make 'limit' const
182
183Mon Nov 27 23:23:40 EST 2000	lukem
184
185	* merge ftp from NetBSD-current (20001127):
186		- implement "mreget"; as per "mget" but uses "reget" instead
187		  of "get"
188		- add -N netrc and $NETRC, as methods to select an alternative
189		  .netrc file
190		- cache local user name and home directory for further use
191		- in mget(), use docase() instead of a local version to do
192		  the case conversion.
193		- format string cleanups
194		- be more explicit that $ftp_proxy and $http_proxy are not
195		  supported for interactive sessions
196		- cope with 2553bis getnameinfo (always attach scope id)
197		  getnameinfo error check.
198		- use NI_MAXHOST with getnameinfo.  we can assume presence of
199		  getnameinfo.
200
201Tue Nov  7 00:16:23 EST 2000	lukem
202
203	* libukem/snprintf.c had a non-functional `%s' due to a
204	  function declaration mismatch.  problem found and fixed
205	  by Hubert Feyrer <hubert@feyrer.de>
206
207Wed Oct 11 14:06:19 EST 2000	lukem
208
209	* released version 1.5
210
211Tue Oct  3 10:22:36 EST 2000	lukem
212
213	* crank to version 1.5 beta6
214
215	* merge ftp from NetBSD-current (20001003)
216		- explicitly use SOCK_STREAM with socket() instead of
217		  res->ai_socktype, because it appears that linux with glibc
218		  doesn't set the latter correctly after one of getaddrinfo()
219		  or getnameinfo().
220		- clarify that $ftp_proxy only works for full URLs and can't
221		  be used for interactive connections.
222
223Mon Sep 25 21:52:12 EST 2000	lukem
224
225	* crank to version 1.5 beta5
226	
227Sun Sep 24 13:31:19 EST 2000	lukem
228
229	* merge ftp from NetBSD-current (20000924)
230		- since everything else here uses ANSI C, we might as well
231		  replace __STRING() with the ANSI C stringization stuff...
232		- base64_encode should be static. picked up by hp/ux(!)
233		  compiler
234		- It appears that whilst Apache 1.3.9 incorrectly puts a
235		  trailing space after the chunksize (before the \r\n),
236		  Apache 1.3.11 puts *multiple* trailing spaces after the
237		  chunksize. I 'm fairly certain that this is contrary to
238		  RFC 2068 section 3.6, but whatever...
239		  Found by David Brownlee <abs@mono.org>
240		- always include <netdb.h>, not just when INET6 is defined.
241		  resolves PR [bin/10970] by Richard Earnshaw
242		  <rearnsha@cambridge.arm.com>>
243		- in progressmeter() perform the check for foregroundproc() a
244		  little earlier
245		- removed unused variable `items' in list_vertical()
246	
247Sat Sep 23 15:43:34 EST 2000	lukem
248
249	* remove unused sverrno in warnx() and errx()
250
251	* remove unused h_error in getnameinfo()
252
253	* in getaddrinfo(), don't bother declaring in6_addrany[] and
254	  in6_loopback #ifndef INET6
255
256Thu Sep 21 11:26:35 EST 2000	lukem
257
258	* in getaddrinfo.c::str_isnumber(), use strtol() and check the
259	  result, instead of using strtoul() and not checking the result.
260
261	* define INADDRSZ if it's not found (e.g, HP/UX doesn't seem to have
262	  it in <arpa/nameser.h>)
263
264Wed Sep 20 09:23:59 EST 2000	lukem
265
266	* crank to version 1.5 beta4
267
268Mon Sep 18 18:19:54 EST 2000	lukem
269
270	* add AC_AIX test, which defines _ALL_SOURCE under AIX
271
272	* use ANSI # stringization instead of __STRING()
273
274	* define HAVE_RFC2553_NETDB if <netdb.h> defines AI_NUMERICHOST
275	  (et al) and has getaddrinfo(). (some systems only implement RFC2133)
276
277	* don't bother with AC_C_CONST as we depend upon ANSI C elsewhere
278
279	* when HAVE_RFC2553_NETDB isn't set, and we're #defining various EAI_,
280	  AI_, and NI_ items, #undef first incase a system partially implements
281	  these in <netdb.h>
282
283	* look for tgetent() in -ltinfo before -lncurses, because ncurses 5.0
284	  has been split up into multiple libraries.
285	  from Arkadiusz Miskiewicz <misiek@pld.org.pl>
286
287Fri Sep 15 01:09:10 EST 2000	lukem
288
289	* don't bother defining __P() or __STRING() based on whether
290	  __STDC__ is available or not, since these aren't used any more
291
292	* fix mkstemp() prototype
293
294	* declare getpass() if necessary
295
296	* we don't need the readline xxgdb hack in libedit...
297
298	* convert to ansi declarations
299
300	* use ansi prototypes instead of __P()
301
302	* merge in changes from makelist 1.4 -> 1.6:
303		- generate ansi prototypes instead of using __P().  noted by
304		  christos
305		- fix a couple of comments
306		- add -m option to makelist, which generates an mdoc table
307		  with the key bindings and their descriptions
308		- manually add the output of 'sh ./makelist -m vi.c ed.c
309		  common.c' to a new section in editrc(5) called
310		  `EDITOR COMMANDS'
311
312	* merge libedit from NetBSD-current (20000915)
313		* convert to new style guide, which includes:
314			- ansi prototypes & features (such as stdargs)
315			- 8 space indents
316		* history_def_set has a `const int' as a third arg, not an
317		  `int'.  picked up by the ultrix compiler, reported by
318		  simonb@ ...
319		* generate ansi prototypes instead of using __P().  noted by
320		  christos.  fix a couple of comments
321		* make xxgdb and a gdb linked with libedit's readline emulation
322		  work properly together.   xxgdb communicates with a gdb
323		  running on a pty that it sets to -echo,-onlcr prior to
324		  forking the gdb process.  GNU readline preserves the -echo
325		  setting while libedit was undoing it (setting the tty to a
326		  sane state and totally confusing xxgdb's parser).
327		  this diff simply disables libedit if both readline emulation
328		  and "stty -echo" are used/set.   that is enough to make
329		  xxgdb work once again, but (XXX) this is not how GNU readline
330		  handles stty -echo (it does not echo anything, but editing
331		  commands like ^A,^K, etc.  still work), so the readline
332		  emulation isn't perfect.
333
334Tue Aug 29 18:00:08 EST 2000	lukem
335
336	* don't bother testing for #if __STDC__; just assume we have it...
337
338Mon Aug 28 22:45:08 EST 2000	lukem
339
340	* refine tests for IPv6 #defines (EAI_, AI_, NI_, ...).
341	  should improve portability on systems which implement
342	  RFC 2133 but not RFC 2553.
343
344Wed Aug  9 02:12:51 EST 2000	lukem
345
346	* use #if __STDC__ instead of #ifdef __STDC__
347
348	* only test 'case NETDB_INTERNAL:' if it's defined
349
350	* fix support for --program-prefix et al
351
352	* only include <arpa/nameser.h> in the files that need it, because
353	  the DELETE define in some system's implementations causes name
354	  collisions in libedit.
355
356Mon Aug  7 08:17:37 EST 2000	lukem
357
358	* merge ftp from NetBSD-current (20000807)
359		* implement parseport(), which takes a string and attempts to
360		  convert it to a numeric port number
361		* use parseport() in parse_url() and hookup()
362		* don't try and lookup the port number using getaddrinfo(),
363		  as it's too hard to separate a failed host name lookup from
364		  a failed service name lookup.  this was causing lossage on
365		  systems that don't have `http' in services(5) (such as
366		  solaris), but only crept in when we started using
367		  getaddrinfo() unconditionally.
368
369Wed Aug  2 23:43:50 EST 2000	lukem
370
371	* crank to version 1.5 beta3
372
373	* define NO_LONG_LONG not NO_QUAD
374
375	* detect if struct sockaddr.sa_len exists (rather than relying upon
376	  #ifdef BSD4_4)
377
378	* detect if socklen_t exists, and if not, typedef as unsigned int
379
380	* detect if struct addrinfo exists, and if not declare it and #define
381	  associated EAI_, AI_, and NI_ defines.
382
383	* look for & replace: getaddrinfo(), getnameinfo(), inet_ntop(),
384	  inet_pton()
385	* look for gethostbyname2()
386
387	* don't bother looking for hstrerror() or inet_aton() anymore
388
389	* include <arpa/nameser.h> and <stddef.h>
390
391	* define USE_SELECT instead of __USE_SELECT
392
393	* always define HAVE_H_ERRNO
394
395	* add Brian Stark to THANKS, for lots of AIX porting feedback
396
397	* improve detection of sin_len for AIX (now part of sa_len test)
398
399	* add functions needed by recent ftp import:
400		getaddrinfo(), getnameinfo(), inet_ntop(), inet_pton()
401	  remove functions not needed anymore:
402		hstrerror(), inet_aton()
403
404	* use #if HAVE_ISSETUGID not #ifdef
405
406	* update from NetBSD-current (20000802):
407		- rename NO_QUAD to NO_LONG_LONG, QUAD* -> LL* and add ULL*
408		  (unsigned) equivalents. name change suggested by Klaus
409		  Klein <kjk@netbsd.org>
410		- change defined(BSD4_4) || HAVE_SIN_LEN tests into
411		  HAVE_SOCKADDR_SA_LEN, and set the latter if BSD4_4 exists
412
413Mon Jul 31 10:59:10 EST 2000	lukem
414
415	* merge ftp from NetBSD-current (20000731)
416		- we can't just rename BSD4_4 -> HAVE_SIN_LEN, since bsd
417		  systems define BSD4_4; change tests to test for either
418		  defined(BSD4_4) or HAVE_SIN_LEN
419		- more KNF
420
421Sun Jul 30 16:55:09 EST 2000	lukem
422
423	* merge ftp from NetBSD-current (20000730):
424		- clean up NO_QUAD support: create helper #defines and use as
425		  appropriate:
426			#define         NOQUAD          ! NOQUAD
427			-------         ------          - ------
428			QUADF           "%ld"           "%lld"
429			QUADFP(x)       "%" x "ld"      "%" x "lld"
430			QUADT           long            long long
431			STRTOL(x,y,z)   strtol(x,y,z)   strtoll(x,y,z)
432		- always use getaddrinfo() and getnameinfo() instead of
433		  maintaining two code paths.
434		- rename __USE_SELECT to USE_SELECT
435		- rename BSD4_4 to HAVE_SIN_LEN
436		- replace union sockunion {} with struct sockinet {}, and
437		  modify the code accordingly. this is possibly more portable,
438		  as it doesn't rely upon the structure alignment within the
439		  union for our own stuff.
440
441Fri Jul 28 22:11:17 EST 2000	lukem
442
443	* merge ftp from NetBSD-current (20000728):
444		- no trailing , on last item (FEAT_max) in enum
445		- rename "opts" to "remopts", so people used to "o host"
446		  don't get bitten
447
448Wed Jul 26 18:59:19 EST 2000	lukem
449
450	* merge ftp from NetBSD-current (20000726):
451		- add support for FEAT and OPTS commands with `features' and
452		  `opts'.  (from RFC 2389).
453		- add support for MLST & MLSD (machine parseble listings)
454		  with 'mlst', 'mlsd' and 'pmlsd' (mlsd |$PAGER) commands. 
455		  (from draft-ietf-ftpext-mlst-11)
456		- rename remotesyst() to getremoteinfo(), and modify to parse
457		  the result from FEAT (if supported), and take into account
458		  the support for the various extensions such as MDTM, SIZE,
459		  REST (STREAM), MLSD, and FEAT/OPTS.
460		- put each feature into one of the following categories:
461			- known to work (explicit FEAT)
462			- unknown but assume works until explicit failure,
463			  when it's then tagged as `known not to work'.
464			- known not to work (FEAT succeeded but didn't return
465			  anything, or was unknown and then explicit failure)
466		  assign results into features[] matrix.
467		- add support to getreply() so that an optional callback will
468		  be called for each line received from the server except for
469		  the first and last.  this is used in FEAT (and MLST) parsing.
470		- modify various commands to check if REST (STREAM), MDTM and
471		  SIZE are explicitly or implicitly supported before using.
472		- fix `syst' when verbose is off.
473		- minor knf (indent goto labels by one space, etc).
474		- simply various command usage handlers by assuming that
475		  argv != NULL except for quit() and disconnect().
476		- errx?/warnx? audit.  do not pass variable alone, use %s. 
477
478	* check for issetugid() and don't use in libedit if it doesn't exist.
479
480	* merge libedit from NetBSD-current (20000726):
481		* Only look in home directory for .editrc.  (Discussed
482		  with Christos.)
483
484	* in glob.c #undef TILDE before redefining, because some AIX systems
485	  #define TILDE in <sys/ioctl.h>
486
487Mon Jul 10 00:28:51 EST 2000	lukem
488
489	* released lukemftp 1.4
490
491Thu Jun 15 23:28:49 EST 2000	lukem
492
493	* merge ftp from NetBSD-current (20000615):
494		* migrate the SYST parsing from setpeer() into a separate
495		  remotesyst().  call remotesyst() only when login has been
496		  successful some servers don't let you run SYST until you've
497		  successfully logged in.
498		* in fetch_ftp(), always call setpeer() with autologin
499		  disabled, and use the following ftp_login() to DTRT.  this
500		  prevents ftp from trying to login a second time if the
501		  first autologin fails when connecting to a remote site
502		  anonymously using autofetch.
503		* reset unix_proxy and unix_server in cleanuppeer()
504		* missed a function conversion in the KNF sweep...
505
506Mon Jun 12 01:16:12 EST 2000	lukem
507
508	* change lukemftp.h to check !HAVE_STRDUP instead of !HAVE_STRSUP.
509	  fixes compile problem on systems which have strdup() as a macro.
510
511	* merge ftp from NetBSD-current (20000612):
512		from itojun: better fix for previous (doesn't need
513		in_addr_t or u_int32_t)
514
515Sun Jun 11 12:19:52 EST 2000	lukem
516
517	* merge ftp from NetBSD-current (20000611):
518		portability fixes for lukemftp:
519		* initconn(): use in_addr_t instead of u_int32_t when
520		  manipulating IPv6 addresses (and assume anything with ipv6
521		  has in_addr_t; if not, i'll add an autoconf test for it)
522		* ai_unmapped(): not all systems have sin_len; so only set
523		  #ifdef BSD4_4
524		* fix some lint
525
526Mon Jun  5 21:10:31 EST 2000	lukem
527
528	* released lukemftp 1.3
529
530Mon Jun  5 19:53:49 EST 2000	lukem
531
532	* convert various support files to ANSI C
533
534	* look for strtoll() instead of strtoq()
535
536	* update COPYRIGHT, THANKS, NEWS
537
538	* merge ftp from NetBSD-current (20000605):
539		- fix ai_unmapped() to be a no-op in the !def INET6 case
540		- display `(-INET6)' at the end of the version string if
541		  !def INET6
542		- clarify in the man page that IPv6 support may not be present
543		  (for lukemftp :)
544
545	* ensure <vis.h> has VIS_WHITE et al
546
547Sun Jun  4 18:00:07 EST 2000	lukem
548
549	* merge ftp from NetBSD-current (20000604):
550		- Change `ls' to use the `LIST' and not `NLST' FTP protocol
551		  command.  Now that after many years on not caring we find
552		  certain popular ftp servers are starting to obey RFC959 to
553		  the letter of the law and will only return a list of
554		  filenames (not directories or other filetypes) in the
555		  output of `NLST', then `LIST' is more useful in this case.
556		  (Note that the aforementioned pedanticness means that
557		  filename completion isn't as useful as it could be...)
558		  Fixes [bin/8937] by David A. Gatwood
559		  <dgatwood@deepspace.mklinux.org>
560		- convert to ANSI KNF
561		- Add support for `fget localfile', which reads a list of
562		  filenames to retrieve from localfile.  Based on work by
563		  Darren Reed.
564		- Update copyright dates.
565		- s/strtoq/strtoll/ (the latter is standardised)
566		- Add support for 'ftp -u url file ...', to upload a list of
567		  files to given url.  Mostly based on [bin/10019] by Scott
568		  Aaron Bamford <sab@ansic.net>
569		- convert IPv4 mapped address (::ffff:10.1.1.1) into real IPv4
570		  address before touching it.  IPv4 mapped address complicates
571		  too many things in FTP protocol handling.
572		- do not pass scoped IPv6 address notation on Host: directive,
573		  since scope identifier is local to the originating node.
574		  do not allow scoped IPv6 address notation in URL, if it is
575		  via proxy. 
576		- fixes from cgd:
577		  * sanity check a length (otherwise certain bogus responses
578		    can crash ftp)
579		  * allow a transfer encoding type of `binary'; certain
580		    firewall vendors return this bogus type... 
581		- make debugging output unambiguous on IPv6 numeric addrs
582		  (don't use host:port)
583		- http://[::1]:8080/ is legal.
584		- send Host: directive with RFC2732 bracket notation for IPv6
585		  numeric, otherwise "host:port" is ambiguous to servers
586		  (clarification will be submitted as update to RFC2732).
587		- only use getaddrinfo() et al if both NI_NUMERICHOST *and*
588		  INET6 are defined...  (allows --disable-ipv6 in lukemftp's
589		  configure script to disable this as well, which is good for
590		  testing when it appears getaddrinfo() is borken)
591		- updated comment on IPv4 mapped address.  sync with kame.
592		- Fix examples on using pipes in local filenames.  AFAICT,
593		  ftp has always required `dir . |more' not as `dir |more'
594		  treats `|more' as the remote filename. Resolves [bin/9922]
595		  by Geoff Wing <mason@primenet.com.au>
596		- ftp(1): treats IPv4 mapped destination as IPv4 peer, not
597		  native IPv6 peer.  this does not support network with SIIT
598		  translator.
599		- inhibit too-noisy message for scoped address data transfer
600		  (will be enabled in "debug" mode).
601		- only use IPTOS_ setsockopt()s if they're defined (e.g, SunOS
602		  doesn't).  from Havard.Eidnes@runit.sintef.no
603		- allow IPv6 extended numeric address in host part.
604		  (draft-ietf-ipngwg-scopedaddr-format-01.txt). fixes PR 9616.
605
606	* merge libedit from NetBSD-current (20000604):
607		- use strtol() (instead of atoi()) for sane error detection
608
609Wed May 31 19:24:53 EST 2000	lukem
610
611	* merge libedit from NetBSD-current (20000531):
612		- Fix refresh glitches when using auto-margin.
613		- Don't dump core on empty .editrc files.
614		- el_insertstr takes a "const char *" not "char *" now as it
615		  doesn't modify the argument.
616
617Thu Feb  3 20:19:40 EST 2000	lukem
618
619	* released lukemftp 1.2
620
621Tue Feb  1 09:47:51 EST 2000	lukem
622
623	* add --enable-ipv6 and --disable-ipv6 to configure
624
625	* modify libedit/sig.? to use sigfunc instead of sig_t, and
626	  deprecate autoconf tests for retsigtype and sig_t.
627	  This fixes portability problems with Digital UNIX 5.0.
628
629	* merge ftp from NetBSD-current (20000201):
630		- define private type `sigfunc' as
631			typedef void (*sigfunc) __P((int));
632		  and replace use of sig_t and void (*)(int).
633		  certain other OSes define sig_t differently to that (they
634		  add extra arguments), and it causes problems due to
635		  function mismatches, etc...
636
637Wed Jan 26 22:54:38 EST 2000	lukem
638
639	* search for tgetent() in -ltermcap then -lcurses and -lncurses
640
641	* merge ftp from NetBSD-current (20000126):
642		- roll back to using sscanf() instead of strptime() to parse
643		  `yyyymmddhhmmss' strings, since the latter technically can't
644		  parse dates without non alphanumerics between the elements
645		  (even though NetBSD's strptime() copes).
646
647Tue Jan 25 19:09:37 EST 2000	lukem
648
649	* merge ftp from NetBSD-current (20000125):
650		- complete_ambiguous(): be consistent about completing
651		  unambiguous matches; if the word is already complete then
652		  return CC_REFRESH so that the higher layer may append a
653		  suffix if necessary. Fix from Launey Thomas <ljt@alum.mit.edu>
654		- change references from draft-ietf-ipngwg-url-literal-01.txt
655		  to RFC2732
656		- work around bug in apache 1.3.9 which incorrectly puts a
657		  trailing space after the chunksize.  noted by Jun-ichiro
658		  itojun Hagino <itojun@itojun.org> in [bin/9096]
659		- work around lame ftpd's that don't return a correct post-Y2K
660		  date in the output of `MDTM'.  obviously the programmer of
661		  aforementioned lame ftpd's did something like
662			"19%02d", tm->tm_year
663		  instead of
664			"%04d", tm->tm_year + TM_YEAR_BASE
665		  fixes [bin/9289] by jbernard@mines.edu
666
667	* merge libedit from NetBSD-current (20000125):
668		- PR/9244: Kevin Schoedel: libedit dumps bindings
669		  inconsistently
670		- PR/9243: Kevin Schoedel: libedit ignores repeat count
671		- Add support for automatic and magic margins (from tcsh)
672		  This makes the rightmost column usable on all programs
673		  that use editline.
674
675Tue Dec 21 08:59:22 EST 1999	lukem
676
677	* update INSTALL notes for some systems
678
679	* if sl_init() exists, check return value of sl_add() is int and
680	  compile in a replacement copy if it's not the case
681
682	* don't look for <stringlist.h> - always use local prototypes; older
683	  NetBSD systems may have conflicting prototypes
684
685Mon Dec 20 11:21:28 EST 1999	lukem
686
687	* merge ftp from NetBSD-current (19991220):
688	- Move version from ftp_var.h to version.h
689	- Fix chunked support; probably broke after rate limiting was added.
690	  Problem noticed/debugging assisted by giles lean
691	  <giles@nemeton.com.au>.
692	- remove unnecessary freeaddrinfo(res), since res0 was changed to be
693	  freed earlier in itojun's last commit. fixes [bin/8948].
694	- remove `const char *reason'; it was being assigned but not used.
695	- fix memory leak in fetch_url (no freeaddrinfo was there).
696	  sync with recent KAME.
697	- separate out the main `data pump' loop into two: one that supports
698	  rate limiting and one that doesn't. simplifies the code, and speeds
699	  up the latter case a bit, at the expense of duplicating a few
700	  lines...
701
702Sun Nov 28 18:20:41 EST 1999	lukem
703
704	* merge ftp from NetBSD-current (19991128):
705	- implement xsl_init() and  xsl_add(); error checking forms of
706	  sl_{init,add}()
707	- fix bug where the second press of <TAB> on an empty word (i.e, list
708	  all options) may have resulted in an strncmp() against NULL. 
709	  (detected by _DIAGASSERT())
710	- in cleanuppeer(), reset username to NULL after free()ing it.
711	  fixes [bin/8870] by Wolfgang Rupprecht <wolfgang@wsrcc.com>
712	- complete_remote(): use remglob("", ...) instead of remglob(".", ...),
713	  for listings of the current working directory; some ftp servers don't
714	  like `NLST .'.
715	  [noted by Giles Lean <giles@nemeton.com.au>]
716	- recvrequest(): treat remote=="" as remote==NULL when calling
717	  command().  (to support the above change)
718	- support `[user@]' in `[user@]host' and `[user@]host[:][path]'.
719	  [based on idea (and initial code) from David Maxwell <david@fundy.ca>]
720	- `idle' may be invoked without any args
721	- reformat some comments
722	- reformat usage string in program and man page
723	- call updateremotepwd() after successful login, not after successful
724	  connect
725	- always call setsockopt(, IPPROTO_IP, IP_TOS, ) (et al); using #if
726	  defined(IPPROTO_IP) doesn't work on certain foreign systems where
727	  enums instead of #defines are used...
728	  [noted by Matthias Pfaller <leo@dachau.marco.de>]
729
730Mon Nov 15 23:01:58 EST 1999	lukem
731
732	* released lukemftp 1.1
733
734Mon Nov 15 09:07:01 EST 1999	lukem
735
736	* merge libedit from NetBSD-current (19991115):
737		- instead of using a private coord_t global variable to store
738		  the size of the rprompt, use the previously unused coord_t
739		  el->el_rprompt.p_pos
740
741Sat Nov 13 14:42:22 EST 1999	lukem
742
743	* support caching of results in AC_MSG_TRY_{COMPILE,LINK}
744	  autoconf tests
745
746	* add NEWS file
747
748	* clarify copyright statement in COPYING
749
750	* merge ftp from NetBSD-current (19991113):
751		- implement `set rprompt'; right side version of `set prompt'.
752		  depends on EL_RPROMPT support i added to editline(3).
753		- allow $FTPPROMPT and $FTPRPROMPT to override defaults for
754		  the relevant prompts
755		- move `%' formatting code from prompt() to expandbuf().
756		- implement `%.' and `%c', similar to the same % codes in
757		  tcsh(1) (functionality I added to tcsh nearly 6 years ago),
758		  except that `%.' always does `...trailing' and `%c' always
759		  does `/<x>trailing'.
760		- unknown `%foo' codes get printed as `%foo'
761		- implement updateremotepwd(); update the global variable
762		  `remotepwd' to contain the remote working directory.
763		- add `set prompt', a user configurable prompt. (defaults to
764		  `ftp> ').  the following escape characters a la tcsh(1) are
765		  supported: %/, %m, %M, and %n.
766		- add global var `username'; used by prompt code
767		- fix a couple of minor memory leaks
768		- bump version
769		- prevent minor memory leak (unnecessary strdup)
770		- implement restarting file:/// non-proxied http:// URLs
771		  (with -R).
772		- fix a semicolono which stopped file:/// from working
773		- split the version string into product and version
774		- be consistent about reporting the version between:
775			+ status command
776			+ about:version URL fetch
777			+ User-agent sent in http requests
778		- hookup(): when using getservbyname() (when getaddrinfo()
779		  isn't available), if the provided port is a valid number
780		  use that rather than trying to do getservbyname() against
781		  it. fixes a problem on foreign systems noted by Chuck
782		  Silvers <chuq@chuq.com>
783		- support `about:version'. also display the version in the
784		  output of `status'.
785
786	* merge libedit from NetBSD-current (19991113):
787		- implement printing a right-side prompt. code derived from
788		  similar work I wrote for tcsh(1) three years ago.
789		- implement EL_RPROMPT, which allows a setting/getting of a
790		  function which returns a string to be used as the
791		  right-side prompt.
792
793	* replace manually managed config.h.in with acconfig.h and use
794	  autoheader to generate the former.
795
796	* add missing entry for `#undef write' in acconfig.h (for SOCKS)
797
798	* configure.in:
799		- use `LL' suffix on long long constant used to test
800		  snprintf("%lld")
801		- test for EL_RPROMPT instead of EL_EDITMODE, since the
802		  former is is a newer required feature
803
804	* in makelist, set LC_ALL="C", in case the locale confuses awk.
805	  problem noted by Peter Seebach <seebs@plethora.net>
806
807Wed Oct 27 07:00:00 UTC 1999	lukem
808
809	* released 1.0
810
811	* removed libedit/TEST/test.c; no need to distribute it
812
813Mon Oct 25 21:59:54 EST 1999	lukem
814
815	* released 1.0b7
816
817	* put VERSION string into lukemftp.h, and display with the `status'
818	  command
819
820Mon Oct 25 11:36:59 EST 1999	lukem
821
822	* merge ftp from NetBSD-current (19991025):
823	- fix up confirm() (broke `a' and `p' in last commit)
824	- simplify main loop (don't need `top' variable any more)
825	- use a struct sockaddr_in6.sin6_addr for the result from inet_pton(),
826	  rather than u_char buf[16]
827	- add a few more comments
828
829	new features:
830	- add `usage'; displays the usage of a command.
831	  implemented by calling the c_handler() with argc = 0, argv =
832	  "funcname".
833	- add `passive auto'; does the same as $FTPMODE=auto.
834	- add `set [option value]'; display all options, or set an option to
835	  a value.
836	- add `unset option'; unset an option.
837	- add getoptionvalue() to retrieve an option's value, and replace a few
838	  global variables with calls to this.
839	- implement cleanuppeer(), which resets various bits of state back to
840	  `disconnected'. call in disconnect() and lostpeer().
841	- support completing on `options'.
842	- improve recovery after a SIGINT may have closed the connection.
843	  XXX: there's still a couple to fix
844
845	other stuff:
846	- various consistency fixes in the man page.
847	- ensure that the command usage strings in the code and man page
848	  match reality.
849	- mput/mget: check that the connection still exists before each xfer.
850	- minor cosmetic changes in confirm().
851	- set code correctly in sizecmd() and modtime()
852	- don't need \n in err() strings.
853	- change lostpeer to take an argument (rather than casting
854	  (sig_t)lostpeer in signal handlers)
855	- knf and whitespace police.
856
857Sun Oct 24 17:02:59 EST 1999	lukem
858
859	* merge libedit from NetBSD-current (19991024):
860		- don't assume locales are not working - it may not be
861		  the case
862		- re_refresh(): cast the character passed to re_addc() to
863		  unsigned char,  so we don't end up calling isprint() with
864		  negative value when chars are signed and character value
865		  is >= 128
866		- Fix pointer arithmatic (caused problems on LP64, including
867		  ftp dumping core when `edit' was turned off then on).
868		  Problem solved by David Huggins-Daines <dhd@eradicator.org>
869
870Tue Oct 12 18:05:21 EST 1999	lukem
871
872	* install man page from ${srcdir} not from .
873
874Tue Oct 12 17:00:41 EST 1999	lukem
875
876	* released 1.0b6
877
878	* merge from NetBSD-current (19991012):
879	  a few user interface and cosmetic tweaks:
880		- confirm(): move from util.c to cmds.c. display mnemonic
881		  string in its prompt. add support for `q' (terminate
882		  current xfer), `?' (show help list)
883		- in various signal handlers, output a linefeed only if
884		  fromatty.
885		- if fgets(stdin) returned NULL (i.e, EOF), clearerr(stdin)
886		  because you don't want future fgets to fail. this is not
887		  done for the fgets() in the main command loop, since ftp
888		  will quit at that point.
889		- unless ftp is invoked with -a, don't retain the anonftp
890		  setting between hosts (`ftp somehost:' sets anonftp, but
891		  you don't want that to `stick' if you close that connection
892		  and open a new one).
893
894Mon Oct 11 23:06:38 EST 1999	lukem
895
896	* check for working const
897
898	* reorganise addition of -lukem to LIBS (was being added twice)
899
900	* merge from netbsd-current:
901		- use sigjmp_buf instead of jmp_buf for sigsetjmp() buffer
902
903	* libedit: don't bother generating & compiling editline.c, since
904	  its component parts are compiled anyway.
905
906Sun Oct 10 12:08:39 EST 1999	lukem
907
908	* released 1.0b5
909
910	* in libedit, use xsignal_restart() (from src/util.c) instead of
911	  signal(); the isn't guaranteed to work on some foreign systems
912	  (e.g, IRIX) if sigaction() is used in the same program.
913
914	* merge from netbsd-current:
915		- use sigsetjmp()/siglongjump() instead of setjmp()/longjmp();
916		  the latter don't save the signal mask on some foreign systems.
917		- ensure signal handlers don't use stdio and do reset errno
918		  if they don't exit with siglongjmp()
919		- use a common SIGINT handler for {send,recv}request()
920		- allow a second SIGINT during the "xfer aborted. waiting for
921		  remote to finish abort." stage. if this occurs, just call
922		  lostpeer() to close the connection.  whilst this might be
923		  considered brutal, it's also extremely handy if you're
924		  impatient or there's lossage at the remote end.
925
926	* add preformatted manual page
927
928	* fix --enable-editline
929
930Wed Oct  6 10:19:00 EST 1999	lukem
931
932	* released 1.0b4
933
934	* don't defining SIGINFO to SIGQUIT if the former doesn't exist; the
935	  code now supports both as a method of getting the transfer stats
936
937	* rototill signal handling in the actual data xfer routines, and
938	  specifically set SIGQUIT to psummary in each one, to override
939	  editline's handler
940
941Tue Oct  5 23:48:29 EST 1999	lukem
942
943	* factor out SIGINFO setting into a handler that is always active
944	  (but only prints out info if bytes > 0). only set the handler if
945	  SIGINFO is defined
946
947	* hijack SIGQUIT to be the same as SIGINFO
948
949	* in {recv,send}request(), factor a lot of duplicated code out into
950	  a `cleanup' section at the end
951
952	* rework shell() a bit
953
954	* enhancments from Marc Horowitz <marc@mit.edu> to improve
955	  connection timeouts:
956		- implement xsignal_restart(), which only sets the SA_RESTART
957		  flag if specifically requested
958		- xsignal() is now a wrapper to xsignal_restart(). INFO,
959		  USR1, USR2 and WINCH are restartable, ALRM, INT, PIPE and
960		  QUIT are not
961		- improve getreply()'s timeout code to take advantage of the
962		  above
963
964	* improve wording of how globbing works for `classic' URLs (host:path)
965	  suggested by John Refling <johnr@imageworks.com> in relation to PRs
966	  [bin/8519] and [bin/8520]
967
968	* always compile in the `edit' command even if NO_EDITCOMPLETE defined
969	  it's just a no-op in the latter case, which is more consistent to
970	  the users
971
972	* always compile in about: support (i.e, remove NO_ABOUT).  i'm
973	  entitled to some vanity in this program...
974
975	* update copyrights
976
977Mon Oct  4 10:57:41 EST 1999	lukem
978
979	* Invoke ar with `cr' not `cq'
980
981	* Use AC_PROG_RANLIB to find ranlib, and use it on the libraries
982
983	* Remove `makelist' from dependency list for libedit files; re-running
984	  configure shouldn't result in rebuilding libedit
985
986	* Add support for --{en,dis}able-editcomplete (defaults to enabled),
987	  which prevents libedit support from being compiled in.
988	  From Chris G. Demetriou <cgd@netbsd.org>
989
990Sun Oct  3 16:49:01 EST 1999	lukem
991
992	* touch up the README
993
994	* add COPYING, INSTALL, THANKS
995
996	* whitespace consistency
997
998	* in config.h, replace NO_QUAD with HAVE_QUAD_SUPPORT, and in
999	  lukemftp.h define the former if the latter is non zero
1000
1001	* change test against GETPGRP_VOID from #ifdef to #if
1002
1003	* snprintf(): in the truncation case, ensure that the length
1004	  returned is the actual length, not the needed length
1005
1006Sat Oct  2 00:41:34 EST 1999	lukem
1007
1008	* fix more lossage with $(srcdir) / $(VPATH) stuff; seems to work now
1009	  when configured in a separate directory
1010
1011	* actually test the correct variable when determining whether to run
1012	  AC_FUNC_GETPGRP
1013
1014Fri Oct  1 19:32:22 EST 1999	lukem
1015
1016	* released 1.0b3
1017
1018	* use AC_PROG_MAKE_SET
1019
1020	* determine setting of NO_QUAD with configure not lukemftp.h
1021
1022	* if have long long and have snprintf, test that snprintf
1023	  supports %lld. if it doesn't use private version
1024
1025	* change strtoq from returning off_t to returning long long
1026
1027	* updates from NetBSD mainline:
1028		- only try epsv once per connection (i.e, don't bother again
1029		  if it fails)
1030		- improve description of rate command
1031		- fix up global vars; they're now externed in ftp_var.h
1032		  except when main.c includes it
1033		- remove "pathnames.h"
1034
1035Fri Oct  1 10:08:43 EST 1999	lukem
1036
1037	* updates from NetBSD mainline:
1038		- fix determining of homedir
1039		- parse_url(): fix checking of portnum
1040		- move kame copyrights after bsd/tnfi ones
1041
1042	* released 1.0b2
1043
1044	* add %lld and %qd support to snprintf() for displaying long long's
1045
1046	* support VPATH and srcdir
1047
1048Thu Sep 30 17:19:35 EST 1999	lukem
1049
1050	* released 1.0b1
1051
1052	* fix from NetBSD mainline: in empty() FD_ZERO the correct variable
1053
1054Wed Sep 29 23:34:33 EST 1999	lukem
1055
1056	* major rework; reimport code from NetBSD-current 1999/09/29 into
1057	  separate subdirectories and build from there. organisation is now:
1058		libedit		replacement libedit
1059		libukem		replacements for missing functions
1060		src		main ftp source
1061
1062Mon Sep 27 00:43:12 EST 1999	lukem
1063
1064	* released 1.0 a6
1065
1066Sun Sep 26 17:17:05 EST 1999	lukem
1067
1068	* released 1.0 a5
1069
1070Sat Sep 25 00:58:28 EST 1999	lukem
1071
1072	* released 1.0 a4
1073
1074Fri Sep 24 17:07:07 EST 1999	lukem
1075
1076	* released 1.0 a3
1077
1078Fri Sep 24 16:18:29 EST 1999	lukem
1079
1080	* released 1.0 a2
1081
1082Tue Sep 21 11:38:49 EST 1999	lukem
1083
1084	* import usr.src/bin/ftp and usr.src/lib/libedit sources from NetBSD
1085