]> sjero.net Git - wget/blob - src/ChangeLog
http_atotm copies the NUL character of the locale string.
[wget] / src / ChangeLog
1 2010-05-23  Giuseppe Scrivano  <gscrivano@gnu.org>
2
3         * http.c (http_atotm): Count the NUL character when copying the locale
4         string.
5         Reported by: Florian Weimer <fw@deneb.enyo.de>
6
7 2010-05-16  Giuseppe Scrivano  <gscrivano@gnu.org>
8
9         * Makefile.am (LDADD): Remove MD5_LDADD.
10         (MD5_LDADD): Remove definition.
11         (AM_CPPFLAGS): Remove MD5_CPPFLAGS.
12         (version.c): Remove dependency from MD5_LDADD.
13         (../md5/libmd5.a): Remove rule.
14
15         * ftp-opie.c: Include "md5.h".  Do not include "gen-md5.h".
16         (skey_response): New variable ctx.  Use md5 functions from the gnulib
17         module instead of functions defined previously in the "gen-md5.h" file.
18
19         * gen-md5.h: Remove file.
20         * gen-md5.c: Likewise.
21
22         * http.c: Include "md5.h".  Do not include "gen-md5.h".
23         (digest_authentication_encode): New variable ctx.  Use md5 functions
24         from the gnulib module instead of functions defined previously in the
25         "gen-md5.h" file.
26
27 2010-05-15  Giuseppe Scrivano  <gscrivano@gnu.org>
28
29         * Makefile.am: Quote any path using $(top_srcdir) or $(top_builddir).
30         (version.c): Remove dependency from configure.ac and Makefile.am.
31
32         * css.l: Include "wget.h".
33
34 2010-05-08  Giuseppe Scrivano  <gscrivano@gnu.org>
35
36         * Makefile.am: Update copyright years.
37
38         * cmpt.c: Likewise.
39
40         * connect.h: Likewise.
41
42         * convert.c: Likewise.
43
44         * convert.h: Likewise.
45
46         * cookies.c: Likewise.
47
48         * cookies.h: Likewise.
49
50         * css-tokens.h: Likewise.
51
52         * css-url.c: Likewise.
53
54         * css-url.h: Likewise.
55
56         * css.l: Likewise.
57
58         * exits.c: Likewise.
59
60         * exits.h: Likewise.
61
62         * ftp-basic.c: Likewise.
63
64         * ftp-ls.c: Likewise.
65
66         * ftp-opie.c: Likewise.
67
68         * ftp.c: Likewise.
69
70         * ftp.h: Likewise.
71
72         * gen-md5.c: Likewise.
73
74         * gen-md5.h: Likewise.
75
76         * gettext.h: Likewise.
77
78         * gnutls.c: Likewise.
79
80         * hash.c: Likewise.
81
82         * hash.h: Likewise.
83
84         * host.c: Likewise.
85
86         * host.h: Likewise.
87         * html-parse.c: Likewise.
88
89         * html-parse.h: Likewise.
90
91         * html-url.c: Likewise.
92
93         * html-url.h: Likewise.
94
95         * http-ntlm.c: Likewise.
96
97         * http-ntlm.h: Likewise.
98
99         * http.c: Likewise.
100
101         * http.h: Likewise.
102
103         * init.c: Likewise.
104
105         * init.h: Likewise.
106
107         * iri.c: Likewise.
108
109         * iri.h: Likewise.
110
111         * log.c: Likewise.
112
113         * log.h: Likewise.
114
115         * main.c: Likewise.
116
117         * mswindows.c: Likewise.
118
119         * mswindows.h: Likewise.
120
121         * netrc.c: Likewise.
122
123         * netrc.h: Likewise.
124
125         * openssl.c: Likewise.
126
127         * options.h: Likewise.
128         * progress.c: Likewise.
129
130         * progress.h: Likewise.
131
132         * ptimer.c: Likewise.
133
134         * ptimer.h: Likewise.
135
136         * recur.c: Likewise.
137
138         * recur.h: Likewise.
139
140         * res.c: Likewise.
141
142         * res.h: Likewise.
143
144         * retr.c: Likewise.
145
146         * retr.h: Likewise.
147
148         * spider.c: Likewise.
149
150         * spider.h: Likewise.
151
152         * ssl.h: Likewise.
153
154         * sysdep.h: Likewise.
155
156         * test.c: Likewise.
157
158         * test.h: Likewise.
159
160         * url.c: Likewise.
161
162         * url.h: Likewise.
163
164         * utils.c: Likewise.
165
166         * utils.h: Likewise.
167
168         * wget.h: Likewise.
169
170 2010-05-07  Giuseppe Scrivano  <gscrivano@gnu.org>
171
172         * gnutls.c (wgnutls_close): Use always `close', not `closesocket'.
173
174         * openssl.c (openssl_close): Use always `close', not `closesocket'.
175         (ssl_connect_wget): Get the real socket handle by FD_TO_SOCKET.
176         Define FD_TO_SOCKET if it is not yet defined.
177
178         * Makefile.am (libunittest_a_CPPFLAGS): Add -I$(top_builddir)/lib.
179
180         * mswindows.h: Always include <winsock2.h> and <ws2tcpip.h>.  Do not
181         include <winsock.h>.
182         [! INHIBIT_WRAP]: Remove macro's socket, bind, connect, accept, recv,
183         send, select, getsockname, getpeername, setsockopt, closesocket.
184         Remove wrapped_socket, wrapped_bind, wrapped_connect, wrapped_listen,
185         wrapped_accept, wrapped_recv, wrapped_send, wrapped_select,
186         wrapped_getsockname, wrapped_getpeername, wrapped_setsockopt,
187         wrapped_closesocket prototypes.
188
189         * mswindows.c:  Remove wrapped_socket, wrapped_bind, wrapped_connect,
190         wrapped_listen, wrapped_accept, wrapped_recv, wrapped_send,
191         wrapped_select, wrapped_getsockname, wrapped_getpeername,
192         wrapped_setsockopt, wrapped_closesocket functions.  Remove WRAP macro.
193
194         * host.h [WINDOWS]: Include <winsock2.h> not <winsock.h>.
195
196         * connect.c: Include <sys/socket.h> and <sys/select.h> on any platform,
197         gnulib ensures they exist.  Remove `read', `write', `close' macros.
198
199         * Makefile.am: Copy build_info.c.in only if we are working in a VPATH.
200         (AM_CPPFLAGS): Add directory with generated gnulib files.
201
202 2010-05-06  Giuseppe Scrivano  <gscrivano@gnu.org>
203
204         * Makefile.am (build_info.c): Generate build_info.c in the builddir,
205         not srcdir.
206
207 2010-05-05  Giuseppe Scrivano  <gscrivano@gnu.org>
208
209         * http.c (gethttp): Give a nicer message on a malformed status line.
210
211 2010-05-04  Giuseppe Scrivano  <gscrivano@gnu.org>
212
213         * http.c (gethttp): Check `resp_status' return code and handle
214         errors.
215
216 2010-05-01  Giuseppe Scrivano <gscrivano@gnu.org>
217
218         * http.c (request_send): Specify 1.1 as HTTP version for requests.
219         (skip_short_body): Accept new parameter `chunked'.  New variable
220         `remaining_chunk_size'.  Handle the chunked transfer encoding.
221         (gethttp): New variable `chunked_transfer_encoding`.  Set `keepalive'
222         by default to true.  Check if the server is using the chunked transfer
223         encoding.
224
225         * retr.h: Define `rb_chunked_transfer_encoding'.
226
227         * retr.c (fd_read_body): New variable `chunked'.  New variable
228         `remaining_chunk_size'.  Handle the chunked transfer encoding.
229
230 2010-03-04  Steven Schubiger  <stsc@member.fsf.org>
231
232         * ftp.c (ftp_loop_internal): Omit input file from being
233         deleted after retrieval.
234
235         * retr.c (input_file_url): New function.
236
237         * retr.h: Add declaration for input_file_url.
238
239 2010-03-02  Steven Schubiger  <stsc@member.fsf.org>
240
241         * retr.c (retrieve_from_file): Improve checking for a URL
242         by invoking url_valid_scheme instead of url_has_scheme.
243
244         * url.c (url_valid_scheme): New function.
245
246         * url.h: Add declaration for url_valid_scheme.
247
248 2010-03-02  Steven Schubiger  <stsc@member.fsf.org>
249
250         * retr.c (retrieve_from_file): Free memory of input file.
251
252 2010-03-01  Steven Schubiger  <stsc@member.fsf.org>
253
254         * retr.c (retrieve_url): Retrieve the local filename from ftp_loop.
255         (retrieve_from_file): Return if there's no input file.
256
257         * ftp.c (ftp_loop_internal): Duplicate the local filename into
258         retrieve_url's scope when a valid reference is being passed.
259         (ftp_loop): Call ftp_loop_internal here with passing a
260         reference to the local filename, elsewhere with NULL.
261
262         * ftp.h: Adjust declaration of ftp_loop.
263
264 2010-01-27  Paul Townsend  <aab@purdue.edu>  (tiny change)
265
266         * retr.c (fd_read_body): Be sure to measure timer when time has
267         elapsed, too, not just when we've made progress.
268
269 2010-01-13  Micah Cowan  <micah@cowan.name>
270
271         * openssl.c: Fixed some mixed declarations-and-code.
272
273 2010-01-09  Micah Cowan  <micah@cowan.name>
274
275         * init.c, main.c, http.c, ftp.c, options.h: Renamed
276         --no-match-server-timestamps to --no-use-server-timestamps, and
277         add it to print_help.
278
279 2010-01-09  David Holman  <holman.david@gmail.com>  (tiny change)
280
281         * init.c, main.c, http.c, ftp.c, options.h: Added support for
282         --no-match-server-timestamps.
283
284 2009-12-03  Peter Rosin  <peda@lysator.liu.se>
285
286         * snprintf.c (dopr): Output %p as unsigned.
287
288 2010-01-09  Jeremy Olexa  <darkside@gentoo.org>  (tiny change)
289
290         * init.c: Deal with systems which provide PATH_MAX in
291         sys/param.h rather than limits.h.
292
293 2009-10-09  Steven Schweda  <sms@antinode.info>
294
295         * utils.c: Added characters " : \ | to the list of normal
296         caret-escaped (ODS5) characters in the char_prop[] table.
297
298 2009-09-22  Arvind Jamuna Dixit  <ardsrk@gmail.com>
299
300         * http.c (extract_param, parse_content_disposition): Support
301         RFC 2231 while parsing Content-Disposition header
302
303 2009-10-24  Petr Pisar  <petr.pisar@atlas.cz>
304
305         * openssl.c: Implement support for (multiple) subjectAltNames in
306         X509 certificates, not just the commonName.
307
308 2009-10-09  Micah Cowan  <micah@cowan.name>
309
310         * main.c: Fix declaration of compiled_features.
311
312         * build_info.c.in: Adapt to new input format. Added a check for
313         large-file support. Replaced the "openssl" and "gnutls"
314         advertisements with a single "ssl/foo" advertisement.
315
316 2009-09-30  Micah Cowan  <micah@cowan.name>
317
318         * sysdep.h: Unconditionally include stdbool.h (gnulib has it for
319         systems that don't supply it.)
320
321         * vms.c: Added functions vms_basename(), used to extract the
322         bare executable name from argv[0], and vms_getpass(), a
323         VMS-specific replacement for GNU getpass().
324
325          vms.c: Added global string constants: compilation_string
326         (NULL), link_string (NULL), and version_string (real).
327
328 2009-09-24  Micah Cowan  <micah@cowan.name>
329
330         * vms.c: Moved from vms/vms.c.
331
332         * sysdep.h: Use proper prototypes for snprintf, vsnprintf (thanks
333         to Steven Schweda).
334
335 2009-09-24  Steven Schweda  <sms@antinode.info>
336
337         * main.c (print_version): Remove VMS-conditional build info
338         string; the new VMS builders use OS_TYPE.
339
340         * ftp.c (getftp): Fix accidental use of target -> targ.
341
342 2009-09-24  Micah Cowan  <micah@cowan.name>
343
344         * host.c (host_errstr): host_errstr should return const char *.
345
346 2009-09-22  Micah Cowan  <micah@cowan.name>
347
348         * Makefile.am (version.c): Explicitly tell Mercurial where the
349         top-source repository should be, so it doesn't accidentally use
350         the repository for a containing directory (for instance, if the
351         user's home directory is managed by a Mercurial repo). Also
352         ensures we find the repository, even if the build directory is
353         outside the source directory.
354
355         * wget.h: define WINDOWS if _WIN32 or __WIN32__ is defined, but
356         not __CYGWIN__.
357
358         * mswindows.c (xsleep): Check for availability of the sleep
359         function, in addition to the usleep function.
360         (get_winsock_error, windows_strerror): Removed (gnulib already
361         supplies this functionality).
362
363         * mswindows.h [NEED_GAI_STRERROR]: define gai_strerror
364         to (gnulib's) strerror, rather than windows_strerror. Removed
365         error macro definitions provided by gnulib.
366         (windows_strerror): Removed (gnulib already supplies this
367         functionality).
368
369         * host.c: Don't declare h_errno when building on Windows.
370
371         * Makefile.am (LIBS): Added @W32LIBS@.
372         (EXTRA_wget_SOURCES): Removed (it's in LIBOBJ now).
373         (version.c): Removed dependency on $(LDADD), since it may include
374         dependencies that are not part of the Wget sources (-lwsock32, for
375         instance).
376
377         * openssl.c (ssl_check_certificate): Avoid reusing the same buffer
378         space for successive quoted arguments. Thanks to Steven Schweda
379         for pointing out the problem.
380
381 2009-09-21  Micah Cowan  <micah@cowan.name>
382
383         * progress.c (update_speed_ring): "the the" -> "the".
384
385         * css-url.c, iri.c, mswindows.c: Removed assert.h inclusion (not
386         using it).
387
388 2009-09-11  Steven Schweda  <sms@antinode.info>
389
390         * utils.c, utils.h (fopen_excl): Make second argument an int,
391         rather than a bool (so it can handle the appropriate VMS version
392         of the flag).
393
394         * main.c (print_version): Don't print LOCALEDIR unless NLS is
395         enabled.
396
397         * http.c (gethttp): Pass FOPEN_BIN_FLAG, instead of true.
398
399         * ftp.c (ftp_retrieve_glob): Cast strcmp to assign to cmp, for a
400         silly HP build environment.
401
402 2009-09-08  Steven Schubiger  <stsc@member.fsf.org>
403
404         * main.c, init.c: Mark the --preserve-permissions and
405         --html-extension option as deprecated.
406
407 2009-09-06  Micah Cowan  <micah@cowan.name>
408
409         * ftp.c (getftp, ftp_loop_internal): Separate "len" input/output
410         parameter (with different meanings for input and output), into two
411         separate parameters, one input (passed_expected_bytes) and one
412         output (qtyread). Fixes bug #26870.
413
414 2009-09-05  Steven Schubiger  <stsc@member.fsf.org>
415
416         * retr.h: Declare set_local_file() to avoid build warnings.
417
418 2009-09-05  Gisle Vanem  <gvanem@broadpark.no>
419
420         * connect.c, init.c, main.c, openssl.c, options.h:  Replace
421         "ifdef MSDOS" with "ifdef USE_WATT32" since DOS-targets in fact
422         use the Watt-32 tcp/ip stack.
423
424 2009-09-04  Micah Cowan  <micah@cowan.name>
425
426         * Makefile.am: Move build_info.c to wget_SOURCES from
427         nodist_wget_SOURCES, reduce dependencies, and invoke build_info.pl
428         in its new home, $(top_srcdir)/build-aux.
429
430 2009-09-03  Micah Cowan  <micah@cowan.name>
431
432         * ftp-ls.c (ftp_parse_vms_ls): Replace use of localtime_r with
433         localtime, as not all platforms have localtime_r.
434
435         * Makefile.am (wget_SOURCES): Rearranged some of the file order,
436         so .c files and .h files are apart. Added gettext.h, so that it
437         shows up in the dist.
438
439 2009-09-02  Micah Cowan  <micah@cowan.name>
440
441         * gettext.h: Refreshed from gettext 0.17.
442
443         * test.c: Added definition of program_name variable, required by
444         lib/error.c (libgnu.a). Doesn't cause problems until you try to
445         build on a non-GNU system...
446
447         * build_info.c.in: Removed useless "+gettext" feature ad.
448
449 2009-08-29  Steven Schubiger  <stsc@member.fsf.org>
450
451         * convert.c (local_quote_string): Percent-encode semicolons
452         in local file strings.
453
454 2009-08-27  Micah Cowan  <micah@cowan.name>
455
456         * wget.h (uerr_t): added new VERIFCERTERR code for SSL certificate
457         problems. Marked exit codes that are defined but never used (at
458         least, the ones I could find).
459
460         * retr.c, retr.h (retrieve_url): Added a new boolean argument to
461         determine whether an exit status should be recorded.
462         (retrieve_from_file): Adjust to new retrieve_url signature.
463
464         * res.c (res_retrieve_file): Don't have retrieve_url record an
465         exit status for robots.txt.
466
467         * recur.c (retrieve_tree): Adjust to new retrieve_url signature.
468
469         * main.c (main): Use the exit status stored by retrieve_url.
470
471         * http.c (gethttp): Distinguish certificate verification problems
472         from SSL connection issues.
473         (http_loop): Handle newly-created VERIFCERTERR error code.
474
475         * exits.c, exits.h: Newly added.
476
477         * Makefile.am (wget_SOURCES): Add exits.c and exits.h.
478
479 2009-08-27  Micah Cowan  <micah@cowan.name>
480
481         * http.c (gethttp): Make sure Wget heeds cookies when they
482         are sent with a 401 response; or any other sort of response for
483         that matter (#26775).
484
485 2009-08-19  Micah Cowan  <micah@cowan.name>
486
487         * openssl.c (ssl_check_certificate): Only warn about an attack if
488         the hostname would otherwise have matched. Also some formatting
489         cleanup.
490
491 2009-08-19  Joao Ferreira  <joao@joaoff.com>
492
493         * openssl.c (ssl_check_certificate): Detect embedded NUL
494         characters in the SSL certificate common name.
495
496 2009-08-17  Tony Lewis  <tlewis@exelana.com>
497
498         * http.c (gethttp): Ensure that we parse Content-Length before we
499         attempt to refer to its value. Without this fix, NTLM support was
500         completely buggered. #27192
501
502 2009-08-09  Michael Baeuerle  <michael.baeuerle@gmx.net>
503
504         * ftp.c: #include <strings.h> for strcasecmp.
505
506 2009-07-28  Micah Cowan  <micah@cowan.name>
507
508         * main.c (option_data): Rename --html-extension to
509         --adjust-extension.
510         (print_help): Ditto.
511
512         * options.h (struct option): Rename html_extension to
513         adjust_extension.
514         * http.c (gethttp): Ditto.
515         * convert.c (local_quote_string): Ditto.
516
517         * init.c (commands): Add "adjustextension", and reflect rename
518         change for opt.adjust_extension, for both "adjustextension" and
519         "htmlextension".
520
521 2009-07-27  Micah Cowan  <micah@cowan.name>
522
523         * options.h (struct options): Added restrict_files_nonascii
524         boolean field.
525
526         * url.c (FILE_CHAR_TEST): Add check for chars outside the ASCII
527         range.
528
529         * init.c (defaults): Add restrict_files_nonascii to initialization.
530         (cmd_spec_restrict_file_names): Allow parsing of "ascii" keyword.
531
532 2009-07-27  Marcel Telka  <marcel@telka.sk>
533
534         * iri.c (do_conversion): Typo: invalide -> invalid
535
536 2009-07-27  Petr Pisar  <petr.pisar@atlas.cz>
537
538         * main.c (print_help): Fixed a couple typos.
539
540 2009-07-26  Micah Cowan  <micah@cowan.name>
541
542         * main.c (option_data): Rename --locale option to --local-encoding
543         (print_help): Document --no-iri, --local-encoding, and
544         --remote-encoding, within usage message. Remove defunct
545         --preserve-permissions.
546
547 2009-07-23  Micah Cowan  <micah@cowan.name>
548
549         * progress.c (get_eta): Change "Translation note" in comment to
550         "TRANSLATORS", so it actually appears in wget.pot.
551
552 2009-07-06  Micah Cowan  <micah@cowan.name>
553
554         * main.c (print_help): Improve documentation of --base.
555
556 2009-07-05  Micah Cowan  <micah@cowan.name>
557
558         * html-url.c (tag_handle_meta): Handle meta name="robots"
559         properly: deal with whitespace, commas after...
560
561         * netrc.c (parse_netrc): Rename local-scope variable "quote" to
562         "qmark", to avoid conflict with the function name.
563
564 2009-07-05  Petr Pisar  <petr.pisar@atlas.cz>
565
566         * main.c (print_version): Mark initial line for translation, along
567         with (env), (user), and (system). Change copyright year to 2009.
568
569         * http.c (http_loop): Space after colon.
570
571         * gnutls.c (ssl_check_certificate): Use quote function, rather
572         than explicit quotes.
573
574 2009-07-05  Micah Cowan  <micah@cowan.name>
575
576         * Makefile.am (version.c): Add dependency on configure.ac.
577
578         * iri.c: Mark some strings for translation.
579
580 2009-07-04  Steven Schweda  <sms@antinode.info>
581
582         * wget.h (ORIG_SFX): Macro added, to supply an alternative "_orig"
583         suffix on VMS.
584
585         * connect.c, host.c, host.h, main.c: Include "vms_ip.h" rather
586         than <netdb.h> on VMS systems.
587
588         * convert.c (write_backup_file): Use "_orig" rather than ".orig"
589         on VMS.
590
591         * ftp-basic.c (ftp_list): Don't use LIST -a on VMS servers.
592
593         * ftp.c [__VMS]: Include "vms.h"
594         * ftp.c (getftp): Disable some unhelpful "for VMS" code. Pass the
595         OS type to ftp_list.
596         (getftp) [__VMS]: Alter the filename as required, and invoke fopen
597         with extra optional arguments.
598         (ftp_retrieve_list): Set permissions before setting the times.
599
600         * ftp-ls.c [__VMS]: Various improvements.
601
602         * http.c (SET_USER_AGENT): Added. Include operating-system info in
603         the User-Agent header.
604         (gethttp): Use ORIG_SFX macro.
605         (gethttp) [__VMS]: invoke fopen with extra arguments to
606         communicate file type.
607         (http_loop): Add cast to time_t.
608
609         * init.c (wgetrc_user_file_name) [__VMS]: Adjustments for where to
610         find the .wgetrc.
611
612         * log.c: Adjustments to improve handling of log files on VMS.
613
614         * main.c [__VMS]: Added --ftp-stmlf option (and associated
615         documentation). Adjust description of backup-suffixes, as they now
616         differ for VMS.
617         (print_help, print_version): Include OS type in version
618         information.
619         (main) [__VMS]: Invoke fopen with extra options, to specify file
620         type information.
621
622         * netrc.c (search_netrc) [__VMS]: Fix .netrc-finding.
623
624         * openssl.c, openssl.h (ssl_connect_wget): Renamed from ssl_connect.
625
626         * options.h (struct options): Add ftp_stmlf field.
627
628         * retr.c (write_data) [__VMS]: Avoid fflush.
629
630         * url.c [__VMS]: Include vms.h.
631         * url.c (url_file_name) [__VMS]: Handle naming as required for VMS.
632
633         * utils.c [__VMS]: Include vms.h. Various added facilities for VMS
634         needs.
635
636 2009-07-04  Micah Cowan  <micah@cowan.name>
637
638         * main.c (print_version): Allow localization of the version-info
639         labels, eschew attempts at alignment (which is complicated when
640         handling translated strings), and avoid using printf() with
641         variable-stored format strings that lack conversion
642         specifications.
643         (format_and_print_line): For similar reasons, don't calculate
644         line-continuation tabulation based on the number of bytes in a
645         string.
646
647 2009-07-04  Steven Schubiger  <stsc@member.fsf.org>
648
649         * url.c (url_parse): If an URL scheme is invalid, distinguish
650         between an unsupported or missing scheme.
651
652         * url.c: Add a "missing scheme" entry to parse_errors.
653
654 2009-07-03  Micah Cowan  <micah@cowan.name>
655
656         * iri.h (iri_dup): Provide macro definition for when IRIs are
657         disabled.
658
659         * Makefile.am (LIBS): Added @LIBICONV@.
660         (wget_SOURCES): Added iri.h.
661         (EXTRA_wget_SOURCES): Added iri.c, so it gets packaged even if IRI
662         support was disabled.
663
664 2009-07-02  Micah Cowan  <micah@cowan.name>
665
666         * recur.c (url_enqueue): Quote enqueue/dequeue debug messages.
667
668         * html-url.c (append_url): Change "merge()" quoting style from
669         locale_quoting_style to escape_quoting_style.
670
671 2009-07-01  Micah Cowan  <micah@cowan.name>
672
673         * retr.c (retrieve_url): Use the existing "redirect" label,
674         instead of superfluous "second_try". Removed no-longer-accurate
675         debug statement. Use the "newloc" parameter to store the fallback
676         URL, when IRI version was rejected.
677
678         * recur.c (retrieve_tree): Always use the parsed URL for tracking
679         the Referer, since that's the one we actually requested (if
680         there's a difference in terms of percent-encodings and such).
681
682 2009-07-01  Steven Schubiger  <stsc@member.fsf.org>
683
684         * Makefile.am: Add a rule to generate build_info.c and list
685         the build_info.c.in file in EXTRA_DIST. Adjust elsewhere
686         where needed.
687
688         * build_info.c: Remove this static source file.
689
690         * build_info.c.in: Data for generation of build_info.c.
691
692 2009-06-29  Micah Cowan  <micah@cowan.name>
693
694         * html-url.c (append_url): Quote some more arguments that might
695         contain characters that are inappropriate to display for the
696         current locale.
697
698         * retr.c (retrieve_from_file): Be sure to pass iri information
699         when parsing an input-fle url, and be sure to hand a clean iri
700         struct, off to retrieve_tree and retrieve_url.
701
702         * iri.c, iri.h (iri_dup): Added.
703
704         * retr.c (retrieve_url): Re-parse for IRI fallback.
705
706         * main.c (main): Set up iri before the url_parse invocation (so we
707         can use it).
708
709 2009-06-20  Jay Krell  <jay.krell@cornell.edu>
710
711         * sysdep.h (_ALL_SOURCE): (small change) Define the _ALL_SOURCE
712         macro on INTERIX systems. (I switched the location from ftp.c to
713         sysdep.h --mjc)
714
715 2009-06-15  Micah Cowan  <micah@cowan.name>
716
717         * ftp.c (getftp): If we can't accept the connection, return
718         CONERROR, not whatever the contents of err happens to be. Fixes
719         bug #25015.
720
721         * retr.c (fd_read_body): Make both args to progress_create
722         consistent, resulting in an accurate progress display. Fixes bug
723         #24948.
724
725 2009-06-14  Micah Cowan  <micah@cowan.name>
726
727         * Makefile.am (wget_SOURCES): css-tokens.h needs to ship with
728         dist, too.
729
730 2009-06-13  Micah Cowan  <micah@cowan.name>
731
732         * init.c: Rename setval_internal_wrapper to setval_internal_tilde,
733         ensure we don't "replace" the tilde unless it's actually
734         present. Clean up some minor GNU style issues.
735
736 2009-06-13  Julien Pichon  <julienpichon7@gmail.com>
737
738         * init.c: Handle tilde-expansion in wgetrc commands, without
739         resorting to setting/unsetting globals to change behavior in one
740         call location.
741
742 2009-06-12  Micah Cowan  <micah@cowan.name>
743
744         * host.c: Include <sys/types.h> before <sys/socket.h>. Not
745         required by POSIX any more, but some older systems (such as
746         FreeBSD 4.1) still need it, and it doesn't seem like it could
747         hurt...
748
749         * build_info.c (library): Handle "https" as a feature in its own
750         right, apart from "gnutls" and "openssl".
751
752         * host.c: Declare h_errno if no declaration is provided. Idea
753         thanks to Maciej W. Rozycki.
754
755 2009-06-11  Xin Zou  <zouxin2008@gmail.com>
756
757         * http.c (gethttp): Fix some memory leaks.
758
759 2009-06-11  Micah Cowan  <micah@cowan.name>
760
761         * http.c (http_atotm): Handle potential for setlocale's return
762         value to be static storage. Thanks to Benjamin Wolsey
763         <bwy@benjaminwolsey.de>.
764
765         * sysdep.h: Need NAMESPACE_TWEAKS on non-Linux glibc-based
766         systems, too. Thanks to Robert Millan.
767
768 2009-05-28  Steven Schubiger  <stsc@member.fsf.org>
769
770         * ftp.c (ftp_get_listing): Update the "listing file"
771         string after calling ftp_loop_internal().
772
773 2009-05-27  Steven Schubiger  <stsc@member.fsf.org>
774
775         * ftp.c (ftp_get_listing): Duplicate the "listing file"
776         string to avoid memory corruption when FOPEN_EXCL_ERR is
777         encountered.
778
779 2009-05-17  Steven Schubiger  <stsc@member.fsf.org>
780
781         * progress.c (eta_to_human_short): Fix the remaining hours
782         to be displayed. Spotted by Tadeu Martins (#26411).
783
784 2009-04-24  Micah Cowan  <micah@cowan.name>
785
786         * hash.c: Change stdint.h inclusion to use HAVE_STDINT_H, not C99
787         check.
788
789         * connect.c: stdint.h inclusion added.
790
791         Thanks to Markus Duft <mduft@gentoo.org> for a similar patch.
792
793 2009-04-20  Micah Cowan  <micah@cowan.name>
794
795         * Makefile.am (version.c): Fix unportable use of "echo -n".
796
797 2009-04-13  Steven Schubiger  <stsc@member.fsf.org>
798
799         * ftp.c (ftp_retrieve_list): Move the duplicated code that
800         determines the local file to a function.
801
802         * http.c (http_loop): Likewise.
803
804         * retr.c (set_local_file): New function.
805
806 2009-04-11  Steven Schubiger  <stsc@member.fsf.org>
807
808         * init.c (initialize): Run a custom SYSTEM_WGETRC when
809         provided as an environment variable.
810
811 2009-02-27  Gisle Vanem  <gvanem@broadpark.no>
812
813         * main.c (main): "freopen (NULL,.." causes an assertion in MSVC
814         debug-mode.  I.e. NULL isn't legal. But the "CONOUT$" device works
815         fine.
816
817 2009-02-27  Steven Schubiger  <stsc@member.fsf.org>
818
819         * ftp.c (ftp_loop_internal): Don't claim for FTP retrievals
820         when writing to standard output either that the document
821         has been saved. Addresses bug #20520 again.
822
823 2009-02-21  Steven Schubiger  <stsc@member.fsf.org>
824
825         * http.c (http_loop): When a document is written to
826         standard output, don't claim it has been saved to a file.
827         Addresses bug #20520.
828
829 2009-02-18  Steven Schubiger  <stsc@members.fsf.org>
830
831         * recur.h: Remove the dangling declaration for recursive_cleanup().
832
833 2009-02-01  Gerardo E. Gidoni  <gerel@gnu.org>
834
835         * main.c, recur.c, recur.h, res.c, retr.c, retr.h: restructured code to
836         avoid multiple 'url_parse' calls.
837
838 2008-11-13  Micah Cowan  <micah@cowan.name>
839
840         * http.c (gethttp): Don't do anything when content-length >= our
841         requested range.
842
843 2008-11-27  Saint Xavier  <wget@sxav.eu>
844
845         * http.c (gethttp): Move authentication code before filename
846         allocation avoiding fallbacking on default filename because
847         "Content-Disposition" header wasn't present before authentcation
848         has been completed. Fixes bug #24862.
849
850 2008-11-16  Steven Schubiger  <stsc@members.fsf.org>
851
852         * main.c: Declare and initialize the numurls counter.
853
854         * ftp.c, http.c: Make the counter visible here and use it.
855
856         * options.h: Remove old declaration from options struct.
857
858 2008-11-15  Steven Schubiger  <stsc@members.fsf.org>
859
860         * init.c (defaults): Set default waitretry value.
861
862 2008-11-14  Steven Schubiger  <stsc@members.fsf.org>
863
864         * main.c (format_and_print_line): Use a custom format
865         string for printing leading spaces.
866
867 2008-11-12  Micah Cowan  <micah@cowan.name>
868
869         * ftp-ls.c (ftp_index): HTML-escape dir name in title, h1, a:href.
870
871 2008-11-12  Alexander Belopolsky  <alexander.belopolsky@gmail.com>
872
873         * url.c, url.h (url_escape_unsafe_and_reserved): Added.
874
875         * ftp-ls.c (ftp_index): URL-escape, rather than HTML-escape, the
876         filename appearing in the link.
877
878 2008-11-12  Steven Schubiger  <stsc@members.fsf.org>
879
880         * main.c (print_version): Hand the relevant
881         xstrdup/xfree calls back to format_and_print_line().
882
883 2008-11-11  Steven Schubiger  <stsc@members.fsf.org>
884
885         * main.c (format_and_print_line): Move both the memory
886         allocating and freeing bits upwards to print_version().
887
888 2008-11-10  Saint Xavier  <wget@sxav.eu>
889
890         * http.c: Make --auth-no-challenge works with user:pass@ in URLs.
891
892 2008-11-05  Micah Cowan  <micah@cowan.name>
893
894         * ftp.c (print_length): Should print humanized "size remaining"
895         only when it's at least 1k.
896
897 2008-10-31  Micah Cowan  <micah@cowan.name>
898
899         * main.c (print_version): Add information about the mailing list.
900
901 2008-10-31  Alexander Drozdov  <dzal_mail@mtu-net.ru>
902
903         * retr.c (fd_read_hunk): Make assert deal with maxsize == 0.
904
905         * ftp-ls.c (clean_line): Prevent underflow on empty lines.
906
907 2008-10-26  Gisle Vanem  <gvanem@broadpark.no>
908
909         * main.c (format_and_print_line): Put variables on top of
910         blocks (not all compilers are C99). Add an extra '\n' if
911         SYSTEM_WGETRC isn't defined and printed.
912
913 2008-09-09  Gisle Vanem  <gvanem@broadpark.no>
914
915         * url.c (url_error): Use aprintf, not asprintf.
916
917 2008-09-09  Micah Cowan  <micah@cowan.name>
918
919         * init.c (home_dir): Save the calculated value for home,
920         to avoid duplicated work on repeated calls.
921         (wgetrc_file_name) [WINDOWS]: Define and initialize home var.
922
923         * build_info.c, main.c: Remove unnecessary extern vars
924         system_wgetrc and locale_dir.
925
926         * main.c: Define program_name for lib/error.c.
927
928 2008-09-02  Gisle Vanem  <gvanem@broadpark.no>
929
930         * mswindows.h: Must ensure <stdio.h> is included before
931         we redefine ?vsnprintf().
932
933 2008-08-08  Steven Schubiger  <stsc@members.fsf.org>
934
935         * main.c, utils.h: Removed some dead conditional DEBUG_MALLOC code.
936
937 2008-08-03  Micah Cowan  <micah@cowan.name>
938
939         * main.c (print_help): Added --default-page.
940
941 2008-08-01  Joao Ferreira  <joao@joaoff.com>
942
943         * init.c, main.c, options.h, url.c: Added option --default-page
944         to support alternative default names for index.html
945
946 2008-08-03  Micah Cowan  <micah@cowan.name>
947
948         * build_info.c, css-url.c: #include wget.h, not config.h.
949
950 2008-08-03  Steven Schubiger  <stsc@members.fsf.org>
951
952         * url.c, url.h (url_error): Better messages for unsupported
953         schemes, especially https.
954
955         * html-url.c, recur.c, retr.c: Adjust to new url_error
956         invocation, and free result.
957
958 2008-07-17  Steven Schubiger  <stsc@members.fsf.org>
959
960         * retr.c (retrieve_from_file): When given an URL as input file,
961         use it as baseref if none was specified and treat the input file
962         as HTML if its content type is text/html.
963
964         * init.c (cleanup): Free the memory associated with the base
965         option (when DEBUG_MALLOC is defined).
966
967 2008-07-02  Xavier Saint  <wget@sxav.eu>
968
969         * iri.c, iri.h  : New function idn_decode() to decode ASCII
970         encoded hostname to the locale.
971
972         * host.c : Show hostname to be resolved both in locale and
973         ASCII encoded.
974
975 2008-06-28  Steven Schubiger  <stsc@members.fsf.org>
976
977         * retr.c (retrieve_from_file): Allow for reading the links from
978         an external file (HTTP/FTP).
979
980 2008-06-26  Xavier Saint  <wget@sxav.eu>
981
982         * iri.c, iri.h : New functions locale_to_utf8() and
983         idn_encode() adding basic capabilities of IRI/IDN.
984
985         * url.c : Convert URLs from locale to UTF-8 allowing a basic
986         support of IRI/IDN
987
988 2008-06-25  Steven Schubiger  <stsc@members.fsf.org>
989
990         * ftp.c (getftp): When spidering a FTP URL, emit a diagnostic
991         message if the remote file exists.
992
993 2008-06-24  Steven Schubiger  <stsc@members.fsf.org>
994
995         * http.c (http_loop): Replace escnonprint() occurence with
996         a quotearg_style() call.
997
998 2008-06-24  Micah Cowan  <micah@cowan.name>
999
1000         * ftp-ls.c (ftp_index): Don't assume time_t* is compatible with
1001         long*. Fixes crash on Windows, and probably other systems.
1002
1003 2008-06-22  Steven Schubiger  <stsc@members.fsf.org>
1004
1005         * http.c: Explicitly initialize and deallocate the message
1006         string used by the -nv --spider functionality.
1007
1008 2008-06-22  Steven Schubiger  <schubiger@gmail.com>
1009
1010         * http.c: Make -nv --spider include the file's name when it
1011         exists.
1012
1013 2008-06-22  Micah Cowan  <micah@cowan.name>
1014
1015         * Makefile.am (version.c): Fixed version string invocation so it
1016         once again can't result in unterminated strings, made all the
1017         string vars pointers-to-const, and moved line lengths
1018         below 80 (in Makefile.am, not in version.c).
1019
1020 2008-06-19  Xavier Saint  <wget@sxav.eu>
1021
1022         * iri.c, iri.h : New function check_encoding_name() as
1023         a preliminary encoding name check.
1024
1025         * main.c, iri.c : Make use of check_encoding_name().
1026
1027 2008-06-19  Xavier Saint  <wget@sxav.eu>
1028
1029         * iri.c : Include missing stringprep.h file and add a
1030         cast.
1031
1032         * init.c : set a default initial value for opt.enable_iri,
1033         opt.locale and opt.encoding_remote.
1034
1035 2008-06-19  Xavier Saint  <wget@sxav.eu>
1036
1037         * iri.c, iri.h : Add a new function find_locale() to find
1038         out the local system encoding.
1039
1040         * main.c : Make use of find_locale().
1041
1042 2008-06-19  Xavier Saint  <wget@sxav.eu>
1043
1044         * html-url.c : Add "content-type" meta tag parsing for
1045         retrieving page encoding.
1046
1047         * iri.h : Make no-op version of parse_charset() return
1048         NULL.
1049
1050 2008-06-16  Micah Cowan  <micah@cowan.name>
1051
1052         * http.c (http_loop): When hstat.len is higher than the
1053         successfully completed content's length, but it's because we
1054         _set_ it that way, don't abort.
1055
1056 2008-06-14  Xavier Saint  <wget@sxav.eu>
1057
1058         * iri.c, iri.h : New files.
1059
1060         * Makefile.am : Add files iri.h and conditional iri.c.
1061
1062         * build_info.c : Add compiled feature "iri".
1063
1064         * http.c : include iri.h and parse charset from Content-Type
1065         header.
1066
1067         * init.c, main.c, options.h : if an options isn't supported
1068         at compiled time, don't get rid off it and show a dummy
1069         message instead if they are used.
1070
1071 2008-06-13  Micah Cowan  <micah@cowan.name>
1072
1073         * build_info.c: ENABLE_NTLM, not HAVE_NTLM; distinguish OpenSSL
1074         from "ssl".
1075
1076 2008-06-13  Madhusudan Hosaagrahara <com.gmail.hrmadhu>
1077
1078         * Makefile.am, main.c, init.c, init.h, build_info.c: Adds build
1079         information to the --version command line option. Fixes bug
1080         #20636.
1081
1082 2008-06-01  Micah Cowan  <micah@cowan.name>
1083
1084         * main.c [WINDOWS]: Reopen stdout in binary mode, when -O - is
1085         given.
1086
1087 2008-05-31 Micah Cowan  <micah@cowan.name>
1088
1089         * html-url.c, http.c: Avoid casts in a couple spots.
1090
1091 2008-05-30 Henri Häkkinen  <henux@users.sourceforge.net>
1092
1093         * cookies.c, ftp-basic.c, hash.c, html-url.c, http-ntlm.c, http.c,
1094         init.c, log.c, main.c, progress.c, ptimer.c, spider.c, url.c,
1095         utils.c: Minor changes to silence warnings when using -Wall.
1096
1097 2008-05-26  Steven Schubiger  <schubiger@gmail.com>
1098
1099         * ftp.c (getftp): Replace last remaining invocation of escnonprint
1100         with gnulib quote.
1101
1102 2008-05-19  Micah Cowan  <micah@cowan.name>
1103
1104         * main.c (main): Password prompt should be done only once (not
1105         once per argument), and should be done prior to the background
1106         fork.
1107
1108 2008-05-17  Steven Schubiger  <schubiger@gmail.com>
1109
1110         * init.c (defaults): Set the preferred IP family to `none' by
1111         default.
1112
1113 2008-05-17  Kenny Parnell  <k.parnell@gmail.com>
1114
1115         (cmd_spec_prefer_family): Initialize prefer_family to prefer_none.
1116
1117 2008-05-17  Micah Cowan  <micah@cowan.name>
1118
1119         * main.c (main): Handle Ctrl-D on command-line.
1120
1121 2008-05-15  Steven Schubiger  <schubiger@gmail.com>
1122
1123         * ftp.c (getftp): Verify that the file actually exists in FTP, by
1124         checking it against the listing.
1125
1126 2008-05-15  Micah Cowan  <micah@cowan.name>
1127
1128         * main.c (prompt_for_password): Use the quote module.
1129
1130 2008-05-14  Micah Cowan  <micah@cowan.name>
1131
1132         * ftp.c (ftp_retrieve_list): Symlinks and other filenames
1133         should be fully quoted.
1134
1135 2008-05-12  Micah Cowan  <micah@cowan.name>
1136
1137         * main.c (main): Downgrade "-N with -O" to a warning, and switch
1138         it off to avoid confusing messages.
1139
1140 2008-04-30  Micah Cowan  <micah@cowan.name>
1141
1142         * progress.c (create_image): Fix glitch where too many spaces are
1143         printed on lines that don't display the ETA, in multibyte
1144         locales.
1145
1146 2008-04-30  Steven Schubiger  <stsc@members.fsf.org>
1147
1148         * main.c (main): New code that handles prompting for passwords
1149         when specified explicitly via command-line option (using gnulib's
1150         getpass-gnu module).
1151         (main): Include the getpass header.
1152
1153         * init.c: Add "ask-password" to the list of recognized commands.
1154
1155         * options.h: Add an according boolean member to the options
1156         struct.
1157
1158         * sysdep.h: Comment the defines __EXTENSIONS__ and _GNU_SOURCE
1159         out, because they're now defined independently by config.h.
1160
1161 2008-04-27  Rabin Vincent  <rabin@rab.in>
1162
1163         * http.c (http_loop): Fix return for the case where we don't
1164         download a file because of -nc.
1165
1166 2008-04-27  Micah Cowan  <micah@cowan.name>
1167
1168         * url.c (path_simplify): Go back to allowing leading ".." in
1169         paths, but only for FTP URLs.
1170         (test_path_simplify): Add scheme-specificness to tests, adapt for
1171         mu_run_test.
1172
1173         * test.c (all_tests): Add test_path_simplify.
1174
1175         * main.c (main): Downgrade -r, -p with -O to a warning rather than
1176         an error; elaborate just a bit more for other -O combination
1177         cases.
1178
1179 2008-04-26  Micah Cowan  <micah@cowan.name>
1180
1181         * http.c (gethttp): Move proxy CONNECT handling to below the
1182         retry_with_auth label, to deal with properly reconnecting to
1183         proxies when we need to authenticate.
1184
1185 2008-04-25  Micah Cowan  <micah@cowan.name>
1186
1187         * Makefile.am: -I foo -> -Ifoo.
1188
1189 2008-04-24  Micah Cowan  <micah@cowan.name>
1190
1191         * main.c: Revised usage description of --convert-links to apply
1192         to CSS as well as to HTML.
1193
1194 2008-04-23  Micah Cowan  <micah@cowan.name>
1195
1196         * utils.c (test_dir_matches_p): Added a test for the case
1197         described in issue #20518.
1198
1199 2008-04-22  Micah Cowan  <micah@cowan.name>
1200
1201         * Makefile.am, css.lex, css.l: Renamed css.lex to css.l.
1202         * recur.c (retrieve_tree): Fix typo to allow text/css files to
1203         be parsed.
1204
1205 2008-04-22  Ted Mielczarek  <ted.mielczarek@gmail.com>
1206
1207         * css.lex, css-url.c, css-url.h: Added to implement support for
1208         parsing CSS in Wget.
1209         * convert.c: Convert links in CSS files, too.
1210         * convert.h (convert_options): Added for options link_css_p,
1211         link_expect_css.
1212         * convert.h: Added prototype for new register_css function.
1213         * html-parse.c: Added support for parsing element content, in
1214         addition to tag starts and ends.
1215         * html-parse.h (taginfo): Added delimiter fields for element
1216         content.
1217         * html-url.h: Added.
1218         * html-url.c (append_url): No longer internal-linkage only. Now
1219         takes position and size as explicit parameters.
1220         * html-url.c: Use new html-url.h header, add support for
1221         handling of "style" HTML attributes. Mark URIs obtained from
1222         link tags with rel="stylesheet" with link_expect_css. Adapt
1223         uses of append_url to supply the newly-added parameters for
1224         position and size.
1225         * http.c: Add detection for when the content-type is text/css;
1226         and ensure that such files have the ".css" filename extension,
1227         when --convert-links is active.
1228         * recur.h: Remove declarations for functions found in
1229         html-url.c (moved to html-url.h).
1230         * recur.c: Add support for culling links from CSS files, too,
1231         and tracking for when we're expecting the file to be CSS (even
1232         when its content type isn't text/css).
1233         * retr.c (retrieve_url): Add registration of CSS files.
1234         * wget.h: Added TEXTCSS to dt flags enum.
1235         * Makefile.am: Added css.lex, css-url.c, css-url.h, html-url.h
1236         to wget_SOURCES.
1237
1238 2008-04-22  Jim Paris  <jim@jtan.com>
1239
1240         * openssl.c (ssl_init): Enable combined certificate/key in
1241         single file (apparent regression from ~1.9). Resolves issue
1242         #22767.
1243
1244 2008-04-22  Steven Schubiger  <schubiger@gmail.com>
1245
1246         * http.c (print_response_line): Changed to make responses always
1247         be logged, even in --quiet mode, if --server-response was
1248         specified. This is to bring http.c's handling of the situation
1249         in line with ftp.c's.
1250
1251 2008-04-22  Pranab Shenoy  <pranab.loosinit.shenoy@gmail.com>
1252
1253         * init.c: Added test_commands_sorted unit test to check is
1254         commands are sorted.  Fixes bug #21245.
1255
1256         * test.c: Added test_commands_sorted to the test suite.
1257
1258 2008-04-22  Rabin Vincent  <rabin@rab.in>
1259
1260         * ftp.c (ftp_get_listing): Only remove .listing if it has been
1261         created.
1262
1263 2008-04-22  Alain Guibert  <alguibert+bts@free.fr>
1264
1265         * test.h (mu_run_test): Move declaration before statements, for
1266         C90 conformance. Fixes bug #22789.
1267
1268 2008-04-22  Mike Frysinger  <vapier@gentoo.org>
1269
1270         * Makefile.am: Move @LIBS@ after other libraries, for better
1271         static-linking support. Fixes bug #22143.
1272
1273 2008-04-16  Steven Schubiger  <schubiger@gmail.com>
1274
1275         * ftp.c: Use Gnulib's quote function for printing filenames and
1276         such.
1277         * connect.c: Likewise.
1278         * convert.c: Likewise.
1279         * cookies.c: Likewise.
1280         * ftp-opie.c: Likewise.
1281         * gnutls.c: Likewise.
1282         * init.c: Likewise.
1283         * log.c: Likewise.
1284         * mswindows.c: Likewise.
1285         * openssl.c: Likewise.
1286         * progress.c: Likewise.
1287         * recur.c: Likewise.
1288         * res.c: Likewise.
1289         * utils.c: Likewise.
1290
1291 2008-04-16  Steven Schubiger  <schubiger@gmail.com>
1292
1293         * sysdep.h: Comment the defines __EXTENSIONS__ and _GNU_SOURCE
1294         out, because they're now defined independently by config.h.
1295
1296 2008-04-14  Steven Schubiger  <schubiger@gmail.com>
1297
1298         * http.c: Use Gnulib's quote function for printing filenames and
1299         such.
1300         * wget.h: #include "quote.h".
1301
1302 2008-04-12  Rabin Vincent  <rabin@rab.in>
1303
1304         * mswindows.c (fake_fork_child): Don't create a logfile for
1305         --background when --quiet is used, but not --server-response.
1306         Fixes bug #20917.
1307
1308         * utils.c (fork_to_background): Likewise.
1309
1310 2008-04-12  Micah Cowan  <micah@cowan.name>
1311
1312         * utils.c (aprintf): Minor formatting changes to Alex's code (80-
1313         column limit, concatenated string literals, avoiding nesting
1314         levels), and removed invocation of free (since we're aborting
1315         anyway).
1316
1317 2008-04-11  Alexander Dergachev  <cy6erbr4in@gmail.com>
1318
1319         * utils.c (aprintf): Now we are setting limits (1 Mb) for text
1320         buffer when we use non-C99 vsnprintf.
1321
1322 2008-04-11  Micah Cowan  <micah@cowan.name>
1323
1324         * ftp.c (getftp, ftp_loop_internal): Don't append to an existing
1325         .listing when --continue is used.  Fixes bug #22825. Thanks to
1326         Rabin Vincent <rabin@rab.in> for pointing the way with a
1327         suggested fix!
1328
1329 2008-04-10  Alexander Dergachev  <cy6erbr4in@gmail.com>
1330
1331         * xmalloc.c, xmalloc.h (memfatal): Now exported; accepts an
1332         "unknown" value for the attempted allocation size.
1333         * utils.c (aprintf): Now calls memfatal, instead of aborting.
1334
1335 2008-03-19  Micah Cowan  <micah@cowan.name>
1336
1337         * utils.c (test_dir_matches_p): More tests related for
1338         dir_matches_p.
1339
1340 2008-03-17  Micah Cowan  <micah@cowan.name>
1341
1342         * connect.c: Include sys/time.h to support use of the select
1343         function on older systems.
1344
1345 2008-02-11  Benno Schulenberg  <bensberg@justemail.net>
1346
1347         * http.c: More accurate and descriptive messages for when a file
1348         won't be retrieved during spider-mode.
1349
1350 2008-02-10  Micah Cowan  <micah@cowan.name>
1351
1352         * http.c: Added existence_checked member to the http_stat
1353         struct.
1354         (gethttp): Mark hs->existence_checked when we've checked whether
1355         a file-to-download exists; so we don't check it again if the
1356         connection gets lost (and potentially pick a new "unique" name).
1357         This fixes bug 22251.
1358         * progress.c (create_image): Add space for an extra column in
1359         the "eta" portion of the progress bar image; to deal with
1360         too-long Czech translation.
1361         * main.c, http.c, init.c: Added --auth-no-challenge option, to
1362         bring back 1.10.2 unsafe auth behavior when needed. This fixes
1363         bug #22242.
1364
1365 2008-02-07  Micah Cowan  <micah@cowan.name>
1366
1367         * progress.c (create_image): Remove assertion on exceeding
1368         screen width, which given the less-than-robust code there, can
1369         be broken by a number of factors (such as large file downloads).
1370
1371 2008-02-06  Micah Cowan  <micah@cowan.name>
1372
1373         * progress.c (countcols): Use strlen() when mbtowc or wcwidth
1374         not available (or not using NLS).
1375         * utils.c: Ensure we use single-byte separators when not doing
1376         NLS progress-bars.
1377         * wget.h: Determine whether to use NLS for progress-bars, based
1378         on whether wcwidth and mbtowc are available.
1379
1380 2008-02-03  Micah Cowan  <micah@cowan.name>
1381
1382         * progress.c (create_image): Use number of characters/columns
1383         consumed, rather than number of bytes, to determine how much of
1384         a line we've used. Fixes assertion errors and field alignment
1385         bugs (#22161, #20481)
1386         (get_eta, count_cols): Added to support the changes for
1387         create_image.
1388         * http.c (http_loop): Put no-clobber logic back into http_loop,
1389         before starting to fetch, for when we're not doing
1390         content-disposition.
1391
1392 2008-01-31  Micah Cowan  <micah@cowan.name>
1393
1394         * http.c (gethttp): Don't derive hs->contlen from possibly
1395         invalid/missing Content-Length; instead, get the appropriate
1396         value from the Content-Range header values.
1397         (parse_content_range): Handle '*' instance-length field.
1398
1399 2008-01-25  Micah Cowan  <micah@cowan.name>
1400
1401         * main.c: Added notes to translators regarding (C), diacritics
1402         in names.
1403         * Makefile.am, cmpt.c, connect.c, connect.h, convert.c,
1404         cookies.c, cookies.h, ftp-basic.c, ftp-ls.c, ftp-opie.c, ftp.c,
1405         ftp.h, gen-md5.c, gen-md5.h, gnutls.c, hash.c, hash.h, host.c,
1406         host.h, html-parse.c, html-parse.h, html-url.c, http-ntlm.c,
1407         http-ntlm.h, http.c, http.h, init.c, init.h, log.c, log.h,
1408         main.c, mswindows.c, mswindows.h, netrc.c, netrc.h, openssl.c,
1409         options.h, progress.c, progress.h, ptimer.c, ptimer.h, recur.c,
1410         recur.h, res.c, res.h, retr.c, retr.h, spider.c, spider.h,
1411         ssl.h, sysdep.h, test.c, test.h, url.c, url.h, utils.c,
1412         utils.h, wget.h, xmalloc.c, xmalloc.h: Updated copyright year.
1413
1414 2007-12-10  Micah Cowan  <micah@cowan.name>
1415
1416         * main.c: The option is --content-disposition, not
1417         --no-content-disposition (at the moment).
1418
1419 2007-12-08  Hrvoje Niksic  <hniksic@xemacs.org>
1420
1421         * ftp.c (ftp_retrieve_glob): Print both arguments of fnmatch in
1422         fnmatch error message.
1423         (ftp_retrieve_glob): Don't match with fnmatch if we're only
1424         supposed to get one file.
1425
1426 2007-12-07  Micah Cowan  <micah@cowan.name>
1427
1428         * Makefile.am: Plug in vars to include stuff from
1429         $(top_srcdir)/md5 when appropriate.
1430
1431 2007-12-05  Micah Cowan  <micah@cowan.name>
1432
1433         * utils.c (subdir_p): Handle the case where d1 is "".
1434         * convert.c (convert_all_links): Don't return without
1435         deallocating timer.
1436
1437 2007-11-28  Micah Cowan  <micah@cowan.name>
1438
1439         * Makefile.am, cmpt.c, connect.c, connect.h, convert.c,
1440         convert.h, cookies.c, cookies.h, ftp-basic.c, ftp-ls.c,
1441         ftp-opie.c, ftp.c, ftp.h, gen-md5.c, gen-md5.h, gnutls.c,
1442         hash.c, hash.h, host.c, host.h, html-parse.c, html-parse.h,
1443         html-url.c, http-ntlm.c, http-ntlm.h, http.c, http.h, init.c,
1444         init.h, log.c, log.h, main.c, mswindows.c, mswindows.h,
1445         netrc.c, netrc.h, openssl.c, options.h, progress.c, progress.h,
1446         ptimer.c, ptimer.h, recur.c, recur.h, res.c, res.h, retr.c,
1447         retr.h, safe-ctype.c, safe-ctype.h, spider.c, spider.h, ssl.h,
1448         sysdep.h, test.c, test.h, url.c, url.h, utils.c, utils.h,
1449         wget.h, xmalloc.c, xmalloc.h: Updated license exception for
1450         OpenSSL, per the SFLC.
1451
1452 2007-10-30  Micah Cowan  <micah@cowan.name>
1453
1454         * main.c (main): Declare argv parameter as char **argv, rather
1455         than char *const *argv. This fixes usage of getopt_long,
1456         regardless of whether getopt_long has a constified argv or not.
1457
1458 2007-10-22  Gisle Vanem  <gvanem@broadpark.no>
1459
1460         * mswindows.c: Move INHIBIT_WRAP macro definition up with wget.h
1461         inclusion.
1462
1463 2007-10-18  Steven Schweda  <sms@antinode.org>
1464
1465         * sysdep.h: #include <stdint.h> as well as <inttypes.h>, to work
1466         around a glitch on Tru64 systems.
1467
1468 2007-10-18  Micah Cowan  <micah@cowan.name>
1469
1470         * Makefile.am: version.c should not be distributed. Removed
1471         config-post.h. Add version.c dependency and gnulib include path
1472         for libunittest.a.
1473         * sysdep.h: Got contents of config-post.h
1474         * config-post.h: Removed.
1475         * wget.h: #include "config.h".
1476         * alloca.c, cmpt.c, connect.c, convert.c, cookies.c,
1477         ftp-basic.c, ftp-ls.c, ftp-opie.c, ftp.c, gen-md5.c, gnutls.c,
1478         hash.c, host.c, html-parse.c, html-url.c, http-ntlm.c, http.c,
1479         init.c, log.c, main.c, mswindows.c, netrc.c, openssl.c,
1480         progress.c, ptimer.c, recur.c, res.c, retr.c, spider.c, url.c,
1481         utils.c, xmalloc.c: Use wget.h at very top, and instead of
1482         config.h.
1483
1484 2007-10-15  Micah Cowan  <micah@cowan.name>
1485
1486         * Makefile.am: Remove intermediary hg-id file generation, make
1487         version.c-generation more portable.
1488
1489 2007-10-14  Micah Cowan  <micah@cowan.name>
1490
1491         * cmpt.c, cookies.c, ftp-basic.c, ftp-ls.c, ftp.c, hash.c,
1492         host.c, html-parse.c, html-url.c, http-ntlm.c, http.c, init.c,
1493         log.c, main.c, netrc.c, openssl.c, res.c, url.c, utils.c,
1494         wget.h: Replace uses of ISSPACE, etc with c_isspace, etc.
1495         * gnu-md5.c, gnu-md5.h: Removed, in deference to gnulib.
1496         * Makefile.am: Removed gnu-md5.h from wget_SOURCES.
1497         * gen-md5.c: Changed #inclusion of gnu-md5.h to md5.h (gnulib's).
1498         * recur.c (download_child_p): Print error if unlink of
1499         robots.txt fails.
1500         * main.c (main): --spider or --delete-after now implies
1501         --no-directories (thanks, Josh Williams).
1502
1503 2007-10-14  Joshua David Williams  <yurimxpxman@gmail.com>
1504
1505         * recur.c (download_child_p): Remove robots.txt if
1506         --delete-after or --spider is on.
1507
1508 2007-10-13  Micah Cowan  <micah@cowan.name>
1509
1510         * Makefile.am: Make version.c depend on Wget dependencies (source
1511         files, plus such things as LIBOBJS so we get things like
1512         http-ntlm.c). Removed getopt.[ch], as we're now using gnulib for
1513         these.
1514
1515 2007-10-10  Micah Cowan  <micah@cowan.name>
1516
1517         * http-ntlm.c: Include openssl/opensslv.h explicitly, instead of
1518         hoping it'll be included by accident in openssl/des.h.
1519
1520 2007-10-09  Gisle Vanem  <gvanem@broadpark.no>
1521
1522         * mswindows.c: 'argc' and 'argv' in 'windows_main()' are no longer
1523         needed.  Hence simply the prototype. Free 'exec_name' at exit.
1524
1525 2007-10-09  Micah Cowan  <micah@cowan.name>
1526
1527         * gettext.h: Imported from /usr/share/gettext, fuller handling
1528         of --disable-nls.
1529         * wget.h: Remove logic for handling lack of NLS (now in
1530         gettext.h).
1531         * main.c: Use gettext's ENABLE_NLS rather than HAVE_NLS.
1532         * Makefile.am: added @LIBINTL@ to LIBS (though it probably
1533         belongs in LDADD, along with everything else currently assigned
1534         to LIBS).
1535
1536 2007-10-08  Micah Cowan  <micah@cowan.name>
1537
1538         * http.c (http_loop): Add send_head_first conditional back
1539         around code that needs it, but not around the last-modified
1540         header-parsing stuff this time. Removed no-longer-useful (was it
1541         ever?) restart_loop boolean, continuing unconditionally at end
1542         of send_head_first conditional block (if we haven't jumped out).
1543
1544 2007-10-04  Micah Cowan  <micah@cowan.name>
1545
1546         * http.c (http_loop): We've got_name if content_disposition
1547         support isn't on; make sure we continue properly in that case,
1548         even though we're not sending HEAD.
1549         * Makefile.in: Removed, replaced by Makefile.am.
1550         * Makefile.am: Converted from Makefile.in.
1551
1552 2007-10-02  Gisle Vanem  <gvanem@broadpark.no>
1553
1554         * ftp.c: Use "_listing" for MSDOS (".listing" is illegal).
1555
1556         * url.c: Update comment for 'filechr_not_windows'.
1557
1558         * utils.c: Include <process.h> for 'getpid()' on Watcom.
1559
1560 2007-10-02  Micah Cowan  <micah@cowan.name>
1561
1562         * ftp.c (getftp, ftp_loop_internal), http.c (http_loop), main
1563         (main): Use datetime_str instead of time_str, for those who have
1564         potentially long-running sessions. Based on suggestions by Saso
1565         Tomat <miskox@hotmail.com> and Steven M. Schweda
1566         <sms@antinode.org>.
1567         * http.c (gethttp): Warn about host lookup failures. Adjusted
1568         from Stephen Gildea's patch.
1569
1570 2007-10-02  Stephen Gildea  <stepheng+wget@gildea.com>
1571
1572         * connect.c (connect_to_host): Warn about host lookup failures.
1573
1574 2007-09-25  Micah Cowan  <micah@cowan.name>
1575
1576         * Makefile.in: Use EXEEXT instead of exeext.
1577
1578 2007-09-24  Gisle Vanem  <giva@bgnett.no>
1579
1580         * connect.c, init.c, main.c, openssl.c, options.h, sysdep.h,
1581         url.c, utils.c: Added support for building on MS-DOS.
1582
1583 2007-09-24  Jochen Roderburg  <roderburg@uni-koeln.de>
1584
1585         * http.c (http_zero): Remove no-longer-used local_size variable.
1586         Fixes bug #21057.
1587
1588 2007-09-12  Micah Cowan  <micah@cowan.name>
1589
1590         * http.c (http_loop): Remove send_head_first from condition for
1591         parsing timestamp.
1592
1593 2007-08-29  Micah Cowan  <micah@cowan.name>
1594
1595         * openssl.c (ssl_init): Re un-const-ified the meth local
1596         variable, to match current versions of openssl.
1597         * spider.c: Removed visited_url function, as it may be very
1598         inefficient.
1599         (print_broken_links): Removed traversal of referrers, until such
1600         time as a more efficient implementation can be written.
1601         * spider.h: Replaced declaration of visited_url with an
1602         empty-bodied, function-like macro.
1603
1604 2007-08-27  Gisle Vanem  <giva@bgnett.no>
1605
1606         * mswindows.c (run_with_timeout): Ensure that the correct
1607         conversion specification is used for the return result of
1608         the GetLastError function.
1609         * getopt.c: Fix missing (but, accidentally, legal) comment
1610         delimiter after licensing text.
1611         * recur.c (retrieve_tree): Inserted missing cast for strip_auth.
1612         Includes adjustment by Ralf Wildenhues.
1613         * openssl.c (ssl_init): const-ified the meth local variable.
1614         * main.c: Include all the static function definitions in the
1615         "#ifndef TESTING" clause, leaving just the definitions for
1616         exec_name (not set), and opt.
1617         * utils.c (run_with_timeout): Now returns bool, to align with
1618         declaration in utils.h.
1619
1620 2007-08-27  Micah Cowan  <micah@cowan.name>
1621
1622         * wget.h: Added macro replacement for ngettext, for environs
1623         that lack NLS.
1624
1625 2007-08-26  Micah Cowan  <micah@cowan.name>
1626
1627         * spider.c (print_broken_links): Fixed incorrect plurals msgid
1628         usage, switched to use ngettext function.
1629
1630 2007-08-24  Micah Cowan  <micah@cowan.name>
1631
1632         * http.c (http_loop): Introduced time_came_from_head boolean
1633         flag, to help avoid parsing the same Last-Modified header twice.
1634         Replaced spidering returns of RETRUNNEEDED for some situations,
1635         to RETROK, as otherwise it will be interpreted as an error.
1636         RETRUNNEEDED appears never to be referenced outside of
1637         http.c (and wget.h), and, when returned by gethttp, is
1638         translated by http_loop to RETROK.
1639         * url.c (are_urls_equal): Don't call getchar_from_escaped_string
1640         if u2 is shorter than u1.
1641         (getchar_from_escaped_string): Don't decode reserved characters.
1642         Handle illegally appearing '%'s as literal '%'s. Ensure hex
1643         digits before attempting to decode.
1644         (test_are_urls_equal): Added tests to handle u2 shorter than u1,
1645         and %2f not treated the same as /.
1646         * spider.c (in_url_list_p): Don't call are_urls_equal if one of
1647         them is NULL.
1648
1649 2007-08-23  Joshua David Williams  <yurimxpxman@gmail.com>
1650
1651         * spider.c (in_url_list_p): Removed the bool verbose argument
1652
1653 2007-08-22  Mauro Tortonesi  <mauro@ferrara.linux.it>
1654
1655         * http.c (http_loop): Fall back to GET if HEAD fails with a 500 or 501
1656         error code.
1657
1658 2007-08-21  Mauro Tortonesi  <mauro@ferrara.linux.it>
1659
1660         * http.c (http_loop): Send preliminary HEAD request if -N is given and
1661         the destination file exists already.
1662
1663 2007-08-10  Mauro Tortonesi  <mauro@ferrara.linux.it>
1664
1665         * http.c (http_loop): Fixed HTTP HEAD requests logic when --spider is
1666         given.
1667
1668 2007-08-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1669
1670         * url.c (append_uri_pathel): Do not assume dest string to be
1671         zero-terminated.
1672         (test_append_uri_pathel): Terminate string to fix test failure.
1673
1674 2007-08-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1675
1676         * url.c (url_string): Use comparison, not assignment, in
1677         check for auth_mode == URL_AUTH_HIDE_PASSWD.
1678
1679 2007-08-09  Micah Cowan  <micah@cowan.name>
1680
1681         * http.c (http_loop): If we got a HEAD and then a GET, and the
1682         GET had a timestamp, use that one, not any we may have gotten
1683         from the HEAD.
1684
1685 2007-08-08  Micah Cowan  <micah@cowan.name>
1686
1687         * init.c (defaults): Content disposition will not be default,
1688         since it currently results in extra round-trips.
1689
1690 2007-07-31  Micah Cowan  <micah@cowan.name>
1691
1692         * http.c (gethttp): Set contlen = -1 when we encounter a
1693         negative-valued Content-Length header, so we don't consider it
1694         an internal error later on and call abort().
1695
1696 2007-07-29  Micah Cowan  <micah@cowan.name>
1697
1698         * url.h, url.c (url_string): Replaced bool arg of the url_string
1699         function with enum url_auth_mode, with added option to
1700         completely remove user/pass auth information.
1701         * http.c, ftp.c, url.c, recur.c: Adapted call to url_string
1702         function to fit new usage.
1703         * recur.c (retrieve_tree): Remove auth info from Referer header.
1704
1705 2007-07-28  Micah Cowan  <micah@cowan.name>
1706
1707         * options.h, init.c, retr.c, main.c: renamed opt maxredirect
1708         field to max_redirect, for improved consistency.
1709         * init.c: changed max_redirect parser from cmd_number_inf to
1710         cmd_number, as infinite redirects may not be appropriate.
1711         Alternatively, if cmd_number_inf should be used, then
1712         opt.max_redirect's value should be checked a bit differently in
1713         retr.c, to allow for the "infinite" meaning of zero.
1714
1715 2007-07-25  Micah Cowan  <micah@cowan.name>
1716
1717         * http.c (create_authorization_line)
1718         (basic_authentication_encode, known_authentication_scheme_p)
1719         (load_cookies): Moved declarations up.
1720         (basic_authed_hosts): Added. Tracks what hosts have issued Basic
1721         challenge and been given the global username, password.
1722         (maybe_send_basic_creds): Added. Sends Basic creds for hosts that
1723         have issued Basic challenges.
1724         (register_basic_auth_host): Added. Instantiates
1725         basic_authed_hosts if necessary, then registers the host that
1726         has issued a challenge.
1727         (gethttp) <auth>: Only send authentication credentials after
1728         we've received a challenge from that host. This is a stop-gap
1729         fix until a proper fix can be implemented; still isn't quite
1730         right, as we should only be sending credentials automatically
1731         for authenticated paths and below, and not for the entire host.
1732
1733 2007-07-16  Joshua David Williams  <yurimxpxman@gmail.com>
1734
1735         * options.h: added maxredirect to options struct
1736         * init.c: added maxredirect to list of variables
1737         * retr.c (retrieve_url): replaced MAX_REDIRECTIONS with opt.maxredirect
1738         * main.c: added option --max-redirect
1739
1740 2007-07-16  Joshua David Williams  <yurimxpxman@gmail.com>
1741
1742         * test.h: tests made more verbose; now displays the name
1743         of each test run.
1744
1745 2007-07-10  Mauro Tortonesi  <mauro@ferrara.linux.it>
1746
1747         * http.c (http_loop): Fixed the HTTP requests logic. Now it skips the
1748         preliminary HEAD request if either -O or --no-content-disposition are
1749         given, and neither --spider and -N are given.
1750
1751 2007-07-05  Micah Cowan  <micah@cowan.name>
1752
1753         * cmpt.c, connect.c, connect.h, convert.c, convert.h:
1754         * cookies.c, cookies.h, ftp-basic.c, ftp.c, ftp.h, ftp-ls.c:
1755         * ftp-opie.c, gen-md5.c, gen-md5.h, getopt.c, getopt.h, gnu-md5.c:
1756         * gnu-md5.h, gnutls.c, hash.c, hash.h, host.c, host.h:
1757         * html-parse.c, html-parse.h, html-url.c, http.c, http.h:
1758         * http-ntlm.c, http-ntlm.h, init.c, init.h, log.c, log.h, main.c:
1759         * Makefile.in, mswindows.c, mswindows.h, netrc.c, netrc.h:
1760         * openssl.c, options.h, progress.c, progress.h, ptimer.c:
1761         * ptimer.h, recur.c, recur.h, res.c, res.h, retr.c, retr.h:
1762         * safe-ctype.c, safe-ctype.h, spider.c, spider.h, ssl.h, sysdep.h:
1763         * test.c, test.h, url.c, url.h, utils.c, utils.h, wget.h:
1764         * xmalloc.c, xmalloc.h:
1765         Updated GPL reference to version 3 or later, removed FSF
1766         address.
1767
1768 2007-07-04  Mauro Tortonesi  <mauro@ferrara.linux.it>
1769
1770         * http.c (http_loop): Skip HEAD request and start immediately with GET
1771         if -O is given.
1772
1773 2007-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
1774
1775         * http.c (print_server_response): Escape non-printable characters
1776         in server respone.
1777
1778 2007-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
1779
1780         * netrc.c: Don't make netrc_list static, as it prevents
1781         compilation with DEBUG_MALLOC.
1782
1783         * utils.c (aprintf): Don't use vasprintf when DEBUG_MALLOC is
1784         requested because, in that case, we want the calls to malloc to be
1785         coming from us.
1786
1787 2007-01-23  Hrvoje Niksic  <hniksic@xemacs.org>
1788
1789         * cookies.c (parse_set_cookie): Would erroneously discard cookies
1790         with unparsable expiry time.
1791
1792 2007-01-23  Hrvoje Niksic  <hniksic@xemacs.org>
1793
1794         * progress.c (create_image): Check for ETA overflow.
1795         (print_row_stats): Ditto.
1796
1797 2007-01-09  Mauro Tortonesi  <mauro@ferrara.linux.it>
1798
1799         * init.c (cmd_spec_prefer_family): Small fix to get rid of a gcc
1800         warning about strict-aliasing violation.
1801
1802 2007-01-09  Steven M. Schweda  <sms@antinode.org>
1803
1804         * ftp-basic.c (ftp_syst): Fixed segfault if response text is missing.
1805
1806 2006-12-29  Gisle Vanem  <giva@bgnett.no>
1807
1808         * mswindows.c: Avoid a warning if 'ws_hangup()' is unused.
1809
1810 2006-12-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
1811
1812         * http.c (parse_content_disposition): Consider directory prefix, if
1813         specified.
1814
1815 2006-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
1816
1817         * retr.c (retrieve_from_file): Ditto.
1818         (url_uses_proxy): New function.
1819
1820         * main.c (main): Don't check for opt.use_proxy when deciding
1821         whether to call retrieve_url or retrieve_tree; check whether the
1822         proxy would be used for *this* URL.
1823
1824 2006-10-17  Mike Grant  <mggr@pml.ac.uk>
1825
1826         * ftp.c (ftp_loop_internal): Would incorrectly skip changing
1827         working directory when retrying after a failed FTP attempt.
1828         Originally reported by Nate Eldredge.
1829
1830 2006-10-12  Mauro Tortonesi  <mauro@ferrara.linux.it>
1831
1832         * convert.c (downloaded_file): Fixed bug which used to break -E -k -K
1833         mode.
1834
1835 2006-08-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
1836
1837         * http.c: #include'd spider.h to get rid of compiler warnings.
1838
1839         * main.c: Ditto.
1840
1841         * recur.c: Ditto.
1842
1843 2006-08-24  Mauro Tortonesi  <mauro@ferrara.linux.it>
1844
1845         * Makefile.in: Added spider.c to the list of files to compile and
1846         spider.h to the list of header files. Updated copyright information.
1847
1848         * http.c: Major changes to recursive spider mode. Now for every
1849         resource we are supposed to check, we send a HEAD request to find out
1850         if it exists. If the resource is a HTML file, we retrieve it and parse
1851         it to discover links to other resources.
1852
1853         * recur.c: Ditto.
1854
1855         * res.c (res_retrieve_file): Disable opt.timestamping and opt.spider
1856         when retrieving robots.txt. Updated copyright information.
1857
1858         * convert.c: Moved code tracking broken links to spider.c.
1859
1860         * convert.h: Ditto.
1861
1862         * spider.c: Created new file to keep track of visited URLs in spider
1863         mode.
1864
1865         * spider.h: Ditto.
1866
1867 2006-08-21  Mauro Tortonesi  <mauro@ferrara.linux.it>
1868
1869         * http.c: Fixed timestamping-related bug.
1870
1871 2006-08-16  Mauro Tortonesi  <mauro@ferrara.linux.it>
1872
1873         * http.c: Fixed bug which broke --continue feature. Now if -c is
1874         given, http_loop sends a HEAD request to find out the destination
1875         filename before resuming download.
1876
1877 2006-08-08  Hrvoje Niksic  <hniksic@xemacs.org>
1878
1879         * utils.c (datetime_str): Avoid code repetition with time_str.
1880
1881 2006-07-21  Hrvoje Niksic  <hniksic@xemacs.org>
1882
1883         * init.c (commands): Correctly place "contentdisposition".
1884
1885 2006-07-14  Mauro Tortonesi  <mauro@ferrara.linux.it>
1886
1887         * sysdep.h: If intptr_t isn't defined, simply typedef it to long.
1888
1889         * http.c: Added explicit cast to int in logprintf call to remove
1890         compiler warnings on 64-bit platforms.
1891
1892         * connect.c: Added a few casts to intptr_t to remove compiler warnings
1893         on 64-bit platforms.
1894
1895         * main.c: Disable -r, -p and -N when -O is used. Disable -k when -O is
1896         used and multiple URLs are given. Update maintainer information.
1897
1898         * all: Update copyright information.
1899
1900 2006-07-10  KJKHyperion  <hackbunny@reactos.com>
1901
1902         * url.c (filechr_table): Mark DEL (0x7f) as a control character
1903         and | as a character Windows can't handle.
1904
1905 2006-06-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
1906
1907         * res.c: Implemented is_robots_txt_url function for detection of
1908         robots.txt URLs and related test routine.
1909
1910         * res.h: Ditto.
1911
1912         * url.c: Implemented are_urls_equal function for URL comparison and
1913         related testing routine.
1914
1915         * url.h: Ditto.
1916
1917         * convert.c: Fixes for recursive spider mode: don't consider
1918         non-existing robots.txt as a broken link, and use are_urls_equal
1919         instead of strcasecmp for referrer URLs comparison.
1920
1921         * test.c: Call tests routines for are_urls_equal and
1922         is_robots_txt_url.
1923
1924 2006-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
1925
1926         * wget.h (wgint): Typedef to any 64-bit (or larger) type we can
1927         find, not necessarily off_t or long.
1928
1929 2006-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
1930
1931         * cmpt.c (strtoll): Check for overflow and underflow without
1932         relying on (technically) undefined behavior.  Don't assume that
1933         strtoll_type is 64 bits wide.
1934
1935 2006-06-21  Hrvoje Niksic  <hniksic@xemacs.org>
1936
1937         * utils.c (base64_encode): Cast void pointer to char * before
1938         doing arithmetic.
1939
1940 2006-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
1941
1942         * utils.c (base64_encode): Made TBL const.
1943         (base64_decode): Made the base64_char_to_value table const.
1944
1945 2006-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
1946
1947         * utils.c (base64_encode): Made the DATA pointer void * so the
1948         callers can pass it any kind of pointer (including both signed and
1949         unsigned char pointers).
1950         (base64_decode): Ditto for DEST.
1951
1952 2006-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
1953
1954         * utils.c (base64_encode): Would read past end of STR.
1955         Reported by rick@eckle.org.
1956
1957 2006-06-13  Mauro Tortonesi  <mauro@ferrara.linux.it>
1958
1959         * options.h (struct options): Introduced member restrict_files_case to
1960         keep track of preferences on character case restrictions for
1961         filenames.
1962
1963         * init.c: Modified defaults and cmd_spec_restrict_file_names to
1964         support character case restrictions for filenames. Added
1965         test_cmd_spec_restrict_file_names unit test.
1966
1967         * url.c: Modified append_uri_pathel to support character case
1968         restrictions for filenames. Added test_append_uri_pathel unit test.
1969
1970         * test.c: Added test_cmd_spec_restrict_file_names and
1971         test_append_uri_pathel to the list of unit tests to run.
1972
1973 2006-06-12  Mauro Tortonesi  <mauro@ferrara.linux.it>
1974
1975         * retr.c (retrieve_from_file): Use retrieve_tree and automatically
1976         turn on opt.follow_ftp in case of recursive FTP retrieval through HTTP
1977         proxy.
1978
1979         * main.c: Automatically turn on opt.follow_ftp in case of recursive
1980         FTP retrieval through HTTP proxy.
1981
1982 2006-06-12  Tony Lewis  <tlewis@exelana.com>
1983
1984         * main.c: Improved CHEN Peng's patch by proposing a simpler logic.
1985
1986 2006-06-12  CHEN Peng  <chenpeng@alumni.nus.edu.sg>
1987
1988         * main.c: Use retrieve_tree in case of recursive FTP retrieval through
1989         HTTP proxy.
1990
1991 2006-05-25  Mauro Tortonesi  <mauro@ferrara.linux.it>
1992
1993         * convert.c: Added mechanisms to keep track broken links.
1994
1995         * convert.h: Ditto.
1996
1997         * wget.h: Reordered and enumerated uerr_t constants.
1998
1999         * recur.c: Fixes to support recursive spider mode.
2000
2001         * http.c: Ditto.
2002
2003         * main.c: Print broken links in case of recursive spider mode.
2004
2005         * retr.c: Changed interface of retrieve_url.
2006
2007         * retr.h: Ditto.
2008
2009         * ftp.c: Changed interface of ftp_loop.
2010
2011         * ftp.h: Ditto.
2012
2013         * res.c: Minor change to reflect changes in interface of retrieve_url.
2014
2015 2006-05-18  Lawrence Jones  <lawrence.jones@ugs.com>
2016
2017         * ftp-ls.c (ftp_parse_unix_ls): Correct size parsing, add size
2018         and filename debugging output.
2019
2020 2006-04-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
2021
2022         * http.c: If Content-Disposition header is present, allow unique
2023         filename generation unless -nc is given. Permit to disable parsing of
2024         Content-Disposition header.
2025
2026         * options.h: Added option --no-content-disposition to disable parsing
2027         of HTTP Content-Disposition header.
2028
2029         * init.c: Ditto.
2030
2031         * main.c: Ditto.
2032
2033 2006-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
2034
2035         * hash.c (TOLOWER): Wrap macro arg in parentheses.
2036
2037 2006-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
2038
2039         * http.c (parse_content_disposition): Doc fix.
2040
2041 2006-03-15  Mauro Tortonesi  <mauro@ferrara.linux.it>
2042
2043         * utils.c: Restricted operational semantics of frontcmp and proclist
2044         from generic strings to directory names and them to subdir_p and
2045         dir_matches_p respectively.  Applied George Ogata's one line patch to
2046         restrict algorithm of subdir_p to full directory name matching.  Added
2047         testcases for subdir_p and dir_matches_p.
2048
2049         * utils.h: Changed all frontcmp occurrences to subdir_p.
2050
2051         * recur.c: Ditto.
2052
2053         * test.c: Changed type returned by test functions from char * to const
2054         char *.  Added test_subdir_p and test_dir_matches_p to the list of
2055         tests to run.
2056
2057         * http.c (test_parse_content_disposition): Changed return type from
2058         char * to const char *.
2059
2060 2006-03-14  Mauro Tortonesi  <mauro@ferrara.linux.it>
2061
2062         * recur.c (struct queue_element): Changed type of html_allowed member
2063         to bool.
2064
2065 2006-03-09  Mauro Tortonesi  <mauro@ferrara.linux.it>
2066
2067         * ftp.c (ftp_list): Try `LIST -a' command first and revert to `LIST'
2068         in case of failure.
2069
2070 2006-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
2071
2072         * hash.c (TOLOWER): Fix definition when STANDALONE.
2073         Reported by Beni Serfaty.
2074
2075 2006-03-02  Mauro Tortonesi  <mauro@ferrara.linux.it>
2076
2077         * http.c (http_loop): Fixed recursive HTTP retrieval.
2078
2079 2006-02-28  Hrvoje Niksic  <hniksic@xemacs.org>
2080
2081         * http.c (extract_param): Declare extern so it can be used from
2082         other files.
2083         (extract_param): Return error for empty name.
2084
2085 2006-02-28  Hrvoje Niksic  <hniksic@xemacs.org>
2086
2087         * url.c (find_last_char): Define in terms of memrchr.
2088
2089         * cmpt.c (memrchr): Define it on systems that don't have it.
2090
2091         * http.c (extract_param): New function for parsing header values
2092         with parameters.
2093         (parse_content_disposition): Use it.  Don't allow slashes and
2094         backslashes in the file name.
2095
2096 2006-02-27  Hrvoje Niksic  <hniksic@xemacs.org>
2097
2098         * url.c (path_simplify): Don't preserve ".." at beginning of path.
2099         Suggested by Frank McCown.
2100
2101 2006-02-25  Hrvoje Niksic  <hniksic@xemacs.org>
2102
2103         * http.c (gethttp): Only use FILE.N.html if FILE.html exists.
2104
2105 2006-02-09  Hrvoje Niksic  <hniksic@xemacs.org>
2106
2107         * mswindows.c (run_with_timeout): Made thread_hnd non-static.
2108
2109 2006-02-05  Hrvoje Niksic  <hniksic@xemacs.org>
2110
2111         * retr.c (sleep_between_retrievals): Sleep at a minimum of 1/2 of
2112         the specified wait period.
2113
2114 2006-02-03  Hrvoje Niksic  <hniksic@xemacs.org>
2115
2116         * utils.c (number_to_string): Don't use sprintf for printing
2117         WGINT_MIN; simply divide n by 10 and defer printing the last
2118         digit.
2119         (number_to_string): Removed the SPRINTF_WGINT macro.
2120
2121 2006-02-03  Mauro Tortonesi  <mauro@ferrara.linux.it>
2122
2123         * http.c: Fixed support for Content-Disposition header.
2124
2125         * test.c: Added test_parse_content_disposition to the list of unit
2126         tests to run.
2127
2128 2006-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
2129
2130         * hash.c: Don't define countof if it's already defined.
2131
2132         * hash.c: Obtain the definition of uintptr_t when standalone.
2133
2134 2006-01-30  Mauro Tortonesi  <mauro@ferrara.linux.it>
2135
2136         * http.c: Changed output format. Removed excessively verbose debugging
2137         output.
2138
2139 2005-12-07  Mauro Tortonesi  <mauro@ferrara.linux.it>
2140
2141         * http.c: Fixed pre-download verbose output which was broken by
2142         HTTP code refactoring.
2143
2144 2005-11-23  Mauro Tortonesi  <mauro@ferrara.linux.it>
2145
2146         * http.c: Refactored HTTP code.  If -O is not used, the new code
2147         delays the choice of the file name where the downloaded resource
2148         will be saved until the HTTP headers have been retrieved.
2149         Added support for Content-Disposition header.
2150
2151 2005-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
2152
2153         * hash.c (INVALID_PTR): Use uintptr_t instead of unsigned long.
2154         (hash_pointer): Don't assume a pointer fits in `unsigned long'.
2155
2156 2005-11-02  Mauro Tortonesi  <mauro@ferrara.linux.it>
2157
2158         * Makefile.in: Removed support for unit testing (now it is in
2159         tests/Makefile.in).
2160
2161 2005-10-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
2162
2163         * Makefile.in: Added basic support for unit testing.
2164
2165         * test.c: Ditto.
2166
2167         * test.h: Ditto.
2168
2169 2005-10-13  Daniel Stenberg  <daniel@haxx.se>
2170
2171         * http-ntlm.c (ntlm_output): Fixed buffer overflow vulnerability.
2172
2173 2005-10-09  Russ Allbery  <rra@stanford.edu>
2174
2175         * snprintf.c: Remove round to round_int and pow10 to pow10_int, to
2176         avoid warnings from GCC 4.0.
2177
2178 2005-10-05  Mauro Tortonesi  <mauro@ferrara.linux.it>
2179
2180         * retr.c: Changed semantics of no_proxy_match.
2181
2182 2005-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
2183
2184         * main.c (main): Don't print the summary if nothing has been downloaded.
2185
2186 2005-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
2187
2188         * retr.c (retr_rate): Rename parameter from MSECS to SECS since it
2189         no longer holds milliseconds.
2190
2191 2005-09-01  Hrvoje Niksic  <hniksic@xemacs.org>
2192
2193         * progress.c: Introduce symbolic constants for "magic" values of
2194         0.2 and 0.9, REFRESH_INTERVAL and ETA_REFRESH_INTERVAL.
2195
2196 2005-08-27  Hrvoje Niksic  <hniksic@xemacs.org>
2197
2198         * cmpt.c (strtoll): Correctly handle strtoll("0x", ptr, 0) and
2199         strtoll("0x<nonhexchar>", ptr, 0) -- in both cases *ptr must be
2200         set to the position of 'x', not after it.
2201
2202 2005-08-27  Hrvoje Niksic  <hniksic@xemacs.org>
2203
2204         * hash.c (hash_table_map): Rename to hash_table_for_each and
2205         update callers.
2206         Document the meaning of the callback's return value.
2207         (hash_table_iterate): New function.
2208         (hash_table_iter_next): Likewise.
2209         Update most places that used hash_table_for_each to use the
2210         iteration, which doesn't require a temporary function with
2211         explicit state management.
2212
2213 2005-08-26  Albert Chin  <wget@mlists.thewrittenword.com>
2214
2215         * Makefile.in: Use @datadir@.  Define localedir as $(datadir)/locale.
2216
2217 2005-08-26  Jeremy Shapiro  <jnshapiro@gmail.com>
2218
2219         * openssl.c (ssl_init): Set SSL_MODE_AUTO_RETRY.
2220
2221 2005-08-23  Hrvoje Niksic  <hniksic@xemacs.org>
2222
2223         * host.c (address_list_from_ipv4_addresses): Use IP_INADDR_DATA.
2224
2225 2005-08-12  Hrvoje Niksic  <hniksic@xemacs.org>
2226
2227         * wget.h: Renamed strtoll_return to strtoll_type.
2228
2229 2005-08-11  Hrvoje Niksic  <hniksic@xemacs.org>
2230
2231         * progress.c (eta_to_human_short): Switch to days when printing
2232         more than 48h rather than 100h.  (It's not immediately apparent
2233         how many days there are in 83h.)
2234
2235 2005-08-11  Hrvoje Niksic  <hniksic@xemacs.org>
2236
2237         * cmpt.c (strtoll): Define it if missing on the system and if Wget
2238         needs it.
2239
2240         * mswindows.c (str_to_int64): Move to cmpt.c and rename to strtoll.
2241
2242 2005-08-10  Hrvoje Niksic  <hniksic@xemacs.org>
2243
2244         * host.c (print_address): Always use inet_ntop when IPv6 is
2245         enabled.
2246
2247         * host.h (ip_address): Simplify the data union.
2248
2249 2005-08-09  Hrvoje Niksic  <hniksic@xemacs.org>
2250
2251         * mswindows.c (inet_ntop): Also handle IPv4 addresses for
2252         completeness.
2253
2254 2005-08-09  Hrvoje Niksic  <hniksic@xemacs.org>
2255
2256         * http.c (gethttp): Don't read more than the amount of data
2257         specified by the content-length header.
2258
2259 2005-08-09  Vasil Dimov  <vd@datamax.bg>
2260
2261         * ftp.c (getftp): Don't free RESPLINE if ftp_response returns a
2262         status other than FTPOK.
2263
2264 2005-08-04  Giuseppe Bonacci  <g.bonacci@libero.it>
2265
2266         * ftp-ls.c (ftp_parse_unix_ls): Remember the position of the
2267         previous token instead of backtracking back to it.
2268
2269 2005-07-08  Gisle Vanem  <giva@bgnett.no>
2270
2271         * mswindows.h: Include process.h to get getpid() declaration.
2272
2273 2005-07-08  Hrvoje Niksic  <hniksic@xemacs.org>
2274
2275         * utils.c (aprintf): Use vasprintf where available.
2276
2277 2005-07-08  Hrvoje Niksic  <hniksic@xemacs.org>
2278
2279         * url.c (rewrite_shorthand_url): Simplify code using aprintf and
2280         strspn.
2281
2282 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
2283
2284         * gnutls.c (ssl_check_certificate): Check for the validity of the
2285         presented X509 certificate.
2286
2287 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
2288
2289         * openssl.c (ssl_check_certificate): Print custom error messages
2290         for frequent X509 certificate problems.
2291
2292 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
2293
2294         * mswindows.h: Define an alias for stat and fstat, as requested by
2295         config-compiler.h.
2296         (gai_strerror): Define to windows_strerror if NEED_GAI_STRERROR is
2297         defined.
2298
2299 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2300
2301         * mswindows.h: Use strtoll where available.
2302
2303 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2304
2305         * sysdep.h: Add a full declaration of fnmatch.h.
2306
2307 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2308
2309         * utils.c: Unconditionally include <setjmp.h>.
2310
2311 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2312
2313         * utils.c (fnmatch_nocase): New function.
2314         (proclist): Use it instead of fnmatch when opt.ignore_case is
2315         requested.
2316         (in_acclist): Respect opt.ignore_case.
2317         (frontcmp): Respect opt.ignore_case.
2318
2319         * options.h (struct options): New flag opt.ignore_case.
2320
2321 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2322
2323         * ptimer.c: Measure time in seconds rather than milliseconds.
2324         Adjusted all callers.
2325
2326 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2327
2328         * http.c (gethttp): When freeing MESSAGE, take into account that
2329         it can be NULL.
2330
2331 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2332
2333         * cmpt.c (timegm): Handle years after 2099.
2334
2335 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2336
2337         * cmpt.c (timegm): Remove unused variable.
2338
2339 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2340
2341         * cmpt.c (timegm): Don't call mktime; simply count the seconds
2342         between 1970-01-01 and the specified date.
2343
2344 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2345
2346         * wget.h (or): Define HAVE_SSL when either HAVE_OPENSSL or
2347         HAVE_GNUTLS are defined.
2348
2349         * gnutls.c: New file.
2350
2351 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2352
2353         * http.c (gethttp): Don't print the request write error message
2354         twice.
2355
2356 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2357
2358         * openssl.c (openssl_errstr): Instead of always using a large
2359         static buffer, only allocate the error string when there is an
2360         actual error.
2361
2362 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2363
2364         * xmalloc.c (debugging_free): Prefix hex pointer value with "0x"
2365         when printing.
2366
2367 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2368
2369         * utils.c (NEXT_BASE64_CHAR): Rename to NEXT_CHAR and simplify to
2370         get the next non-whitespace character.
2371
2372 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2373
2374         * utils.c (base64_decode): Don't silently tolerate non-base64
2375         non-white-space characters in the base64 stream.
2376
2377 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2378
2379         * connect.c (LAZY_RETRIEVE_INFO): Make last_tick unsigned to match
2380         transport_map_modified_tick.
2381
2382 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2383
2384         * config-post.h (alloca): Updated declaration to not enumerate all
2385         Windows compilers.
2386
2387 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2388
2389         * openssl.c (openssl_errstr): Separate error messages with "; ".
2390
2391 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
2392
2393         * ftp.c (getftp): Ditto.
2394
2395         * http.c (gethttp): Use fd_errstr.
2396
2397         * connect.c (fd_register_transport): Restructure parameters to
2398         include only a single structure that describes transport
2399         implementation.
2400
2401         * openssl.c (openssl_errstr): New function: dump SSL error strings
2402         into a static buffer and return a pointer to the buffer.
2403
2404         * connect.c (fd_errstr): New function; returns transport-specific
2405         error message, or strerror(errno) if transport doesn't supply one.
2406
2407 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
2408
2409         * mswindows.h: Also wrap accept() and listen().
2410
2411 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
2412
2413         * url.c (path_end): Skip separators appropriate for the scheme.
2414         (strpbrk_or_eos): Remove gcc-specific version, as the optimization
2415         it tried to perform no longer applies.
2416
2417 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2418
2419         * host.c: Don't include "connect.h" now that we no longer have
2420         socket_has_inet6.
2421
2422 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2423
2424         * host.c: Remove extraneous definition of netdb.h.
2425
2426 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2427
2428         * http.c (gethttp): Skip error message body in the keep-alive
2429         case.
2430
2431 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2432
2433         * url.c (url_parse): Would crash when parsing fragments.  Support
2434         fragments for FTP URLs too.
2435
2436 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2437
2438         * version.c: Don't use "cvs" in version name, since we're not
2439         using CVS anymore.
2440
2441 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2442
2443         * progress.c (create_image): Ditto.
2444
2445         * retr.c (retr_rate): Display smaller rate numbers with greater
2446         precision.
2447
2448 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2449
2450         * http.c (response_head_terminator): Minor optimization.
2451
2452         * retr.c (fd_read_hunk): Call terminator with pointer to the start
2453         of the data and the pointer to the current data.  Changed all
2454         callers.
2455
2456 2005-07-01  Hrvoje Niksic  <hniksic@xemacs.org>
2457
2458         * url.c (url_parse): Make sure u->params is not initialized for
2459         http/https URLs.
2460         (url_parse): Don't crash on garbage following []-delimited IPv6
2461         addresses.
2462
2463 2005-07-01  Hrvoje Niksic  <hniksic@xemacs.org>
2464
2465         * main.c (print_help): Don't refer to the non-existent -nr in
2466         description of --mirror.
2467
2468 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
2469
2470         * host.c (pretty_print_address): Renamed to just print_address.
2471         Clarify documentation.
2472
2473 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
2474
2475         * http.c (gethttp): Explicitly document the different cases when
2476         generating the Host header.
2477
2478 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
2479
2480         * host.c (pretty_print_address): Handle error result from
2481         inet_ntop.
2482
2483 2005-06-30  Gisle Vanem  <giva@bgnett.no>
2484
2485         * mswindows.c (inet_ntop): New function.  Print IPv6 addresses
2486         using WSAAddressToString.
2487
2488 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2489
2490         * progress.c (dot_update): Remove unused variable row_qty.
2491
2492 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2493
2494         * main.c: Check for both SIGHUP and SIGUSR1 before using them.
2495
2496 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2497
2498         * utils.c: Unconditionally include locale.h.
2499
2500 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2501
2502         * ptimer.c: Include sys/time.h to get struct timeval.
2503
2504 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2505
2506         * wget.h: Remove obsolete definition of with_thousand_seps_sum.
2507
2508 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2509
2510         * gnu-md5.h: Unconditionally include limits.h.
2511
2512 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2513
2514         * utils.c (random_number): Use lrand48 if available.
2515         (random_float): Use drand48 if available.
2516
2517 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2518
2519         * main.c (secs_to_human_time): Use print_decimal when printing
2520         total download time in seconds.
2521
2522         * progress.c (print_row_stats): Use it to print total download
2523         time at the end of the download.
2524         (create_image): Ditto.
2525
2526         * utils.c (print_decimal): New function; print small decimal
2527         numbers with more precision than large ones.
2528
2529         * progress.c (print_row_stats): New function.  Print ETA after the
2530         download rate at the end of each row.
2531
2532 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
2533
2534         * init.c (parse_line): Check for alphanumerics.
2535
2536 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
2537
2538         * (dot_create): Remove unnecessary casts.
2539
2540 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
2541
2542         * ftp.c (getftp): Delete trailing newlines from LIST output so
2543         lines don't come out with trailing \015\012 with -S.
2544
2545 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2546
2547         * mswindows.h: Remove superfluous includes.
2548
2549 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2550
2551         * config-post.h (alloca): Amend alloca declaration to take care of
2552         all Win32 compilers, not just MSVC and MinGW.
2553
2554 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2555
2556         * utils.c (get_grouping_data): Force separator to "." rather than
2557         " " when "," is taken.
2558
2559 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2560
2561         * wget.h (PTR_FORMAT): Cast the result of sizeof to int before
2562         passing it to printf's %*.
2563
2564         * retr.h: Declare output_stream and output_stream_regular.
2565
2566         * ftp.h: Declare ftp_last_respline.
2567
2568         * convert.h: Declare dl_url_file_map.
2569
2570         * http.h: New file.
2571
2572 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2573
2574         * cookies.c: Make cookies_now static.
2575
2576 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2577
2578         * utils.c (human_readable): Remove intermediary cast to long; MSVC
2579         has problems casting *unsigned* __int64 to double.
2580
2581 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2582
2583         * sysdep.h: Use the system-provided fnmatch by default.
2584
2585 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2586
2587         * http.c (mktime_from_utc): Renamed to timegm and moved to cmpt.c.
2588         Don't compile it if GNU timegm is available.
2589         (http_atotm): Use timegm.
2590
2591 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2592
2593         * http.c (http_atotm): Correctly query the old locale value.
2594
2595 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2596
2597         * config-post.h (alloca): Don't #define alloca under MinGW32,
2598         which defines it in malloc.h, included from mswindows.h.
2599
2600 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2601
2602         * utils.c (get_grouping_data): Force the use of separators in C
2603         locale.
2604
2605 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2606
2607         * main.c (i18n_initialize): Set all locale categories.
2608
2609         * http.c (http_atotm): Temporarily set locale to "C".
2610
2611 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2612
2613         * http.c (gethttp): Improve "POST data file missing" error
2614         message.
2615
2616 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2617
2618         * progress.c (set_progress_implementation): Type COLON as const
2619         char *.
2620
2621 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2622
2623         * utils.c (with_thousand_seps): Handle negative numbers.
2624
2625 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2626
2627         * progress.c (create_image): Mark the "eta" string for translation.
2628
2629 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2630
2631         * html-url.c (get_urls_file): Don't explicitly set entry->next to
2632         NULL since entry is already zeroed out.
2633
2634 2005-06-26  Gisle Vanem  <giva@bgnett.no>
2635
2636         * mswindows.h: Define gai_strerror under MinGW.
2637
2638 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2639
2640         * utils.c (with_thousand_seps): Correctly implement thousand seps
2641         consisting of more than one character.
2642
2643 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2644
2645         * main.c (secs_to_human_time): Ditto.
2646
2647         * progress.c (create_image): Print more exact duration of very
2648         short downloads.
2649
2650         * main.c (secs_to_human_time): Don't translate time suffixes "h",
2651         "m", and "s", which are not strictly SI, but are "accepted for use
2652         with SI".
2653         (secs_to_human_time): Print really small intervals as 0s, not
2654         0.00s.
2655
2656 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2657
2658         * config-post.h: Replace the alloca declaration with the one from
2659         the latest Autoconf manual.  This should remove a warning with GCC
2660         on AIX.
2661
2662 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2663
2664         * ftp.c (getftp): Always invoke SIZE, not only when continuing a
2665         download.
2666
2667         * main.c (main): Ditto here.
2668
2669         * progress.c (create_image): When the download is finished, print
2670         how long it took.
2671
2672 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2673
2674         * main.c (main): Print the downloaded and quota amounts with the
2675         "human_readable" function.
2676
2677         * ftp.c (print_length): Ditto.
2678
2679         * http.c (gethttp): Don't display thousand separators.
2680
2681         * utils.c (with_thousand_seps): Rewritten to respect locale
2682         settings and to be type size agnostic.
2683
2684 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2685
2686         * utils.c (human_readable): Divide with 1024 instead of shifting
2687         so the operation can work with non-integer N.
2688
2689 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2690
2691         * progress.c (eta_to_human): New logic for more human-readable
2692         ETA.
2693
2694 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2695
2696         * utils.c (with_thousand_seps_sum): Decrease buffer size so it
2697         cannot overrun add_thousand_seps's buffer.
2698
2699 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2700
2701         * utils.c (SPRINTF_WGINT): The correct format is %I64d, not just
2702         %I64.
2703
2704 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2705
2706         * http.c (http_loop): Don't warn about wildcards in HTTP URLs if
2707         globbing isn't requested in the first place.
2708
2709         * retr.c (retrieve_url): Temporarily turn off globbing when
2710         processing HTTP->FTP redirects.
2711
2712 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2713
2714         * utils.c (with_thousand_seps_sum): Now defined only if
2715         SUM_SIZE_INT is double.
2716
2717         * wget.h (SUM_SIZE_INT): Instead of bothering with long, long
2718         long, __int64, and friends, simply either use wgint or double, end
2719         of story.  Since we know how to print either, we no longer need
2720         LARGE_INT_FMT.
2721
2722         * sysdeps.h (LARGE_INT): Renamed to SUM_SIZE_INT to better reflect
2723         its intent, and moved to wget.h.
2724
2725 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2726
2727         * Makefile.in: No need to clean .libs.
2728
2729 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2730
2731         * cookies.c (parse_set_cookies): Cast pointer subtraction to int
2732         before using it with %d; AIX compiler warns on this.
2733         Reported by Jens Schleusener.
2734
2735 2005-06-24  Hrvoje Niksic  <hniksic@xemacs.org>
2736
2737         * http.c (gethttp): Don't prepend / here.
2738
2739         * cookies.c (cookie_handle_set_cookie): Prepend / to PATH.
2740         (cookie_header): Ditto.
2741
2742 2005-06-24  Hrvoje Niksic  <hniksic@xemacs.org>
2743
2744         * init.c: opt.verbose must be declared as int.
2745
2746 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
2747
2748         * cmpt.c (strpbrk): Removed.
2749         (mktime): Removed.
2750         Include <time.h>.
2751
2752 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
2753
2754         * utils.c (read_file): Ditto.
2755
2756         * main.c (main): Use struct_fstat.
2757
2758         * mswindows.h (struct_fstat): Define a struct_fstat to deal with
2759         the fact that Borland 5.5 has 64-bit stat, but not 64-bit fstat!
2760
2761 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
2762
2763         * sysdep.h: Remove code that deals with Watcom.
2764
2765 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2766
2767         * all: Use bool instead of int and false/true instead of 0/non-0
2768         for boolean variables and values.
2769
2770 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2771
2772         * sysdep.h: Include the stdbool.h/_Bool/bool blurb from Autoconf.
2773
2774 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2775
2776         * init.c (cmd_lockable_boolean): Removed.
2777
2778 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2779
2780         * cookies.c (struct cookie): Use 1-bit bitfields for booleans
2781         which makes the structure takes less space at no cost in
2782         complexity.
2783
2784 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2785
2786         * Makefile.in ($(OBJ)): Add the config.h dependency.
2787
2788 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2789
2790         * openssl.c, connect.c, host.c: Replace instances of #ifdef
2791         ENABLE_DEBUG if (opt.debug) {...} #endif with IF_DEBUG {...}.
2792
2793         * main.c: Rename the IF_DEBUG defined here to WHEN_DEBUG.
2794
2795         * wget.h (IF_DEBUG): New macro.
2796         (DEBUGP): Define in terms of IF_DEBUG.
2797
2798 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2799
2800         * http.c (gethttp): Only handle --set-cookies (and assert that
2801         cookie jar exists) if opt.cookies is true.  Failure to do so
2802         triggered the assert when --no-cookies was used and the server
2803         sent a Set-Cookie header.  Ouch!
2804
2805 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2806
2807         * connect.c (select_fd): Expect select() to exist.
2808
2809         * utils.c (xsleep): Always use select() as sleep fallback on
2810         non-Windows platforms.
2811
2812         * ptimer.c: Delete the implementation of PTIMER_TIME.
2813
2814         * main.c: Assume existence of signal(), test for different signal
2815         names instead.
2816
2817         * cmpt.c: Better document reasons why certain functions are
2818         included.
2819
2820 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2821
2822         * Makefile.in: Remove the manually maintained dependency list;
2823         make all object files depend on every header.
2824
2825 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
2826
2827         * hash.c: Rename "mapping" to "cell" to avoid confusion with the
2828         term "mapping" (or "map") sometimes being used for the entire hash
2829         table.  Also rename "non-empty" to "occupied" for easier reading
2830         of if (!NON_EMPTY (...)) ... .
2831
2832 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
2833
2834         * main.c, ptimer.c, sysdep.h, utils.c: Use #elif to simplify reading of
2835         chained if-else-else-else-... statements.
2836
2837 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
2838
2839         * all: Return type of signal handlers is `void'.  Include signal.h
2840         unconditionally.
2841
2842         * all: Don't explicitly cast values returned by malloc.  We no
2843         longer support ancient compilers that don't declare malloc, and we
2844         never supported C++ builds.
2845
2846 2005-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
2847
2848         * all: Don't declare errno.  Include both time.h and sys/time.h,
2849         as long as sys/time.h exists.  Don't dereference function pointers
2850         when invoking the functions they point to.
2851
2852         * cmpt.c (memmove): Remove function mandated by C89.
2853         (strerror): Ditto.
2854         (strstr): Ditto.
2855
2856         * all: Undo the K&R-ization changes from 2005-05-03.
2857
2858         * all: Remove support for K&R compilers: use C89 function
2859         declarations, remove definition of PARAMS, remove support for
2860         varargs, and remove ansi2knr.  Assume the presence of time.h,
2861         string.h, and other headers mandated by C89.
2862
2863 2005-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
2864
2865         * init.c (cmd_lockable_boolean): Don't recognize literal "2" and
2866         "-1" values; unlike 0 and 1, those should never be exposed to the
2867         user.  Update the error message to be more self-consistent, as
2868         proposed by Benno Schulenberg.
2869
2870 2005-06-18  Hrvoje Niksic  <hniksic@xemacs.org>
2871
2872         * http.c (gethttp): Don't free "head" before using it to save
2873         headers.
2874
2875 2005-06-18  Hrvoje Niksic  <hniksic@xemacs.org>
2876
2877         * http.c (gethttp): When -E is in use, check for file existence
2878         after appending ".html" to the name and modify the file name if
2879         necessary.
2880
2881 2005-06-17  Hrvoje Niksic  <hniksic@xemacs.org>
2882
2883         * connect.c (socket_has_inet6): Removed.
2884
2885         * host.c (lookup_host): Don't use the AI_ADDRCONFIG getaddrinfo
2886         hint.
2887
2888 2005-06-16  Hrvoje Niksic  <hniksic@xemacs.org>
2889
2890         * init.c (cmd_lockable_boolean): Improve the error message so it
2891         lists the more useful values first.
2892
2893 2005-06-15  Hrvoje Niksic  <hniksic@xemacs.org>
2894
2895         * http.c (gethttp): Also report the system error when the POST
2896         data file is missing.
2897
2898 2005-06-15  Benno Schulenberg  <benno@nietvergeten.nl>
2899
2900         * ftp.c, http.c, connect.c, cookies.c, html-url.c, init.c, res.c:
2901         Gettext-ize messages that were previously missed.
2902
2903 2005-06-15  Hrvoje Niksic  <hniksic@xemacs.org>
2904
2905         * host.h (ip_address): Remove the trailing comma from the type
2906         enum in the no-IPv6 case.
2907
2908         * main.c (struct cmdline_option): Remove the trailing comma from
2909         the enum.
2910
2911         Reported by Jens Schleusener.
2912
2913 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
2914
2915         * url.c (strpbrk_or_eos): Check for a recent GCC version before
2916         using the statement-as-expression extension.
2917
2918 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
2919
2920         * http.c (gethttp): Don't attempt to "skip short body" if we're
2921         issuing a HEAD request (in which case the response head is not
2922         followed by a body).
2923
2924 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
2925
2926         * init.c (cmd_spec_header): Don't split the string along the
2927         commas using cmd_vector; just append the new value using
2928         vec_append instead.
2929
2930         * utils.c (vec_append): New function.
2931
2932 2005-05-27  Andreas Beckmann  <debian@abeckmann.de>
2933
2934         * html-url.c (tag_handle_link): Mark the content from the <link
2935         src="..."> tag as expecting HTML.
2936
2937 2005-05-24  Hrvoje Niksic  <hniksic@xemacs.org>
2938
2939         * http.c (http_atotm): Document the origin of the "cookie date"
2940         format.
2941
2942 2005-05-21  Hrvoje Niksic  <hniksic@xemacs.org>
2943
2944         * init.c (setval_internal): Report exact command name alongside
2945         the "display name".
2946
2947 2005-05-18  Hrvoje Niksic  <hniksic@xemacs.org>
2948
2949         * cookies.c (update_cookie_field): Explicitly cast -1 to time_t to
2950         cope with systems where time_t is unsigned.
2951
2952         * cookies.c: Remove unnecessary casts to time_t from values
2953         already of that type.
2954
2955 2005-05-17  Hrvoje Niksic  <hniksic@xemacs.org>
2956
2957         * ftp.c (ftp_loop_internal): Same here.
2958
2959         * http.c (http_loop): Don't clobber the file when -c is specified
2960         and the first attempt to retrieve the file fails.
2961
2962 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
2963
2964         * openssl.c (ssl_check_certificate): Print all issues with a
2965         certificate.
2966
2967 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
2968
2969         * ftp-basic.c: Don't xfree() the line returned by ftp_response if
2970         the returned code is not FTPOK.
2971
2972 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
2973
2974         * init.c (cleanup): Don't free the non-existent opt.ftp_acc.  Free
2975         the SSL-related stuff.
2976
2977 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
2978
2979         * ftp.c (print_length): Consistently print \n at end of the
2980         "Length" line.
2981
2982 2005-05-14  Hrvoje Niksic  <hniksic@xemacs.org>
2983
2984         * openssl.c (ssl_connect): Announce the beginning and the end of
2985         the SSL handshake when in debug mode.
2986
2987         * wget.h (PTR_FORMAT): New macro for easier printing of pointer
2988         values.  Use %0*lx along with PTR_FORMAT instead of %p.
2989
2990 2005-05-14  Hrvoje Niksic  <hniksic@xemacs.org>
2991
2992         * http.c (gethttp): Would forget to close the connection when
2993         keep_alive was not used.
2994
2995 2005-05-13  Hrvoje Niksic  <hniksic@xemacs.org>
2996
2997         * openssl.c (pattern_match): Document the code that decides
2998         whether "*" matches ".".
2999
3000 2005-05-12  Hrvoje Niksic  <hniksic@xemacs.org>
3001
3002         * ftp-ls.c (ftp_index): Use %d to print the port number, which is
3003         now int.
3004         From Steven M. Schweda's VMS patches.
3005
3006 2005-05-12  Hrvoje Niksic  <hniksic@xemacs.org>
3007
3008         * url.c (rewrite_shorthand_url): Don't rewrite "https://host" to
3009         "ftp://https//host" when SSL is not used.
3010
3011 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
3012
3013         * openssl.c (ssl_check_server_identity): Renamed to
3014         ssl_check_certificate because it does more than just checking the
3015         server's identity.
3016         (ssl_check_certificate): Tell the user about
3017         --no-check-certificate.
3018
3019 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
3020
3021         * openssl.c (ssl_init): Always use SSL_VERIFY_NONE, so that the
3022         handshake finishes even if the certificate is invalid.  That way
3023         ssl_check_server_identity can provide better diagnostics on why
3024         the verification failed.
3025
3026 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
3027
3028         * openssl.c (pattern_match): New function.
3029         (ssl_check_server_identity): Treat peer certificate common name as
3030         wildcard.
3031
3032 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
3033
3034         * openssl.c (ssl_check_server_identity): Print certificate subject
3035         and issuer.
3036
3037 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
3038
3039         * res.c (res_register_specs): Correctly pass pointers to
3040         hash_table_get_pair.
3041
3042 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
3043
3044         * http.c (gethttp): Call ssl_check_server_identity.
3045
3046         * openssl.c (ssl_check_server_identity): New function, verifies
3047         that the host name in the certificate matches the actual host
3048         name.
3049         (verify_cert_callback): Removed, since it didn't do anything
3050         except returning the preverify_ok argument.
3051
3052         * connect.c (fd_transport_context): Allow retrieval of the context
3053         pointer registered with fd_register_transport.
3054
3055 2005-05-09  Hrvoje Niksic  <hniksic@xemacs.org>
3056
3057         * openssl.c (verify_cert_callback): Renamed from verify_callback.
3058         Always return the received "ok" value.  Print the X509 name in
3059         debug mode.
3060         (ssl_init): Enable partial writes in SSL context.
3061
3062 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
3063
3064         * http.c (http_loop): Check for wildcards in the URL path
3065         component, not in the whole URL.
3066
3067         * ftp.c (ftp_loop): Check for wildcards in URL path before
3068         unescaping, so the users can escape globbing metacharacters with %
3069         escapes.
3070
3071 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
3072
3073         * init.c (run_command): Correctly interpret the return value of
3074         parse_line.
3075         (commands): Re-alphabetize.
3076
3077 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
3078
3079         * netrc.c (parse_netrc): Explicitly check for assignment != NULL
3080         to silence warning from Borland C.
3081
3082         * url.c (sync_path): Don't unnecessarily increment p.
3083         (url_parse): Don't unnecessarily set url_encode to NULL just
3084         prior to return from the function.
3085
3086 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
3087
3088         * log.c (escnonprint_internal): Place variable declarations
3089         before other statements.
3090
3091 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
3092
3093         * html-url.c: Include recur.h.
3094
3095         * http.c (request_new): Define as accepting no args.
3096
3097 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
3098
3099         * url.c (strpbrk_or_eos): Made inline.  Use strchr(s, '\0') for
3100         finding the NUL char position.
3101
3102 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
3103
3104         * url.c (decide_copy_method): Renamed to char_needs_escaping.
3105         Since it now returns only two possible values, change it to return
3106         boolean (int).
3107
3108 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
3109
3110         * ftp-basic.c (ftp_request): Prevent newlines in VALUE causing
3111         inadvertent sending of multiple FTP commands.
3112
3113 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
3114
3115         * url.c (decide_copy_method): Never cause reencode_escapes to
3116         decode % escapes; it is too intrusive and breaks some servers.
3117
3118 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
3119
3120         * http.c (gethttp): When tunnelling SSL traffic over proxy with
3121         CONNECT, we're really talking to the remote server directly.
3122         Because of this, the request-line argument must be the URL path
3123         rather than the whole URL, as it would be when using regular
3124         proxies.
3125         Reported by Charles Lane.
3126
3127 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
3128
3129         * init.c (cmd_spec_useragent): Allow empty User-Agent.
3130
3131         * http.c (gethttp): Don't print "unknown authentication scheme"
3132         for failed Basic authentication.
3133         (SET_USER_AGENT): Don't set user-agent if opt.useragent is empty.
3134         (gethttp): Use alloca for allocation of www_authenticate.
3135
3136 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
3137
3138         * main.c (print_help): Fix wording of --secure-protocol help text.
3139
3140 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
3141
3142         * cmpt.c (strstr): Updated from glibc 2.3.5.
3143
3144 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3145
3146         * http.c (http_atotm): Zero out the whole struct tm being passed
3147         to strptime.
3148
3149 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3150
3151         * main.c (main): Propagate option name to setoptval.
3152
3153         * init.c (setoptval): Accept another argument, OPTNAME.  Propagate
3154         that argument as the option name independently of the actual
3155         command, determined by command_by_name(com).
3156
3157 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3158
3159         * init.c (parse_line): Make the return value indicate whether
3160         there was a syntax error or a setter failed.
3161         (run_wgetrc): Return an indication on whether an error has been
3162         encountered.
3163         (initialize): Abort if there have been errors running either
3164         .wgetrc file.
3165
3166 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3167
3168         * log.c (copy_and_escape): Slightly reduce code repetition between
3169         the two loops.
3170
3171 2005-05-05  Charles C.Fu  <ccwf@bacchus.com>
3172
3173         * utils.c (proclist): Strip leading slash when calling fnmatch
3174         too, otherwise wildcard comparisons always fail.
3175
3176 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3177
3178         * utils.c (touch): Set access time to current time.
3179
3180 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3181
3182         * url.c (url_unescape): Don't unescape %00, it effectively
3183         truncates the string.
3184
3185 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3186
3187         * log.c (copy_and_escape): Replace the FOR_URI argument with a
3188         slightly more general mechanism for specifying different kinds of
3189         escape.
3190
3191 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3192
3193         * ftp-basic.c (ftp_response): Fix printing FTP server response.
3194
3195 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3196
3197         * retr.c (limit_bandwidth_reset): Reset sleep_adjust.
3198         (limit_bandwidth): Don't allow huge "adjustment" values that
3199         result from being suspended for a while.
3200
3201 2005-05-04  Hrvoje Niksic  <hniksic@xemacs.org>
3202
3203         * wget.h: If gettext was found but libtintl.h wasn't, declare
3204         gettext's return type to avoid type mismatches.
3205
3206 2005-05-03  Hrvoje Niksic  <hniksic@xemacs.org>
3207
3208         * url.c (url_parse): Rename label `error' to avoid conflict with
3209         identifier.
3210
3211         * retr.c (fd_read_body): Rename label `out' to avoid conflict with
3212         identifier.
3213         (fd_read_hunk): Use explicit double constant.
3214         (retrieve_from_file): Don't use string concatenation.
3215         (sleep_between_retrievals): Make sure xsleep is called with a
3216         `double' argument.
3217         (no_proxy_match): Define as static, like it is declared.
3218
3219         * progress.c (bar_create): Use 0.0 instead of 0 because K&R
3220         compilers can't automatically promote it.
3221
3222         * http-ntlm.c (ntlm_output): Replace \xHH sequences with \OOO for
3223         the sake of old compilers.
3224
3225         * ftp.c (ftp_loop_internal): Don't use string concatenation.
3226
3227         * http.c (request_send): Use explicit double constants when
3228         calling fd_read and fd_write.
3229         (post_file): Ditto.
3230         (gethttp): Ditto.
3231         (skip_short_body): Ditto.
3232
3233         * ftp-basic.c: When calling fd_write, specify the last argument as
3234         a `double' constant for the sake of K&R compilers which don't see
3235         the prototype and therefore can't promote it to double
3236         automatically.
3237
3238         * cookies.c (cookie_jar_load): Rename abort label to abort_cookie
3239         to avoid name conflict in K&R compilers.
3240
3241 2005-04-29  Hrvoje Niksic  <hniksic@xemacs.org>
3242
3243         * ptimer.c (posix_init): Since we allow _POSIX_MONOTONIC_CLOCK==0,
3244         it is not enough to check for _POSIX_MONOTONIC_CLOCK-0, we must
3245         also check for defined(_POSIX_MONOTONIC_CLOCK).
3246
3247 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
3248
3249         * ftp.c, hash.c, connect.c, host.c, http.c: Remove unreached code,
3250         such as "break" following return or abort.
3251
3252 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
3253
3254         * init.c (commands): Wrap the use of opt.random_file in #ifdef
3255         HAVE_SSL.
3256
3257 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
3258
3259         * http.c (gethttp): Correctly set the user agent.
3260
3261 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
3262
3263         * init.c (cmd_spec_useragent): Free the old value of
3264         opt.useragent before setting the new one.
3265
3266 2005-04-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
3267
3268         * main.c: Map --ftp-password, --http-password and --proxy-password to
3269         the new ftppassword, httppassword and proxypassword commands
3270         respectively.  Document the --user and --password options in the help
3271         string.
3272
3273 2005-04-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
3274
3275         * ftp.c: Add support for --user and --password.
3276
3277         * http.c: Add support for --user and --password.
3278
3279         * init.c: Deprecated ftppasswd, httppasswd, login, passwd and
3280         proxypasswd commands.  Added ftppassword, ftpuser, httppassword,
3281         password, proxypassword and user commands.
3282
3283         * main.c: Renamed --ftp-passwd to --ftp-password.  Added --ftp-user,
3284         --http-password, --password, --proxy-password and --user.  Deprecated
3285         --http-passwd and --proxy-passwd.  Added documentation for new options
3286         and removed documentation for deprecated options in the help string.
3287
3288         * options.h (struct options): Added user and passwd members to handle
3289         --user and --password respectively.  Renamed ftp_acc and ftp_pass
3290         members to ftp_user and ftp_passwd for consistency.
3291
3292 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
3293
3294         * main.c (print_help): Advertise "DER", not "ASN1".
3295
3296 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
3297
3298         * openssl.c (init_prng): Disable the weak random seed by default.
3299
3300         * http.c (gethttp): Simplify SSL initialization; disable SSL when
3301         anything goes wrong with the initialization.
3302
3303         * options.h (struct options): New option opt.random_file.
3304
3305 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
3306
3307         * init.c: Wrap private key commands in IF_SSL.
3308
3309 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
3310
3311         * openssl.c (ssl_init): Ditto.
3312
3313         * options.h (struct options): Allow separate specification of key
3314         type and certificate type.
3315
3316         * init.c (cmd_spec_cert_type): Provide a "der" synonym for "asn1"
3317         certificate encoding.
3318
3319 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3320
3321         * openssl.c: Renamed "gen_sslfunc.c" to "openssl.c" and
3322         "gen_sslfunc.h" to "openssl.h".  This reflects the intent of
3323         openssl.c encapsulating the OpenSSL-specific code.
3324
3325 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3326
3327         * init.c: Renamed "closure" (a synonym for context in some
3328         cultures) to "place", which more accurately reflects the usage.
3329
3330 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3331
3332         * gen_sslfunc.c (ssl_init): Use default locations for loading the
3333         certificate bundles.
3334         (ssl_init_prng): Disable the cryptographically weak PRNG
3335         initialization fallback.
3336
3337         * init.c: Renamed SSL command-line arguments and wgetrc commands.
3338         (defaults): Check the server certificate by default.
3339
3340 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3341
3342         * cookies.c (cookie_handle_set_cookie): Delete the part of the
3343         path after the trailing slash.
3344
3345         * http.c (gethttp): Call cookie_handle_set_cookie with path that
3346         begins with '/'.
3347
3348 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3349
3350         * http.c (gethttp): Call skip_short_body only if keep_alive is in
3351         use.
3352         (gethttp): Send the User-Agent header with the CONNECT request as
3353         well.
3354
3355 2005-04-25  Hrvoje Niksic  <hniksic@xemacs.org>
3356
3357         * main.c (option_data): Removed support for the undocumented flag
3358         --use-proxy.
3359
3360 2005-04-25  Hrvoje Niksic  <hniksic@xemacs.org>
3361
3362         * main.c (option_data): Don't treat -Y as a boolean switch; treat
3363         it as a value switch instead, so "-Y off" continues to work.
3364
3365 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
3366
3367         * utils.c (aprintf): Delete unreachable statement.
3368
3369 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
3370
3371         * host.c (cmp_prefer_ipv4): New function.
3372         (cmp_prefer_ipv6): New function.
3373         (lookup_host): Use the appropriate comparator according to
3374         opt.prefer_family.
3375
3376         * init.c: New option prefer_family.
3377
3378         * host.c (is_valid_ipv6_address): Spell NS_* constants in lower
3379         case to avoid clash with system headers.
3380         (lookup_host): Reorder the addresses so that IPv4 ones come first.
3381
3382         * utils.c (stable_sort): New function.
3383
3384 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
3385
3386         * connect.c (retryable_socket_connect_error): Return 0 for
3387         ENETUNREACH and EHOSTUNREACH.
3388
3389 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
3390
3391         * cmpt.c: Reenable the memmove implementation for systems that
3392         lack it.
3393
3394         * http.c (gethttp): Store the "authorized" state of the persistent
3395         connection.
3396         (request_remove_header): New function.
3397         (gethttp): Don't send the "Basic" authentication if the connection
3398         is already authorized.
3399
3400 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
3401
3402         * utils.c (base64_encode): Treat input as unsigned chars.
3403         Required for correct encoding of binary stuff.
3404
3405 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
3406
3407         * http-ntlm.c: Format the function definitions in an
3408         ansi2knr-friendly fashion.
3409
3410 2005-04-22  Hrvoje Niksic  <hniksic@xemacs.org>
3411
3412         * http.c (gethttp): Handle multiple WWW-Authentication headers,
3413         only one of which is recognized.  Those are sent by IIS with NTLM
3414         authorization.
3415         (create_authorization_line): Propagate information whether
3416         authorization is finished.
3417         (gethttp): Only stop authorization when it's really finished, not
3418         after fixed two steps.
3419
3420 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
3421
3422         * gen_sslfunc.c (ssl_init): Fix warning message text; mark the
3423         message as translatable.
3424
3425 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
3426
3427         * main.c (print_help): Print the EGD option outside the cluster of
3428         SSL options.
3429
3430 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
3431
3432         * http-ntlm.c (ntlm_output): Fix setting the domain.
3433         Suggested by Sami Krank.
3434
3435 2005-04-20  Mauro Tortonesi  <mauro@ferrara.linux.it>
3436
3437         * connect.c: Set IPV6_V6ONLY socket option when -6 switch is used.
3438
3439 2005-04-20  FUJISHIMA Satsuki  <sf@FreeBSD.org>
3440
3441         * http.c (request_set_header): Fix the check whether a new header
3442         needs to be allocated.
3443
3444 2005-04-18  Hrvoje Niksic  <hniksic@xemacs.org>
3445
3446         * utils.c (base64_encode): Use the parameter order that makes more
3447         sense.  Return the length of the base64 written.  Updated all
3448         callers.
3449
3450 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
3451
3452         * http.c (request_set_header): Free NAME when VALUE is NULL and
3453         freeing the header name is requested.
3454
3455 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
3456
3457         * snprintf.c (fmtstr): Declare VALUE as const char *.
3458         Based on patch by Russ Allbery.
3459
3460 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
3461
3462         * snprintf.c (fmtfp): More correct handling of significant digit
3463         count with %g -- 0.002 has one significant digit, not three.
3464
3465 2005-04-16  Hrvoje Niksic  <hniksic@xemacs.org>
3466
3467         * retr.c (fd_read_body): Respect read timeout with non-interactive
3468         or no progress gauge -- treat ETIMEDOUT specially only when
3469         progress_interactive.
3470         Reported by FUJISHIMA Satsuki.
3471
3472 2005-04-16  FUJISHIMA Satsuki  <sf@FreeBSD.org>
3473
3474         * http.c (gethttp): Don't use HTTP/1.0 persistent connections over
3475         proxy.
3476
3477 2005-04-16  Hrvoje Niksic  <hniksic@xemacs.org>
3478
3479         * snprintf.c: Use the PARAMS macro to handle prototypes.  Write
3480         function definitions in the ansi2knr-friendly way.
3481         (fmtstr): If string precision is specified, don't read VALUE past
3482         it.
3483         (dopr): Actually print %g and %e formats.
3484         (fmtfp): Fix a bug that caused 0.01 to be printed as 0.1.
3485         (fmtfp): Use LLONG in floating point conversions to be able to
3486         convert more digits.
3487         (fmtfp): Interpret precision as number of significant digits with
3488         %g.
3489         (fmtfp): Omit trailing decimal zeros with %g.
3490
3491         * snprintf.c: Don't include <ctype.h> because none of it is used.
3492         Include strings.h/string.h, as per Autoconf.
3493
3494 2005-04-15  Hrvoje Niksic  <hniksic@xemacs.org>
3495
3496         * ptimer.c: Use _POSIX_TIMERS - 0 > 0, which handles the case when
3497         _POSIX_TIMERS is defined but empty, as well as the case when it is
3498         undefined.  Do the same with the check for _POSIX_MONOTONIC_CLOCK.
3499         Suggested by Larry Jones.
3500
3501 2005-04-15  Hrvoje Niksic  <hniksic@xemacs.org>
3502
3503         * ptimer.c: Check that _POSIX_TIMERS is defined as well as > 0.
3504         Problem reported by Steven M. Schweda.
3505
3506 2005-04-14  Hrvoje Niksic  <hniksic@xemacs.org>
3507
3508         * http.c (skip_short_body): Print the skipped body data in debug
3509         mode.
3510         (skip_short_body): Don't skip more than 4k of body data.
3511         (skip_short_body): Return whether the skipping was successful.
3512         (gethttp): If skip_short_body failed, invalidate the connection.
3513
3514 2005-04-12  Gisle Vanem  <giva@bgnett.no>
3515
3516         * ftp.c (getftp): Ditto.
3517
3518         * http.c (gethttp): Open the output file in binary mode.
3519
3520 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3521
3522         * hash.c: Conditionalize including config.h on HAVE_CONFIG_H
3523         instead of on STANDALONE.
3524
3525 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3526
3527         * gen_sslfunc.c (ssl_print_errors): Made static.
3528         (ssl_print_errors): Eliminate potentially dangerous fixed-size
3529         error buffer.  Passing NULL to ERR_error_string causes it to use
3530         its own static buffer, which is fine for our purposes.
3531
3532         * gen_sslfunc.c: Include gen_sslfunc.h.  Make the declarations of
3533         ssl_init and ssl_conect match the actual definitions.
3534         (ssl_connect): Simply return a boolean, the SSL context is no
3535         longer useful as a return value.
3536
3537         * retr.c: Don't include SSL headers; we don't need them.
3538
3539 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3540
3541         * config-post.h: Don't define _VA_LIST under Solaris; it breaks
3542         compilation with GCC 3.4 under Solaris 10.  (It was defined to
3543         avoid a warning with previous versions of GCC.)
3544
3545 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3546
3547         * xmalloc.c (register_ptr): Warn the user to increase SZ prior to
3548         aborting.
3549
3550 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3551
3552         * convert.c (convert_cleanup): Free converted_files.
3553
3554 2005-04-10  Hrvoje Niksic  <hniksic@xemacs.org>
3555
3556         * wget.h (DEBUGP): Use __builtin_expect to give a hint to GCC that
3557         opt.debug is false in the vast majority of cases.
3558
3559 2005-04-10  Hrvoje Niksic  <hniksic@xemacs.org>
3560
3561         * config-post.h: Declare alloca as void *, not char *.
3562
3563 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
3564
3565         * recur.c (download_child_p): When -p is used, (temporarily)
3566         ignore accept/reject rules for HTMLs, even when they are at the
3567         maximum recursion depth.  That is because with -p we are, if
3568         necessary, overstepping the max. depth to get the requisites.
3569
3570 2004-06-12  Larry Jones <lawrence.jones@ugsplm.com>
3571
3572         * recur.c (download_child_p): Correct the logic in check number 6:
3573         test opt.reclevel (not DEPTH) against INFINITE_RECURSION.
3574
3575 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
3576
3577         * url.c: Use "static const" in preference to "const static".
3578         Sun's cc warns that "storage class after type is obsolescent".
3579
3580         * url.c (urlchr_table): Don't mark ~ as unsafe, too many broken
3581         web sites are confused when ~ is changed to %7E.  Their servers
3582         redirect /%7Efoo/ to /~foo/, which Wget again accesses using %7E,
3583         causing further redirections, therefore looping infinitely.  See
3584         Debian bug #301624 for an example.
3585
3586 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
3587
3588         * alloca.c: Include wget.h to be able to use xmalloc.  In addition
3589         to defining malloc to xmalloc, also define free to xfree.
3590
3591 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
3592
3593         * http-ntlm.c (ntlm_output): Use "char", not "unsigned char" for
3594         ntlmbuf.  Our base64 functions accept char anyway.
3595         (ntlm_output): Join up the format string, since we nominally
3596         support K&R compilers.
3597         (ntlm_output): Ditto.
3598
3599 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3600
3601         * ptimer.c: Use Windows timers under Cygwin, whose POSIX timer
3602         implementation is incomplete.
3603
3604 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3605
3606         * ptimer.c (struct ptimer): Remove the unused initialized field.
3607
3608         * ptimer.c: Renamed function parameters from WT (which used to
3609         stand for wget_timer or wtimer) to PT.
3610
3611 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3612
3613         * ptimer.c (posix_init): Be smarter about choosing clocks.  In
3614         decreasing order of preference, use CLOCK_MONOTONIC,
3615         CLOCK_HIGHRES, and CLOCK_REALTIME.
3616         (ptimer_allocate): Removed.
3617
3618         * ptimer.c: Refactor the code by cleanly separating the
3619         architecture-dependent code from the architecture-independent
3620         code.
3621
3622 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3623
3624         * ptimer.c (ptimer_init): Explicitly check that
3625         _POSIX_MONOTONIC_CLOCK is *both* defined and >=0.  (Undefined
3626         symbols are >=0.)
3627
3628 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3629
3630         * ptimer.c (ptimer_diff): Fix typo affecting Windows build.
3631
3632 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3633
3634         * ptimer.c (ptimer_init): In fact, _POSIX_MONOTONIC_CLOCK needs to
3635         be >= 0.
3636
3637         * ptimer.c (ptimer_init): Check whether _POSIX_MONOTONIC_CLOCK is
3638         defined instead of whether it's greater than 0.  glibc defines it
3639         to 0, but still makes it available via sysconf.
3640
3641 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3642
3643         * mswindows.c (str_to_int64): Rename OVERFLOW and UNDERFLOW to
3644         INT64_OVERFLOW and INT64_UNDERFLOW, since those names are used.
3645
3646 2005-04-07  Hrvoje Niksic  <hniksic@xemacs.org>
3647
3648         * ptimer.c: New file.  Move the "wtimer" functions from utils.c to
3649         this file and rename them to ptimer_.
3650
3651 2005-04-07  Hrvoje Niksic  <hniksic@xemacs.org>
3652
3653         * host.c (NO_ADDRESS): Define NO_ADDRESS only after the system
3654         headers have been included.
3655
3656 2005-04-06  Hrvoje Niksic  <hniksic@xemacs.org>
3657
3658         * http.c (pconn): Include NTLM data, which is per-connection.
3659         (known_authentication_scheme_p): Recognize NTLM authorization.
3660         (create_authorization_line): Call ntlm_input and ntlm_output.
3661
3662         * http-ntlm.c: New file, donated by Daniel Stenberg and originally
3663         written for curl, heavily modified for Wget.
3664
3665         * utils.c (base64_encode): Relocated from http.c, since it is now
3666         used by http-ntlm.c, and will possibly be used elsewhere.
3667         (base64_decode): New function, originally based on code from GNU
3668         recode.
3669
3670 2005-04-02  Hrvoje Niksic  <hniksic@xemacs.org>
3671
3672         * ftp.c (ftp_loop): Ditto.
3673
3674         * ftp-basic.c (ftp_pasv): Use the xzero shorthand for memset(0).
3675         (ftp_lpsv): Ditto.
3676
3677 2005-04-05  Mauro Tortonesi  <mauro@ferrara.linux.it>
3678
3679         * Makefile.in: removed string_t.c from list of source files.
3680
3681 2005-04-04  Mauro Tortonesi  <mauro@ferrara.linux.it>
3682
3683         * string_t.c: Removed.
3684
3685         * string_t.h: Removed.
3686
3687 2005-04-02  Hrvoje Niksic  <hniksic@xemacs.org>
3688
3689         * url.c (rewrite_shorthand_url): Only accept recognized schemes.
3690         That way "foo:80" will correctly be rewritten to "http://foo:80"
3691         instead of left unchanged and ultimately rejected because of
3692         "unsupported scheme foo".
3693
3694 2005-03-31  Hrvoje Niksic  <hniksic@xemacs.org>
3695
3696         * utils.c (number_to_string): Avoid explicit 64-bit constants;
3697         construct them by multiplication at compile-time.
3698
3699         * utils.c, elsewhere: Don't append "L" to 32-bit integer
3700         constants; we aren't really compilable on 16-bit systems anyway.
3701
3702         * hash.c (prime_size): Remove primes larger than 2^31, but include
3703         2^31-1, which is prime.
3704
3705 2005-03-30  Hrvoje Niksic  <hniksic@xemacs.org>
3706
3707         * utils.c (string_set_to_array): New function.
3708
3709         * convert.c: Replace the use of "slists" with sets/hash-tables,
3710         which in fact suit the intended purpose much better.
3711         downloaded_html_list is removed altogether.
3712
3713 2005-03-29  Hrvoje Niksic  <hniksic@xemacs.org>
3714
3715         * ftp.h (enum): Rename GLOBALL, GETALL, and GETONE to
3716         GLOB_GLOBALL, GLOB_GETALL, and GLOB_GETONE to avoid conflict with
3717         Linux headers.
3718
3719 2005-03-29  Hrvoje Niksic  <hniksic@xemacs.org>
3720
3721         * utils.c (numdigit): More correct handling of negative numbers.
3722
3723 2005-03-21  Hrvoje Niksic  <hniksic@xemacs.org>
3724
3725         * http.c (gethttp): Print the human-readable size.
3726
3727         * ftp.c (getftp): Print the human-readable size of the file to be
3728         downloaded.
3729
3730         * utils.c (human_readable): New function.
3731
3732         * utils.c: Renamed "legible" to "with_thousand_seps",
3733         "legible_large_int" to "with_thousand_seps_large", and "legible_1"
3734         to "add_thousand_seps".
3735
3736 2005-03-21  Hrvoje Niksic  <hniksic@xemacs.org>
3737
3738         * http.c (gethttp): Inhibit persistent connections when talking to
3739         proxies, as mandated by RFC 2068.
3740
3741 2005-03-20  Hrvoje Niksic  <hniksic@xemacs.org>
3742
3743         * url.c (unescape_single_char): New function.
3744         (url_escape_dir): Use it to unescape slashes in directory
3745         components.
3746         (url_string): Escape unsafe chars in host name, except for the ':'
3747         charaters, which can appear in IPv6 addresses.
3748
3749         * main.c (main): Don't access the cookie jar directly.
3750
3751         * log.c (escnonprint_internal): Correctly calculate the needed
3752         string size.  Don't forget the buffer's new size after having
3753         reallocated it.
3754         (log_cleanup): New function.  Free the escnonprint ring data.
3755
3756         * init.c (cleanup): Don't free the cookie jar explicitly, it is
3757         now done by http_cleanup.
3758         (cleanup): opt.user_headers is now a vector, free it with
3759         free_vec.
3760
3761         * http.c (gethttp): Make sure to free the request data, the status
3762         message, and the response data before returning from the function.
3763         (save_cookies): New function.
3764         (http_cleanup): Free the cookie jar here.
3765
3766         * hash.c: Renamed string_hash to hash_string and ptrhash to
3767         hash_pointer.  Exported hash_pointer.
3768
3769         * xmalloc.c: Organized malloc_table (previously malloc_debug) as a
3770         simple EQ hash table.  register_ptr and unregister_ptr are now of
3771         O(1) complexity.
3772
3773         * xmalloc.c: Renamed "*_debug" to debugging_* and "*_real" to
3774         checking_*.
3775
3776 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
3777
3778         * utils.c (debug_test_md5): Moved to gen-md5.c.
3779
3780         * mswindows.h: Don't declare inet_ntop, since we don't use it.
3781
3782         * mswindows.h: For consistency, also wrap closesocket, it being
3783         a Winsock call.
3784
3785         * mswindows.h: Don't declare sleep and usleep; we're defining
3786         xsleep now.
3787
3788         * mswindows.h (mkdir): Don't special-case Borland C, _mkdir
3789         works there as well.
3790
3791         * host.c: Don't include winsock header files; the correct ones
3792         are already included by mswindows.h.
3793
3794         * mswindows.c (xsleep): Round toward the nearest millisecond
3795         in an attempt to avoid average short sleeps.
3796
3797         * utils.c (wtimer_granularity): Report correct values for
3798         Windows timers and for high-resolution timers.
3799
3800         * utils.c (wtimer_initialize_once): New function, called to
3801         initialize the timer frequency.
3802
3803         * utils.c: Replace the use of GetSystemTime with high-resolution
3804         counters under Windows.  When high-resolution counters are
3805         unavailable, use GetTickCount().
3806
3807 2005-03-15  Hrvoje Niksic  <hniksic@xemacs.org>
3808
3809         * retr.c (fd_read_body): Undo the 2004-11-18 change.  Instead,
3810         always be "exact".
3811
3812 2005-03-17  Hrvoje Niksic  <hniksic@xemacs.org>
3813
3814         * ftp-basic.c (ftp_login): Don't free the string if ftp_response
3815         returned an error status because the line didn't get allocated in
3816         the first place.
3817
3818 2005-03-15  Hrvoje Niksic  <hniksic@xemacs.org>
3819
3820         * http.c (read_http_response_head): Limit the response size to 64k
3821         bytes.
3822
3823         * retr.c (fd_read_hunk): Accept a MAXSIZE argument that limits the
3824         number of bytes the function is allowed to allocate.
3825         (fd_read_line): Limit the line to 4096 bytes.
3826
3827 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
3828
3829         * wget.h: Include options.h after wgint has been defined.
3830
3831         * options.h (struct options): Declare options processed with
3832         cmd_bytes as wgint, not long.
3833
3834 2005-03-18  Hrvoje Niksic  <hniksic@xemacs.org>
3835
3836         * init.c (cmd_file): Use concat_strings.
3837
3838         * http.c (basic_authentication_encode): Use concat_strings.
3839
3840         * ftp-ls.c (ftp_index): Use concat_strings.
3841
3842         * ftp-basic.c (ftp_request): Use concat_strings.
3843
3844         * utils.c (concat_strings): New function.
3845
3846 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
3847
3848         * init.c (simple_atof): Handle negative numbers; skip whitespace
3849         before the number.
3850         (simple_atoi): Ditto.  Also, check for overflow and underflow.
3851         (cmd_number): Bail out on negative numbers.
3852         (parse_bytes_helper): Ditto.
3853
3854 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3855
3856         * http.c (gethttp): Handle multiple Set-Cookie headers sent by
3857         remote server.
3858
3859 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3860
3861         * init.c (defaults): Use passive FTP by default.
3862
3863 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3864
3865         * mswindows.c: Provide wrappers to Winsock functions that set
3866         errno to WSAGetLastError() in case of failure.  Also provide a
3867         Windows-specific version of strerror.
3868
3869         * mswindows.h: Wrap calls to socket, bind, connect, recv, send,
3870         select, getsockname, getpeername, and setsockopt.
3871
3872 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3873
3874         * url.c (url_parse): Reject port numbers larger than 65535.  We
3875         also check for overflow while parsing port numbers.
3876
3877 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3878
3879         * utils.c (read_file): Don't use wgint for file size; LFS won't
3880         work since the file is mmap'ed as a whole.
3881
3882         * options.h: Don't include stdio.h.
3883
3884         * log.c: Ditto.
3885
3886         * init.c: Disambiguate assignment from non-zero test to avoid
3887         Borland C warning.
3888
3889         * http.c (response_new): Don't needlessly post-increment count.
3890
3891         * hash.c: Include stdio.h.
3892
3893         * gnu-md5.h: Don't include stdio.h.
3894
3895         * getopt.h (struct option): Always use const.
3896
3897         * ftp.c (getftp): Avoid unnecessary assignment to RES to avoid
3898         Borland C warning.
3899
3900         * ftp-ls.c: Disambiguate assignment from non-zero test to avoid
3901         Borland C warning.
3902
3903         * cmpt.c (strptime_internal): Don't initialize rp_backup when
3904         !_NL_CURRENT to avoid Borland C warning.
3905
3906 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3907
3908         * utils.c (fopen_excl): Fix parse error when O_BINARY is
3909         available.
3910
3911 2005-03-05  Hrvoje Niksic  <hniksic@xemacs.org>
3912
3913         * url.c (url_file_name): Don't allow hosts named ".." to be
3914         appended as path elements.
3915
3916 2005-03-03  Hrvoje Niksic  <hniksic@xemacs.org>
3917
3918         * retr.c (retrieve_url): Escape location header.
3919
3920         * http.c (print_server_response_1): Escape server response when
3921         printing it.
3922         (gethttp): Escape host name, status message, location header, and
3923         content type.
3924         (http_loop): Escape error message from server.
3925
3926         * host.c (lookup_host): Escape host name when printing it.
3927
3928         * ftp.c (getftp): Escape user name when printing it.
3929         (getftp): Escape remote file and directory for printing.
3930         (getftp): Escape server listing when printing it.
3931         (ftp_retrieve_list): Escape link name and file name.
3932         (ftp_retrieve_glob): Escape file name.
3933
3934         * ftp-basic.c (ftp_response): Escape server response when printing
3935         it.
3936
3937         * cookies.c (parse_set_cookies): Escape the cookie field when
3938         printing it.
3939         (parse_set_cookies): Escape contents of remote header.
3940         (cookie_handle_set_cookie): Escape host name and cookie domain.
3941
3942         * connect.c (connect_to_ip): Escape the host name.
3943
3944         * log.c (escnonprint): New function, used for printing strings
3945         coming from the server that possibly contain non-ASCII characters.
3946         (escnonprint_uri): Ditto.
3947
3948 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
3949
3950         * ftp.c (getftp): Ditto.
3951
3952         * http.c (gethttp): When we're not supposed to overwrite files,
3953         use fopen_excl to open the file and recompute the file name.
3954
3955         * log.c (redirect_output): Use unique_create to avoid a race
3956         condition.
3957
3958         * mswindows.c (fake_fork_child): Use unique_create.
3959
3960         * utils.c (fopen_excl): New function that opens a stdio stream
3961         with the O_EXCL flag (where available).
3962         (unique_create): New function, like unique_name, but also creating
3963         the file and returning a file pointer.
3964         (fork_to_background): Use unique_create to create the file
3965         immediately to avoid race condition with multiple instances of
3966         wget -b.
3967
3968 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
3969
3970         * host.c (lookup_host): Test for AI_ADDRCONFIG directly, instead
3971         of checking for HAVE_GETADDRINFO_AI_ADDRCONFIG.
3972
3973 2005-02-23  Hrvoje Niksic  <hniksic@xemacs.org>
3974
3975         * host.c (is_valid_ipv6_address): Move here from url.c.
3976         (lookup_host): If the address is numeric, don't print the
3977         "resolving..." line, don't set up DNS timeouts, and set the
3978         AI_NUMERICHOST hint, where available.
3979
3980 2005-02-26  Gisle Vanem  <giva@bgnett.no>
3981
3982         * utils.c: Use the nnnLL syntax under GCC.  Define struct_stat to
3983         struct _stati64 under __MINGW32__ as well as under MS VC.
3984
3985 2005-02-26  Hrvoje Niksic  <hniksic@xemacs.org>
3986
3987         * utils.c: Use the nnnI64 syntax for __int64 constants under all
3988         Windows compilers.
3989         (SPRINTF_WGINT): Use "%I64" under all Windows compilers.
3990
3991         * mswindows.h (WGINT_MAX): Use the nnnI64 syntax for
3992         __int64 constants under all Windows compilers.
3993         (struct_stat): Use `struct stati64' under Borland C.
3994         (fstat): Don't redefine to _fstati64 under Borland.
3995
3996         * mswindows.c: Define str_to_int64 under Borland C as well as
3997         under (older) Visual C.
3998
3999 2005-02-25  Hrvoje Niksic  <hniksic@xemacs.org>
4000
4001         * ftp.c (getftp): Initialize err to suppress compiler warning.
4002
4003 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
4004
4005         * ftp.c (ftp_expected_bytes): Fix bug that caused infloop because
4006         of not correctly skipping the '(' character.
4007
4008 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
4009
4010         * mswindows.c (wget_ftello): Removed.
4011
4012         * mswindows.h: Remove bogus definition of stat.
4013         (wget_ftello): Remove the leftover ftello replacement.
4014
4015 2005-02-20  Hrvoje Niksic  <hniksic@xemacs.org>
4016
4017         * mswindows.c (wget_ftello): Wget's replacement for ftello.
4018
4019         * utils.c (file_size): Use ftello where available.
4020
4021         * ftp-ls.c (ftp_parse_unix_ls): Use str_to_wgint to parse the file
4022         size.
4023         (ftp_parse_winnt_ls): Ditto.
4024
4025         * ftp-basic.c (ftp_size): Use str_to_wgint to convert number to
4026         wgint; pass 10 instead of 0 as the BASE argument.
4027
4028         * ftp.c (ftp_expected_bytes): Use str_to_wgint to parse the file
4029         size.
4030
4031         * sysdep.h (LARGE_INT_FMT): Use __int64 as LARGE_INT on
4032         MSVC/Windows; print it with "%I64".
4033
4034         * wget.h: Define a `wgint' type, normally aliased to (the possibly
4035         64-bit variant of) off_t.
4036
4037         * all: Use `wgint' instead of `long' for numeric variables that
4038         can hold file sizes.
4039
4040         * utils.c (number_to_string): Support printing of `wgint'
4041         argument.
4042         (number_to_static_string): New function.
4043
4044         * all: Replace printf("%ld", long_value) with printf("%s",
4045         number_to_static_string(wgint_value)).
4046
4047 2005-02-18  Mauro Tortonesi <mauro@ferrara.linux.it>
4048
4049         * main.c: Added the --ftp-passwd command line option.
4050
4051         * init.c: Renamed command passwd to ftppasswd.
4052
4053 2005-02-11  Mauro Tortonesi <mauro@ferrara.linux.it>
4054
4055         * string_t.c: Fixed a bug in do_escape and triggered escape of
4056         backslashes in string_escape to avoid ambiguities in the result
4057         string.
4058
4059 2005-02-10  Mauro Tortonesi <mauro@ferrara.linux.it>
4060
4061         * string.h: Renamed to string_t.h to fix a compilation conflict
4062         with the string.h header in the standard C library.
4063
4064         * string.c: Renamed to string_t.c for consistency with string.h.
4065
4066         * string_t.c: Ditto.
4067
4068         * string_t.h: Ditto.
4069
4070 2004-12-31  Mauro Tortonesi <mauro@ferrara.linux.it>
4071
4072         * string.c: New file.
4073
4074         * string.h: New file.
4075
4076         * Makefile.in: Added string.c to the list of modules to compile.
4077
4078         * main.c: Updated copyright.
4079
4080 2004-11-18  Ulf Harnhammar <ulf.harnhammar.9485@student.uu.se>
4081
4082         * ftp-ls.c: Fixed a problem in ftp_parse_winnt_ls that could allow a
4083         malicious remote FTP server to crash wget.
4084
4085 2004-11-18  Hans-Andreas Engel <engel@node.ch>
4086
4087         * http.c: Enable --convert-links (-k) when a single page is downloaded
4088         via --output-document (-O).
4089
4090 2004-11-18  Mauro Tortonesi <mauro@deepspace6.net>
4091
4092         * connect.c: Minor correction to the comment in front of fd_peek.
4093
4094 2004-11-18  Leonid Petrov <nouser@lpetrov.net>
4095
4096         * retr.c: Fix a timeout problem in fd_read_body when using http_proxy.
4097
4098 2004-11-15  YAMAZAKI Makoto <Yamazaki.Makoto@fujixerox.co.jp>
4099
4100         * netrc.c: Fix termination by assertion bug in netrc parsing.
4101
4102 2004-05-09  David Fritz  <zeroxdf@att.net>
4103
4104         * mswindows.c (fake_fork): Pass entire command line to the child
4105         process.
4106
4107 2004-03-31  Hrvoje Niksic  <hniksic@xemacs.org>
4108
4109         * http.c (gethttp): Fix typo: SCHEME_SSL -> SCHEME_HTTPS.
4110
4111 2004-03-30  Hrvoje Niksic  <hniksic@xemacs.org>
4112
4113         * http.c (gethttp): Send the Proxy-Authorization header over
4114         non-SSL connections too.
4115
4116 2004-03-25  David Fritz  <zeroxdf@att.net>
4117
4118         * mswindows.c (fake_fork_child): Ignore error code when
4119         OpenFileMapping() fails; assume it failed because the object does
4120         not exist.
4121
4122 2004-03-24  David Fritz  <zeroxdf@att.net>
4123
4124         * mswindows.c (fake_fork): New function.
4125
4126         * mswindows.c (fork_to_background): Use it.
4127
4128 2004-03-19  David Fritz  <zeroxdf@att.net>
4129
4130         * mswindows.c (ws_hangup): Incorporate old fork_to_background()
4131         code.  Add event name argument.
4132         (fork_to_backgorund): Now a simple wrapper around ws_hangup().
4133         (ws_handler): Correctly handle the case when neither CTRLC_BACKGND
4134         nor CTRLBREAK_BACKGND are defined.  Don't bother handling close,
4135         logoff, or shutdown events.  Call ws_hangup() with the correct
4136         event name; don't assume it was CTRL+Break.
4137
4138 2004-03-19  Hrvoje Niksic  <hniksic@xemacs.org>
4139
4140         * url.c (url_parse): Decode %HH sequences in host name.
4141
4142 2004-03-04  Hrvoje Niksic  <hniksic@xemacs.org>
4143
4144         * convert.c (local_quote_string): Quote "#" as "%23" and "%" as
4145         "%25" when creating links to local files.
4146
4147 2004-03-02  David Fritz  <zeroxdf@att.net>
4148
4149         * mswindows.c (ws_percenttitle): Guard against future changes by
4150         doing nothing if the proper variables have not been initialized.
4151         Clamp percentage value.
4152
4153 2004-03-04  Gisle Vanem  <giva@bgnett.no>
4154
4155         * retr.c (fd_read_body): Don't change console title if quiet.
4156
4157 2004-02-25  David Fritz  <zeroxdf@att.net>
4158
4159         * mswindows.c (set_sleep_mode): Remove argument and return value.
4160         Call GetModuleHandle() instead of LoadLibrary()/FreeLibrary() for
4161         kernel32.dll.  Use typedef for function-pointer.  Don't cast
4162         l-value.  Don't use dereference operator when calling through
4163         function-pointer.
4164         (ws_startup): Update call to set_sleep_mode().
4165         (ws_cleanup): Remove call to set_sleep_mode().
4166
4167 2004-02-23  David Fritz  <zeroxdf@att.net>
4168
4169         * http.c (http_loop): Ditto.
4170
4171         * ftp.c (ftp_loop_internal): Update call to ws_changetitle().
4172
4173         * main.c (main): Don't bother calling ws_changetitle().
4174
4175         * mswindows.h (ws_changetitle): Update prototype.
4176
4177         * mswindows.c (ws_changetitle): Remove second argument.  Use
4178         xfree_null().
4179         (ws_percenttitle): Only update title when percentage has changed.
4180
4181 2004-02-23  David Fritz  <zeroxdf@att.net>
4182
4183         * mswindows.h: Ditto.
4184
4185         * mswindows.c: Misc. formatting/comment tweaks throughout.
4186
4187 2004-02-20  David Fritz  <zeroxdf@att.net>
4188
4189         * main.c (print_help): Remove call to ws_help().
4190
4191         * mswindows.c (ws_help): Remove.
4192
4193         * mswindows.h (ws_help): Remove.
4194
4195 2004-02-16  David Fritz  <zeroxdf@att.net>
4196
4197         * init.c (home_dir): Use aprintf() instead of xmalloc()/sprintf().
4198         Under Windows, if $HOME is not defined, use the directory that
4199         contains the Wget binary instead of hard-coded `C:\'.
4200         (wgetrc_file_name): Under Windows, look for $HOME/.wgetrc then, if
4201         not found, look for wget.ini in the directory of the Wget binary.
4202
4203         * mswindows.c (ws_mypath): Employ slightly more robust methodology.
4204         Strip trailing path separator.
4205
4206 2004-02-06  Hrvoje Niksic  <hniksic@xemacs.org>
4207
4208         * http.c (gethttp): Respect --ignore-length.
4209         (gethttp): Inhibit keep-alive if --ignore-length is specified.
4210
4211 2004-02-06  Hrvoje Niksic  <hniksic@xemacs.org>
4212
4213         * connect.c (sockaddr_set_data): Zero out
4214         sockaddr_in/sockaddr_in6.  Apparently BSD-derived stacks need this
4215         when binding a socket to local address.
4216
4217 2004-02-04  Hrvoje Niksic  <hniksic@xemacs.org>
4218
4219         * hash.c: Make the file compilable outside Wget source tree when
4220         -DSTANDALONE is used.
4221
4222 2004-01-29  Hrvoje Niksic  <hniksic@xemacs.org>
4223
4224         * utils.c (determine_screen_width): Return 0 if not running on
4225         Windows or on a TIOCGWINSZ-capable system.
4226
4227 2004-01-28  David Fritz  <zeroxdf@att.net>
4228
4229         * utils.c (determine_screen_width): Correctly determine console
4230         width under Windows.
4231
4232 2004-01-28  Christian Biere  <christianbiere@gmx.de>
4233
4234         * progress.c (bar_set_params): Fixed syntax error when HAVE_ISATTY
4235         was undefined.
4236
4237         * ftp.c (ftp_loop_internal): Allocate a larger buffer in case
4238         "try" gets translated to something large.  Ditto in http_loop in
4239         http.c.
4240
4241         * http.c (response_header_copy): Don't write to buf[BUFSIZE].
4242
4243         * ftp-opie.c (skey_response): Eliminate unnecessary string
4244         concatenation; just call gen_md5_update twice.
4245
4246 2004-01-25  Hrvoje Niksic  <hniksic@xemacs.org>
4247
4248         * utils.c (xsleep): Don't call usleep with values larger than
4249         1,000,000.
4250
4251 2003-12-16  Hrvoje Niksic  <hniksic@xemacs.org>
4252
4253         * http.c (gethttp): Fix generation of `Content-Length'.
4254
4255 2003-12-15  Gisle Vanem  <giva@bgnett.no>
4256
4257         * url.c (url_skip_credentials): Fixed return value; 'url' if no
4258         credentials.
4259
4260 2003-12-14  Hrvoje Niksic  <hniksic@xemacs.org>
4261
4262         * url.c (url_skip_credentials): Return a pointer directly.
4263
4264 2003-12-14  Hrvoje Niksic  <hniksic@xemacs.org>
4265
4266         * url.c (url_file_name): Ditto.
4267         (parse_errors): Ditto.
4268
4269         * retr.c (retr_rate): Ditto.
4270
4271         * progress.c (create_image): Ditto.
4272
4273         * netrc.c (parse_netrc): Ditto.
4274
4275         * main.c (struct cmdline_option): Ditto.
4276         (redirect_output_signal): Ditto.
4277
4278         * init.c (commands): Ditto.
4279
4280         * ftp-ls.c (ftp_index): Ditto.
4281
4282         * cookies.c (check_domain_match): Declare the pointer to a literal
4283         string as `const'.
4284
4285 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
4286
4287         * retr.c (fd_read_body): Pass total size to progress_create, not
4288         the remaining amount.
4289
4290 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
4291
4292         * retr.c (fd_read_body): Don't fiddle with "interactive timeout"
4293         if read timeout is unset.
4294
4295 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
4296
4297         * connect.c (bind_local): Don't set the IPV6_V6ONLY option on the
4298         socket.
4299
4300 2003-12-06  Hrvoje Niksic  <hniksic@xemacs.org>
4301
4302         * url.c (url_file_name): Respect the setting of
4303         opt.protocol_directories.
4304
4305         * main.c (main): Only check for ret=='?' when longindex is unset.
4306         (option_data): New option --protocol-directories.
4307
4308 2003-12-06  Hrvoje Niksic  <hniksic@xemacs.org>
4309
4310         * ftp.c (getftp): Ditto.
4311
4312         * http.c (gethttp): Correctly calculate bandwidth as total data
4313         read divided with download time.
4314
4315         * retr.c (fd_read_body): Separate the return values for data
4316         written and read.
4317
4318 2003-12-05  Hrvoje Niksic  <hniksic@xemacs.org>
4319
4320         * http.c (H_REDIRECTED): Respect the HTTP/1.1 "303 See Other"
4321         response code.
4322         Suggested by Dan Razzell.
4323
4324 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
4325
4326         * retr.c (fd_read_body): Report the amount of data *written* as
4327         amount_read.  This is not entirely logical, but that's what the
4328         callers expect, and it's not easy to change.
4329
4330         * ftp.c (ftp_loop_internal): Ditto.
4331
4332         * http.c (http_loop): Be smarter about assigning restval; if we're
4333         in the nth pass of a download, simply use the information we have
4334         about how much data has been retrieved as restval.
4335
4336         * ftp.c (getftp): Ditto for FTP "REST" command.
4337
4338         * http.c (gethttp): When the server doesn't respect range, skip
4339         the first RESTVAL bytes of the read body.  Never truncate the
4340         output file.
4341
4342         * retr.c (fd_read_body): Support skipping initial STARTPOS octets.
4343
4344 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
4345
4346         * http.c (skip_short_body): Renamed skip_body to skip_short_body;
4347         don't bother calling fd_read_body.
4348
4349 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
4350
4351         * retr.c (fd_read_body): Sanitize arguments and document them
4352         better.  Make sure the timer is created and updated only if
4353         necessary.  Updated callers.
4354
4355 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
4356
4357         * http.c (skip_body): New function.
4358         (gethttp): Use it to skip the body of the responses we don't care
4359         to download.  That allows us to reuse the connection.
4360         (gethttp): Trust that the HEAD requests will not generate body
4361         data.
4362
4363         * retr.c (fd_read_body): Don't write to OUT if it's NULL.
4364
4365 2003-11-29  Hrvoje Niksic  <hniksic@xemacs.org>
4366
4367         * http.c (gethttp): Initialize SSL only the first time when SSL
4368         URL is downloaded.
4369
4370 2003-11-29  Hrvoje Niksic  <hniksic@xemacs.org>
4371
4372         * cookies.c (cookie_header): Only generate the contents of the
4373         header, not the leading "Cookie: " or the trailing "\r\n".
4374
4375         * http.c (gethttp): When adding headers specified with `--header',
4376         allow them to override the headers generated by Wget.
4377
4378         * init.c (cmd_spec_header): Made opt.user_headers a vector.
4379
4380         * http.c (request_new): New function.  Returns a request structure
4381         which can be modified in various ways, most notably by adding HTTP
4382         headers to the request.
4383         (request_set_header): New function for adding the header to the
4384         request.  If the header is already available, it gets replaced.
4385         (request_send): Construct and send the request.
4386         (gethttp): Use the request_* functions to generate the request.
4387
4388 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
4389
4390         * http.c (gethttp): Don't include the Proxy-Authorization header
4391         in the request tunneled through proxy.
4392
4393 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
4394
4395         * http.c (gethttp): Use the CONNECT handle to establish SSL
4396         passthrough through non-SSL proxies.
4397
4398 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
4399
4400         * init.c: Don't #include netinet/Winsock stuff.
4401
4402 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
4403
4404         * http.c: Deleted the old functions header_process,
4405         header_extract_number, header_exists, header_strdup,
4406         http_process_range, http_process_none, http_process_type, and
4407         http_process_connection.
4408
4409         * http.c (response_new): New function.
4410         (response_header_bounds): Ditto.
4411         (response_header_copy): Ditto.
4412         (response_header_strdup): Ditto.
4413         (response_status): Ditto.
4414         (gethttp): Use the new response_* functions to parse the response.
4415         Support HTTP/0.9 responses.
4416
4417 2003-11-27  Hrvoje Niksic  <hniksic@xemacs.org>
4418
4419         * progress.c (create_image): Don't calculate ETA if nothing has
4420         been downloaded yet, because it causes division by zero.
4421
4422 2003-11-27  Hrvoje Niksic  <hniksic@xemacs.org>
4423
4424         * connect.c (bind_local): Rename sa_len to addrlen because IRIX
4425         headers define sa_len as a macro.
4426
4427 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
4428
4429         * html-parse.c (convert_and_copy): Remove embedded newlines when
4430         AP_TRIM_BLANKS is specified.
4431
4432 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
4433
4434         * ftp.c: Set con->csock to -1 where rbuf_uninitialize was
4435         previously used.
4436
4437 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
4438
4439         * Makefile.in (http$o): Added the trailing backslash that was
4440         missing.
4441
4442 2003-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
4443
4444         * headers.c: Removed.  The file is no longer relevant, now that no
4445         special handling of headers is done by the rbuf code.  Moved
4446         portions to http.c.
4447
4448 2003-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
4449
4450         * rbuf.c: Removed.
4451
4452         * ftp-basic.c (ftp_response): Use fd_read_line.  No longer use
4453         struct rbuf.  Updated all callers.
4454
4455         * http.c (gethttp): Use fd_read_head to read all the headers in
4456         one go.
4457         (next_header): New function.
4458
4459         * retr.c (fd_read_line): New function: reads a line from FD,
4460         leaving the rest of the data unread.
4461         (fd_read_head): New function.
4462
4463         * connect.c (fd_peek): New function, implements peeking.
4464         (poll_internal): New function.
4465         (fd_read): Use it.
4466         (fd_write): Ditto.
4467         (fd_peek): Ditto.
4468         (fd_register_transport): Allow registering a "peeker" callback.
4469
4470 2003-11-20  Hrvoje Niksic  <hniksic@xemacs.org>
4471
4472         * connect.c: Renamed xread/xwrite/xclose to
4473         fd_read/fd_write/fd_close.  The "x" prefix is not appropriate
4474         because the semantics have diverged from read/write/close too
4475         significantly.  Updated all callers.
4476
4477 2003-11-20  Hrvoje Niksic  <hniksic@xemacs.org>
4478
4479         * connect.c (sock_write): It's not necessary to initialize RES.
4480
4481 2003-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
4482
4483         * main.c (main): Don't reference opt.ipv4_only and opt.ipv6_only
4484         if IPv6 is disabled.
4485
4486 2003-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
4487
4488         * connect.c (socket_has_inet6): Only compile it if IPv6 is enabled
4489         and AI_ADDRCONFIG is missing.
4490
4491 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
4492
4493         * gen_sslfunc.c (ssl_init_prng): Warn the user when using a weak
4494         random seed.
4495
4496 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
4497
4498         * host.c (address_list_contains): Renamed address_list_find to
4499         address_list_contains because its result is boolean.
4500
4501 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
4502
4503         * connect.c (select_fd): Return 1 if select is not available.
4504
4505 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
4506
4507         * connect.c (connect_to_host): Don't reference address list after
4508         releasing it.
4509
4510 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
4511
4512         * main.c (print_help): Fix alignment of FTP options output.
4513
4514 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
4515
4516         * host.c (lookup_host): Check for the ability to create IPv6
4517         sockets here.
4518
4519         * init.c (defaults): Don't auto-set --inet4-only on IPv6-less
4520         systems.
4521
4522 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
4523
4524         * main.c (print_help): Fix typo in `-O' help message.  Fix docs of
4525         -Y/--proxy.  Fix docs of `--cookies' and `--glob'.  Improve docs
4526         of --convert-links.  Fix docs of SSL options.
4527
4528 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
4529
4530         * ftp-basic.c: Don't include <arpa/inet.h> and others because
4531         they're no longer needed.
4532
4533 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
4534
4535         * main.c (main): Don't allow setting of both opt.ipv4_only and
4536         opt.ipv6_only.
4537
4538         * init.c (defaults): Mark opt.ipv4_only specially when set
4539         automatically.
4540
4541 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
4542
4543         * host.c (lookup_host): Use AI_ADDRCONFIG only if the family is
4544         unspecified.  This ensures that specifying `--no-inet4' on systems
4545         where IPv6 resolves, but doesn't work behaves the same regardless
4546         of the availability of AI_ADDRCONFIG.
4547
4548 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
4549
4550         * host.c: Don't refer to the now-removed function
4551         forget_host_lookup in the documentation of lookup_host.
4552
4553 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
4554
4555         * http.c (persistent_available_p): Correctly specify the endpoint
4556         argument to socket_ip_address.
4557         (gethttp): When printing the "reusing connection to..." message,
4558         specify the host name of the reused connection, not the current
4559         host name.  That makes more sense because it provides a useful
4560         piece of information -- we know to which host we're supposed to
4561         connect anyway!
4562
4563 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
4564
4565         * init.c: Make sure the options are in alphabetic order!
4566
4567         * host.c (lookup_host): Merge lookup_host_passive and lookup_host
4568         after all -- having both would result in some code duplication.
4569         (lookup_host): Set hints.ai_family to AF_INET if ipv4_only is
4570         requested.  Likewise, set it to AF_INET6 for ipv6_only.  Specify
4571         AI_ADDRCONFIG where available.
4572         (lookup_host): New flag LH_REFRESH that specifies that a cached
4573         entry for HOST should be refreshed.
4574         (cache_query): New function.
4575         (cache_store): Ditto.
4576         (cache_remove): Ditto.
4577         (forget_host_lookup): No longer necessary, replaced with static
4578         function cache_remove.
4579
4580 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
4581
4582         * main.c: Enable -4 and -6 only if IPv6 is enabled.
4583
4584 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
4585
4586         * connect.c (register_transport): Renamed from register_extended.
4587         Explain the intended usage.
4588
4589 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
4590
4591         * url.c (uri_merge): Merging "foo" and "bar" should result in
4592         "bar", not in "foo/bar".
4593         (path_simplify): Don't remove empty path elements; don't
4594         special-case leading slash.
4595         (path_simplify): Don't swallow ".."'s at the beginning of string.
4596         E.g. simplify "foo/../../bar" as "../bar", not as "bar".
4597         (append_uri_pathel): Defang ".." path element upon encountering
4598         it.
4599
4600 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4601
4602         * http.c (persistent_available_p): Don't attempt to talk to two
4603         different SSL sites over the same secure connection.
4604
4605 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4606
4607         * http.c (gethttp): Ditto.
4608
4609         * ftp.c (getftp): Use retryable_socket_connect_error instead of
4610         CONNECT_ERROR.
4611
4612         * wget.h (CONNECT_ERROR): Removed.
4613
4614         * connect.c (retryable_socket_connect_error): New function instead
4615         of unsupported_socket_family_error.
4616
4617 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4618
4619         * wget.h (CONNECT_ERROR): Use it.
4620
4621         * connect.c (unsupported_socket_family_error): New function.
4622
4623 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4624
4625         * connect.c (bind_local): Renamed bindport to bind_local; return
4626         the socket directly.  Updated callers.
4627         (accept_connection): Renamed acceptport to accept_connection;
4628         return the created socket directly.  Updated callers.
4629
4630 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4631
4632         * init.c (defaults): Turn on opt.ipv4_only if we're compiling with
4633         IPv6, and AI_ADDRINFO is not available, and AF_INET6 sockets can't
4634         be created.
4635
4636 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4637
4638         * host.c (lookup_host): Document the fact that the addresses are
4639         returned in order.
4640
4641 2003-11-12  Hrvoje Niksic  <hniksic@xemacs.org>
4642
4643         * utils.c: Use limits.h only where available.
4644
4645         * hash.c: Use INVALID_PTR and INVALID_PTR_BYTE.  Include limits.h.
4646
4647 2003-11-11  Hrvoje Niksic  <hniksic@xemacs.org>
4648
4649         * main.c: Added options --inet4-only and --inet6-only.
4650
4651 2003-11-11  Hrvoje Niksic  <hniksic@xemacs.org>
4652
4653         * host.c (host_errstr): Use the more standard message "Unknown
4654         host".
4655
4656 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
4657
4658         * connect.c (connect_to_host): Use that flag to decide whether to
4659         re-resolve the host name.
4660
4661         * host.c (struct address_list): Added a flag that maintains
4662         whether the connection worked at some point.
4663
4664 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
4665
4666         * host.c (lookup_host): Special-case the numeric addresses only in
4667         the non-IPv6 case.
4668
4669 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
4670
4671         * connect.c (resolve_bind_address): Call lookup_host_passive.
4672         Make sure that opt.bind_address is resolved only once.
4673
4674         * host.c (lookup_host_passive): New function, handles "passive"
4675         lookups.
4676         (lookup_host): Remove the passive flags.  Remove the
4677         family-related flags -- use ip_default_family instead.
4678
4679 2003-11-09  Hrvoje Niksic  <hniksic@xemacs.org>
4680
4681         * html-url.c: Get URLs from <object data="...">.
4682
4683 2003-11-09  Hrvoje Niksic  <hniksic@xemacs.org>
4684
4685         * main.c (option_data): Specify the command to use for --mirror.
4686
4687 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4688
4689         * cookies.c (cookie_handle_set_cookie): Specify exact match for
4690         unspecified domains.
4691
4692 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4693
4694         * main.c (main): Removed one-letter options `-C', `-g', `-G', and
4695         `-s'.
4696
4697 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4698
4699         * main.c (main): Add --dont-remove-listing for backward
4700         compatibility with previous versions.
4701         (print_help): Fix typo, spotted by Dennis Smit.
4702
4703 2003-11-08  Gisle Vanem  <giva@bgnett.no>
4704
4705         * ftp-basic.c: Support Windows-2000 ftp servers. Win-2000 *is*
4706         Win-NT 5.0 so calling it ST_WINNT is okay I guess.
4707
4708 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4709
4710         * progress.c (update_speed_ring): Clear the speed ring when the
4711         download stalls.
4712
4713         * retr.c (get_contents): Specify 0.95s read timeout, so that the
4714         progress gauge can be updated even when data arrives very slowly
4715         or stalls.
4716
4717 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4718
4719         * utils.c (wtimer_allocate): Bless the use of wtimer_read on a
4720         timer that has merely been allocated because get_contents() does
4721         that.
4722         (wtimer_update): Abort if the timer is not initialized.
4723
4724 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4725
4726         * retr.c (get_contents): Pass the timer to limit_bandwidth().
4727
4728         * utils.c (wtimer_update): New function instead of wget_elapsed;
4729         just update the timer, but don't return anything.
4730         (wtimer_read): Read and return the last known value of the timer.
4731
4732 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4733
4734         * http.c (persistent_available_p): Instead of matching all the
4735         addresses of HOST and last host, determine the peer's IP address
4736         with socket_ip_address and see if that address is one of those
4737         HOST resolves to.
4738
4739         * host.c (address_list_match_all): Removed.
4740         (address_list_find): New function, finds an IP address in the
4741         address list.
4742
4743         * ftp.c (ftp_do_pasv): Get the peer's address here, and pass it to
4744         ftp_epsv so it doesn't need to call getpeername.
4745
4746         * ftp-basic.c (ftp_port): Use socket_ip_address instead of
4747         getpeername.
4748         (ftp_lprt): Ditto.
4749
4750         * connect.c (socket_ip_address): Replaces conaddr, generalized to
4751         either get peer's or local address.
4752         (sockaddr_get_data): Made local to this file.
4753
4754 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4755
4756         * hash.c (HASH_POSITION): Explicitly accept the hash function.
4757         (grow_hash_table): Extract ht->hash_function outside the loop.
4758         (hash_table_remove): Ditto.
4759         (hash_table_clear): Fill entries with 0xff to clear them.
4760         (hash_table_remove): Mark entries as deleted with the correct
4761         marker.
4762
4763 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4764
4765         * http.c (persistent_available_p): No reason for the host lookup
4766         to be silent -- it's a lookup like any other.
4767
4768 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4769
4770         * connect.c (register_extended): Check that fd >= 0.
4771
4772 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
4773
4774         * connect.c (LAZY_RETRIEVE_INFO): Set LAST_INFO.
4775
4776 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
4777
4778         * hash.c (NON_EMPTY): Use the all-bit-set value as the marker that
4779         the field is empty.  This allows NULL pointer and 0 value to be
4780         used as keys, which is necessary for the connect.c code to work
4781         when fd==0.
4782         (hash_table_new): Fill mappings with 0xff.
4783         (grow_hash_table): Ditto.
4784
4785 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
4786
4787         * url.c (url_parse): Allow empty ports.
4788
4789 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
4790
4791         * main.c (print_help): Break the help string into multiple chunks.
4792         (cmdline_option): New option handler OPT_FUNCALL.  Generalized
4793         HANDLE_CMD to generic DATA.
4794         (option_data): Use the new OPT_FUNCALL feature.
4795
4796 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
4797
4798         * log.h: Declare log_init, log_close, and
4799         log_request_redirect_output here.
4800
4801 2003-11-05  Dennis Smit  <ds@nerds-incorporated.org>
4802
4803         * main.c: (main): added --preserve-permissions option.
4804
4805         * ftp.c (ftp_retrieve_list): added support for
4806         --preserve-permissions option.
4807
4808         * init.c: added support for --preserve-permission option.
4809
4810         * option.h: added support for --preserve-permission option.
4811
4812 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
4813
4814         * main.c (init_switches): New function.  Convert option_data to
4815         long_options and short_options, which can be fed to getopt_long.
4816         (main): Execute command-line options by consulting option_data.
4817
4818 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
4819
4820         * gen_sslfunc.c (ssl_read): Implement a more correct check for
4821         EINTR.
4822         (ssl_write): Ditto.
4823         (init_ssl): Use a global SSL context.
4824
4825 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
4826
4827         * connect.c (xclose): Free INFO even if it doesn't provide a
4828         closer.
4829
4830 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
4831
4832         * connect.c: Updated all callers of
4833         iread/ssl_iread/iwrite/ssl_iwrite to use xread and xwrite instead.
4834
4835         * rbuf.h (struct rbuf): Removed the SSL member because SSL is
4836         handled automatically by xread.
4837
4838         * hash.c (ptrhash): Made private.
4839         (ptrcmp): Ditto.
4840         (inthash): Removed.
4841
4842         * connect.c (select_fd): Don't set errno, leave it to the caller.
4843
4844         * gen_sslfunc.c (connect_ssl): Use register_extended to register
4845         SSL callbacks for communication with SSL-enabled endpoints.
4846         (ssl_read): New function.
4847         (ssl_write): Ditto.
4848         (ssl_poll): Ditto.
4849         (ssl_close): Ditto.
4850
4851         * connect.c (register_extended): New function -- register
4852         callbacks for basic socket operations.
4853         (xread): Ditto.
4854         (xwrite): Ditto.
4855         (xclose): Ditto.
4856         (sock_read): New function, default implementation for reading.
4857         (sock_write): Ditto for writing.
4858         (sock_poll): Ditto for polling.
4859         (sock_close): Ditto for closing.
4860
4861 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
4862
4863         * connect.c (bindport): Fix compilation under pre-C99 compilers.
4864
4865 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
4866
4867         * connect.c (connect_to_ip): More compact error checking.
4868         (bindport): Don't treat failed setsockopt as a fatal error.
4869
4870 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
4871
4872         * connect.c (resolve_bind_address): Use a more accurate error
4873         message -- we're not binding to ANY, we're disabling bind
4874         altogether.
4875
4876 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
4877
4878         * cookies.c (save_cookies_mapper): Respect the setting of
4879         keep-session-cookies.
4880         (cookie_jar_load): Import session cookies.
4881         Based on code submitted by Nicolas Schodet.
4882
4883         * utils.c (datetime_str): Use information in TM when it's
4884         non-NULL.
4885
4886         * main.c (main): New option `--keep-session-cookies'.
4887
4888 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
4889
4890         * Makefile.in (realclean): Delete config.h.in.
4891
4892 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
4893
4894         * config-post.h: New file, included from now autogenerated
4895         config.h.in.
4896
4897 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
4898
4899         * progress.c (progress_handle_sigwinch): Don't call
4900         determine_screen_width() from the signal handler.  Instead, just
4901         set a volatile variable.
4902         (bar_create): Check whether SIGWINCH was received.
4903         (bar_update): Ditto.
4904
4905         * sysdep.h: Define SYSTEM_FNMATCH only if HAVE_FNMATCH_H is true.
4906
4907 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4908
4909         * utils.c (xsleep): New function.  Uses nanosleep where available,
4910         resuming sleeps interrupted by signals.  Updated callers of sleep
4911         and usleep to use xsleep.
4912
4913 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4914
4915         * ftp-basic.c (ftp_login): Remove shadowing (and bogus)
4916         declaration of SEED.
4917
4918 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4919
4920         * log.c (logvprintf): Documented better.  Renamed to
4921         log_vprintf_internal to avoid confusion with the public API
4922         functions logprintf and logputs.
4923
4924 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4925
4926         * wget.h (N_): Don't parenthesize argument.
4927
4928 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4929
4930         * host.h (ADDRESS_IPV4_DATA): Don't take the address of in.s_addr
4931         because that doesn't work on machines that define it as bitfield.
4932
4933 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4934
4935         * connect.c (select_fd): Generalize the third argument into WAIT,
4936         so that the caller can request waiting for both read and write.
4937         Updated callers.
4938
4939 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
4940
4941         * html-url.c (cleanup_html_url): Destroy the hash tables, don't
4942         just call free on them.
4943         (init_interesting): Use hash_table_put instead of string_set_add
4944         because we don't need the strdup that the latter function
4945         performs.
4946
4947         * init.c (cleanup): Don't pass NULL to cookie_jar_delete.
4948
4949         * xmalloc.c (xfree_real): Abort when passed a NULL pointer.
4950         (xfree_debug): Print at the file and line of the offending call to
4951         free.
4952
4953 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
4954
4955         * wget.h: Retired the `boolean' type.  Moved the DEFAULT_LOGFILE
4956         define to log.h.  Moved the INFINITE_RECURSION define to recur.h.
4957
4958         * xmalloc.h: Renamed FREE_MAYBE to xfree_null and moved the
4959         definition from wget.h to xmalloc.h.
4960
4961 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
4962
4963         * html-parse.c (decode_entity): New function; split the decoding
4964         of entities here.
4965         (convert_and_copy): Use it to decode entities.
4966         (decode_entity): Handle the &apos entity.
4967         (decode_entity): Don't decode Latin 1 numeric entities.  Don't
4968         decode &#0.
4969
4970 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
4971
4972         * ftp-opie.c (calculate_skey_response): Use uint32_t instead of
4973         `unsigned long' for the cheksum array.  Document the function.
4974
4975 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
4976
4977         * connect.c (acceptport): Don't call select_fd when timeout is not
4978         requested.
4979
4980 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
4981
4982         * host.c: Removed the ip_default_family global variable.
4983
4984         * host.c (lookup_host): Document the function.  Fixed declaration
4985         of VEC.
4986
4987 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
4988
4989         * various: Use new macros xnew, xnew0, xnew_array, and xnew0_array
4990         in various places.
4991
4992 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
4993
4994         * wget.h: Move declarations of malloc and logging code to
4995         xmalloc.h and log.h respectively to unclutter this file.
4996         (STRDUP_ALLOCA): Made it side-effect free.
4997
4998         * xmalloc.h: New files.  Define macros xnew, xnew0, xnew_array,
4999         and xnew0_array.
5000
5001         * xmalloc.c: New file.  Move the xmalloc routines here.
5002
5003 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
5004
5005         * connect.c (sockaddr_set_data): Remove the broken code that
5006         checked for NULL address.
5007
5008 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
5009
5010         * host.c (address_list_from_single): Removed.
5011         (address_list_from_ipv4_addresses): Renamed from
5012         address_list_from_vector.
5013
5014 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
5015
5016         * sysdep.h (CLOSE): Don't call close on file descriptors less than
5017         0, i.e. on uncreated sockets.
5018
5019         * connect.c (resolve_bind_address): Work on struct sockaddr
5020         directly.
5021         (connect_to_host): Replacement for connect_to_many.  Resolve HOST
5022         and connect to any of its addresses.  If we can't connect and the
5023         host name lookup was cached, try to resolve it again.  This should
5024         fix problems with hosts behind dynamic DNS.  Updated all callers.
5025         (connect_to_ip): Replacement for connect_to_one.  Removed SILENT;
5026         added the argument PRINT instead.  Updated all callers.
5027         (set_connection_host_name): Removed.
5028
5029         * host.c (address_list_address_at): New function instead of
5030         address_list_copy_one. It returns a pointer to ip_address *, so
5031         it's not necessary to copy the data.
5032         (address_list_cached_p): New function.
5033         (forget_host_lookup): Ditto.
5034
5035         * connect.c: Got rid of the MSOCK global variable.  Made bindport
5036         return the local socket it creates.  Added a new argument to
5037         acceptport, the socket to call accept on.  Updated callers.
5038         (closeport): Removed.
5039
5040         * connect.c: Moved the sockaddr code from host.c to this file,
5041         because most of that stuff is used for connecting, and has nothing
5042         to do with host names anyway.
5043         (sockaddr_set_data, sockaddr_get_data): New functions, replace the
5044         old sockaddr_set_address, sockaddr_set_port, sockaddr_get_address,
5045         and sockaddr_get_port.
5046
5047 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
5048
5049         * sysdep.h: Use `S >= 8' rather than `S == 8' when looking for
5050         large integers.
5051
5052 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
5053
5054         * url.c (append_uri_pathel): New argument ESCAPED_P that says
5055         whether [B, E) is to be treated as URL-escaped or not.  If
5056         ESCAPED_P is false, don't unescape the region.
5057         (url_file_name): u->file is not URL-escaped.
5058
5059 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
5060
5061         * retr.c (retrieve_from_file): Use retrieve_tree for
5062         page-requisites.
5063
5064         * main.c (main): Don't define opt.recursive when -p is used.
5065         Instead, make sure that recursion is used for HTTP in that case.
5066
5067 2003-10-29  Hrvoje Niksic  <hniksic@xemacs.org>
5068
5069         * host.h: Defined accessors for elements of ip_address.  Updated
5070         all callers.
5071         (address_list_match_all): Use memcmp in the non-IPv6 case.
5072
5073         * wget.h (CONNECT_ERROR): Don't retry connecting if connect()
5074         returned EAFNOSUPPORT.
5075
5076 2003-10-27  Mauro Tortonesi <mauro@deepspace6.net>
5077
5078         * connect.h: changed bindport prototype and added the related
5079         BIND_ON_IPV4_ONLY and BIND_ON_IPV6_ONLY flags.
5080
5081         * connect.c: changed bindport and resolve_bind_address to allow
5082         protocol-version specific DNS resolution. modified conaddr,
5083         acceptport and connect_to_one to make use of struct
5084         sockaddr_storage and of the new ip_address structure.
5085
5086         * ftp-basic.c: added LPRT/LPSV (RFC1639) support, refactored
5087         PORT/PASV (RFC959) and EPRT/EPSV (RFC2428) support code.
5088
5089         * ftp.c: added the ftp_do_port and ftp_do_pasv functions to
5090         handle FTP over IPv6.
5091
5092         * ftp.h: changed prototype of ftp_epsv and added prototypes for
5093         ftp_lpsv, ftp_lprt and ftp_eprt.
5094
5095         * host.c: renamed the
5096         wget_sockaddr_set_address and wget_sockaddr_get_addr, and
5097         wget_sockaddr_{s,g}et_port couples to sockaddr_{s,g}et_address and
5098         sockaddr_{g,s}et_port respectively.  changed
5099         address_list_match_all, address_list_from_addrinfo sockaddr_len,
5100         pretty_print_address, lookup_host, sockaddr_{s,g}et_address and
5101         sockaddr_{g,s}et_port to make use of struct sockaddr_storage and
5102         of the new ip_address structure.  removed map_ipv4_to_ip and
5103         map_ip_to_ipv4.
5104
5105         * host.h: redefined structure ip_address and removed structure
5106         wget_sockaddr.
5107
5108 2003-10-26  Hrvoje Niksic  <hniksic@xemacs.org>
5109
5110         * sysdep.h: Include inttypes.h where available.
5111
5112         * host.c: Switch from u_int32_t to uint32_t.
5113
5114 2003-10-26  Hrvoje Niksic  <hniksic@xemacs.org>
5115
5116         * netrc.c (parse_netrc): Reset the QUOTE flag after the closing
5117         quote.
5118
5119 2003-10-25  Hrvoje Niksic  <hniksic@xemacs.org>
5120
5121         * url.c (is_valid_ipv6_address): Reformat to GNU coding style.
5122         Use enums for NS_IN* constants.  Use ISXDIGIT.
5123
5124         * convert.c (construct_relative): Document better how the function
5125         works.
5126
5127 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
5128
5129         * config.h.in: Deploy preprocessor magic to avoid Ultrix's
5130         <netdb.h> include <bitypes.h> which defines its own u_int32_t.
5131         Reported by Bernhard Simon.
5132
5133 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
5134
5135         * version.c: Bump version.
5136
5137 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
5138
5139         * url.c: Ditto.
5140
5141         * html-parse.c (advance_declaration): Don't use trailing comma in
5142         enum because older compilers don't support it.
5143
5144         * utils.c: Don't redefine HAVE_SIGSETJMP.
5145
5146 2003-10-16  Hrvoje Niksic  <hniksic@xemacs.org>
5147
5148         * convert.c (construct_relative): Don't handle absolute files
5149         specially -- for example, -P/tmp/foo shouldn't imply that
5150         converted files must refer to "/tmp/foo/..."!
5151
5152 2003-10-15  Hrvoje Niksic  <hniksic@xemacs.org>
5153
5154         * http.c: Consider status 307 a valid redirect.
5155
5156 2003-10-15  Philip Stadermann  <philip.stadermann@credativ.de>
5157
5158         * ftp.c (ftp_retrieve_glob): Correctly loop through the list whose
5159         elements might have been deleted.
5160
5161 2003-10-13  Hrvoje Niksic  <hniksic@xemacs.org>
5162
5163         * html-url.c (tag_handle_meta): Set the Refresh link to expect
5164         HTML.
5165         (append_one_url): Renamed to append_url.
5166
5167 2003-10-13  Hrvoje Niksic  <hniksic@xemacs.org>
5168
5169         * sysdep.h: Only define u_int32_t.
5170
5171 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
5172
5173         * utils.c (large_int_to_string): Use snprintf() to print the
5174         number.  This will work even on systems where libc doesn't
5175         understand %lld, but the compiler does, because it will use our
5176         snprintf replacement.
5177
5178         * init.c (parse_bytes_helper): New function.
5179         (cmd_bytes): Use it to parse bytes, but cast the result to long.
5180         (cmd_bytes_large): Ditto, but store the result to LARGE_INT.  Used
5181         for --quota so that --quota=10G works even on machines without
5182         long long.
5183
5184         * options.h (struct options): Declare quota as LARGE_INT.
5185
5186         * retr.c (downloaded_exceeds_quota): Removed.
5187         (downloaded_increase): Ditto.
5188         (total_downloaded_bytes): New variable, replaces opt.downloaded,
5189         which was the wrong place for it anyway.  Updated callers of
5190         downloaded_exceeds_quota and downloaded_increase to check this
5191         variable directly.
5192
5193         * sysdep.h: Get rid of VERY_LONG_TYPE.  Use LARGE_INT for the same
5194         purpose, defined as `long', `long long' or `double', depending on
5195         size of long and whether long long is available.
5196
5197 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
5198
5199         * sysdep.h: Also check size of short for int32_t.
5200
5201 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
5202
5203         * host.c (lookup_host): Use u_int32_t to store the result of
5204         inet_addr().  That removes the need for offset fiddling, caring
5205         about endian-ness, etc.
5206
5207         * sysdep.h: Define int32_t and u_int32_t if not available.
5208
5209 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
5210
5211         * ftp-basic.c (ftp_epsv): Use socklen_t * as the third argument to
5212         getpeername.
5213
5214         * config.h.in: Define socklen_t stub.
5215
5216         * host.c (sockaddr_len): Return socklen_t.
5217
5218         * connect.c (conaddr): Use socklen_t as the third argument to
5219         accept, getsockname, and connect.
5220
5221 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
5222
5223         * recur.c (retrieve_tree): Don't descend into documents that are
5224         not expected to contain HTML, regardless of their content-type.
5225
5226         * html-url.c (tag_url_attributes): Record which attributes are
5227         supposed to yield HTML links that can be followed.
5228         (tag_find_urls): Propagate that information to the caller through
5229         struct urlpos.
5230
5231 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
5232
5233         * hash.c (find_mapping): Return the next available mapping when
5234         the key is not found, not NULL.
5235         (hash_table_put): Use find_mapping to find the storage for the new
5236         data.
5237         (hash_table_put): Grow the table before exceeding maximum
5238         fullness, not afterwards.
5239
5240 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
5241
5242         * hash.c (hash_table_new): Slightly change the meaning of the
5243         first parameter.  Instead of being the minimum initial size, it is
5244         now the minimum number of items that the hash table can take
5245         without needing to resize.
5246
5247 2003-10-09  Hrvoje Niksic  <hniksic@xemacs.org>
5248
5249         * html-url.c (init_interesting): Initialize interesting_tags and
5250         interesting_attributes as hash tables.  This simplifies the code
5251         immensely because hash tables handle allocation and remove
5252         duplicates automatically.
5253         (find_tag): Removed.
5254         (collect_tags_mapper): Instead of calling find_tag, simply get the
5255         entry from interesting_tags hash table, which is both simpler and
5256         faster.
5257
5258 2003-10-09  Hrvoje Niksic  <hniksic@xemacs.org>
5259
5260         * hash.c (hash_table_get): Declare hash-table argument as const.
5261         (find_mapping): Ditto.
5262         (hash_table_get_pair): Ditto.
5263         (hash_table_contains): Ditto.
5264         (hash_table_count): Ditto.
5265
5266 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5267
5268         * html-url.c (get_urls_html): Parse the appropriate flags to
5269         html-parse.c.
5270
5271         * html-parse.c (map_html_tags): Accept FLAGS from the caller
5272         instead of examining OPT.
5273
5274 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5275
5276         * html-url.c (find_tag): Switch to binary search.
5277
5278 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5279
5280         * main.c (print_help): Fix typo; stured -> stored.
5281
5282 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5283
5284         * getopt.c: Add definitions of getopt_long and getopt_long_only.
5285
5286 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5287
5288         * config.h.in: Renamed DEBUG to ENABLE_DEBUG.  ENABLE_DEBUG is, I
5289         think, a better name, because it implies that debugging output is
5290         merely possible, not "on by default", as might be construed from
5291         just DEBUG.
5292
5293 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5294
5295         * ftp.c (has_insecure_name_p): Define it here.
5296
5297         * utils.c (has_wildcards_p): Define it here.
5298
5299         * sysdep.h: Declare fnmatch-related macros here, if not using
5300         system fnmatch().  Update .c files to not declare fnmatch.h
5301         directly.
5302
5303         * cmpt.c (fnmatch): Moved here.  Use it only under non-GNU libc.
5304
5305 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5306
5307         * getopt.c: Newer version, imported from Free libit.
5308
5309 2003-10-07  Hrvoje Niksic  <hniksic@xemacs.org>
5310
5311         * cookies.c (struct cookie): Remove unused backpointer to cookie
5312         jar.
5313
5314 2003-10-07  Hrvoje Niksic  <hniksic@xemacs.org>
5315
5316         * cmpt.c (memmove): Comment out, since it's no longer used.
5317
5318         * cookies.c (cookie_jar_generate_cookie_header): Allocate room for
5319         chains in one pass.
5320         (find_chains_of_host): Assume that the caller has allocated DEST
5321         to be sufficiently large to take all the data.
5322         (eliminate_dups): Run through the array and eliminate dups on the
5323         fly instead of using memmove.
5324         (cookie_jar_process_set_cookie): Free cookie->domain before
5325         re-setting it.
5326
5327 2003-10-05  Gisle Vanem  <giva@bgnett.no>
5328
5329         * mswindows.c (set_sleep_mode): Fix type of
5330         _SetThreadExecutionState.
5331
5332 2003-10-05  Hrvoje Niksic  <hniksic@xemacs.org>
5333
5334         * utils.c (file_size): Return -1 if fopen() returns NULL.  Prior
5335         to this patch, wget --post-file=nosuchfile dumped core.
5336
5337 2003-10-04  Gisle Vanem  <giva@bgnett.no>
5338
5339         * mswindows.c (run_with_timeout): Use WaitForSingleObject to wait
5340         for thread termination.
5341
5342 2003-10-04  Hrvoje Niksic  <hniksic@xemacs.org>
5343
5344         * log.c: Use `...' in function definitions; ansi2knr will convert
5345         them to va_dcl.  This allowed removal of the ugly VA_START_1 and
5346         VA_START_2 macros.
5347
5348 2003-10-03  Gisle Vanem  <giva@bgnett.no>
5349
5350         * connect.c: And don't include them here.
5351
5352         * mswindows.h: Include winsock headers here.
5353
5354 2003-10-03  Hrvoje Niksic  <hniksic@xemacs.org>
5355
5356         * html-parse.c (convert_and_copy): Move variable declarations
5357         before statements.
5358
5359 2003-10-02  Gisle Vanem  <giva@bgnett.no>
5360
5361         * mswindows.c (run_with_timeout): For Windows: Run the 'fun' in a
5362         thread via a helper function. Continually query the thread's
5363         exit-code until finished or timed out.
5364
5365 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
5366
5367         * wget.h (XMALLOC_ARRAY): Removed.
5368         (ALLOCA_ARRAY): Ditto.
5369
5370         * html-parse.c: Renamed alloca_p to resized.
5371         (GROW_ARRAY): Renamed DO_REALLOC_FROM_ALLOCA to GROW_ARRAY and
5372         returned it to html-parse.c, since nothing else was using it.
5373
5374 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
5375
5376         * retr.c (retrieve_url): Initialize DUMMY storage for DT.  Caught
5377         by valgrind.
5378
5379 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
5380
5381         * html-parse.c (convert_and_copy): Handle numeric entities in
5382         hexadecimal, &#xHH.
5383         (convert_and_copy): Copy the contents directly to the pool without
5384         a stack-allocated intermediary.
5385
5386 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
5387
5388         * utils.c (alarm_set): New function; use either setitimer or alarm
5389         to set up the alarm.
5390         (alarm_cancel): New function; cancel the alarm set up by
5391         alarm_set.
5392         (run_with_timeout): Use them.
5393
5394 2003-10-01  Hrvoje Niksic  <hniksic@xemacs.org>
5395
5396         * url.c (url_parse): Don't leak memory when a reencoded URL turns
5397         out to be invalid.
5398
5399         * url.c (parse_errors): Mark error messages for translation.
5400         (url_error): Translate error messages returned to the caller.
5401
5402 2003-10-01  Hrvoje Niksic  <hniksic@xemacs.org>
5403
5404         * ftp.c (ftp_loop_internal): Initialize TMRATE to NULL to shut up
5405         the compiler.
5406
5407 2003-09-26  Gisle Vanem  <giva@bgnett.no>
5408
5409         * src/mswindows.c: Added ws_percenttitle() showing progress in the
5410         window titlebar. Called from retr.c. Secured ws_mypath().
5411
5412         * windows/config.h.ms: alloca() prototype not needed.  Removed
5413         "#undef ENABLE_NLS"; should be in Makefile IMHO. Moved
5414         WGET_USE_STDARG from mswindows.h to config.ms.h because of #ifdef
5415         in log.c. (MSVC's vararg.h and stdarg.h are incompatible).
5416
5417 2003-09-29  Aaron Hawley <Aaron.Hawley@uvm.edu>
5418
5419         * ftp.c (getftp): --spider option should now work with FTP
5420         downloads.
5421         (ftp_loop_internal): quiet reports and calculations of downloads
5422         when --spider option set, nor try deleting when --delete-after
5423         also set.
5424         (ftp_loop): --spider will skip HTML-ification of .listing file.
5425
5426 2003-09-26  Gisle Vanem  <giva@bgnett.no>
5427
5428         * mswindows.c (read_registry): Removed.
5429         (set_sleep_mode): New function.
5430         (windows_main_junk): Call it.
5431
5432 2003-09-26  Gisle Vanem  <giva@bgnett.no>
5433
5434         * mswindows.c (read_registry): Fix invocation of registry
5435         functions.
5436
5437         * mswindows.c (read_registry): Condition definitions of sleep and
5438         usleep with not HAVE_SLEEP and HAVE_USLEEP respectively.  Define
5439         HAVE_SLEEP and HAVE_USLEEP under __DMC__.
5440
5441 2003-09-24  Hrvoje Niksic  <hniksic@xemacs.org>
5442
5443         * url.c (url_escape_1): Revert unintentional change to lowercase
5444         xdigit escapes.
5445         (url_escape_dir): Document that this function depends on the
5446         output of url_escape_1.
5447
5448 2003-09-23  Hrvoje Niksic  <hniksic@xemacs.org>
5449
5450         * progress.c (create_image): Print the current ETA if we're done
5451         with the download.
5452         (create_image): Change '-' display char to '+' in the progress bar.
5453
5454         * Makefile.in (clean): Remove .libs.
5455
5456 2003-09-23  Hrvoje Niksic  <hniksic@xemacs.org>
5457
5458         * cookies.c (struct cookie): New flag domain_exact.
5459         (update_cookie_field): Skip leading dot in domain.
5460         (find_matching_chains): Match numeric addresses exactly; don't
5461         needlessly copy HOST to the stack.
5462         (matching_cookie): Added argument HOST.  If cookie->domain_exact
5463         is set, check that HOST is equal to cookie->domain.
5464         (cookie_jar_load): Only use TAB as delimiter.  Document the
5465         meaning of DOMAIN-FLAG.  Skip leading dot in domain.
5466         (cookie_jar_load): Don't ignore DOMAIN-FLAG -- instead, set
5467         domain_exact to true if DOMAIN-FLAG is false.
5468         (save_cookies_mapper): If domain_exact is false, prepend the
5469         domain with dot, like Mozilla does.
5470
5471 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
5472
5473         * progress.c (create_image): Print the initial part of the
5474         download with '-' characters, analogous to how dot progress prints
5475         the initial part with ','.
5476
5477         * hash.c (ptrhash): New function.
5478         (ptrcmp): Ditto.
5479         (hash_table_new): Default to identity hash table.
5480
5481 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
5482
5483         * safe-ctype.h (_sch_test): The cast of BIT to unsigned char was
5484         broken -- _sch_istable bitmasks are 16-bit, not 8-bit!  Cast BIT
5485         to unsigned short instead.
5486
5487 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
5488
5489         * url.c (path_simplify): Instead of calls to memmove, handle "./"
5490         and "../" by advancing pointers.
5491
5492 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
5493
5494         * retr.c (getproxy): Moved from url.c.
5495
5496         * convert.c: Split off link conversion from url.c into separate
5497         file.  Also included the book-keeping stuff from recur.c.
5498
5499 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5500
5501         * init.c: Improved documentation of functions.
5502         (cmd_boolean): Attempt to make code that tries to avoid calling
5503         strcmp for "speed" a bit more readable.
5504
5505         * init.c (simple_atof): Report error on encountering non-digit,
5506         non-"." character.
5507         (simple_atoi): Replacement for myatoi(), calling interface
5508         compatible with simple_atof.  Updated myatoi's callers.
5509
5510 2003-09-21  Bertrand Demiddelaer  <bert@b3rt.org>
5511
5512         * url.c (path_simplify): Would read two bytes past the end of the
5513         string in the "./" case.
5514
5515 2003-09-21  Matthew J. Mellon  <mellon@tymenet.com>
5516
5517         * http.c (gethttp): Recognize content-type "application/xhtml+xml"
5518         as what Wget considers "text/html".
5519
5520 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5521
5522         * connect.c (connect_with_timeout): Made timeout type double.
5523
5524         * options.h (struct options): New members read_timeout,
5525         dns_timeout, and connect_timeout.
5526         Use them.
5527
5528 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5529
5530         * init.c (simple_atof): New function.
5531         (cmd_time): Use it.
5532         (cmd_bytes): Accept things like "1.5k" and such.  Use simple_atof
5533         to parse decimals.
5534
5535         * retr.c (limit_bandwidth): Adjust each sleep by the error of the
5536         previous one.
5537
5538 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5539
5540         * main.c (main): Use setoptval() for setting the options.  Use
5541         run_command for `-e'.
5542
5543         * init.c (parse_line): Rewritten to return COMIND right away.
5544         Changed linkage to static.
5545         (run_wgetrc): Use the available comind when calling setval, so it
5546         doesn't have to be computed twice.
5547         (setval_internal): New function, runs the command's action without
5548         any error checking.
5549         (setoptval): New function, does what setval used to do, but exits
5550         in case of error.
5551         (run_command): New function.
5552
5553 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5554
5555         * connect.c (select_fd): Change MAXTIME's type to double.  Handle
5556         its decimal part.
5557
5558         * retr.c (sleep_between_retrievals): In the random-wait case, use
5559         random_float() to wait between 0 and 2*opt.wait seconds.
5560
5561         * utils.c (run_with_timeout): Accept `double' timeouts.  Correctly
5562         handle timeout values in (0, 1) range.
5563         (random_float): New function.
5564
5565         * options.h (struct options): Change the types of wait, waitretry,
5566         and timeout to double.
5567
5568         * init.c (cmd_time): Accept floating point time.
5569
5570 2003-09-20  Hrvoje Niksic  <hniksic@xemacs.org>
5571
5572         * retr.c (get_contents): Cosmetic fixes.
5573
5574 2003-09-20  Hrvoje Niksic  <hniksic@xemacs.org>
5575
5576         * url.c (uri_merge): Get rid of uri_merge_1.
5577         (uri_merge): Merge "foo//", "bar" as "foo//bar", not "foo///bar",
5578         i.e. don't add an extra slash merely because BASE ends with two
5579         slashes.
5580         (parse_credentials): Renamed from parse_uname.  Rewrittern in
5581         standard [beg, end) calling style.
5582         (url_skip_credentials): Renamed from url_skip_uname.  Made static.
5583         (url_skip_credentials): Include # and ; as terminators.  Old code
5584         would mistakenly consider "http://foo.com#hniksic@iskon.hr" to
5585         contain a username.
5586         (url_skip_scheme): Removed because it was unused.
5587         (url_has_scheme): Require "scheme" to be at least one char long.
5588
5589 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
5590
5591         * url.c (url_file_name): Expect NULL dir_prefix.
5592
5593         * init.c (cmd_file): Use a macro to prevent multiple #ifdef
5594         WINDOWS.
5595         (defaults): Set dir_prefix to NULL by default.
5596
5597 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
5598
5599         * safe-ctype.h (_sch_test): Cast BIT to unsigned char, like latest
5600         gcc does.
5601
5602 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
5603
5604         * wget.h (BOUNDED_TO_ALLOCA): Evaluate PLACE only once.
5605         (ARRAY_SIZE): Renamed to countof.  All callers updated.
5606
5607 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
5608
5609         * main.c (main): New option --strict-comments.
5610
5611         * html-parse.c (find_comment_end): New function: simple BM search
5612         for "-->".
5613         (map_html_tags): Use it if looking at a comment and not in strict
5614         comments mode.
5615
5616 2003-09-17  Aurelien Marchand  <artaxerxes@users.sf.net>
5617
5618         * ftp.h: Added OS400 system in enum
5619         * ftp-basic.c: recognize OS400 systems
5620         * ftp.c: don't prepend the CWD if talking to OS400, since it
5621         breaks the change in library
5622
5623 2003-09-18  Hrvoje Niksic  <hniksic@xemacs.org>
5624
5625         * retr.c (get_contents): Pass the correct argument to ssl_iread.
5626
5627 2003-09-18  Hrvoje Niksic  <hniksic@xemacs.org>
5628
5629         * safe-ctype.h: Don't #define ctype.h macros to errors because
5630         that loses when someone #include's ctype.h after safe-ctype.h.
5631
5632 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
5633
5634         * url.c: Undef U, W, C after use.
5635
5636 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
5637
5638         * init.c (cmd_spec_restrict_file_names): Allow the OS setting to
5639         be augmented by ",nocontrol" which means don't escape the control
5640         characters, but otherwise keep OS settings.
5641
5642         * url.c (file_unsafe_char): Deleted.
5643         (append_uri_pathel): Query filechr_table directly.
5644         (filechr_table): Separated Unix, Windows, and control-unsafe
5645         characters.
5646
5647 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
5648
5649         * url.c (url_escape_1): New function.
5650         (url_escape): Use it.
5651         (sync_path): Handle pathological cases where u->file and u->dir
5652         contain really strange characters.
5653         (ENCODE): Deleted.
5654         (REENCODE): Deleted.
5655
5656 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
5657
5658         * url.c (url_file_name): Don't reallocate FNAME if the file
5659         doesn't exist, as is usually the case.
5660
5661         * utils.c (unique_name): New flag allow_passthrough.
5662
5663 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
5664
5665         * utils.c (wtimer_sys_diff): Convert the time difference to signed
5666         __int64, then to double.  This works around MS VC++ 6 which can't
5667         convert unsigned __int64 to double directly.
5668
5669 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
5670
5671         * Makefile.in (clean): Also remove the core.<number> files
5672         produced by recent Linux systems.
5673
5674 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
5675
5676         * http.c (post_file): Don't pad the file if it's not large
5677         enough.  Bail out instead.
5678
5679 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5680
5681         * retr.c (get_contents): Reduce the buffer size to the amount of
5682         data that may pass through for one second.  This prevents long
5683         sleeps when limiting bandwidth.
5684
5685         * connect.c (connect_to_one): Reduce the socket's RCVBUF when
5686         bandwidth limitation to small values is requested.
5687
5688 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5689
5690         * progress.c (update_speed_ring): Moved the speed ring update to a
5691         separate function and documented it better.
5692
5693         * progress.c: Use `double' for most timers to support granularity
5694         smaller than 1ms.
5695
5696 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5697
5698         * wget.h (XDIGIT_TO_XCHAR): Implement as index into a literal
5699         string.
5700         (XDIGIT_TO_xchar): Ditto.
5701
5702 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5703
5704         * utils.c: Change the type of timer-related functions from long to
5705         double, for better precision.  On machines supporting gettimeofday
5706         the timers now work with granularity of less than one millisecond.
5707
5708 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5709
5710         * cookies.c (parse_set_cookies): Fixed the parser to handle more
5711         edge conditions.
5712         (test_cookies): New function, contains a test suite for
5713         parse_set_cookies.
5714
5715 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5716
5717         * url.c (strpbrk_or_eos): Implement as a macro under Gcc.
5718
5719 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5720
5721         * cookies.c (parse_set_cookies): Allow trailing space in
5722         set-cookies header.  Also, allow any amount of whitespace, not
5723         only one character.  Allow empty set-cookies header without
5724         spewing an error.
5725
5726 2003-09-14  Hrvoje Niksic  <hniksic@xemacs.org>
5727
5728         * url.c (append_uri_pathel): Use opt.restrict_file_names when
5729         calling file_unsafe_char.
5730
5731         * init.c: New command restrict_file_names.
5732
5733         * main.c (main): New option --restrict-file-names[=windows,unix].
5734
5735         * url.c (url_file_name): Renamed from url_filename.
5736         (url_file_name): Add directory and hostdir prefix here, not in
5737         mkstruct.
5738         (append_dir_structure): New function, does part of the work that
5739         used to be in mkstruct.  Iterates over path elements in u->path,
5740         calling append_uri_pathel on each one to append it to the file
5741         name.
5742         (append_uri_pathel): URL-unescape a path element and reencode it
5743         with a different set of rules, more appropriate for handling of
5744         files.
5745         (file_unsafe_char): New function, uses a lookup table to decide
5746         whether a character should be escaped for use in file name.
5747         (append_string): New utility function.
5748         (append_char): Ditto.
5749         (file_unsafe_char): New argument restrict_for_windows, decide
5750         whether Windows file names should be escaped in run-time.
5751
5752         * connect.c: Include <stdlib.h> to get prototype for abort().
5753
5754 2003-09-14  Hrvoje Niksic  <hniksic@xemacs.org>
5755
5756         * utils.c (wtimer_sys_set): Extracted the code that sets the
5757         current time here.
5758         (wtimer_reset): Call it.
5759         (wtimer_sys_diff): Extracted the code that calculates the
5760         difference between two system times here.
5761         (wtimer_elapsed): Call it.
5762         (wtimer_elapsed): Don't return a value smaller than the previous
5763         one, which could previously happen when system time is set back.
5764         Instead, reset start time to current time and note the elapsed
5765         offset for future calculations.  The returned times are now
5766         guaranteed to be monotonically nondecreasing.
5767
5768 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
5769
5770         * host.c (lookup_host): Print the result of the DNS lookup.
5771
5772 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
5773
5774         * init.c (cmd_boolean): Accept yes/no along with on/off.
5775         (cmd_lockable_boolean): Ditto.
5776
5777 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
5778
5779         * init.c: New command dns_cache.
5780
5781         * main.c (main): New option --dns-cache[=off].
5782
5783 2003-09-09  Hrvoje Niksic  <hniksic@xemacs.org>
5784
5785         * config.h.in: Initialize HAVE_GETADDRINFO and ENABLE_IPV6.
5786
5787         * all: Use #ifdef ENABLE_IPV6 instead of the older INET6.  Use
5788         HAVE_GETADDRINFO for getaddrinfo-related stuff.
5789
5790 2003-09-09  Hrvoje Niksic  <hniksic@xemacs.org>
5791
5792         * url.c (url_parse): Return an error if the URL contains a [...]
5793         IPv6 numeric address and we don't support IPv6.
5794
5795 2003-09-05  Hrvoje Niksic  <hniksic@xemacs.org>
5796
5797         * url.c (is_valid_ipv6_address): Modified to not require
5798         zero-terminated strings.
5799         (is_valid_ipv4_address): Ditto.
5800
5801 2003-09-05  Mauro Tortonesi <mauro@deepspace6.net>
5802
5803         src/url.c: added RFC 2732 compliance for URL parsing. The
5804         functions is_*_address valid are a modified version of
5805         glibc 2.3.2 inet_pton's code.
5806
5807 2003-09-03  Ahmon Dancy  <dancy@dancysoft.com>
5808
5809         * main.c init.c options.h: Added --retry-connrefused option so
5810         that Connection Refused failures are treated as non-fatal (when
5811         trying to retrieve from busy servers).
5812
5813         * wget.h: New CONNECT_ERROR macro for encapsulating this
5814         modification.
5815
5816         * ftp.c http.c : Use CONNECT_ERROR macro in places where
5817         ECONNREFUSED was checked.
5818
5819 2003-01-11  Ian Abbott  <abbotti@mev.co.uk>
5820
5821         * ftp.c (ftp_retrieve_glob): Reject insecure filenames as determined
5822         by calling new function has_insecure_name_p.  This is based on a
5823         patch by Red Hat.
5824
5825         * fnmatch.c (has_insecure_name_p): New function: returns non-zero
5826         if filename starts with `/' or contains `../' and is therefore
5827         considered insecure.
5828
5829         * fnmatch.h: Declare has_insecure_name_p().
5830
5831 2002-08-03  Hrvoje Niksic  <hniksic@xemacs.org>
5832
5833         * init.c (cmd_file): Allocate RESULT correctly.
5834
5835 2002-07-24  Hrvoje Niksic  <hniksic@xemacs.org>
5836
5837         * recur.c (retrieve_tree): Check whether downloaded_html_set is
5838         non-NULL before using it.
5839
5840 2002-05-27  Hrvoje Niksic  <hniksic@arsdigita.com>
5841
5842         * html-parse.c (NAME_CHAR_P): Allow almost any character here.
5843
5844 2002-05-24  Hrvoje Niksic  <hniksic@arsdigita.com>
5845
5846         * progress.c (bar_set_params): Fall back to dot progress if the
5847         terminal type is "emacs".
5848
5849 2002-05-20  Hrvoje Niksic  <hniksic@arsdigita.com>
5850
5851         * log.c: Don't #undef WGET_USE_STDARG.
5852
5853 2002-05-16  Hrvoje Niksic  <hniksic@arsdigita.com>
5854
5855         * hash.c (prime_size): Store the offset of the prime number in the
5856         prime table.  When searching, start with the given offset.
5857         (hash_table_new): Pass the pointer to ht->prime_offset to
5858         prime_size.
5859         (grow_hash_table): Ditto.
5860         (prime_size): Make 13 the first prime to make empty hash tables
5861         slightly smaller.
5862
5863 2002-05-16  Ian Abbott  <abbotti@mev.co.uk>
5864
5865         * recur.c (download_child_p): Minor optimization to avoid an
5866         unnecessary additional call to schemes_are_similar_p function.
5867
5868 2002-05-16  Ian Abbott  <abbotti@mev.co.uk>
5869
5870         * url.c (schemes_are_similar_p): New function to test enumerated
5871         scheme codes for similarity.
5872
5873         * url.h: Declare it.
5874
5875         * recur.c (download_child_p): Use it to compare schemes.  This
5876         also fixes a bug that allows hosts to be spanned (without the
5877         -H option) when the parent scheme is https and the child's is
5878         http or vice versa.
5879
5880 2002-05-14  Bill Richardson  <bill@riverstonenet.com>
5881
5882         * ftp.c (getftp): Don't ftruncate stdout.
5883
5884         * http.c (gethttp): Don't ftruncate stdout.
5885
5886 2002-05-09  Ian Abbott  <abbotti@mev.co.uk>
5887
5888         * cmpt.c (strptime_internal): Synched with glibc-2.1.3.
5889         (get_number): Ditto.
5890         (get_alt_number): Ditto.
5891         (__isleap): New function-like macro used by strptime.
5892         (day_of_the_week): New function used by strptime.
5893         (day_of_the_year): Ditto.
5894         (__mon_yday): Now shared by mktime and strptime implementations.
5895
5896 2002-05-08  Hrvoje Niksic  <hniksic@arsdigita.com>
5897
5898         * cookies.c (check_domain_match): Use match_tail in case
5899         insensitive mode.
5900
5901         * utils.c (match_tail): Allow the caller to specify case
5902         insensitive mode.
5903
5904         * cookies.c (store_cookie): When expiry_time is 0, print it as
5905         undefined, not indefinite.
5906
5907 2002-05-07  Ian Abbott  <abbotti@mev.co.uk>
5908
5909         * cookies.c (cookie_jar_process_set_cookie): Do not store
5910         discarded cookie.
5911
5912 2002-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
5913
5914         * cookies.c (check_domain_match): Allow cookies to be set for
5915         subdomains of unknown top-level domains under some circumstances.
5916
5917 2002-04-21  Thomas Lussnig  <thomas.lussnig@bewegungsmelder.de>
5918
5919         * gen_ssl.c:
5920         - allow checking of server cert
5921         - allow defining client cert type
5922         - allow limit of ssl protocol
5923         - check more return values
5924         - added debug message on break
5925
5926 2002-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
5927
5928         * recur.c (download_child_p): Revert order of items in check
5929         number 6 for clarity.
5930
5931 2002-04-20  Hrvoje Niksic  <hniksic@arsdigita.com>
5932
5933         * init.c: Ditto.
5934
5935         * main.c: Ditto.
5936
5937         * http.c: Use the new interface.
5938
5939         * cookies.c: Provide an OO-style "cookie jar" interface to enable
5940         separate cookie jars.
5941
5942         * http.c (http_atotm): Declare argument as const.
5943
5944 2002-04-20  Hrvoje Niksic  <hniksic@arsdigita.com>
5945
5946         * cookies.c (cookie_new): Default to PORT_ANY.
5947         (find_cookie_chain_exact): Only search by DOMAIN.
5948         (find_matching_cookie): Also check that PORT matches.
5949         (store_cookie): Only match the domain.
5950         (set_cookie_header_cb): When a cookie "fakes" a domain, assume it
5951         is valid for that host rather than discarding it completely.
5952         (find_matching_chains): Don't search by PORT.
5953         (matching_cookie): Also match PORT.
5954         (load_cookies): Set the port if specified, otherwise leave it as
5955         ANY.
5956         (save_cookies_mapper): Save the port if specified, otherwise leave
5957         it empty.
5958
5959 2002-04-19  Thomas Lussnig  <thomas.lussnig@bewegungsmelder.de>
5960
5961         * init.c: The option `egdfile' was not in sort order.
5962
5963 2002-04-16  Hrvoje Niksic  <hniksic@arsdigita.com>
5964
5965         * ftp.c (getftp): Treat directories that begin with <letter>: as
5966         absolute.
5967         (getftp): Strip trailing slashes from con->id before merging it
5968         with TARGET.
5969
5970 2002-04-16  Hrvoje Niksic  <hniksic@arsdigita.com>
5971
5972         * http.c (gethttp): If Content-Type is not given, assume
5973         text/html.
5974
5975 2002-04-15  Hrvoje Niksic  <hniksic@arsdigita.com>
5976
5977         * recur.c (download_child_p): Don't ignore rejection of HTML
5978         documents that are themselves leaves of recursion.
5979
5980 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
5981
5982         Makefile.in: Updated several dependencies for object files to take
5983         account of nested include files.
5984
5985 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
5986
5987         Makefile.in: The target `connect$o' (connect.o) now depends on
5988         `utils.h'
5989
5990 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
5991
5992         * host.c (SET_H_ERRNO): New function-like macro to set `h_errno'.
5993         (gethostbyname_with_timeout): Use it.
5994
5995         * utils.c: Don't define `SETJMP()', `run_with_timeout_env' or
5996         `abort_run_with_timeout()' when `USE_SIGNAL_TIMEOUT' is undefined.
5997
5998 2002-04-15  Hrvoje Niksic  <hniksic@arsdigita.com>
5999
6000         * host.c (getaddrinfo_with_timeout): New function.
6001         (gethostbyname_with_timeout): Ditto.
6002         (lookup_host): Use them.
6003
6004 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6005
6006         * utils.c (number_to_string): Handle the case when n < -INT_MAX.
6007
6008 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6009
6010         * init.c (comind): Use a marginally faster implementation of
6011         binary search.  To quote Martin Buchholz, "a nanosecond saved is a
6012         nanosecond earned."
6013
6014 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6015
6016         * main.c (print_help): Document `--post-data' and `--post-file'.
6017
6018 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6019
6020         * http.c (gethttp): Ditto.
6021
6022         * retr.c (retrieve_url): Initialize variables to appease the
6023         compiler.
6024
6025         * gen_sslfunc.c (ssl_iread): Don't handle EINTR when calling
6026         select_fd.
6027         (ssl_iwrite): Ditto.
6028
6029         * connect.c (select_fd): Rewrite to handle EINTR.  Set errno to
6030         ETIMEDOUT in case of timeout.
6031         (iread): No need to handle EINTR when calling select_fd.
6032         (iwrite): Ditto.
6033
6034 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6035
6036         * retr.c (retrieve_url): Make sure that POST is not honored for
6037         redirections.
6038
6039         * http.c (gethttp): Send the POST data when requested.
6040         (post_file): New function.
6041         (gethttp): Use it.
6042
6043         * main.c (main): Ditto.
6044
6045         * init.c: Add new options.
6046
6047         * options.h (struct options): New options post_data and
6048         post_file_name.
6049
6050 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6051
6052         * connect.c (connect_with_timeout): Firing SIGALRM can result in
6053         connect() exiting with EINTR.  Treat EINTR the same as ETIMEDOUT.
6054
6055 2002-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6056
6057         * connect.c (connect_with_timeout): Use it.
6058
6059         * utils.c (run_with_timeout): New function.
6060
6061 2002-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6062
6063         * url.c (getproxy): Accept a struct url argument.  This obviates
6064         the need for USE_PROXY_P.
6065
6066         * retr.c (retrieve_url): Allow proxy to be a non-FTP URL.
6067
6068         * ftp.c (getftp): Recognize FWTK-style proxy.
6069
6070 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6071
6072         * config.h.in: Only define _VA_LIST when compiled with gcc.
6073
6074 2002-04012  Ian Abbott  <abbotti@mev.co.uk>
6075
6076         * http.c (http_loop): Compensate for MS Windows two-second
6077         granularity of file modification time when comparing timestamps.
6078
6079         * ftp.c (ftp_retrieve_list): Ditto.
6080
6081 2002-04-12  Ian Abbott  <abbotti@mev.co.uk>
6082
6083         * utils.c (has_html_suffix_p): New function to test filename for
6084         common html extensions.
6085
6086         * utils.h: Declare it.
6087
6088         * http.c (http_loop): Use it instead of previous test.
6089
6090         * retr.c (retrieve_url): Ditto.
6091
6092         * recur.c (download_child_p): Ditto.
6093
6094 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6095
6096         * config.h.in: Define _VA_LIST on Solaris to prevent stdio.h from
6097         declaring va_list.
6098         From Kevin Rodgers <kevinr@ihs.com>.
6099
6100 2002-04-12  Ian Abbott  <abbotti@mev.co.uk>
6101
6102         * Makefile.in: Specify libtool mode explicitly when linking.
6103
6104 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6105
6106         * connect.c (connect_with_timeout): New function.
6107         (connect_to_one): Use it.
6108
6109         * config.h.in: Add stubs for HAVE_SIGSETJMP, HAVE_SIGBLOCK, and
6110         HAVE_SETJMP_H.
6111
6112 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6113
6114         * log.c: Set WGET_USE_STDARG if __STDC__ is defined and stdarg.h
6115         is present.
6116
6117 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6118
6119         * progress.c (bar_create): If INITIAL is larger than TOTAL, fix
6120         TOTAL.
6121         (bar_finish): Likewise.
6122
6123 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6124
6125         * html-url.c (tag_handle_form): New function.  Pick up form
6126         actions and mark them for conversion only.
6127
6128 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6129
6130         * progress.c (struct progress_implementation): Use PARAMS when
6131         declaring the parameters of *create, *update, *finish, and
6132         *set_params.
6133
6134         * netrc.c: Ditto.
6135
6136         * http.c: Reformat some function definitions so that ansi2knr can
6137         read them.
6138
6139         * hash.c (struct hash_table): Use the PARAMS macro around
6140         parameters in the declaration of hash_function and test_function.
6141         (prime_size): Spell 2580823717UL and 3355070839UL as (unsigned
6142         long)0x99d43ea5 and (unsigned long)0xc7fa5177 respectively, so
6143         that pre-ANSI compilers can read them.
6144         (find_mapping): Use PARAMS when declaring EQUALS.
6145         (hash_table_put): Ditto.
6146
6147         * ftp.h: Wrap the parameters of ftp_index declaration in PARAMS.
6148
6149         * cookies.c (cookie_new): Use (unsigned long)0 instead of 0UL,
6150         which was unsupported by pre-ANSI compilers.
6151
6152         From Nelson H. F. Beebe <beebe@math.utah.edu>, for the most part.
6153
6154 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6155
6156         * url.c (url_filename): Use compose_file_name regardless of
6157         whether opt.dirstruct is set.
6158         (mkstruct): Don't handle the query and the reencoding of DIR; that
6159         is done in compose_file_name.
6160
6161 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6162
6163         * wget.h: Ditto for extern char *exec_name.
6164
6165         * options.h: Don't guard against OPTIONS_DEFINED_HERE -- it is
6166         perfectly legal to follow an `extern' with a non-`extern' ones,
6167         provided the types match.
6168
6169         * main.c: Don't define OPTIONS_DEFINED_HERE.
6170
6171 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6172
6173         * progress.c (create_image): Revert to calculating ETA based on
6174         average download speed.
6175         (create_image): Don't print ETA until the download has been active
6176         for at least 3 seconds.
6177         (create_image): When ETA is not available, don't print anything.
6178         The previous version would print --:--.
6179
6180 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6181
6182         * progress.c (bar_update): Keep updating a subinterval until it
6183         reaches or exceeds a watermark.  That way the measurement will be
6184         guaranteed to span a configurable minimum of time.  The current
6185         default is 3s in 30 100ms intervals.
6186
6187 2002-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6188
6189         * progress.c (bar_update): Maintain an array of the time it took
6190         to perform previous 30 network reads.
6191         (create_image): Calculate the download speed and ETA based on the
6192         last 30 reads, not the entire download.
6193         (create_image): Make sure that the ETA is not changed more than
6194         once per second.
6195
6196 2002-04-09  Ian Abbott  <abbotti@mev.co.uk>
6197
6198         * mswindows.c (borland_utime): New function conditionally defined
6199         when `HACK_BCC_UTIME_BUG' is defined.  A reimplementation of
6200         `utime()' as Borland's `utime()' function is broken on Windows 9x
6201         systems.  (Original patch by Chin-yuan Kuo <sr1111111@yahoo.com.tw>.)
6202
6203 2002-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
6204
6205         * ftp.c (ftp_loop): Propagate the result of ftp_retrieve_glob.
6206
6207 2002-03-26  Ian Abbott  <abbotti@mev.co.uk>
6208
6209         * Makefile.in: Updated several dependencies for object files.
6210
6211 2002-03-20  Ian Abbott  <abbotti@mev.co.uk>
6212
6213         * mswindows.c: Include "utils.h".
6214
6215 2002-03-18  Ian Abbott  <abbotti@mev.co.uk>
6216
6217         * host.h: Don't include netdb.h on windows.
6218
6219 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6220
6221         * recur.c (retrieve_tree): Handle the case when start_url doesn't
6222         parse.
6223
6224 2002-02-19  Andreas Damm  <andreas-sourceforge@radab.org>
6225
6226         * wget.h (DO_REALLOC_FROM_ALLOCA): Multiply with sizeof(type) when
6227         calling xmalloc and memcpy.
6228
6229 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6230
6231         * host.h: Include Unix-specific includes #ifndef WINDOWS.
6232         Patch originally provided by Christian Lackas.
6233
6234 2002-02-11  Christian Lackas  <delta@lackas.net>
6235
6236         * recur.c: recurive downloading for https fixed.
6237
6238 2002-02-19  Alan Eldridge  <alane@geeksrus.net>
6239
6240         * host.h: Also include <netinet/in.h> and <sys/socket.h>.
6241
6242         * ftp-basic.c: Also include <netinet/in.h>.
6243
6244 2002-02-05  Ian Abbott  <abbotti@mev.co.uk>
6245
6246         * http.c (gethttp): when -c used, mark already fully retrieved
6247         file as successfully retrieved.
6248
6249 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6250
6251         * url.c (url_parse): Don't treat '?' as query string separator
6252         when parsing FTP URLs.
6253
6254 2002-02-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6255
6256         * html-url.c (tag_handle_meta): Don't crash on <meta
6257         http-equiv=refresh> where content is missing.
6258
6259 2002-01-31  Herold Heiko  <Heiko.Herold@previnet.it>
6260
6261         * ftp-basic.c, host.c: don't include sys/socket.h, arpa/inet.h,
6262         netdb.h on windows.
6263
6264 2002-01-30  Hrvoje Niksic  <hniksic@arsdigita.com>
6265
6266         * retr.c (retrieve_url): Remove redirection cycle detection.  This
6267         is because some sites legitimately redirect the user back to the
6268         same location, e.g. after an authorization check performed by
6269         another page.  MAX_REDIRECTIONS is still used to prevent infinite
6270         redirection loops.
6271
6272 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6273
6274         * http.c (gethttp): Wrap host name in square brackets if it
6275         contains a colon.
6276
6277 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6278
6279         * url.c (url_parse): Allow all hex digits, not only decimal ones,
6280         to form an IP address.
6281
6282 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6283
6284         * url.c (urlchr_table): Make square braces reserved, so we can
6285         parse http://[::1]/.
6286         (url_parse): Handle host in braces.
6287         (url_string): If url->host contains colons, wrap it in braces.
6288
6289 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6290
6291         * connect.c (resolve_bind_address): New function.
6292         (connect_to_one): Use it.
6293         (bindport): Ditto.
6294
6295         * init.c: Don't resolve bind-address here.
6296
6297         * host.c (wget_sockaddr_set_address): Would bug out with ADDR == NULL.
6298
6299 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6300
6301         * host.c (lookup_host): Use sizeof(ip4_address) to calculate the
6302         offset.
6303         (address_list_new): Use map_ipv4_to_ip.
6304         (wget_sockaddr_set_address): Convert ADDR to IPv4 before using it
6305         in IPv4 context.
6306
6307 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6308
6309         * source: Integrated IPv6 support.
6310         Written by Thomas Lussnig <thomas.lussnig@bewegungsmelder.de>.
6311
6312 2002-01-15  Ian Abbott  <abbotti@mev.co.uk>
6313
6314         * init.c (cmd_file): Change `\' to `/' for Windows (yes, really!)
6315         (cmd_directory): New function. Like cmd_file(), but strips
6316         trailing directory separators.
6317         (commands): Change action for "dirprefix" from `cmd_file' to
6318         `cmd_directory'.
6319
6320         * utils.c (make_directory): Allow intermediate `mkdir' calls to
6321         fail, as not all path components that do not exist should be
6322         directory components, especially under Windows.
6323
6324 2002-01-17  Hrvoje Niksic  <hniksic@arsdigita.com>
6325
6326         * netrc.c (parse_netrc): Skip leading whitespace before testing
6327         whether the line is empty.  Empty lines still contain the line
6328         terminator.
6329
6330 2002-01-15  Hrvoje Niksic  <hniksic@arsdigita.com>
6331
6332         * gen_sslfunc.c (ssl_iread): Call select on the file descriptor
6333         only if no data is pending in SSL buffers.
6334         From tony@bluetail.com.
6335
6336 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6337
6338         * headers.c (header_get): Strip trailing whitespace from the
6339         header.
6340
6341 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6342
6343         * url.c (parse_uname): URL-decode *USER and *PASSWD.
6344
6345 2002-01-07  Ian Abbott <abbotti@mev.co.uk>
6346
6347         * url.c (uri_merge_1): Deal with "net path" relative URL (one that
6348         starts with "//").
6349
6350 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6351
6352         * http.c (gethttp): Invalidate SOCK if get_contents encountered an
6353         error.
6354
6355 2001-12-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6356
6357         * version.c: Wget 1.8.1 is released.
6358
6359 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6360
6361         * version.c: Wget 1.8.1-pre3 is released.
6362
6363 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6364
6365         * recur.c (retrieve_tree): Enqueue the canonical representation of
6366         start_url, so that the test against dl_url_file_map works.
6367
6368 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6369
6370         * log.c (logputs): Check for requested verbosity before printing
6371         anything.
6372
6373 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6374
6375         * html-url.c (tag_handle_link): Treat the "shortcut icon" link as
6376         inline.
6377
6378 2001-12-18  Hrvoje Niksic  <hniksic@arsdigita.com>
6379
6380         * recur.c (retrieve_tree): Make a copy of file obtained from
6381         dl_url_file_map because the code calls xfree(file) later.
6382
6383 2001-12-18  Hrvoje Niksic  <hniksic@arsdigita.com>
6384
6385         * recur.c (register_html): Maintain a hash table of HTML files
6386         along with the list.  Disallow duplicates.
6387         (retrieve_tree): Use downloaded_html_set to check whether the file
6388         found in dl_url_file_map is an HTML file, and descend into it if
6389         so.
6390         (convert_all_links): Don't guard against duplicates in
6391         downloaded_html_list, since they are no longer possible.
6392
6393 2001-12-18  Ian Abbott  <abbotti@mev.co.uk>
6394
6395         * recur.c (retrieve_tree): Pass on referring URL when retrieving
6396         recursed URL.
6397
6398 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
6399
6400         * version.c: Wget 1.8.1-pre2 is released.
6401
6402 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
6403
6404         * retr.c (sleep_between_retrievals): Simplify indentation.
6405
6406 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
6407
6408         * gen_sslfunc.c (ssl_init_prng): Use random_number to get a byte
6409         of "randomness" at a time.
6410         (ssl_init_prng): Don't seed the PRNG; random_number will do that.
6411
6412         * retr.c (sleep_between_retrievals): Use it.  Make sure that the
6413         random amount averages in opt.wait.
6414         (sleep_between_retrievals): Don't seed the PRNG; random_number
6415         will do that.
6416
6417         * utils.c (random_number): New function.
6418
6419 2001-12-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6420
6421         * url.c (path_simplify): Move here from utils.c, and make static.
6422
6423 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6424
6425         * init.c (wgetrc_file_name): Print correct message when loading
6426         getenv("WGETRC") fails.
6427
6428 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6429
6430         * recur.c (register_download): Don't abort when one URL references
6431         two different files.
6432
6433 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6434
6435         * http.c (gethttp): Check for conn->scheme, not u->scheme, before
6436         calling ssl_iwrite.
6437
6438 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6439
6440         * version.c: Wget 1.8.1-pre1 is released.
6441
6442 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6443
6444         * res.c (matches): Fix broken URL in the docstring.
6445
6446 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6447
6448         * html-url.c (tag_url_attributes): Mark <embed href=...> as
6449         external.
6450
6451 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6452
6453         * url.c (get_urls_file): Cosmetic changes.
6454
6455 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6456
6457         * html-url.c (append_one_url): Resurrect warning when unable to
6458         resolve a relative link.
6459
6460 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6461
6462         * html-url.c (collect_tags_mapper): Break into several functions.
6463         (tag_url_attributes): Collect <embed href=...>.
6464
6465 2001-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6466
6467         * host.c: New type ipv4_address.  Use it consistently instead of
6468         `unsigned char[4]' and `unsigned char *'.
6469         (pretty_print_address): Accept a `const void *', to require even
6470         less casting.
6471
6472 2001-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6473
6474         * ftp-ls.c (ftp_parse_vms_ls): Fix obvious memory leaks.
6475
6476 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6477
6478         * main.c (main): Initialize progress after fork_to_background, so
6479         that it knows when to use dots.
6480
6481         * mswindows.c (ws_hangup): Call log_request_redirect_output.
6482
6483         * utils.c (fork_to_background): Print the PID of the child
6484         process.
6485
6486         * log.c (log_request_redirect_output): Set a flag that output
6487         redirection has been requested.  Doing anything else in a signal
6488         handler is unsafe.
6489         (check_redirect_output): New function: check whether redirection
6490         has been requested and, if so, call redirect_output().
6491         (logputs): Call check_redirect_output.
6492         (logprintf): Ditto.
6493         (debug_logprintf): Ditto.
6494         (redirect_output): Print clearer messages.
6495
6496         * main.c (redirect_output_signal): Don't call
6497         redirect_output_signal directly.  Instead, call
6498         log_request_redirect_output.
6499
6500         * utils.c (memfatal): Ditto.
6501
6502         * progress.c (display_image): Use it.
6503
6504         * log.c (log_set_save_context): New function: allow the caller to
6505         turn off saving log context lines.
6506
6507 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6508
6509         * host.c (address_list_set_faulty): Uncomment a sanity check.
6510
6511 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6512
6513         * utils.c (long_to_string): Return a pointer after where the
6514         number ends.
6515         (long_to_string): Rename to number_to_string.
6516
6517 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6518
6519         * utils.c (path_simplify): Correctly handle the unlikely case that
6520         b starts out as path + 1.
6521
6522 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6523
6524         * utils.c (path_simplify): Rewrite, with better comments, and
6525         without the use of strcpy to move overlapping blocks.
6526
6527 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6528
6529         * init.c (cmd_spec_progress): Resurrect.  Check whether VAL is a
6530         valid progress type before setting it.
6531
6532 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6533
6534         * main.c (main): Remove stray debugging message.
6535
6536 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6537
6538         * progress.c (create_image): Fix ETA padding when hours are prined.
6539
6540 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6541
6542         * version.c: Wget 1.8 is released.
6543
6544 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6545
6546         * url.c (reencode_string): Declare static.
6547
6548         * res.c (registered_specs): Declare static.
6549
6550         * progress.c (current_impl_locked): Declare static.
6551
6552         * log.c (flush_log_p): Declare static.
6553         (needs_flushing): Ditto.
6554
6555         * http.c (digest_authentication_encode): Declare static.
6556
6557         * html-url.c (init_interesting): Declare static.
6558
6559         * host.c (host_name_addresses_map): Declare static.
6560
6561         * cookies.c (find_matching_chains): Declare static.
6562
6563         * ftp-ls.c (ftp_parse_vms_ls): Warn about the memory leak
6564         indicated by lint.
6565
6566         * utils.c (path_simplify): Remove unused variable STUB_CHAR.
6567
6568         * host.c (address_list_set_faulty): Document that INDEX is
6569         currently unused.
6570
6571         * url.c (rewrite_shorthand_url): Remove unused variable PATH.
6572
6573 2001-12-08  Hrvoje Niksic  <hniksic@arsdigita.com>
6574
6575         * version.c: Wget 1.8-pre2 is released.
6576
6577 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6578
6579         * progress.c (progress_handle_sigwinch): Set up the signal again.
6580
6581         * utils.c: Include <sys/termios.h>, where Solaris defines
6582         TIOCGWINSZ.
6583
6584         * progress.c (bar_create): Don't use the last column on the screen.
6585         (create_image): Pad ETA to constant size.  Pad SIZE to nine digits
6586         only until it exceeded them.
6587
6588 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6589
6590         * version.c: Wget 1.8-pre1 is released.
6591
6592 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6593
6594         * progress.c (progress_create): Make sure that, when the output is
6595         redirected, the progress implementation gets changed to the
6596         fallback one.
6597         (bar_set_params): Set current_impl_locked to 1 when "force" is
6598         specified.
6599         (progress_create): Don't change the progress implementation if
6600         current_impl_locked is non-zero.
6601
6602         * main.c (redirect_output_signal): Call
6603         progress_schedule_redirect.
6604
6605         * progress.c (progress_schedule_redirect): New function.
6606
6607 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6608
6609         * log.c (logvprintf): Restructure to allow being called multiple
6610         times.
6611         (logprintf): Call logvprintf in a loop.
6612         (debug_logprintf): Ditto.
6613
6614 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6615
6616         * gen_sslfunc.c (ssl_init_prng): Allow the user to disable EGD by
6617         setting egd_file it to empty string.
6618
6619         * main.c (main): Change the option name from --sslegdsock to
6620         --egd-file.
6621
6622 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6623
6624         * gen_sslfunc.c (ssl_init_prng): Make the printed message
6625         translatable.
6626
6627 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6628
6629         * url.c (scheme_disable): New function.
6630
6631         * main.c (main): Call ssl_init_prng from here rather than from
6632         init_ssl, so that it has a chance to disable support for https
6633         before a URL has been resolved.
6634
6635         * gen_sslfunc.c (ssl_init_prng): Seed with rand() if all else
6636         failed.
6637         (ssl_init_prng): Disable support for https if seeding the PRNG
6638         fails.
6639
6640 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6641
6642         * utils.c (read_whole_line): Handle lines beginning with \0.
6643
6644 2001-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
6645
6646         * recur.c (convert_all_links): Guard against duplicates in
6647         downloaded_html_files.
6648         (register_download): Don't invalidate similar-looking URLs.
6649         (match_except_index): New function.
6650
6651 2001-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
6652
6653         * utils.c (path_simplify): Document with test cases.
6654
6655 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
6656
6657         * gen_sslfunc.c: Ditto.
6658
6659         * rbuf.c: Include <string.h>.
6660
6661 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
6662
6663         * recur.c (retrieve_tree): Check whether the URL was already
6664         downloaded before downloading it again.
6665         (descend_child_p): Renamed to download_child_p.
6666         (register_download): When one URL is downloaded to a file already
6667         "owned" by another URL, delete all references that map any URL to
6668         that file.
6669         (register_delete_file): New function.
6670         (retrieve_tree): Use it after deleting a file.
6671
6672         * url.c (url_parse): Re-canonicalize the URL also if the path is
6673         empty, so that e.g. "http://www.server.com" ->
6674         "http://www.server.com/".
6675         (lowercase_str): Use ISUPPER instead of !ISLOWER.
6676
6677         * retr.c (retrieve_url): Use the canonical URL form when calling
6678         register_download().
6679
6680 2001-12-04  Ian Abbott <abbotti@mev.co.uk>
6681
6682         * snprintf.c (dopr): Use `unsigned int' as the second argument to
6683         va_arg when casting to `unsigned short' is intended.
6684
6685 2001-12-04  Herold Heiko  <Heiko.Herold@previnet.it>
6686
6687         * gen_sslfunc.c: on windows provide ssl crypto random
6688           initialization through RAND_screen(); could possibly
6689           be not enough for strong ssl communication (see the
6690           relevant manual page from the openssl package).
6691
6692 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
6693
6694         * url.c (local_quote_string): Reenable quoting of question marks,
6695         but only when `--html-extension' is used.
6696
6697 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
6698
6699         * version.c: Wget 1.8-beta3 is released.
6700
6701 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
6702
6703         * snprintf.c (dopr): Cast the result of va_arg to short int and
6704         short unsigned int where these types are expected to be used.
6705
6706 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
6707
6708         * snprintf.c (dopr): Replace `short int' and `unsigned short int'
6709         with `int' when using it as the second argument to `va_arg'.
6710
6711 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
6712
6713         * host.c (address_list_new_one): New function.
6714         (lookup_host): Use it.
6715
6716 2001-12-03  Andre Majorel  <amajorel@teaser.fr>
6717
6718         * host.c (lookup_host): Don't initialize TMPSTORE directly because
6719         it's not legal C.
6720
6721 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
6722
6723         * ftp-basic.c (ftp_port): Don't return HOSTERR if we fail getting
6724         the socket data.
6725
6726         * ftp.c: Ditto.
6727
6728         * http.c: No need to declare h_errno.
6729
6730         * host.c: Declare h_errno.
6731
6732 2001-12-02  Hrvoje Niksic  <hniksic@arsdigita.com>
6733
6734         * utils.c (file_merge): If BASE doesn't contain a slash, just
6735         return a copy of FILE.
6736
6737 2001-12-02  Hrvoje Niksic  <hniksic@arsdigita.com>
6738
6739         * version.c: Wget 1.8-beta2 is released.
6740
6741 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6742
6743         * ftp.c (getftp): When PWD fails, assume "/".
6744
6745         * ftp-basic.c (ftp_syst): Fix indentation.
6746
6747 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6748
6749         * url.c (get_urls_file): If opt.base_href is specified, merge each
6750         URL with the base.
6751
6752 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6753
6754         * main.c (print_help): Don't document the removed `-nh'.
6755
6756 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6757
6758         * url.c (url_full_path): Document better.
6759
6760         * http.c (gethttp): Use the full path when creating digest
6761         authorization.
6762
6763 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6764
6765         * cookies.c (path_matches): Return 0 if PREFIX doesn't begin with
6766         '/'.
6767
6768 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6769
6770         * cookies.c (path_matches): FULL_PATH doesn't begin with '/', but
6771         PREFIX does.
6772
6773 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6774
6775         * cookies.c (check_domain_match): Reimplement to match Netscape's
6776         "preliminary specification" for cookies.
6777
6778 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6779
6780         * url.c (replace_attr_refresh_hack): New function.
6781         (convert_links): Call replace_attr_refresh_hack for Refresh
6782         links.  It will add the "TMOUT; URL=" junk before the link.
6783
6784         * html-url.c (collect_tags_mapper): Set ID to the ID of the
6785         "content" attribute, not "http-equiv".
6786         (collect_tags_mapper): Don't use OFFSET to hack the raw_* values;
6787         instead, store the information that this entry belongs to a
6788         "refresh" link.
6789
6790 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6791
6792         * version.c: Wget 1.8-beta1 is released.
6793
6794 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6795
6796         * recur.c (retrieve_tree): Allow -p retrievals to exceed maximum
6797         depth by more than one.
6798
6799 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
6800
6801         * retr.c (retrieve_url): Don't allow more than 20 redirections.
6802
6803 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
6804
6805         * recur.c (retrieve_tree): Skip the non-inline entries when
6806         enqueuing the children of a leaf HTML node in -p mode.
6807         (descend_url_p): Ignore opt.no_parent when in -p mode and UPOS is
6808         "inline".
6809
6810         * html-url.c (get_urls_html): Don't accept dash_p_leaf_HTML.
6811         (collect_tags_mapper): When an entry is "inline", mark it as such.
6812
6813         * recur.c (descend_url_p): Fix test when checking for
6814         acceptance/rejection rules.
6815
6816 2001-10-31 Daniel BODEA <dali@dali-designs.com>
6817
6818         * netrc.c (search_netrc): When slack_default is 0, still look for
6819         an account with matching password, just not the "default account".
6820         HTTP Authorization using .netrc should now work as expected.
6821
6822 2001-11-30  T. Bharath  <TBharath@responsenetworks.com>
6823
6824         * http.c (persistent_available_p): Call SHUTDOWN_SSL if
6825         test_socket_open fails.
6826
6827 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
6828
6829         * progress.c (display_image): Just print one CR to reset the
6830         cursor position.
6831
6832 2001-11-30  Christian Fraenkel  <c.fraenkel@gmx.net>
6833
6834         * init.c: New command `ssl_egd_sock'.
6835
6836         * main.c (main): New option `--sslegdsock'.
6837
6838         * gen_sslfunc.c (ssl_init_prng): Seed the RNG using EGD.
6839
6840 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6841
6842         * cmpt.c (memmove): Include a simple memmove implementation.
6843
6844 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6845
6846         * headers: Guard against header files being included twice.
6847
6848 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6849
6850         * gen-md5.c: Use unsigned char * as the buffer argument to
6851         gen_md5_update.
6852
6853 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6854
6855         * connect.h: Declare select_fd.
6856
6857 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6858
6859         * recur.c (descend_url_p): When resolving no_parent, compare with
6860         start_url, not parent url.  Otherwise link from /a/b/ to /a/c/
6861         wouldn't be followed, although the download started from /a/.
6862
6863 2001-01-23  Herold Heiko  <Heiko.Herold@previnet.it>
6864
6865         * config.h.ms, mswindows.h: defined HAVE_ISATTY, use _isatty for
6866         MS VC; somebody with Borland compiler please check and provide
6867         patch if possible;
6868
6869         * cmpt.c: provided a usleep emulation.
6870
6871 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6872
6873         * host.c (address_list_new): Initialize al->faulty.
6874
6875 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6876
6877         * http.c (http_process_range): Accept the broken output of
6878         "JavaWebServer/1.1.1".
6879
6880 2001-11-28  Hrvoje Niksic  <hniksic@arsdigita.com>
6881
6882         * progress.c (dot_set_params): If PARAMS is unspecified, use
6883         dot_style, if available.
6884
6885         * init.c: Ditto.
6886
6887         * main.c (main): Resurect --dot-style.
6888
6889         * progress.c (dot_finish): Print the quantity if we're left at the
6890         beginning of a row.
6891
6892 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6893
6894         * cmpt.c (random): Removed.
6895
6896         * retr.c (sleep_between_retrievals): Use the more portable rand()
6897         instead of random().
6898
6899 2001-11-27  Ian Abbott <abbotti@mev.co.uk>
6900
6901         * retr.c (retrieve_from_file): Initialize `new_file' to NULL to
6902         prevent seg fault.
6903
6904 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6905
6906         * connect.c (connect_to_many): Use address_list_set_faulty to
6907         prevent the faulty address from being reused.
6908
6909         * host.c (address_list_set_faulty): New function.
6910         (address_list_get_bounds): New function, instead of
6911         address_list_count.
6912
6913 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6914
6915         * url.c (convert_links): Don't translate %d-%d.
6916
6917         * main.c (print_help): Remove stray HAVE_RANDOM code.
6918
6919 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6920
6921         * ftp.c (getftp): Improve output after sending PASV.  Don't
6922         attempt to "look up" the IP address we already know; call
6923         connect_to_one directly.
6924
6925 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6926
6927         * progress.c: Change the default progress implementation to "bar".
6928
6929 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6930
6931         * progress.c (bar_create): Print two newlines.
6932
6933 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6934
6935         * cmpt.c (random): New function, a simple-minded replacement for
6936         random() on systems that don't have it.
6937
6938 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6939
6940         * config.h.in: Put a HAVE_USLEEP stub.
6941
6942         * cmpt.c (usleep): Replacement implementation of usleep using
6943         select.
6944
6945         * init.c: New option init_rate.
6946
6947         * main.c (main): New option --limit-rate.
6948
6949         * retr.c (limit_bandwidth): New function.
6950         (get_contents): Call it to limit the bandwidth used when
6951         downloading.
6952
6953         * progress.c (dot_update): Would print the wrong download speed on
6954         rows other than the first one when the download was continued.
6955         (dot_finish): Ditto.
6956
6957 2001-11-26  Ian Abbott <abbotti@mev.co.uk>
6958
6959         * http.c (gethttp): fix undeclared variable 'err' when compiled
6960         with HAVE_SSL.
6961
6962 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6963
6964         * progress.c: Don't allocate new timers; use the timing data
6965         propagated from the caller.
6966
6967         * retr.c (get_contents): Allocate and use a timer.
6968
6969 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6970
6971         * http.c (last_host_ip): Made into an address_list.
6972         (invalidate_persistent): Release pc_last_host_ip.
6973         (register_persistent): Use lookup_host.
6974         (persistent_available_p): Check for equality of hosts using
6975         address_list_match_all.  Call address_list_release.
6976         (http_cleanup): New function.
6977
6978         * ftp.c (getftp): Use lookup_host and connect_to_many.
6979
6980         * http.c (gethttp): Use lookup_host and connect_to_many.
6981
6982         * connect.c (make_connection): Removed.
6983         (connect_to_one): New function.
6984         (connect_to_many): Ditto.
6985         (set_connection_host_name): Ditto.
6986
6987         * host.c (lookup_host): New function; new return type.
6988         (address_list_new): New function.
6989         (address_list_count): Ditto.
6990         (address_list_copy_one): Ditto.
6991         (address_list_delete): Ditto.
6992         (address_list_release): Ditto.
6993         (pretty_print_address): Ditto.
6994
6995 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6996
6997         * recur.c (retrieve_tree): In case of followed redirection,
6998         blacklist the pre-redirection URL.
6999
7000 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7001
7002         * recur.c (descend_redirect_p): New function.
7003         (retrieve_tree): Make sure redirections are not blindly followed.
7004
7005 2001-11-04  Alan Eldridge  <alane@geeksrus.net>
7006
7007         * config.h.in: added HAVE_RANDOM.
7008
7009         * options.h: added random_wait to struct options.
7010
7011         * main.c (print_help [HAVE_RANDOM], main): added arg parsing, help
7012         for --random-wait.
7013
7014         * retr.c (sleep_between_retrievals) [HAVE_RANDOM]: added
7015         implementation of random wait times.
7016
7017         * init.c (commands): added "randomwait" keyword.
7018
7019 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7020
7021         * recur.c (descend_url_p): Be more conservative with blacklisting
7022         URLs.
7023         (convert_all_links): Print how many files have been converted, and
7024         how long it took.
7025
7026         * progress.c (create_image): Place the number of downloaded bytes
7027         right after the progress bar.
7028
7029         * utils.c (suffix): Return a pointer into the string.
7030
7031 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7032
7033         * url.c (convert_links): Handle CO_NULLIFY_BASE.
7034
7035         * recur.c (retrieve_tree): Ignore download-ignorable children.
7036         (convert_all_links): Specify CO_NULLIFY_BASE when link_base_p.
7037
7038         * html-url.c (handle_link): Return the newly created urlpos.
7039         (collect_tags_mapper): When dealing with BASE, store the base
7040         reference and mark it as download-ignorable.
7041
7042 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7043
7044         * url.c (convert_links): Attempt to quote '?' as "%3F" when
7045         linking to local files.  Given up on the attempt, as it breaks
7046         local browsing.
7047
7048 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7049
7050         * main.c (private_initialize): Removed.
7051         (main): Don't call private_initialize.
7052
7053         * http.c: Call lookup_host.
7054
7055         * host.c (host_init): Removed.
7056         (add_host_to_cache): Initialize host_name_address_map here, on
7057         demand.
7058         (ngethostbyname): Commented out.
7059
7060         * connect.c (make_connection): Remove dead code; use lookup_host.
7061
7062         * host.c (store_hostaddress): Renamed to lookup_host and reversed
7063         the args.
7064         Removed host_address_name_map and host_slave_master_map.
7065
7066 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7067
7068         * progress.c (dot_create): Align the "[ skipping ... ]" string
7069         with the dots.
7070
7071         * retr.c (rate): Split into two functions: calc_rate and
7072         retr_rate.
7073
7074         * progress.c (create_image): Draw a dummy progress bar even when
7075         total size is unknown.
7076         (display_image): Place the text cursor at the end of the "image".
7077
7078 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7079
7080         * url.c (reencode_string): Use unsigned char, not char --
7081         otherwise the hex digits come out wrong for 8-bit chars such as
7082         nbsp.
7083         (lowercase_str): New function.
7084         (url_parse): Canonicalize u->url if needed.
7085         (get_urls_file): Parse each URL, and return only the valid ones.
7086         (free_urlpos): Call url_free.
7087         (mkstruct): Add :port if the port is non-standard.
7088         (mkstruct): Append the query string to the file name, if any.
7089         (urlpath_length): Use strpbrk_or_eos.
7090         (uri_merge_1): Handle the cases where LINK is an empty string,
7091         where LINK consists only of query, and where LINK consists only of
7092         fragment.
7093         (convert_links): Count and report both kinds of conversion.
7094         (downloaded_file): Use a hash table, not a list.
7095         (downloaded_files_free): Free the hash table.
7096
7097         * retr.c (retrieve_from_file): Ditto.
7098
7099         * main.c (main): Call either retrieve_url or retrieve_tree
7100         for each URL, not both.
7101
7102         * retr.c (register_all_redirections): New function.
7103         (register_redirections_mapper): Ditto.
7104         (retrieve_url): Register the redirections.
7105         (retrieve_url): Make the string "Error parsing proxy ..."
7106         translatable.
7107
7108         * res.c (add_path): Strip leading slash from robots.txt paths so
7109         that the path representations are "compatible".
7110         (free_specs): Free each individual path, too.
7111         (res_cleanup): New function.
7112         (cleanup_hash_table_mapper): Ditto.
7113
7114         * recur.c (url_queue_new): New function.
7115         (url_queue_delete): Ditto.
7116         (url_enqueue): Ditto.
7117         (url_dequeue): Ditto.
7118         (retrieve_tree): New function, replacement for recursive_retrieve.
7119         (descend_url_p): New function.
7120         (register_redirection): New function.
7121
7122         * progress.c (create_image): Cosmetic changes.
7123
7124         * init.c (cleanup): Do all those complex cleanups only if
7125         DEBUG_MALLOC is defined.
7126
7127         * main.c: Removed --simple-check and the corresponding
7128         simple_host_check in init.c.
7129
7130         * html-url.c (handle_link): Parse the URL here, and propagate the
7131         parsed URL to the caller, who would otherwise have to parse it
7132         again.
7133
7134         * host.c (xstrdup_lower): Moved to utils.c.
7135         (realhost): Removed.
7136         (same_host): Ditto.
7137
7138 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7139
7140         * utils.c (path_simplify): Preserver the (non-)existence of
7141         leading slash.  Return non-zero if changes were made.
7142
7143 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7144
7145         * progress.c (bar_update): Don't modify bp->total_length if it is
7146         zero.
7147
7148 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7149
7150         * retr.c (retrieve_url): When the redirection URL doesn't parse,
7151         print the correct error message rather than "UNKNOWN".
7152
7153 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7154
7155         * progress.c (bar_finish): If the timer didn't record any time
7156         since the download beginning, fake 1ms.
7157
7158 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7159
7160         * recur.c (recursive_retrieve): Fix typo.
7161
7162 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7163
7164         * progress.c (create_image): Don't translate "%ld ".
7165
7166 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7167
7168         * progress.c (bar_set_params): Allow the user to force the use of
7169         the bar.
7170
7171 2001-11-23  Lemble Gregory  <gregory.lemble@st.com>
7172
7173         * gen_sslfunc.c (ssl_init_prng): New function; seed the SSL RNG.
7174
7175 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7176
7177         * progress.c: Renamed dp_* functions to dot_* for greater clarity
7178         and consistency with bar_*.
7179         (print_download_speed): Get rid of the unneeded '@' character.
7180         (create_image): Fix download rate geometry.
7181
7182         * progress.c (print_elapsed): Remove spurious space.
7183         (print_elapsed): Renamed to print_download_speed, since that's
7184         what it does.
7185
7186 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7187
7188         * progress.c (bar_update): If the downloaded amount becomes larger
7189         than the expected amount, adjust the expected amount accordingly.
7190
7191 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7192
7193         * utils.c (determine_screen_width): New function.
7194
7195         * main.c (main): New option `--progress=TYPE'.
7196         (main): Implement compatibility with the old option `--dot-style'.
7197
7198         * init.c: Removed cmd_spec_dotstyle -- that logic is now in
7199         dp_set_params.
7200         (cmd_spec_progress): New function.
7201
7202         * retr.c (get_contents): Use the progress_* functions instead of
7203         the old show_progress().
7204         (show_progress): Removed.
7205         (rate): Print "xxxx.xx K/s" instead of "KB/s".  Ditto for MB/s,
7206         etc.
7207
7208         * progress.c (set_progress_implementation): New function.
7209         (valid_progress_implementation_p): Ditto.
7210         (progress_create): Ditto.
7211         (progress_update): Ditto.
7212         (progress_finish): Ditto.
7213         (dp_create): Ditto.
7214         (dp_update): Ditto.
7215         (dp_finish): Ditto.
7216         (dp_set_params): Ditto.
7217         (print_elapsed): Ditto.
7218
7219 2001-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
7220
7221         * retr.c (show_progress): Use it.
7222
7223         * log.c (log_set_flush): New function.
7224
7225 2001-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
7226
7227         * utils.c (path_simplify): Don't remove trailing slashes.
7228
7229         * ftp.c (ftp_get_listing): Use it.
7230
7231         * utils.c (file_merge): New function.
7232
7233         * url.c (opt_url): Removed.
7234
7235         * recur.c (recursive_retrieve): Inline "opt_url" logic.
7236
7237         * main.c (main): Use xfree(), not free().
7238
7239         * url.c (rewrite_url_maybe): Renamed to rewrite_shorthand_url.
7240
7241         * ftp.c (ccon): Move `ccon' typedef here, since it's only used
7242         internally.
7243
7244         * config.h.in: Include a stub for HAVE_STRPBRK.
7245
7246         * cmpt.c (strpbrk): Include a replacement for systems without
7247         strpbrk().
7248
7249         * ftp.c: Use url_set_dir and url_set_file when modifying the URL.
7250
7251         * url.c (url_set_dir): New function.
7252         (url_set_file): Ditto.
7253
7254         * ftp-basic.c (ftp_process_type): Process FTP type here; the URL
7255         parser makes the URL "params" available, so we can do that in this
7256         function.
7257
7258         * retr.c: Ditto.
7259
7260         * ftp.c: Ditto; pass the local file information in `ccon'.
7261
7262         * http.c: Get rid of the ugly kludge that had URL being replaced
7263         with the proxy URL when proxy retrieval was requested.  Use a
7264         separate parameter to http_loop and gethttp for the proxy URL.
7265
7266         * http.c: Changed to reflect the fact that local file, proxy, and
7267         referer information are no longer stored in struct url.  The local
7268         file information is passed in `struct hstat' now.
7269
7270         * url.c: Reworked URL parsing to be more regular.  Reencode the
7271         URL using reencode_string.
7272         Removed non-URL-related information from struct url.  This
7273         includes fields `proxy', `local', and `referer'.
7274
7275 2001-11-22  Jochen Hein  <jochen@jochen.org>
7276
7277         * main.c (main): Split the copyright notice for easier
7278         translation.
7279
7280 2001-08-21  Dave Turner <dct25@hermes.cam.ac.uk>
7281
7282         * ftp-basic.c (ftp_size): New function to send non-standard SIZE
7283           command to server to request file size.
7284         * ftp.h (ftp_size): Export it.
7285         * ftp.c (getftp): Use new ftp_size function if restoring
7286           transfer of a file with unknown size.
7287
7288 2001-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
7289
7290         * url.c (parseurl): Don't depend on the now-obsolete TYPE.
7291
7292 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7293
7294         * url.c (getproxy): Handle URL shorthands.
7295
7296 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7297
7298         * main.c: Remove --wait / --waitretry backwards compatibility
7299         code.
7300
7301 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7302
7303         * main.c (main): Use it.
7304
7305         * url.c (rewrite_url_maybe): New function.
7306
7307 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7308
7309         * url.c: Clean up handling of URL schemes.
7310
7311 2001-05-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7312
7313         * url.c: Get rid of `protostrings'.
7314         (skip_proto): Don't use protostrings.
7315         (has_proto): Ditto.
7316
7317 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7318
7319         * Makefile.in: Conditionally compile getopt.o.
7320
7321 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7322
7323         * md5.h: Renamed to gnu-md5.h.
7324
7325         * md5.c: Renamed to gnu-md5.c.
7326
7327         * http.c: Ditto.
7328
7329         * ftp-opie.c: Use the new macros.
7330
7331         * sysdep.h: Define md5-related macros.
7332
7333         * config.h.in: Define HAVE_SOLARIS_MD5 or HAVE_BUILTIN_MD5
7334         depending on which md5 implementation is used.
7335
7336 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7337
7338         * res.c (res_register_specs): Initialize OLD and HP_OLD to appease
7339         the compiler.
7340
7341 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7342
7343         * http.c (gethttp): Print the whole response line when printing
7344         headers is requested.
7345
7346 2001-05-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7347
7348         * res.c: New file.  Implement all RES-related code here.
7349
7350 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7351
7352         * version.c: Wget 1.7.1 is released.
7353
7354 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
7355
7356         * headers.c (header_extract_number): Ignore trailing whitespace.
7357
7358 2001-08-24  Ian Abbott  <abbotti@mev.co.uk>
7359
7360         * html-url.c (collect_tags_mapper): Fix bug converting links
7361         with -k option for tags with multiple link attributes by
7362         handling links in the order they appear.
7363
7364 2001-08-15  Ian Abbott  <abbotti@mev.co.uk>
7365
7366         * ftp.c (ftp_loop_internal): Avoid a potential buffer overflow in
7367           the call to the 'rate' function by moving it past the error
7368           checking for the 'getftp' function return value.
7369
7370 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
7371
7372         * html-parse.c (advance_declaration): Use 0x22 instead of '"' or
7373         '\"'.  Different compilers' assert macros are broken in different
7374         ways.
7375
7376 2001-09-29  Christian Fraenkel  <c.fraenkel@gmx.net>
7377
7378         * http.c (gethttp): print debug output for errors occuring during
7379         the ssl handshake.
7380
7381 2001-11-16  Chris Seawood  <cls@seawood.org>
7382
7383         * init.c: Ditto.
7384
7385         * host.c: Ditto.
7386
7387         * connect.c: Ditto.
7388
7389         * sysdep.h: Support compilation under BEOS.
7390
7391 2001-06-08  Edward J. Sabol  <sabol@alderaan.gsfc.nasa.gov>
7392
7393         * url.c (url_equal): Fix a memory leak when parseurl returns an
7394         error on the second URL. Also, since url_equal is not used at the
7395         moment, do not compile it.
7396
7397         * url.h: Ditto for the prototype of url_equal.
7398
7399 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
7400
7401         * html-parse.c (map_html_tags): Support XML-style empty tags.
7402
7403 2001-06-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7404
7405         * wget.h (DO_REALLOC_FROM_ALLOCA): Check for do_realloc_newsize in
7406         loop condition because we're no longer setting SIZEVAR here.
7407
7408 2001-06-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7409
7410         * wget.h (DO_REALLOC_FROM_ALLOCA): Set SIZEVAR after the memcpy()
7411         call because it needs the old value.
7412
7413 2001-06-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7414
7415         * cookies.c (ATTR_NAME_CHAR): Allow almost any character to be in
7416         an attribute name.
7417
7418 2001-06-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7419
7420         * url.c (url_filename): Make sure that slashes that sneak in to
7421         u->file via query string get protected.
7422         (file_name_protect_query_string): New function.
7423
7424 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7425
7426         * recur.c (recursive_retrieve): Also check undesirable_urls with
7427         canonicalized URL.
7428
7429 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7430
7431         * http.c (gethttp): Search `.netrc' with real host, not the proxy
7432         one.
7433
7434 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7435
7436         * sysdep.h (MAP_FAILED): Provide MAP_FAILED for systems that don't
7437         define it.
7438
7439 2001-06-09  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7440
7441         * ftp.h: Provide correct prototype for ftp_parse_ls().
7442
7443 2001-06-04  Hrvoje Niksic  <hniksic@arsdigita.com>
7444
7445         * version.c: Wget 1.7 is released.
7446
7447 2001-06-03  Karl Eichwalder  <ke@suse.de>
7448
7449         * ftp-ls.c (ftp_parse_ls): Fix typo.
7450
7451 2001-05-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7452
7453         * all: Update copyright information.
7454
7455 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7456
7457         * http.c (gethttp): Indicate that the continued download failed
7458         for *this* file.
7459
7460 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7461
7462         * version.c: Wget 1.7-pre1 is released.
7463
7464 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7465
7466         * version.c: Updated version to 1.7-pre1.
7467
7468 2001-05-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7469
7470         * gen_sslfunc.c: Don't include <sys/time.h> directly.
7471
7472 2001-05-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7473
7474         * http.c (gethttp): Use real URL data for cookies, not the proxy
7475         stuff.
7476
7477 2001-05-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7478
7479         * main.c (print_help): Document `--no-http-keep-alive'.
7480
7481         * utils.c (numdigit): Handle negative numbers *correctly*.
7482
7483         * hash.c (make_nocase_string_hash_table): Use term "nocase" rather
7484         than the confusing "unsigned".
7485
7486         * utils.c (string_set_contains): Renamed from string_set_exists.
7487
7488         * hash.c (hash_table_contains): Renamed from hash_table_exists.
7489
7490         * cookies.c: Move case-insensitive hash tables to hash.c.
7491
7492 2001-05-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7493
7494         * http.c (gethttp): Before concluding that the file is already
7495         fully retrieved, make sure that the file existed and `Range' was
7496         actually requested.
7497
7498 2001-05-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7499
7500         * cookies.c (eliminate_dups): New function.
7501         (build_cookies_request): Use it.
7502         (build_cookies_request): Set chain_store_size after reallocating
7503         all_chains.
7504         (check_domain_match): Annotated for easier future debugging.
7505         (store_cookie): In the debug message, print whether the cookie is
7506         permanent.
7507
7508 2001-05-08  Hrvoje Niksic  <hniksic@arsdigita.com>
7509
7510         * http.c (http_loop): Reset no_truncate before deciding whether to
7511         set it.
7512         (gethttp): Further clarify "-c conflicts with existing file" error
7513         message, based on input from Herold Heiko.
7514
7515 2001-05-07  Hrvoje Niksic  <hniksic@arsdigita.com>
7516
7517         * http.c (http_loop): If restval is set, set no_truncate to 1
7518         unconditionally.
7519
7520 2001-05-02  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7521
7522         * ftp-ls.c (ftp_parse_winnt_ls): Assure months are being correctly
7523         converted. Pointed out by <Stefan.Weil@de.heidelberg.com>.
7524         (ftp_parse_vms_ls): Ditto.
7525
7526 2001-04-30  Hrvoje Niksic  <hniksic@arsdigita.com>
7527
7528         * init.c (cmd_address): Zero SIN before using it; apparently
7529         needed on *BSD.
7530
7531 2001-04-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7532
7533         * ftp.c (ftp_loop_internal): Don't set NO_TRUNCATE if the file is
7534         empty.
7535
7536 2001-04-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7537
7538         * main.c (main): Make `--cookies' respect its argument.
7539
7540 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
7541
7542         * main.c (main): Removed undocumented option `--email-address'.
7543
7544         * netrc.c: Use the latest read_whole_line.
7545
7546         * init.c (defaults): Set opt.ftp_pass to "-wget@".
7547
7548         * mswindows.c (pwd_cuserid): Ditto.
7549
7550         * utils.c (pwd_cuserid): Removed.
7551
7552         * host.c (ftp_getaddress): Removed.
7553
7554 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
7555
7556         (http_loop): Allocate space for filename_plus_orig_suffix with
7557         alloca; this is more efficient and removes the need to free it
7558         before each and every return.
7559
7560 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
7561
7562         * http.c (gethttp): Return RETRUNNEEDED when the retrieval is
7563         unneeded because the file is already there and fully downloaded,
7564         and -c is specified.
7565         (http_loop): Handle RETRUNNEEDED.
7566
7567         * wget.h (uerr_t): New value RETRUNNEEDED.
7568
7569         * http.c (http_loop): Set no_truncate for files that both exist
7570         and are non-empty.
7571         (gethttp): Consider the download finished when restval >= contlen,
7572         not only when restval==contlen.
7573         (gethttp): Handle redirection before giving up due to -c.
7574         (gethttp): Clarify error message which explains that -c will not
7575         truncate the file.
7576         (gethttp): When returning CONTNOTSUPPORTED, don't forget to free
7577         the stuff that needs freeing and release the socket.
7578
7579 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7580
7581         * main.c (print_help): Wget booleans accept "off", not "no".
7582
7583 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7584
7585         * http.c (http_loop): If allow_cache is zero, always disable
7586         caching, not only when retrieving through proxy.
7587
7588         * init.c: Ditto.
7589
7590         * options.h (struct options): Rename proxy_cache to allow_cache.
7591
7592 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7593
7594         * http.c (mktime_from_utc): Improve documentation.
7595         (http_atotm): Put format strings into a separate array.
7596
7597 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7598
7599         * safe-ctype.h: Instead of throwing #error when isalpha is
7600         defined, redefine it to something that will throw a compile-time
7601         error if actually *used*.  Do the same for the rest of the
7602         standard C macros.
7603
7604 2001-04-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7605
7606         * url.c (getproxy): Ignore empty proxy vars.
7607
7608 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7609
7610         * http.c (http_loop): Would load cookies every time.
7611
7612         * cookies.c (load_cookies): Handle cookies whose values contain
7613         embedded spaces.
7614
7615 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7616
7617         * utils.c: Define each DIGITS_* in one line.
7618
7619 2001-04-25  Roger L. Beeman  <beeman@cisco.com>
7620
7621         * http.c (http_atotm): Initialize t.tm_isdst to 0.
7622         (mktime_from_utc): Prevent mktime() from having discontinuities at
7623         DST transition points.
7624
7625 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7626
7627         * html-url.c (get_urls_html): Fix documentation.
7628
7629 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7630
7631         * url.c (UNSAFE_CHAR): Reimplement using a static table.
7632         (url_init): Removed.
7633         (init_unsafe_char_table): Removed.
7634
7635 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7636
7637         * snprintf.c (dopr): Replace ISDIGIT with '0' <= ch && ch <= '9'.
7638
7639 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7640
7641         * utils.c: Document timer functions.
7642
7643         * retr.c (rate): Use it.
7644         (rate): Print in GB/s if transfer rate exceeds 1 GB/s.
7645
7646         * utils.c (wtimer_granularity): New function.
7647
7648 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7649
7650         * retr.c (show_progress): Ditto.
7651
7652         * ftp.c (getftp): Ditto.
7653
7654         * http.c (gethttp): Use new timer functions.
7655
7656         * utils.c (wtimer_allocate): New function.
7657         (wtimer_new): Ditto.
7658         (wtimer_delete): Ditto.
7659         (wtimer_reset): Ditto.
7660         (wtimer_elapsed): Ditto.
7661
7662 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7663
7664         * utils.c (long_to_string): New, faster version.  Favors smaller
7665         numbers; much of the calculation is now done at compile-time.
7666
7667 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7668
7669         * utils.c (numdigit): Handle negative numbers.
7670
7671 2001-04-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7672
7673         * retr.c (show_progress): Print the download rate even when the
7674         percentages are not available.
7675
7676 2001-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
7677
7678         * ftp.c (getftp): Adjust expected_bytes if the length is
7679         authoritative.
7680
7681 2001-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7682
7683         * url.c: Don't declare `construct'.
7684
7685         * hash.c (grow_hash_table): Speed up rehashing; inline storing of
7686         mappings to new locations.
7687         (hash_table_new): Make resize_threshold a field in the hash table,
7688         so we don't have to recalculate it in each hash_table_put.
7689         (grow_hash_table): Update resize_threshold.
7690         (MAX): Remove unused macro.
7691         (prime_size): Made static.
7692
7693 2001-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7694
7695         * retr.c (retrieve_url): Call uri_merge, not url_concat.
7696
7697         * html-url.c (collect_tags_mapper): Call uri_merge, not
7698         url_concat.
7699
7700         * url.c (mkstruct): Use encode_string instead of xstrdup followed
7701         by URL_CLEANSE.
7702         (path_simplify_with_kludge): Deleted.
7703         (contains_unsafe): Deleted.
7704         (construct): Renamed to uri_merge_1.
7705         (url_concat): Renamed to uri_merge.
7706
7707 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7708
7709         * url.c (str_url): Use encode_string instead of the unnecessary
7710         CLEANDUP.
7711         (encode_string_maybe): New function, returns input string if no
7712         encoding is needed.
7713         (encode_string): Call encode_string_maybe to do the dirty work,
7714         xstrdup if no work needed.
7715
7716 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7717
7718         * wget.h (XDIGIT_TO_xchar): Define here.
7719
7720         * url.c (decode_string): Use new name.
7721         (encode_string): Ditto.
7722
7723         * http.c (XDIGIT_TO_xchar): Rename HEXD2asc to XDIGIT_TO_xchar.
7724         (dump_hash): Use new name.
7725
7726         * wget.h: Rename ASC2HEXD and HEXD2ASC to XCHAR_TO_XDIGIT and
7727         XDIGIT_TO_XCHAR respectively.
7728
7729 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7730
7731         * init.c: Include cookies.h.
7732
7733         * cookies.h: Declare cookies_cleanup.
7734
7735         * cookies.c (check_domain_match): Remove unused variable.
7736         (save_cookies): Remove extraneous argument from debug statement.
7737
7738         * host.c (same_host): Don't call skip_url.
7739
7740         * url.c (skip_url): Removed.  Removed its calls from various
7741         functions in url.c.
7742
7743 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7744
7745         * cookies.c (unsigned_string_hash): Use the new code in
7746         string_hash as reference.
7747
7748         * hash.c (hash_table_map): Allow deletion and change of the
7749         element processed by MAPFUN.
7750         (string_hash): Use the function from glib.
7751
7752 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7753
7754         * config.h.in: Include #undef stub.
7755
7756         * hash.c (hash_table_remove): Rewrite to actually clear deleted
7757         entries instead of just marking them as deleted.
7758
7759 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7760
7761         * hash.h: Declare hash_table_get_pair and hash_table_count.
7762
7763 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7764
7765         * cookies.c: Declare http_atotm.
7766
7767 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7768
7769         * ftp-ls.c (ftp_parse_unix_ls): Use octal constants for
7770         permissions.  A compiler that doesn't accept octal constants is
7771         seriously broken and shouldn't be used -- octal constants were
7772         present in K&R C!
7773
7774 2001-01-20  Karl Eichwalder  <ke@suse.de>
7775
7776         * Makefile.in: Provide and use DESTDIR according to the Coding
7777         Standards.
7778
7779 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7780
7781         * ftp-ls.c (ftp_parse_vms_ls): Make seconds optional in time
7782         specification.
7783
7784 2001-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7785
7786         * url.c (parseurl): Don't strip trailing slash when u->dir is "/"
7787         because that strips the *leading* slash, thus forcing relative
7788         FTP retrieval.
7789
7790 2001-04-10  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7791
7792         * ftp.c (getftp): Convert initial FTP directory from VMS to UNIX
7793         notation for VMS servers.
7794         (ftp_retrieve_dirs): Do not prepend '/' to f->name when
7795         odir is an empty string.
7796
7797 2001-04-10  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7798
7799         * ftp-ls.c (ftp_parse_winnt_ls): Made the fix for AM/PM more
7800         effective. Suggested by Edward J. Sabol.
7801
7802 2001-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
7803
7804         * cookies.c (build_cookies_request): Use and sort cookies from all
7805         matching domains.
7806         (build_cookies_request): Check for duplicates before generating
7807         the `Cookies' header.
7808
7809         * main.c (main): Don't load cookies here.
7810         (main): Make loadcookies and savecookies call the correct command.
7811
7812         * http.c (http_loop): Load cookies on-demand.
7813
7814 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7815
7816         * http.c (gethttp): Fix indentation of SSL ifdef.
7817
7818 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7819
7820         * ftp.c (ftp_retrieve_dirs): Don't forcibly prepend "/" to u->dir;
7821         that hack is no longer necessary.
7822         (getftp): Prepend initial directory to *non*-absolute u->dir's.
7823
7824 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7825
7826         * init.c (cmd_file): New function.
7827         (enable_tilde_expansion): New variable.
7828         (run_wgetrc): Use it.
7829         (cmd_file): Use it.
7830
7831 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
7832
7833         * init.c: Include cookie-related options.
7834
7835         * main.c (main): Include cookie-specific options.
7836         (main): Load cookies before download is finished.
7837         (main): Save cookies when done.
7838
7839         * http.c (gethttp): Process the `Set-Cookie' header.
7840         (gethttp): Include cookies in the response.
7841
7842         * cookies.c: New file.
7843
7844 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
7845
7846         * utils.c (datetime_str): New function.
7847
7848 2001-04-08  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7849
7850         * ftp-ls.c (ftp_parse_winnt_ls): The AM/PM change did assume
7851         12:01PM == 00:01, which was obviously wrong. Taken care of this
7852         anomaly.
7853
7854         * ChangeLog: Removed an excess conflict marker. Reformatted the
7855         entry by Philipp Thomas from 2001-03-09.
7856
7857         * ftp-ls.c (ftp_parse_winnt_ls): Ensure that adjusted PM hours lay
7858         between 0 and 23. Elminate unused variable `sec'.
7859
7860 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
7861
7862         * hash.c (hash_table_count): New function.
7863
7864 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7865
7866         * utils.c (read_file): Cast MAP_FAILED to char *.  Enforced by
7867         Digital Unix cc.
7868
7869 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7870
7871         * config.h.in: Oops, do the namespace tweaks only on systems we
7872         know about.
7873
7874 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7875
7876         * hash.c: Include <string.h>.
7877
7878 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7879
7880         * config.h.in: Define "compilation environment" options that work
7881         under Linux and Solaris.  To be reviewed on other OS'es.
7882
7883 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7884
7885         * http.c (gethttp): Prepend literal newline with `\n\'.
7886
7887 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7888
7889         * sysdep.h: Don't define VERY_LONG_FORMAT.
7890
7891         * utils.c (very_long_to_string): New function.
7892         (legible_very_long): Use it; don't use VERY_LONG_FORMAT.
7893
7894 2001-04-04  Christian Fraenkel  <christian.fraenkel@gmx.net>
7895
7896         * url.c (parse_uname): Would run past the end of the string if the
7897         username was present, but the URL did not contain a slash, e.g.
7898         http://foo:bar@myhost.
7899
7900 2001-04-03  KOJIMA Hajime  <kjm@rins.ryukoku.ac.jp>
7901
7902         * http.c (http_atotm): Use %A instead of %a to match full
7903         weekday.  (On most systems there is no difference.)
7904
7905 2001-04-03  Paul Bludov  <paul@ozero.net>
7906
7907         * mswindows.c (sleep): Use SleepEx() instead of Sleep().
7908         (ws_changetitle): Use alloca() instead of malloc() to avoid memory
7909         leak.
7910         (ws_mypath): Use GetModuleFileName instead of argv[0].
7911         (ws_startup): Use data.wVersion for comparison.
7912
7913 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7914
7915         * http.c (http_loop): Ditto.
7916
7917         * ftp.c (ftp_loop_internal): Made the check whether to continue
7918         retrieval `-O'-friendly.
7919
7920 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7921
7922         * netrc.c (parse_netrc): Don't trim the line endings explicitly;
7923         they will be handled as whitespace.
7924         (parse_netrc): Correctly handle lines that end with whitespace.
7925
7926 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7927
7928         * retr.c (retrieve_url): New variable global_download_count used
7929         to identify first retrieval.
7930
7931         * ftp.c (getftp): Ditto.
7932
7933         * http.c (gethttp): Rewind opt.dfp only on first retrieval.
7934
7935 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7936
7937         * init.c (cmd_address): Heap-allocate the address that gets stored
7938         to CLOSURE.  Old code would simply assign an address on the stack.
7939
7940 2001-04-01  Nicolas Lichtmaier <nick@debian.org>
7941
7942         * ftp.c (ftp_get_listing): Propagate error status.
7943         (ftp_retrieve_glob): Use it.
7944         (ftp_loop): Ditto.
7945
7946 2001-04-01  Nicolas Lichtmaier <nick@debian.org>
7947
7948         * main.c (main): Add -C to the string that is the third arg to
7949         getopt_long().
7950
7951 2001-04-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7952
7953         * ftp.c (getftp): Don't start the download from scratch if `-c'
7954         was specified, but the file is already fully downloaded.
7955
7956         * http.c (gethttp): Don't truncate a pre-existing file if `-c' was
7957         specified and the server doesn't support continued download.
7958         (gethttp): Don't start the download from scratch if `-c' was
7959         specified, but the file is already fully downloaded.
7960
7961 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7962
7963         (recursive_retrieve): Don't clear the hash tables at this point at
7964         all; it interferes with the normal operation of register_download.
7965
7966 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7967
7968         * recur.c (recursive_retrieve): Clear the hash tables only when
7969         they are defined.
7970
7971 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7972
7973         * http.c (gethttp): Make sure the socket is closed with
7974         CLOSE_INVALIDATE before we have drained the body.
7975
7976 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7977
7978         * retr.c (retrieve_url): Call register_download() for downloaded
7979         files and register_html() for downloaded HTML files.
7980
7981         * recur.c (register_download): New function; register here that a
7982         file has been downloaded, rather than in recursive_retrieve().
7983         (register_html): New function; enqueue the location of HTML files
7984         here rather than in recursive_retrieve().
7985
7986 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7987
7988         * main.c (print_help): Use multiple fputs instead of a single ugly
7989         printf().
7990         (main): Consistently assign numbers >128 to options without a
7991         corresponding character.
7992
7993 2001-03-09  Philipp Thomas  <pthomas@suse.de>
7994
7995         * safe-ctype.h: New file. Locale independent ctype.h replacement
7996         taken from libiberty.
7997
7998         * safe-ctype.c: New file. Tables for above.
7999
8000         * Makefile.in: Add safe-ctype$o to OBJS.  Add dependencies for
8001         safe-ctype$o.
8002
8003         * cmpt.c: Remove include of ctype.h. Use ISSPACE instead of
8004         isspace.
8005
8006         * ftp-basic.c: Don't include ctype.h.
8007
8008         * ftp-ls.c: Likewise.
8009
8010         * ftp.c: Likewise.
8011
8012         * headers.c: Likewise.
8013
8014         * host.c: Likewise.
8015
8016         * html-parse.c: Likewise.
8017
8018         * html-url.c: Likewise.
8019
8020         * http.c: Likewise.
8021
8022         * init.c: Likewise.
8023
8024         * main.c: Likewise. Set LC_CTYPE along with LC_MESSAGES.
8025
8026         * netrc.c: Likewise.
8027
8028         * recur.c: Likewise.
8029
8030         * retr.c: Likewise.
8031
8032         * snprintf.c: Replace ctype.h with safe-ctype.h. Use ISDIGIT
8033         instead of isdigit.
8034
8035         * sysdep.h: Remove defines of ctype macros as they aren't needed
8036         for safe-ctype-h.
8037
8038         * url.c: Don't include ctype.h.
8039
8040         * utils.c: Likewise.
8041
8042         * wget.h: Include safe-ctype.h.
8043
8044 2001-03-27  Dan Harkless  <wget@harkless.org>
8045
8046         * Makefile.in: Moved top_builddir out of "User configuration
8047         section" of top Makefile and analogous spot in this one.
8048
8049 2001-03-17  Dan Harkless  <wget@harkless.org>
8050
8051         * Makefile.in: Include @SSL_INCLUDES@ substition in INCLUDES.
8052         Define top_builddir.  Link wget with libtool so the user doesn't
8053         have to supply a bunch of custom environment variables to
8054         correctly link with the OpenSSL shared libraries.
8055
8056 2001-03-06  Hack Kampbjorn  <hack@hackdata.com>
8057
8058         * http.c (gethttp): skip :port in host header if it is the
8059         DEFAULT_HTTPS_PORT when using SSL.
8060
8061         * url.c: move the #define of DEFAULT_HTTP_PORT, DEFAULT_FTP_PORT
8062         and DEFAULT_HTTPS_PORT to the header file so it can be use in the
8063         rest of the code.
8064         * url.h: Ditto
8065
8066 2001-03-01  Jonas Jensen  <bones@huleboer.dk>
8067
8068         * retr.c (show_progress): Correctly calculate the number of bytes
8069         in the first line of the download that have been actually
8070         downloaded in this run.
8071
8072 2001-02-23  Dan Harkless  <wget@harkless.org>
8073
8074         * main.c (print_help): --help documentation for -N said it would
8075         re-download files if they had the _same_ timestamp on server.
8076         (print_help): -nr belongs in "FTP options" section of --help
8077         output, not "Recursive retrieval" section.  Alphabetized FTP
8078         options by long option name.
8079
8080 2001-02-16  Dan Harkless  <wget@harkless.org>
8081
8082         * init.c (commands): Hack Kampbjørn <hack@hackdata.com> discovered
8083         that "httpsproxy" had been inserted into commands[] out of
8084         alphabetical order, causing "BUG: unknown command `httpuser'".
8085
8086 2001-02-13  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8087
8088         * ftp-ls.c (ftp_parse_ls): Added support of ST_MACOS (Unix-like
8089         listing without correct permissons).
8090
8091         * ftp.h (stype): Added ST_MACOS to identify the NetPresenz MacOS
8092         FTP server.
8093
8094         * ftp.c (ftp_retrieve_list): New mirroring logic: A remote file
8095         shall be donwloaded only when it's newer than the local copy or
8096         when it has the same timeestamp but its size is different. ST_VMS
8097         and ST_MACOS as special cases that lie about file size.
8098
8099         * ftp-ls.c (ftp_parse_ls): Support for ST_MACOS.
8100
8101         * Makefile.in: Removed dependency on ftpparse library due to unclear
8102         copyright issues and absence of any feedback to our queries.
8103
8104         * ftp-ls.c: Removed dependency on ftpparse library due to unclear
8105         copyright issues and absence of any feedback to our queries.
8106         (ftp_parse_ls): Added a warning message when remote server system
8107         does not seem to be suported by wget.
8108         (ftp_parse_vms_ls): New function for parsing VMS ftp
8109         server listing output.
8110         (clean_line): New function responsible for removing
8111         end-of-line characters from FTP listing texts.
8112
8113         * ftp.c (getftp): Global variables pwd and host_type are now
8114         member of the ccon structure under names ccon.id and ccon.rs.
8115
8116         * ftp.h (struct ccon): Added formed global variables from ftp.c,
8117         enum stype rs (remote system identification) and char *id (initial
8118         working directory), as suggested by Hrvoje.
8119
8120         * url.c (parse_uname): Added support for passwords containing '@'
8121         characters.
8122         (skip_uname): Ditto.
8123
8124 2001-02-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8125
8126         * ftp.c (ftp_loop): Reset con.
8127
8128 2001-01-06  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8129
8130         * url.c (parse_uname): Added support for passwords containing '@'
8131         characters.
8132         (skip_uname): Ditto.
8133
8134 2001-02-11  Hack Kampbjørn  <hack@hackdata.com>
8135
8136         * url.c (parseurl): Debug-print u->ftp_type.
8137
8138 2001-02-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8139
8140         * ftp.c (ftp_loop_internal): Disable padding.
8141         (getftp): Ditto.
8142
8143         * http.c (http_loop): Disable padding.
8144
8145         * retr.c (show_progress): Use it to enable padding.
8146
8147         * retr.c (rate): Optional parameter PAD for padding the rate.
8148
8149 2001-02-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8150
8151         * retr.c (show_progress): Make sure that the last output line
8152         includes progress.
8153
8154 2001-02-10  Jonas Jensen  <bones@huleboer.dk>
8155
8156         * retr.c (show_progress): Print the download rate along with the
8157         percentages.
8158         Along with Anders Thorsby <anders@thorsby.dk>.
8159
8160 2001-02-10  Tim Mooney  <mooney@dogbert.cc.ndsu.NoDak.edu>
8161
8162         * ftp.h: Rename enums `command' to `wget_ftp_command' and
8163         `fstatus' to `wget_ftp_status' because old names clash with Tru64
8164         net/if.h.
8165
8166 2001-02-08  Christian Fraenkel <christian.fraenkel@gmx.net>
8167
8168         * gen_sslfunc.c: verify_callback is now static
8169
8170         * gen_sslfunc.c (init_ssl): load certificate if specified
8171
8172         * gen_sslfunc.c (ssl_printerr): new function
8173
8174         * init.c: added new --sslcertfile and --sslcertkey switches
8175
8176         * main.c: ditto
8177
8178         * options.h: ditto
8179
8180         * http.c (gethttp): abort when init_ssl fails
8181
8182 2001-01-23  Herold Heiko  <Heiko.Herold@previnet.it>
8183
8184         * mswindows.h: Include <malloc.h>; it's needed for alloca().
8185
8186 2001-01-10  Dan Harkless  <wget@harkless.org>
8187
8188         * url.c (str_url): Clarified this function's comment header after
8189         Hrvoje answered my question on the list as to when hide != 1.
8190         Also Hrvoje pointed out I need to use xstrdup() on the string literal.
8191
8192 2001-01-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8193
8194         * connect.c (bindport): Declare addrlen as int.  Diagnosed by
8195         Drazen Kacar <dave@arsdigita.com>.
8196         (conaddr): Ditto.
8197
8198 2001-01-09  Dan Harkless  <wget@harkless.org>
8199
8200         * html-url.c: A bunch of fixup of `--page-requisites'-related
8201         comments to reflect Hrvoje's changes to my code when transplanting
8202         it into this new file, to fix spelling mistakes, to clarify, etc.
8203
8204         * url.c (write_backup_file): Clarified a comment.
8205         (str_url): Henrik van Ginhoven pointed out on the list that we
8206         shouldn't give away the number of characters in the password by
8207         replacing each character with a 'x'.  Use "<password>" instead.
8208
8209         * ftp.c (ftp_retrieve_dirs): The bug where recursion into FTP
8210         directories didn't work if logging in put you in a directory other
8211         than "/" is fixed now.  Removed the comment here warning of the bug.
8212
8213         * main.c (print_help): --continue's description was misleading.
8214         We don't "restart", we "resume".  Also, better to say
8215         "partially-downloaded file" rather than just "existing file".
8216
8217 2001-01-06  Dan Harkless  <wget@harkless.org>
8218
8219         * ChangeLog: The '[Not in 1.6 branch.]'s were decided not to be
8220         the best way to go about my aim.  Removed them in favor of:
8221
8222         * ChangeLog-branches/1.6_branch.ChangeLog: New file.
8223
8224 2001-01-04  Hrvoje Niksic  <hniksic@arsdigita.com>
8225
8226         * url.c (replace_attr): New function, to be used by both
8227         TO_COMPLETE and TO_RELATIVE case in convert_links.
8228         (find_fragment): New function for finding URL fragments.
8229         (replace_attr): Better handle the case where the original string
8230         is not quoted.  Use find_fragment.
8231         (convert_links): Use replace_attr().
8232
8233 2000-12-31  Dan Harkless  <wget@harkless.org>
8234
8235         * ChangeLog: Since this flat file doesn't have multiple branches,
8236         looking at the dates would make you think that things went into
8237         1.6 that actually just went into the 1.7-dev branch.  Added "[Not
8238         in 1.6 branch.]" where appropriate to clarify.
8239
8240 2000-12-30  Dan Harkless  <wget@harkless.org>
8241
8242         * ftp.c, http.c:  Applied Hack Kampbjørn <hack@hackdata.com>'s
8243         patch to deal with h_errno not being defined in netdb.h under Cygwin.
8244
8245 2000-12-18  Csaba Raduly  <csaba.raduly@sophos.com>
8246
8247         * sysdep.h: Include <malloc.h> and <io.h> under Watcom.
8248
8249 2000-12-17  Igor Khristophorov  <igor@atdot.org>
8250
8251         * http.c (check_end): Fix test for '+' or '-'.
8252
8253 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
8254
8255         * url.c (parseurl): Rename inner loop var from i to ind to avoid
8256         clash with the function top-level-declared variable i.
8257         (str_url): Likewise, rename inner-loop i to j.
8258
8259         * recur.c (parse_robots): Don't declare LEN at top of function.
8260         (robots_match): Renamed parameter FORBIDDEN to avoid hiding of
8261         global variable.
8262
8263         * main.c (main): Change erroneous use of bitwise and to logical.
8264
8265         * init.c (cmd_address): Don't heap-allocate `sin'; it can be on
8266         the stack because it will be copied to closure.
8267
8268         Thanks to Csaba Raduly's run of PC-LINT over the sources.
8269
8270 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
8271
8272         * http.c (basic_authentication_encode): Use xmalloc(), not
8273         malloc().  Thanks to Csaba Raduly's run of PC-LINT over the
8274         sources.
8275
8276 2000-12-17  Csaba Raduly  <csaba.raduly@sophos.com>
8277
8278         * sysdep.h: Test for __EMX__ rather than for EMXOS2 for OS/2
8279         compilation.
8280
8281 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
8282
8283         * mswindows.c: Include <errno.h>.
8284
8285         * gen_sslfunc.c: Include <errno.h>.
8286
8287         * ftp-basic.c: Don't attempt to declare errno or h_errno because
8288         they're not used.
8289
8290         * main.c: Include <errno.h> because errno is used.
8291
8292         * ftp.c: Ditto.
8293
8294         * http.c: Include <netdb.h> for h_errno.
8295
8296 2000-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
8297
8298         * html-parse.c (advance_declaration): MSVC assert() chokes on
8299         '\"'.  Use '"' instead.
8300
8301 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8302
8303         * utils.c (xfree_real): Removed.
8304         (xfree_debug): Just call free().
8305
8306         * wget.h (xfree): Make it an alias for free.
8307
8308 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8309
8310         * http.c (http_loop): Furthermore, touch output_document only if
8311         it is known to be an existing regular file.
8312
8313 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8314
8315         * ftp.c (ftp_retrieve_list): Ditto.
8316
8317         * http.c (http_loop): Touch output_document if that is used for
8318         output.
8319
8320 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8321
8322         * http.c: Include gen_sslfunc.h after including Wget's headers.
8323         (persistent_available_p): Needed coma before `int ssl'.
8324
8325 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8326
8327         * ftp.c (ftp_loop_internal): Ditto.
8328
8329         * http.c (http_loop): Use it.
8330
8331         * retr.c (sleep_between_retrievals): New function that handles the
8332         logic of opt.wait and opt.waitretry.
8333
8334 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8335
8336         * rbuf.h: Implement only a single version of RBUF_READCHAR, using
8337         rbuf_read_bufferful when the buffer is depleted.
8338
8339         * rbuf.c (rbuf_read_bufferful): New function.
8340
8341 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8342
8343         * gen_sslfunc.h: Use ansi2knr style function declarations.
8344
8345         * gen_sslfunc.c: Reformat according to the GNU coding standards.
8346         More should be done.
8347
8348         * http.c (persistent_available_p): Place the cheap SSL test nearer
8349         the top of the function.
8350         (CLOSE_FINISH, CLOSE_INVALIDATE): Define only one version of each.
8351
8352 2000-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
8353
8354         * url.c (init_unsafe_char_table): Reinstate space as an unsafe
8355         char.
8356
8357 2000-12-03  Christian Fraenkel <christian.fraenkel@gmx.net>
8358
8359         * Makefile.in: added gen_sslfunc object
8360         * config.h.in: added HAVE_SSL define
8361         * connect.c: changed select_fd from static int to int
8362         * connect.h: ditto
8363         * gen_sslfunc.h: New file
8364         * gen_sslfunc.c: ditto
8365         * http.c: added HTTPS fuctionality
8366         * retrc.c: ditto
8367         * url.c: ditto
8368         * init.c: added opt.httpsproxy
8369         * options.h: ditto
8370         * rbuf.h: added alternate rbuf struct
8371         * wget.h: added CONSSLERR
8372         * rbuf.c: ditto
8373
8374         * http.c: Added HTTPS fuctionality.
8375
8376         * retrc.c: Ditto.
8377
8378         * url.c: Ditto.
8379
8380         * init.c: Added opt.httpsproxy.
8381
8382         * options.h: Ditto.
8383
8384         * rbuf.h: Added alternate rbuf struct.
8385
8386         * wget.h: Added CONSSLERR.
8387
8388         * rbuf.c: Ditto.
8389
8390 2000-11-30  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8391
8392         * ftp-ls.c (ftp_parse_unix_ls): Added second parameter
8393         "ignore_perms" to ignore file and directory permissions for
8394         Windows NT FTP server listings.
8395         (ftp_parse_winnt_ls): New function.
8396         (ftp_parse_ls): Parses UNIX and Windows NT listings
8397         separately. Simple heuristics for distinguishing between UNIX and
8398         MS-DOS-like FTP listing provided by Windows NT FTP service.
8399
8400 2000-11-18  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8401
8402         * ftpparse.c, ftpparse.h: New files.
8403
8404         * ftp-ls.c (ftp_parse_ls): Use ftp_parse_unix_ls for UNIX servers
8405         only. Use ftp_parse_nonunix_ls otherwise.
8406         (ftp_parse_nonunix_ls): Stub to the ftpparse library handling all
8407         exotic FTP servers.
8408
8409         * ftp.h (stype): New enum, distinguishes UNIX, VMS, and "other"
8410         FTP servers.
8411
8412         * ftp.c: New static wariables host_type, pwd, and pwd_len.
8413         (getftp): Support for VMS. Support for FTP servers that do not
8414         place you in the root directory after login.
8415         (ftp_retrieve_list): VMS is silent about the real file size, issue
8416         a more appropriate message.
8417         (ftp_get_listing): Pass host_type to ftp_parse_ls.
8418
8419         * ftp-basic.c (ftp_pwd, ftp_syst): New functions.
8420
8421 2000-11-30  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8422
8423         * ftp-ls.c (ftp_parse_unix_ls): Added second parameter
8424         "ignore_perms" to ignore file and directory permissions for
8425         Windows NT FTP server listings.
8426         (ftp_parse_winnt_ls): New function.
8427         (ftp_parse_ls): Parses UNIX and Windows NT listings
8428         separately. Simple heuristics for distinguishing between UNIX
8429         and MS-DOS-like FTP listing provided by Windows NT FTP service.
8430
8431 2000-11-29  John Summerfield  <summer@OS2.ami.com.au>
8432
8433         * netrc.c (parse_netrc): Get rid of line ending.
8434
8435 2000-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
8436
8437         * ftp.c (ftp_retrieve_list): Undo typo "fix" until resolution by
8438         Dan.
8439
8440 2000-11-24  Karl Eichwalder  <ke@suse.de>
8441
8442         * main.c (print_help): Untabify.
8443
8444 2000-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
8445
8446         * utils.c (xrealloc_debug): Do the unregister/register thing only
8447         if the pointer has actually changed.
8448         (xmalloc_real): Declare `static' in DEBUG_MALLOC builds.
8449         (xfree_real): Ditto.
8450         (xrealloc_real): Ditto.
8451         (xstrdup_real): Ditto.
8452
8453 2000-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
8454
8455         * ftp.c (getftp): ftp_getaddress() returns a malloc'ed copy of the
8456         string; no need to strdup() it.
8457         (getftp): Make pwd_len a local variable.
8458         (ftp_loop): Free PWD before returning.
8459
8460         * init.c (cleanup): Free opt.ftp_pass only if it's non-NULL.
8461
8462 2000-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
8463
8464         * all: Use xfree() instead of free.
8465
8466         * utils.c (xfree): New function.
8467
8468 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
8469
8470         * url.c (convert_links): HTML-quote the converted string.
8471
8472         * utils.c (html_quote_string): Move here from ftp-ls.c
8473         (html_quote_string): Make non-static; declare in utils.h.
8474         (html_quote_string): Convert SP to &#32;.
8475
8476 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
8477
8478         * ftp.c (getftp): Reformat Jan's code according to GNU coding
8479         standards; remove (debugging?) printf's; use '\0' for the ASCII
8480         zero character.  Use alloca() instead of malloc() for
8481         inter-function temporary allocations.
8482
8483 2000-11-18  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8484
8485         * ftpparse.c, ftpparse.h: New files.
8486
8487         * ftp-ls.c (ftp_parse_ls): Use ftp_parse_unix_ls for UNIX servers
8488         only. Use ftp_parse_nonunix_ls otherwise.
8489         (ftp_parse_nonunix_ls): Stub to the ftpparse library handling all
8490         exotic FTP servers.
8491
8492         * ftp.h (stype): New enum, distinguishes UNIX, VMS, and "other"
8493         FTP servers.
8494
8495         * ftp.c: New static wariables host_type, pwd, and pwd_len.
8496         (getftp): Support for VMS. Support for FTP servers that do not
8497         place you in the root directory after login.
8498         (ftp_retrieve_list): VMS is silent about the real file size, issue
8499         a more appropriate message.
8500         (ftp_get_listing): Pass host_type to ftp_parse_ls.
8501
8502         * ftp-basic.c (ftp_pwd, ftp_syst): New functions.
8503
8504 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
8505
8506         * hash.c (hash_table_put): Don't overwrite deleted mappings.
8507
8508 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
8509
8510         * hash.c (find_mapping): New function.
8511         (hash_table_get): Use it.
8512         (hash_table_get_pair): Ditto.
8513         (hash_table_exists): Ditto.
8514         (hash_table_remove): Ditto.
8515         (hash_table_remove): Really delete the entry if the mapping
8516         following LOCATION is empty.
8517
8518         * utils.c (string_set_add): Check whether the element has existed
8519         before.
8520
8521         * hash.c (hash_table_get_pair): New function.
8522
8523 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8524
8525         * http.c (http_process_type): Ignore trailing whitespace; use
8526         strdupdelim().
8527
8528         * recur.c (recursive_retrieve): Use the new `convert' field.
8529         (convert_all_links): Ditto.
8530         (convert_all_links): Don't respect meta_disallow_follow.
8531
8532         * html-url.c (handle_link): Fill out link_relative_p and
8533         link_complete_p.
8534
8535         * url.h (struct _urlpos): Make elements more readable.
8536
8537         * recur.c (recursive_retrieve): Call slist_prepend instead of
8538         slist_append.
8539         (convert_all_links): Call slist_nreverse before iterating through
8540         urls_html.
8541
8542         * utils.c (slist_prepend): New function.
8543         (slist_nreverse): Ditto.
8544
8545 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8546
8547         * http.c (check_end): Constify.
8548
8549 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8550
8551         * http.c (http_loop): If username and password are known, try the
8552         `Basic' authentication scheme by default.
8553
8554         * connect.h: Declare test_socket_open.
8555
8556 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8557
8558         * version.c: Bump version from 1.5.3+dev to 1.7-dev.
8559
8560 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8561
8562         * http.c (gethttp): Don't use the return value of sprintf().
8563         (gethttp): Inhibit keep-alive if opt.http_keep_alive is 0.
8564
8565 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8566
8567         * recur.c (recursive_retrieve): Print the "so we don't load"
8568         debugging message only if we really don't load.
8569
8570         * http.c (gethttp): Inhibit keep-alive if proxy is being used.
8571         (gethttp): Don't request keep-alive if keep-alive is inhibited.
8572
8573 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8574
8575         * http.c (gethttp): Make the HTTP persistent connections more
8576         robust.
8577
8578 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8579
8580         * retr.c (get_contents): If use_expected, make sure that the
8581         appropriate amount of data is being read.
8582
8583         * http.c (gethttp): Check for both `Keep-Alive: ...' and
8584         `Connection: Keep-Alive'.
8585
8586         * wget.h (DEBUGP): Call debug_logprintf only if opt.debug is
8587         turned on.
8588
8589 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8590
8591         * http.c (connection_available_p): Use it.
8592
8593         * connect.c (test_socket_open): New function.
8594
8595         * http.c (gethttp): Support persistent connections.  Based on the
8596         ideas, and partly on code, by Sam Horrocks <sam@daemoninc.com>.
8597         (register_persistent): New function.
8598         (connection_available_p): Ditto.
8599         (invalidate_connection): Ditto.
8600
8601 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8602
8603         * url.c (convert_links): Handle UREL2ABS case.
8604
8605         * recur.c (recursive_retrieve): Instead of the list
8606         urls_downloaded, use hash tables dl_file_url_map and
8607         dl_url_file_map.
8608         (convert_all_links): Use them to retrieve data.
8609
8610         * host.c (clean_hosts): Free the hash tables.
8611
8612         * main.c (private_initialize): Call host_init().
8613
8614         * host.c (store_hostaddress): Use a saner, hash table-based data
8615         model.
8616         (realhost): Ditto.
8617         (host_init): Initialize the hash tables.
8618
8619 2000-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
8620
8621         * utils.c (slist_append): Eviscerate NOSORT.  Hash tables are now
8622         used for what the sorted slists used to be used for.
8623         (slist_contains): Don't rely on the list being sorted.
8624         (slist_append): Simplify the code.
8625
8626         * recur.c (recursive_cleanup): Use free_string_set.
8627
8628         * utils.c (string_set_add, string_set_exists, string_set_free):
8629         New functions for easier freeing of hash tables whose keys are
8630         strdup'ed strings.
8631
8632         * recur.c (recursive_retrieve): Use the hash table functions for
8633         storing undesirable URLs.
8634
8635         * hash.c: New file.
8636
8637 2000-11-17  Hrvoje Niksic  <hniksic@arsdigita.com>
8638
8639         * main.c (private_initialize): Call url_init.
8640         (main): Call private_initialize.
8641
8642         * url.c (unsafe_char_table): New table.
8643         (UNSAFE_CHAR): Use it.
8644         (init_unsafe_char_table): New function.
8645         (url_init): New function; call init_unsafe_char_table.
8646
8647 2000-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
8648
8649         * mswindows.h: Define snprintf and vsnprintf to _snprintf and
8650         _vsnprintf respectively.
8651
8652 2000-11-15  Hrvoje Niksic  <hniksic@arsdigita.com>
8653
8654         * config.h.in: Do the _XOPEN_SOURCE and _SVID_SOURCE things only
8655         on Linux.
8656
8657 2000-11-15  Hrvoje Niksic  <hniksic@arsdigita.com>
8658
8659         * html-url.c (handle_link): Handle HTML fragment identifiers.
8660
8661         * recur.c (recursive_retrieve): If norobot info is respected and
8662         the file is specified not to be followed by robots, respect that.
8663
8664         * html-url.c (collect_tags_mapper): Handle <meta name=robots
8665         content=X>.  For us the important cases are where X is NONE or
8666         where X contains NOFOLLOW.
8667         (get_urls_html): Propagate that information to the caller.
8668
8669 2000-11-13  Hrvoje Niksic  <hniksic@arsdigita.com>
8670
8671         * url.c (convert_links): Unlink the file we might be reading from
8672         before writing to it.
8673         (convert_links): Use alloca instead of malloc for
8674         filename_plus_orig_suffix.
8675
8676 2000-11-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8677
8678         * host.c (realhost): Add HOST to the list with quality==0 only if
8679         it wasn't already there.
8680         Based on analysis by Lu Guohan <feng@public.bjnet.edu.cn>.
8681
8682 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8683
8684         * url.c (get_urls_file): Ditto.
8685         (convert_links): Ditto.
8686
8687         * html-url.c (get_urls_html): Use read_file() instead of
8688         load_file().
8689
8690         * utils.c (read_file): New function, instead of the old
8691         load_file().
8692         (read_file_free): Ditto.
8693
8694         * url.c (findurl): Search only for the supported protocols.
8695         (convert_links): Use fwrite() when writing out a region of
8696         characters.
8697
8698 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8699
8700         * ftp-ls.c: Move html_quote_string and ftp_index here.
8701
8702         * url.c: Remove get_urls_html, since that's now in html-url.c.
8703
8704         * html-url.c: New file.
8705
8706         * html-parse.c: New file.
8707
8708 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8709
8710         * init.c (run_wgetrc): Don't bother killing off '\r' since
8711         pars_line() skips whitespace at end of line anyway.
8712         (parse_line): Oops, it didn't.  Now it does.
8713
8714         * recur.c (parse_robots): Ditto here.
8715
8716         * ftp-ls.c (ftp_parse_unix_ls): Kill off the newline character
8717         manually because read_whole_line no longer does.
8718
8719         * utils.c (read_whole_line): Rewrite to: a) use less memory
8720         (reallocates to needed size after work), b) work faster -->
8721         fgets() instead of getc, c) be more correct --> doesn't kill the
8722         newline character at the end of line.
8723
8724 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8725
8726         * init.c (comind): Initialize MAX to array size - 1.
8727
8728 2000-11-08  Hrvoje Niksic  <hniksic@arsdigita.com>
8729
8730         * url.c (construct): Changed last_slash[-1] to *(last_slash - 1).
8731         Suggested by Edward J. Sabol.
8732
8733 2000-11-08  Hrvoje Niksic  <hniksic@arsdigita.com>
8734
8735         * url.c (construct): Handle the case where host name is not
8736         followed by a slash.
8737
8738 2000-11-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8739
8740         * init.c: commands[] need to be sorted!  ("base" wasn't.)
8741
8742 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
8743
8744         * wget.h (DO_REALLOC_FROM_ALLOCA): Use braces to disambiguate
8745         `if'.
8746
8747 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
8748
8749         * url.c (construct): Insert unneeded initialization for the
8750         compiler to shut up.
8751
8752         * config.h.in: Define _XOPEN_SOURCE to 500 to get the prototype
8753         for strptime() (*duh*).  Define _SVID_SOURCE to get S_IFLNK which
8754         otherwise gets lost when you define _XOPEN_SOURCE.
8755
8756         * utils.c (touch): Include the file name in the error message.
8757         From Debian.
8758
8759 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
8760
8761         * log.c (logvprintf): Use vsnprintf() in all cases.  If necessary,
8762         resize the buffer to fit the formated message.  That way, messages
8763         of arbitrary size may be printed.
8764         (logvprintf): Use saved_append() to optionally log the last
8765         several lines of output.
8766         (logputs): Ditto.
8767         (log_close): Adapt to new data structures.
8768         (log_dump): Ditto.
8769         (redirect_output): Print messages to stderr, not to stdout.
8770
8771         * log.c (saved_append_1): New function.  Replaces the old logging
8772         system ("log all output until 10M characters") with a new, much
8773         more reasonable one ("log last screenful of text").
8774         (saved_append): New function; call saved_append_1.
8775         (free_log_line): New function.
8776
8777 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
8778
8779         * url.c (construct): Fix comment.
8780         (find_last_char): Document.
8781
8782 2000-11-04  Hrvoje Niksic  <hniksic@arsdigita.com>
8783
8784         * snprintf.c: New file.
8785
8786 2000-11-03  Hrvoje Niksic  <hniksic@arsdigita.com>
8787
8788         * wget.h: If HAVE_STDARG_H is not defined, don't declare argument
8789         types to logprintf() and debug_logprintf().
8790
8791 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8792
8793         * ftp.c (ftp_loop_internal): Hide the password from the URL when
8794         printing non-verbose.  Problem spotted by Dariusz Mlynarczyk
8795         <darekm@bydg.lomac.com.pl>.
8796
8797 2000-11-02  Junio Hamano  <junio@twinsun.com>
8798
8799         * ftp-basic.c (ftp_login): Make comparison case-insensitive.
8800
8801 2000-11-02  Tyler Riddle  <triddle@liquidmarket.com>
8802
8803         * http.c (known_authentication_scheme_p): Recognize NTML
8804         authentication.
8805         (create_authorization_line): Treat NTML the same as `Basic'.
8806
8807 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8808
8809         * retr.c (retrieve_url): Free url before returning.
8810         (retrieve_url): Free mynewloc before returning.
8811         Spotted by Mark A. Mankins <Mankins_Mark@prc.com>.
8812
8813 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8814
8815         * url.c (parseurl): Remove possible reading past the end of
8816         sup_protos[].  Spotted by Mark A. Mankins <Mankins_Mark@prc.com>.
8817
8818 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8819
8820         * main.c (main): In case of opt.downloaded overflowing, print
8821         <overflow> instead of a totally bogus random value.
8822
8823         * retr.c (retrieve_from_file): Ditto.
8824
8825         * recur.c (recursive_retrieve): Ditto.
8826
8827         * main.c (main): Ditto.
8828
8829         * http.c (http_loop): Ditto.
8830
8831         * ftp.c (ftp_loop_internal): Use downloaded_increase() instead of
8832         `+=', and downloaded_exceeds_quota() instead of the simple-minded
8833         check.
8834         (ftp_retrieve_list): Ditto.
8835         (ftp_retrieve_dirs): Ditto.
8836         (ftp_retrieve_glob): Ditto.
8837
8838         * retr.c (downloaded_increase): New function.  Notice overflows of
8839         opt.downloaded.
8840         (downloaded_exceeds_quota): Make sure that opt.downloaded is not
8841         used if it overflowed.
8842
8843         * options.h (struct options): New member downloaded_overflow.
8844
8845 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8846
8847         * wget.h (enum): Remove extra space after last enumeration.
8848
8849 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8850
8851         * main.c (main): Use legible_very_long() for printing
8852         opt.downloaded.
8853
8854         * utils.c (legible_1): New function that operates on strings and
8855         does the brunt of legible()'s work.
8856         (legible): Use legible_1().
8857         (legible_very_long): New function; dump the argument with
8858         sprintf(), and call legible_1().
8859
8860         * options.h (struct options): Use VERY_LONG_TYPE for
8861         opt.downloaded.
8862
8863         * sysdep.h (VERY_LONG_TYPE): Define it to have a 64-bit or greater
8864         type.
8865
8866         * config.h.in: Make sure that SIZEOF_LONG and SIZEOF_LONG_LONG get
8867         defined.  Define HAVE_LONG_LONG if long long is available.
8868
8869 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8870
8871         * utils.c (long_to_string): Update with a later, better version.
8872
8873 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8874
8875         * url.c (path_simplify_with_kludge): New function.
8876         (path_simplify_with_kludge): Disable it.  Instead...
8877         (parse_dir): ...make sure that at this point the right thing is
8878         done, i.e. that "query" part of the URL (?...) is always assigned
8879         to the file, never to the directory portion of the path.
8880
8881 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8882
8883         * retr.c (retrieve_url): Detect redirection cycles.
8884
8885 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8886
8887         * url.c (get_urls_html): Decode HTML entities using
8888         html_decode_entities.
8889
8890         * html.c (htmlfindurl): Don't count the `#' in numeric entities
8891         (&#NNN;) as an HTML fragemnt.
8892         (html_decode_entities): New function.
8893
8894 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8895
8896         * html.c (htmlfindurl): Fix recognition of # HTML fragments.
8897
8898 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8899
8900         * url.c (construct): Rewritten for clarity.  Avoids the
8901         unnecessary copying and stack-allocation the old version
8902         performed.
8903
8904 2000-10-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8905
8906         * ftp.c (getftp): Ditto.
8907
8908         * http.c (gethttp): Rewind the stream when retrying from scratch.
8909
8910 2000-10-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8911
8912         * retr.c (retrieve_url): Use url_concat() to handle relative
8913         redirections instead of /ad hoc/ code.
8914
8915         * url.c (url_concat): New function encapsulating weird
8916         construct().
8917         (urllen_http_hack): New function.
8918         (construct): When constructing new URLs, recognize that `?' does
8919         not form part of the file name in HTTP.
8920
8921 2000-10-13  Adrian Aichner  <adrian@xemacs.org>
8922
8923         * retr.c: Add msec timing support for WINDOWS.
8924         * retr.c (reset_timer): GetSystemTime() on WINDOWS.
8925         * retr.c (elapsed_time): Calculate delta time to msec on WINDOWS.
8926
8927 2000-10-27  Dan Harkless  <wget@harkless.org>
8928
8929         * retr.c (retrieve_url): Manually applied T. Bharath
8930         <TBharath@responsenetworks.com>'s patch to get wget to grok
8931         illegal relative URL redirects.  Reformatted and re-commented it.
8932
8933 2000-10-23  Dan Harkless  <wget@harkless.org>
8934
8935         * connect.c (make_connection and bindport): Manually applied Rob
8936         Mayoff <mayoff@dqd.com>'s 1.5.3 patch to add --bind-address,
8937         changing coding style to GNU's.
8938
8939         * ftp.c (ftp_loop_internal): --delete-after wasn't implemented for
8940         files downloaded via FTP.  Per a comment, .listing files were not
8941         counted towards number of bytes and files downloaded because they're
8942         deleted anyway.  Well, they aren't under -nr, so count them then.
8943
8944         * init.c: Manually applied Rob Mayoff's 1.5.3 patch to add
8945         --bind-address, alphabetizing, changing coding style to GNU's,
8946         commenting, and renaming cmd_ip_address() to cmd_address() to
8947         imply hostnames also okay.
8948
8949         * main.c (main): --delete-after didn't delete the root of the
8950         tree.  Ignore --convert-links if --delete-after was specified.
8951         Manually applied Rob Mayoff's 1.5.3 patch to add --bind-address,
8952         fixing duplicate use of added-since-1.5.3 case value.
8953         (print_help): Clarified that --delete-after deletes local files.
8954         Rob forgot to add a line for his new --bind-address option.
8955
8956         * options.h (struct options): Manually applied Rob Mayoff's patch
8957         to add --bind-address (bind_address structure member).
8958
8959         * recur.c (recursive_retrieve): Improved comment; added DEBUGP().
8960         Ignore --convert-links if --delete-after was specified.
8961
8962         * retr.c (retrieve_from_file): Just added a DEBUGP().
8963
8964 2000-10-19  Dan Harkless  <wget@harkless.org>
8965
8966         * ftp.c (ftp_loop_internal): downloaded_file() enumerators changed.
8967         (getftp): Applied Piotr Sulecki <Piotr.Sulecki@ios.krakow.pl>'s
8968         patch to work around FTP servers that incorrectly respond to the
8969         "REST" command with the remaining size rather than the total file size.
8970
8971         * http.c (gethttp): Improved a comment and added code to tack on
8972         ".html" to text/html files without that extension when -E specified.
8973         (http_loop): Use new downloaded_file() enumerators and deal with
8974         the case of gethttp() called xrealloc() on u->local.
8975
8976         * init.c (commands): Added new "htmlextension" command.
8977         Also renamed John Daily's cmd_quad() to the more descriptive
8978         cmd_lockable_boolean(), alpha-sorted the CMD_DECLARE()s and
8979         removed duplicate cmd_boolean() declaration.
8980
8981         * main.c (print_help): Added my new -E / --html-extension option.
8982         (main): Undocumented --email-address option previously used -E synonym.
8983         Stole it away for the much more deserving --html-extension's use.
8984
8985         * options.h (struct options): Added html_extension field.
8986
8987         * url.c (convert_links): URL X that we saved as X.html locally due
8988         to -E needs to be backed up as X.orig, not X.html.orig.  Added comments.
8989         (downloaded_file): Now remembers if we added .html extension to a file.
8990
8991         * url.h (downloaded_file_t): Added extra enumerators to support above.
8992         (downloaded_file): Now takes and returns a downloaded_file_t.
8993
8994         * wget.h (unnamed "dt" enum): Added ADDED_HTML_EXTENSION enumerator.
8995
8996 2000-10-09  Dan Harkless  <wget@harkless.org>
8997
8998         * html.c (htmlfindurl): Added unneeded initialization to quiet warning.
8999
9000         * main.c (print_help): Clarified what --retr-symlinks does.
9001
9002 2000-09-15  John Daily  <jdaily@cyberdude.com>
9003
9004         * init.c: Add support for "always" and "never" values to allow
9005         .wgetrc to override commandline (useful e.g. with .pm files
9006         calling `wget --passive-ftp' when your firewall doesn't allow that).
9007
9008         * ftp.c (getftp): passive_ftp is first option to support always/never.
9009
9010 2000-08-30  Dan Harkless  <wget@harkless.org>
9011
9012         * ftp.c (ftp_retrieve_list): Use new INFINITE_RECURSION #define.
9013
9014         * html.c: htmlfindurl() now takes final `dash_p_leaf_HTML' parameter.
9015         Wrapped some > 80-column lines.  When -p is specified and we're at a
9016         leaf node, do not traverse <A>, <AREA>, or <LINK> tags other than
9017         <LINK REL="stylesheet">.
9018
9019         * html.h (htmlfindurl): Now takes final `dash_p_leaf_HTML' parameter.
9020
9021         * init.c: Added new -p / --page-requisites / page_requisites option.
9022
9023         * main.c (print_help): Clarified that -l inf and -l 0 both allow
9024         infinite recursion.  Changed the unhelpful --mirrior description
9025         to simply give the options it's equivalent to.  Added new -p option.
9026         (main): Added some comments; handle new -p / --page-requisites.
9027
9028         * options.h (struct options): Added new page_requisites field.
9029
9030         * recur.c: Changed "URL-s" to "URLs" and "HTML-s" to "HTMLs".
9031         Calculate and pass down new `dash_p_leaf_HTML' parameter to
9032         get_urls_html().  Use new INFINITE_RECURSION #define.
9033
9034         * retr.c: Changed "URL-s" to "URLs".  get_urls_html() now takes
9035         final `dash_p_leaf_HTML' parameter.
9036
9037         * url.c: get_urls_html() and htmlfindurl() now take final
9038         `dash_p_leaf_HTML' parameter.
9039
9040         * url.h (get_urls_html): Now takes final `dash_p_leaf_HTML' parameter.
9041
9042         * wget.h: Added some comments and new INFINITE_RECURSION #define.
9043
9044 2000-08-23  Dan Harkless  <wget@harkless.org>
9045
9046         * main.c (print_help): -B / --base was not mentioned.
9047
9048 2000-08-22  Dan Harkless  <wget@harkless.org>
9049
9050         * main.c (print_help): Modified -nc description to mention that it
9051         also prevents the creation of multiple versions of the same file
9052         with ".<number>" suffixes.
9053
9054 2000-07-14  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
9055
9056         * retr.c (retrieve_url): Consistently strdup opt.referer when
9057         setting u->referer.
9058
9059 2000-06-09  Dan Harkless  <wget@harkless.org>
9060
9061         * main.c (print_help): --help output for --waitretry was over 80 cols.
9062
9063 2000-06-09  Hrvoje Niksic  <hniksic@iskon.hr>
9064
9065         * url.c (encode_string): Fix comment.
9066         Suggested by Herold Heiko <Heiko.Herold@previnet.it>.
9067
9068 2000-06-01  Const Kaplinsky  <const@ce.cctpu.edu.ru>
9069
9070         * ftp.c (ftp_retrieve_list): Change permissions only on plain
9071         files.
9072
9073 2000-06-01  Hrvoje Niksic  <hniksic@iskon.hr>
9074
9075         * url.c (str_url): Print the port number only if it's different
9076         from the default port number for that protocol.
9077
9078 2000-05-22  Dan Harkless  <wget@harkless.org>
9079
9080         * main.c (print_help): Added --help line for Damir Dzeko
9081         <ddzeko@zesoi.fer.hr>'s until-now-undocumented --referer option.
9082         Removed comments that --referer and --waitretry were undocumented.
9083         Changed "`.wgetrc' command" to "`.wgetrc'-style command" on --help
9084         line for --execute.
9085
9086 2000-05-18  Hrvoje Niksic  <hniksic@iskon.hr>
9087
9088         * ftp.c (getftp): Ditto.
9089
9090         * http.c (gethttp): Check for return value of fclose/fflush.
9091
9092 2000-04-12  Hrvoje Niksic  <hniksic@iskon.hr>
9093
9094         * host.c (store_hostaddress): Instead of shifting ADDR, start
9095         copying from the correct address.
9096
9097 2000-04-12  Hrvoje Niksic  <hniksic@iskon.hr>
9098
9099         * http.c (gethttp): Don't free REQUEST -- it was allocated with
9100         alloca().
9101         Pointed out by Gisle Vanem <gvanem@eunet.no>.
9102
9103 2000-04-04  Dan Harkless  <wget@harkless.org>
9104
9105         * host.c (store_hostaddress): R. K. Owen's patch introduces a
9106         "left shift count >= width of type" warning on 32-bit
9107         architectures.  Got rid of it by tricking the compiler w/ a variable.
9108
9109         * url.c (UNSAFE_CHAR): The macro didn't include all the illegal
9110         characters per RFC1738, namely everything above '~'.  It also
9111         generated a warning on OSes where char =~ unsigned char.  Fixed.
9112
9113 1998-10-17  Hrvoje Niksic  <hniksic@srce.hr>
9114
9115         * http.c (http_process_type): Removed needless strdup(), a memory
9116         leak.
9117
9118 1998-09-25  Hrvoje Niksic  <hniksic@srce.hr>
9119
9120         * html.c (htmlfindurl): Set PH to the first occurrence of `#'.
9121
9122 1998-09-25  Simon Munton  <simonm@m4data.co.uk>
9123
9124         * init.c (wgetrc_file_name): Don't free HOME under Windows.
9125
9126 1998-12-01  "R. K. Owen"  <rkowen@Nersc.GOV>
9127
9128         * host.c (store_hostaddress): Fix for big endian 64-bit machines.
9129
9130 1998-12-01  Hrvoje Niksic  <hniksic@srce.hr>
9131
9132         * url.c (UNSAFE_CHAR): New macro.
9133         (contains_unsafe): Use it.
9134         (encode_string): Ditto.
9135
9136 1998-12-01  Hrvoje Niksic  <hniksic@srce.hr>
9137
9138         * main.c (i18n_initialize): Use LC_MESSAGES only if available.
9139
9140 2000-03-31  Hrvoje Niksic  <hniksic@srce.hr>
9141
9142         * Use TOUPPER/TOLOWER.
9143
9144 1998-12-22  Alexander V. Lukyanov  <lav@yars.free.net>
9145
9146         * ftp-opie.c (btoe): Zero-terminate OSTORE.
9147
9148 2000-03-21  Hrvoje Niksic  <hniksic@iskon.hr>
9149
9150         * wget.h (DO_REALLOC_FROM_ALLOCA): Ditto.
9151
9152         * sysdep.h (ISALNUM): New macro.
9153         (TOLOWER): Ditto.
9154         (TOUPPER): Ditto.
9155
9156 2000-03-10  Dan Harkless  <wget@harkless.org>
9157
9158         * html.c (idmatch): Implemented checking of my new --follow-tags
9159         and --ignore-tags options.
9160
9161         * init.c (commands): Added comment reminding people adding new
9162         entries doing allocation to add corresponding freeing in cleanup().
9163         (commands): Added new followtags and ignoretags commands.
9164         (cleanup): Free storage for new followtags and ignoretags.
9165
9166         * main.c: Use of "comma-separated list" was random -- normalized
9167         it.  Did some alphabetization.  Added comments pointing out
9168         "Options without arguments" and "Options accepting an argument"
9169         sections of long_options[].  Added new options --follow-tags and
9170         -G / --ignore-tags.  Added comment that Damir's --referer is
9171         currently undocumented.  Added comment that Heiko's --waitretry is
9172         partially undocumented (mentioned in --help but not in
9173         wget.texi).  Moved improperly sorted 24, 129, and 'G' cases.
9174
9175         * options.h (struct options): Added new fields follow_tags and
9176         ignore_tags.
9177
9178         * wget.h: Added "#define EQ 0" so we can say "strcmp(a, b) == EQ".
9179
9180 2000-03-02  Dan Harkless  <wget@harkless.org>
9181
9182         * ftp.c (ftp_loop_internal): Heiko introduced "suggest explicit
9183         braces to avoid ambiguous `else'" warnings.  Eliminated them.
9184
9185         * http.c (gethttp): Dan Berger's query string patch is totally
9186         bogus.  If you have two different URLs, gen_page.cgi?page1 and
9187         get_page.cgi?page2, they'll both be saved as get_page.cgi and the
9188         second will overwrite the first.  Also, parameters to implicit
9189         CGIs, like "http://www.host.com/db/?2000-03-02" cause the URLs to
9190         be printed with trailing garbage characters, and could seg fault.
9191         Backing out the patch, which Dan B. informed me by email was just
9192         a kludge to download StarOffice from Sun made necessary due to
9193         wget's unconditional escaping of certain characters (room for an
9194         option there?).
9195         (http_loop): Heiko introduced "suggest explicit braces to avoid
9196         ambiguous `else'" warnings.  Eliminated them.
9197
9198         * main.c: Heiko's --wait / --waitretry backwards compatibility
9199         code looks to have been totally untested -- automatic variable
9200         'wr' was used without being initialized, and a long int was passed
9201         into setval()'s char* val parameter.
9202
9203         * recur.c (parse_robots): Applied Edward J. Sabol
9204         <sabol@alderaan.gsfc.nasa.gov>'s patch for Guan Yang's reported
9205         problem with "User-agent:<space>*<space>" lines in robots.txt.
9206
9207         * url.c (parseurl, str_url): Removing Dan Berger's code (see
9208         http.c above for explanation).
9209
9210 1999-08-25  Heiko Herold  <Heiko.Herold@previnet.it>
9211
9212         * ftp.c: Respect new option waitretry.
9213
9214 2000-01-30  Damir Dzeko  <ddzeko@zesoi.fer.hr>
9215
9216         * http.c (gethttp): Send custom Referer, if required.
9217
9218 1999-09-24  Charles G Waldman  <cgw@fnal.gov>
9219
9220         * netrc.c (parse_netrc): Allow passwords to contain spaces.
9221
9222         * netrc.c (parse_netrc): New function.
9223
9224 1999-09-17  Dan Berger  <dberger@ix.netcom.com>
9225
9226         * http.c (gethttp): Send it.
9227
9228         * url.c (parseurl): Detect query string in HTTP URL-s.
9229         (str_url): Print it.
9230
9231 2000-03-02  HIROSE Masaaki  <hirose31@t3.rim.or.jp>
9232
9233         * html.c (html_allow): Add <link href=...> and <script src=...>.
9234
9235 1999-05-02  andrew deryabin  <djsf@softhome.net>
9236
9237         * http.c (gethttp): Specify port in `Host' header only if it's
9238         different from 80.
9239
9240 1998-11-03  Edward J. Sabol  <sabol@alderaan.gsfc.nasa.gov>
9241
9242         * recur.c (recursive_retrieve): If a finite maximum depth is
9243         specified, and we're are already at that depth, don't download the
9244         HTML file for parsing.
9245
9246 2000-03-01  Dan Harkless  <wget@harkless.org>
9247
9248         * ftp.c (ftp_loop_internal): Call new downloaded_file() function,
9249         even though we don't do conversion on HTML files retrieved via
9250         FTP, so _current_ usage of downloaded_file() makes this call unneeded.
9251         (ftp_retrieve_list): Added a comment saying where we need to
9252         stat() a .orig file if FTP'd HTML file conversion is ever implemented.
9253         (ftp_retrieve_list): "Local file '%s' is more recent," is sometimes
9254         a lie -- reworded as "Server file no newer than local file '%s' --".
9255
9256         * http.c (http_loop): Fixed a typo and clarified a comment.
9257         (http_loop): When -K and -N are specified together, compare size
9258         and timestamp of server file X against local file X.orig (if
9259         extant) rather than converted local file X.
9260         (http_loop): "Local file '%s' is more recent," is sometimes a lie
9261         -- reworded as "Server file no newer than local file '%s' --".
9262         (http_loop): Call new downloaded_file() function to prevent
9263         wrongful overwriting of .orig file when -N is specified.
9264
9265         * url.c (convert_links): When -K specified, only rename X to
9266         X.orig if downloaded_file() returns TRUE.  Otherwise when we skip
9267         file X due to -N, we clobber an X.orig from a previous invocation.
9268         (convert_links): Call the failsafe xstrdup(), not the real strdup().
9269         (convert_links): Added a note asking anyone who understands how
9270         multiple URLs can correspond to a single file to comment it.
9271         (downloaded_file): Added this new function.
9272
9273         * url.h (downloaded_file): Added prototype for this new function
9274         as well as its downloaded_file_t enum type.
9275
9276         * wget.h (boolean): Added this new typedef and TRUE and FALSE #defines.
9277
9278 2000-02-29  Dan Harkless  <wget@harkless.org>
9279
9280         * version.c: Upped version to developer-only "1.5.3+dev".
9281
9282 2000-02-18  Dan Harkless  <wget@harkless.org>
9283
9284         * init.c (backup_converted): Added this new option.
9285
9286         * main.c (-K / --backup-converted): Added this new option.
9287
9288         * options.h (backup_converted): Added this new option.
9289
9290         * url.c (convert_links): When backup_converted is specified, save
9291         file X as X.orig before converting.
9292
9293         * url.h (urlpos): Fixed typo -- said "Rekative" instead of "Relative".
9294
9295 1998-09-21  Hrvoje Niksic  <hniksic@srce.hr>
9296
9297         * version.c: Wget 1.5.3 is released.
9298
9299 1998-09-21  Hrvoje Niksic  <hniksic@srce.hr>
9300
9301         * host.c (ftp_getaddress): Don't warn when reverse-lookup of local
9302         address doesn't yield FQDN.
9303
9304 1998-09-21  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
9305
9306         * cmpt.c (strerror): Fix declaration of sys_errlist.
9307
9308 1998-09-11  Hrvoje Niksic  <hniksic@srce.hr>
9309
9310         * main.c (main): Don't use an array subscript as the first
9311         argument to STRDUP_ALLOCA.
9312         From Kaveh R. Ghazi.
9313
9314 1998-09-11  Szakacsits Szabolcs  <szaka@sienet.hu>
9315
9316         * html.c (htmlfindurl): Download table background.
9317
9318 1998-09-11  Hans Grobler  <grobh@conde.ee.sun.ac.za>
9319
9320         * init.c (parse_line): Would free *com before allocating it.
9321         (parse_line): Would free com instead of *com.
9322
9323 1998-09-10  Howard Gayle  <howard@fjst.com>
9324
9325         * url.c (get_urls_html): Would drop the last character of the
9326         link.
9327
9328 1998-09-10  Hrvoje Niksic  <hniksic@srce.hr>
9329
9330         * http.c (http_loop): Don't print status code if quiet.
9331
9332 1998-09-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9333
9334         * log.c: Use <stdarg.h> only when __STDC__.
9335
9336 1998-09-10  Adam D. Moss  <adam@foxbox.org>
9337
9338         * html.c (htmlfindurl): Download <layer src=...>.
9339
9340 1998-09-10  Howard Gayle  <howard@fjst.com>
9341
9342         * ftp.c (ftp_retrieve_list): Don't update the time stamp of a file
9343         not retrieved.
9344
9345 1998-06-27  Hrvoje Niksic  <hniksic@srce.hr>
9346
9347         * utils.c: Include <libc.h> on NeXT.
9348
9349 1998-06-26  Heinz Salzmann  <heinz.salzmann@intermetall.de>
9350
9351         * url.c (get_urls_html): Fix calculation of URL position.
9352
9353 1998-06-23  Hrvoje Niksic  <hniksic@srce.hr>
9354
9355         * version.c: Wget 1.5.2 is released.
9356
9357 1998-06-23  Dave Love  <d.love@dl.ac.uk>
9358
9359         * ftp.c, init.c, netrc.c: Include errno.h.
9360
9361         * http.c: Include errno.h and time header.
9362
9363         * Makefile.in (exext): Define.
9364         (install.bin, uninstall.bin): Use it.
9365
9366 1998-06-21  Hrvoje Niksic  <hniksic@srce.hr>
9367
9368         * http.c (http_loop): Don't attempt to compare local and remote
9369         sizes if the remote size is unknown.
9370
9371 1998-06-16  Hrvoje Niksic  <hniksic@srce.hr>
9372
9373         * url.c (get_urls_html): Use malloc() instead of alloca in the
9374         loop.
9375
9376 1998-06-13  Hrvoje Niksic  <hniksic@srce.hr>
9377
9378         * version.c: Wget 1.5.2-b4 is released.
9379
9380 1998-06-13  Hrvoje Niksic  <hniksic@srce.hr>
9381
9382         * url.c (get_urls_html): Ignore spaces before and after the URI.
9383
9384 1998-06-08  Wanderlei Antonio Cavassin  <cavassin@conectiva.com.br>
9385
9386         * ftp.c (getftp): Translate `done'.
9387
9388 1998-06-06  Hrvoje Niksic  <hniksic@srce.hr>
9389
9390         * version.c: Wget 1.5.2-b3 is released.
9391
9392 1998-06-06  Alexander Kourakos  <awk@bnt.com>
9393
9394         * init.c (cleanup): Close dfp, don't free it.
9395
9396 1998-06-06  Hrvoje Niksic  <hniksic@srce.hr>
9397
9398         * utils.c (make_directory): Twiddle.
9399
9400         * config.h.in: Added template for access().
9401
9402 1998-06-05  Mathieu Guillaume  <mat@cythere.com>
9403
9404         * html.c (htmlfindurl): Download <input src=...>
9405
9406 1998-06-03  Hrvoje Niksic  <hniksic@srce.hr>
9407
9408         * utils.c (file_exists_p): Use access() with two arguments.
9409
9410 1998-05-27  Martin Kraemer  <Martin.Kraemer@mch.sni.de>
9411
9412         * netrc.c (parse_netrc): Correct logic.
9413
9414 1998-05-27  Hrvoje Niksic  <hniksic@srce.hr>
9415
9416         * ftp.c (getftp): Added `break'; suggested by Lin Zhe Min
9417         <ljm@ljm.wownet.net>.
9418
9419 1998-05-24  Hrvoje Niksic  <hniksic@srce.hr>
9420
9421         * version.c: Wget 1.5.2-b2 is released.
9422
9423 1998-05-18  Juan Jose Rodriguez  <jcnsoft@jal1.telmex.net.mx>
9424
9425         * mswindows.h: Don't translate mkdir to _mkdir under Borland.
9426
9427 1998-05-17  Hrvoje Niksic  <hniksic@srce.hr>
9428
9429         * retr.c (elapsed_time): Return correct value when
9430         HAVE_GETTIMEOFDAY is undefined.
9431
9432 1998-05-13  Hrvoje Niksic  <hniksic@srce.hr>
9433
9434         * version.c: Wget 1.5.2-b1 is released.
9435
9436 1998-05-08  Hrvoje Niksic  <hniksic@srce.hr>
9437
9438         * getopt.c (_getopt_internal): Use exec_name instead of argv[0].
9439         (_getopt_internal): Don't translate `#if 0'-ed strings.
9440
9441 1998-05-06  Douglas E. Wegscheid  <wegscd@whirlpool.com>
9442
9443         * mswindows.c (ws_handler): Use fork_to_background().
9444
9445 1998-05-05  Hrvoje Niksic  <hniksic@srce.hr>
9446
9447         * version.c: Wget 1.5.1 is released.
9448
9449 1998-05-05  Hrvoje Niksic  <hniksic@srce.hr>
9450
9451         * http.c (parse_http_status_line): Avoid `minor' and `major'
9452         names.
9453
9454 1998-05-02  Hrvoje Niksic  <hniksic@srce.hr>
9455
9456         * utils.c (mkdirhier): Renamed to make_directory.
9457
9458 1998-05-01  Hrvoje Niksic  <hniksic@srce.hr>
9459
9460         * mswindows.c (fork_to_background): Define under Windows.
9461
9462         * utils.c (fork_to_background): New function.
9463
9464         * html.c (htmlfindurl): Removed rerdundant casts.
9465
9466 1998-05-01  Douglas E. Wegscheid  <wegscd@whirlpool.com>
9467
9468         * mswindows.c (ws_mypath): Cache the path.
9469
9470 1998-04-30  Douglas E. Wegscheid  <wegscd@whirlpool.com>
9471
9472         * ftp.h: Prefix enum ftype members with FT_.
9473
9474         * ftp-ls.c, ftp.c, html.h: Adjust accordingly.
9475
9476         * mswindows.h: Use stat under Borland, _stat under MSVC.
9477
9478 1998-04-28  Hrvoje Niksic  <hniksic@srce.hr>
9479
9480         * http.c (known_authentication_scheme_p): New function.
9481         (gethttp): Handle authorization more correctly.
9482
9483         * ftp-basic.h: Removed.
9484
9485         * cmpt.h: Removed.
9486
9487         * utils.c: Include <unistd.h> before <pwd.h>; needed under SunOS
9488         with gcc 2.8.
9489         (numdigit): Use `while' loop.
9490
9491         * http.c (create_authorization_line): Detect authentication
9492         schemes case-insensitively.
9493
9494         * http.c (extract_header_attr): Use strdupdelim().
9495         (digest_authentication_encode): Move declaration of local
9496         variables to smaller scope.
9497         (digest_authentication_encode): Reset REALM, OPAQUE and NONCE.
9498         (create_authorization_line): Detect authentication schemes
9499         case-insensitively.
9500
9501         * utils.c (touch): Constify.
9502
9503         * http.c (gethttp): Report a nicer error when no data is received.
9504
9505         * rbuf.h (RBUF_READCHAR): Ditto.
9506
9507         * ftp-basic.c (ftp_response): Use sizeof.
9508
9509 1998-04-27  Hrvoje Niksic  <hniksic@srce.hr>
9510
9511         * retr.c (print_percentage): EXPECTED is long, not int.
9512         (print_percentage): Use floating-point arithmetic to avoid
9513         overflow with large files' sizes multiplied with 100.
9514
9515 1998-04-27  Gregor Hoffleit  <flight@mathi.uni-heidelberg.de>
9516
9517         * config.h.in: Added pid_t stub.
9518
9519         * sysdep.h (S_ISREG): Moved here from mswindows.h (NeXT doesn't
9520         define it).
9521
9522 1998-04-20  Hrvoje Niksic  <hniksic@srce.hr>
9523
9524         * version.c: Wget 1.5.0 is released.
9525
9526 1998-04-18  Hrvoje Niksic  <hniksic@srce.hr>
9527
9528         * url.c (str_url): Ditto.
9529
9530         * ftp-basic.c (ftp_rest): Use new name.
9531
9532         * utils.c (long_to_string): Renamed from prnum().
9533
9534 1998-04-16  Hrvoje Niksic  <hniksic@srce.hr>
9535
9536         * version.c: Wget 1.5-b17 is released.
9537
9538 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
9539
9540         * headers.c (header_get): New argument FLAGS.
9541
9542         * http.c (gethttp): If request is malformed, bail out of the
9543         header loop.
9544         (gethttp): Check for empty header *after* the status line checks.
9545         (gethttp): Disallow continuations for status line.
9546
9547 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
9548
9549         * version.c: Wget 1.5-b16 is released.
9550
9551 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
9552
9553         * init.c (commands): Renamed `always_rest' to `continue'.
9554
9555 1998-04-05  Hrvoje Niksic  <hniksic@srce.hr>
9556
9557         * all: Use it.
9558
9559         * log.c (logputs): New argument.
9560         (logvprintf): Ditto.
9561         (logprintf): Ditto.
9562
9563 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
9564
9565         * http.c (http_atotm): Update comment.
9566
9567         * main.c (i18n_initialize): Set LC_MESSAGES, not LC_ALL.
9568
9569         * wget.h: Renamed ENABLED_NLS to HAVE_NLS.
9570
9571         * main.c (i18n_initialize): New function.
9572         (main): Use it.
9573
9574         * log.c: Include <unistd.h>.
9575
9576         * retr.c (show_progress): Cast alloca to char *.
9577
9578 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
9579
9580         * version.c: Wget 1.5-b15 is released.
9581
9582 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
9583
9584         * utils.h: Declare file_non_directory_p().
9585
9586 1998-04-03  Hrvoje Niksic  <hniksic@srce.hr>
9587
9588         * main.c (main): It's `tries', not `numtries' now.
9589
9590 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
9591
9592         * init.c (getperms): Removed.
9593
9594 1998-04-01  Tim Charron  <tcharron@interlog.com>
9595
9596         * log.c (logvprintf): Don't use ARGS twice.
9597
9598 1998-04-01  John  <john@futuresguide.com>
9599
9600         * mswindows.c: Cleaned up.
9601
9602 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
9603
9604         * version.c: Wget 1.5-b14 is released.
9605
9606 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
9607
9608         * ftp-opie.c (STRLEN4): New macro.
9609         (btoe): Use it.
9610
9611 1998-04-01  Junio Hamano  <junio@twinsun.com>
9612
9613         * http.c: Document all the Digest functions.
9614
9615 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
9616
9617         * utils.c (file_non_directory_p): Renamed from isfile().
9618
9619         * mswindows.h (S_ISREG): New macro, suggested by Tim Adam.
9620
9621 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
9622
9623         * utils.c (mkdirhier): Use 0777 instead of opt.dirmode.
9624
9625         * init.c (cmd_spec_dotstyle): Use 48 dots per line for binary
9626         style.
9627         (cmd_permissions): Removed.
9628
9629         * config.h.in: Add template for WORDS_BIGENDIAN.
9630
9631 1998-03-31  Junio Hamano  <junio@twinsun.com>
9632
9633         * http.c (HEXD2asc): New macro.
9634         (dump_hash): Use it.
9635
9636 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
9637
9638         * version.c: Wget 1.5-b13 is released.
9639
9640 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
9641
9642         * main.c (main): Don't try to use `com'.
9643
9644 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
9645
9646         * init.c (cmd_permissions): New function.
9647
9648 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
9649
9650         * version.c: Wget 1.5-b12 is released.
9651
9652 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
9653
9654         * init.c (commands): Renamed `numtries' to `tries'.
9655         (cmd_spec_debug): Removed.
9656         (home_dir): Under Windows, return `C:\' if HOME is undefined.
9657
9658 1998-03-29  Hrvoje Niksic  <hniksic@srce.hr>
9659
9660         * config.h.in: Define _XOPEN_SOURCE.
9661
9662         * init.c (check_user_specified_header): New function.
9663         (cmd_spec_header): Use it.
9664         (cmd_spec_useragent): New function.
9665
9666 1998-03-29  Hrvoje Niksic  <hniksic@srce.hr>
9667
9668         * version.c: Wget 1.5-b11 is released.
9669
9670 1998-03-28  Hrvoje Niksic  <hniksic@srce.hr>
9671
9672         * wget.h: Include <libintl.h> only if NLS is enabled.
9673
9674 1998-03-26  Hrvoje Niksic  <hniksic@srce.hr>
9675
9676         * options.h (struct options): Made `wait' a long.
9677         (struct options): Ditto for `timeout'.
9678
9679 1998-03-19  Hrvoje Niksic  <hniksic@srce.hr>
9680
9681         * utils.c (exists): Renamed to file_exists_p.
9682         (file_exists_p): Use access() if available.
9683
9684 1998-03-17  Hrvoje Niksic  <hniksic@srce.hr>
9685
9686         * utils.c (memfatal): Set save_log_p to 0 to avoid potential
9687         infloop.
9688
9689         * log.c: do_logging -> save_log_p.
9690
9691         * config.h.in: Added template for HAVE_VSNPRINTF.
9692
9693 1998-03-16  Hrvoje Niksic  <hniksic@srce.hr>
9694
9695         * init.c: Ditto.
9696
9697         * http.c: Protect declaration against non-ANSI compiler.
9698
9699         * log.c (logvprintf): Use vsnprintf() if available.
9700
9701         * getopt.c (main): Don't translate test stuff.
9702
9703 1998-03-16  Hrvoje Niksic  <hniksic@srce.hr>
9704
9705         * version.c: Wget 1.5-b10 is released.
9706
9707 1998-03-11  Hrvoje Niksic  <hniksic@srce.hr>
9708
9709         * ftp.c (getftp): Don't translate "CWD %s".
9710
9711         * wget.h (GCC_FORMAT_ATTR): Renamed from FORMAT_ATTR.
9712
9713 1998-03-07  Hrvoje Niksic  <hniksic@srce.hr>
9714
9715         * ftp-opie.c (btoe): Use memcpy() instead of strncat().
9716
9717         * log.c (logputs): New function.
9718         (logvprintf): Renamed from vlogmsg; use logputs().
9719
9720         * retr.c (show_progress): Print `[100%]' when the retrieval is
9721         finished.
9722
9723         * init.c (run_wgetrc): Use FILE, not PATH.
9724         (wgetrc_file_name): Ditto.
9725
9726 1998-03-07  Tim Adam  <tma@osa.com.au>
9727
9728         * recur.c (parse_robots): Correctly reset `entries' on empty
9729         disallow.
9730
9731 1998-03-07  Hrvoje Niksic  <hniksic@srce.hr>
9732
9733         * init.c (cmd_spec_debug): Use cmd_boolean().
9734
9735 1998-02-23  Hrvoje Niksic  <hniksic@srce.hr>
9736
9737         * http.c (gethttp): Create proxy-authorization correctly.
9738
9739 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
9740
9741         * md5.c: Ditto.
9742
9743         * getopt.c: Use ANSI function definitions.
9744
9745         * ftp-opie.c: New file.
9746
9747         * options.h: Don't redefine EXTERN.
9748
9749         * init.c: Sort it correctly.
9750
9751 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
9752
9753         * version.c: Wget 1.5-b9 is released.
9754
9755 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
9756
9757         * recur.c (recursive_retrieve): Reset `first_time'.
9758
9759         * ftp.c (getftp): Added `default' clause to switches of uerr_t.
9760
9761         * rbuf.c (rbuf_peek): Simplified.
9762         (rbuf_flush): Use MINVAL.
9763
9764         * wget.h (MINVAL): Moved from url.h.
9765
9766         * rbuf.h (RBUF_FD): New macro.
9767
9768         * url.c (add_url): Add to the head of the list.
9769
9770         * ftp.c (ftp_retrieve_list): Set the permissions to downloaded
9771         file.
9772         (getftp): Set the default permissions to 0600.
9773
9774 1998-02-21  Hrvoje Niksic  <hniksic@srce.hr>
9775
9776         * url.c (get_urls_html): Ditto.
9777         (convert_links): Ditto.
9778
9779         * recur.c (parse_robots): Ditto.
9780
9781         * html.c (ftp_index): Ditto.
9782
9783         * ftp-ls.c (ftp_parse_unix_ls): Open file as binary.
9784
9785         * init.c (defaults): Initialize `opt' to zero via memset.
9786
9787         * http.c (digest_authentication_encode): goto considered harmful.
9788
9789 1998-02-19  Hrvoje Niksic  <hniksic@srce.hr>
9790
9791         * ftp.c (delelement): Simplify and fix leak.
9792
9793 1998-02-18  Hrvoje Niksic  <hniksic@srce.hr>
9794
9795         * http.c (dump_hash): Use HEXD2ASC instead of home-grown stuff.
9796
9797         * url.h (HEXD2ASC): Removed warning.
9798
9799         * init.c (comind): Use binary search.
9800         (commands): Reorganized.
9801         (setval): Ditto.
9802         (cmd_boolean): New function.
9803         (cmd_number): Ditto.
9804         (cmd_number_inf): Ditto.
9805         (cmd_string): Ditto.
9806         (cmd_vector): Ditto.
9807         (cmd_directory_vector): Ditto.
9808         (cmd_bytes): Ditto.
9809         (cmd_time): Ditto.
9810         (cmd_spec_debug): Ditto.
9811         (cmd_spec_dirmode): Ditto.
9812         (cmd_spec_dirstruct): Ditto.
9813         (cmd_spec_dotstyle): Ditto.
9814         (cmd_spec_header): Ditto.
9815         (cmd_spec_htmlify): Ditto.
9816         (cmd_spec_mirror): Ditto.
9817         (cmd_spec_outputdocument): Ditto.
9818         (cmd_spec_recursive): Ditto.
9819         (settime): Merged with cmd_time().
9820         (setbytes): Merged with cmd_bytes().
9821         (setonoff): Merged with cmd_boolean().
9822         (onoff): Ditto.
9823
9824 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
9825
9826         * Makefile.in (distclean): Remove `config.h'.
9827
9828 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
9829
9830         * version.c: Wget 1.5-b8 is released.
9831
9832 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
9833
9834         * http.c (digest_authentication_encode): New function.
9835         (create_authorization_line): Use it.
9836         (dump_hash): New function.
9837         (digest_authentication_encode): Use it.
9838
9839         * fnmatch.c: Renamed from `mtch.c'.
9840
9841 1998-02-15  Karl Eichwalder  <ke@suse.de>
9842
9843         * main.c (main): Tag "Written by..." string as translatable.
9844
9845 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
9846
9847         * wget.h (FREE_MAYBE): New macro.
9848
9849         * http.c (create_authorization_line): Don't use ANSI C string
9850         concatenation feature.
9851         (basic_authentication_encode): Use alloca() for temporary
9852         variables.
9853
9854         * recur.h: Ditto.
9855
9856         * http.c: Ditto.
9857
9858         * headers.h: Ditto.
9859
9860         * ftp-basic.c: Protect declaration against non-ANSI compiler.
9861
9862         * http.c (create_authorization_line): Cast `unsigned char *' to
9863         `char *' for sprintf, to shut up the noisy Digital Unix cc.
9864
9865 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
9866
9867         * version.c: Wget 1.5-b7 is released.
9868
9869 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
9870
9871         * cmpt.c (strstr): Synched with glibc-2.0.6.
9872
9873         * ftp-basic.c (calculate_skey_response): Ditto.
9874         (calculate_skey_response): Use alloca().
9875
9876         * http.c (create_authorization_line): Work with FSF's version of
9877         md5.c.
9878
9879         * md5.c: New file, from GNU libc.
9880
9881 1998-02-14  Hrvoje Niksic  <hniksic@srce.hr>
9882
9883         * url.h (URL_CLEANSE): Name the temporary variable more carefully.
9884
9885 1998-02-13  Hrvoje Niksic  <hniksic@srce.hr>
9886
9887         * http.c (basic_authentication_encode): New function, instead of
9888         the macro.
9889
9890 1998-02-13  Junio Hamano  <junio@twinsun.com>
9891
9892         * http.c: Add HTTP-DA support.
9893         * ftp-basic.c: Add Opie/S-key support.
9894         * config.h.in, Makefile.in: Add HTTP-DA and Opie/S-key support.
9895         * md5.c, md5.h: New files.
9896
9897 1998-02-13  Hrvoje Niksic  <hniksic@srce.hr>
9898
9899         * http.c (http_process_range): Renamed from hprocrange().
9900         (http_process_range): Parse the whole header.
9901
9902         * headers.c: New file.
9903         (header_process): New function.
9904         (header_get): Renamed from fetch_next_header.
9905
9906         * all: Include utils.h only where necessary.
9907
9908         * wget.h: Declare xmalloc(), xrealloc() and xstrdup() here.
9909
9910         * wget.h: Add provisions for dmalloc.
9911
9912 1998-02-12  Hrvoje Niksic  <hniksic@srce.hr>
9913
9914         * version.c: Wget 1.5-b6 is released.
9915
9916 1998-02-12  Hrvoje Niksic  <hniksic@srce.hr>
9917
9918         * ftp.c (ftp_loop): Determine `filename' more precisely.
9919
9920         * init.c (setval): Don't set `opt.quiet' if output-document is
9921         `-'.
9922
9923         * log.c (log_init): Print to STDERR instead of STDOUT.
9924         (vlogmsg): Use STDERR by default.
9925         (logflush): Ditto.
9926
9927 1998-02-11  Simon Josefsson  <jas@pdc.kth.se>
9928
9929         * host.c: Use addr_in again.
9930
9931 1998-02-08  Karl Eichwalder  <karl@suse.de>
9932
9933         * http.c (gethttp): Fixed typo.
9934
9935 1998-02-08  Hrvoje Niksic  <hniksic@srce.hr>
9936
9937         * version.c: Wget 1.5-b5 is released.
9938
9939 1998-02-08  Hrvoje Niksic  <hniksic@srce.hr>
9940
9941         * retr.c (show_progress): Use it.
9942
9943         * log.c (logflush): New function.
9944
9945         * wget.h: Utilize __attribute__ if on gcc.
9946
9947 1998-02-07  Hrvoje Niksic  <hniksic@srce.hr>
9948
9949         * http.c (base64_encode_line): New argument LENGTH.
9950         (BASIC_AUTHENTICATION_ENCODE): Use it.
9951         (BASIC_AUTHENTICATION_ENCODE): Take length of HEADER into account.
9952
9953         * main.c (main): Fixed fprintf() format mismatch.
9954
9955 1998-02-06  Hrvoje Niksic  <hniksic@srce.hr>
9956
9957         * version.c: Wget 1.5-b4 is released.
9958
9959 1998-02-03  Simon Josefsson  <jas@pdc.kth.se>
9960
9961         * host.c: use sockaddr_in instead of addr_in.
9962
9963 1998-02-04  Hrvoje Niksic  <hniksic@srce.hr>
9964
9965         * init.c (cleanup): Use it.
9966
9967         * recur.c (recursive_cleanup): New function.
9968
9969         * retr.c (retrieve_from_file): Ditto.
9970
9971         * main.c (main): Use it.
9972
9973         * recur.c (recursive_reset): New function.
9974
9975         * retr.c (retrieve_from_file): Ditto.
9976
9977         * main.c (main): Simplify call to recursive_retrieve().
9978
9979         * recur.c (recursive_retrieve): Removed FLAGS argument.
9980
9981         * http.c (gethttp): Changed call to iwrite().
9982
9983 1998-02-03  Hrvoje Niksic  <hniksic@srce.hr>
9984
9985         * url.c (get_urls_html): Ditto.
9986         (free_urlpos): Ditto.
9987         (mkstruct): Ditto.
9988         (construct): Ditto.
9989
9990         * retr.c (retrieve_url): Move declaration of local variables to
9991         smaller scope.
9992
9993         * url.c (urlproto): Use it.
9994         (parseurl): Ditto.
9995         (str_url): Ditto.
9996         (get_urls_html): Ditto.
9997
9998         * utils.h (ARRAY_SIZE): New macro.
9999
10000         * url.c (proto): Moved from url.h.
10001
10002         * url.h (URL_CLEANSE): Reformatted.
10003         (USE_PROXY_P): Renamed from USE_PROXY.
10004
10005         * ftp-basic.c: Adjust to the new interface of iwrite().
10006
10007         * ftp-basic.c (ftp_port): Use alloca().
10008
10009 1998-02-03  Hrvoje Niksic  <hniksic@srce.hr>
10010
10011         * version.c: Wget 1.5-b3 is released.
10012
10013         * host.c (ftp_getaddress): Don't print to stderr directly.
10014
10015         * init.c (setbytes): Support `g' for gigabytes.
10016         (cmdtype): New specification CTIME.
10017         (setval): Use it with settime().
10018         (commands): Use it for WAIT and TIMEOUT.
10019
10020 1998-02-02  Hrvoje Niksic  <hniksic@srce.hr>
10021
10022         * http.c (BASIC_AUTHENTICATION_ENCODE): New macro.
10023         (gethttp): Use it.
10024
10025         * utils.c (unique_name_1): Moved from url.c.
10026         (unique_name): Ditto.
10027
10028         * url.c (url_filename): Ditto.
10029
10030         * log.c (redirect_output): Changed call to unique_name().
10031
10032         * url.c (unique_name_1): Renamed from unique_name().
10033         (unique_name): Changed interface.
10034
10035         * init.c (enum cmdid): Moved from init.h.
10036         (cmdtype): Ditto.
10037         (struct cmd): Ditto.
10038
10039         * main.c (main): Use it.
10040         (main): Moved `--backups' to not have a short option.
10041
10042         * options.h (struct options): New member BACKGROUND.
10043
10044         * main.c (print_help): Rearranged.
10045         (main): New long options for -n* short options: --no-directories,
10046         --no-host-directories, --non-verbose, --no-host-lookup and
10047         --dont-remove-listing.
10048
10049 1998-02-01  Hrvoje Niksic  <hniksic@srce.hr>
10050
10051         * main.c (main): Use log_close().
10052
10053         * log.c: New variable LOGFP.
10054         (vlogmsg): Use it.
10055         (redirect_output): Don't open /dev/null; set LOGFP to stdin
10056         instead.
10057         (log_close): New function.
10058
10059         * options.h (struct options): Removed LFILE.
10060
10061         * log.c (log_enable): Removed.
10062
10063         * main.c (main): Use it.
10064
10065         * log.c (log_init): New function.
10066
10067         * url.c (get_urls_html): Removed needless assignment to BASE.
10068
10069         * host.c (add_hlist): Don't set CMP needlessly.
10070
10071         * utils.c (match_backwards): Ditto.
10072         (in_acclist): Ditto.
10073
10074         * url.c (findurl): Ditto.
10075
10076         * netrc.c (parse_netrc): Ditto.
10077
10078         * log.c (log_dump): Ditto.
10079
10080         * html.c (html_quote_string): Ditto.
10081
10082         * ftp-basic.c (ftp_request): Made static.
10083
10084         * connect.c: Made global variables static.
10085
10086         * url.c (construct): Ditto.
10087
10088         * init.c (init_path): Avoid assignment inside `if'-condition.
10089
10090         * ftp.c: Don't include in.h or winsock.h.
10091
10092         * ftp.c (ftp_loop): Use SZ.
10093
10094         * connect.c (bindport): Cast &addrlen to int *.
10095         (conaddr): Ditto.
10096
10097         * init.c (initialize): Don't use SYSTEM_WGETRC unconditionally.
10098
10099 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
10100
10101         * ftp.c (getftp): Initialize opt.ftp_pass here.
10102         (ftp_retrieve_dirs): Use alloca().
10103
10104         * init.c (defaults): Don't initialize opt.ftp_pass.
10105
10106         * sysdep.h (S_ISLNK): Declare for OS/2; ditto for lstat.
10107         From Ivan F. Martinez <ivanfm@ecodigit.com.br>.
10108
10109 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
10110
10111         * recur.c (parse_robots): Check for comments more correctly.
10112
10113         * host.c (ftp_getaddress): Use STRDUP_ALLOCA.
10114         (ftp_getaddress): Add diagnostics when reverse-lookup yields only
10115         hostname.
10116
10117 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
10118
10119         * version.c: Wget 1.5-b2 is released.
10120
10121         * netrc.c (NETRC_FILE_NAME): Moved from netrc.h.
10122
10123         * utils.c (proclist): Pass FNM_PATHNAME to fnmatch().
10124
10125         * ftp-basic.c (ftp_pasv): Avoid unnecessary casting to unsigned
10126         char.
10127
10128         * log.c: Don't attempt to hide arguments from ansi2knr.
10129
10130         * cmpt.c: Synched strptime() and mktime() with glibc-2.0.6.
10131
10132         * ansi2knr.c: Use a later version, from fileutils-3.16l alpha.
10133
10134         * ftp.c (getftp): Ditto.
10135
10136         * http.c (gethttp): Use it.
10137
10138         * retr.c (get_contents): New argument EXPECTED; pass it to
10139         show_progress().
10140         (show_progress): New argument EXPECTED; use it to display
10141         percentages.
10142
10143         * init.c (setval): Ditto.
10144
10145         * http.c (gethttp): Ditto.
10146         (http_loop): Ditto.
10147
10148         * ftp.c (getftp): Ditto.
10149         (ftp_loop_internal): Ditto.
10150
10151         * ftp-ls.c (ftp_parse_unix_ls): Use abort() instead of assert(0).
10152
10153         * sysdep.h (CLOSE): Simplify; use DEBUGP.
10154
10155         * netrc.c (search_netrc): Use alloca().
10156
10157         * init.c (defaults): Initialize no_flush.
10158
10159         * log.c (vlogmsg): Don't flush if no_flush.
10160
10161         * options.h (struct options): New variable no_flush.
10162
10163         * main.c (main): Don't play games with buffering.
10164
10165         * log.c (vlogmsg): Flush the output after every message.
10166
10167 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
10168
10169         * init.c (parse_line): Ditto.
10170
10171         * url.c (get_urls_html): Ditto.
10172
10173         * main.c (main): Don't cast to unsigned char.
10174
10175         * init.c (run_wgetrc): Don't cast to unsigned char.
10176         (parse_line): Accept char instead of unsigned char.
10177
10178         * html.c (htmlfindurl): Use char instead of unsigned char.
10179
10180         * all: Use them.
10181
10182         * sysdep.h: Add wrappers to ctype macros to make them
10183         eight-bit-clean:
10184
10185 1998-01-30  Hrvoje Niksic  <hniksic@srce.hr>
10186
10187         * html.c (htmlfindurl): Download <img lowsrc=...>
10188
10189         * main.c (main): Ignore SIGPIPE.
10190
10191         * connect.c (select_fd): New argument WRITEP.
10192         (iwrite): Call select_fd().
10193
10194 1997-02-27  Fila Kolodny <fila@ibi.com>
10195
10196         * ftp.c (ftp_retrieve_list): If retrieving symlink and the proper
10197         one already exists, just skip it.
10198
10199 1998-01-30  Hrvoje Niksic  <hniksic@srce.hr>
10200
10201         * http.c (gethttp): Cosmetic changes.
10202
10203         * http.c (check_end): Allow `+D...' instead of `GMT'.
10204         From Fabrizio Pollastri <pollastri@cstv.to.cnr.it>.
10205
10206         * url.c (process_ftp_type): New function.
10207         (parseurl): Use it.
10208
10209         * connect.c (iwrite): Allow writing in a few chunks.
10210         (bindport): Made SRV static, so addr can point to it.
10211         (select_fd): Removed HPUX kludge.
10212
10213         * host.c (free_hlist): Incorporated into clean_hosts().
10214
10215 1998-01-29  Hrvoje Niksic  <hniksic@srce.hr>
10216
10217         * host.c (hlist): Made static.
10218         (search_address): Cosmetic change.
10219
10220 1998-01-29  Hrvoje Niksic  <hniksic@srce.hr>
10221
10222         * version.c: Wget v1.5-b1 is released.
10223
10224         * http.c (hgetlen): Use sizeof() to get the header length.
10225         (hgetrange): Ditto.
10226         (hgettype): Ditto.
10227         (hgetlocation): Ditto.
10228         (hgetmodified): Ditto.
10229         (haccepts_none): Ditto.
10230
10231         * main.c (main): Updated `--version' and `--help' output, as per
10232         Francois Pinard's suggestions.
10233
10234         * main.c: Include locale.h; call setlocale(), bindtextdomain() and
10235         textdomain().
10236
10237         * config.h.in: Define stubs for I18N3.
10238
10239         * wget.h: Include libintl.h.
10240
10241 1998-01-28  Hrvoje Niksic  <hniksic@srce.hr>
10242
10243         * url.c (mkstruct): Check for opt.cut_dirs.
10244         (mkstruct): alloca()-te more, xmalloc() less.
10245
10246         * utils.c (load_file): Check for ferror().
10247
10248         * url.c (get_urls_file): Close only the files we opened.
10249         (get_urls_html): Ditto.
10250         (count_slashes): New function.
10251
10252         * http.h: Removed.
10253
10254         * http.c (gethttp): Respect username and password provided by
10255         proxy URL.
10256         (base64_encode_line): Write into an existing buffer instead of
10257         malloc-ing a new one.
10258         (struct http_stat): Moved from http.h
10259
10260         * retr.c (retrieve_url): Free SUF.
10261
10262         * all: Removed lots of unnecessary .h dependencies.
10263
10264         * html.c (global_state): Made static.
10265
10266         * utils.h (ALLOCA_ARRAY): New macro.
10267
10268         * main.c (main): New option `--cut-dirs'.
10269
10270         * url.c (construct): Use alloca() for T.
10271
10272         * utils.c (mkdirhier): Use STRDUP_ALLOCA.
10273
10274         * host.c (_host_t): Moved from host.h.
10275         (struct host): Renamed from _host_t.
10276         (store_hostaddress): Use STRDUP_ALLOCA for INET_S.
10277         (realhost): Ditto.
10278
10279         * host.h: Don't include url.h.
10280
10281         * ftp.c (LIST_FILENAME): Moved from ftp.h.
10282
10283         * init.c (DEFAULT_FTP_ACCT): Moved from ftp.h.
10284
10285         * main.c (main): Enable log if the output goes to a TTY.
10286
10287         * connect.h: Removed unused constant `BACKLOG'.
10288
10289         * config.h.in: Check for isatty().
10290
10291         * Makefile.in (LINK): Use CFLAGS when linking.
10292
10293 1998-01-27  Hrvoje Niksic  <hniksic@srce.hr>
10294
10295         * mswindows.c (ws_hangup): Use redirect_output().
10296
10297         * main.c (redirect_output_signal): New function; use
10298         redirect_output().
10299
10300         * log.c (redirect_output): New function, based on hangup(), which
10301         is deleted.
10302
10303         * log.c (vlogmsg): New function.
10304
10305         * wget.h (DEBUGP): Use debug_logmsg().
10306
10307         * main.c (hangup): Use it.
10308
10309         * log.c (log_dump): New function.
10310
10311         * utils.h (DO_REALLOC): Use `long' for various sizes.
10312
10313         * http.c (hskip_lws): Use `while', for clarity.
10314         (HTTP_DYNAMIC_LINE_BUFFER): New constant.
10315         (fetch_next_header): Use it instead of DYNAMIC_LINE_BUFFER.
10316
10317         * ftp-basic.c (FTP_DYNAMIC_LINE_BUFFER): New constant.
10318         (ftp_response): Use it instead of DYNAMIC_LINE_BUFFER.
10319
10320         * utils.c (DYNAMIC_LINE_BUFFER): Moved from utils.c.
10321         (LEGIBLE_SEPARATOR): Ditto.
10322         (FILE_BUFFER_SIZE): Ditto.
10323
10324         * retr.c (BUFFER_SIZE): Moved from retr.h.
10325
10326         * log.c: New file.
10327         (logmsg): Moved from utils.c.
10328         (debug_logmsg): New function.
10329
10330         * mswindows.h: Include it here.
10331
10332         * init.c: Ditto.
10333
10334         * utils.c: Don't include <windows.h>.
10335
10336 1998-01-25  Hrvoje Niksic  <hniksic@srce.hr>
10337
10338         * host.c (ftp_getaddress): Ditto.
10339
10340         * main.c (main): Use it.
10341
10342         * utils.h (STRDUP_ALLOCA): New macro.
10343
10344         * init.c: Prepend `wget: ' to error messages printed on stderr.
10345
10346         * utils.c (mkdirhier): Renamed from mymkdir.
10347         (touch): Renamed from my_touch.
10348         (pwd_cuserid): Renamed from my_cuserid().
10349
10350 1998-01-24  Andy Eskilsson  <andy.eskilsson@telelogic.se>
10351
10352         * utils.c (accdir): Process wildcards.
10353         (proclist): New function.
10354         (accdir): Use it to avoid code repetition.
10355
10356 1998-01-24  Hrvoje Niksic  <hniksic@srce.hr>
10357
10358         * recur.c (parse_robots): Respect opt.useragent; use alloca().
10359
10360         * http.c (gethttp): Construct useragent accordingly.
10361
10362         * version.c: Changed version string to numbers-only.
10363
10364         * main.c (print_help): List all the options.
10365
10366         * mswindows.c (windows_main_junk): Initialize argv0 here.
10367
10368 1998-01-24  Karl Heuer  <kwzh@gnu.org>
10369
10370         * netrc.c (search_netrc): Initialize `l' only after processing
10371         netrc.
10372
10373         * main.c (main): Don't trap SIGHUP if it's being ignored.
10374
10375 1998-01-24  Hrvoje Niksic  <hniksic@srce.hr>
10376
10377         * all: Use logmsg().
10378
10379         * utils.c (time_str): Moved from retr.c.
10380         (logmsg): New function.
10381         (logmsg_noflush): Ditto.
10382
10383         * rbuf.c: New file, moved buf_* functions here.
10384
10385         * ftp.c (ftp_expected_bytes): Moved from ftp-basic.c.
10386
10387         * ftp-basic.c (ftp_rest): Use prnum().
10388
10389         * ftp-basic.c: Ditto.
10390
10391         * ftp.c: Use the new reading functions and macros.
10392
10393         * retr.c (buf_initialize): New function.
10394         (buf_initialized_p): Ditto.
10395         (buf_uninitialize): Ditto.
10396         (buf_fd): Ditto.
10397
10398         * http.c (fetch_next_header): Use the BUF_READCHAR macro for
10399         efficiency.
10400         (gethttp): Use alloca() where appropriate.
10401
10402         * retr.c (buf_readchar): Use it.
10403         (buf_peek): Use rstreams.
10404
10405         * retr.h (BUF_READCHAR): New macro.
10406
10407         * init.c (home_dir): Rewritten for clarity.
10408         (init_path): Ditto.
10409
10410         * mswindows.c (ws_backgnd): Made static.
10411         (read_registry): Ditto.
10412         (ws_cleanup): Ditto.
10413         (ws_handler): Ditto.
10414
10415 1998-01-23  Hrvoje Niksic  <hniksic@srce.hr>
10416
10417         * alloca.c: New file.
10418
10419         * Makefile.in (ALLOCA): Define.
10420
10421         * mswindows.c (ws_help): Constify.
10422         (ws_help): Use alloca.
10423
10424         * mswindows.c: Reformat.
10425
10426         * all: Added _(...) annotations for I18N snarfing and translation.
10427
10428         * host.c (ftp_getaddress): Nuke SYSINFO.
10429         (ftp_getaddress): Don't use getdomainname().
10430         (ftp_getaddress): Use uname(), where available.
10431
10432         * http.c (gethttp): Protect a stray fprintf().
10433
10434         * init.c (settime): New function.
10435         (setval): Treat WAIT specially, allowing suffixes like `m' for
10436         minutes, etc.
10437
10438 1998-01-21  Hrvoje Niksic  <hniksic@srce.hr>
10439
10440         * url.c (get_urls_html): Use alloca() for TEMP.
10441
10442 1998-01-21  Jordan Mendelson  <jordy@wserv.com>
10443
10444         * url.c (rotate_backups): New function.
10445
10446         * http.c (gethttp): Ditto.
10447
10448         * ftp.c (getftp): Rotate backups.
10449
10450 1997-12-18  Hrvoje Niksic  <hniksic@srce.hr>
10451
10452         * all: Renamed nmalloc(), nrealloc() and nstrdup() to xmalloc(),
10453         xrealloc() and xstrdup().  Use the new functions.
10454
10455         * url.c (decode_string): Made static.
10456         (has_proto): Ditto.
10457         (parse_dir): Ditto.
10458         (parse_uname): Ditto.
10459         (mkstruct): Ditto.
10460         (construct): Ditto.
10461         (construct_relative): Ditto.
10462
10463         * retr.c (show_progress): Made static.
10464
10465         * recur.c (robots_url): Made static.
10466         (retrieve_robots): Ditto.
10467         (parse_robots): Ditto.
10468         (robots_match): Ditto.
10469
10470         * main.h: Removed.
10471
10472         * main.c (printhelp): Made static.
10473         (hangup): Ditto.
10474
10475         * init.c (comind): Made static.
10476         (defaults): Ditto.
10477         (init_path): Ditto.
10478         (run_wgetrc): Ditto.
10479         (onoff): Ditto.
10480         (setonoff): Ditto.
10481         (setnum): Ditto.
10482         (myatoi): Ditto.
10483         (getperms): Ditto.
10484         (setbytes): Ditto.
10485
10486         * http.c (fetch_next_header): Made static.
10487         (hparsestatline): Ditto.
10488         (hskip_lws): Ditto.
10489         (hgetlen): Ditto.
10490         (hgetrange): Ditto.
10491         (hgettype): Ditto.
10492         (hgetlocation): Ditto.
10493         (hgetmodified): Ditto.
10494         (haccepts_none): Ditto.
10495         (gethttp): Ditto.
10496         (base64_encode_line): Ditto.
10497         (mktime_from_utc): Ditto.
10498         (http_atotm): Ditto.
10499
10500         * html.c (idmatch): Made static.
10501
10502         * host.c (search_host): Made static.
10503         (search_address): Ditto.
10504         (free_hlist): Ditto.
10505
10506         * ftp.c (getftp): Made static.
10507         (ftp_loop_internal): Ditto.
10508         (ftp_get_listing): Ditto.
10509         (ftp_retrieve_list): Ditto.
10510         (ftp_retrieve_dirs): Ditto.
10511         (ftp_retrieve_glob): Ditto.
10512         (freefileinfo): Ditto.
10513         (delelement): Ditto.
10514
10515         * ftp-ls.c (symperms): Made static.
10516         (ftp_parse_unix_ls): Ditto.
10517
10518         * connect.c (select_fd): Made static.
10519
10520         * utils.c (xmalloc): Renamed from nmalloc.
10521         (xrealloc): Renamed from nrealloc.
10522         (xstrdup): Renamed from nstrdup.
10523
10524         * getopt.c (exchange): Use alloca.
10525
10526         * mswindows.c (mycuserid): Use strncpy.
10527
10528         * New files mswindows.c, mswindows.h, sysdep.h.  winjunk.c,
10529         systhings.h, windecl.h and winjunk.h removed.
10530
10531         * mswindows.c (sleep): New function.
10532
10533         * utils.c: Include <windows.h> under Windows.
10534
10535 1997-06-12  Darko Budor  <dbudor@zesoi.fer.hr>
10536
10537         * url.h (URL_UNSAFE): Change default under Windows.
10538
10539         * retr.c (retrieve_from_file): Respect opt.delete_after.
10540
10541         * main.c (main): Call ws_help on Windows.
10542
10543         * winjunk.c (windows_main_junk): New function.
10544
10545         * main.c (main): Junk-process argv[0].
10546
10547         * http.c (mktime_from_utc): Return -1 if mktime failed.
10548
10549         * http.c (http_loop): Ditto.
10550
10551         * ftp.c (ftp_loop_internal): Change title on Windows when using a
10552         new URL.
10553
10554         * winjunk.c (getdomainname): Lots of functions.
10555
10556 1997-06-12  Hrvoje Niksic  <hniksic@srce.hr>
10557
10558         * cmpt.c (strptime_internal): Handle years more correctly for
10559         `%y'.
10560
10561 1997-06-09  Mike Thomas <mthomas@reality.ctron.com>
10562
10563         * http.c (gethttp): Allocate enough space for
10564         `Proxy-Authorization' header.
10565
10566 1997-05-10  Hrvoje Niksic  <hniksic@srce.hr>
10567
10568         * version.c: Wget/1.4.5 is released.
10569
10570 1997-05-10  Hrvoje Niksic  <hniksic@srce.hr>
10571
10572         * retr.c (get_contents): Check return value of fwrite more
10573         carefully.
10574
10575 1997-03-30  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
10576
10577         * cmpt.c (strptime_internal) [case 'Y']: Always subtract 1900 from
10578         year, regardless of century.
10579
10580 1997-03-30  Hrvoje Niksic  <hniksic@srce.hr>
10581
10582         * utils.c (isfile): Use `lstat' instead of `stat'.
10583
10584 1997-03-29  Hrvoje Niksic  <hniksic@srce.hr>
10585
10586         * utils.c (numdigit): Use explicit test.
10587
10588 1997-03-21  Hrvoje Niksic  <hniksic@srce.hr>
10589
10590         * http.c (http_loop): Always use `url_filename' to get u->local.
10591
10592 1997-03-20  Hrvoje Niksic  <hniksic@srce.hr>
10593
10594         * url.c: Recognize https.
10595
10596 1997-03-13  Hrvoje Niksic  <hniksic@srce.hr>
10597
10598         * recur.c (recursive_retrieve): Lowercase just the host name.
10599
10600 1997-03-09  Hrvoje Niksic  <hniksic@srce.hr>
10601
10602         * url.c (get_urls_file): Use the correct test.
10603         (get_urls_html): Ditto.
10604
10605 1997-03-07  Hrvoje Niksic  <hniksic@srce.hr>
10606
10607         * connect.c: Reverted addrlen to int.
10608
10609         * init.c (parse_line): Check for -1 instead of NONE.
10610
10611         * version.c: Changed version to 1.4.5.
10612
10613 1997-02-17  Hrvoje Niksic  <hniksic@srce.hr>
10614
10615         * init.c: New option netrc.
10616         (initialize): Don't parse .netrc.
10617
10618         * cmpt.c (recursive): Return rp.
10619         (strptime_internal): Match the long strings first, the abbreviated
10620         second.
10621
10622 1997-02-16  Hrvoje Niksic  <hniksic@srce.hr>
10623
10624         * http.c (check_end): New function.
10625         (http_atotm): Use it.
10626
10627 1997-02-13  gilles Cedoc  <gilles@cedocar.fr>
10628
10629         * http.c (gethttp): Use them.
10630
10631         * init.c: New options proxy_user and proxy_passwd.
10632
10633 1997-02-14  Hrvoje Niksic  <hniksic@srce.hr>
10634
10635         * ftp.c (ftp_retrieve_list): Create links even if not relative.
10636
10637 1997-02-10  Hrvoje Niksic  <hniksic@srce.hr>
10638
10639         * recur.c (recursive_retrieve): Lowercase the host name, if the
10640         URL is not "optimized".
10641
10642         * host.c (realhost): Return l->hostname, even if it matches with
10643         host.
10644
10645 1997-02-10  Marin Purgar  <pmc@asgard.hr>
10646
10647         * connect.c: Make addrlen size_t instead of int.
10648         (conaddr): Ditto.
10649
10650 1997-02-09  Gregor Hoffleit  <flight@mathi.uni-heidelberg.DE>
10651
10652         * systhings.h: Define S_ISLNK on NeXT too.
10653
10654 1997-02-09  Hrvoje Niksic  <hniksic@srce.hr>
10655
10656         * version.c: Released 1.4.3.
10657
10658         * url.c: Futher update to list of protostrings.
10659         (skip_proto): Skip `//' correctly for FTP and HTTP.
10660
10661         * url.c (get_urls_html): Handle bogus `http:' things a little
10662         different.
10663
10664         * main.c (main): Removed `follow-ftp' from `f'.
10665         (main): Dumped the `prefix-files' and `file-prefix' options and
10666         features; old and bogus.
10667         (main): Exit on failed setval() in `-e'.
10668
10669         * http.c (fetch_next_header): Use it to detect header continuation
10670         correctly.
10671
10672         * retr.c (buf_peek): New function.
10673
10674 1997-02-08  Hrvoje Niksic  <hniksic@srce.hr>
10675
10676         * wget.h: Include time.h and stuff.
10677
10678 1997-02-08  Roger Beeman  <beeman@cisco.com>
10679
10680         * ftp.c: Include <time.h>
10681
10682 1997-02-07  Hrvoje Niksic  <hniksic@srce.hr>
10683
10684         * url.c (findurl): Would read over buffer limits.
10685
10686 1997-02-06  Hrvoje Niksic  <hniksic@srce.hr>
10687
10688         * ftp-ls.c (ftp_parse_unix_ls): Allow spaces in file names.
10689
10690 1997-02-05  Hrvoje Niksic  <hniksic@srce.hr>
10691
10692         * http.c (http_atotm): Initialize tm.is_dst.
10693
10694 1997-02-02  Hrvoje Niksic  <hniksic@srce.hr>
10695
10696         * http.c (gethttp): Don't print the number of retrieved headers.
10697
10698         * main.c (main): New option `--no-clobber', alias for `-nc'.
10699
10700         * url.c: Recognize `https://'.
10701
10702 1997-02-01  Hrvoje Niksic  <hniksic@srce.hr>
10703
10704         * host.c (herrmsg): Don't use h_errno.
10705
10706 1997-01-30  Hrvoje Niksic  <hniksic@srce.hr>
10707
10708         * host.c (accept_domain): Use it.
10709
10710         * main.c (main): New option `--exclude-domains'.
10711
10712         * retr.c (retrieve_url): Use it.
10713         (retrieve_url): Bail out when an URL is redirecting to itself.
10714
10715         * url.c (url_equal): New function.
10716
10717 1997-01-29  Hrvoje Niksic  <hniksic@srce.hr>
10718
10719         * connect.c: Include arpa/inet.h instead of arpa/nameser.h.
10720
10721         * http.c (mk_utc_time): New function.
10722         (http_atotm): Use it; handle time zones correctly.
10723
10724 1997-01-28  Hrvoje Niksic  <hniksic@srce.hr>
10725
10726         * http.c: Ditto.
10727
10728         * ftp-basic.c: Use it instead of WRITE.
10729
10730         * connect.c (iwrite): New function.
10731
10732 1997-01-27  Hrvoje Niksic  <hniksic@srce.hr>
10733
10734         * cmpt.c (mktime): New function.
10735
10736         * netrc.c: Include <sys/types.h>.
10737
10738         * main.c (main): Wouldn't recognize --spider.
10739
10740         * retr.c (rate): Use `B', `KB' and `MB'.
10741         (reset_timer,elapsed_time): Moved from utils.c.
10742
10743         * ftp.c (ftp_retrieve_list): Ditto.
10744
10745         * http.c (http_loop): Don't touch the file if opt.dfp.
10746
10747 1997-01-24  Hrvoje Niksic  <hniksic@srce.hr>
10748
10749         * cmpt.c: New file.
10750
10751         * ftp.c (ftp_retrieve_glob): New argument semantics.
10752         (ftp_retrieve_dirs): Use it.
10753         (ftp_loop): Ditto.
10754
10755         * html.c (htmlfindurl): Recognize `'' as the quote char.
10756
10757 1997-01-23  Hrvoje Niksic  <hniksic@srce.hr>
10758
10759         * ftp.c (ftp_loop_internal): Use it.
10760
10761         * utils.c (remove_link): New function.
10762
10763 1997-01-22  Hrvoje Niksic  <hniksic@srce.hr>
10764
10765         * retr.c (retrieve_url): Require STRICT redirection URL.
10766
10767         * url.c (parseurl): New argument STRICT.
10768
10769         * http.c (hparsestatline): Be a little-bit less strict about
10770         status line format.
10771
10772 1997-01-21  Hrvoje Niksic  <hniksic@srce.hr>
10773
10774         * http.c (gethttp): Use it.
10775
10776         * main.c (main): Don't use '<digit>' as options.
10777
10778         * init.c: New option ignore_length.
10779
10780         * http.c (gethttp): Ditto.
10781         (http_loop): Check for redirection without Location:.
10782         (gethttp): Don't print Length unless RETROKF.
10783
10784         * ftp.c (getftp): Use it.
10785
10786         * url.c (mkalldirs): New function.
10787
10788         * utils.c (mymkdir): Don't check for existing non-directory.
10789
10790         * url.c (mkstruct): Don't create the directory.
10791
10792 1997-01-20  Hrvoje Niksic  <hniksic@srce.hr>
10793
10794         * init.c (setval): Removed NO_RECURSION checks.
10795
10796 1997-01-19  Hrvoje Niksic  <hniksic@srce.hr>
10797
10798         * version.c: "Released" 1.4.3-pre2.
10799
10800         * recur.c (recursive_retrieve): Bypass host checking only if URL
10801         is ftp AND parent URL is not ftp.
10802
10803         * ftp-basic.c (ftp_request): Print out Turtle Power.
10804
10805         * ftp.c (ftp_loop): Call ftp_retrieve_glob with 0 if there's no
10806         wildcard.
10807         (ftp_retrieve_glob): Call ftp_loop_internal even on empty list, if
10808         not glob.
10809
10810         * http.c (gethttp): Be a little bit smarter about status codes.
10811
10812         * recur.c (recursive_retrieve): Always reset opt.recursive when
10813         dealing with FTP.
10814
10815 1997-01-18  Hrvoje Niksic  <hniksic@srce.hr>
10816
10817         * retr.c (retrieve_url): New variable location_changed; use it for
10818         tests instead of mynewloc.
10819         (retrieve_url): Allow heuristic adding of html.
10820
10821         * url.c (url_filename): Don't use the `%' in Windows file names.
10822
10823         * http.c (http_loop): Always time-stamp the local file.
10824
10825         * http.c (http_loop): Ditto.
10826
10827         * ftp.c (ftp_retrieve_list): Use it.
10828
10829         * utils.c (my_touch): New function.
10830
10831         * ftp.c (ftp_retrieve_list): Use #ifdef HAVE_STRUCT_UTIMBUF
10832         instead of #ifndef NeXT.
10833
10834         * utils.c (strptime): New version, by Ulrich Drepper.
10835
10836 1997-01-17  Hrvoje Niksic  <hniksic@srce.hr>
10837
10838         * http.c (haccepts_none): Renamed from `haccepts_bytes'.
10839         (gethttp): If haccepts_none(), disable ACCEPTRANGES.
10840         (http_loop): Would remove ACCEPTRANGES.
10841
10842         * ftp.c (getftp): Call ftp_list with NULL.
10843
10844 1997-01-15  Hrvoje Niksic  <hniksic@srce.hr>
10845
10846         * html.c (ftp_index): Don't print minutes and seconds if we don't
10847         know them; beautify the output.
10848
10849         * ftp.c (getftp): Don't close the socket on FTPNSFOD.
10850
10851 1997-01-14  Hrvoje Niksic  <hniksic@srce.hr>
10852
10853         * utils.c (strptime): New function.
10854         (strptime): Don't use get_alt_number.
10855         (strptime): Don't use locale.
10856         (match_string): Made it a function.
10857
10858 1997-01-12  Hrvoje Niksic  <hniksic@srce.hr>
10859
10860         * http.c (http_atotm): New function.
10861         (http_loop): Use it.
10862
10863         * atotm.c: Removed from the distribution.
10864
10865         * http.c (base64_encode_line): Rewrite.
10866
10867 1997-01-09  Hrvoje Niksic  <hniksic@srce.hr>
10868
10869         * ftp.c (getftp): Use ftp_expected_bytes; print size.
10870
10871         * ftp-basic.c (ftp_response): Use ftp_last_respline.
10872         (ftp_expected_bytes): New function.
10873
10874         * ftp.c (getftp): Print the unauthoritative file length.
10875
10876         * ftp-ls.c: Renamed from ftp-unix.c.
10877         (ftp_parse_ls): Moved from ftp.c.
10878         (ftp_parse_unix_ls): Recognize seconds in time spec.
10879         (ftp_parse_unix_ls): Recognize year-less dates of the previous
10880         year.
10881
10882 1997-01-08  Hrvoje Niksic  <hniksic@srce.hr>
10883
10884         * ftp-basic.c: Don't declare errno if #defined.
10885
10886         * host.c (ftp_getaddress): Check for sysinfo legally.
10887
10888 1997-01-08  Darko Budor  <dbudor@diana.zems.fer.hr>
10889
10890         * connect.c (iread): Use READ.
10891
10892 1996-12-23  Hrvoje Niksic  <hniksic@srce.hr>
10893
10894         * url.c: Recognize finger, rlogin, tn3270, mid and cid as valid
10895         schemes.
10896
10897 1996-12-22  Hrvoje Niksic  <hniksic@srce.hr>
10898
10899         * host.c (ftp_getaddress): Allow `.' in hostname.
10900
10901 1996-12-26  Darko Budor <dbudor@zems.fer.hr>
10902
10903         * wget.h: READ and WRITE macros for use instead of read and write
10904         on sockets, grep READ *.c, grep WRITE *.c
10905
10906         * wsstartup.c: new file - startup for winsock
10907
10908         * wsstartup.h: new file
10909
10910         * win32decl.h: new file - fixup for <errno.h> and winsock trouble
10911
10912         * configure.bat: Configure utility for MSVC
10913
10914         * src/Makefile.ms,config.h.ms: new files for use with MSVC 4.x
10915
10916 1996-12-22  Hrvoje Niksic  <hniksic@srce.hr>
10917
10918         * version.c: Released 1.4.3-pre.
10919
10920         * utils.c (prnum): Accept long.
10921         (legible): Use prnum().
10922
10923         * connect.c (make_connection): Accept port as short.
10924         (bindport): Ditto.
10925
10926         * http.c (gethttp): Use search_netrc.
10927
10928 1996-12-21  Hrvoje Niksic  <hniksic@srce.hr>
10929
10930         * ftp.c (getftp): Use search_netrc.
10931
10932         * netrc.c (free_netrc): New function.
10933
10934         * init.c (home_dir): New function.
10935
10936         * url.c (convert_links): Allow REL2ABS changes.
10937
10938 1996-12-21  Gordon Matzigkeit  <gord@gnu.ai.mit.edu>
10939
10940         * netrc.c: New file.
10941         (parse_netrc, maybe_add_to_list): New functions.
10942
10943 1996-12-17  Hrvoje Niksic  <hniksic@srce.hr>
10944
10945         * retr.c (retrieve_url): Reset opt.recursion before calling
10946         ftp_loop if it is reached through newloc.
10947
10948         * init.c (run_wgetrc): Print the wgetrc path too, when reporting
10949         error; don't use "Syntax error", since we don't know if it is
10950         really a syntax error.
10951
10952 1996-12-16  Hrvoje Niksic  <hniksic@srce.hr>
10953
10954         * utils.c (acceptable): Extract the filename part of the path.
10955
10956         * recur.c (recursive_retrieve): Call acceptable() with the right
10957         argument; would bug out on wildcards.
10958
10959         * init.c (parse_line): Likewise.
10960
10961         * html.c (htmlfindurl): Cast to char * when calling stuff.
10962
10963 1996-12-15  Hrvoje Niksic  <hniksic@srce.hr>
10964
10965         * ftp.c (getftp): Use ftp_pasv.
10966
10967         * ftp-basic.c (ftp_request): Accept NULL value.
10968         (ftp_pasv): New function.
10969
10970         * options.h (struct options): Add passive FTP option.
10971
10972 1996-12-15  Hrvoje Niksic  <hniksic@srce.hr>
10973
10974         * url.c (parseurl): Debug output.
10975
10976         * utils.c (path_simplify): New one, adapted from bash's
10977         canonicalize_pathname().
10978
10979 1996-12-14  Hrvoje Niksic  <hniksic@srce.hr>
10980
10981         * ftp.c (getftp): Don't discard the buffer.
10982
10983         * retr.c (get_contents): New parameter nobuf.
10984
10985 1996-12-13  Shawn McHorse  <riffraff@txdirect.net>
10986
10987         * html.c (htmlfindurl): Recognize <meta contents="d; URL=...".
10988
10989         * init.c (setval): Strip the trailing slashes on CVECDIR.
10990
10991 1996-12-13  Hrvoje Niksic  <hniksic@srce.hr>
10992
10993         * init.c: Make excludes and includes under CVECDIR instead of
10994         CVEC.
10995
10996 1996-12-13  Shawn McHorse  <riffraff@txdirect.net>
10997
10998         * url.c (get_urls_html): Skip "http:".
10999
11000 1996-12-13  Hrvoje Niksic  <hniksic@srce.hr>
11001
11002         * utils.c (strcasecmp): From glibc.
11003         (strncasecmp): Also.
11004         (strstr): Also.
11005
11006         * url.c: Added javascript: to the list of URLs prefixes.
11007
11008 1996-12-12  Shawn McHorse  <riffraff@txdirect.net>
11009
11010         * recur.c (retrieve_robots): Print the warning message only if
11011         verbose.
11012
11013 1996-12-12  Gregor Hoffleit  <flight@mathi.uni-heidelberg.DE>
11014
11015         * ftp.c (ftp_retrieve_list): Use NeXT old utime interface.
11016
11017 1996-12-12  Hrvoje Niksic  <hniksic@srce.hr>
11018
11019         * systhings.h: New file.
11020
11021         * ../configure.in: Check for utime.h
11022
11023         * ftp.c: Check whether we have unistd.h.
11024
11025 1996-11-27  Hrvoje Niksic  <hniksic@srce.hr>
11026
11027         * recur.c (recursive_retrieve): Send the canonical URL as referer.
11028         (recursive_retrieve): Call get_urls_html with the canonical URL.
11029
11030 1996-12-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11031
11032         * (configure.in, config.h.in, src/Makefile.in, src/*.[ch]): Add
11033         ansi2knr support for compilers which don't support ANSI style
11034         function prototypes and signatures.
11035
11036         * (aclocal.m4, src/ansi2knr.c, src/ansi2knr.1): New files.
11037
11038 1996-11-26  Hrvoje Niksic  <hniksic@srce.hr>
11039
11040         * url.c: Use it; Recognize paths ending with "." and ".." as
11041         directories.
11042         (url_filename): Append .n whenever file exists and could be a
11043         directory.
11044
11045         * url.h (ISDDOT): New macro.
11046
11047         * init.c (parse_line): Use unsigned char.
11048
11049         * url.c (get_urls_html): Cast to unsigned char * when calling
11050         htmlfindurl.
11051
11052         * html.c (htmlfindurl): Use unsigned char.
11053
11054         * version.c: Changed version to 1.4.3.
11055
11056 1996-11-25  Hrvoje Niksic  <hniksic@srce.hr>
11057
11058         * version.c: Released 1.4.2.
11059
11060         * ftp.c (getftp): Simplified assertion.
11061         (ftp_loop_internal): Remove symlink before downloading.
11062         (ftp_retrieve_list): Unlink the symlink name before attempting to
11063         create a symlink!
11064
11065         * options.h (struct options): Renamed print_server_response to
11066         server_response.
11067
11068         * ftp.c (rel_constr): Removed.
11069         (ftp_retrieve_list): Don't use it.
11070         (ftp_retrieve_list): Use opt.retr_symlinks.
11071
11072 1996-11-24  Hrvoje Niksic  <hniksic@srce.hr>
11073
11074         * main.c (main): New option retr_symlinks.
11075
11076         * url.c (convert_links): Print verbose message.
11077
11078 1996-11-24  Hrvoje Niksic  <hniksic@srce.hr>
11079
11080         * http.c (http_loop): Reset newloc in the beginning of function;
11081         would cause FMR in retrieve_url.
11082
11083 1996-11-23  Hrvoje Niksic  <hniksic@srce.hr>
11084
11085         * recur.c (convert_all_links): Find the URL of each HTML document,
11086         and feed it to get_urls_html; would bug out.
11087         (convert_all_links): Check for l2 instead of dl; removed dl.
11088
11089         * url.c (convert_links): Don't refer to freed newname.
11090
11091         * recur.c (recursive_retrieve): Add this_url to urls_downloaded.
11092
11093         * main.c (main): Print the OS_TYPE in the debug output, too.
11094
11095         * recur.c (recursive_retrieve): Check for opt.delete_after.
11096
11097         * main.c (main): New option delete-after.
11098
11099         * init.c (setval): Cleaned up.
11100
11101 1996-11-21  Hrvoje Niksic  <hniksic@srce.hr>
11102
11103         * Makefile.in (wget): Make `wget' the default target.
11104
11105         * ftp.c (ftp_loop_internal): Move noclobber checking out of the
11106         loop.
11107         (ftp_retrieve_list): Warn about non-matching sizes.
11108
11109         * http.c (http_loop): Made -nc non-dependent on opt.recursive.
11110
11111         * init.c (setnum): Renamed from setnuminf; New argument flags.
11112         (setval): Use it.
11113
11114         * main.c (main): Sorted the options.
11115         (main): New option --wait.
11116
11117 1996-11-21  Shawn McHorse  <riffraff@txdirect.net>
11118
11119         * html.c (htmlfindurl): Reset s->in_quote after getting out of
11120         quotes.
11121
11122 1996-11-20  Hrvoje Niksic  <hniksic@srce.hr>
11123
11124         * version.c: Changed version to 1.4.2.
11125
11126 1996-11-20  Hrvoje Niksic  <hniksic@srce.hr>
11127
11128         * version.c: Released 1.4.1.
11129
11130         * html.c (html_quote_string): New function.
11131         (ftp_index): Use it.
11132         (htmlfindurl): A more gentle ending debug message.
11133
11134         * ftp.c (ftp_loop): Check for opt.htmlify.
11135
11136         * init.c: New command htmlify.
11137
11138         * ftp.c (getftp): Nicer error messages, with `'-encapsulated
11139         strings.
11140         (ftp_loop): Print size of index.html.
11141
11142         * init.c (setval): Implement "styles".
11143
11144         * main.c (main): New option dotstyle.
11145
11146 1996-11-19  Hrvoje Niksic  <hniksic@srce.hr>
11147
11148         * ftp.c (getftp): Close the master socket in case of errors, after
11149         bindport().
11150
11151         * connect.c (bindport): Initialize msock to -1.
11152
11153         * ftp.c (getftp): Initialize dtsock to -1.
11154
11155         * connect.c (closeport): Don't close sock if sock == -1.
11156
11157 1996-11-18  Hrvoje Niksic  <hniksic@srce.hr>
11158
11159         * init.c (setnuminf): Nuked default value -- just leave unchanged.
11160         (setval): Don't send default values.
11161         (defaults): Use DEFAULT_TIMEOUT -- aaargh.
11162
11163         * options.h (struct options): Use long for dot_bytes.
11164
11165         * init.c (setquota): Renamed to setbytes.
11166         (setval): Use setbytes on DOTBYTES.
11167
11168 1996-11-17  Hrvoje Niksic  <hniksic@srce.hr>
11169
11170         * ftp.c (getftp): Initialize con->dltime.
11171
11172         * recur.c (recursive_retrieve): Use same_host instead of
11173         try_robots; simply load robots_txt whenever the host is changed.
11174         (recursive_retrieve): Free forbidden before calling parse_robots.
11175
11176 1996-11-16  Hrvoje Niksic  <hniksic@srce.hr>
11177
11178         * retr.c (show_progress): Use them.
11179
11180         * options.h (struct options): New options dot_bytes, dots_on_line
11181         and dot_spacing.
11182
11183 1996-11-16  Mark Boyns  <boyns@sdsu.edu>
11184
11185         * recur.c (recursive_retrieve): Retrieve directories regardless of
11186         acc/rej rules; check for empty u->file.
11187
11188 1996-11-14  Hrvoje Niksic  <hniksic@srce.hr>
11189
11190         * init.c (setval): Use it.
11191
11192         * utils.c (merge_vecs): New function.
11193
11194         * init.c (setval): Reset the list-type functions when encountering
11195         "".
11196
11197 1996-11-14  Shawn McHorse  <riffraff@txdirect.net>
11198
11199         * recur.c (recursive_retrieve): Use base_url instead of this_url
11200         for no_parent.
11201
11202 1996-11-14  Shawn McHorse  <riffraff@txdirect.net>
11203
11204         * html.c (htmlfindurl): Reset s->in_quote after exiting the quote.
11205
11206 1996-11-13  Hrvoje Niksic  <hniksic@srce.hr>
11207
11208         * utils.c (sepstring): Rewrote; don't use strtok.
11209
11210         * recur.c (recursive_retrieve): Enter assorted this_url to slist
11211         when running the first time.
11212         (retrieve_robots): Warn to ignore errors when robots are loaded.
11213
11214         * utils.c (load_file): Moved from url.c.
11215
11216         * http.c: Made static variables const too in h* functions.
11217
11218         * main.c (main): Renamed --continue-ftp to --continue.
11219
11220         * recur.c (recursive_retrieve): Use it.
11221
11222         * utils.c (frontcmp): New function.
11223
11224         * url.c (accdir): New function.
11225
11226         * html.c (htmlfindurl): Recognize <area href=...>.
11227
11228         * ftp.c (ftp_retrieve_dirs): Implemented opt.includes.
11229
11230         * init.c (setval): Free the existing opt.excludes and
11231         opt.includes, if available.
11232
11233         * main.c (main): New option -I.
11234
11235 1996-11-12  Hrvoje Niksic  <hniksic@srce.hr>
11236
11237         * ftp.c (ftp_retrieve_glob): Do not weed out directories.
11238
11239         * version.c: Changed version to 1.4.1.
11240
11241 1996-11-11  Hrvoje Niksic  <hniksic@srce.hr>
11242
11243         * version.c: Released 1.4.0.
11244
11245 1996-11-10  Hrvoje Niksic  <hniksic@srce.hr>
11246
11247         * main.c (main): Free com and val after parse_line.
11248         (printhelp): Reorder the listing.
11249
11250         * http.c: More robust header parsing.
11251
11252         * http.c: Allow any number of spaces, or no spaces, precede ':'.
11253         (hskip_lws): New function.
11254         (haccepts_bytes): New function.
11255         (gethttp): Use it.
11256
11257         * init.c (setval): Check header sanity.
11258         (setval): Allow resetting of headers.
11259
11260 1996-11-10  Hrvoje Niksic  <hniksic@srce.hr>
11261
11262         * http.c (http_loop): Don't use has_wildcards.
11263
11264         * http.c (gethttp): Free all_headers -- would leak.
11265
11266         * recur.c (recursive_retrieve): Initialize depth to 1 instead of
11267         0 -- this fixes a long-standing bug in -rl.
11268
11269 1996-11-09  Hrvoje Niksic  <hniksic@srce.hr>
11270
11271         * ftp.c: Use -1 as "impossible" value for con->fd.
11272
11273         * url.h (URL_SEPARATOR): Don't treat `*' and `+' as separators.
11274
11275         * init.c (parse_line): Use isalpha.
11276
11277         * ftp-unix.c: Use HAVE_UNISTD_H.
11278
11279         * mtch.c (has_wildcards): Don't match \.
11280
11281         * http.c (http_loop): Warn on HTTP wildcard usage.
11282
11283 1996-11-08  Hrvoje Niksic  <hniksic@srce.hr>
11284
11285         * url.c (url_filename): Do not create numbered suffixes if
11286         opt.noclobber -- would bug out on -nc.
11287
11288 1996-11-07  Hrvoje Niksic  <hniksic@srce.hr>
11289
11290         * recur.c (parse_robots): Don't chuck out the commands without
11291         arguments (`Disallow:<empty>' didn't work).
11292         (parse_robots): Compare versions lowercase.
11293         (parse_robots): Match on base_version, not version_string!
11294         (parse_robots): Handle comments properly.
11295         (parse_robots): Match versions in a sane way.
11296
11297         * init.c: Print nicer error messages.
11298
11299         * version.c: Changed version to 1.4.0.
11300
11301 1996-11-06  Hrvoje Niksic  <hniksic@srce.hr>
11302
11303         * version.c: Released 1.4.0-test2.
11304
11305         * init.c (run_wgetrc): Close fp.
11306
11307         * ftp.c (ftp_retrieve_dirs): Allocate the correct length for
11308         u->dir.
11309
11310 1996-11-06  Hrvoje Niksic  <hniksic@srce.hr>
11311
11312         * init.c (setquota): Allow inf as quota specification.
11313
11314 1996-11-05  Hrvoje Niksic  <hniksic@srce.hr>
11315
11316         * ftp.c (ftp_retrieve_dirs): Return QUOTEXC if quota exceeded.
11317         (ftp_retrieve_glob): Return QUOTEXC on quota exceeded.
11318
11319         * main.c (main): Check for quota by comparison with downloaded
11320         stuff, not from status.
11321
11322         * connect.c (select_fd): Should compile on HPUX without warnings now.
11323
11324         * ftp.c (ftp_get_listing): Check whether ftp_loop_internal
11325         returned RETROK.
11326
11327 1996-11-04  Hrvoje Niksic  <hniksic@srce.hr>
11328
11329         * ftp.c (ftp_retrieve_glob): Print the pattern nicely.
11330         (getftp): Return FTPRETRINT on control connection error.
11331
11332         * html.c (htmlfindurl): Recognize <embed src=...> and
11333         <bgsound src=...>.
11334         (ftp_index): Handle username and password correctly.
11335
11336         * main.c (main): Made `-np' a synonim for --no-parent.
11337
11338 1996-11-02  Hrvoje Niksic  <hniksic@srce.hr>
11339
11340         * ftp.c (ftp_loop): Check for opt.ftp_glob too before calling
11341         ftp_retrieve_glob.
11342
11343         * version.c: Changed version to 1.4.0-test2.
11344
11345 1996-11-02  Hrvoje Niksic  <hniksic@srce.hr>
11346
11347         * version.c: Released 1.4.0-test1.
11348
11349         * url.c (str_url): Don't use sprintf when creating %2F-prefixed
11350         directory.
11351         (convert_links): Removed definition of make_backup.
11352
11353         * http.h: Removed definition of MAX_ERROR_LENGTH.
11354
11355         * host.c (ftp_getaddress): Check for "(none)" domains.
11356
11357         * ftp.c (ftp_retrieve_dirs): Docfix.
11358
11359         * http.c (gethttp): Use ou->referer instead of u->referer.
11360
11361         * retr.c (retrieve_url): Reset u to avoid freeing pointers twice;
11362         this was known to cause coredumps on Linux.
11363
11364         * html.c (ftp_index): Cast the argument to local_time to time_t *.
11365
11366 1996-11-01  Hrvoje Niksic  <hniksic@srce.hr>
11367
11368         * connect.c (select_fd): Use exceptfds -- once and for all.
11369
11370         * retr.c (retrieve_from_file): Free filename after
11371         recursive_retrieve.
11372         (retrieve_from_file): Send RFIRST_TIME to recursive_retrieve on
11373         first-time retrieval.
11374         (retrieve_from_file): Return uerr_t; new argument, count.
11375         (retrieve_from_file): Break on QUOTEXC.
11376
11377         * init.c (setquota): Fixed a bug that caused rejection of
11378         non-postfixed values..
11379
11380 1996-10-30  Hrvoje Niksic  <hniksic@srce.hr>
11381
11382         * version.c: Changed name to wget.
11383
11384         * connect.c (iread): Smarter use of select.
11385         (select_fd): Set errno on timeout.  If not timeout, return 1
11386         instead of 0.
11387
11388 1996-10-29  Hrvoje Niksic  <hniksic@srce.hr>
11389
11390         * ftp.c (ftp_loop_internal): Don't use con->cmd before
11391         establishing it.
11392
11393 1996-10-26  Hrvoje Niksic  <hniksic@srce.hr>
11394
11395         * http.c (gethttp): Send correct referer when using proxy.
11396         (gethttp): Use struct urlinfo ou to access the relevant data; send
11397         correct authorization in all cases.
11398
11399         * host.c (same_host): Use skip_uname to skip username and
11400         password.
11401
11402         * url.c (skip_uname): New function.
11403         (parseurl): Use it.
11404
11405         * host.c (same_host): Do not assume HTTP -- same_host should now
11406         be totally foolproof.
11407
11408         * url.c (skip_proto): New function.
11409         (parse_uname): Use it.
11410
11411         * http.c (gethttp): Create local user and passwd from what is
11412         given.
11413
11414         * url.c (parseurl): Check for HTTP username and password too.
11415
11416 1996-10-25  Hrvoje Niksic  <hniksic@srce.hr>
11417
11418         * config.h.in: Removed #define gethostbyname R...
11419
11420 1996-10-22  Hrvoje Niksic  <hniksic@srce.hr>
11421
11422         * version.c: Changed version to 1.4.0-test1.
11423
11424 1996-10-21  Hrvoje Niksic  <hniksic@srce.hr>
11425
11426         * version.c: "Released" 1.4b29.
11427
11428         * recur.c (recursive_retrieve): Check for no_parent.
11429
11430         * init.c (setval): Option update.
11431
11432         * main.c (main): New option no-parent.
11433
11434         * options.h (struct options): New variable no_parent.
11435
11436         * recur.c (recursive_retrieve): Only files are checked for
11437         opt.accepts and opt.rejects.
11438         (recursive_retrieve): Check directories for opt.excludes.
11439         (recursive_retrieve): Make the dir absolute when checking
11440         opt.excludes.
11441
11442         * html.c (htmlfindurl): Recognize <applet code=...> and <script
11443         src=...>
11444
11445 1996-10-18  Hrvoje Niksic  <hniksic@srce.hr>
11446
11447         * ftp.c (getftp): Do not line-break assert entries at all.
11448         (ftp_retrieve_dirs): docfix.
11449
11450         * connect.c (select_fd): Use fd + 1 as nfds.
11451
11452         * version.c: Changed version to 1.4b29.
11453
11454 1996-10-18  Hrvoje Niksic  <hniksic@srce.hr>
11455
11456         * version.c: "Released" 1.4b28.
11457
11458         * ftp.c (ftp_loop_internal): Check whether f->size == len and
11459         don't continue the loop if it is.
11460         (ftp_get_listing): Remove list_filename on unsuccesful loop.
11461
11462 1996-10-17  Hrvoje Niksic  <hniksic@srce.hr>
11463
11464         * ftp.c (ftp_loop_internal): Use strcpy to initialize tmp.
11465         (getftp): Do not use multiline assert.
11466
11467         * http.c (hparsestatline): Use mjr and mnr instead of major and
11468         minor, which don't compile on Ultrix.
11469         (http_loop): Use strcpy() to initialize tmp.
11470
11471         * all: Geturl -> Fetch
11472
11473 1996-10-17  Hrvoje Niksic  <hniksic@srce.hr>
11474
11475         * recur.c (parse_robots): Fixed an off-by-one bug when looking for
11476         ':'.
11477
11478         * html.c (htmlfindurl): Fixed several possible off-by-one bugs by
11479         moving `bufsize &&' to the beginning of each check in for-loops.
11480
11481         * recur.c (parse_robots): Close fp on exit.
11482
11483         * url.c (mymkdir): Check for each directory before creating.
11484
11485 1996-10-16  Hrvoje Niksic  <hniksic@srce.hr>
11486
11487         * version.c: Changed version to 1.4b28.
11488
11489 1996-10-16  Hrvoje Niksic  <hniksic@srce.hr>
11490
11491         * version.c: "Released" 1.4b27.
11492
11493         * init.c (parse_line): Use isspace.
11494         (parse_line): Free *com on all errors.
11495
11496         * ftp.c (ftp_loop): Change FTPOK to RETROK before exiting.
11497         (delelement): Use next instead of f->next and prev instead of
11498         f->prev.
11499         (delelement): Free the members of the deleted element.
11500
11501         * http.c (http_loop): Do not return RETROK on code != 20x.
11502
11503         * init.c (cleanup): Free opt.user_header.
11504         (cleanup): Free opt.domains.
11505
11506         * url.c (freelists): Moved to cleanup().
11507
11508         * http.c (hparsestatline): Docfix.
11509
11510         * main.c (main): Return with error status on unsuccesful
11511         retrieval.
11512
11513         * init.c (setval): Do not remove listing when mirroring.
11514
11515         * url.c (url_filename): Use opt.fileprefix.
11516
11517         * ftp.c (ftp_get_listing): Use url_filename to get filename for
11518         .listing.
11519
11520         * main.c (main): New option: -rn.
11521
11522 1996-10-15  Hrvoje Niksic  <hniksic@srce.hr>
11523
11524         * Makefile.in (RM): Added RM = rm -f.
11525
11526         * host.c (clean_hosts): New function.
11527         (free_hlist): Just free the list, no reset.
11528
11529         * version.c: Changed version to 1.4b27.
11530
11531 1996-10-13  Hrvoje Niksic  <hniksic@srce.hr>
11532
11533         * version.c: "Released" 1.4b26.
11534
11535         * retr.c (retrieve_from_file): If call get_urls_html with
11536         opt.spider to make it silent in spider mode.
11537
11538         * url.c (str_url): Use CLEANDUP instead of URL_CLEANSE.
11539
11540         * url.h (CLEANDUP): New macro.
11541
11542         * http.c (gethttp): Fixed a bug that freed location only when it
11543         was NULL.
11544
11545         * retr.c (retrieve_url): Free url if it will not be stored,
11546         i.e. newloc is NULL.
11547
11548         * html.c (htmlfindurl): Handle exiting from quotes correctly; the
11549         old version would bug out on <a href="x#a"href="y">.
11550
11551         * html.h (state_t): New member in_quote.
11552
11553         * html.c (htmlfindurl): Free s->attr at the beginning of
11554         attr-loop.
11555
11556         * recur.c (recursive_retrieve): Recognize RCLEANUP.
11557         (tried_robots): Make hosts a global variable.
11558         (recursive_retrieve): Free constr after URL host optimization.
11559         (tried_robots): Free urlinfo before exiting.
11560
11561         * utils.c (free_slist): New function.
11562
11563         * recur.c (recursive_retrieve): Use flags to add cleanup
11564         possibility.
11565
11566         * main.c (main): Free filename after recursive_retrieve.
11567
11568         * http.c (gethttp): Store successful responses too.
11569
11570 1996-10-12  Hrvoje Niksic  <hniksic@srce.hr>
11571
11572         * all: Constified the whole source.  This required some minor
11573         changes in many functions in url.c, possibly introducing bugs -- I
11574         hope not.
11575
11576         * ftp-basic.c: Removed last_respline.
11577
11578         * http.c (gethttp): Free type.
11579
11580         * host.c (same_host): Free real1 and real2.
11581
11582         * main.c (main): New option --spider.
11583
11584         * retr.c (get_contents): Don't reset errno.
11585
11586         * main.c (main): Sorted the options.
11587
11588         * connect.c (iread): Set errno to ETIMEDOUT only if it was left
11589         uninitialized by select().
11590
11591         * http.c (http_loop): Print the time when the connection is
11592         closed.
11593         (gethttp): Debug-print the HTTP request.
11594
11595 1996-10-11  Hrvoje Niksic  <hniksic@srce.hr>
11596
11597         * connect.c (iread): Do not try reading after timeout.
11598
11599         * main.c (main): Would bug out on -T.
11600
11601         * connect.c (select_fd): Do not use exceptfds.
11602         (iread): Set ETIMEDOUT on select_fd <= 0.
11603
11604         * version.c: Changed version to 1.4b26.
11605
11606 1996-10-10  Hrvoje Niksic  <hniksic@srce.hr>
11607
11608         * version.c: "Released" 1.4b25.
11609
11610         * ftp-unix.c (ftp_parse_unix_ls): Ignore lines without file name
11611         or link name.
11612
11613         * http.c (gethttp): Add errcode to struct hstat.
11614         (http_loop): Use it.
11615
11616         * url.c (no_proxy_match): Simplify using char** for no_proxy.
11617
11618         * options.h (struct options): Make opt.no_proxy a vector.
11619
11620         * utils.c (sepstring): Use !*s instead of !strlen(s).
11621
11622         * init.c (setval): Set opt.maxreclevel to 0 on --mirror.
11623         (getperms): Use ISODIGIT instead of isdigit.
11624
11625         * ftp.c (getftp): Print time.
11626
11627         * main.c (main): Use legible output of downloaded quantity.
11628
11629         * ftp.c (getftp): Use elapsed_time().
11630         (ftp_loop_internal): Use rate().
11631
11632         * http.c (http_loop): Add download ratio output; Use rate().
11633
11634         * utils.c (rate): New function.
11635
11636 1996-10-09  Hrvoje Niksic  <hniksic@srce.hr>
11637
11638         * http.c (http_loop): Use timer.
11639
11640         * ftp.c: Split to ftp-basic.c and ftp.c
11641
11642         * utils.c (reset_timer): New function.
11643         (elapsed_time): New function.
11644
11645         * retr.c (show_progress): Make bytes_in_line and offs long; should
11646         work on 16-bit machines.
11647
11648 1996-10-08  Hrvoje Niksic  <hniksic@srce.hr>
11649
11650         * url.c (in_acclist): New argument backward.
11651
11652         * ftp.c (ftp_retrieve_glob): Use acceptable() to determine whether
11653         a file should be retrieved according to suffix.
11654         (ftp_get_listing): Check the return value of unlink; Do not call
11655         ftp_retrieve_dirs if depth reached maxreclevel.
11656         (ftp_retrieve_dirs): Check whether the directory is in
11657         exclude-list.
11658
11659         * main.c (main): Print the version number at the beginning of
11660         DEBUG output.
11661         (main): Use strrchr when creating exec_name.
11662
11663         * ftp.c (ftp_retrieve_glob): Do not close control connection.
11664
11665         * version.c: Changed version to 1.4b25.
11666
11667 1996-10-07  Hrvoje Niksic  <hniksic@srce.hr>
11668
11669         * version.c: "Released" 1.4b24.
11670
11671         * Makefile.in: Rewrite.
11672
11673         * ftp.c (ftp_loop_internal): Likewise.
11674
11675         * retr.c (time_str): Check for failed time().
11676
11677         * html.c (htmlfindurl): Recognize <fig src> and <overlay src> from
11678         HTML3.0.
11679
11680         * retr.c (time_str): Return time_t *.
11681
11682         * connect.c (bindport): Close msock on unsuccesful bind.
11683         (bindport): The same for getsockname and listen.
11684
11685         * retr.c (retrieve_url): Allow any number of retries on
11686         proxy.
11687
11688         * http.c (gethttp): Do not treat errno == 0 as timeout.
11689         (http_loop): Likewise.
11690         (http_loop): Cosmetic changes.
11691
11692         * connect.c (iread): Set errno to ETIMEDOUT in case of timeout.
11693
11694         * retr.c (get_contents): Reset errno.
11695
11696         * ftp.c (getftp): Minor fixes.
11697
11698 1996-10-06  Hrvoje Niksic  <hniksic@srce.hr>
11699
11700         * http.c: Do not use backups.
11701
11702         * geturl.1 (WARNING): Warn that man-page could be obsolete.
11703
11704         * getopt.c (getopt_long): Moved to getopt.c
11705
11706         * geturl.texi: Enhanced.
11707
11708         * main.c (main): Use it.
11709
11710         * recur.c (convert_all_links): New function.
11711
11712         * utils.c (add_slist): New argument flags.
11713
11714         * recur.c (recursive_retrieve): Update a list of downloaded URLs.
11715         (parse_robots): Do not chuck out empty value fields.
11716         (parse_robots): Make yourself welcome on empty Disallow.
11717
11718         * version.c: Changed version to 1.4b24.
11719
11720 1996-10-06  Hrvoje Niksic  <hniksic@srce.hr>
11721
11722         * version.c: "Released" 1.4b23.
11723
11724         * ftp.c (ftp_loop_internal): Get the time after getftp.
11725
11726         * Makefile.in (install.info): New target.
11727         (install): Use it.
11728
11729         * http.c (http_loop): Fix output when doing -O.
11730
11731 1996-10-05  Hrvoje Niksic  <hniksic@srce.hr>
11732
11733         * geturl.texi: New file.
11734
11735         * main.c (main): Do not print the warnings and download summary if
11736         opt.quiet is set.
11737
11738         * version.c: Changed version to 1.4b23.
11739
11740 1996-10-05  Hrvoje Niksic  <hniksic@srce.hr>
11741
11742         * "Released" 1.4b22.
11743
11744         * atotm.c (atotm): Use True and False instead of TRUE and FALSE,
11745         to avoid redefinition warnings.
11746
11747         * host.c (store_hostaddress): Use memcpy() to copy the address
11748         returned by inet_addr.
11749
11750         * version.c: Changed version to 1.4b22.
11751
11752 1996-10-04  Hrvoje Niksic  <hniksic@srce.hr>
11753
11754         * version.c: "Released" 1.4b21.
11755
11756         * ftp-unix.c (ftp_parse_ls): Renamed to ftp_parse_unix_ls.
11757
11758         * ftp.c (ftp_port): Use conaddr.
11759         (getftp): Print the file length.
11760         (ftp_retrieve_list): Check the stamps of plain files only.
11761
11762         * connect.c (closeport): Do not call shutdown().
11763         (conaddr): New function.
11764
11765         * html.c (ftp_index): Made it dfp-aware.
11766
11767         * init.c (cleanup): New name of freemem. Close opt.dfp.
11768
11769         * ftp.c (getftp): Use opt.dfp if it is set.
11770
11771         * ftp-unix.c (ftp_parse_ls): Recognize time in h:mm format.
11772
11773         * ftp.c (ftp_retrieve_dirs): Fixed a bug that caused incorrect
11774         CWDs to be sent with recursive FTP retrievals.
11775
11776 1996-10-03  Hrvoje Niksic  <hniksic@srce.hr>
11777
11778         * recur.c (parse_robots): Made it more compliant with "official"
11779         specifications.
11780
11781         * http.c: New function.
11782
11783         * ftp-unix.c (ftp_parse_ls): Added better debug output.
11784
11785         * ftp.c (getftp): Print out the LIST in case of
11786         opt.print_server_response.
11787
11788         * version.c: Changed version to 1.4b21.
11789
11790 1996-10-01  Hrvoje Niksic  <hniksic@srce.hr>
11791
11792         * version.c: "Released" 1.4b20.
11793
11794         * README: Update.
11795
11796         * http.c (gethttp): Preset lengths of various headers instead of
11797         calculating them dynamically.
11798         (gethttp): Check for 206 partial contents.
11799
11800 1996-09-30  Hrvoje Niksic  <hniksic@srce.hr>
11801
11802         * configure.in: Set SYSTEM_GETURLRC to $libdir/geturlrc
11803
11804         * http.c (gethttp): Send the port number in the Host: header.
11805
11806 1996-09-29  Hrvoje Niksic  <hniksic@srce.hr>
11807
11808         * http.c (gethttp): Send host: header.
11809         (gethttp): Add the possibility of user-defined headers.
11810         (gethttp): Move decision about pragma: no-cache to http_loop,
11811         where it belongs.
11812         (gethttp): Pass a struct instead of enormous argument list.
11813         (http_loop): Use a new, fancier display format.
11814         (ftp_loop): Likewise.
11815
11816         * main.c: (hangup): Turn off buffering of the new log file.
11817
11818         * install-sh: Likewise.
11819
11820         * config.sub: Replace with the one in autoconf-2.10
11821
11822         * geturl.1: Update.
11823
11824         * init.c: New options httpuser and httppasswd.
11825
11826         * http.c: (base64_encode_line): New function.
11827         (gethttp): Send authentication.
11828
11829         * connect.c (make_connection): Use store_hostaddress.
11830
11831 1996-09-28  Hrvoje Niksic  <hniksic@srce.hr>
11832
11833         * host.c (store_hostaddress): New function.
11834
11835         * NEWS: Update.
11836
11837         * http.c (hgetrange): New function.
11838         (gethttp): Use ranges.
11839
11840         * utils.c (numdigit): Accept long instead of int.
11841
11842         * http.c (http_loop): Add restart capabilities.
11843
11844         * ftp.c (ftp_retrieve_glob): Fixed a bug that could cause matchres
11845         being used uninitialized.
11846         (ftp_retrieve_list): Similar fix.
11847
11848         * host.c (add_hlist): Fixed a bug that could cause cmp being used
11849         uninitialized.
11850
11851         * url.c (construct_relative): New function.
11852
11853         * recur.c (recursive_retrieve): Use it.
11854
11855         * retr.c (convert_links): New function.
11856
11857 1996-09-27  Hrvoje Niksic  <hniksic@srce.hr>
11858
11859         * url.c (free_urlpos): New function.
11860
11861         * recur.c (recursive_retrieve): Adapt.
11862
11863         * url.c (get_urls_html): Return a linked list instead of a vector.
11864
11865         * url.c (get_urls_file): Return a linked list instead of a vector.
11866
11867         * geturl.1: Update.
11868
11869         * http.c (gethttp): Implement it.
11870
11871         * init.c (setval): New option: SAVEHEADERS
11872
11873         * ftp.c (ftp_loop_internal): Do not set restval if listing is to
11874         be retrieved. Lack of this test caused bugs when the connection
11875         was lost during listing.
11876
11877         * retr.c (retrieve_url): Fixed a bug that caused
11878         coredumps. *newloc is now reset by default.
11879         (retrieve_url): Lift the twenty-tries limit on proxies.
11880
11881         * version.c: Changed version to 1.4b20.
11882
11883 1996-09-20  Hrvoje Niksic  <hniksic@srce.hr>
11884
11885         * version.c: "Released" 1.4b19.
11886
11887 1996-09-19  Hrvoje Niksic  <hniksic@srce.hr>
11888
11889         * ftp.c (ftp_loop_internal): Renamed from ftp_1fl_loop.
11890         (getftp): Changed prototype to accept ccon *.
11891
11892 1996-09-17  Hrvoje Niksic  <hniksic@srce.hr>
11893
11894         * ftp.c (ftp_retrieve_list): Fixed a bug that caused setting
11895         incorrect values to files pointed to by symbolic links.
11896         (ftp_1fl_loop): Do not count listings among the downloaded URL-s.
11897
11898 1996-09-16  Hrvoje Niksic  <hniksic@srce.hr>
11899
11900         * url.c (mkstruct): Do not prepend "./" in front of a pathname.
11901
11902         * main.c (main): New option: --user-agent.
11903
11904         * geturl.1: Ditto.
11905
11906         * init.h: Ditto.
11907
11908         * init.c (setval): Ditto.
11909
11910         * main.c (main): Rename "server-headers" to "server-response".
11911
11912         * ftp-unix.c (ftp_parse_ls): Check for asterisks at the end of
11913         executables in 'ls -F' listings.
11914
11915 1996-09-15  Hrvoje Niksic  <hniksic@srce.hr>
11916
11917         * url.c (parseurl): Remove realloc() and sprintf().
11918         (str_url): Get rid of sprintf().
11919
11920         * recur.c (recursive_retrieve): Enable FTP recursion through proxy
11921         servers.
11922
11923         * url.h (URL_CLEANSE): Made it else-resistant.
11924         (USE_PROXY): New macro.
11925
11926 1996-09-14  Hrvoje Niksic  <hniksic@srce.hr>
11927
11928         * NEWS: Update.
11929
11930         * version.c: Changed version to 1.4b19.
11931
11932 1996-09-14  Hrvoje Niksic  <hniksic@srce.hr>
11933
11934         * version.c: "Released" 1.4b18.
11935
11936         * url.c: Made it reallocate space exponentially.
11937
11938 1996-09-14  Drazen Kacar  <dave@fly.cc.fer.hr>
11939
11940         * html.c (htmlfindurl): Added <frame src> and <iframe src> among
11941         the list of stuff to fetch.
11942
11943 1996-09-13  Hrvoje Niksic  <hniksic@srce.hr>
11944
11945         * url.c (get_urls_html): Fixed a bug that caused SIGSEGV's with
11946         -Fi.
11947
11948         * html.c (htmlfindurl): Rewrite.
11949
11950         * http.c (gethttp): Use opt.proxy_cache.
11951
11952         * main.c (main): Added --cache option.
11953
11954         * ftp.c (ftp_response): Print server response if opt.print_server
11955         response is set.
11956         (getftp): Print newlines after each request if the server response
11957         is to be printed.
11958         (ftp_response): Copy the last response line to last_respline.
11959
11960         * http.c (gethttp): Add Pragma: nocache for retried
11961         proxy-retrievals.
11962
11963         * ftp.c (getftp): Use it.
11964
11965         * retr.c (buf_discard): New function.
11966
11967         * ftp.c (ftp_response): Use buf_readchar().
11968         (getftp): Flush the control connection buffer before calling
11969         get_contents().
11970
11971         * retr.c (buf_readchar): New function.
11972         (buf_flush): New function.
11973         (get_contents): Use buf_readchar() instead of read(x, x, 1).
11974         (get_contents): Use buf_flush.
11975
11976 1996-09-12  Hrvoje Niksic  <hniksic@srce.hr>
11977
11978         * ftp.c: Incorporate changes to ftp_response.
11979
11980         * ftp.c (ftp_response): Allocate the server response dynamically,
11981         as in read_whole_line and fetch_next_header.
11982
11983         * utils.c (read_whole_line): Fixed a bug that prevented reading
11984         the last line if it is not \n-terminated. Also fixed a possible
11985         memory overflow.
11986
11987         * http.c (fetch_next_header): Return malloc-ed string as large as
11988         needed.
11989         (gethttp): Use new fetch_next_header.
11990
11991 1996-09-12  Hrvoje Niksic  <hniksic@srce.hr>
11992
11993         * http.c (hgetlen): Compute the header length the first time only.
11994         (hgettype): Ditto.
11995         (hgetlocation): Ditto.
11996         (hgetmodified): Ditto.
11997
11998 1996-09-11  Hrvoje Niksic  <hniksic@srce.hr>
11999
12000         * sample.geturlrc: Update.
12001
12002 1996-09-10  Hrvoje Niksic  <hniksic@srce.hr>
12003
12004         * http.c (http_loop): Ditto.
12005
12006         * ftp.c (getftp): Open the output file as binary.
12007
12008         * version.c: Changed version to 1.4b18.
12009
12010 1996-09-10  Hrvoje Niksic  <hniksic@srce.hr>
12011
12012         * version.c: "Released" 1.4b17.
12013
12014         * ftp-unix.c (ftp_parse_ls): If unable to open file, return NULL
12015         instead of failed assertion.
12016
12017 1996-09-09  Hrvoje Niksic  <hniksic@srce.hr>
12018
12019         * ftp.c (ftp_get_listing): Add a numbered suffix to LIST_FILENAME
12020         if a file of that name already exists.
12021
12022 1996-09-05  Hrvoje Niksic  <hniksic@srce.hr>
12023
12024         * ftp.c (ftp_1fl_loop): Handler FTPPORTERR and FOPENERR correctly.
12025
12026         * config.h.in: Define gethostbyname as Rgethostbyname when using
12027         Socks.
12028
12029         * configure.in: Check for -lresolv if using Socks.
12030
12031         * version.c: Changed version to 1.4b17.
12032
12033 1996-07-15  Hrvoje Niksic  <hniksic@srce.hr>
12034
12035         * version.c: "Released" 1.4b16.
12036
12037         * http.c (gethttp): More intelligent check for first line of HTTP
12038         response.
12039         (gethttp): Would bug out on time-stamping.
12040
12041         * version.c: Changed version to 1.4b16.
12042
12043 1996-07-11  Hrvoje Niksic  <hniksic@srce.hr>
12044
12045         * version.c: Released 1.4b15.
12046
12047         * http.c (http_loop): Print \n after the loop entry, not before.
12048
12049         * url.c (url_filename): Use ISDOT.
12050
12051         * url.h (ISDOT): New macro.
12052
12053         * recur.c (recursive_retrieve): Change only opt.recursive for
12054         following FTP.
12055
12056 1996-07-11  Antonio Rosella <antonio.rosella@agip.it>
12057
12058         * socks/geturl.cgi: Fixed version No.
12059
12060         * socks/download-netscape.html: Ditto.
12061
12062         * socks/download.html: Changed socks.html to download.html.
12063
12064 1996-07-11  Hrvoje Niksic  <hniksic@srce.hr>
12065
12066         * url.c (url_filename): Check for opt.dirstruct instead for
12067         opt.recursive && opt.dirstruct.
12068
12069         * init.c (defaults): Ditto.
12070         (defaults): Reset dirstruct by default.
12071         (setval): Set opt.dirstruct whenever setting recursive.
12072
12073         * init.h: Removed FORCEDIRHIER.
12074
12075         * INSTALL: Added -L to socks-description.
12076
12077         * version.c: Changed version to 1.4b15.
12078
12079 1996-07-10  Hrvoje Niksic  <hniksic@srce.hr>
12080
12081         * version.c: "Released" 1.4b14.
12082
12083         * geturl.1: Update AUTHOR to include Rosella as contributor.
12084
12085         * NEWS: Update.
12086
12087         * socks/geturl.cgi: Simplified command creation, nuked <blink>.
12088
12089         * socks/geturl.cgi: Wrap nutscape extensions within if $netscape.
12090         (cal_time): Fix == to eq.
12091
12092         * socks/geturl.cgi: GPL-ized with permission of A. Rosella.
12093
12094         * geturl.1 (hostname): Moved URL CONVENTIONS to the beginning.
12095
12096         * Makefile.in: Use @VERSION@.
12097
12098         * configure.in: Check version from version.c.
12099
12100         * socks/geturl.cgi: Changed /pub/bin/perl to /usr/bin/perl.
12101
12102         * socks/download.html: Created from download-netscape.html, made
12103         HTML-2.0 compliant.
12104
12105         * recur.c (recursive_retrieve): Set opt.force_dir_hier when
12106         following FTP links from recursions.
12107
12108 1996-07-09  Hrvoje Niksic  <hniksic@srce.hr>
12109
12110         * url.c (mymkdir): Fixed a bug that prevented mymkdir() to create
12111         absolute directories correctly.
12112
12113         * version.c: Changed version to 1.4b14.
12114
12115 1996-07-09  Hrvoje Niksic  <hniksic@srce.hr>
12116
12117         * version.c: "Released" 1.4b13.
12118
12119         * url.c (make_backup): New function.
12120
12121         * http.c (http_loop): Make a backup copy of the local file (using
12122         rename(2)) before opening it.
12123
12124         * main.c (main): Added --backups.
12125
12126         * host.c (ftp_getaddress): Bail out on failed mycuserid().
12127         (ftp_getaddress): Check for leading dot on MY_DOMAIN.
12128         (ftp_getaddress): Check for empty, null or (null) domain.
12129
12130         * url.c (get_urls_html): If this_url is NULL, the base must have a
12131         protocol.
12132         (parseurl): Use has_proto.
12133
12134         * retr.c (retrieve_url): Warn when proxy is used with more than 20
12135         retries.
12136
12137         * url.c (mkstruct): Create the directory (calling mymkdir()) only
12138         if it is not already there.
12139         (has_proto): New function.
12140         (get_urls_html): Eliminate the remaining call to findurl -- use
12141         has_proto.
12142
12143         * geturl.1: Ditto.
12144
12145         * main.c: Change -X to -x.
12146
12147         * url.c (url_filename): Simplify creation of filename if
12148         prefix_files is set.
12149         (url_filename): Simplify everything. And I do mean *everything*.
12150         (mkstruct): Add dir_prefix before hostname.
12151         (path_simplify): Fixed a bug that caused writing outside the path
12152         string in case of "." and ".." path strings.
12153
12154 1996-07-06  Hrvoje Niksic  <hniksic@srce.hr>
12155
12156         * init.c: Added --mirror.
12157
12158         * main.c (main): Added -X to force saving of directory hierarchy.
12159
12160         * ftp.c (ftp_retrieve_list): Added recursion depth counter.
12161         (ftp_retrieve_list): Check whether quota is exceeded.
12162
12163         * url.c (get_urls_html): Skip leading blanks for absolute URIs.
12164
12165         * http.c (gethttp): Use referer if present.
12166
12167         * recur.c (recursive_retrieve): Set u->referer before calling
12168         retrieve_url.
12169
12170         * url.c (newurl): Use memset to nullify the struct members.
12171         (freeurl): Free the referer field too.
12172
12173         * url.h: Added referer to urlinfo.
12174
12175         * geturl.1: Updated the manual to document some of the new features.
12176
12177         * utils.c (numdigit): Moved from url.c.
12178
12179         * README: Rewritten.
12180
12181         * config.h.in: Add the support for socks.
12182
12183         * configure.in: Add the support for socks.
12184
12185         * url.c (url_filename): If the dir_prefix is ".", work with just
12186         the file name.
12187         (url_filename): Do not look for .n extensions if timestamping if
12188         turned on.
12189
12190         * retr.c (show_progress): Skip the over-abundant restval data, and
12191         print the rest of it with ',' instead of '.'.
12192
12193 1996-07-05  Hrvoje Niksic  <hniksic@srce.hr>
12194
12195         * retr.c (show_progress): Changed second arg. to long (as it
12196         should be).
12197         (show_progress): Moved to retr.c.
12198         (get_contents): Moved to retr.c.
12199
12200         * version.c: Change version to 1.4b13.
12201
12202 1996-07-05  Hrvoje Lacko <hlacko@fly.cc.fer.hr>
12203
12204         * url.c (in_acclist): Would return after the first suffix.
12205
12206 1996-07-04  Hrvoje Niksic  <hniksic@srce.hr>
12207
12208         * version.c: "Released" 1.4b12.
12209
12210         * url.c (path_simplify): More kludgifications.
12211         (get_urls_html): Use new parameters for htmlfindurl.
12212
12213         * html.c: Removed memorizing "parser states", since the new
12214         organization does not require them.
12215
12216         * init.c (run_geturlrc): Use read_whole_line.
12217
12218         * ftp-unix.c (ftp_parse_ls): Use read_whole_line.
12219
12220         * recur.c (parse_robots): Use read_whole_line.
12221
12222         * utils.c (read_whole_line): New function.
12223
12224         * recur.c (tried_robots): Use add_slist/in_slist, *much* cleaner.
12225
12226         * host.c (ngethostbyname): Call inet_addr just once. Yet to be
12227         tested on OSF and Ultrix.
12228         (add_hlist): New function.
12229         (free_hlist): New function.
12230         (search_host): New function.
12231         (search_address): New function.
12232         (realhost): Use search_host, search_address and add_hlist.
12233         (same_host): Replaced realloc() with strdupdelim(), made
12234         case-insensitive, fixed a memory leak.
12235
12236         * html.c (ftp_index): Fixed tm_min and tm_sec to be tm_hour and
12237         tm_min, like intended.
12238
12239         * version.c: Change user agent information to
12240         Geturl/version.
12241
12242 1996-07-03  Hrvoje Niksic  <hniksic@srce.hr>
12243
12244         * utils.c: Renamed nmalloc.c to utils.c, .h likewise.
12245
12246         * url.c (acceptable): Always accept directories.
12247
12248         * ftp-unix.c (ftp_parse_ls): Support brain-damaged "ls -F"-loving
12249         servers by stripping trailing @ from symlinks and trailing / from
12250         directories.
12251
12252         * ftp.c (ftp_loop): Debugged the "enhanced" heuristics. :-)
12253
12254         * url.c (skip_url): Use toupper instead of UCASE.
12255
12256         * host.c (sufmatch): Made it case-insensitive.
12257
12258         * url.c (match_backwards_or_pattern): Fixed i == -1 to j == -1.
12259         (match_backwards): New function, instead of
12260         match_backwards_or_pattern.
12261
12262         * recur.c (recursive_retrieve): Increased performance by
12263         introducing inl, which reduces number of calls to in_slist to only
12264         one.
12265
12266         * ftp.c (ftp_loop): Enhanced the heuristics that decides which
12267         routine to use.
12268
12269         * main.c (printhelp): Removed the warranty stuff.
12270
12271 1996-07-02  Hrvoje Niksic  <hniksic@srce.hr>
12272
12273         * url.c (add_slist): Simplify.
12274         (match_backwards_or_pattern): New function.
12275         (in_acclist): Use match_backwards_or_pattern.
12276         (matches): Remove.
12277
12278 1996-06-30  Hrvoje Niksic  <hniksic@srce.hr>
12279
12280         * ftp.c (ftp_loop): Call ftp_index on empty file names, if not
12281         recursive.
12282
12283         * html.c (ftp_index): Fixed to work. Beautified the output.
12284
12285         * ftp.c (ftp_retrieve_glob): Another argument to control whether
12286         globbing is to be used.
12287         (ftp_retrieve_list): Compare the time-stamps of local and remote
12288         files to determine whether to download.
12289
12290 1996-06-29  Hrvoje Niksic  <hniksic@srce.hr>
12291
12292         * ftp.c (rel_constr): New function.
12293
12294         * retr.c (retrieve_from_file): Check for text/html before
12295         retrieving recursively.
12296
12297         * main.c (main): Check whether the file is HTML before going into
12298         recursive HTML retrieving.
12299
12300         * ftp.c (ftp_retrieve_list): Manage directories.
12301         (ftp_retrieve_glob): Pass all the file-types to ftp_retrieve_list.
12302         (ftp_1fl_loop): Fixed a bug that caused con->com to be incorrectly
12303         initialized, causing bugchecks in getftp to fail.
12304
12305         * configure.in: Check for symlink.
12306
12307         * ftp.c (ftp_retrieve_list): Added support for symlinks.
12308
12309         * version.c: "Released" 1.4b10.
12310
12311         * atotm.c (atotm): Redeclared as time_t.
12312
12313         * init.c: New variable "timestamping".
12314
12315         * main.c (main): New option 'N'.
12316
12317         * http.c (hgetlocation): Case-insensitive match.
12318         (hgetmodified): New function.
12319         (http_loop): Implement time-stamping.
12320
12321 1996-06-28  Hrvoje Niksic  <hniksic@srce.hr>
12322
12323         * version.c: Changed version to 1.4b10
12324
12325         * atotm.c: New file, from phttpd.
12326
12327         * options.h (struct options): New parameter timestamping.
12328
12329         * version.c: 1.4b9 "released".
12330
12331         * recur.c (recursive_retrieve): Used linked list (ulist) for
12332         faster storing of URLs.
12333
12334         * url.c (get_urls_html): Removed the old kludge with comparing the
12335         outputs of htmlfindurl and findurl.
12336         (get_urls_html): Added better protocol support here.
12337         (create_hash): Removed, as well as add_hash and in_hash.
12338         (addslist): New function.
12339         (in_slist): ditto
12340
12341         * version.c: Released 1.4b8, changed version to b9.
12342
12343 1996-06-27  Hrvoje Niksic  <hniksic@srce.hr>
12344
12345         * ftp.c (freefileinfo): New function.
12346         (delelement): New function.
12347
12348         * everywhere: GPL!
12349
12350         * ftp.c (ftp_loop): Use ccon.
12351         (ftp_retrieve_glob): Likewise.
12352
12353         * ftp.h: Define ccon, to define status of control connection.
12354
12355         * ftp.c (ftp_get_listing): New function.
12356         (ftp_retrieve_more): New function.
12357         (ftp_retrieve_glob): New function.
12358
12359 1996-06-25  Hrvoje Niksic  <hniksic@srce.hr>
12360
12361         * configure.in: Removed the search for cuserid().
12362
12363         * init.c (getmode): Renamed to getperms.
12364
12365 1996-06-24  Hrvoje Niksic  <hniksic@srce.hr>
12366
12367         * version.c: New version.
12368
12369         * main.c (hangup): New function, that handles hangup. Hangup
12370         signal now causes geturl to stop writing on stdout, and to write
12371         to a log file.
12372
12373         * ftp.c (getftp): "Released" 1.4b7.
12374
12375         * html.c (htmlfindurl): Ignore everything inside <head>...</head>.
12376         (ftp_index): Use fileinfo/urlinfo.
12377
12378         * ftp-unix.c (ftp_parse_ls): New function.
12379         (symperms): New function.
12380
12381         * ftp.c (ftp_1fl_loop): New function, to handle 1-file loops.
12382
12383         * retr.c (retrieve_url): Added FTP support.
12384
12385 1996-06-23  Hrvoje Niksic  <hniksic@srce.hr>
12386
12387         * geturl.h: Removed NOTFTP2HTML enum.
12388         Added DO_LOGIN, DO_CWD and DO_LIST. LIST_ONLY is obsolete.
12389
12390         * ftp.c (getftp): Resynched with urlinfo.
12391         (getftp): Removed HMTL-ization of index.html from getftp.
12392
12393         * version.c: 1.4b6 "released".
12394
12395         * options.h (options): New struct, to keep options in.
12396
12397         * http.c (http_loop,gethttp): Synched with proxy.
12398
12399         * retr.c (retrieve_url): Implemented proxy retrieval.
12400
12401         * main.c (main): Use retrieve_from_file.
12402
12403 1996-06-22  Hrvoje Niksic  <hniksic@srce.hr>
12404
12405         * retr.c (retrieve_from_file): New function.
12406
12407         * url.c (parseurl): Modified to return URLOK if all OK. Protocol
12408         can be found in u->proto.
12409
12410         * ftp.c (ftp_response): Fixed to accept multi-line responses as
12411         per RFC 959.
12412
12413         * recr.c (recursive_retrieve): Take newloc from retrieve_url.
12414
12415         * url.c (mymkdir): Removed the file of the same name, if one
12416         exists.
12417         (isfile): New function.
12418         (mkstruct): Fixed the '/' glitches.
12419         (path_simplify): Hacked to treat something/.. correctly.
12420
12421 1996-06-21  Hrvoje Niksic  <hniksic@srce.hr>
12422
12423         * http.c (gethttp): Close the socket after error in headers.
12424         (http_loop): HEOF no longer a fatal header.
12425
12426         * loop.c (retrieve_url): When dt is NULL, do not modify it. This
12427         simplifies the syntax of calling retrieve_url.
12428
12429         * recr.c (recursive_retrieve): Modified to use get_urls_html.
12430
12431         * url.c (get_urls_file): New function.
12432         (get_urls_html): New function.
12433
12434         * recr.c (recursive_retrieve): Patched up to conform to the
12435         standards.
12436
12437         * http.c (gethttp): Synched with the rest...
12438         (gethttp): Treat only CONREFUSED specially, with connection
12439         errors.
12440
12441         * init.c,geturl.1,http.c (http_loop): Removed kill_error.
12442
12443 1996-06-20  Hrvoje Niksic  <hniksic@srce.hr>
12444
12445         * http.c (http_loop): New function.
12446
12447         * loop.c: Removed *lots* of stuff from retrieve_url.
12448
12449         * url.c (parseurl): Changed to work with urlinfo. Integrated
12450         username finding and path parsing.
12451         (newurl): New function.
12452         (freeurl): New function.
12453         (mkstruct): Removed the old bogosities, made it urlinfo-compliant.
12454         (url_filename): Likewise.
12455         (path_simplify): Accept relative paths too.
12456         (opt_url): Made urlinfo-compliant, removed bogosities.
12457         (path_simplify): Expanded to accept relative paths.
12458         (str_url): A replacement for hide_url
12459         (decode_string): Fixed a bug that caused malfunctioning when
12460         encountering an illegal %.. combination.
12461         (opt_url): Removed the argument. Dot-optimizations are now default.
12462
12463         * nmalloc.c (strdupdelim): New function.
12464
12465         * url.h: Added the urlinfo structure
12466
12467 1996-06-19  Hrvoje Niksic  <hniksic@srce.hr>
12468
12469         * url.c (hide_url): Thrown out the protocol assertion. Do not
12470         change the URL if the protocol if not recognized.
12471         (findurl): Put continue instead of break.
12472
12473 1996-06-18  Hrvoje Niksic  <hniksic@srce.hr>
12474
12475         * sample.geturlrc: Changed the defaults to be commented out and
12476         harmless (previous defaults caused pains if copied to
12477         ~/.geturlrc).
12478
12479         * http.c (gethttp): Print the HTTP request in debug mode.
12480
12481         * connect.c (iread): Added EINTR check loop to select-ing
12482         too. EINTR is now correctly handled with select().
12483
12484         * TODO: new file
12485
12486 1996-05-07  Hrvoje Niksic  <hniksic@srce.hr>
12487
12488         * host.c (same_host): Made the function a little bit more
12489         intelligent regarding diversified URL syntaxes.
12490
12491         * url.c (skip_url): Spaces are now skipped after URL:
12492
12493         * Released 1.3.1 with the patch to prevent crashing when sending
12494         NULL to robot* functions and the patch to compile "out of the box"
12495         on AIX.
12496
12497         * recr.c (recursive_retrieve): Added checking whether this_url is
12498         NULL when calling the robot functions.
12499
12500         * ChangeLog: New file.