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