]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/blob - contrib/tnftp/ChangeLog
MFC r368207,368607:
[FreeBSD/stable/10.git] / contrib / tnftp / ChangeLog
1 $NetBSD: ChangeLog,v 1.58 2010/01/12 06:58:57 lukem Exp $
2
3 Tue Jan 12 06:58:15 UTC 2010    lukem
4
5         * Release as "tnftp 20100108"
6
7         * Rename onoff() argument "bool" to "val".
8
9 Tue Jan  5 09:12:01 UTC 2010    lukem
10
11         * If ARG_MAX isn't defined, use the result from sysconf(_SC_ARG_MAX).
12           Fixes build when using newer glibc.
13
14         * Add libnetbsd.la to the LIBADD for libedit.
15           Fix provided by Adam Sampson.
16
17 Mon Jan  4 06:28:07 UTC 2010    lukem
18
19         * Distribute various files not shipped by default automake rules,
20           to use 'make dist' instead of 'cvs export'.
21
22 Wed Dec 30 00:12:47 UTC 2009    lukem
23
24         * Release as "tnftp 20091122"
25
26 Sun Nov 15 10:14:44 UTC 2009    lukem
27
28         * Merge NetBSD ftp from 20090520 to 20090915.  Change:
29                 - Rename internal getline() to get_line() to avoid
30                   conflict with libc with former.
31                 - Avoid a NULL dereference in an error message.
32
33 Sat Nov 14 09:21:19 UTC 2009    lukem
34
35         * Convert to automake & libtool.
36
37 Sat Jun  6 07:17:38 UTC 2009    lukem
38
39         * Release as "tnftp 20090606"
40
41 Fri May 22 01:11:15 UTC 2009    lukem
42
43         * configure fixes:
44           - Add the time.h headers to accheck_includes, for the strptime check.
45           - Remove the check for el_init in libedit; we're always replacing
46             the library and the presence of strvis() in some versions
47             confuses other checks.
48
49 Wed May 20 13:47:43 UTC 2009    lukem
50
51         * Release as "tnftp 20090520"
52
53         * Merge NetBSD ftp from 20070722 to 20090520.  Changes:
54             - Only attempt to el_parse() a command unknown by the default
55               parser if editing is enabled.
56               Fixes PR 38589.
57             - Turn off the alarmtimer before resetting the SIGALRM handler
58               back to SIG_DFL.
59               Fixes PR 35630.
60             - Add epsv6 and epsv to disable extended passive mode for ipv6 or
61               both ipv4 and ipv6 respectively.  This hack is due to our
62               friends a Juniper Networks who break epsv in ipv6.
63               Should be fixed in ScreenOS 6.2.X.
64             - Improve parsing of chunked transfer chunks per RFC2616:
65               - more stringent chunk-size parsing
66               - ignore optional trailing ';chunk-ext' stuff, instead of barfing
67               - detect EOF before final \r\n.
68             - Use the service name to getaddrinfo() (along with the host
69               name), so that features such as DNS Service Discovery have a
70               better chance of working.
71               Display the service name in various status & error messages.
72             - Don't getservbyname() the :port component of a URL; RFC 3986
73               says it's just an unsigned number, not a service name.
74             - Fix numerous WARNS=4 issues (-Wcast-qual -Wsign-compare).
75             - Fix -Wshadow issues
76             - Update copyrights
77             - Remove clause 3 and 4 from TNF licenses
78             - Rename HAVE_STRUCT_SOCKADDR_SA_LEN to
79               HAVE_STRUCT_SOCKADDR_IN_SIN_LEN to accurately reflect the
80               structure member being used.
81             - Use AF_INET instead of AF_UNSPEC as the default family if
82               !defined(INET6).
83
84         * configure improvements:
85           - Style tweaks.
86           - Use AC_LANG_PROGRAM() instead of AC_LANG_SOURCE()
87           - Add a check for strptime() requiring separators between
88             conversions, and use our replacement one if it does.
89
90 Sat Dec 20 15:28:24 UTC 2008    lukem
91
92         * configure improvements:
93           - Move IPv6 check from tnftp.h to configure.ac (as per tnftpd).
94           - Rework option descriptions.
95           - Highlight when tests are for a specific option.
96           - Move configuration results to the end of the file.
97           - Display $prefix in configure results.
98
99 Fri Aug 15 03:03:36 UTC 2008    lukem
100
101         * Add a "Configuration results" display at the end of configure.
102           Cosmetic tweaks.
103
104 Fri Feb 29 09:45:56 UTC 2008    lukem
105
106         * Support @EXEEXT@ for Cygwin (etc).
107
108 Mon Aug  6 04:55:19 UTC 2007    lukem
109
110         * Release as "tnftp 20070806"
111
112         * Add a NEWS file.
113
114         * Reduce differences between NetBSD-ftp and local copy.
115
116         * Merge NetBSD ftp from 20070605 to 20070722.
117           Changes:
118                 - Document about:ftp and about:version.
119
120         * Add autoconf check for (Dante) SOCKS5.
121           (Needs run-time testing and more portability testing.)
122
123 Mon Jul 23 11:44:42 UTC 2007    lukem
124
125         * Don't use non-standard: u_char u_short u_int.
126           Use uint32_t instead of u_int32_t.
127
128         * Consistently use AS_CASE() and AS_IF() in configure.ac.
129
130         * Don't use defined() with HAVE_DECL_xxx.
131           Use `LL' instead of `L' suffix for fallback
132           defines of LLONG_MIN and LLONG_MAX.
133
134 Sun Jul 22 12:00:17 UTC 2007    lukem
135
136         * Include <arpa/nameser.h> if available, and provide fallback #defines.
137
138         * Sync with lib/libc/inet/inet_pton.c 1.3:
139                 * Sync to bind 9.3.x version
140                 * Update ISC copyright
141                 * Fix some lint
142
143         * Sync with lib/libc/inet/inet_ntop.c 1.3:
144                 * Sync to bind 9.3.x version
145                 * Update ISC copyright
146                 * Use socklen_t instead of size_t
147                 * Use snprintf() instead of SPRINTF()
148                 * Improve detection of various boundary conditions
149
150         * Sync to NetBSD glob.h 1.21, glob.c 1.16:
151                 * Standards compliance fix
152                 * De-lint
153                 * Don't overflow when DEBUG is defined.
154
155         * Sync fgetln.c to tools/compat/fgetln.c 1.7:
156                 * Clause 3 removal.
157
158         * Sync to config.guess 2007-07-22, config.sub 2007-06-28.
159
160         * Consistency tweaks in configure help strings.
161
162         * Add check for struct sockaddr.sa_len.
163           Change tests for HAVE_foo to defined(HAVE_foo).
164           Replace HAVE_SOCKADDR_SA_LEN with HAVE_STRUCT_SOCKADDR_SA_LEN.
165
166         * Remove pretence of supporting SOCKS for now;
167           no test system is available, and the old
168           autoconf 2.13 support wasn't upgraded to 2.61.
169
170         * configure.ac style consistency tweaks.
171           Move autoconf aux files from ./ to build-aux/
172
173         * Remove duplicate HAVE_STRERROR replacement in tnftp.h.
174
175 Thu Jun  7 04:47:47 UTC 2007    lukem
176
177         * Merge NetBSD ftp from 20070510 to 20070605.  Changes:
178                 - Enforce restriction that (http) proxied URL fetchs don't
179                   support being restarted at this time.
180                   Addresses NetBSD Problem Report 28697.
181                 - Display times in RFC2822 form rather than using ctime(3),
182                   since the former is more explicit about the timezone offset.
183                 - main: call tzset() to ensure TZ is setup for other <time.h>
184                   functions.
185                 - remotemodtime(): use strptime() to parse the reply.
186                 - fetch_url(): ensure struct tm is zeroed before calling
187                   strptime().
188                 - Modify parse_url() to consistently strip the leading `/'
189                   off ftp URLs.
190                   Fixes NetBSD Problem Report 17617.
191                 - Use 'RFCnnnn' (with leading 0) instead of 'RFC nnnn', to be
192                   consistent with the style in the RFC index.
193                 - Refer to RFC3916 instead of 1738 or 2732.
194                 - Expand the list of supported RFCs in ftp(1) to contain the
195                   document name as well.
196
197 Fri May 11 04:39:55 UTC 2007    lukem
198
199         * Update INSTALL and COPYING.
200
201         * Rename HAVE_QUAD_SUPPORT to HAVE_PRINTF_LONG_LONG, and only
202           require support for 'long long' in that check rather than
203           needing sizeof(off_t)>=8, as some systems have a separate
204           off64_t when Large File Support is enabled.
205
206         * config.guess: treat 'i86xen:SunOS:5.*' as 'i86pc:SunOS:5.*'
207
208 Thu May 10 15:23:33 UTC 2007    lukem
209
210         * Remove checks for util.h and libutil.h, and replacement for
211           fparseln(), since fparseln() isn't used any more.
212
213         * Merge NetBSD ftp from 20070418 to 20070510.  Changes:
214                 - Switch from fparseln() to the internal getline() when
215                   parsing HTTP headers.  Makes ftp a bit more portable
216                   (not needing fparseln()) at the expense of not supporting
217                   arbitrary long header lines, which I'm not concerned about
218                   because we don't support header line continuation either...
219                 - Replace references from draft-ietf-ftpext-mlst-NN to RFC 3659.
220                 - Fix misplaced const.
221                 - Implement copy_bytes() to copy bytes from one fd to another
222                   via the provided buffer, with optional rate-limiting and
223                   hash-mark printing, using one loop and handle short writes.
224                   Refactor sendrequest() and recvrequest() to use copy_data().
225                   Addresses NetBSD Problem Report 15943.
226
227 Wed May  9 05:24:55 UTC 2007    lukem
228
229         * Fix typo in poll()-based implementation of usleep() replacement.
230
231 Wed May  9 04:58:50 UTC 2007    lukem
232
233         * Rename configure.in to configure.ac, as the latter is the
234           preferred name in autoconf 2.61.
235
236         * Convert from autoconf 2.13 to 2.61:
237           * Use a consistent quoting mechanism.
238           * Use modern autoconf macros, #define names, etc.
239           * Search for more header files, and only #include if found.
240           * Remove old-style config.h.in generation.
241           This may fix various tests on platforms such as FreeBSD and OS X.
242
243         * Add -Wl,-search_paths_first to LDFLAGS on OS X (Darwin) if the
244           linker supports it.  This is needed so we use our libedit
245           rather than the system one.
246
247         XXX: SOCKS support is currently disabled until I update the
248              autoconf support.
249
250 Mon Apr 23 06:04:26 UTC 2007    lukem
251
252         * Merge NetBSD ftp from 20050610 to 20070418.  Changes:
253                 - Add '-s srcaddr'.
254                 - Use IEC 60027-2 2^N based "KiB", "MiB" (etc) instead of
255                   10^n "KB", "MB", ...
256                 - Recognize 307 redirect code.
257                 - Suppress printing non-COMPLETE reply strings when EPSV/EPRT
258                   fails and we fall-back to PASV/PORT.  Should fix a problem
259                   with the emacs ftp wrapper.
260                 - Fix display of 'Continue with <cmd>' messages.
261                 - Prevent segfaults in .netrc parsing.
262                 - Flush stdout before each command; ftp as slave process on
263                   a pipe should work.
264                 - getpass() can return NULL in some implementations; cope.
265                 - Support '-q quittime' when waiting for server replies.
266                 - Various spelling & grammatical fixes in the manual.
267                 - Plug some memory leaks.
268                 - If a file upload (via -u) fails, return an non-zero exit
269                   value based on the index of the file that caused the
270                   problem (a la auto-fetch retrieval).
271                 - Coverity fixes for CIDs: 873 874 875 1447 1448 2194 2195 3610
272                 - Don't remove trailing character during auth_url()
273                 - Fix progressbar display on narrow terminals (<43 columns)
274
275 Fri Mar 16 06:00:14 UTC 2007    lukem
276
277         * Change the return value of the replacement gai_strerror()
278           from "char *" to "const char *", to match the current
279           standards.
280           Problem noted by Thomas Klausner.
281
282 Thu Oct 26 07:24:22 UTC 2006    lukem
283
284         * Correctly parse "AM" and "PM" in the replacement strptime().
285           Problem noted by Kathryn Hogg.
286
287 Sat Jun 25 06:27:00 UTC 2005    lukem
288
289         * Release as "tnftp 20050625"
290
291         * Simplify the detection & replacement of dirname() and fparseln()
292           and just use AC_REPLACE_FUNCS.
293           (We don't care if the vendor has a working version in -lgen or -lutil
294           instead of -lc; they'll get our replacement version in that case).
295           Fixes build issue on older Darwin where the previous autoconf check
296           wouldn't find dirname() in the default system libraries.
297
298         * Only provide a prototype for dirname() if we can't find one in
299           <libgen.h>
300
301         * Search for NS_IN6ADDRSZ instead of IN6ADDRSZ, since we use the
302           former and not the latter and older Darwin has the former.
303           (This allows INET6 support to be enabled on Darwin 7.9.0)
304
305 Mon Jun 13 09:22:13 UTC 2005    lukem
306
307         * Tweak SOCKS5 support:
308             acconfig.h:
309                 - fix a comment
310                 - ensure close() is replaced
311                 - list entries in the same order as aclocal.m4
312                   (and the SOCKS5 FAQ)
313             aclocal.m4:
314                 - ensure getpeername() is replaced
315                 - don't replace listen() twice
316
317 Fri Jun 10 04:39:33 UTC 2005    lukem
318
319         * Release as "tnftp 20050610"
320
321         * Add dependencies on ${srcdir}/../tnftp.h and ../config.h
322
323         * Merge NetBSD ftp from 20050609 to 20050610.  Changes:
324                 - Implement getline() to read a line into a buffer.
325                 - Convert to use getline() instead of fgets() whenever reading
326                   user input to ensure that an overly long input line doesn't
327                   leave excess characters for the next input operation to
328                   accidentally use as input.
329                 - Zero out the password & account after we've finished with it.
330                 - Consistently use getpass(3) (i.e, character echo suppressed)
331                   when reading the account data.  For some reason, historically
332                   the "login" code suppressed echo for Account: yet the "user"
333                   command did not!
334                 - Display the hostname in the "getaddrinfo failed" warning.
335                 - Appease some -Wcast-qual warnings.  Fixing all of these
336                   requires significant code refactoring.  (mmm, legacy code).
337
338 Thu Jun  9 16:49:05 UTC 2005    lukem
339
340         * src, libnetbsd: Excise RCSID block, rather than using
341           #if 0 ...  #endif.  The point was to minimise RCSID
342           conflicts, and the latter isn't helping there.
343
344         * Merge NetBSD ftp from 20050531 to 20050609.  Changes:
345                 - Only print the "Trying <address>..." message if verbose
346                   and there's more than one struct addrinfo in the
347                   getaddrinfo() result.
348                 - Don't use non-standard "u_int".
349
350 Wed Jun  1 15:08:01 UTC 2005    lukem
351
352         * Look for dirname(3), which may be in -lgen on IRIX, and
353           replace it if not found..
354
355 Wed Jun  1 11:48:58 UTC 2005    lukem
356
357         * libnetbsd:
358                 - Don't use non-standard: u_char u_short u_int.
359                 - Use uint32_t instead of u_int32_t.
360                 - Don't use register.
361
362         * libedit: Don't use non-standard uint or u_int.
363
364 Tue May 31 02:23:08 UTC 2005    lukem
365
366         * tnftp.h: need <libgen.h> for dirname(3)
367
368         * Merge ftp from 20050513 to 20050531.  Changes:
369                 - Helps if the definition of xconnect() matches its
370                   declaration....
371                 - Fix some cast issues highlighted by Scott Reynolds using
372                   gcc 4 on OSX.4
373                 - Use size_t instead of int where appropriate.
374                 - Make this compile on sparc64 (size_t != int).
375                 - Printf field widths and size_t don't always mix well, so
376                   cast to int.  Fixes build problem for alpha.
377                 - Some const cleanups.
378                 - tab cleanup
379                 - Improve method used in fileindir() to determine if `file'
380                   is in or under `dir': realpath(3) on non-NetBSD systems may
381                   fail if the target filename doesn't exist, so instead use
382                   realpath(3) on the parent directory of `file'.
383                   Per discussion with Todd Eigenschink.
384                 - formatbuf(): fix %m and %M to use the hostname, not the
385                   username.
386                 - fetch_ftp(): preserve 'anonftp' across a disconnect() so
387                   that multiple ftp auto-fetches on the same command line
388                   login automatically.
389                 - auto_fetch(): use an initialized volatile int to appease
390                   IRIX cc.
391
392         * Merge libedit from NetBSD 20050105 to 20050531.  Changes include:
393                 - Rui Paulo: Incorrect tok_line and tok_str declarations.
394                 - Remove clause 3 from the UCB license.
395                 - Luke Mewburn: Don't abuse unconstify'ing a string
396                   and writing to it, because you'll core dump. Also remove
397                   extra const that gives pain to the irix compiler.
398                 - Make sure we flush after we prepare when we are unbuffered
399                   otherwise the prompt will not appear immediately.
400                 - Terminate the arglist with a NULL instead of 0.
401                   (Shuts up gcc4.x)
402
403 Sat May 28 13:19:38 UTC 2005    lukem
404
405         * libnetbsd/strvis.c:
406                 - Sync to NetBSD's vis.c 1.33:
407                   Use malloc(3) instead of alloca(3).
408                 - Remove extraenous #endif
409
410 Fri May 27 05:46:58 UTC 2005    lukem
411
412         * libnetbsd/strvis.c: Sync to NetBSD's vis.c 1.30:
413           Use a more standard TNF license.
414
415         * libedit/sig.c: Include "src/progressbar.h" for xsignal_restart()
416           prototype.
417
418         * Ensure that fallback #define of __attribute__ is available.
419           Fixes build problem on HP-UX with cc.
420
421 Thu May 26 14:21:08 UTC 2005    lukem
422
423         * Extend xpoll()'s HAVE_SELECT implementation to support POLLRDNORM,
424           POLLWRNORM, and POLLRDBAND - the latter using exceptfds.
425           Per discussion with Christos Zoulas.
426
427 Mon May 16 13:33:27 UTC 2005    lukem
428
429         * Pull in <poll.h> or <sys/poll.h> if they exist even if we're
430           not using poll, as struct pollfd might exist in those.
431           Fixes build problem on OSX.3.
432
433         * Separate CPPFLAGS from CFLAGS.
434
435         * Sync various files in libnetbsd with the original versions
436           in NetBSD.  Notable changes
437                 - Convert 4 clause UCB license to 3 clause.
438                 - Use strlcpy instead of strcpy.
439                 - Update ISC copyright.
440                 - Use NS_INADDRSZ, NS_IN6ADDRSZ and NS_INT16SZ instead of
441                   equivalents without NS_ prefix.
442                 - Use socklen_t instead of size_t where appropriate.
443                 - Improve bounds checking.
444                 - Don't update the size of allocated storage until
445                   realloc succeeds.
446                 - Fix comment about return value.
447                 - Reverse the order of two loop invariant to make
448                   'strlcat(0, "foo", 0)' not get a SEGV.
449                 - Use Todd C. Miller's latest copyright notice (more loose).
450                 - Use "long long" instead of "quad" in various
451                   comments & constants.
452                 - Support VIS_HTTPSTYLE.
453                 - Implement svis(), strsvis(), strsvisx(), strunvisx().
454
455         * Prefer poll over select when implementing replacement usleep().
456
457 Sat May 14 04:44:35 UTC 2005    lukem
458
459         * Release "tnftp 20050514"
460
461         * Fail if we can't find a library with tgetent (needed for libedit).
462           NetBSD PR pkg/28925.
463         * Improve quoting when using various autoconf macros.
464
465         * Merge NetBSD-ftp 20050513:
466                 - Correct the "optlen" argument passed to getsockopt(3) and
467                   setsockopt(3) in various places.  Fixes a problem noted by
468                   Allen Briggs.
469                 - Improve warning printed when connect(2) for the data
470                   channel fails.
471
472 Wed May 11 04:19:43 UTC 2005    lukem
473
474         * Release "tnftp 20050511"
475
476 Wed May 11 04:10:01 UTC 2005    lukem
477
478         * Update the THANKS file.
479
480         * Only use poll() to implement xpoll() if it's available,
481           otherwise attempt to use select() if that's available,
482           otherwise #error.
483
484         * Detect if struct pollfd is available in <poll.h> or <sys/poll.h>.
485           Improve consistency in use of autoconf macros.
486
487 Wed May 11 02:42:08 UTC 2005    lukem
488
489         * Merge NetBSD-ftp 20050511:
490                 - Use socklen_t instead of int as the 5th argument to
491                   getsockopt().  Improve invocation of setsockopt() and
492                   associated failure messages.
493
494 Wed May 11 01:46:29 UTC 2005    lukem
495
496         * Clean up RCSID usage in vendor-derived code, restoring original
497           IDs where possible.
498
499 Wed May 11 00:08:16 UTC 2005    lukem
500
501         * Merge NetBSD-ftp 20050510:
502                 - Prevent an overly-long input line causing a core dump when
503                   editing is enabled.
504                   Issue noted by Ryoji Kanai in FreeBSD Problem Report # 77158.
505                 - Implement a timeout on the accept(2) in dataconn() and the
506                   connect(2) in xconnect() by temporarily setting O_NONBLOCK
507                   on the socket and using xpoll() to wait for the operation
508                   to succeed.  The timeout used is the '-q quittime' argument
509                   (defaults to 60s for accept(2), and the system default for
510                   connect(2)).  Idea inspired by discussion with Chuck Cranor.
511                   This may (indirectly) fix various problems with timeouts in
512                   active mode through broken firewalls.
513                 - Implement xpoll() as a wrapper around poll(2), to make it
514                   easier to replace on systems without a functional poll(2).
515                   Unconditionally use xpoll() instead of conditionally using
516                   select(2) or poll(2).
517                 - In fetch_url(), don't call freeaddrinfo(res0) too early, as
518                   we use pointers to its contents later in the function.
519                   Problem found by Onno van der Linden.
520                 - Fix ftp url reget when globs are being used.
521                   Provided by Mathieu Arnold <mat@FreeBSD.org>.
522                 - Factor out common string processing code eliminating static
523                   buffers, making functions that should be static be static,
524                   and cleaning up const usage. Added a guard against buffer
525                   overflow, but the domap function is a bit too complicated
526                   to tackle right now.
527                 - Clean up whitespace.
528                 - Expand description of http_proxy by suggesting the use of
529                   RFC 1738 '%xx' encoding for "unsafe URL" characters in
530                   usernames and passwords.
531
532 Wed Jan  5 05:53:59 UTC 2005    lukem
533
534         * For now, assume libedit is not up-to-date and use our own version.
535
536         * Merge libedit from NetBSD 20020605 to 20050105.  Changes include:
537                 - Improve vi-mode.
538                 - Delete-previous-char and delete-next-char without an
539                   argument are not supposed to modify the yank buffer in
540                   emacs-mode.
541                 - Improve incremental searching.
542                 - Improve memory allocation & usage.
543                 - Move UCB-licensed code from 4-clause to 3-clause.
544                 - Make the tokenization functions publically available.
545                 - Various tty access bug-fixes.
546                 - Improve readline emulation.
547
548 Tue Jan  4 13:33:40 UTC 2005    lukem
549
550         * Unixware 7.1.1 implements RFC 2133 (Basic Socket Interface
551           Extensions for IPv6) but not the successor RFC 2553. The configure
552           script detects this and decides that tnftp needs to compile its own
553           version of getaddrinfo().  This produces the error message
554             /usr/include/netdb.h:248: `getaddrinfo' previously defined here
555           because Unixware provides an implementation of getaddrinfo() in
556           netdb.h instead of a prototype declaration :-/. Since netdb.h
557           cannot be omitted, we will always get this definition and tnftp's
558           version of getaddrinfo will always create a conflict.  This ugly
559           preprocessor hack works around the problem. Hints for a better
560           solution welcome.  Fix from pkgsrc/net/tnftp.
561
562         * Workaround poll() being a compatibility function on Darwin 7
563           (MacOSX 10.3) by adding a custom test for _POLL_EMUL_H_ which
564           is defined in poll.h on some MacOSX 10.3 systems.  Not all 10.3
565           systems have poll.h, so only do the poll() test if at least one
566           of the header files is found.  Fix from pkgsrc/net/tnftp.
567
568         * Add a utimes() replacement (using utime()) for Interix.
569           From pkgsrc/net/tnftp.
570
571 Mon Jan  3 10:21:57 UTC 2005    lukem
572
573         * Release "tnftp 20050103"
574
575         * Merge NetBSD-ftp 20050103:
576                 - Forbid filenames returned from mget that aren't in (or below)
577                   the current directory.  The previous behaviour (of trusting
578                   the remote server's response when retrieving the list of
579                   files to mget with prompting disabled) has been in ftp
580                   ~forever, and has been a "known issue" for a long time.
581                   Recently an advisory was published by D.J. Bernstein on
582                   behalf of Yosef Klein warning of the problems with the
583                   previous behaviour, so to alleviate concern I've fixed
584                   this with a sledgehammer.
585                 - Remember the local cwd after any operation which may
586                   change it.
587                 - Use "remotecwd" instead of "remotepwd".
588                 - Add (unsigned char) cast to ctype functions
589                 - Ensure that "mname" is set in ls() and mls() so that an
590                   aborted confirm() prints the correct name.
591                   Problem highlighted & suggested fix from PR [bin/17766]
592                   by Steve McClellan.
593                 - If an ftp auto-fetch transfer is interrupted by SIGINT
594                   (usually ^C), exit with 130 instead of 1 (or rarely, 0).
595                   This allows an ftp auto-fetch in a shell loop to correctly
596                   terminate the loop.
597                   Should fix PR [pkg/26351], and possibly others.
598                 - Save approximately 8K by not including http authentication,
599                   extended status messages and help strings when the
600                   appropriate options are set.
601                 - Move UCB-licensed code from 4-clause to 3-clause licence.
602                   Patches provided by Joel Baker in PR 22365, verified by
603                   Alistair Crooks.
604                 - Always decode %xx in a url's user & pass components.
605                 - Only remember {WWW,Proxy}-Authenticate "Basic" challenges; no
606                   point in tracking any others since ftp doesn't support them.
607                 - Improve the parsing of HTTP responses.
608                 - Don't base64 encode the trailing NUL in the HTTP basic auth
609                   response.  Problem noted by Eric Haszlakiewicz.
610                 - Improve parsing of HTTP response headers to be more RFC2616
611                   compliant, and skip LWS (linear white space; CR, LF, space,
612                   tab) and the end of lines and between the field name and
613                   the field value.  This still isn't 100% compliant, since we
614                   don't support "multi line" responses at this time.
615                   This should fix PR [bin/22611] from TAMURA Kent (although I
616                   can't easily find a http server to reproduce the problem
617                   against.)
618                 - Fix a minor memory leak when parsing HTTP response headers.
619                 - Don't unnecessarily display a 401/407 error when running
620                   with -V.  Fix from PR [bin/18535] by Jeremy Reed.
621                 - Don't warn about "ignored setsockopt" failures unless
622                   debugging is enabled.  Suggested by Todd Vierling.
623                 - Allow empty passwords in ftp://user:@host/file auto-fetch
624                   URLs, per RFC 1738.  Requested by Simon Poole.
625                 - correct URL syntax in comment
626                 - Note potentially surprising file-saving behaviour in case
627                   of HTTP redirects
628                 - -n is ignored for auto-fetch transfers
629                 - If connect(2) in xconnect() fails with EINTR, call select(2)
630                   on the socket until it's writable or it fails with something
631                   other than EINTR.  This matches the behaviour in SUSv3, and
632                   prevents the problem when pressing ^T (SIGINFO, which is
633                   marked as restartable) during connection setup would cause
634                   ftp to fail with EADDRINUSE or EALREADY when the second
635                   connect(2) was attempted on the same socket.  Problem found
636                   and solution provided by Maxime Henrion <mux@freebsd.org>.
637                 - Add -q to usage. From Kouichirou Hiratsuka in PR 26199.
638                 - PR/25566: Anders Magnusson: ftp(1) do not like large TCP
639                   windows.  Limit it to 8M.
640
641 Mon Oct  6 01:23:03 UTC 2003    lukem
642
643         * configure.in improvements:
644                 - When testing for IN6ADDRSZ in <arpa/nameser.h>, pull in
645                   <sys/types.h> first.  From Stoned Elipot <seb @ NetBSD>
646                 - Whitespace cleanup
647
648 Mon Aug 25 11:45:45 UTC 2003    lukem
649
650         * Release "tnftp 20030825"
651
652         * Add autoconf test for <sys/syslimits.h>; Cygwin needs it for ARG_MAX.
653           Per discussion with Eugene Kotlyarov <ekot@protek36.esoo.ru>.
654
655 Thu Jul 31 07:30:00 UTC 2003    lukem
656
657         * release "tnftp 20030731"
658
659         * merge ftp from NetBSD 20030731 to 20030731b:
660                 - Work around broken ftp servers (notably ProFTPd) that can't
661                   even follow RFC 2389, and skip any amount of whitespace
662                   before a FEATure response.  The RFC says 'single space' yet
663                   ProFTPd puts two.  Noted by DervishD <raul@pleyades.net>.
664                 - Improve formatting of features[] debug dump.
665                 - Invalidate remote directory completion cache if any command
666                   which may change the remote contents completes successfully,
667                   including: del, mdel, ren, mkdir, rmdir, quote, and all
668                   upload commands.  Patch from Yar Tikhiy <yar@freebsd.org>.
669
670         * merge ftp from NetBSD 20030228 to 20030731:
671                 - $FTPUSERAGENT overrides the HTTP User-Agent header.
672                   Based on patch from Douwe Kiela <virtus@wanadoo.nl>.
673                 - Add about:tnftp
674                 - Fix URL in about:netbsd
675                 - netbsd.org->NetBSD.org
676                 - strlcpy fix in fetch.c
677                 - Uppercase "URL"
678                 - fix a bogus error message when given a HTTP URL with a
679                   trailing slash
680                 - groff fixes in man page
681                 - tweak progressbar.c copyright; the stuff jason did in util.c
682                   wasn't migrated to this file
683                 - Don't coredump when printing '%n' in the prompt if there's
684                   no username yet.
685                   Fix from Maxim Konovalov <maxim@freebsd.org>
686
687         * Add test for HAVE_IN6ADDRSZ (which older Darwin is lacking),
688           and only enable INET6 if it exists.
689           Patch from Amitai Schlair <schmonz@schmonz.com>.
690
691         * Improve ipv6 check for older linux systems that don't provide
692           sin6_scope_id.
693           Patch from YAMANO Yuji <Yamano_Yuji@tk-bay.ogis-ri.co.jp>.
694
695 Fri Feb 28 10:57:30 UTC 2003    lukem
696
697         * tagged as "tnftp 2.0 beta1"
698
699 Fri Feb 28 10:07:07 UTC 2003    lukem
700
701         * renamed to `tnftp' (from `lukemftp')
702
703         * renamed `libukem' to `libnetbsd'
704
705
706 Mon Jun 17 06:50:13 UTC 2002    lukem
707
708         * #if USE_GLOB_H, use <glob.h> instead of "ftpglob.h".
709           Requested by Mike Heffner <mikeh@freebsd.org>
710
711 Mon Jun 10 08:12:35 UTC 2002    lukem
712
713         * crank FTP_VERSION from 1.6-beta1 to 1.6-beta2
714
715         * replace missing fseeko(), with a wrapper to fseek() which
716           checks that the offset isn't > LONG_MAX
717
718         * #include <regex.h> #if HAVE_REGEX_H
719
720 Mon Jun 10 01:27:46 UTC 2002    lukem
721
722         * check for and replace sa_family_t definition
723
724         * don't bother checking for issetugid(); it was only used in the
725           internal libedit to prevent $HOME/.editrc from being used if
726           running set-id, and the newer libedit code wouldn't even read
727           $HOME/.editrc if issetugid() wasn't available.  as many target
728           operating systems don't have issetugid(), and lukemftp isn't
729           likely to be run set-id (and $HOME/.netrc is used in any case),
730           the issetugid() check has been disabled in libedit.
731
732         * add back cpp code which #defines REGEX #if HAVE_REGEX_H
733
734 Wed Jun  5 14:39:11 UTC 2002    lukem
735
736         * crank FTP_VERSION from 1.6alpha1 to 1.6-beta1
737
738         * implement replacement setprogname()
739
740         * use getprogname() instead of __progname
741
742         * convert to christos' replacement fgetln(), as it's better than mine
743
744         * merge ftp from NetBSD 20020605 to 20020606:
745                 - use setprogname()
746                 - only support -6 if INET6 is defined
747
748 Wed Jun  5 13:08:25 UTC 2002    lukem
749
750         * don't bother checking if <glob.h> is usable (see below).
751
752         * always compile in local glob; it's the best way to ensure that
753           various security issues are fixed
754
755         * update libukem/glob.c from NetBSD's __glob13.c rev 1.22 and rev 1.23
756
757         * merge libedit from NetBSD 20010413 to 20020606:
758                 - constify; passes all gcc and lint strict checks.
759                 - add config.h [Jason Evans], to create a portable version of
760                   libedit that can be easily compiled on other OS's.
761                 - PR/12963:Jason Waterman: Fix signed cast problems.
762                 - Fixed an __P remnant
763                 - Close quoting.
764                 - Generate <>& symbolically.
765                 - Punctuation and whitespace nits, fix a typo.
766                 - PR/14188: Anthony Mallet: Provide an opaque data
767                   pointer to client programs.
768                 - a couple of minor fixes.  originally by Ruslan Ermilov
769                   <ru@FreeBSD.org>, highlighted to me by way of Mike Barcroft
770                   <mike@FreeBSD.org> (thanks!)
771                 - PR/14067: Anthony Mallet: Provide a programmatic way
772                   to set the read_char function via a new el_set() operation.
773                   Thanks, nicely done :-)
774                 - `existent', not `existant'
775                 - Don't use HAVE_ yet.
776                 - Fix a warning.
777                 - Remove an unused variable.
778                 - If term_init() fails, cleanup and return NULL. This
779                   avoids other lossage.  Pointed by charles.
780                 - va_{start,end} audit: Make sure that each va_start has one
781                   and only one matching va_end, especially in error cases.
782                   If the va_list is used multiple times, do multiple
783                   va_starts/va_ends.  If a function gets va_list as argument,
784                   don't let it use va_end (since it's the callers
785                   responsibility).  Improved by comments from enami and
786                   christos -- thanks!
787                 - history_def_enter: fix off-by-one mistake in delete
788                   condition (the behaviour to keep at least one entry on the
789                   history list is retained). This fixes lib/9704 by Phil Nelson.
790
791         * merge ftp from NetBSD 20020524 to 20020605:
792                 - when showing the final progress bar, replace "00:00 ETA"
793                   with the elapsed time.  (suggested by simonb)
794                 - actually display transfer stats after a URL fetch.
795                   (bug introduced a *long* time ago)
796                 - update copyright & version
797
798         * merge ftp from NetBSD 20001127 to 20020524:
799                 - Use "r+" instead of "r+w", since the latter is not standard.
800                   Noted by <Steve.McClellan@radisys.com> in private email.
801                 - Only send port number in HTTP/1.1 Host: request if port !=
802                   80.  Fixes [bin/15415] from Takahiro Kambe
803                   <taca@sky.yamashina.kyoto.jp>
804                 - Fix bad mode passed by mls() to recvrequest().  Fixes
805                   [bin/16642] from <steve.mcclellan@radisys.com>
806                 - update copyrights
807                 - minor knf
808                 - invoke cmdtab.c_handler()s with argv[0] == c_name instead
809                   of the supplied name. that way the full (unambiguous) name
810                   is displayed in error messages and usage strings.
811                 - line2 may overrun if line is too long (> 200).  be more
812                   careful on strcpy.
813                 - Handle URLs without files correctly (e.g, when using '-o -').
814                   Fix from Anders Dinsen <anders@dinsen.net> in [bin/13768]
815                 - portnum is unsigned, use %u instead of %d
816                 - Add -4 to force IPv4 and -6 to force IPv6 address usage.
817                   From Hajimu UMEMOTO, via Mike Heffner of FreeBSD.
818                 - use u_char instead of char in base64_encode().
819                   problem noticed by Jorgen Lundman in private mail.
820                 - don't make broken file with -R option.
821                 - handle "*" in Content-Range properly.
822                 - If no_proxy condition is true && urltype == FTP_URL_T,
823                   use fetch_ftp to retrieve
824                 - convert to use getprogname()
825                 - Fix description for "form", "mode", and "struct" commands.
826                   Inspired by [bin/16736] from Steve McClellan
827                   <steve.mcclellan@radisys.com>
828                 - Generate <>& symbolically. I'm avoiding .../dist/...
829                   directories for now.
830                 - Punctuation nits.
831                 - Whitespace cleanup.
832                 - put "site" in alphabetical order. noted by Mike Barcroft
833                   in private email
834                 - avoid buffer overrun on PASV from malicious server.
835                 - Large file ASCII mode support by using fseeko()
836                   instead of fseek().  From Andrey A. Chernov of FreeBSD,
837                   via Mike Heffner.
838                 - Deal with const'ification if el_parse().
839                 - call setlocale() on startup
840                 - display a limited progress bar (containing bytes xferred
841                   and xfer rate) when the file size is unknown
842                 - disable progress bar during remglob()
843
844 Thu Mar 14 05:41:49 UTC 2002    lukem
845
846         * ensure all AF_INET6 use is protected with #ifdef INET6
847
848         * remove unnecessary __attribute__ goop
849
850         * libukem/snprintf.c: fix compile errors with gcc 3.x
851
852 Tue Apr 17 08:07:29 UTC 2001    lukem
853
854         * autoconf check for %q long long support in *printf()
855           (instead of %ll), define and use HAVE_PRINTF_QD if so
856
857         * ipv6 isn't compatible with socks, so disable the former
858
859         * look for <libutil.h> (instead of <util.h>) and <arpa/nameser.h>
860
861         * don't check for fparseln() twice
862
863         * fix getaddrinfo() checks
864
865         * crank FTP_VERSION from 1.5 to 1.6alpha1
866
867         * always ensure _PATH_BSHELL and _PATH_TMP are defined
868
869         * prototype inet_pton() if its missing
870
871         * don't bother trying to use if_indextoname() in ip6_sa2str()
872           (fixes problems on MacOS X)
873
874         * in inet_pton(), pull in <arpa/nameser.h> for IN6ADDRSZ and INT16SZ,
875           and define if missing
876
877 Fri Apr 13 15:24:44 UTC 2001    lukem
878
879         * only include <arpa/nameser.h> if we have it
880
881         * update glob(3) to netbsd-current (20010329), adding support
882           for GLOB_LIMIT and fixing various buffer overflows.
883
884         * update editline from NetBSD 20000915 -> NetBSD 20010413
885                 - Enlarge editline buffers as needed to support arbitrary
886                   length lines.  This also addresses lib/9712 by Phil Nelson.
887                 - consistently check for allocation failures and return -1,
888                   if we could not get more memory.
889                 - add support for home and end keys.
890                 - improve debugging support
891                 - el_line_t: make 'limit' const
892
893 Mon Nov 27 23:23:40 EST 2000    lukem
894
895         * merge ftp from NetBSD-current (20001127):
896                 - implement "mreget"; as per "mget" but uses "reget" instead
897                   of "get"
898                 - add -N netrc and $NETRC, as methods to select an alternative
899                   .netrc file
900                 - cache local user name and home directory for further use
901                 - in mget(), use docase() instead of a local version to do
902                   the case conversion.
903                 - format string cleanups
904                 - be more explicit that $ftp_proxy and $http_proxy are not
905                   supported for interactive sessions
906                 - cope with 2553bis getnameinfo (always attach scope id)
907                   getnameinfo error check.
908                 - use NI_MAXHOST with getnameinfo.  we can assume presence of
909                   getnameinfo.
910
911 Tue Nov  7 00:16:23 EST 2000    lukem
912
913         * libukem/snprintf.c had a non-functional `%s' due to a
914           function declaration mismatch.  problem found and fixed
915           by Hubert Feyrer <hubert@feyrer.de>
916
917 Wed Oct 11 14:06:19 EST 2000    lukem
918
919         * released version 1.5
920
921 Tue Oct  3 10:22:36 EST 2000    lukem
922
923         * crank to version 1.5 beta6
924
925         * merge ftp from NetBSD-current (20001003)
926                 - explicitly use SOCK_STREAM with socket() instead of
927                   res->ai_socktype, because it appears that linux with glibc
928                   doesn't set the latter correctly after one of getaddrinfo()
929                   or getnameinfo().
930                 - clarify that $ftp_proxy only works for full URLs and can't
931                   be used for interactive connections.
932
933 Mon Sep 25 21:52:12 EST 2000    lukem
934
935         * crank to version 1.5 beta5
936
937 Sun Sep 24 13:31:19 EST 2000    lukem
938
939         * merge ftp from NetBSD-current (20000924)
940                 - since everything else here uses ANSI C, we might as well
941                   replace __STRING() with the ANSI C stringization stuff...
942                 - base64_encode should be static. picked up by hp/ux(!)
943                   compiler
944                 - It appears that whilst Apache 1.3.9 incorrectly puts a
945                   trailing space after the chunksize (before the \r\n),
946                   Apache 1.3.11 puts *multiple* trailing spaces after the
947                   chunksize. I 'm fairly certain that this is contrary to
948                   RFC 2068 section 3.6, but whatever...
949                   Found by David Brownlee <abs@mono.org>
950                 - always include <netdb.h>, not just when INET6 is defined.
951                   resolves PR [bin/10970] by Richard Earnshaw
952                   <rearnsha@cambridge.arm.com>>
953                 - in progressmeter() perform the check for foregroundproc() a
954                   little earlier
955                 - removed unused variable `items' in list_vertical()
956
957 Sat Sep 23 15:43:34 EST 2000    lukem
958
959         * remove unused sverrno in warnx() and errx()
960
961         * remove unused h_error in getnameinfo()
962
963         * in getaddrinfo(), don't bother declaring in6_addrany[] and
964           in6_loopback #ifndef INET6
965
966 Thu Sep 21 11:26:35 EST 2000    lukem
967
968         * in getaddrinfo.c::str_isnumber(), use strtol() and check the
969           result, instead of using strtoul() and not checking the result.
970
971         * define INADDRSZ if it's not found (e.g, HP/UX doesn't seem to have
972           it in <arpa/nameser.h>)
973
974 Wed Sep 20 09:23:59 EST 2000    lukem
975
976         * crank to version 1.5 beta4
977
978 Mon Sep 18 18:19:54 EST 2000    lukem
979
980         * add AC_AIX test, which defines _ALL_SOURCE under AIX
981
982         * use ANSI # stringization instead of __STRING()
983
984         * define HAVE_RFC2553_NETDB if <netdb.h> defines AI_NUMERICHOST
985           (et al) and has getaddrinfo(). (some systems only implement RFC2133)
986
987         * don't bother with AC_C_CONST as we depend upon ANSI C elsewhere
988
989         * when HAVE_RFC2553_NETDB isn't set, and we're #defining various EAI_,
990           AI_, and NI_ items, #undef first incase a system partially implements
991           these in <netdb.h>
992
993         * look for tgetent() in -ltinfo before -lncurses, because ncurses 5.0
994           has been split up into multiple libraries.
995           from Arkadiusz Miskiewicz <misiek@pld.org.pl>
996
997 Fri Sep 15 01:09:10 EST 2000    lukem
998
999         * don't bother defining __P() or __STRING() based on whether
1000           __STDC__ is available or not, since these aren't used any more
1001
1002         * fix mkstemp() prototype
1003
1004         * declare getpass() if necessary
1005
1006         * we don't need the readline xxgdb hack in libedit...
1007
1008         * convert to ansi declarations
1009
1010         * use ansi prototypes instead of __P()
1011
1012         * merge in changes from makelist 1.4 -> 1.6:
1013                 - generate ansi prototypes instead of using __P().  noted by
1014                   christos
1015                 - fix a couple of comments
1016                 - add -m option to makelist, which generates an mdoc table
1017                   with the key bindings and their descriptions
1018                 - manually add the output of 'sh ./makelist -m vi.c ed.c
1019                   common.c' to a new section in editrc(5) called
1020                   `EDITOR COMMANDS'
1021
1022         * merge libedit from NetBSD-current (20000915)
1023                 * convert to new style guide, which includes:
1024                         - ansi prototypes & features (such as stdargs)
1025                         - 8 space indents
1026                 * history_def_set has a `const int' as a third arg, not an
1027                   `int'.  picked up by the ultrix compiler, reported by
1028                   simonb@ ...
1029                 * generate ansi prototypes instead of using __P().  noted by
1030                   christos.  fix a couple of comments
1031                 * make xxgdb and a gdb linked with libedit's readline emulation
1032                   work properly together.   xxgdb communicates with a gdb
1033                   running on a pty that it sets to -echo,-onlcr prior to
1034                   forking the gdb process.  GNU readline preserves the -echo
1035                   setting while libedit was undoing it (setting the tty to a
1036                   sane state and totally confusing xxgdb's parser).
1037                   this diff simply disables libedit if both readline emulation
1038                   and "stty -echo" are used/set.   that is enough to make
1039                   xxgdb work once again, but (XXX) this is not how GNU readline
1040                   handles stty -echo (it does not echo anything, but editing
1041                   commands like ^A,^K, etc.  still work), so the readline
1042                   emulation isn't perfect.
1043
1044 Tue Aug 29 18:00:08 EST 2000    lukem
1045
1046         * don't bother testing for #if __STDC__; just assume we have it...
1047
1048 Mon Aug 28 22:45:08 EST 2000    lukem
1049
1050         * refine tests for IPv6 #defines (EAI_, AI_, NI_, ...).
1051           should improve portability on systems which implement
1052           RFC 2133 but not RFC 2553.
1053
1054 Wed Aug  9 02:12:51 EST 2000    lukem
1055
1056         * use #if __STDC__ instead of #ifdef __STDC__
1057
1058         * only test 'case NETDB_INTERNAL:' if it's defined
1059
1060         * fix support for --program-prefix et al
1061
1062         * only include <arpa/nameser.h> in the files that need it, because
1063           the DELETE define in some system's implementations causes name
1064           collisions in libedit.
1065
1066 Mon Aug  7 08:17:37 EST 2000    lukem
1067
1068         * merge ftp from NetBSD-current (20000807)
1069                 * implement parseport(), which takes a string and attempts to
1070                   convert it to a numeric port number
1071                 * use parseport() in parse_url() and hookup()
1072                 * don't try and lookup the port number using getaddrinfo(),
1073                   as it's too hard to separate a failed host name lookup from
1074                   a failed service name lookup.  this was causing lossage on
1075                   systems that don't have `http' in services(5) (such as
1076                   solaris), but only crept in when we started using
1077                   getaddrinfo() unconditionally.
1078
1079 Wed Aug  2 23:43:50 EST 2000    lukem
1080
1081         * crank to version 1.5 beta3
1082
1083         * define NO_LONG_LONG not NO_QUAD
1084
1085         * detect if struct sockaddr.sa_len exists (rather than relying upon
1086           #ifdef BSD4_4)
1087
1088         * detect if socklen_t exists, and if not, typedef as unsigned int
1089
1090         * detect if struct addrinfo exists, and if not declare it and #define
1091           associated EAI_, AI_, and NI_ defines.
1092
1093         * look for & replace: getaddrinfo(), getnameinfo(), inet_ntop(),
1094           inet_pton()
1095         * look for gethostbyname2()
1096
1097         * don't bother looking for hstrerror() or inet_aton() anymore
1098
1099         * include <arpa/nameser.h> and <stddef.h>
1100
1101         * define USE_SELECT instead of __USE_SELECT
1102
1103         * always define HAVE_H_ERRNO
1104
1105         * add Brian Stark to THANKS, for lots of AIX porting feedback
1106
1107         * improve detection of sin_len for AIX (now part of sa_len test)
1108
1109         * add functions needed by recent ftp import:
1110                 getaddrinfo(), getnameinfo(), inet_ntop(), inet_pton()
1111           remove functions not needed anymore:
1112                 hstrerror(), inet_aton()
1113
1114         * use #if HAVE_ISSETUGID not #ifdef
1115
1116         * update from NetBSD-current (20000802):
1117                 - rename NO_QUAD to NO_LONG_LONG, QUAD* -> LL* and add ULL*
1118                   (unsigned) equivalents. name change suggested by Klaus
1119                   Klein <kjk@NetBSD.org>
1120                 - change defined(BSD4_4) || HAVE_SIN_LEN tests into
1121                   HAVE_SOCKADDR_SA_LEN, and set the latter if BSD4_4 exists
1122
1123 Mon Jul 31 10:59:10 EST 2000    lukem
1124
1125         * merge ftp from NetBSD-current (20000731)
1126                 - we can't just rename BSD4_4 -> HAVE_SIN_LEN, since bsd
1127                   systems define BSD4_4; change tests to test for either
1128                   defined(BSD4_4) or HAVE_SIN_LEN
1129                 - more KNF
1130
1131 Sun Jul 30 16:55:09 EST 2000    lukem
1132
1133         * merge ftp from NetBSD-current (20000730):
1134                 - clean up NO_QUAD support: create helper #defines and use as
1135                   appropriate:
1136                         #define         NOQUAD          ! NOQUAD
1137                         -------         ------          - ------
1138                         QUADF           "%ld"           "%lld"
1139                         QUADFP(x)       "%" x "ld"      "%" x "lld"
1140                         QUADT           long            long long
1141                         STRTOL(x,y,z)   strtol(x,y,z)   strtoll(x,y,z)
1142                 - always use getaddrinfo() and getnameinfo() instead of
1143                   maintaining two code paths.
1144                 - rename __USE_SELECT to USE_SELECT
1145                 - rename BSD4_4 to HAVE_SIN_LEN
1146                 - replace union sockunion {} with struct sockinet {}, and
1147                   modify the code accordingly. this is possibly more portable,
1148                   as it doesn't rely upon the structure alignment within the
1149                   union for our own stuff.
1150
1151 Fri Jul 28 22:11:17 EST 2000    lukem
1152
1153         * merge ftp from NetBSD-current (20000728):
1154                 - no trailing , on last item (FEAT_max) in enum
1155                 - rename "opts" to "remopts", so people used to "o host"
1156                   don't get bitten
1157
1158 Wed Jul 26 18:59:19 EST 2000    lukem
1159
1160         * merge ftp from NetBSD-current (20000726):
1161                 - add support for FEAT and OPTS commands with `features' and
1162                   `opts'.  (from RFC 2389).
1163                 - add support for MLST & MLSD (machine parseble listings)
1164                   with 'mlst', 'mlsd' and 'pmlsd' (mlsd |$PAGER) commands.
1165                   (from draft-ietf-ftpext-mlst-11)
1166                 - rename remotesyst() to getremoteinfo(), and modify to parse
1167                   the result from FEAT (if supported), and take into account
1168                   the support for the various extensions such as MDTM, SIZE,
1169                   REST (STREAM), MLSD, and FEAT/OPTS.
1170                 - put each feature into one of the following categories:
1171                         - known to work (explicit FEAT)
1172                         - unknown but assume works until explicit failure,
1173                           when it's then tagged as `known not to work'.
1174                         - known not to work (FEAT succeeded but didn't return
1175                           anything, or was unknown and then explicit failure)
1176                   assign results into features[] matrix.
1177                 - add support to getreply() so that an optional callback will
1178                   be called for each line received from the server except for
1179                   the first and last.  this is used in FEAT (and MLST) parsing.
1180                 - modify various commands to check if REST (STREAM), MDTM and
1181                   SIZE are explicitly or implicitly supported before using.
1182                 - fix `syst' when verbose is off.
1183                 - minor knf (indent goto labels by one space, etc).
1184                 - simply various command usage handlers by assuming that
1185                   argv != NULL except for quit() and disconnect().
1186                 - errx?/warnx? audit.  do not pass variable alone, use %s.
1187
1188         * check for issetugid() and don't use in libedit if it doesn't exist.
1189
1190         * merge libedit from NetBSD-current (20000726):
1191                 * Only look in home directory for .editrc.  (Discussed
1192                   with Christos.)
1193
1194         * in glob.c #undef TILDE before redefining, because some AIX systems
1195           #define TILDE in <sys/ioctl.h>
1196
1197 Mon Jul 10 00:28:51 EST 2000    lukem
1198
1199         * released lukemftp 1.4
1200
1201 Thu Jun 15 23:28:49 EST 2000    lukem
1202
1203         * merge ftp from NetBSD-current (20000615):
1204                 * migrate the SYST parsing from setpeer() into a separate
1205                   remotesyst().  call remotesyst() only when login has been
1206                   successful some servers don't let you run SYST until you've
1207                   successfully logged in.
1208                 * in fetch_ftp(), always call setpeer() with autologin
1209                   disabled, and use the following ftp_login() to DTRT.  this
1210                   prevents ftp from trying to login a second time if the
1211                   first autologin fails when connecting to a remote site
1212                   anonymously using autofetch.
1213                 * reset unix_proxy and unix_server in cleanuppeer()
1214                 * missed a function conversion in the KNF sweep...
1215
1216 Mon Jun 12 01:16:12 EST 2000    lukem
1217
1218         * change lukemftp.h to check !HAVE_STRDUP instead of !HAVE_STRSUP.
1219           fixes compile problem on systems which have strdup() as a macro.
1220
1221         * merge ftp from NetBSD-current (20000612):
1222                 from itojun: better fix for previous (doesn't need
1223                 in_addr_t or u_int32_t)
1224
1225 Sun Jun 11 12:19:52 EST 2000    lukem
1226
1227         * merge ftp from NetBSD-current (20000611):
1228                 portability fixes for lukemftp:
1229                 * initconn(): use in_addr_t instead of u_int32_t when
1230                   manipulating IPv6 addresses (and assume anything with ipv6
1231                   has in_addr_t; if not, i'll add an autoconf test for it)
1232                 * ai_unmapped(): not all systems have sin_len; so only set
1233                   #ifdef BSD4_4
1234                 * fix some lint
1235
1236 Mon Jun  5 21:10:31 EST 2000    lukem
1237
1238         * released lukemftp 1.3
1239
1240 Mon Jun  5 19:53:49 EST 2000    lukem
1241
1242         * convert various support files to ANSI C
1243
1244         * look for strtoll() instead of strtoq()
1245
1246         * update COPYRIGHT, THANKS, NEWS
1247
1248         * merge ftp from NetBSD-current (20000605):
1249                 - fix ai_unmapped() to be a no-op in the !def INET6 case
1250                 - display `(-INET6)' at the end of the version string if
1251                   !def INET6
1252                 - clarify in the man page that IPv6 support may not be present
1253                   (for lukemftp :)
1254
1255         * ensure <vis.h> has VIS_WHITE et al
1256
1257 Sun Jun  4 18:00:07 EST 2000    lukem
1258
1259         * merge ftp from NetBSD-current (20000604):
1260                 - Change `ls' to use the `LIST' and not `NLST' FTP protocol
1261                   command.  Now that after many years on not caring we find
1262                   certain popular ftp servers are starting to obey RFC959 to
1263                   the letter of the law and will only return a list of
1264                   filenames (not directories or other filetypes) in the
1265                   output of `NLST', then `LIST' is more useful in this case.
1266                   (Note that the aforementioned pedanticness means that
1267                   filename completion isn't as useful as it could be...)
1268                   Fixes [bin/8937] by David A. Gatwood
1269                   <dgatwood@deepspace.mklinux.org>
1270                 - convert to ANSI KNF
1271                 - Add support for `fget localfile', which reads a list of
1272                   filenames to retrieve from localfile.  Based on work by
1273                   Darren Reed.
1274                 - Update copyright dates.
1275                 - s/strtoq/strtoll/ (the latter is standardised)
1276                 - Add support for 'ftp -u url file ...', to upload a list of
1277                   files to given url.  Mostly based on [bin/10019] by Scott
1278                   Aaron Bamford <sab@ansic.net>
1279                 - convert IPv4 mapped address (::ffff:10.1.1.1) into real IPv4
1280                   address before touching it.  IPv4 mapped address complicates
1281                   too many things in FTP protocol handling.
1282                 - do not pass scoped IPv6 address notation on Host: directive,
1283                   since scope identifier is local to the originating node.
1284                   do not allow scoped IPv6 address notation in URL, if it is
1285                   via proxy.
1286                 - fixes from cgd:
1287                   * sanity check a length (otherwise certain bogus responses
1288                     can crash ftp)
1289                   * allow a transfer encoding type of `binary'; certain
1290                     firewall vendors return this bogus type...
1291                 - make debugging output unambiguous on IPv6 numeric addrs
1292                   (don't use host:port)
1293                 - http://[::1]:8080/ is legal.
1294                 - send Host: directive with RFC2732 bracket notation for IPv6
1295                   numeric, otherwise "host:port" is ambiguous to servers
1296                   (clarification will be submitted as update to RFC2732).
1297                 - only use getaddrinfo() et al if both NI_NUMERICHOST *and*
1298                   INET6 are defined...  (allows --disable-ipv6 in lukemftp's
1299                   configure script to disable this as well, which is good for
1300                   testing when it appears getaddrinfo() is borken)
1301                 - updated comment on IPv4 mapped address.  sync with kame.
1302                 - Fix examples on using pipes in local filenames.  AFAICT,
1303                   ftp has always required `dir . |more' not as `dir |more'
1304                   treats `|more' as the remote filename. Resolves [bin/9922]
1305                   by Geoff Wing <mason@primenet.com.au>
1306                 - ftp(1): treats IPv4 mapped destination as IPv4 peer, not
1307                   native IPv6 peer.  this does not support network with SIIT
1308                   translator.
1309                 - inhibit too-noisy message for scoped address data transfer
1310                   (will be enabled in "debug" mode).
1311                 - only use IPTOS_ setsockopt()s if they're defined (e.g, SunOS
1312                   doesn't).  from Havard.Eidnes@runit.sintef.no
1313                 - allow IPv6 extended numeric address in host part.
1314                   (draft-ietf-ipngwg-scopedaddr-format-01.txt). fixes PR 9616.
1315
1316         * merge libedit from NetBSD-current (20000604):
1317                 - use strtol() (instead of atoi()) for sane error detection
1318
1319 Wed May 31 19:24:53 EST 2000    lukem
1320
1321         * merge libedit from NetBSD-current (20000531):
1322                 - Fix refresh glitches when using auto-margin.
1323                 - Don't dump core on empty .editrc files.
1324                 - el_insertstr takes a "const char *" not "char *" now as it
1325                   doesn't modify the argument.
1326
1327 Thu Feb  3 20:19:40 EST 2000    lukem
1328
1329         * released lukemftp 1.2
1330
1331 Tue Feb  1 09:47:51 EST 2000    lukem
1332
1333         * add --enable-ipv6 and --disable-ipv6 to configure
1334
1335         * modify libedit/sig.? to use sigfunc instead of sig_t, and
1336           deprecate autoconf tests for retsigtype and sig_t.
1337           This fixes portability problems with Digital UNIX 5.0.
1338
1339         * merge ftp from NetBSD-current (20000201):
1340                 - define private type `sigfunc' as
1341                         typedef void (*sigfunc) __P((int));
1342                   and replace use of sig_t and void (*)(int).
1343                   certain other OSes define sig_t differently to that (they
1344                   add extra arguments), and it causes problems due to
1345                   function mismatches, etc...
1346
1347 Wed Jan 26 22:54:38 EST 2000    lukem
1348
1349         * search for tgetent() in -ltermcap then -lcurses and -lncurses
1350
1351         * merge ftp from NetBSD-current (20000126):
1352                 - roll back to using sscanf() instead of strptime() to parse
1353                   `yyyymmddhhmmss' strings, since the latter technically can't
1354                   parse dates without non alphanumerics between the elements
1355                   (even though NetBSD's strptime() copes).
1356
1357 Tue Jan 25 19:09:37 EST 2000    lukem
1358
1359         * merge ftp from NetBSD-current (20000125):
1360                 - complete_ambiguous(): be consistent about completing
1361                   unambiguous matches; if the word is already complete then
1362                   return CC_REFRESH so that the higher layer may append a
1363                   suffix if necessary. Fix from Launey Thomas <ljt@alum.mit.edu>
1364                 - change references from draft-ietf-ipngwg-url-literal-01.txt
1365                   to RFC2732
1366                 - work around bug in apache 1.3.9 which incorrectly puts a
1367                   trailing space after the chunksize.  noted by Jun-ichiro
1368                   itojun Hagino <itojun@itojun.org> in [bin/9096]
1369                 - work around lame ftpd's that don't return a correct post-Y2K
1370                   date in the output of `MDTM'.  obviously the programmer of
1371                   aforementioned lame ftpd's did something like
1372                         "19%02d", tm->tm_year
1373                   instead of
1374                         "%04d", tm->tm_year + TM_YEAR_BASE
1375                   fixes [bin/9289] by jbernard@mines.edu
1376
1377         * merge libedit from NetBSD-current (20000125):
1378                 - PR/9244: Kevin Schoedel: libedit dumps bindings
1379                   inconsistently
1380                 - PR/9243: Kevin Schoedel: libedit ignores repeat count
1381                 - Add support for automatic and magic margins (from tcsh)
1382                   This makes the rightmost column usable on all programs
1383                   that use editline.
1384
1385 Tue Dec 21 08:59:22 EST 1999    lukem
1386
1387         * update INSTALL notes for some systems
1388
1389         * if sl_init() exists, check return value of sl_add() is int and
1390           compile in a replacement copy if it's not the case
1391
1392         * don't look for <stringlist.h> - always use local prototypes; older
1393           NetBSD systems may have conflicting prototypes
1394
1395 Mon Dec 20 11:21:28 EST 1999    lukem
1396
1397         * merge ftp from NetBSD-current (19991220):
1398         - Move version from ftp_var.h to version.h
1399         - Fix chunked support; probably broke after rate limiting was added.
1400           Problem noticed/debugging assisted by giles lean
1401           <giles@nemeton.com.au>.
1402         - remove unnecessary freeaddrinfo(res), since res0 was changed to be
1403           freed earlier in itojun's last commit. fixes [bin/8948].
1404         - remove `const char *reason'; it was being assigned but not used.
1405         - fix memory leak in fetch_url (no freeaddrinfo was there).
1406           sync with recent KAME.
1407         - separate out the main `data pump' loop into two: one that supports
1408           rate limiting and one that doesn't. simplifies the code, and speeds
1409           up the latter case a bit, at the expense of duplicating a few
1410           lines...
1411
1412 Sun Nov 28 18:20:41 EST 1999    lukem
1413
1414         * merge ftp from NetBSD-current (19991128):
1415         - implement xsl_init() and  xsl_add(); error checking forms of
1416           sl_{init,add}()
1417         - fix bug where the second press of <TAB> on an empty word (i.e, list
1418           all options) may have resulted in an strncmp() against NULL.
1419           (detected by _DIAGASSERT())
1420         - in cleanuppeer(), reset username to NULL after free()ing it.
1421           fixes [bin/8870] by Wolfgang Rupprecht <wolfgang@wsrcc.com>
1422         - complete_remote(): use remglob("", ...) instead of remglob(".", ...),
1423           for listings of the current working directory; some ftp servers don't
1424           like `NLST .'.
1425           [noted by Giles Lean <giles@nemeton.com.au>]
1426         - recvrequest(): treat remote=="" as remote==NULL when calling
1427           command().  (to support the above change)
1428         - support `[user@]' in `[user@]host' and `[user@]host[:][path]'.
1429           [based on idea (and initial code) from David Maxwell <david@fundy.ca>]
1430         - `idle' may be invoked without any args
1431         - reformat some comments
1432         - reformat usage string in program and man page
1433         - call updateremotepwd() after successful login, not after successful
1434           connect
1435         - always call setsockopt(, IPPROTO_IP, IP_TOS, ) (et al); using #if
1436           defined(IPPROTO_IP) doesn't work on certain foreign systems where
1437           enums instead of #defines are used...
1438           [noted by Matthias Pfaller <leo@dachau.marco.de>]
1439
1440 Mon Nov 15 23:01:58 EST 1999    lukem
1441
1442         * released lukemftp 1.1
1443
1444 Mon Nov 15 09:07:01 EST 1999    lukem
1445
1446         * merge libedit from NetBSD-current (19991115):
1447                 - instead of using a private coord_t global variable to store
1448                   the size of the rprompt, use the previously unused coord_t
1449                   el->el_rprompt.p_pos
1450
1451 Sat Nov 13 14:42:22 EST 1999    lukem
1452
1453         * support caching of results in AC_MSG_TRY_{COMPILE,LINK}
1454           autoconf tests
1455
1456         * add NEWS file
1457
1458         * clarify copyright statement in COPYING
1459
1460         * merge ftp from NetBSD-current (19991113):
1461                 - implement `set rprompt'; right side version of `set prompt'.
1462                   depends on EL_RPROMPT support i added to editline(3).
1463                 - allow $FTPPROMPT and $FTPRPROMPT to override defaults for
1464                   the relevant prompts
1465                 - move `%' formatting code from prompt() to expandbuf().
1466                 - implement `%.' and `%c', similar to the same % codes in
1467                   tcsh(1) (functionality I added to tcsh nearly 6 years ago),
1468                   except that `%.' always does `...trailing' and `%c' always
1469                   does `/<x>trailing'.
1470                 - unknown `%foo' codes get printed as `%foo'
1471                 - implement updateremotepwd(); update the global variable
1472                   `remotepwd' to contain the remote working directory.
1473                 - add `set prompt', a user configurable prompt. (defaults to
1474                   `ftp> ').  the following escape characters a la tcsh(1) are
1475                   supported: %/, %m, %M, and %n.
1476                 - add global var `username'; used by prompt code
1477                 - fix a couple of minor memory leaks
1478                 - bump version
1479                 - prevent minor memory leak (unnecessary strdup)
1480                 - implement restarting file:/// non-proxied http:// URLs
1481                   (with -R).
1482                 - fix a semicolono which stopped file:/// from working
1483                 - split the version string into product and version
1484                 - be consistent about reporting the version between:
1485                         + status command
1486                         + about:version URL fetch
1487                         + User-agent sent in http requests
1488                 - hookup(): when using getservbyname() (when getaddrinfo()
1489                   isn't available), if the provided port is a valid number
1490                   use that rather than trying to do getservbyname() against
1491                   it. fixes a problem on foreign systems noted by Chuck
1492                   Silvers <chuq@chuq.com>
1493                 - support `about:version'. also display the version in the
1494                   output of `status'.
1495
1496         * merge libedit from NetBSD-current (19991113):
1497                 - implement printing a right-side prompt. code derived from
1498                   similar work I wrote for tcsh(1) three years ago.
1499                 - implement EL_RPROMPT, which allows a setting/getting of a
1500                   function which returns a string to be used as the
1501                   right-side prompt.
1502
1503         * replace manually managed config.h.in with acconfig.h and use
1504           autoheader to generate the former.
1505
1506         * add missing entry for `#undef write' in acconfig.h (for SOCKS)
1507
1508         * configure.in:
1509                 - use `LL' suffix on long long constant used to test
1510                   snprintf("%lld")
1511                 - test for EL_RPROMPT instead of EL_EDITMODE, since the
1512                   former is is a newer required feature
1513
1514         * in makelist, set LC_ALL="C", in case the locale confuses awk.
1515           problem noted by Peter Seebach <seebs@plethora.net>
1516
1517 Wed Oct 27 07:00:00 UTC 1999    lukem
1518
1519         * released 1.0
1520
1521         * removed libedit/TEST/test.c; no need to distribute it
1522
1523 Mon Oct 25 21:59:54 EST 1999    lukem
1524
1525         * released 1.0b7
1526
1527         * put VERSION string into lukemftp.h, and display with the `status'
1528           command
1529
1530 Mon Oct 25 11:36:59 EST 1999    lukem
1531
1532         * merge ftp from NetBSD-current (19991025):
1533         - fix up confirm() (broke `a' and `p' in last commit)
1534         - simplify main loop (don't need `top' variable any more)
1535         - use a struct sockaddr_in6.sin6_addr for the result from inet_pton(),
1536           rather than u_char buf[16]
1537         - add a few more comments
1538
1539         new features:
1540         - add `usage'; displays the usage of a command.
1541           implemented by calling the c_handler() with argc = 0, argv =
1542           "funcname".
1543         - add `passive auto'; does the same as $FTPMODE=auto.
1544         - add `set [option value]'; display all options, or set an option to
1545           a value.
1546         - add `unset option'; unset an option.
1547         - add getoptionvalue() to retrieve an option's value, and replace a few
1548           global variables with calls to this.
1549         - implement cleanuppeer(), which resets various bits of state back to
1550           `disconnected'. call in disconnect() and lostpeer().
1551         - support completing on `options'.
1552         - improve recovery after a SIGINT may have closed the connection.
1553           XXX: there's still a couple to fix
1554
1555         other stuff:
1556         - various consistency fixes in the man page.
1557         - ensure that the command usage strings in the code and man page
1558           match reality.
1559         - mput/mget: check that the connection still exists before each xfer.
1560         - minor cosmetic changes in confirm().
1561         - set code correctly in sizecmd() and modtime()
1562         - don't need \n in err() strings.
1563         - change lostpeer to take an argument (rather than casting
1564           (sig_t)lostpeer in signal handlers)
1565         - knf and whitespace police.
1566
1567 Sun Oct 24 17:02:59 EST 1999    lukem
1568
1569         * merge libedit from NetBSD-current (19991024):
1570                 - don't assume locales are not working - it may not be
1571                   the case
1572                 - re_refresh(): cast the character passed to re_addc() to
1573                   unsigned char,  so we don't end up calling isprint() with
1574                   negative value when chars are signed and character value
1575                   is >= 128
1576                 - Fix pointer arithmatic (caused problems on LP64, including
1577                   ftp dumping core when `edit' was turned off then on).
1578                   Problem solved by David Huggins-Daines <dhd@eradicator.org>
1579
1580 Tue Oct 12 18:05:21 EST 1999    lukem
1581
1582         * install man page from ${srcdir} not from .
1583
1584 Tue Oct 12 17:00:41 EST 1999    lukem
1585
1586         * released 1.0b6
1587
1588         * merge from NetBSD-current (19991012):
1589           a few user interface and cosmetic tweaks:
1590                 - confirm(): move from util.c to cmds.c. display mnemonic
1591                   string in its prompt. add support for `q' (terminate
1592                   current xfer), `?' (show help list)
1593                 - in various signal handlers, output a linefeed only if
1594                   fromatty.
1595                 - if fgets(stdin) returned NULL (i.e, EOF), clearerr(stdin)
1596                   because you don't want future fgets to fail. this is not
1597                   done for the fgets() in the main command loop, since ftp
1598                   will quit at that point.
1599                 - unless ftp is invoked with -a, don't retain the anonftp
1600                   setting between hosts (`ftp somehost:' sets anonftp, but
1601                   you don't want that to `stick' if you close that connection
1602                   and open a new one).
1603
1604 Mon Oct 11 23:06:38 EST 1999    lukem
1605
1606         * check for working const
1607
1608         * reorganise addition of -lukem to LIBS (was being added twice)
1609
1610         * merge from netbsd-current:
1611                 - use sigjmp_buf instead of jmp_buf for sigsetjmp() buffer
1612
1613         * libedit: don't bother generating & compiling editline.c, since
1614           its component parts are compiled anyway.
1615
1616 Sun Oct 10 12:08:39 EST 1999    lukem
1617
1618         * released 1.0b5
1619
1620         * in libedit, use xsignal_restart() (from src/util.c) instead of
1621           signal(); the isn't guaranteed to work on some foreign systems
1622           (e.g, IRIX) if sigaction() is used in the same program.
1623
1624         * merge from netbsd-current:
1625                 - use sigsetjmp()/siglongjump() instead of setjmp()/longjmp();
1626                   the latter don't save the signal mask on some foreign systems.
1627                 - ensure signal handlers don't use stdio and do reset errno
1628                   if they don't exit with siglongjmp()
1629                 - use a common SIGINT handler for {send,recv}request()
1630                 - allow a second SIGINT during the "xfer aborted. waiting for
1631                   remote to finish abort." stage. if this occurs, just call
1632                   lostpeer() to close the connection.  whilst this might be
1633                   considered brutal, it's also extremely handy if you're
1634                   impatient or there's lossage at the remote end.
1635
1636         * add preformatted manual page
1637
1638         * fix --enable-editline
1639
1640 Wed Oct  6 10:19:00 EST 1999    lukem
1641
1642         * released 1.0b4
1643
1644         * don't defining SIGINFO to SIGQUIT if the former doesn't exist; the
1645           code now supports both as a method of getting the transfer stats
1646
1647         * rototill signal handling in the actual data xfer routines, and
1648           specifically set SIGQUIT to psummary in each one, to override
1649           editline's handler
1650
1651 Tue Oct  5 23:48:29 EST 1999    lukem
1652
1653         * factor out SIGINFO setting into a handler that is always active
1654           (but only prints out info if bytes > 0). only set the handler if
1655           SIGINFO is defined
1656
1657         * hijack SIGQUIT to be the same as SIGINFO
1658
1659         * in {recv,send}request(), factor a lot of duplicated code out into
1660           a `cleanup' section at the end
1661
1662         * rework shell() a bit
1663
1664         * enhancments from Marc Horowitz <marc@mit.edu> to improve
1665           connection timeouts:
1666                 - implement xsignal_restart(), which only sets the SA_RESTART
1667                   flag if specifically requested
1668                 - xsignal() is now a wrapper to xsignal_restart(). INFO,
1669                   USR1, USR2 and WINCH are restartable, ALRM, INT, PIPE and
1670                   QUIT are not
1671                 - improve getreply()'s timeout code to take advantage of the
1672                   above
1673
1674         * improve wording of how globbing works for `classic' URLs (host:path)
1675           suggested by John Refling <johnr@imageworks.com> in relation to PRs
1676           [bin/8519] and [bin/8520]
1677
1678         * always compile in the `edit' command even if NO_EDITCOMPLETE defined
1679           it's just a no-op in the latter case, which is more consistent to
1680           the users
1681
1682         * always compile in about: support (i.e, remove NO_ABOUT).  i'm
1683           entitled to some vanity in this program...
1684
1685         * update copyrights
1686
1687 Mon Oct  4 10:57:41 EST 1999    lukem
1688
1689         * Invoke ar with `cr' not `cq'
1690
1691         * Use AC_PROG_RANLIB to find ranlib, and use it on the libraries
1692
1693         * Remove `makelist' from dependency list for libedit files; re-running
1694           configure shouldn't result in rebuilding libedit
1695
1696         * Add support for --{en,dis}able-editcomplete (defaults to enabled),
1697           which prevents libedit support from being compiled in.
1698           From Chris G. Demetriou <cgd@NetBSD.org>
1699
1700 Sun Oct  3 16:49:01 EST 1999    lukem
1701
1702         * touch up the README
1703
1704         * add COPYING, INSTALL, THANKS
1705
1706         * whitespace consistency
1707
1708         * in config.h, replace NO_QUAD with HAVE_QUAD_SUPPORT, and in
1709           lukemftp.h define the former if the latter is non zero
1710
1711         * change test against GETPGRP_VOID from #ifdef to #if
1712
1713         * snprintf(): in the truncation case, ensure that the length
1714           returned is the actual length, not the needed length
1715
1716 Sat Oct  2 00:41:34 EST 1999    lukem
1717
1718         * fix more lossage with $(srcdir) / $(VPATH) stuff; seems to work now
1719           when configured in a separate directory
1720
1721         * actually test the correct variable when determining whether to run
1722           AC_FUNC_GETPGRP
1723
1724 Fri Oct  1 19:32:22 EST 1999    lukem
1725
1726         * released 1.0b3
1727
1728         * use AC_PROG_MAKE_SET
1729
1730         * determine setting of NO_QUAD with configure not lukemftp.h
1731
1732         * if have long long and have snprintf, test that snprintf
1733           supports %lld. if it doesn't use private version
1734
1735         * change strtoq from returning off_t to returning long long
1736
1737         * updates from NetBSD mainline:
1738                 - only try epsv once per connection (i.e, don't bother again
1739                   if it fails)
1740                 - improve description of rate command
1741                 - fix up global vars; they're now externed in ftp_var.h
1742                   except when main.c includes it
1743                 - remove "pathnames.h"
1744
1745 Fri Oct  1 10:08:43 EST 1999    lukem
1746
1747         * updates from NetBSD mainline:
1748                 - fix determining of homedir
1749                 - parse_url(): fix checking of portnum
1750                 - move kame copyrights after bsd/tnfi ones
1751
1752         * released 1.0b2
1753
1754         * add %lld and %qd support to snprintf() for displaying long long's
1755
1756         * support VPATH and srcdir
1757
1758 Thu Sep 30 17:19:35 EST 1999    lukem
1759
1760         * released 1.0b1
1761
1762         * fix from NetBSD mainline: in empty() FD_ZERO the correct variable
1763
1764 Wed Sep 29 23:34:33 EST 1999    lukem
1765
1766         * major rework; reimport code from NetBSD-current 1999/09/29 into
1767           separate subdirectories and build from there. organisation is now:
1768                 libedit         replacement libedit
1769                 libukem         replacements for missing functions
1770                 src             main ftp source
1771
1772 Mon Sep 27 00:43:12 EST 1999    lukem
1773
1774         * released 1.0 a6
1775
1776 Sun Sep 26 17:17:05 EST 1999    lukem
1777
1778         * released 1.0 a5
1779
1780 Sat Sep 25 00:58:28 EST 1999    lukem
1781
1782         * released 1.0 a4
1783
1784 Fri Sep 24 17:07:07 EST 1999    lukem
1785
1786         * released 1.0 a3
1787
1788 Fri Sep 24 16:18:29 EST 1999    lukem
1789
1790         * released 1.0 a2
1791
1792 Tue Sep 21 11:38:49 EST 1999    lukem
1793
1794         * import usr.src/bin/ftp and usr.src/lib/libedit sources from NetBSD