]> sjero.net Git - wget/blob - src/ChangeLog
Fix declaration of compiled_features.
[wget] / src / ChangeLog
1 2009-10-09  Micah Cowan  <micah@cowan.name>
2
3         * main.c: Fix declaration of compiled_features.
4
5         * build_info.c.in: Adapt to new input format. Added a check for
6         large-file support. Replaced the "openssl" and "gnutls"
7         advertisements with a single "ssl/foo" advertisement.
8
9 2009-09-30  Micah Cowan  <micah@cowan.name>
10
11         * sysdep.h: Unconditionally include stdbool.h (gnulib has it for
12         systems that don't supply it.)
13
14 2009-09-24  Micah Cowan  <micah@cowan.name>
15
16         * vms.c: Moved from vms/vms.c.
17
18         * sysdep.h: Use proper prototypes for snprintf, vsnprintf (thanks
19         to Steven Schweda).
20
21 2009-09-24  Steven Schweda  <sms@antinode.info>
22
23         * main.c (print_version): Remove VMS-conditional build info
24         string; the new VMS builders use OS_TYPE.
25
26         * ftp.c (getftp): Fix accidental use of target -> targ.
27
28 2009-09-24  Micah Cowan  <micah@cowan.name>
29
30         * host.c (host_errstr): host_errstr should return const char *.
31
32 2009-09-22  Micah Cowan  <micah@cowan.name>
33
34         * Makefile.am (version.c): Explicitly tell Mercurial where the
35         top-source repository should be, so it doesn't accidentally use
36         the repository for a containing directory (for instance, if the
37         user's home directory is managed by a Mercurial repo). Also
38         ensures we find the repository, even if the build directory is
39         outside the source directory.
40
41         * wget.h: define WINDOWS if _WIN32 or __WIN32__ is defined, but
42         not __CYGWIN__.
43
44         * mswindows.c (xsleep): Check for availability of the sleep
45         function, in addition to the usleep function.
46         (get_winsock_error, windows_strerror): Removed (gnulib already
47         supplies this functionality).
48
49         * mswindows.h [NEED_GAI_STRERROR]: define gai_strerror
50         to (gnulib's) strerror, rather than windows_strerror. Removed
51         error macro definitions provided by gnulib.
52         (windows_strerror): Removed (gnulib already supplies this
53         functionality).
54
55         * host.c: Don't declare h_errno when building on Windows.
56
57         * Makefile.am (LIBS): Added @W32LIBS@.
58         (EXTRA_wget_SOURCES): Removed (it's in LIBOBJ now).
59         (version.c): Removed dependency on $(LDADD), since it may include
60         dependencies that are not part of the Wget sources (-lwsock32, for
61         instance).
62
63         * openssl.c (ssl_check_certificate): Avoid reusing the same buffer
64         space for successive quoted arguments. Thanks to Steven Schweda
65         for pointing out the problem.
66
67 2009-09-21  Micah Cowan  <micah@cowan.name>
68
69         * progress.c (update_speed_ring): "the the" -> "the".
70
71         * css-url.c, iri.c, mswindows.c: Removed assert.h inclusion (not
72         using it).
73
74 2009-09-11  Steven Schweda  <sms@antinode.info>
75
76         * utils.c, utils.h (fopen_excl): Make second argument an int,
77         rather than a bool (so it can handle the appropriate VMS version
78         of the flag).
79
80         * main.c (print_version): Don't print LOCALEDIR unless NLS is
81         enabled.
82
83         * http.c (gethttp): Pass FOPEN_BIN_FLAG, instead of true.
84
85         * ftp.c (ftp_retrieve_glob): Cast strcmp to assign to cmp, for a
86         silly HP build environment.
87
88 2009-09-08  Steven Schubiger  <stsc@member.fsf.org>
89
90         * main.c, init.c: Mark the --preserve-permissions and 
91         --html-extension option as deprecated.
92
93 2009-09-06  Micah Cowan  <micah@cowan.name>
94
95         * ftp.c (getftp, ftp_loop_internal): Separate "len" input/output
96         parameter (with different meanings for input and output), into two
97         separate parameters, one input (passed_expected_bytes) and one
98         output (qtyread). Fixes bug #26870.
99
100 2009-09-05  Steven Schubiger  <stsc@member.fsf.org>
101
102         * retr.h: Declare set_local_file() to avoid build warnings.
103
104 2009-09-05  Gisle Vanem  <gvanem@broadpark.no>
105
106         * connect.c, init.c, main.c, openssl.c, options.h:  Replace
107         "ifdef MSDOS" with "ifdef USE_WATT32" since DOS-targets in fact
108         use the Watt-32 tcp/ip stack.
109
110 2009-09-04  Micah Cowan  <micah@cowan.name>
111
112         * Makefile.am: Move build_info.c to wget_SOURCES from
113         nodist_wget_SOURCES, reduce dependencies, and invoke build_info.pl
114         in its new home, $(top_srcdir)/build-aux.
115
116 2009-09-03  Micah Cowan  <micah@cowan.name>
117
118         * ftp-ls.c (ftp_parse_vms_ls): Replace use of localtime_r with
119         localtime, as not all platforms have localtime_r.
120
121         * Makefile.am (wget_SOURCES): Rearranged some of the file order,
122         so .c files and .h files are apart. Added gettext.h, so that it
123         shows up in the dist.
124
125 2009-09-02  Micah Cowan  <micah@cowan.name>
126
127         * gettext.h: Refreshed from gettext 0.17.
128
129         * test.c: Added definition of program_name variable, required by
130         lib/error.c (libgnu.a). Doesn't cause problems until you try to
131         build on a non-GNU system...
132
133         * build_info.c.in: Removed useless "+gettext" feature ad.
134
135 2009-08-29  Steven Schubiger  <stsc@member.fsf.org>
136
137         * convert.c (local_quote_string): Percent-encode semicolons
138         in local file strings.
139
140 2009-08-27  Micah Cowan  <micah@cowan.name>
141
142         * wget.h (uerr_t): added new VERIFCERTERR code for SSL certificate
143         problems. Marked exit codes that are defined but never used (at
144         least, the ones I could find).
145
146         * retr.c, retr.h (retrieve_url): Added a new boolean argument to
147         determine whether an exit status should be recorded.
148         (retrieve_from_file): Adjust to new retrieve_url signature.
149
150         * res.c (res_retrieve_file): Don't have retrieve_url record an
151         exit status for robots.txt.
152
153         * recur.c (retrieve_tree): Adjust to new retrieve_url signature.
154
155         * main.c (main): Use the exit status stored by retrieve_url.
156
157         * http.c (gethttp): Distinguish certificate verification problems
158         from SSL connection issues.
159         (http_loop): Handle newly-created VERIFCERTERR error code.
160
161         * exits.c, exits.h: Newly added.
162         
163         * Makefile.am (wget_SOURCES): Add exits.c and exits.h.
164
165 2009-08-27  Micah Cowan  <micah@cowan.name>
166
167         * http.c (gethttp): Make sure Wget heeds cookies when they
168         are sent with a 401 response; or any other sort of response for
169         that matter (#26775).
170
171 2009-08-19  Micah Cowan  <micah@cowan.name>
172
173         * openssl.c (ssl_check_certificate): Only warn about an attack if
174         the hostname would otherwise have matched. Also some formatting
175         cleanup.
176
177 2009-08-19  Joao Ferreira  <joao@joaoff.com>
178
179         * openssl.c (ssl_check_certificate): Detect embedded NUL
180         characters in the SSL certificate common name.
181
182 2009-08-17  Tony Lewis  <tlewis@exelana.com>
183
184         * http.c (gethttp): Ensure that we parse Content-Length before we
185         attempt to refer to its value. Without this fix, NTLM support was
186         completely buggered. #27192
187
188 2009-08-09  Michael Baeuerle  <michael.baeuerle@gmx.net>
189
190         * ftp.c: #include <strings.h> for strcasecmp.
191
192 2009-07-28  Micah Cowan  <micah@cowan.name>
193
194         * main.c (option_data): Rename --html-extension to
195         --adjust-extension.
196         (print_help): Ditto.
197         
198         * options.h (struct option): Rename html_extension to
199         adjust_extension.
200         * http.c (gethttp): Ditto.
201         * convert.c (local_quote_string): Ditto.
202
203         * init.c (commands): Add "adjustextension", and reflect rename
204         change for opt.adjust_extension, for both "adjustextension" and
205         "htmlextension".
206
207 2009-07-27  Micah Cowan  <micah@cowan.name>
208
209         * options.h (struct options): Added restrict_files_nonascii
210         boolean field.
211
212         * url.c (FILE_CHAR_TEST): Add check for chars outside the ASCII
213         range.
214
215         * init.c (defaults): Add restrict_files_nonascii to initialization.
216         (cmd_spec_restrict_file_names): Allow parsing of "ascii" keyword.
217
218 2009-07-27  Marcel Telka  <marcel@telka.sk>
219
220         * iri.c (do_conversion): Typo: invalide -> invalid
221
222 2009-07-27  Petr Pisar  <petr.pisar@atlas.cz>
223
224         * main.c (print_help): Fixed a couple typos.
225
226 2009-07-26  Micah Cowan  <micah@cowan.name>
227
228         * main.c (option_data): Rename --locale option to --local-encoding
229         (print_help): Document --no-iri, --local-encoding, and
230         --remote-encoding, within usage message. Remove defunct
231         --preserve-permissions.
232
233 2009-07-23  Micah Cowan  <micah@cowan.name>
234
235         * progress.c (get_eta): Change "Translation note" in comment to
236         "TRANSLATORS", so it actually appears in wget.pot.
237
238 2009-07-06  Micah Cowan  <micah@cowan.name>
239
240         * main.c (print_help): Improve documentation of --base.
241
242 2009-07-05  Micah Cowan  <micah@cowan.name>
243
244         * html-url.c (tag_handle_meta): Handle meta name="robots"
245         properly: deal with whitespace, commas after...
246
247         * netrc.c (parse_netrc): Rename local-scope variable "quote" to
248         "qmark", to avoid conflict with the function name.
249
250 2009-07-05  Petr Pisar  <petr.pisar@atlas.cz>
251
252         * main.c (print_version): Mark initial line for translation, along
253         with (env), (user), and (system). Change copyright year to 2009.
254
255         * http.c (http_loop): Space after colon.
256
257         * gnutls.c (ssl_check_certificate): Use quote function, rather
258         than explicit quotes.
259
260 2009-07-05  Micah Cowan  <micah@cowan.name>
261
262         * Makefile.am (version.c): Add dependency on configure.ac.
263
264         * iri.c: Mark some strings for translation.
265
266 2009-07-04  Steven Schweda  <sms@antinode.info>
267
268         * wget.h (ORIG_SFX): Macro added, to supply an alternative "_orig"
269         suffix on VMS.
270         
271         * connect.c, host.c, host.h, main.c: Include "vms_ip.h" rather
272         than <netdb.h> on VMS systems.
273
274         * convert.c (write_backup_file): Use "_orig" rather than ".orig"
275         on VMS.
276
277         * ftp-basic.c (ftp_list): Don't use LIST -a on VMS servers.
278
279         * ftp.c [__VMS]: Include "vms.h"
280         * ftp.c (getftp): Disable some unhelpful "for VMS" code. Pass the
281         OS type to ftp_list.
282         (getftp) [__VMS]: Alter the filename as required, and invoke fopen
283         with extra optional arguments.
284         (ftp_retrieve_list): Set permissions before setting the times.
285
286         * ftp-ls.c [__VMS]: Various improvements.
287
288         * http.c (SET_USER_AGENT): Added. Include operating-system info in
289         the User-Agent header.
290         (gethttp): Use ORIG_SFX macro.
291         (gethttp) [__VMS]: invoke fopen with extra arguments to
292         communicate file type.
293         (http_loop): Add cast to time_t.
294
295         * init.c (wgetrc_user_file_name) [__VMS]: Adjustments for where to
296         find the .wgetrc.
297
298         * log.c: Adjustments to improve handling of log files on VMS.
299
300         * main.c [__VMS]: Added --ftp-stmlf option (and associated
301         documentation). Adjust description of backup-suffixes, as they now
302         differ for VMS.
303         (print_help, print_version): Include OS type in version
304         information.
305         (main) [__VMS]: Invoke fopen with extra options, to specify file
306         type information.
307
308         * netrc.c (search_netrc) [__VMS]: Fix .netrc-finding.
309
310         * openssl.c, openssl.h (ssl_connect_wget): Renamed from ssl_connect.
311
312         * options.h (struct options): Add ftp_stmlf field.
313
314         * retr.c (write_data) [__VMS]: Avoid fflush.
315
316         * url.c [__VMS]: Include vms.h.
317         * url.c (url_file_name) [__VMS]: Handle naming as required for VMS.
318
319         * utils.c [__VMS]: Include vms.h. Various added facilities for VMS
320         needs.
321
322 2009-07-04  Micah Cowan  <micah@cowan.name>
323
324         * main.c (print_version): Allow localization of the version-info
325         labels, eschew attempts at alignment (which is complicated when
326         handling translated strings), and avoid using printf() with
327         variable-stored format strings that lack conversion
328         specifications.
329         (format_and_print_line): For similar reasons, don't calculate
330         line-continuation tabulation based on the number of bytes in a
331         string.
332
333 2009-07-04  Steven Schubiger  <stsc@member.fsf.org>
334
335         * url.c (url_parse): If an URL scheme is invalid, distinguish
336         between an unsupported or missing scheme.
337
338         * url.c: Add a "missing scheme" entry to parse_errors.
339
340 2009-07-03  Micah Cowan  <micah@cowan.name>
341
342         * iri.h (iri_dup): Provide macro definition for when IRIs are
343         disabled.
344
345         * Makefile.am (LIBS): Added @LIBICONV@.
346         (wget_SOURCES): Added iri.h.
347         (EXTRA_wget_SOURCES): Added iri.c, so it gets packaged even if IRI
348         support was disabled.
349
350 2009-07-02  Micah Cowan  <micah@cowan.name>
351
352         * recur.c (url_enqueue): Quote enqueue/dequeue debug messages.
353
354         * html-url.c (append_url): Change "merge()" quoting style from
355         locale_quoting_style to escape_quoting_style.
356
357 2009-07-01  Micah Cowan  <micah@cowan.name>
358
359         * retr.c (retrieve_url): Use the existing "redirect" label,
360         instead of superfluous "second_try". Removed no-longer-accurate
361         debug statement. Use the "newloc" parameter to store the fallback
362         URL, when IRI version was rejected.
363
364         * recur.c (retrieve_tree): Always use the parsed URL for tracking
365         the Referer, since that's the one we actually requested (if
366         there's a difference in terms of percent-encodings and such).
367
368 2009-07-01  Steven Schubiger  <stsc@member.fsf.org>
369
370         * Makefile.am: Add a rule to generate build_info.c and list
371         the build_info.c.in file in EXTRA_DIST. Adjust elsewhere
372         where needed.
373         
374         * build_info.c: Remove this static source file.
375         
376         * build_info.c.in: Data for generation of build_info.c.
377
378 2009-06-29  Micah Cowan  <micah@cowan.name>
379
380         * html-url.c (append_url): Quote some more arguments that might
381         contain characters that are inappropriate to display for the
382         current locale.
383
384         * retr.c (retrieve_from_file): Be sure to pass iri information
385         when parsing an input-fle url, and be sure to hand a clean iri
386         struct, off to retrieve_tree and retrieve_url.
387
388         * iri.c, iri.h (iri_dup): Added.
389
390         * retr.c (retrieve_url): Re-parse for IRI fallback.
391
392         * main.c (main): Set up iri before the url_parse invocation (so we
393         can use it).
394
395 2009-06-20  Jay Krell  <jay.krell@cornell.edu>
396
397         * sysdep.h (_ALL_SOURCE): (small change) Define the _ALL_SOURCE
398         macro on INTERIX systems. (I switched the location from ftp.c to
399         sysdep.h --mjc)
400
401 2009-06-15  Micah Cowan  <micah@cowan.name>
402
403         * ftp.c (getftp): If we can't accept the connection, return
404         CONERROR, not whatever the contents of err happens to be. Fixes
405         bug #25015.
406
407         * retr.c (fd_read_body): Make both args to progress_create
408         consistent, resulting in an accurate progress display. Fixes bug
409         #24948.
410
411 2009-06-14  Micah Cowan  <micah@cowan.name>
412
413         * Makefile.am (wget_SOURCES): css-tokens.h needs to ship with
414         dist, too.
415
416 2009-06-13  Micah Cowan  <micah@cowan.name>
417
418         * init.c: Rename setval_internal_wrapper to setval_internal_tilde,
419         ensure we don't "replace" the tilde unless it's actually
420         present. Clean up some minor GNU style issues.
421
422 2009-06-13  Julien Pichon  <julienpichon7@gmail.com>
423
424         * init.c: Handle tilde-expansion in wgetrc commands, without
425         resorting to setting/unsetting globals to change behavior in one
426         call location.
427
428 2009-06-12  Micah Cowan  <micah@cowan.name>
429
430         * host.c: Include <sys/types.h> before <sys/socket.h>. Not
431         required by POSIX any more, but some older systems (such as
432         FreeBSD 4.1) still need it, and it doesn't seem like it could
433         hurt...
434
435         * build_info.c (library): Handle "https" as a feature in its own
436         right, apart from "gnutls" and "openssl".
437
438         * host.c: Declare h_errno if no declaration is provided. Idea
439         thanks to Maciej W. Rozycki.
440
441 2009-06-11  Xin Zou  <zouxin2008@gmail.com>     
442         
443         * http.c (gethttp): Fix some memory leaks.
444         
445 2009-06-11  Micah Cowan  <micah@cowan.name>
446
447         * http.c (http_atotm): Handle potential for setlocale's return
448         value to be static storage. Thanks to Benjamin Wolsey
449         <bwy@benjaminwolsey.de>.
450
451         * sysdep.h: Need NAMESPACE_TWEAKS on non-Linux glibc-based
452         systems, too. Thanks to Robert Millan.
453
454 2009-05-28  Steven Schubiger  <stsc@member.fsf.org>
455
456         * ftp.c (ftp_get_listing): Update the "listing file" 
457         string after calling ftp_loop_internal().
458
459 2009-05-27  Steven Schubiger  <stsc@member.fsf.org>
460
461         * ftp.c (ftp_get_listing): Duplicate the "listing file"
462         string to avoid memory corruption when FOPEN_EXCL_ERR is
463         encountered.
464
465 2009-05-17  Steven Schubiger  <stsc@member.fsf.org>
466
467         * progress.c (eta_to_human_short): Fix the remaining hours
468         to be displayed. Spotted by Tadeu Martins (#26411).
469
470 2009-04-24  Micah Cowan  <micah@cowan.name>
471
472         * hash.c: Change stdint.h inclusion to use HAVE_STDINT_H, not C99
473         check.
474
475         * connect.c: stdint.h inclusion added.
476
477         Thanks to Markus Duft <mduft@gentoo.org> for a similar patch.
478         
479 2009-04-20  Micah Cowan  <micah@cowan.name>
480
481         * Makefile.am (version.c): Fix unportable use of "echo -n".
482
483 2009-04-13  Steven Schubiger  <stsc@member.fsf.org>
484
485         * ftp.c (ftp_retrieve_list): Move the duplicated code that
486         determines the local file to a function.
487         
488         * http.c (http_loop): Likewise.
489
490         * retr.c (set_local_file): New function.
491
492 2009-04-11  Steven Schubiger  <stsc@member.fsf.org>
493
494         * init.c (initialize): Run a custom SYSTEM_WGETRC when 
495         provided as an environment variable.
496
497 2009-02-27  Gisle Vanem  <gvanem@broadpark.no>
498
499         * main.c (main): "freopen (NULL,.." causes an assertion in MSVC
500         debug-mode.  I.e. NULL isn't legal. But the "CONOUT$" device works
501         fine.
502
503 2009-02-27  Steven Schubiger  <stsc@member.fsf.org>
504
505         * ftp.c (ftp_loop_internal): Don't claim for FTP retrievals
506         when writing to standard output either that the document
507         has been saved. Addresses bug #20520 again.
508
509 2009-02-21  Steven Schubiger  <stsc@member.fsf.org>
510
511         * http.c (http_loop): When a document is written to 
512         standard output, don't claim it has been saved to a file.
513         Addresses bug #20520.
514
515 2009-02-18  Steven Schubiger  <stsc@members.fsf.org>
516
517         * recur.h: Remove the dangling declaration for recursive_cleanup().
518
519 2009-02-01  Gerardo E. Gidoni  <gerel@gnu.org>
520
521         * main.c, recur.c, recur.h, res.c, retr.c, retr.h: restructured code to
522         avoid multiple 'url_parse' calls.
523
524 2008-11-13  Micah Cowan  <micah@cowan.name>
525
526         * http.c (gethttp): Don't do anything when content-length >= our
527         requested range.
528
529 2008-11-27  Saint Xavier  <wget@sxav.eu>
530
531         * http.c (gethttp): Move authentication code before filename
532         allocation avoiding fallbacking on default filename because
533         "Content-Disposition" header wasn't present before authentcation
534         has been completed. Fixes bug #24862.
535
536 2008-11-16  Steven Schubiger  <stsc@members.fsf.org>
537
538         * main.c: Declare and initialize the numurls counter.
539
540         * ftp.c, http.c: Make the counter visible here and use it.
541         
542         * options.h: Remove old declaration from options struct.
543
544 2008-11-15  Steven Schubiger  <stsc@members.fsf.org>
545
546         * init.c (defaults): Set default waitretry value.
547
548 2008-11-14  Steven Schubiger  <stsc@members.fsf.org>
549
550         * main.c (format_and_print_line): Use a custom format 
551         string for printing leading spaces.
552
553 2008-11-12  Micah Cowan  <micah@cowan.name>
554
555         * ftp-ls.c (ftp_index): HTML-escape dir name in title, h1, a:href.
556
557 2008-11-12  Alexander Belopolsky  <alexander.belopolsky@gmail.com>
558
559         * url.c, url.h (url_escape_unsafe_and_reserved): Added.
560
561         * ftp-ls.c (ftp_index): URL-escape, rather than HTML-escape, the
562         filename appearing in the link.
563
564 2008-11-12  Steven Schubiger  <stsc@members.fsf.org>
565
566         * main.c (print_version): Hand the relevant
567         xstrdup/xfree calls back to format_and_print_line().
568
569 2008-11-11  Steven Schubiger  <stsc@members.fsf.org>
570
571         * main.c (format_and_print_line): Move both the memory
572         allocating and freeing bits upwards to print_version().
573
574 2008-11-10  Saint Xavier  <wget@sxav.eu>
575
576         * http.c: Make --auth-no-challenge works with user:pass@ in URLs.
577
578 2008-11-05  Micah Cowan  <micah@cowan.name>
579
580         * ftp.c (print_length): Should print humanized "size remaining"
581         only when it's at least 1k.
582
583 2008-10-31  Micah Cowan  <micah@cowan.name>
584
585         * main.c (print_version): Add information about the mailing list.
586
587 2008-10-31  Alexander Drozdov  <dzal_mail@mtu-net.ru>
588
589         * retr.c (fd_read_hunk): Make assert deal with maxsize == 0.
590
591         * ftp-ls.c (clean_line): Prevent underflow on empty lines.
592
593 2008-10-26  Gisle Vanem  <gvanem@broadpark.no>
594
595         * main.c (format_and_print_line): Put variables on top of
596         blocks (not all compilers are C99). Add an extra '\n' if
597         SYSTEM_WGETRC isn't defined and printed.
598
599 2008-09-09  Gisle Vanem  <gvanem@broadpark.no>
600
601         * url.c (url_error): Use aprintf, not asprintf.
602         
603 2008-09-09  Micah Cowan  <micah@cowan.name>
604
605         * init.c (home_dir): Save the calculated value for home,
606         to avoid duplicated work on repeated calls.
607         (wgetrc_file_name) [WINDOWS]: Define and initialize home var.
608
609         * build_info.c, main.c: Remove unnecessary extern vars
610         system_wgetrc and locale_dir.
611
612         * main.c: Define program_name for lib/error.c.
613
614 2008-09-02  Gisle Vanem  <gvanem@broadpark.no>
615
616         * mswindows.h: Must ensure <stdio.h> is included before
617         we redefine ?vsnprintf().
618
619 2008-08-08  Steven Schubiger  <stsc@members.fsf.org>
620
621         * main.c, utils.h: Removed some dead conditional DEBUG_MALLOC code.
622
623 2008-08-03  Micah Cowan  <micah@cowan.name>
624
625         * main.c (print_help): Added --default-page.
626
627 2008-08-01  Joao Ferreira  <joao@joaoff.com>
628
629         * init.c, main.c, options.h, url.c: Added option --default-page
630         to support alternative default names for index.html
631
632 2008-08-03  Micah Cowan  <micah@cowan.name>
633
634         * build_info.c, css-url.c: #include wget.h, not config.h.
635
636 2008-08-03  Steven Schubiger  <stsc@members.fsf.org>
637
638         * url.c, url.h (url_error): Better messages for unsupported
639         schemes, especially https.
640
641         * html-url.c, recur.c, retr.c: Adjust to new url_error
642         invocation, and free result.
643
644 2008-07-17  Steven Schubiger  <stsc@members.fsf.org>
645
646         * retr.c (retrieve_from_file): When given an URL as input file,
647         use it as baseref if none was specified and treat the input file
648         as HTML if its content type is text/html.
649
650         * init.c (cleanup): Free the memory associated with the base
651         option (when DEBUG_MALLOC is defined).
652
653 2008-07-02  Xavier Saint  <wget@sxav.eu>
654
655         * iri.c, iri.h  : New function idn_decode() to decode ASCII
656         encoded hostname to the locale.
657
658         * host.c : Show hostname to be resolved both in locale and
659         ASCII encoded.
660
661 2008-06-28  Steven Schubiger  <stsc@members.fsf.org>
662
663         * retr.c (retrieve_from_file): Allow for reading the links from
664         an external file (HTTP/FTP).
665
666 2008-06-26  Xavier Saint  <wget@sxav.eu>
667
668         * iri.c, iri.h : New functions locale_to_utf8() and
669         idn_encode() adding basic capabilities of IRI/IDN.
670
671         * url.c : Convert URLs from locale to UTF-8 allowing a basic
672         support of IRI/IDN
673
674 2008-06-25  Steven Schubiger  <stsc@members.fsf.org>
675
676         * ftp.c (getftp): When spidering a FTP URL, emit a diagnostic
677         message if the remote file exists.
678
679 2008-06-24  Steven Schubiger  <stsc@members.fsf.org>
680
681         * http.c (http_loop): Replace escnonprint() occurence with
682         a quotearg_style() call.
683
684 2008-06-24  Micah Cowan  <micah@cowan.name>
685
686         * ftp-ls.c (ftp_index): Don't assume time_t* is compatible with
687         long*. Fixes crash on Windows, and probably other systems.
688
689 2008-06-22  Steven Schubiger  <stsc@members.fsf.org>
690
691         * http.c: Explicitly initialize and deallocate the message
692         string used by the -nv --spider functionality.
693
694 2008-06-22  Steven Schubiger  <schubiger@gmail.com>
695
696         * http.c: Make -nv --spider include the file's name when it
697         exists.
698
699 2008-06-22  Micah Cowan  <micah@cowan.name>
700
701         * Makefile.am (version.c): Fixed version string invocation so it
702         once again can't result in unterminated strings, made all the
703         string vars pointers-to-const, and moved line lengths
704         below 80 (in Makefile.am, not in version.c).
705
706 2008-06-19  Xavier Saint  <wget@sxav.eu>
707
708         * iri.c, iri.h : New function check_encoding_name() as
709         a preliminary encoding name check.
710
711         * main.c, iri.c : Make use of check_encoding_name().
712
713 2008-06-19  Xavier Saint  <wget@sxav.eu>
714
715         * iri.c : Include missing stringprep.h file and add a
716         cast.
717
718         * init.c : set a default initial value for opt.enable_iri,
719         opt.locale and opt.encoding_remote.
720
721 2008-06-19  Xavier Saint  <wget@sxav.eu>
722
723         * iri.c, iri.h : Add a new function find_locale() to find
724         out the local system encoding.
725
726         * main.c : Make use of find_locale().
727
728 2008-06-19  Xavier Saint  <wget@sxav.eu>
729
730         * html-url.c : Add "content-type" meta tag parsing for
731         retrieving page encoding.
732
733         * iri.h : Make no-op version of parse_charset() return
734         NULL.
735
736 2008-06-16  Micah Cowan  <micah@cowan.name>
737
738         * http.c (http_loop): When hstat.len is higher than the
739         successfully completed content's length, but it's because we
740         _set_ it that way, don't abort.
741
742 2008-06-14  Xavier Saint  <wget@sxav.eu>
743
744         * iri.c, iri.h : New files.
745
746         * Makefile.am : Add files iri.h and conditional iri.c.
747
748         * build_info.c : Add compiled feature "iri".
749
750         * http.c : include iri.h and parse charset from Content-Type
751         header.
752
753         * init.c, main.c, options.h : if an options isn't supported
754         at compiled time, don't get rid off it and show a dummy
755         message instead if they are used.
756
757 2008-06-13  Micah Cowan  <micah@cowan.name>
758
759         * build_info.c: ENABLE_NTLM, not HAVE_NTLM; distinguish OpenSSL
760         from "ssl".
761
762 2008-06-13  Madhusudan Hosaagrahara <com.gmail.hrmadhu>
763
764         * Makefile.am, main.c, init.c, init.h, build_info.c: Adds build
765         information to the --version command line option. Fixes bug
766         #20636.
767
768 2008-06-01  Micah Cowan  <micah@cowan.name>
769
770         * main.c [WINDOWS]: Reopen stdout in binary mode, when -O - is
771         given.
772
773 2008-05-31 Micah Cowan  <micah@cowan.name>
774
775         * html-url.c, http.c: Avoid casts in a couple spots.
776
777 2008-05-30 Henri Häkkinen  <henux@users.sourceforge.net>
778
779         * cookies.c, ftp-basic.c, hash.c, html-url.c, http-ntlm.c, http.c,
780         init.c, log.c, main.c, progress.c, ptimer.c, spider.c, url.c,
781         utils.c: Minor changes to silence warnings when using -Wall.
782
783 2008-05-26  Steven Schubiger  <schubiger@gmail.com>
784
785         * ftp.c (getftp): Replace last remaining invocation of escnonprint
786         with gnulib quote.
787
788 2008-05-19  Micah Cowan  <micah@cowan.name>
789
790         * main.c (main): Password prompt should be done only once (not
791         once per argument), and should be done prior to the background
792         fork.
793
794 2008-05-17  Steven Schubiger  <schubiger@gmail.com>
795
796         * init.c (defaults): Set the preferred IP family to `none' by
797         default.
798
799 2008-05-17  Kenny Parnell  <k.parnell@gmail.com>
800
801         (cmd_spec_prefer_family): Initialize prefer_family to prefer_none.
802
803 2008-05-17  Micah Cowan  <micah@cowan.name>
804
805         * main.c (main): Handle Ctrl-D on command-line.
806
807 2008-05-15  Steven Schubiger  <schubiger@gmail.com>
808
809         * ftp.c (getftp): Verify that the file actually exists in FTP, by
810         checking it against the listing.
811
812 2008-05-15  Micah Cowan  <micah@cowan.name>
813
814         * main.c (prompt_for_password): Use the quote module.
815
816 2008-05-14  Micah Cowan  <micah@cowan.name>
817
818         * ftp.c (ftp_retrieve_list): Symlinks and other filenames
819         should be fully quoted.
820
821 2008-05-12  Micah Cowan  <micah@cowan.name>
822
823         * main.c (main): Downgrade "-N with -O" to a warning, and switch
824         it off to avoid confusing messages.
825
826 2008-04-30  Micah Cowan  <micah@cowan.name>
827
828         * progress.c (create_image): Fix glitch where too many spaces are
829         printed on lines that don't display the ETA, in multibyte
830         locales.
831
832 2008-04-30  Steven Schubiger  <stsc@members.fsf.org>
833
834         * main.c (main): New code that handles prompting for passwords
835         when specified explicitly via command-line option (using gnulib's
836         getpass-gnu module).
837         (main): Include the getpass header.
838
839         * init.c: Add "ask-password" to the list of recognized commands.
840
841         * options.h: Add an according boolean member to the options
842         struct.
843
844         * sysdep.h: Comment the defines __EXTENSIONS__ and _GNU_SOURCE
845         out, because they're now defined independently by config.h.
846
847 2008-04-27  Rabin Vincent  <rabin@rab.in>
848
849         * http.c (http_loop): Fix return for the case where we don't
850         download a file because of -nc.
851
852 2008-04-27  Micah Cowan  <micah@cowan.name>
853
854         * url.c (path_simplify): Go back to allowing leading ".." in
855         paths, but only for FTP URLs.
856         (test_path_simplify): Add scheme-specificness to tests, adapt for
857         mu_run_test.
858
859         * test.c (all_tests): Add test_path_simplify.
860
861         * main.c (main): Downgrade -r, -p with -O to a warning rather than
862         an error; elaborate just a bit more for other -O combination
863         cases.
864
865 2008-04-26  Micah Cowan  <micah@cowan.name>
866
867         * http.c (gethttp): Move proxy CONNECT handling to below the
868         retry_with_auth label, to deal with properly reconnecting to
869         proxies when we need to authenticate.
870
871 2008-04-25  Micah Cowan  <micah@cowan.name>
872
873         * Makefile.am: -I foo -> -Ifoo.
874
875 2008-04-24  Micah Cowan  <micah@cowan.name>
876
877         * main.c: Revised usage description of --convert-links to apply
878         to CSS as well as to HTML.
879
880 2008-04-23  Micah Cowan  <micah@cowan.name>
881
882         * utils.c (test_dir_matches_p): Added a test for the case
883         described in issue #20518.
884
885 2008-04-22  Micah Cowan  <micah@cowan.name>
886
887         * Makefile.am, css.lex, css.l: Renamed css.lex to css.l.
888         * recur.c (retrieve_tree): Fix typo to allow text/css files to
889         be parsed.
890
891 2008-04-22  Ted Mielczarek  <ted.mielczarek@gmail.com>
892
893         * css.lex, css-url.c, css-url.h: Added to implement support for
894         parsing CSS in Wget.
895         * convert.c: Convert links in CSS files, too.
896         * convert.h (convert_options): Added for options link_css_p,
897         link_expect_css.
898         * convert.h: Added prototype for new register_css function.
899         * html-parse.c: Added support for parsing element content, in
900         addition to tag starts and ends.
901         * html-parse.h (taginfo): Added delimiter fields for element
902         content.
903         * html-url.h: Added.
904         * html-url.c (append_url): No longer internal-linkage only. Now
905         takes position and size as explicit parameters.
906         * html-url.c: Use new html-url.h header, add support for
907         handling of "style" HTML attributes. Mark URIs obtained from
908         link tags with rel="stylesheet" with link_expect_css. Adapt
909         uses of append_url to supply the newly-added parameters for
910         position and size.
911         * http.c: Add detection for when the content-type is text/css;
912         and ensure that such files have the ".css" filename extension,
913         when --convert-links is active.
914         * recur.h: Remove declarations for functions found in
915         html-url.c (moved to html-url.h).
916         * recur.c: Add support for culling links from CSS files, too,
917         and tracking for when we're expecting the file to be CSS (even
918         when its content type isn't text/css).
919         * retr.c (retrieve_url): Add registration of CSS files.
920         * wget.h: Added TEXTCSS to dt flags enum.
921         * Makefile.am: Added css.lex, css-url.c, css-url.h, html-url.h
922         to wget_SOURCES.
923
924 2008-04-22  Jim Paris  <jim@jtan.com>
925
926         * openssl.c (ssl_init): Enable combined certificate/key in
927         single file (apparent regression from ~1.9). Resolves issue
928         #22767.
929
930 2008-04-22  Steven Schubiger  <schubiger@gmail.com>
931
932         * http.c (print_response_line): Changed to make responses always
933         be logged, even in --quiet mode, if --server-response was
934         specified. This is to bring http.c's handling of the situation
935         in line with ftp.c's.
936
937 2008-04-22  Pranab Shenoy  <pranab.loosinit.shenoy@gmail.com>
938
939         * init.c: Added test_commands_sorted unit test to check is
940         commands are sorted.  Fixes bug #21245.
941
942         * test.c: Added test_commands_sorted to the test suite.
943
944 2008-04-22  Rabin Vincent  <rabin@rab.in>
945
946         * ftp.c (ftp_get_listing): Only remove .listing if it has been
947         created. 
948
949 2008-04-22  Alain Guibert  <alguibert+bts@free.fr>
950
951         * test.h (mu_run_test): Move declaration before statements, for
952         C90 conformance. Fixes bug #22789.
953
954 2008-04-22  Mike Frysinger  <vapier@gentoo.org>
955
956         * Makefile.am: Move @LIBS@ after other libraries, for better
957         static-linking support. Fixes bug #22143.
958
959 2008-04-16  Steven Schubiger  <schubiger@gmail.com>
960
961         * ftp.c: Use Gnulib's quote function for printing filenames and
962         such.
963         * connect.c: Likewise.
964         * convert.c: Likewise.
965         * cookies.c: Likewise.
966         * ftp-opie.c: Likewise.
967         * gnutls.c: Likewise.
968         * init.c: Likewise.
969         * log.c: Likewise.
970         * mswindows.c: Likewise.
971         * openssl.c: Likewise.
972         * progress.c: Likewise.
973         * recur.c: Likewise.
974         * res.c: Likewise.
975         * utils.c: Likewise.
976
977 2008-04-16  Steven Schubiger  <schubiger@gmail.com>
978
979         * sysdep.h: Comment the defines __EXTENSIONS__ and _GNU_SOURCE 
980         out, because they're now defined independently by config.h.
981
982 2008-04-14  Steven Schubiger  <schubiger@gmail.com>
983
984         * http.c: Use Gnulib's quote function for printing filenames and
985         such.
986         * wget.h: #include "quote.h".
987
988 2008-04-12  Rabin Vincent  <rabin@rab.in>
989
990         * mswindows.c (fake_fork_child): Don't create a logfile for
991         --background when --quiet is used, but not --server-response.
992         Fixes bug #20917.
993
994         * utils.c (fork_to_background): Likewise.
995
996 2008-04-12  Micah Cowan  <micah@cowan.name>
997
998         * utils.c (aprintf): Minor formatting changes to Alex's code (80-
999         column limit, concatenated string literals, avoiding nesting
1000         levels), and removed invocation of free (since we're aborting
1001         anyway).
1002
1003 2008-04-11  Alexander Dergachev  <cy6erbr4in@gmail.com>
1004
1005         * utils.c (aprintf): Now we are setting limits (1 Mb) for text
1006         buffer when we use non-C99 vsnprintf.
1007         
1008 2008-04-11  Micah Cowan  <micah@cowan.name>
1009
1010         * ftp.c (getftp, ftp_loop_internal): Don't append to an existing
1011         .listing when --continue is used.  Fixes bug #22825. Thanks to
1012         Rabin Vincent <rabin@rab.in> for pointing the way with a
1013         suggested fix!
1014
1015 2008-04-10  Alexander Dergachev  <cy6erbr4in@gmail.com>
1016
1017         * xmalloc.c, xmalloc.h (memfatal): Now exported; accepts an
1018         "unknown" value for the attempted allocation size.
1019         * utils.c (aprintf): Now calls memfatal, instead of aborting.
1020
1021 2008-03-19  Micah Cowan  <micah@cowan.name>
1022
1023         * utils.c (test_dir_matches_p): More tests related for
1024         dir_matches_p.
1025
1026 2008-03-17  Micah Cowan  <micah@cowan.name>
1027
1028         * connect.c: Include sys/time.h to support use of the select
1029         function on older systems.
1030
1031 2008-02-11  Benno Schulenberg  <bensberg@justemail.net>
1032
1033         * http.c: More accurate and descriptive messages for when a file
1034         won't be retrieved during spider-mode.
1035
1036 2008-02-10  Micah Cowan  <micah@cowan.name>
1037
1038         * http.c: Added existence_checked member to the http_stat
1039         struct.
1040         (gethttp): Mark hs->existence_checked when we've checked whether
1041         a file-to-download exists; so we don't check it again if the
1042         connection gets lost (and potentially pick a new "unique" name).
1043         This fixes bug 22251.
1044         * progress.c (create_image): Add space for an extra column in
1045         the "eta" portion of the progress bar image; to deal with
1046         too-long Czech translation.
1047         * main.c, http.c, init.c: Added --auth-no-challenge option, to
1048         bring back 1.10.2 unsafe auth behavior when needed. This fixes
1049         bug #22242.
1050
1051 2008-02-07  Micah Cowan  <micah@cowan.name>
1052
1053         * progress.c (create_image): Remove assertion on exceeding
1054         screen width, which given the less-than-robust code there, can
1055         be broken by a number of factors (such as large file downloads).
1056
1057 2008-02-06  Micah Cowan  <micah@cowan.name>
1058
1059         * progress.c (countcols): Use strlen() when mbtowc or wcwidth
1060         not available (or not using NLS).
1061         * utils.c: Ensure we use single-byte separators when not doing
1062         NLS progress-bars.
1063         * wget.h: Determine whether to use NLS for progress-bars, based
1064         on whether wcwidth and mbtowc are available.
1065
1066 2008-02-03  Micah Cowan  <micah@cowan.name>
1067
1068         * progress.c (create_image): Use number of characters/columns
1069         consumed, rather than number of bytes, to determine how much of
1070         a line we've used. Fixes assertion errors and field alignment
1071         bugs (#22161, #20481)
1072         (get_eta, count_cols): Added to support the changes for
1073         create_image.
1074         * http.c (http_loop): Put no-clobber logic back into http_loop,
1075         before starting to fetch, for when we're not doing
1076         content-disposition.
1077
1078 2008-01-31  Micah Cowan  <micah@cowan.name>
1079
1080         * http.c (gethttp): Don't derive hs->contlen from possibly
1081         invalid/missing Content-Length; instead, get the appropriate
1082         value from the Content-Range header values.
1083         (parse_content_range): Handle '*' instance-length field.
1084
1085 2008-01-25  Micah Cowan  <micah@cowan.name>
1086
1087         * main.c: Added notes to translators regarding (C), diacritics
1088         in names.
1089         * Makefile.am, cmpt.c, connect.c, connect.h, convert.c,
1090         cookies.c, cookies.h, ftp-basic.c, ftp-ls.c, ftp-opie.c, ftp.c,
1091         ftp.h, gen-md5.c, gen-md5.h, gnutls.c, hash.c, hash.h, host.c,
1092         host.h, html-parse.c, html-parse.h, html-url.c, http-ntlm.c,
1093         http-ntlm.h, http.c, http.h, init.c, init.h, log.c, log.h,
1094         main.c, mswindows.c, mswindows.h, netrc.c, netrc.h, openssl.c,
1095         options.h, progress.c, progress.h, ptimer.c, ptimer.h, recur.c,
1096         recur.h, res.c, res.h, retr.c, retr.h, spider.c, spider.h,
1097         ssl.h, sysdep.h, test.c, test.h, url.c, url.h, utils.c,
1098         utils.h, wget.h, xmalloc.c, xmalloc.h: Updated copyright year.
1099
1100 2007-12-10  Micah Cowan  <micah@cowan.name>
1101
1102         * main.c: The option is --content-disposition, not
1103         --no-content-disposition (at the moment).
1104
1105 2007-12-08  Hrvoje Niksic  <hniksic@xemacs.org>
1106
1107         * ftp.c (ftp_retrieve_glob): Print both arguments of fnmatch in
1108         fnmatch error message.
1109         (ftp_retrieve_glob): Don't match with fnmatch if we're only
1110         supposed to get one file.
1111
1112 2007-12-07  Micah Cowan  <micah@cowan.name>
1113
1114         * Makefile.am: Plug in vars to include stuff from
1115         $(top_srcdir)/md5 when appropriate.
1116
1117 2007-12-05  Micah Cowan  <micah@cowan.name>
1118
1119         * utils.c (subdir_p): Handle the case where d1 is "".
1120         * convert.c (convert_all_links): Don't return without
1121         deallocating timer.
1122
1123 2007-11-28  Micah Cowan  <micah@cowan.name>
1124
1125         * Makefile.am, cmpt.c, connect.c, connect.h, convert.c,
1126         convert.h, cookies.c, cookies.h, ftp-basic.c, ftp-ls.c,
1127         ftp-opie.c, ftp.c, ftp.h, gen-md5.c, gen-md5.h, gnutls.c,
1128         hash.c, hash.h, host.c, host.h, html-parse.c, html-parse.h,
1129         html-url.c, http-ntlm.c, http-ntlm.h, http.c, http.h, init.c,
1130         init.h, log.c, log.h, main.c, mswindows.c, mswindows.h,
1131         netrc.c, netrc.h, openssl.c, options.h, progress.c, progress.h,
1132         ptimer.c, ptimer.h, recur.c, recur.h, res.c, res.h, retr.c,
1133         retr.h, safe-ctype.c, safe-ctype.h, spider.c, spider.h, ssl.h,
1134         sysdep.h, test.c, test.h, url.c, url.h, utils.c, utils.h,
1135         wget.h, xmalloc.c, xmalloc.h: Updated license exception for
1136         OpenSSL, per the SFLC.
1137
1138 2007-10-30  Micah Cowan  <micah@cowan.name>
1139
1140         * main.c (main): Declare argv parameter as char **argv, rather
1141         than char *const *argv. This fixes usage of getopt_long,
1142         regardless of whether getopt_long has a constified argv or not.
1143
1144 2007-10-22  Gisle Vanem  <gvanem@broadpark.no>
1145
1146         * mswindows.c: Move INHIBIT_WRAP macro definition up with wget.h
1147         inclusion.
1148
1149 2007-10-18  Steven Schweda  <sms@antinode.org>
1150
1151         * sysdep.h: #include <stdint.h> as well as <inttypes.h>, to work
1152         around a glitch on Tru64 systems.
1153
1154 2007-10-18  Micah Cowan  <micah@cowan.name>
1155
1156         * Makefile.am: version.c should not be distributed. Removed
1157         config-post.h. Add version.c dependency and gnulib include path
1158         for libunittest.a.
1159         * sysdep.h: Got contents of config-post.h
1160         * config-post.h: Removed.
1161         * wget.h: #include "config.h".
1162         * alloca.c, cmpt.c, connect.c, convert.c, cookies.c,
1163         ftp-basic.c, ftp-ls.c, ftp-opie.c, ftp.c, gen-md5.c, gnutls.c,
1164         hash.c, host.c, html-parse.c, html-url.c, http-ntlm.c, http.c,
1165         init.c, log.c, main.c, mswindows.c, netrc.c, openssl.c,
1166         progress.c, ptimer.c, recur.c, res.c, retr.c, spider.c, url.c,
1167         utils.c, xmalloc.c: Use wget.h at very top, and instead of
1168         config.h.
1169
1170 2007-10-15  Micah Cowan  <micah@cowan.name>
1171
1172         * Makefile.am: Remove intermediary hg-id file generation, make
1173         version.c-generation more portable.
1174
1175 2007-10-14  Micah Cowan  <micah@cowan.name>
1176
1177         * cmpt.c, cookies.c, ftp-basic.c, ftp-ls.c, ftp.c, hash.c,
1178         host.c, html-parse.c, html-url.c, http-ntlm.c, http.c, init.c,
1179         log.c, main.c, netrc.c, openssl.c, res.c, url.c, utils.c,
1180         wget.h: Replace uses of ISSPACE, etc with c_isspace, etc.
1181         * gnu-md5.c, gnu-md5.h: Removed, in deference to gnulib.
1182         * Makefile.am: Removed gnu-md5.h from wget_SOURCES.
1183         * gen-md5.c: Changed #inclusion of gnu-md5.h to md5.h (gnulib's).
1184         * recur.c (download_child_p): Print error if unlink of
1185         robots.txt fails.
1186         * main.c (main): --spider or --delete-after now implies
1187         --no-directories (thanks, Josh Williams).
1188
1189 2007-10-14  Joshua David Williams  <yurimxpxman@gmail.com>
1190
1191         * recur.c (download_child_p): Remove robots.txt if
1192         --delete-after or --spider is on.
1193
1194 2007-10-13  Micah Cowan  <micah@cowan.name>
1195
1196         * Makefile.am: Make version.c depend on Wget dependencies (source
1197         files, plus such things as LIBOBJS so we get things like
1198         http-ntlm.c). Removed getopt.[ch], as we're now using gnulib for
1199         these.
1200
1201 2007-10-10  Micah Cowan  <micah@cowan.name>
1202
1203         * http-ntlm.c: Include openssl/opensslv.h explicitly, instead of
1204         hoping it'll be included by accident in openssl/des.h.
1205
1206 2007-10-09  Gisle Vanem  <gvanem@broadpark.no>
1207
1208         * mswindows.c: 'argc' and 'argv' in 'windows_main()' are no longer
1209         needed.  Hence simply the prototype. Free 'exec_name' at exit.
1210
1211 2007-10-09  Micah Cowan  <micah@cowan.name>
1212
1213         * gettext.h: Imported from /usr/share/gettext, fuller handling
1214         of --disable-nls.
1215         * wget.h: Remove logic for handling lack of NLS (now in
1216         gettext.h).
1217         * main.c: Use gettext's ENABLE_NLS rather than HAVE_NLS.
1218         * Makefile.am: added @LIBINTL@ to LIBS (though it probably
1219         belongs in LDADD, along with everything else currently assigned
1220         to LIBS).
1221
1222 2007-10-08  Micah Cowan  <micah@cowan.name>
1223
1224         * http.c (http_loop): Add send_head_first conditional back
1225         around code that needs it, but not around the last-modified
1226         header-parsing stuff this time. Removed no-longer-useful (was it
1227         ever?) restart_loop boolean, continuing unconditionally at end
1228         of send_head_first conditional block (if we haven't jumped out).
1229
1230 2007-10-04  Micah Cowan  <micah@cowan.name>
1231
1232         * http.c (http_loop): We've got_name if content_disposition
1233         support isn't on; make sure we continue properly in that case,
1234         even though we're not sending HEAD.
1235         * Makefile.in: Removed, replaced by Makefile.am.
1236         * Makefile.am: Converted from Makefile.in.
1237
1238 2007-10-02  Gisle Vanem  <gvanem@broadpark.no>
1239         
1240         * ftp.c: Use "_listing" for MSDOS (".listing" is illegal).
1241
1242         * url.c: Update comment for 'filechr_not_windows'.
1243
1244         * utils.c: Include <process.h> for 'getpid()' on Watcom.
1245
1246 2007-10-02  Micah Cowan  <micah@cowan.name>
1247
1248         * ftp.c (getftp, ftp_loop_internal), http.c (http_loop), main
1249         (main): Use datetime_str instead of time_str, for those who have
1250         potentially long-running sessions. Based on suggestions by Saso
1251         Tomat <miskox@hotmail.com> and Steven M. Schweda
1252         <sms@antinode.org>.
1253         * http.c (gethttp): Warn about host lookup failures. Adjusted
1254         from Stephen Gildea's patch.
1255
1256 2007-10-02  Stephen Gildea  <stepheng+wget@gildea.com>
1257
1258         * connect.c (connect_to_host): Warn about host lookup failures.
1259
1260 2007-09-25  Micah Cowan  <micah@cowan.name>
1261
1262         * Makefile.in: Use EXEEXT instead of exeext.
1263
1264 2007-09-24  Gisle Vanem  <giva@bgnett.no>
1265
1266         * connect.c, init.c, main.c, openssl.c, options.h, sysdep.h,
1267         url.c, utils.c: Added support for building on MS-DOS.
1268
1269 2007-09-24  Jochen Roderburg  <roderburg@uni-koeln.de>
1270
1271         * http.c (http_zero): Remove no-longer-used local_size variable.
1272         Fixes bug #21057.
1273
1274 2007-09-12  Micah Cowan  <micah@cowan.name>
1275
1276         * http.c (http_loop): Remove send_head_first from condition for
1277         parsing timestamp.
1278
1279 2007-08-29  Micah Cowan  <micah@cowan.name>
1280
1281         * openssl.c (ssl_init): Re un-const-ified the meth local
1282         variable, to match current versions of openssl.
1283         * spider.c: Removed visited_url function, as it may be very
1284         inefficient.
1285         (print_broken_links): Removed traversal of referrers, until such
1286         time as a more efficient implementation can be written.
1287         * spider.h: Replaced declaration of visited_url with an
1288         empty-bodied, function-like macro.
1289
1290 2007-08-27  Gisle Vanem  <giva@bgnett.no>
1291
1292         * mswindows.c (run_with_timeout): Ensure that the correct
1293         conversion specification is used for the return result of
1294         the GetLastError function.
1295         * getopt.c: Fix missing (but, accidentally, legal) comment
1296         delimiter after licensing text.
1297         * recur.c (retrieve_tree): Inserted missing cast for strip_auth.
1298         Includes adjustment by Ralf Wildenhues.
1299         * openssl.c (ssl_init): const-ified the meth local variable.
1300         * main.c: Include all the static function definitions in the
1301         "#ifndef TESTING" clause, leaving just the definitions for
1302         exec_name (not set), and opt.
1303         * utils.c (run_with_timeout): Now returns bool, to align with
1304         declaration in utils.h.
1305
1306 2007-08-27  Micah Cowan  <micah@cowan.name>
1307
1308         * wget.h: Added macro replacement for ngettext, for environs
1309         that lack NLS.
1310
1311 2007-08-26  Micah Cowan  <micah@cowan.name>
1312
1313         * spider.c (print_broken_links): Fixed incorrect plurals msgid
1314         usage, switched to use ngettext function.
1315
1316 2007-08-24  Micah Cowan  <micah@cowan.name>
1317
1318         * http.c (http_loop): Introduced time_came_from_head boolean
1319         flag, to help avoid parsing the same Last-Modified header twice.
1320         Replaced spidering returns of RETRUNNEEDED for some situations,
1321         to RETROK, as otherwise it will be interpreted as an error.
1322         RETRUNNEEDED appears never to be referenced outside of
1323         http.c (and wget.h), and, when returned by gethttp, is
1324         translated by http_loop to RETROK.
1325         * url.c (are_urls_equal): Don't call getchar_from_escaped_string
1326         if u2 is shorter than u1.
1327         (getchar_from_escaped_string): Don't decode reserved characters.
1328         Handle illegally appearing '%'s as literal '%'s. Ensure hex
1329         digits before attempting to decode.
1330         (test_are_urls_equal): Added tests to handle u2 shorter than u1,
1331         and %2f not treated the same as /.
1332         * spider.c (in_url_list_p): Don't call are_urls_equal if one of
1333         them is NULL.
1334
1335 2007-08-23  Joshua David Williams  <yurimxpxman@gmail.com>
1336
1337         * spider.c (in_url_list_p): Removed the bool verbose argument
1338
1339 2007-08-22  Mauro Tortonesi  <mauro@ferrara.linux.it>
1340
1341         * http.c (http_loop): Fall back to GET if HEAD fails with a 500 or 501
1342         error code.
1343
1344 2007-08-21  Mauro Tortonesi  <mauro@ferrara.linux.it>
1345         
1346         * http.c (http_loop): Send preliminary HEAD request if -N is given and
1347         the destination file exists already.
1348
1349 2007-08-10  Mauro Tortonesi  <mauro@ferrara.linux.it>
1350
1351         * http.c (http_loop): Fixed HTTP HEAD requests logic when --spider is
1352         given.
1353
1354 2007-08-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1355
1356         * url.c (append_uri_pathel): Do not assume dest string to be
1357         zero-terminated.
1358         (test_append_uri_pathel): Terminate string to fix test failure.
1359
1360 2007-08-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1361
1362         * url.c (url_string): Use comparison, not assignment, in
1363         check for auth_mode == URL_AUTH_HIDE_PASSWD.
1364
1365 2007-08-09  Micah Cowan  <micah@cowan.name>
1366
1367         * http.c (http_loop): If we got a HEAD and then a GET, and the
1368         GET had a timestamp, use that one, not any we may have gotten
1369         from the HEAD.
1370
1371 2007-08-08  Micah Cowan  <micah@cowan.name>
1372
1373         * init.c (defaults): Content disposition will not be default,
1374         since it currently results in extra round-trips.
1375
1376 2007-07-31  Micah Cowan  <micah@cowan.name>
1377
1378         * http.c (gethttp): Set contlen = -1 when we encounter a
1379         negative-valued Content-Length header, so we don't consider it
1380         an internal error later on and call abort().
1381
1382 2007-07-29  Micah Cowan  <micah@cowan.name>
1383
1384         * url.h, url.c (url_string): Replaced bool arg of the url_string
1385         function with enum url_auth_mode, with added option to
1386         completely remove user/pass auth information.
1387         * http.c, ftp.c, url.c, recur.c: Adapted call to url_string
1388         function to fit new usage.
1389         * recur.c (retrieve_tree): Remove auth info from Referer header.
1390
1391 2007-07-28  Micah Cowan  <micah@cowan.name>
1392
1393         * options.h, init.c, retr.c, main.c: renamed opt maxredirect
1394         field to max_redirect, for improved consistency.
1395         * init.c: changed max_redirect parser from cmd_number_inf to
1396         cmd_number, as infinite redirects may not be appropriate.
1397         Alternatively, if cmd_number_inf should be used, then
1398         opt.max_redirect's value should be checked a bit differently in
1399         retr.c, to allow for the "infinite" meaning of zero.
1400
1401 2007-07-25  Micah Cowan  <micah@cowan.name>
1402
1403         * http.c (create_authorization_line)
1404         (basic_authentication_encode, known_authentication_scheme_p)
1405         (load_cookies): Moved declarations up.
1406         (basic_authed_hosts): Added. Tracks what hosts have issued Basic
1407         challenge and been given the global username, password.
1408         (maybe_send_basic_creds): Added. Sends Basic creds for hosts that
1409         have issued Basic challenges.
1410         (register_basic_auth_host): Added. Instantiates
1411         basic_authed_hosts if necessary, then registers the host that
1412         has issued a challenge.
1413         (gethttp) <auth>: Only send authentication credentials after
1414         we've received a challenge from that host. This is a stop-gap
1415         fix until a proper fix can be implemented; still isn't quite
1416         right, as we should only be sending credentials automatically
1417         for authenticated paths and below, and not for the entire host.
1418
1419 2007-07-16  Joshua David Williams  <yurimxpxman@gmail.com>
1420
1421         * options.h: added maxredirect to options struct
1422         * init.c: added maxredirect to list of variables
1423         * retr.c (retrieve_url): replaced MAX_REDIRECTIONS with opt.maxredirect
1424         * main.c: added option --max-redirect
1425
1426 2007-07-16  Joshua David Williams  <yurimxpxman@gmail.com>
1427
1428         * test.h: tests made more verbose; now displays the name
1429         of each test run.
1430
1431 2007-07-10  Mauro Tortonesi  <mauro@ferrara.linux.it>
1432
1433         * http.c (http_loop): Fixed the HTTP requests logic. Now it skips the 
1434         preliminary HEAD request if either -O or --no-content-disposition are 
1435         given, and neither --spider and -N are given.
1436
1437 2007-07-05  Micah Cowan  <micah@cowan.name>
1438
1439         * cmpt.c, connect.c, connect.h, convert.c, convert.h:
1440         * cookies.c, cookies.h, ftp-basic.c, ftp.c, ftp.h, ftp-ls.c:
1441         * ftp-opie.c, gen-md5.c, gen-md5.h, getopt.c, getopt.h, gnu-md5.c:
1442         * gnu-md5.h, gnutls.c, hash.c, hash.h, host.c, host.h:
1443         * html-parse.c, html-parse.h, html-url.c, http.c, http.h:
1444         * http-ntlm.c, http-ntlm.h, init.c, init.h, log.c, log.h, main.c:
1445         * Makefile.in, mswindows.c, mswindows.h, netrc.c, netrc.h:
1446         * openssl.c, options.h, progress.c, progress.h, ptimer.c:
1447         * ptimer.h, recur.c, recur.h, res.c, res.h, retr.c, retr.h:
1448         * safe-ctype.c, safe-ctype.h, spider.c, spider.h, ssl.h, sysdep.h:
1449         * test.c, test.h, url.c, url.h, utils.c, utils.h, wget.h:
1450         * xmalloc.c, xmalloc.h:
1451         Updated GPL reference to version 3 or later, removed FSF
1452         address.
1453
1454 2007-07-04  Mauro Tortonesi  <mauro@ferrara.linux.it>
1455
1456         * http.c (http_loop): Skip HEAD request and start immediately with GET
1457         if -O is given.
1458
1459 2007-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
1460
1461         * http.c (print_server_response): Escape non-printable characters
1462         in server respone.
1463
1464 2007-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
1465
1466         * netrc.c: Don't make netrc_list static, as it prevents
1467         compilation with DEBUG_MALLOC.
1468
1469         * utils.c (aprintf): Don't use vasprintf when DEBUG_MALLOC is
1470         requested because, in that case, we want the calls to malloc to be
1471         coming from us.
1472
1473 2007-01-23  Hrvoje Niksic  <hniksic@xemacs.org>
1474
1475         * cookies.c (parse_set_cookie): Would erroneously discard cookies
1476         with unparsable expiry time.
1477
1478 2007-01-23  Hrvoje Niksic  <hniksic@xemacs.org>
1479
1480         * progress.c (create_image): Check for ETA overflow.
1481         (print_row_stats): Ditto.
1482
1483 2007-01-09  Mauro Tortonesi  <mauro@ferrara.linux.it>
1484
1485         * init.c (cmd_spec_prefer_family): Small fix to get rid of a gcc
1486         warning about strict-aliasing violation.
1487
1488 2007-01-09  Steven M. Schweda  <sms@antinode.org>
1489
1490         * ftp-basic.c (ftp_syst): Fixed segfault if response text is missing.
1491
1492 2006-12-29  Gisle Vanem  <giva@bgnett.no>
1493
1494         * mswindows.c: Avoid a warning if 'ws_hangup()' is unused.
1495
1496 2006-12-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
1497
1498         * http.c (parse_content_disposition): Consider directory prefix, if
1499         specified.
1500
1501 2006-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
1502
1503         * retr.c (retrieve_from_file): Ditto.
1504         (url_uses_proxy): New function.
1505
1506         * main.c (main): Don't check for opt.use_proxy when deciding
1507         whether to call retrieve_url or retrieve_tree; check whether the
1508         proxy would be used for *this* URL.
1509
1510 2006-10-17  Mike Grant  <mggr@pml.ac.uk>
1511
1512         * ftp.c (ftp_loop_internal): Would incorrectly skip changing
1513         working directory when retrying after a failed FTP attempt.
1514         Originally reported by Nate Eldredge.
1515
1516 2006-10-12  Mauro Tortonesi  <mauro@ferrara.linux.it>
1517
1518         * convert.c (downloaded_file): Fixed bug which used to break -E -k -K 
1519         mode.
1520
1521 2006-08-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
1522
1523         * http.c: #include'd spider.h to get rid of compiler warnings.
1524
1525         * main.c: Ditto.
1526
1527         * recur.c: Ditto.
1528
1529 2006-08-24  Mauro Tortonesi  <mauro@ferrara.linux.it>
1530
1531         * Makefile.in: Added spider.c to the list of files to compile and
1532         spider.h to the list of header files. Updated copyright information.
1533
1534         * http.c: Major changes to recursive spider mode. Now for every
1535         resource we are supposed to check, we send a HEAD request to find out
1536         if it exists. If the resource is a HTML file, we retrieve it and parse
1537         it to discover links to other resources.
1538
1539         * recur.c: Ditto.
1540
1541         * res.c (res_retrieve_file): Disable opt.timestamping and opt.spider
1542         when retrieving robots.txt. Updated copyright information.
1543
1544         * convert.c: Moved code tracking broken links to spider.c.
1545
1546         * convert.h: Ditto.
1547
1548         * spider.c: Created new file to keep track of visited URLs in spider
1549         mode.
1550
1551         * spider.h: Ditto.
1552
1553 2006-08-21  Mauro Tortonesi  <mauro@ferrara.linux.it>
1554
1555         * http.c: Fixed timestamping-related bug.
1556
1557 2006-08-16  Mauro Tortonesi  <mauro@ferrara.linux.it>
1558
1559         * http.c: Fixed bug which broke --continue feature. Now if -c is
1560         given, http_loop sends a HEAD request to find out the destination
1561         filename before resuming download.
1562
1563 2006-08-08  Hrvoje Niksic  <hniksic@xemacs.org>
1564
1565         * utils.c (datetime_str): Avoid code repetition with time_str.
1566
1567 2006-07-21  Hrvoje Niksic  <hniksic@xemacs.org>
1568
1569         * init.c (commands): Correctly place "contentdisposition".
1570
1571 2006-07-14  Mauro Tortonesi  <mauro@ferrara.linux.it>
1572         
1573         * sysdep.h: If intptr_t isn't defined, simply typedef it to long.
1574
1575         * http.c: Added explicit cast to int in logprintf call to remove
1576         compiler warnings on 64-bit platforms.
1577
1578         * connect.c: Added a few casts to intptr_t to remove compiler warnings
1579         on 64-bit platforms.
1580         
1581         * main.c: Disable -r, -p and -N when -O is used. Disable -k when -O is
1582         used and multiple URLs are given. Update maintainer information.
1583         
1584         * all: Update copyright information.
1585         
1586 2006-07-10  KJKHyperion  <hackbunny@reactos.com>
1587
1588         * url.c (filechr_table): Mark DEL (0x7f) as a control character
1589         and | as a character Windows can't handle.
1590
1591 2006-06-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
1592
1593         * res.c: Implemented is_robots_txt_url function for detection of
1594         robots.txt URLs and related test routine.
1595
1596         * res.h: Ditto.
1597
1598         * url.c: Implemented are_urls_equal function for URL comparison and
1599         related testing routine.
1600
1601         * url.h: Ditto.
1602
1603         * convert.c: Fixes for recursive spider mode: don't consider
1604         non-existing robots.txt as a broken link, and use are_urls_equal
1605         instead of strcasecmp for referrer URLs comparison.
1606
1607         * test.c: Call tests routines for are_urls_equal and 
1608         is_robots_txt_url.
1609
1610 2006-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
1611
1612         * wget.h (wgint): Typedef to any 64-bit (or larger) type we can
1613         find, not necessarily off_t or long.
1614
1615 2006-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
1616
1617         * cmpt.c (strtoll): Check for overflow and underflow without
1618         relying on (technically) undefined behavior.  Don't assume that
1619         strtoll_type is 64 bits wide.
1620
1621 2006-06-21  Hrvoje Niksic  <hniksic@xemacs.org>
1622
1623         * utils.c (base64_encode): Cast void pointer to char * before
1624         doing arithmetic.
1625
1626 2006-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
1627
1628         * utils.c (base64_encode): Made TBL const.
1629         (base64_decode): Made the base64_char_to_value table const.
1630
1631 2006-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
1632
1633         * utils.c (base64_encode): Made the DATA pointer void * so the
1634         callers can pass it any kind of pointer (including both signed and
1635         unsigned char pointers).
1636         (base64_decode): Ditto for DEST.
1637
1638 2006-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
1639
1640         * utils.c (base64_encode): Would read past end of STR.
1641         Reported by rick@eckle.org.
1642
1643 2006-06-13  Mauro Tortonesi  <mauro@ferrara.linux.it>
1644
1645         * options.h (struct options): Introduced member restrict_files_case to
1646         keep track of preferences on character case restrictions for
1647         filenames.
1648
1649         * init.c: Modified defaults and cmd_spec_restrict_file_names to
1650         support character case restrictions for filenames. Added
1651         test_cmd_spec_restrict_file_names unit test.
1652
1653         * url.c: Modified append_uri_pathel to support character case
1654         restrictions for filenames. Added test_append_uri_pathel unit test.
1655
1656         * test.c: Added test_cmd_spec_restrict_file_names and
1657         test_append_uri_pathel to the list of unit tests to run.
1658
1659 2006-06-12  Mauro Tortonesi  <mauro@ferrara.linux.it>
1660
1661         * retr.c (retrieve_from_file): Use retrieve_tree and automatically
1662         turn on opt.follow_ftp in case of recursive FTP retrieval through HTTP
1663         proxy.
1664
1665         * main.c: Automatically turn on opt.follow_ftp in case of recursive
1666         FTP retrieval through HTTP proxy.
1667
1668 2006-06-12  Tony Lewis  <tlewis@exelana.com>
1669
1670         * main.c: Improved CHEN Peng's patch by proposing a simpler logic.
1671
1672 2006-06-12  CHEN Peng  <chenpeng@alumni.nus.edu.sg>
1673
1674         * main.c: Use retrieve_tree in case of recursive FTP retrieval through
1675         HTTP proxy.
1676
1677 2006-05-25  Mauro Tortonesi  <mauro@ferrara.linux.it>
1678
1679         * convert.c: Added mechanisms to keep track broken links.
1680
1681         * convert.h: Ditto.
1682
1683         * wget.h: Reordered and enumerated uerr_t constants.
1684
1685         * recur.c: Fixes to support recursive spider mode.
1686
1687         * http.c: Ditto.
1688
1689         * main.c: Print broken links in case of recursive spider mode.
1690
1691         * retr.c: Changed interface of retrieve_url.
1692
1693         * retr.h: Ditto.
1694
1695         * ftp.c: Changed interface of ftp_loop.
1696
1697         * ftp.h: Ditto.
1698
1699         * res.c: Minor change to reflect changes in interface of retrieve_url.
1700
1701 2006-05-18  Lawrence Jones  <lawrence.jones@ugs.com>
1702
1703         * ftp-ls.c (ftp_parse_unix_ls): Correct size parsing, add size
1704         and filename debugging output.
1705
1706 2006-04-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
1707
1708         * http.c: If Content-Disposition header is present, allow unique
1709         filename generation unless -nc is given. Permit to disable parsing of
1710         Content-Disposition header.
1711
1712         * options.h: Added option --no-content-disposition to disable parsing
1713         of HTTP Content-Disposition header.
1714
1715         * init.c: Ditto.
1716         
1717         * main.c: Ditto.
1718
1719 2006-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
1720
1721         * hash.c (TOLOWER): Wrap macro arg in parentheses.
1722
1723 2006-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
1724
1725         * http.c (parse_content_disposition): Doc fix.
1726
1727 2006-03-15  Mauro Tortonesi  <mauro@ferrara.linux.it>
1728
1729         * utils.c: Restricted operational semantics of frontcmp and proclist
1730         from generic strings to directory names and them to subdir_p and
1731         dir_matches_p respectively.  Applied George Ogata's one line patch to
1732         restrict algorithm of subdir_p to full directory name matching.  Added
1733         testcases for subdir_p and dir_matches_p.
1734
1735         * utils.h: Changed all frontcmp occurrences to subdir_p.
1736         
1737         * recur.c: Ditto.
1738         
1739         * test.c: Changed type returned by test functions from char * to const
1740         char *.  Added test_subdir_p and test_dir_matches_p to the list of
1741         tests to run.
1742
1743         * http.c (test_parse_content_disposition): Changed return type from
1744         char * to const char *. 
1745
1746 2006-03-14  Mauro Tortonesi  <mauro@ferrara.linux.it>
1747
1748         * recur.c (struct queue_element): Changed type of html_allowed member
1749         to bool.
1750         
1751 2006-03-09  Mauro Tortonesi  <mauro@ferrara.linux.it>
1752
1753         * ftp.c (ftp_list): Try `LIST -a' command first and revert to `LIST'
1754         in case of failure.
1755
1756 2006-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
1757
1758         * hash.c (TOLOWER): Fix definition when STANDALONE.
1759         Reported by Beni Serfaty.
1760
1761 2006-03-02  Mauro Tortonesi  <mauro@ferrara.linux.it>
1762
1763         * http.c (http_loop): Fixed recursive HTTP retrieval.
1764
1765 2006-02-28  Hrvoje Niksic  <hniksic@xemacs.org>
1766
1767         * http.c (extract_param): Declare extern so it can be used from
1768         other files.
1769         (extract_param): Return error for empty name.
1770
1771 2006-02-28  Hrvoje Niksic  <hniksic@xemacs.org>
1772
1773         * url.c (find_last_char): Define in terms of memrchr.
1774
1775         * cmpt.c (memrchr): Define it on systems that don't have it.
1776
1777         * http.c (extract_param): New function for parsing header values
1778         with parameters.
1779         (parse_content_disposition): Use it.  Don't allow slashes and
1780         backslashes in the file name.
1781
1782 2006-02-27  Hrvoje Niksic  <hniksic@xemacs.org>
1783
1784         * url.c (path_simplify): Don't preserve ".." at beginning of path.
1785         Suggested by Frank McCown.
1786
1787 2006-02-25  Hrvoje Niksic  <hniksic@xemacs.org>
1788
1789         * http.c (gethttp): Only use FILE.N.html if FILE.html exists.
1790
1791 2006-02-09  Hrvoje Niksic  <hniksic@xemacs.org>
1792
1793         * mswindows.c (run_with_timeout): Made thread_hnd non-static.
1794
1795 2006-02-05  Hrvoje Niksic  <hniksic@xemacs.org>
1796
1797         * retr.c (sleep_between_retrievals): Sleep at a minimum of 1/2 of
1798         the specified wait period.
1799
1800 2006-02-03  Hrvoje Niksic  <hniksic@xemacs.org>
1801
1802         * utils.c (number_to_string): Don't use sprintf for printing
1803         WGINT_MIN; simply divide n by 10 and defer printing the last
1804         digit.
1805         (number_to_string): Removed the SPRINTF_WGINT macro.
1806
1807 2006-02-03  Mauro Tortonesi  <mauro@ferrara.linux.it>
1808
1809         * http.c: Fixed support for Content-Disposition header.
1810
1811         * test.c: Added test_parse_content_disposition to the list of unit
1812         tests to run.
1813
1814 2006-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
1815
1816         * hash.c: Don't define countof if it's already defined.
1817
1818         * hash.c: Obtain the definition of uintptr_t when standalone.
1819
1820 2006-01-30  Mauro Tortonesi  <mauro@ferrara.linux.it>
1821
1822         * http.c: Changed output format. Removed excessively verbose debugging
1823         output.
1824
1825 2005-12-07  Mauro Tortonesi  <mauro@ferrara.linux.it>
1826
1827         * http.c: Fixed pre-download verbose output which was broken by 
1828         HTTP code refactoring.
1829
1830 2005-11-23  Mauro Tortonesi  <mauro@ferrara.linux.it>
1831
1832         * http.c: Refactored HTTP code.  If -O is not used, the new code
1833         delays the choice of the file name where the downloaded resource
1834         will be saved until the HTTP headers have been retrieved.
1835         Added support for Content-Disposition header. 
1836
1837 2005-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
1838
1839         * hash.c (INVALID_PTR): Use uintptr_t instead of unsigned long.
1840         (hash_pointer): Don't assume a pointer fits in `unsigned long'.
1841
1842 2005-11-02  Mauro Tortonesi  <mauro@ferrara.linux.it>
1843
1844         * Makefile.in: Removed support for unit testing (now it is in
1845         tests/Makefile.in).
1846
1847 2005-10-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
1848
1849         * Makefile.in: Added basic support for unit testing.
1850
1851         * test.c: Ditto.
1852         
1853         * test.h: Ditto.
1854         
1855 2005-10-13  Daniel Stenberg  <daniel@haxx.se>
1856
1857         * http-ntlm.c (ntlm_output): Fixed buffer overflow vulnerability.
1858
1859 2005-10-09  Russ Allbery  <rra@stanford.edu>
1860
1861         * snprintf.c: Remove round to round_int and pow10 to pow10_int, to
1862         avoid warnings from GCC 4.0.
1863
1864 2005-10-05  Mauro Tortonesi  <mauro@ferrara.linux.it>
1865
1866         * retr.c: Changed semantics of no_proxy_match.
1867
1868 2005-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
1869
1870         * main.c (main): Don't print the summary if nothing has been downloaded.
1871
1872 2005-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
1873
1874         * retr.c (retr_rate): Rename parameter from MSECS to SECS since it
1875         no longer holds milliseconds.
1876
1877 2005-09-01  Hrvoje Niksic  <hniksic@xemacs.org>
1878
1879         * progress.c: Introduce symbolic constants for "magic" values of
1880         0.2 and 0.9, REFRESH_INTERVAL and ETA_REFRESH_INTERVAL.
1881
1882 2005-08-27  Hrvoje Niksic  <hniksic@xemacs.org>
1883
1884         * cmpt.c (strtoll): Correctly handle strtoll("0x", ptr, 0) and
1885         strtoll("0x<nonhexchar>", ptr, 0) -- in both cases *ptr must be
1886         set to the position of 'x', not after it.
1887
1888 2005-08-27  Hrvoje Niksic  <hniksic@xemacs.org>
1889
1890         * hash.c (hash_table_map): Rename to hash_table_for_each and
1891         update callers.
1892         Document the meaning of the callback's return value.
1893         (hash_table_iterate): New function.
1894         (hash_table_iter_next): Likewise.
1895         Update most places that used hash_table_for_each to use the
1896         iteration, which doesn't require a temporary function with
1897         explicit state management.
1898
1899 2005-08-26  Albert Chin  <wget@mlists.thewrittenword.com>
1900
1901         * Makefile.in: Use @datadir@.  Define localedir as $(datadir)/locale.
1902
1903 2005-08-26  Jeremy Shapiro  <jnshapiro@gmail.com>
1904
1905         * openssl.c (ssl_init): Set SSL_MODE_AUTO_RETRY.
1906
1907 2005-08-23  Hrvoje Niksic  <hniksic@xemacs.org>
1908
1909         * host.c (address_list_from_ipv4_addresses): Use IP_INADDR_DATA.
1910
1911 2005-08-12  Hrvoje Niksic  <hniksic@xemacs.org>
1912
1913         * wget.h: Renamed strtoll_return to strtoll_type.
1914
1915 2005-08-11  Hrvoje Niksic  <hniksic@xemacs.org>
1916
1917         * progress.c (eta_to_human_short): Switch to days when printing
1918         more than 48h rather than 100h.  (It's not immediately apparent
1919         how many days there are in 83h.)
1920
1921 2005-08-11  Hrvoje Niksic  <hniksic@xemacs.org>
1922
1923         * cmpt.c (strtoll): Define it if missing on the system and if Wget
1924         needs it.
1925
1926         * mswindows.c (str_to_int64): Move to cmpt.c and rename to strtoll.
1927
1928 2005-08-10  Hrvoje Niksic  <hniksic@xemacs.org>
1929
1930         * host.c (print_address): Always use inet_ntop when IPv6 is
1931         enabled.
1932
1933         * host.h (ip_address): Simplify the data union.
1934
1935 2005-08-09  Hrvoje Niksic  <hniksic@xemacs.org>
1936
1937         * mswindows.c (inet_ntop): Also handle IPv4 addresses for
1938         completeness.
1939
1940 2005-08-09  Hrvoje Niksic  <hniksic@xemacs.org>
1941
1942         * http.c (gethttp): Don't read more than the amount of data
1943         specified by the content-length header.
1944
1945 2005-08-09  Vasil Dimov  <vd@datamax.bg>
1946
1947         * ftp.c (getftp): Don't free RESPLINE if ftp_response returns a
1948         status other than FTPOK.
1949
1950 2005-08-04  Giuseppe Bonacci  <g.bonacci@libero.it>
1951
1952         * ftp-ls.c (ftp_parse_unix_ls): Remember the position of the
1953         previous token instead of backtracking back to it.
1954
1955 2005-07-08  Gisle Vanem  <giva@bgnett.no>
1956
1957         * mswindows.h: Include process.h to get getpid() declaration.
1958
1959 2005-07-08  Hrvoje Niksic  <hniksic@xemacs.org>
1960
1961         * utils.c (aprintf): Use vasprintf where available.
1962
1963 2005-07-08  Hrvoje Niksic  <hniksic@xemacs.org>
1964
1965         * url.c (rewrite_shorthand_url): Simplify code using aprintf and
1966         strspn.
1967
1968 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
1969
1970         * gnutls.c (ssl_check_certificate): Check for the validity of the
1971         presented X509 certificate.
1972
1973 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
1974
1975         * openssl.c (ssl_check_certificate): Print custom error messages
1976         for frequent X509 certificate problems.
1977
1978 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
1979
1980         * mswindows.h: Define an alias for stat and fstat, as requested by
1981         config-compiler.h.
1982         (gai_strerror): Define to windows_strerror if NEED_GAI_STRERROR is
1983         defined.
1984
1985 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
1986
1987         * mswindows.h: Use strtoll where available.
1988
1989 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
1990
1991         * sysdep.h: Add a full declaration of fnmatch.h.
1992
1993 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
1994
1995         * utils.c: Unconditionally include <setjmp.h>.
1996
1997 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
1998
1999         * utils.c (fnmatch_nocase): New function.
2000         (proclist): Use it instead of fnmatch when opt.ignore_case is
2001         requested.
2002         (in_acclist): Respect opt.ignore_case.
2003         (frontcmp): Respect opt.ignore_case.
2004
2005         * options.h (struct options): New flag opt.ignore_case.
2006
2007 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2008
2009         * ptimer.c: Measure time in seconds rather than milliseconds.
2010         Adjusted all callers.
2011
2012 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2013
2014         * http.c (gethttp): When freeing MESSAGE, take into account that
2015         it can be NULL.
2016
2017 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2018
2019         * cmpt.c (timegm): Handle years after 2099.
2020
2021 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2022
2023         * cmpt.c (timegm): Remove unused variable.
2024
2025 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2026
2027         * cmpt.c (timegm): Don't call mktime; simply count the seconds
2028         between 1970-01-01 and the specified date.
2029
2030 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2031
2032         * wget.h (or): Define HAVE_SSL when either HAVE_OPENSSL or
2033         HAVE_GNUTLS are defined.
2034
2035         * gnutls.c: New file.
2036
2037 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2038
2039         * http.c (gethttp): Don't print the request write error message
2040         twice.
2041
2042 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2043
2044         * openssl.c (openssl_errstr): Instead of always using a large
2045         static buffer, only allocate the error string when there is an
2046         actual error.
2047
2048 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2049
2050         * xmalloc.c (debugging_free): Prefix hex pointer value with "0x"
2051         when printing.
2052
2053 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2054
2055         * utils.c (NEXT_BASE64_CHAR): Rename to NEXT_CHAR and simplify to
2056         get the next non-whitespace character.
2057
2058 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2059
2060         * utils.c (base64_decode): Don't silently tolerate non-base64
2061         non-white-space characters in the base64 stream.
2062
2063 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2064
2065         * connect.c (LAZY_RETRIEVE_INFO): Make last_tick unsigned to match
2066         transport_map_modified_tick.
2067
2068 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2069
2070         * config-post.h (alloca): Updated declaration to not enumerate all
2071         Windows compilers.
2072
2073 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2074
2075         * openssl.c (openssl_errstr): Separate error messages with "; ".
2076
2077 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
2078
2079         * ftp.c (getftp): Ditto.
2080
2081         * http.c (gethttp): Use fd_errstr.
2082
2083         * connect.c (fd_register_transport): Restructure parameters to
2084         include only a single structure that describes transport
2085         implementation.
2086
2087         * openssl.c (openssl_errstr): New function: dump SSL error strings
2088         into a static buffer and return a pointer to the buffer.
2089
2090         * connect.c (fd_errstr): New function; returns transport-specific
2091         error message, or strerror(errno) if transport doesn't supply one.
2092
2093 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
2094
2095         * mswindows.h: Also wrap accept() and listen().
2096
2097 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
2098
2099         * url.c (path_end): Skip separators appropriate for the scheme.
2100         (strpbrk_or_eos): Remove gcc-specific version, as the optimization
2101         it tried to perform no longer applies.
2102
2103 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2104
2105         * host.c: Don't include "connect.h" now that we no longer have
2106         socket_has_inet6.
2107
2108 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2109
2110         * host.c: Remove extraneous definition of netdb.h.
2111
2112 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2113
2114         * http.c (gethttp): Skip error message body in the keep-alive
2115         case.
2116
2117 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2118
2119         * url.c (url_parse): Would crash when parsing fragments.  Support
2120         fragments for FTP URLs too.
2121
2122 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2123
2124         * version.c: Don't use "cvs" in version name, since we're not
2125         using CVS anymore.
2126
2127 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2128
2129         * progress.c (create_image): Ditto.
2130
2131         * retr.c (retr_rate): Display smaller rate numbers with greater
2132         precision.
2133
2134 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2135
2136         * http.c (response_head_terminator): Minor optimization.
2137
2138         * retr.c (fd_read_hunk): Call terminator with pointer to the start
2139         of the data and the pointer to the current data.  Changed all
2140         callers.
2141
2142 2005-07-01  Hrvoje Niksic  <hniksic@xemacs.org>
2143
2144         * url.c (url_parse): Make sure u->params is not initialized for
2145         http/https URLs.
2146         (url_parse): Don't crash on garbage following []-delimited IPv6
2147         addresses.
2148
2149 2005-07-01  Hrvoje Niksic  <hniksic@xemacs.org>
2150
2151         * main.c (print_help): Don't refer to the non-existent -nr in
2152         description of --mirror.
2153
2154 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
2155
2156         * host.c (pretty_print_address): Renamed to just print_address.
2157         Clarify documentation.
2158
2159 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
2160
2161         * http.c (gethttp): Explicitly document the different cases when
2162         generating the Host header.
2163
2164 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
2165
2166         * host.c (pretty_print_address): Handle error result from
2167         inet_ntop.
2168
2169 2005-06-30  Gisle Vanem  <giva@bgnett.no>
2170
2171         * mswindows.c (inet_ntop): New function.  Print IPv6 addresses
2172         using WSAAddressToString.
2173
2174 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2175
2176         * progress.c (dot_update): Remove unused variable row_qty.
2177
2178 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2179
2180         * main.c: Check for both SIGHUP and SIGUSR1 before using them.
2181
2182 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2183
2184         * utils.c: Unconditionally include locale.h.
2185
2186 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2187
2188         * ptimer.c: Include sys/time.h to get struct timeval.
2189
2190 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2191
2192         * wget.h: Remove obsolete definition of with_thousand_seps_sum.
2193
2194 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2195
2196         * gnu-md5.h: Unconditionally include limits.h.
2197
2198 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2199
2200         * utils.c (random_number): Use lrand48 if available.
2201         (random_float): Use drand48 if available.
2202
2203 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2204
2205         * main.c (secs_to_human_time): Use print_decimal when printing
2206         total download time in seconds.
2207
2208         * progress.c (print_row_stats): Use it to print total download
2209         time at the end of the download.
2210         (create_image): Ditto.
2211
2212         * utils.c (print_decimal): New function; print small decimal
2213         numbers with more precision than large ones.
2214
2215         * progress.c (print_row_stats): New function.  Print ETA after the
2216         download rate at the end of each row.
2217
2218 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
2219
2220         * init.c (parse_line): Check for alphanumerics.
2221
2222 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
2223
2224         * (dot_create): Remove unnecessary casts.
2225
2226 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
2227
2228         * ftp.c (getftp): Delete trailing newlines from LIST output so
2229         lines don't come out with trailing \015\012 with -S.
2230
2231 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2232
2233         * mswindows.h: Remove superfluous includes.
2234
2235 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2236
2237         * config-post.h (alloca): Amend alloca declaration to take care of
2238         all Win32 compilers, not just MSVC and MinGW.
2239
2240 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2241
2242         * utils.c (get_grouping_data): Force separator to "." rather than
2243         " " when "," is taken.
2244
2245 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2246
2247         * wget.h (PTR_FORMAT): Cast the result of sizeof to int before
2248         passing it to printf's %*.
2249
2250         * retr.h: Declare output_stream and output_stream_regular.
2251
2252         * ftp.h: Declare ftp_last_respline.
2253
2254         * convert.h: Declare dl_url_file_map.
2255
2256         * http.h: New file.
2257
2258 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2259
2260         * cookies.c: Make cookies_now static.
2261
2262 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2263
2264         * utils.c (human_readable): Remove intermediary cast to long; MSVC
2265         has problems casting *unsigned* __int64 to double.
2266
2267 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2268
2269         * sysdep.h: Use the system-provided fnmatch by default.
2270
2271 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2272
2273         * http.c (mktime_from_utc): Renamed to timegm and moved to cmpt.c.
2274         Don't compile it if GNU timegm is available.
2275         (http_atotm): Use timegm.
2276
2277 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2278
2279         * http.c (http_atotm): Correctly query the old locale value.
2280
2281 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2282
2283         * config-post.h (alloca): Don't #define alloca under MinGW32,
2284         which defines it in malloc.h, included from mswindows.h.
2285
2286 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2287
2288         * utils.c (get_grouping_data): Force the use of separators in C
2289         locale.
2290
2291 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2292
2293         * main.c (i18n_initialize): Set all locale categories.
2294
2295         * http.c (http_atotm): Temporarily set locale to "C".
2296
2297 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2298
2299         * http.c (gethttp): Improve "POST data file missing" error
2300         message.
2301
2302 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2303
2304         * progress.c (set_progress_implementation): Type COLON as const
2305         char *.
2306
2307 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2308
2309         * utils.c (with_thousand_seps): Handle negative numbers.
2310
2311 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2312
2313         * progress.c (create_image): Mark the "eta" string for translation.
2314
2315 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2316
2317         * html-url.c (get_urls_file): Don't explicitly set entry->next to
2318         NULL since entry is already zeroed out.
2319
2320 2005-06-26  Gisle Vanem  <giva@bgnett.no>
2321
2322         * mswindows.h: Define gai_strerror under MinGW.
2323
2324 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2325
2326         * utils.c (with_thousand_seps): Correctly implement thousand seps
2327         consisting of more than one character.
2328
2329 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2330
2331         * main.c (secs_to_human_time): Ditto.
2332
2333         * progress.c (create_image): Print more exact duration of very
2334         short downloads.
2335
2336         * main.c (secs_to_human_time): Don't translate time suffixes "h",
2337         "m", and "s", which are not strictly SI, but are "accepted for use
2338         with SI".
2339         (secs_to_human_time): Print really small intervals as 0s, not
2340         0.00s.
2341
2342 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2343
2344         * config-post.h: Replace the alloca declaration with the one from
2345         the latest Autoconf manual.  This should remove a warning with GCC
2346         on AIX.
2347
2348 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2349
2350         * ftp.c (getftp): Always invoke SIZE, not only when continuing a
2351         download.
2352
2353         * main.c (main): Ditto here.
2354
2355         * progress.c (create_image): When the download is finished, print
2356         how long it took.
2357
2358 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2359
2360         * main.c (main): Print the downloaded and quota amounts with the
2361         "human_readable" function.
2362
2363         * ftp.c (print_length): Ditto.
2364
2365         * http.c (gethttp): Don't display thousand separators.
2366
2367         * utils.c (with_thousand_seps): Rewritten to respect locale
2368         settings and to be type size agnostic.
2369
2370 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2371
2372         * utils.c (human_readable): Divide with 1024 instead of shifting
2373         so the operation can work with non-integer N.
2374
2375 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2376
2377         * progress.c (eta_to_human): New logic for more human-readable
2378         ETA.
2379
2380 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2381
2382         * utils.c (with_thousand_seps_sum): Decrease buffer size so it
2383         cannot overrun add_thousand_seps's buffer.
2384
2385 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2386
2387         * utils.c (SPRINTF_WGINT): The correct format is %I64d, not just
2388         %I64.
2389
2390 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2391
2392         * http.c (http_loop): Don't warn about wildcards in HTTP URLs if
2393         globbing isn't requested in the first place.
2394
2395         * retr.c (retrieve_url): Temporarily turn off globbing when
2396         processing HTTP->FTP redirects.
2397
2398 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2399
2400         * utils.c (with_thousand_seps_sum): Now defined only if
2401         SUM_SIZE_INT is double.
2402
2403         * wget.h (SUM_SIZE_INT): Instead of bothering with long, long
2404         long, __int64, and friends, simply either use wgint or double, end
2405         of story.  Since we know how to print either, we no longer need
2406         LARGE_INT_FMT.
2407
2408         * sysdeps.h (LARGE_INT): Renamed to SUM_SIZE_INT to better reflect
2409         its intent, and moved to wget.h.
2410
2411 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2412
2413         * Makefile.in: No need to clean .libs.
2414
2415 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2416
2417         * cookies.c (parse_set_cookies): Cast pointer subtraction to int
2418         before using it with %d; AIX compiler warns on this.
2419         Reported by Jens Schleusener.
2420
2421 2005-06-24  Hrvoje Niksic  <hniksic@xemacs.org>
2422
2423         * http.c (gethttp): Don't prepend / here.
2424
2425         * cookies.c (cookie_handle_set_cookie): Prepend / to PATH.
2426         (cookie_header): Ditto.
2427
2428 2005-06-24  Hrvoje Niksic  <hniksic@xemacs.org>
2429
2430         * init.c: opt.verbose must be declared as int.
2431
2432 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
2433
2434         * cmpt.c (strpbrk): Removed.
2435         (mktime): Removed.
2436         Include <time.h>.
2437
2438 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
2439
2440         * utils.c (read_file): Ditto.
2441
2442         * main.c (main): Use struct_fstat.
2443
2444         * mswindows.h (struct_fstat): Define a struct_fstat to deal with
2445         the fact that Borland 5.5 has 64-bit stat, but not 64-bit fstat!
2446
2447 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
2448
2449         * sysdep.h: Remove code that deals with Watcom.
2450
2451 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2452
2453         * all: Use bool instead of int and false/true instead of 0/non-0
2454         for boolean variables and values.
2455
2456 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2457
2458         * sysdep.h: Include the stdbool.h/_Bool/bool blurb from Autoconf.
2459
2460 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2461
2462         * init.c (cmd_lockable_boolean): Removed.
2463
2464 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2465
2466         * cookies.c (struct cookie): Use 1-bit bitfields for booleans
2467         which makes the structure takes less space at no cost in
2468         complexity.
2469
2470 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2471
2472         * Makefile.in ($(OBJ)): Add the config.h dependency.
2473
2474 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2475
2476         * openssl.c, connect.c, host.c: Replace instances of #ifdef
2477         ENABLE_DEBUG if (opt.debug) {...} #endif with IF_DEBUG {...}.
2478
2479         * main.c: Rename the IF_DEBUG defined here to WHEN_DEBUG.
2480
2481         * wget.h (IF_DEBUG): New macro.
2482         (DEBUGP): Define in terms of IF_DEBUG.
2483
2484 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2485
2486         * http.c (gethttp): Only handle --set-cookies (and assert that
2487         cookie jar exists) if opt.cookies is true.  Failure to do so
2488         triggered the assert when --no-cookies was used and the server
2489         sent a Set-Cookie header.  Ouch!
2490
2491 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2492
2493         * connect.c (select_fd): Expect select() to exist.
2494
2495         * utils.c (xsleep): Always use select() as sleep fallback on
2496         non-Windows platforms.
2497
2498         * ptimer.c: Delete the implementation of PTIMER_TIME.
2499
2500         * main.c: Assume existence of signal(), test for different signal
2501         names instead.
2502
2503         * cmpt.c: Better document reasons why certain functions are
2504         included.
2505
2506 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2507
2508         * Makefile.in: Remove the manually maintained dependency list;
2509         make all object files depend on every header.
2510
2511 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
2512
2513         * hash.c: Rename "mapping" to "cell" to avoid confusion with the
2514         term "mapping" (or "map") sometimes being used for the entire hash
2515         table.  Also rename "non-empty" to "occupied" for easier reading
2516         of if (!NON_EMPTY (...)) ... .
2517
2518 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
2519
2520         * main.c, ptimer.c, sysdep.h, utils.c: Use #elif to simplify reading of
2521         chained if-else-else-else-... statements.
2522
2523 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
2524
2525         * all: Return type of signal handlers is `void'.  Include signal.h
2526         unconditionally.
2527
2528         * all: Don't explicitly cast values returned by malloc.  We no
2529         longer support ancient compilers that don't declare malloc, and we
2530         never supported C++ builds.
2531
2532 2005-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
2533
2534         * all: Don't declare errno.  Include both time.h and sys/time.h,
2535         as long as sys/time.h exists.  Don't dereference function pointers
2536         when invoking the functions they point to.
2537
2538         * cmpt.c (memmove): Remove function mandated by C89.
2539         (strerror): Ditto.
2540         (strstr): Ditto.
2541
2542         * all: Undo the K&R-ization changes from 2005-05-03.
2543
2544         * all: Remove support for K&R compilers: use C89 function
2545         declarations, remove definition of PARAMS, remove support for
2546         varargs, and remove ansi2knr.  Assume the presence of time.h,
2547         string.h, and other headers mandated by C89.
2548
2549 2005-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
2550
2551         * init.c (cmd_lockable_boolean): Don't recognize literal "2" and
2552         "-1" values; unlike 0 and 1, those should never be exposed to the
2553         user.  Update the error message to be more self-consistent, as
2554         proposed by Benno Schulenberg.
2555
2556 2005-06-18  Hrvoje Niksic  <hniksic@xemacs.org>
2557
2558         * http.c (gethttp): Don't free "head" before using it to save
2559         headers.
2560
2561 2005-06-18  Hrvoje Niksic  <hniksic@xemacs.org>
2562
2563         * http.c (gethttp): When -E is in use, check for file existence
2564         after appending ".html" to the name and modify the file name if
2565         necessary.
2566
2567 2005-06-17  Hrvoje Niksic  <hniksic@xemacs.org>
2568
2569         * connect.c (socket_has_inet6): Removed.
2570
2571         * host.c (lookup_host): Don't use the AI_ADDRCONFIG getaddrinfo
2572         hint.
2573
2574 2005-06-16  Hrvoje Niksic  <hniksic@xemacs.org>
2575
2576         * init.c (cmd_lockable_boolean): Improve the error message so it
2577         lists the more useful values first.
2578
2579 2005-06-15  Hrvoje Niksic  <hniksic@xemacs.org>
2580
2581         * http.c (gethttp): Also report the system error when the POST
2582         data file is missing.
2583
2584 2005-06-15  Benno Schulenberg  <benno@nietvergeten.nl>
2585
2586         * ftp.c, http.c, connect.c, cookies.c, html-url.c, init.c, res.c:
2587         Gettext-ize messages that were previously missed.
2588
2589 2005-06-15  Hrvoje Niksic  <hniksic@xemacs.org>
2590
2591         * host.h (ip_address): Remove the trailing comma from the type
2592         enum in the no-IPv6 case.
2593
2594         * main.c (struct cmdline_option): Remove the trailing comma from
2595         the enum.
2596
2597         Reported by Jens Schleusener.
2598
2599 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
2600
2601         * url.c (strpbrk_or_eos): Check for a recent GCC version before
2602         using the statement-as-expression extension.
2603
2604 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
2605
2606         * http.c (gethttp): Don't attempt to "skip short body" if we're
2607         issuing a HEAD request (in which case the response head is not
2608         followed by a body).
2609
2610 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
2611
2612         * init.c (cmd_spec_header): Don't split the string along the
2613         commas using cmd_vector; just append the new value using
2614         vec_append instead.
2615
2616         * utils.c (vec_append): New function.
2617
2618 2005-05-27  Andreas Beckmann  <debian@abeckmann.de>
2619
2620         * html-url.c (tag_handle_link): Mark the content from the <link
2621         src="..."> tag as expecting HTML.
2622
2623 2005-05-24  Hrvoje Niksic  <hniksic@xemacs.org>
2624
2625         * http.c (http_atotm): Document the origin of the "cookie date"
2626         format.
2627
2628 2005-05-21  Hrvoje Niksic  <hniksic@xemacs.org>
2629
2630         * init.c (setval_internal): Report exact command name alongside
2631         the "display name".
2632
2633 2005-05-18  Hrvoje Niksic  <hniksic@xemacs.org>
2634
2635         * cookies.c (update_cookie_field): Explicitly cast -1 to time_t to
2636         cope with systems where time_t is unsigned.
2637
2638         * cookies.c: Remove unnecessary casts to time_t from values
2639         already of that type.
2640
2641 2005-05-17  Hrvoje Niksic  <hniksic@xemacs.org>
2642
2643         * ftp.c (ftp_loop_internal): Same here.
2644
2645         * http.c (http_loop): Don't clobber the file when -c is specified
2646         and the first attempt to retrieve the file fails.
2647
2648 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
2649
2650         * openssl.c (ssl_check_certificate): Print all issues with a
2651         certificate.
2652
2653 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
2654
2655         * ftp-basic.c: Don't xfree() the line returned by ftp_response if
2656         the returned code is not FTPOK.
2657
2658 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
2659
2660         * init.c (cleanup): Don't free the non-existent opt.ftp_acc.  Free
2661         the SSL-related stuff.
2662
2663 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
2664
2665         * ftp.c (print_length): Consistently print \n at end of the
2666         "Length" line.
2667
2668 2005-05-14  Hrvoje Niksic  <hniksic@xemacs.org>
2669
2670         * openssl.c (ssl_connect): Announce the beginning and the end of
2671         the SSL handshake when in debug mode.
2672
2673         * wget.h (PTR_FORMAT): New macro for easier printing of pointer
2674         values.  Use %0*lx along with PTR_FORMAT instead of %p.
2675
2676 2005-05-14  Hrvoje Niksic  <hniksic@xemacs.org>
2677
2678         * http.c (gethttp): Would forget to close the connection when
2679         keep_alive was not used.
2680
2681 2005-05-13  Hrvoje Niksic  <hniksic@xemacs.org>
2682
2683         * openssl.c (pattern_match): Document the code that decides
2684         whether "*" matches ".".
2685
2686 2005-05-12  Hrvoje Niksic  <hniksic@xemacs.org>
2687
2688         * ftp-ls.c (ftp_index): Use %d to print the port number, which is
2689         now int.
2690         From Steven M. Schweda's VMS patches.
2691
2692 2005-05-12  Hrvoje Niksic  <hniksic@xemacs.org>
2693
2694         * url.c (rewrite_shorthand_url): Don't rewrite "https://host" to
2695         "ftp://https//host" when SSL is not used.
2696
2697 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
2698
2699         * openssl.c (ssl_check_server_identity): Renamed to
2700         ssl_check_certificate because it does more than just checking the
2701         server's identity.
2702         (ssl_check_certificate): Tell the user about
2703         --no-check-certificate.
2704
2705 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
2706
2707         * openssl.c (ssl_init): Always use SSL_VERIFY_NONE, so that the
2708         handshake finishes even if the certificate is invalid.  That way
2709         ssl_check_server_identity can provide better diagnostics on why
2710         the verification failed.
2711
2712 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
2713
2714         * openssl.c (pattern_match): New function.
2715         (ssl_check_server_identity): Treat peer certificate common name as
2716         wildcard.
2717
2718 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
2719
2720         * openssl.c (ssl_check_server_identity): Print certificate subject
2721         and issuer.
2722
2723 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
2724
2725         * res.c (res_register_specs): Correctly pass pointers to
2726         hash_table_get_pair.
2727
2728 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
2729
2730         * http.c (gethttp): Call ssl_check_server_identity.
2731
2732         * openssl.c (ssl_check_server_identity): New function, verifies
2733         that the host name in the certificate matches the actual host
2734         name.
2735         (verify_cert_callback): Removed, since it didn't do anything
2736         except returning the preverify_ok argument.
2737
2738         * connect.c (fd_transport_context): Allow retrieval of the context
2739         pointer registered with fd_register_transport.
2740
2741 2005-05-09  Hrvoje Niksic  <hniksic@xemacs.org>
2742
2743         * openssl.c (verify_cert_callback): Renamed from verify_callback.
2744         Always return the received "ok" value.  Print the X509 name in
2745         debug mode.
2746         (ssl_init): Enable partial writes in SSL context.
2747
2748 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
2749
2750         * http.c (http_loop): Check for wildcards in the URL path
2751         component, not in the whole URL.
2752
2753         * ftp.c (ftp_loop): Check for wildcards in URL path before
2754         unescaping, so the users can escape globbing metacharacters with %
2755         escapes.
2756
2757 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
2758
2759         * init.c (run_command): Correctly interpret the return value of
2760         parse_line.
2761         (commands): Re-alphabetize.
2762
2763 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
2764
2765         * netrc.c (parse_netrc): Explicitly check for assignment != NULL
2766         to silence warning from Borland C.
2767
2768         * url.c (sync_path): Don't unnecessarily increment p.
2769         (url_parse): Don't unnecessarily set url_encode to NULL just
2770         prior to return from the function.
2771
2772 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
2773
2774         * log.c (escnonprint_internal): Place variable declarations
2775         before other statements.
2776
2777 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
2778
2779         * html-url.c: Include recur.h.
2780
2781         * http.c (request_new): Define as accepting no args.
2782
2783 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
2784
2785         * url.c (strpbrk_or_eos): Made inline.  Use strchr(s, '\0') for
2786         finding the NUL char position.
2787
2788 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
2789
2790         * url.c (decide_copy_method): Renamed to char_needs_escaping.
2791         Since it now returns only two possible values, change it to return
2792         boolean (int).
2793
2794 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
2795
2796         * ftp-basic.c (ftp_request): Prevent newlines in VALUE causing
2797         inadvertent sending of multiple FTP commands.
2798
2799 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
2800
2801         * url.c (decide_copy_method): Never cause reencode_escapes to
2802         decode % escapes; it is too intrusive and breaks some servers.
2803
2804 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
2805
2806         * http.c (gethttp): When tunnelling SSL traffic over proxy with
2807         CONNECT, we're really talking to the remote server directly.
2808         Because of this, the request-line argument must be the URL path
2809         rather than the whole URL, as it would be when using regular
2810         proxies.
2811         Reported by Charles Lane.
2812
2813 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
2814
2815         * init.c (cmd_spec_useragent): Allow empty User-Agent.
2816
2817         * http.c (gethttp): Don't print "unknown authentication scheme"
2818         for failed Basic authentication.
2819         (SET_USER_AGENT): Don't set user-agent if opt.useragent is empty.
2820         (gethttp): Use alloca for allocation of www_authenticate.
2821
2822 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
2823
2824         * main.c (print_help): Fix wording of --secure-protocol help text.
2825
2826 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
2827
2828         * cmpt.c (strstr): Updated from glibc 2.3.5.
2829
2830 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2831
2832         * http.c (http_atotm): Zero out the whole struct tm being passed
2833         to strptime.
2834
2835 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2836
2837         * main.c (main): Propagate option name to setoptval.
2838
2839         * init.c (setoptval): Accept another argument, OPTNAME.  Propagate
2840         that argument as the option name independently of the actual
2841         command, determined by command_by_name(com).
2842
2843 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2844
2845         * init.c (parse_line): Make the return value indicate whether
2846         there was a syntax error or a setter failed.
2847         (run_wgetrc): Return an indication on whether an error has been
2848         encountered.
2849         (initialize): Abort if there have been errors running either
2850         .wgetrc file.
2851
2852 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2853
2854         * log.c (copy_and_escape): Slightly reduce code repetition between
2855         the two loops.
2856
2857 2005-05-05  Charles C.Fu  <ccwf@bacchus.com>
2858
2859         * utils.c (proclist): Strip leading slash when calling fnmatch
2860         too, otherwise wildcard comparisons always fail.
2861
2862 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2863
2864         * utils.c (touch): Set access time to current time.
2865
2866 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2867
2868         * url.c (url_unescape): Don't unescape %00, it effectively
2869         truncates the string.
2870
2871 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2872
2873         * log.c (copy_and_escape): Replace the FOR_URI argument with a
2874         slightly more general mechanism for specifying different kinds of
2875         escape.
2876
2877 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2878
2879         * ftp-basic.c (ftp_response): Fix printing FTP server response.
2880
2881 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2882
2883         * retr.c (limit_bandwidth_reset): Reset sleep_adjust.
2884         (limit_bandwidth): Don't allow huge "adjustment" values that
2885         result from being suspended for a while.
2886
2887 2005-05-04  Hrvoje Niksic  <hniksic@xemacs.org>
2888
2889         * wget.h: If gettext was found but libtintl.h wasn't, declare
2890         gettext's return type to avoid type mismatches.
2891
2892 2005-05-03  Hrvoje Niksic  <hniksic@xemacs.org>
2893
2894         * url.c (url_parse): Rename label `error' to avoid conflict with
2895         identifier.
2896
2897         * retr.c (fd_read_body): Rename label `out' to avoid conflict with
2898         identifier.
2899         (fd_read_hunk): Use explicit double constant.
2900         (retrieve_from_file): Don't use string concatenation.
2901         (sleep_between_retrievals): Make sure xsleep is called with a
2902         `double' argument.
2903         (no_proxy_match): Define as static, like it is declared.
2904
2905         * progress.c (bar_create): Use 0.0 instead of 0 because K&R
2906         compilers can't automatically promote it.
2907
2908         * http-ntlm.c (ntlm_output): Replace \xHH sequences with \OOO for
2909         the sake of old compilers.
2910
2911         * ftp.c (ftp_loop_internal): Don't use string concatenation.
2912
2913         * http.c (request_send): Use explicit double constants when
2914         calling fd_read and fd_write.
2915         (post_file): Ditto.
2916         (gethttp): Ditto.
2917         (skip_short_body): Ditto.
2918
2919         * ftp-basic.c: When calling fd_write, specify the last argument as
2920         a `double' constant for the sake of K&R compilers which don't see
2921         the prototype and therefore can't promote it to double
2922         automatically.
2923
2924         * cookies.c (cookie_jar_load): Rename abort label to abort_cookie
2925         to avoid name conflict in K&R compilers.
2926
2927 2005-04-29  Hrvoje Niksic  <hniksic@xemacs.org>
2928
2929         * ptimer.c (posix_init): Since we allow _POSIX_MONOTONIC_CLOCK==0,
2930         it is not enough to check for _POSIX_MONOTONIC_CLOCK-0, we must
2931         also check for defined(_POSIX_MONOTONIC_CLOCK).
2932
2933 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
2934
2935         * ftp.c, hash.c, connect.c, host.c, http.c: Remove unreached code,
2936         such as "break" following return or abort.
2937
2938 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
2939
2940         * init.c (commands): Wrap the use of opt.random_file in #ifdef
2941         HAVE_SSL.
2942
2943 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
2944
2945         * http.c (gethttp): Correctly set the user agent.
2946
2947 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
2948
2949         * init.c (cmd_spec_useragent): Free the old value of
2950         opt.useragent before setting the new one.
2951
2952 2005-04-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
2953
2954         * main.c: Map --ftp-password, --http-password and --proxy-password to
2955         the new ftppassword, httppassword and proxypassword commands
2956         respectively.  Document the --user and --password options in the help
2957         string.
2958         
2959 2005-04-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
2960
2961         * ftp.c: Add support for --user and --password.
2962         
2963         * http.c: Add support for --user and --password.
2964         
2965         * init.c: Deprecated ftppasswd, httppasswd, login, passwd and
2966         proxypasswd commands.  Added ftppassword, ftpuser, httppassword,
2967         password, proxypassword and user commands.
2968
2969         * main.c: Renamed --ftp-passwd to --ftp-password.  Added --ftp-user,
2970         --http-password, --password, --proxy-password and --user.  Deprecated
2971         --http-passwd and --proxy-passwd.  Added documentation for new options
2972         and removed documentation for deprecated options in the help string.
2973         
2974         * options.h (struct options): Added user and passwd members to handle
2975         --user and --password respectively.  Renamed ftp_acc and ftp_pass
2976         members to ftp_user and ftp_passwd for consistency.
2977
2978 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
2979
2980         * main.c (print_help): Advertise "DER", not "ASN1".
2981
2982 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
2983
2984         * openssl.c (init_prng): Disable the weak random seed by default.
2985
2986         * http.c (gethttp): Simplify SSL initialization; disable SSL when
2987         anything goes wrong with the initialization.
2988
2989         * options.h (struct options): New option opt.random_file.
2990
2991 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
2992
2993         * init.c: Wrap private key commands in IF_SSL.
2994
2995 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
2996
2997         * openssl.c (ssl_init): Ditto.
2998
2999         * options.h (struct options): Allow separate specification of key
3000         type and certificate type.
3001
3002         * init.c (cmd_spec_cert_type): Provide a "der" synonym for "asn1"
3003         certificate encoding.
3004
3005 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3006
3007         * openssl.c: Renamed "gen_sslfunc.c" to "openssl.c" and
3008         "gen_sslfunc.h" to "openssl.h".  This reflects the intent of
3009         openssl.c encapsulating the OpenSSL-specific code.
3010
3011 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3012
3013         * init.c: Renamed "closure" (a synonym for context in some
3014         cultures) to "place", which more accurately reflects the usage.
3015
3016 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3017
3018         * gen_sslfunc.c (ssl_init): Use default locations for loading the
3019         certificate bundles.
3020         (ssl_init_prng): Disable the cryptographically weak PRNG
3021         initialization fallback.
3022
3023         * init.c: Renamed SSL command-line arguments and wgetrc commands.
3024         (defaults): Check the server certificate by default.
3025
3026 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3027
3028         * cookies.c (cookie_handle_set_cookie): Delete the part of the
3029         path after the trailing slash.
3030
3031         * http.c (gethttp): Call cookie_handle_set_cookie with path that
3032         begins with '/'.
3033
3034 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3035
3036         * http.c (gethttp): Call skip_short_body only if keep_alive is in
3037         use.
3038         (gethttp): Send the User-Agent header with the CONNECT request as
3039         well.
3040
3041 2005-04-25  Hrvoje Niksic  <hniksic@xemacs.org>
3042
3043         * main.c (option_data): Removed support for the undocumented flag
3044         --use-proxy.
3045
3046 2005-04-25  Hrvoje Niksic  <hniksic@xemacs.org>
3047
3048         * main.c (option_data): Don't treat -Y as a boolean switch; treat
3049         it as a value switch instead, so "-Y off" continues to work.
3050
3051 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
3052
3053         * utils.c (aprintf): Delete unreachable statement.
3054
3055 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
3056
3057         * host.c (cmp_prefer_ipv4): New function.
3058         (cmp_prefer_ipv6): New function.
3059         (lookup_host): Use the appropriate comparator according to
3060         opt.prefer_family.
3061
3062         * init.c: New option prefer_family.
3063
3064         * host.c (is_valid_ipv6_address): Spell NS_* constants in lower
3065         case to avoid clash with system headers.
3066         (lookup_host): Reorder the addresses so that IPv4 ones come first.
3067
3068         * utils.c (stable_sort): New function.
3069
3070 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
3071
3072         * connect.c (retryable_socket_connect_error): Return 0 for
3073         ENETUNREACH and EHOSTUNREACH.
3074
3075 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
3076
3077         * cmpt.c: Reenable the memmove implementation for systems that
3078         lack it.
3079
3080         * http.c (gethttp): Store the "authorized" state of the persistent
3081         connection.
3082         (request_remove_header): New function.
3083         (gethttp): Don't send the "Basic" authentication if the connection
3084         is already authorized.
3085
3086 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
3087
3088         * utils.c (base64_encode): Treat input as unsigned chars.
3089         Required for correct encoding of binary stuff.
3090
3091 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
3092
3093         * http-ntlm.c: Format the function definitions in an
3094         ansi2knr-friendly fashion.
3095
3096 2005-04-22  Hrvoje Niksic  <hniksic@xemacs.org>
3097
3098         * http.c (gethttp): Handle multiple WWW-Authentication headers,
3099         only one of which is recognized.  Those are sent by IIS with NTLM
3100         authorization.
3101         (create_authorization_line): Propagate information whether
3102         authorization is finished.
3103         (gethttp): Only stop authorization when it's really finished, not
3104         after fixed two steps.
3105
3106 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
3107
3108         * gen_sslfunc.c (ssl_init): Fix warning message text; mark the
3109         message as translatable.
3110
3111 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
3112
3113         * main.c (print_help): Print the EGD option outside the cluster of
3114         SSL options.
3115
3116 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
3117
3118         * http-ntlm.c (ntlm_output): Fix setting the domain.
3119         Suggested by Sami Krank.
3120
3121 2005-04-20  Mauro Tortonesi  <mauro@ferrara.linux.it>
3122
3123         * connect.c: Set IPV6_V6ONLY socket option when -6 switch is used.
3124
3125 2005-04-20  FUJISHIMA Satsuki  <sf@FreeBSD.org>
3126
3127         * http.c (request_set_header): Fix the check whether a new header
3128         needs to be allocated.
3129
3130 2005-04-18  Hrvoje Niksic  <hniksic@xemacs.org>
3131
3132         * utils.c (base64_encode): Use the parameter order that makes more
3133         sense.  Return the length of the base64 written.  Updated all
3134         callers.
3135
3136 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
3137
3138         * http.c (request_set_header): Free NAME when VALUE is NULL and
3139         freeing the header name is requested.
3140
3141 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
3142
3143         * snprintf.c (fmtstr): Declare VALUE as const char *.
3144         Based on patch by Russ Allbery.
3145
3146 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
3147
3148         * snprintf.c (fmtfp): More correct handling of significant digit
3149         count with %g -- 0.002 has one significant digit, not three.
3150
3151 2005-04-16  Hrvoje Niksic  <hniksic@xemacs.org>
3152
3153         * retr.c (fd_read_body): Respect read timeout with non-interactive
3154         or no progress gauge -- treat ETIMEDOUT specially only when
3155         progress_interactive.
3156         Reported by FUJISHIMA Satsuki.
3157
3158 2005-04-16  FUJISHIMA Satsuki  <sf@FreeBSD.org>
3159
3160         * http.c (gethttp): Don't use HTTP/1.0 persistent connections over
3161         proxy.
3162
3163 2005-04-16  Hrvoje Niksic  <hniksic@xemacs.org>
3164
3165         * snprintf.c: Use the PARAMS macro to handle prototypes.  Write
3166         function definitions in the ansi2knr-friendly way.
3167         (fmtstr): If string precision is specified, don't read VALUE past
3168         it.
3169         (dopr): Actually print %g and %e formats.
3170         (fmtfp): Fix a bug that caused 0.01 to be printed as 0.1.
3171         (fmtfp): Use LLONG in floating point conversions to be able to
3172         convert more digits.
3173         (fmtfp): Interpret precision as number of significant digits with
3174         %g.
3175         (fmtfp): Omit trailing decimal zeros with %g.
3176
3177         * snprintf.c: Don't include <ctype.h> because none of it is used.
3178         Include strings.h/string.h, as per Autoconf.
3179
3180 2005-04-15  Hrvoje Niksic  <hniksic@xemacs.org>
3181
3182         * ptimer.c: Use _POSIX_TIMERS - 0 > 0, which handles the case when
3183         _POSIX_TIMERS is defined but empty, as well as the case when it is
3184         undefined.  Do the same with the check for _POSIX_MONOTONIC_CLOCK.
3185         Suggested by Larry Jones.
3186
3187 2005-04-15  Hrvoje Niksic  <hniksic@xemacs.org>
3188
3189         * ptimer.c: Check that _POSIX_TIMERS is defined as well as > 0.
3190         Problem reported by Steven M. Schweda.
3191
3192 2005-04-14  Hrvoje Niksic  <hniksic@xemacs.org>
3193
3194         * http.c (skip_short_body): Print the skipped body data in debug
3195         mode.
3196         (skip_short_body): Don't skip more than 4k of body data.
3197         (skip_short_body): Return whether the skipping was successful.
3198         (gethttp): If skip_short_body failed, invalidate the connection.
3199
3200 2005-04-12  Gisle Vanem  <giva@bgnett.no>
3201
3202         * ftp.c (getftp): Ditto.
3203
3204         * http.c (gethttp): Open the output file in binary mode.
3205
3206 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3207
3208         * hash.c: Conditionalize including config.h on HAVE_CONFIG_H
3209         instead of on STANDALONE.
3210
3211 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3212
3213         * gen_sslfunc.c (ssl_print_errors): Made static.
3214         (ssl_print_errors): Eliminate potentially dangerous fixed-size
3215         error buffer.  Passing NULL to ERR_error_string causes it to use
3216         its own static buffer, which is fine for our purposes.
3217
3218         * gen_sslfunc.c: Include gen_sslfunc.h.  Make the declarations of
3219         ssl_init and ssl_conect match the actual definitions.
3220         (ssl_connect): Simply return a boolean, the SSL context is no
3221         longer useful as a return value.
3222
3223         * retr.c: Don't include SSL headers; we don't need them.
3224
3225 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3226
3227         * config-post.h: Don't define _VA_LIST under Solaris; it breaks
3228         compilation with GCC 3.4 under Solaris 10.  (It was defined to
3229         avoid a warning with previous versions of GCC.)
3230
3231 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3232
3233         * xmalloc.c (register_ptr): Warn the user to increase SZ prior to
3234         aborting.
3235
3236 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3237
3238         * convert.c (convert_cleanup): Free converted_files.
3239
3240 2005-04-10  Hrvoje Niksic  <hniksic@xemacs.org>
3241
3242         * wget.h (DEBUGP): Use __builtin_expect to give a hint to GCC that
3243         opt.debug is false in the vast majority of cases.
3244
3245 2005-04-10  Hrvoje Niksic  <hniksic@xemacs.org>
3246
3247         * config-post.h: Declare alloca as void *, not char *.
3248
3249 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
3250
3251         * recur.c (download_child_p): When -p is used, (temporarily)
3252         ignore accept/reject rules for HTMLs, even when they are at the
3253         maximum recursion depth.  That is because with -p we are, if
3254         necessary, overstepping the max. depth to get the requisites.
3255
3256 2004-06-12  Larry Jones <lawrence.jones@ugsplm.com>
3257
3258         * recur.c (download_child_p): Correct the logic in check number 6:
3259         test opt.reclevel (not DEPTH) against INFINITE_RECURSION.
3260
3261 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
3262
3263         * url.c: Use "static const" in preference to "const static".
3264         Sun's cc warns that "storage class after type is obsolescent".
3265
3266         * url.c (urlchr_table): Don't mark ~ as unsafe, too many broken
3267         web sites are confused when ~ is changed to %7E.  Their servers
3268         redirect /%7Efoo/ to /~foo/, which Wget again accesses using %7E,
3269         causing further redirections, therefore looping infinitely.  See
3270         Debian bug #301624 for an example.
3271
3272 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
3273
3274         * alloca.c: Include wget.h to be able to use xmalloc.  In addition
3275         to defining malloc to xmalloc, also define free to xfree.
3276
3277 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
3278
3279         * http-ntlm.c (ntlm_output): Use "char", not "unsigned char" for
3280         ntlmbuf.  Our base64 functions accept char anyway.
3281         (ntlm_output): Join up the format string, since we nominally
3282         support K&R compilers.
3283         (ntlm_output): Ditto.
3284
3285 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3286
3287         * ptimer.c: Use Windows timers under Cygwin, whose POSIX timer
3288         implementation is incomplete.
3289
3290 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3291
3292         * ptimer.c (struct ptimer): Remove the unused initialized field.
3293
3294         * ptimer.c: Renamed function parameters from WT (which used to
3295         stand for wget_timer or wtimer) to PT.
3296
3297 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3298
3299         * ptimer.c (posix_init): Be smarter about choosing clocks.  In
3300         decreasing order of preference, use CLOCK_MONOTONIC,
3301         CLOCK_HIGHRES, and CLOCK_REALTIME.
3302         (ptimer_allocate): Removed.
3303
3304         * ptimer.c: Refactor the code by cleanly separating the
3305         architecture-dependent code from the architecture-independent
3306         code.
3307
3308 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3309
3310         * ptimer.c (ptimer_init): Explicitly check that
3311         _POSIX_MONOTONIC_CLOCK is *both* defined and >=0.  (Undefined
3312         symbols are >=0.)
3313
3314 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3315
3316         * ptimer.c (ptimer_diff): Fix typo affecting Windows build.
3317
3318 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3319
3320         * ptimer.c (ptimer_init): In fact, _POSIX_MONOTONIC_CLOCK needs to
3321         be >= 0.
3322
3323         * ptimer.c (ptimer_init): Check whether _POSIX_MONOTONIC_CLOCK is
3324         defined instead of whether it's greater than 0.  glibc defines it
3325         to 0, but still makes it available via sysconf.
3326
3327 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3328
3329         * mswindows.c (str_to_int64): Rename OVERFLOW and UNDERFLOW to
3330         INT64_OVERFLOW and INT64_UNDERFLOW, since those names are used.
3331
3332 2005-04-07  Hrvoje Niksic  <hniksic@xemacs.org>
3333
3334         * ptimer.c: New file.  Move the "wtimer" functions from utils.c to
3335         this file and rename them to ptimer_.
3336
3337 2005-04-07  Hrvoje Niksic  <hniksic@xemacs.org>
3338
3339         * host.c (NO_ADDRESS): Define NO_ADDRESS only after the system
3340         headers have been included.
3341
3342 2005-04-06  Hrvoje Niksic  <hniksic@xemacs.org>
3343
3344         * http.c (pconn): Include NTLM data, which is per-connection.
3345         (known_authentication_scheme_p): Recognize NTLM authorization.
3346         (create_authorization_line): Call ntlm_input and ntlm_output.
3347
3348         * http-ntlm.c: New file, donated by Daniel Stenberg and originally
3349         written for curl, heavily modified for Wget.
3350
3351         * utils.c (base64_encode): Relocated from http.c, since it is now
3352         used by http-ntlm.c, and will possibly be used elsewhere.
3353         (base64_decode): New function, originally based on code from GNU
3354         recode.
3355
3356 2005-04-02  Hrvoje Niksic  <hniksic@xemacs.org>
3357
3358         * ftp.c (ftp_loop): Ditto.
3359
3360         * ftp-basic.c (ftp_pasv): Use the xzero shorthand for memset(0).
3361         (ftp_lpsv): Ditto.
3362
3363 2005-04-05  Mauro Tortonesi  <mauro@ferrara.linux.it>
3364
3365         * Makefile.in: removed string_t.c from list of source files.
3366
3367 2005-04-04  Mauro Tortonesi  <mauro@ferrara.linux.it>
3368
3369         * string_t.c: Removed.
3370         
3371         * string_t.h: Removed.
3372
3373 2005-04-02  Hrvoje Niksic  <hniksic@xemacs.org>
3374
3375         * url.c (rewrite_shorthand_url): Only accept recognized schemes.
3376         That way "foo:80" will correctly be rewritten to "http://foo:80"
3377         instead of left unchanged and ultimately rejected because of
3378         "unsupported scheme foo".
3379
3380 2005-03-31  Hrvoje Niksic  <hniksic@xemacs.org>
3381
3382         * utils.c (number_to_string): Avoid explicit 64-bit constants;
3383         construct them by multiplication at compile-time.
3384
3385         * utils.c, elsewhere: Don't append "L" to 32-bit integer
3386         constants; we aren't really compilable on 16-bit systems anyway.
3387
3388         * hash.c (prime_size): Remove primes larger than 2^31, but include
3389         2^31-1, which is prime.
3390
3391 2005-03-30  Hrvoje Niksic  <hniksic@xemacs.org>
3392
3393         * utils.c (string_set_to_array): New function.
3394
3395         * convert.c: Replace the use of "slists" with sets/hash-tables,
3396         which in fact suit the intended purpose much better.
3397         downloaded_html_list is removed altogether.
3398
3399 2005-03-29  Hrvoje Niksic  <hniksic@xemacs.org>
3400
3401         * ftp.h (enum): Rename GLOBALL, GETALL, and GETONE to
3402         GLOB_GLOBALL, GLOB_GETALL, and GLOB_GETONE to avoid conflict with
3403         Linux headers.
3404
3405 2005-03-29  Hrvoje Niksic  <hniksic@xemacs.org>
3406
3407         * utils.c (numdigit): More correct handling of negative numbers.
3408
3409 2005-03-21  Hrvoje Niksic  <hniksic@xemacs.org>
3410
3411         * http.c (gethttp): Print the human-readable size.
3412
3413         * ftp.c (getftp): Print the human-readable size of the file to be
3414         downloaded.
3415
3416         * utils.c (human_readable): New function.
3417
3418         * utils.c: Renamed "legible" to "with_thousand_seps",
3419         "legible_large_int" to "with_thousand_seps_large", and "legible_1"
3420         to "add_thousand_seps".
3421
3422 2005-03-21  Hrvoje Niksic  <hniksic@xemacs.org>
3423
3424         * http.c (gethttp): Inhibit persistent connections when talking to
3425         proxies, as mandated by RFC 2068.
3426
3427 2005-03-20  Hrvoje Niksic  <hniksic@xemacs.org>
3428
3429         * url.c (unescape_single_char): New function.
3430         (url_escape_dir): Use it to unescape slashes in directory
3431         components.
3432         (url_string): Escape unsafe chars in host name, except for the ':'
3433         charaters, which can appear in IPv6 addresses.
3434
3435         * main.c (main): Don't access the cookie jar directly.
3436
3437         * log.c (escnonprint_internal): Correctly calculate the needed
3438         string size.  Don't forget the buffer's new size after having
3439         reallocated it.
3440         (log_cleanup): New function.  Free the escnonprint ring data.
3441
3442         * init.c (cleanup): Don't free the cookie jar explicitly, it is
3443         now done by http_cleanup.
3444         (cleanup): opt.user_headers is now a vector, free it with
3445         free_vec.
3446
3447         * http.c (gethttp): Make sure to free the request data, the status
3448         message, and the response data before returning from the function.
3449         (save_cookies): New function.
3450         (http_cleanup): Free the cookie jar here.
3451
3452         * hash.c: Renamed string_hash to hash_string and ptrhash to
3453         hash_pointer.  Exported hash_pointer.
3454
3455         * xmalloc.c: Organized malloc_table (previously malloc_debug) as a
3456         simple EQ hash table.  register_ptr and unregister_ptr are now of
3457         O(1) complexity.
3458
3459         * xmalloc.c: Renamed "*_debug" to debugging_* and "*_real" to
3460         checking_*.
3461
3462 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
3463
3464         * utils.c (debug_test_md5): Moved to gen-md5.c.
3465
3466         * mswindows.h: Don't declare inet_ntop, since we don't use it.
3467
3468         * mswindows.h: For consistency, also wrap closesocket, it being
3469         a Winsock call.
3470
3471         * mswindows.h: Don't declare sleep and usleep; we're defining
3472         xsleep now.
3473
3474         * mswindows.h (mkdir): Don't special-case Borland C, _mkdir
3475         works there as well.
3476
3477         * host.c: Don't include winsock header files; the correct ones
3478         are already included by mswindows.h.
3479
3480         * mswindows.c (xsleep): Round toward the nearest millisecond
3481         in an attempt to avoid average short sleeps.
3482
3483         * utils.c (wtimer_granularity): Report correct values for
3484         Windows timers and for high-resolution timers.
3485
3486         * utils.c (wtimer_initialize_once): New function, called to
3487         initialize the timer frequency.
3488
3489         * utils.c: Replace the use of GetSystemTime with high-resolution
3490         counters under Windows.  When high-resolution counters are
3491         unavailable, use GetTickCount().
3492
3493 2005-03-15  Hrvoje Niksic  <hniksic@xemacs.org>
3494
3495         * retr.c (fd_read_body): Undo the 2004-11-18 change.  Instead,
3496         always be "exact".
3497
3498 2005-03-17  Hrvoje Niksic  <hniksic@xemacs.org>
3499
3500         * ftp-basic.c (ftp_login): Don't free the string if ftp_response
3501         returned an error status because the line didn't get allocated in
3502         the first place.
3503
3504 2005-03-15  Hrvoje Niksic  <hniksic@xemacs.org>
3505
3506         * http.c (read_http_response_head): Limit the response size to 64k
3507         bytes.
3508
3509         * retr.c (fd_read_hunk): Accept a MAXSIZE argument that limits the
3510         number of bytes the function is allowed to allocate.
3511         (fd_read_line): Limit the line to 4096 bytes.
3512
3513 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
3514
3515         * wget.h: Include options.h after wgint has been defined.
3516
3517         * options.h (struct options): Declare options processed with
3518         cmd_bytes as wgint, not long.
3519
3520 2005-03-18  Hrvoje Niksic  <hniksic@xemacs.org>
3521
3522         * init.c (cmd_file): Use concat_strings.
3523
3524         * http.c (basic_authentication_encode): Use concat_strings.
3525
3526         * ftp-ls.c (ftp_index): Use concat_strings.
3527
3528         * ftp-basic.c (ftp_request): Use concat_strings.
3529
3530         * utils.c (concat_strings): New function.
3531
3532 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
3533
3534         * init.c (simple_atof): Handle negative numbers; skip whitespace
3535         before the number.
3536         (simple_atoi): Ditto.  Also, check for overflow and underflow.
3537         (cmd_number): Bail out on negative numbers.
3538         (parse_bytes_helper): Ditto.
3539
3540 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3541
3542         * http.c (gethttp): Handle multiple Set-Cookie headers sent by
3543         remote server.
3544
3545 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3546
3547         * init.c (defaults): Use passive FTP by default.
3548
3549 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3550
3551         * mswindows.c: Provide wrappers to Winsock functions that set
3552         errno to WSAGetLastError() in case of failure.  Also provide a
3553         Windows-specific version of strerror.
3554
3555         * mswindows.h: Wrap calls to socket, bind, connect, recv, send,
3556         select, getsockname, getpeername, and setsockopt.
3557
3558 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3559
3560         * url.c (url_parse): Reject port numbers larger than 65535.  We
3561         also check for overflow while parsing port numbers.
3562
3563 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3564
3565         * utils.c (read_file): Don't use wgint for file size; LFS won't
3566         work since the file is mmap'ed as a whole.
3567
3568         * options.h: Don't include stdio.h.
3569
3570         * log.c: Ditto.
3571
3572         * init.c: Disambiguate assignment from non-zero test to avoid
3573         Borland C warning.
3574
3575         * http.c (response_new): Don't needlessly post-increment count.
3576
3577         * hash.c: Include stdio.h.
3578
3579         * gnu-md5.h: Don't include stdio.h.
3580
3581         * getopt.h (struct option): Always use const.
3582
3583         * ftp.c (getftp): Avoid unnecessary assignment to RES to avoid
3584         Borland C warning.
3585
3586         * ftp-ls.c: Disambiguate assignment from non-zero test to avoid
3587         Borland C warning.
3588
3589         * cmpt.c (strptime_internal): Don't initialize rp_backup when
3590         !_NL_CURRENT to avoid Borland C warning.
3591
3592 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3593
3594         * utils.c (fopen_excl): Fix parse error when O_BINARY is
3595         available.
3596
3597 2005-03-05  Hrvoje Niksic  <hniksic@xemacs.org>
3598
3599         * url.c (url_file_name): Don't allow hosts named ".." to be
3600         appended as path elements.
3601
3602 2005-03-03  Hrvoje Niksic  <hniksic@xemacs.org>
3603
3604         * retr.c (retrieve_url): Escape location header.
3605
3606         * http.c (print_server_response_1): Escape server response when
3607         printing it.
3608         (gethttp): Escape host name, status message, location header, and
3609         content type.
3610         (http_loop): Escape error message from server.
3611
3612         * host.c (lookup_host): Escape host name when printing it.
3613
3614         * ftp.c (getftp): Escape user name when printing it.
3615         (getftp): Escape remote file and directory for printing.
3616         (getftp): Escape server listing when printing it.
3617         (ftp_retrieve_list): Escape link name and file name.
3618         (ftp_retrieve_glob): Escape file name.
3619
3620         * ftp-basic.c (ftp_response): Escape server response when printing
3621         it.
3622
3623         * cookies.c (parse_set_cookies): Escape the cookie field when
3624         printing it.
3625         (parse_set_cookies): Escape contents of remote header.
3626         (cookie_handle_set_cookie): Escape host name and cookie domain.
3627
3628         * connect.c (connect_to_ip): Escape the host name.
3629
3630         * log.c (escnonprint): New function, used for printing strings
3631         coming from the server that possibly contain non-ASCII characters.
3632         (escnonprint_uri): Ditto.
3633
3634 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
3635
3636         * ftp.c (getftp): Ditto.
3637
3638         * http.c (gethttp): When we're not supposed to overwrite files,
3639         use fopen_excl to open the file and recompute the file name.
3640
3641         * log.c (redirect_output): Use unique_create to avoid a race
3642         condition.
3643
3644         * mswindows.c (fake_fork_child): Use unique_create.
3645
3646         * utils.c (fopen_excl): New function that opens a stdio stream
3647         with the O_EXCL flag (where available).
3648         (unique_create): New function, like unique_name, but also creating
3649         the file and returning a file pointer.
3650         (fork_to_background): Use unique_create to create the file
3651         immediately to avoid race condition with multiple instances of
3652         wget -b.
3653
3654 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
3655
3656         * host.c (lookup_host): Test for AI_ADDRCONFIG directly, instead
3657         of checking for HAVE_GETADDRINFO_AI_ADDRCONFIG.
3658
3659 2005-02-23  Hrvoje Niksic  <hniksic@xemacs.org>
3660
3661         * host.c (is_valid_ipv6_address): Move here from url.c.
3662         (lookup_host): If the address is numeric, don't print the
3663         "resolving..." line, don't set up DNS timeouts, and set the
3664         AI_NUMERICHOST hint, where available.
3665
3666 2005-02-26  Gisle Vanem  <giva@bgnett.no>
3667
3668         * utils.c: Use the nnnLL syntax under GCC.  Define struct_stat to
3669         struct _stati64 under __MINGW32__ as well as under MS VC.
3670
3671 2005-02-26  Hrvoje Niksic  <hniksic@xemacs.org>
3672
3673         * utils.c: Use the nnnI64 syntax for __int64 constants under all
3674         Windows compilers.
3675         (SPRINTF_WGINT): Use "%I64" under all Windows compilers.
3676
3677         * mswindows.h (WGINT_MAX): Use the nnnI64 syntax for
3678         __int64 constants under all Windows compilers.
3679         (struct_stat): Use `struct stati64' under Borland C.
3680         (fstat): Don't redefine to _fstati64 under Borland.
3681
3682         * mswindows.c: Define str_to_int64 under Borland C as well as
3683         under (older) Visual C.
3684
3685 2005-02-25  Hrvoje Niksic  <hniksic@xemacs.org>
3686
3687         * ftp.c (getftp): Initialize err to suppress compiler warning.
3688
3689 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
3690
3691         * ftp.c (ftp_expected_bytes): Fix bug that caused infloop because
3692         of not correctly skipping the '(' character.
3693
3694 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
3695
3696         * mswindows.c (wget_ftello): Removed.
3697
3698         * mswindows.h: Remove bogus definition of stat.
3699         (wget_ftello): Remove the leftover ftello replacement.
3700
3701 2005-02-20  Hrvoje Niksic  <hniksic@xemacs.org>
3702
3703         * mswindows.c (wget_ftello): Wget's replacement for ftello.
3704
3705         * utils.c (file_size): Use ftello where available.
3706
3707         * ftp-ls.c (ftp_parse_unix_ls): Use str_to_wgint to parse the file
3708         size.
3709         (ftp_parse_winnt_ls): Ditto.
3710
3711         * ftp-basic.c (ftp_size): Use str_to_wgint to convert number to
3712         wgint; pass 10 instead of 0 as the BASE argument.
3713
3714         * ftp.c (ftp_expected_bytes): Use str_to_wgint to parse the file
3715         size.
3716
3717         * sysdep.h (LARGE_INT_FMT): Use __int64 as LARGE_INT on
3718         MSVC/Windows; print it with "%I64".
3719
3720         * wget.h: Define a `wgint' type, normally aliased to (the possibly
3721         64-bit variant of) off_t.
3722
3723         * all: Use `wgint' instead of `long' for numeric variables that
3724         can hold file sizes.
3725
3726         * utils.c (number_to_string): Support printing of `wgint'
3727         argument.
3728         (number_to_static_string): New function.
3729
3730         * all: Replace printf("%ld", long_value) with printf("%s",
3731         number_to_static_string(wgint_value)).
3732
3733 2005-02-18  Mauro Tortonesi <mauro@ferrara.linux.it>
3734
3735         * main.c: Added the --ftp-passwd command line option.
3736
3737         * init.c: Renamed command passwd to ftppasswd.
3738
3739 2005-02-11  Mauro Tortonesi <mauro@ferrara.linux.it>
3740         
3741         * string_t.c: Fixed a bug in do_escape and triggered escape of
3742         backslashes in string_escape to avoid ambiguities in the result
3743         string.
3744         
3745 2005-02-10  Mauro Tortonesi <mauro@ferrara.linux.it>
3746
3747         * string.h: Renamed to string_t.h to fix a compilation conflict 
3748         with the string.h header in the standard C library.
3749         
3750         * string.c: Renamed to string_t.c for consistency with string.h.
3751         
3752         * string_t.c: Ditto.
3753
3754         * string_t.h: Ditto.
3755         
3756 2004-12-31  Mauro Tortonesi <mauro@ferrara.linux.it>
3757
3758         * string.c: New file.
3759
3760         * string.h: New file.
3761
3762         * Makefile.in: Added string.c to the list of modules to compile.
3763
3764         * main.c: Updated copyright.
3765
3766 2004-11-18  Ulf Harnhammar <ulf.harnhammar.9485@student.uu.se>
3767
3768         * ftp-ls.c: Fixed a problem in ftp_parse_winnt_ls that could allow a
3769         malicious remote FTP server to crash wget.
3770
3771 2004-11-18  Hans-Andreas Engel <engel@node.ch>
3772
3773         * http.c: Enable --convert-links (-k) when a single page is downloaded
3774         via --output-document (-O).
3775
3776 2004-11-18  Mauro Tortonesi <mauro@deepspace6.net>
3777
3778         * connect.c: Minor correction to the comment in front of fd_peek.
3779
3780 2004-11-18  Leonid Petrov <nouser@lpetrov.net>
3781
3782         * retr.c: Fix a timeout problem in fd_read_body when using http_proxy.
3783
3784 2004-11-15  YAMAZAKI Makoto <Yamazaki.Makoto@fujixerox.co.jp>
3785
3786         * netrc.c: Fix termination by assertion bug in netrc parsing.
3787
3788 2004-05-09  David Fritz  <zeroxdf@att.net>
3789
3790         * mswindows.c (fake_fork): Pass entire command line to the child
3791         process.
3792
3793 2004-03-31  Hrvoje Niksic  <hniksic@xemacs.org>
3794
3795         * http.c (gethttp): Fix typo: SCHEME_SSL -> SCHEME_HTTPS.
3796
3797 2004-03-30  Hrvoje Niksic  <hniksic@xemacs.org>
3798
3799         * http.c (gethttp): Send the Proxy-Authorization header over
3800         non-SSL connections too.
3801
3802 2004-03-25  David Fritz  <zeroxdf@att.net>
3803
3804         * mswindows.c (fake_fork_child): Ignore error code when
3805         OpenFileMapping() fails; assume it failed because the object does
3806         not exist.
3807
3808 2004-03-24  David Fritz  <zeroxdf@att.net>
3809
3810         * mswindows.c (fake_fork): New function.
3811
3812         * mswindows.c (fork_to_background): Use it.
3813
3814 2004-03-19  David Fritz  <zeroxdf@att.net>
3815
3816         * mswindows.c (ws_hangup): Incorporate old fork_to_background()
3817         code.  Add event name argument.
3818         (fork_to_backgorund): Now a simple wrapper around ws_hangup().
3819         (ws_handler): Correctly handle the case when neither CTRLC_BACKGND
3820         nor CTRLBREAK_BACKGND are defined.  Don't bother handling close,
3821         logoff, or shutdown events.  Call ws_hangup() with the correct
3822         event name; don't assume it was CTRL+Break.
3823
3824 2004-03-19  Hrvoje Niksic  <hniksic@xemacs.org>
3825
3826         * url.c (url_parse): Decode %HH sequences in host name.
3827
3828 2004-03-04  Hrvoje Niksic  <hniksic@xemacs.org>
3829
3830         * convert.c (local_quote_string): Quote "#" as "%23" and "%" as
3831         "%25" when creating links to local files.
3832
3833 2004-03-02  David Fritz  <zeroxdf@att.net>
3834
3835         * mswindows.c (ws_percenttitle): Guard against future changes by
3836         doing nothing if the proper variables have not been initialized.
3837         Clamp percentage value.
3838
3839 2004-03-04  Gisle Vanem  <giva@bgnett.no>
3840
3841         * retr.c (fd_read_body): Don't change console title if quiet.
3842
3843 2004-02-25  David Fritz  <zeroxdf@att.net>
3844
3845         * mswindows.c (set_sleep_mode): Remove argument and return value.
3846         Call GetModuleHandle() instead of LoadLibrary()/FreeLibrary() for
3847         kernel32.dll.  Use typedef for function-pointer.  Don't cast
3848         l-value.  Don't use dereference operator when calling through
3849         function-pointer.
3850         (ws_startup): Update call to set_sleep_mode().
3851         (ws_cleanup): Remove call to set_sleep_mode().
3852
3853 2004-02-23  David Fritz  <zeroxdf@att.net>
3854
3855         * http.c (http_loop): Ditto.
3856
3857         * ftp.c (ftp_loop_internal): Update call to ws_changetitle().
3858
3859         * main.c (main): Don't bother calling ws_changetitle().
3860
3861         * mswindows.h (ws_changetitle): Update prototype.
3862
3863         * mswindows.c (ws_changetitle): Remove second argument.  Use
3864         xfree_null().
3865         (ws_percenttitle): Only update title when percentage has changed.
3866
3867 2004-02-23  David Fritz  <zeroxdf@att.net>
3868
3869         * mswindows.h: Ditto.
3870
3871         * mswindows.c: Misc. formatting/comment tweaks throughout.
3872
3873 2004-02-20  David Fritz  <zeroxdf@att.net>
3874
3875         * main.c (print_help): Remove call to ws_help().
3876
3877         * mswindows.c (ws_help): Remove.
3878
3879         * mswindows.h (ws_help): Remove.
3880
3881 2004-02-16  David Fritz  <zeroxdf@att.net>
3882
3883         * init.c (home_dir): Use aprintf() instead of xmalloc()/sprintf().
3884         Under Windows, if $HOME is not defined, use the directory that
3885         contains the Wget binary instead of hard-coded `C:\'.
3886         (wgetrc_file_name): Under Windows, look for $HOME/.wgetrc then, if
3887         not found, look for wget.ini in the directory of the Wget binary.
3888
3889         * mswindows.c (ws_mypath): Employ slightly more robust methodology.
3890         Strip trailing path separator.
3891
3892 2004-02-06  Hrvoje Niksic  <hniksic@xemacs.org>
3893
3894         * http.c (gethttp): Respect --ignore-length.
3895         (gethttp): Inhibit keep-alive if --ignore-length is specified.
3896
3897 2004-02-06  Hrvoje Niksic  <hniksic@xemacs.org>
3898
3899         * connect.c (sockaddr_set_data): Zero out
3900         sockaddr_in/sockaddr_in6.  Apparently BSD-derived stacks need this
3901         when binding a socket to local address.
3902
3903 2004-02-04  Hrvoje Niksic  <hniksic@xemacs.org>
3904
3905         * hash.c: Make the file compilable outside Wget source tree when
3906         -DSTANDALONE is used.
3907
3908 2004-01-29  Hrvoje Niksic  <hniksic@xemacs.org>
3909
3910         * utils.c (determine_screen_width): Return 0 if not running on
3911         Windows or on a TIOCGWINSZ-capable system.
3912
3913 2004-01-28  David Fritz  <zeroxdf@att.net>
3914
3915         * utils.c (determine_screen_width): Correctly determine console
3916         width under Windows.
3917
3918 2004-01-28  Christian Biere  <christianbiere@gmx.de>
3919
3920         * progress.c (bar_set_params): Fixed syntax error when HAVE_ISATTY
3921         was undefined.
3922
3923         * ftp.c (ftp_loop_internal): Allocate a larger buffer in case
3924         "try" gets translated to something large.  Ditto in http_loop in
3925         http.c.
3926
3927         * http.c (response_header_copy): Don't write to buf[BUFSIZE].
3928
3929         * ftp-opie.c (skey_response): Eliminate unnecessary string
3930         concatenation; just call gen_md5_update twice.
3931
3932 2004-01-25  Hrvoje Niksic  <hniksic@xemacs.org>
3933
3934         * utils.c (xsleep): Don't call usleep with values larger than
3935         1,000,000.
3936
3937 2003-12-16  Hrvoje Niksic  <hniksic@xemacs.org>
3938
3939         * http.c (gethttp): Fix generation of `Content-Length'.
3940
3941 2003-12-15  Gisle Vanem  <giva@bgnett.no>
3942
3943         * url.c (url_skip_credentials): Fixed return value; 'url' if no
3944         credentials.
3945
3946 2003-12-14  Hrvoje Niksic  <hniksic@xemacs.org>
3947
3948         * url.c (url_skip_credentials): Return a pointer directly.
3949
3950 2003-12-14  Hrvoje Niksic  <hniksic@xemacs.org>
3951
3952         * url.c (url_file_name): Ditto.
3953         (parse_errors): Ditto.
3954
3955         * retr.c (retr_rate): Ditto.
3956
3957         * progress.c (create_image): Ditto.
3958
3959         * netrc.c (parse_netrc): Ditto.
3960
3961         * main.c (struct cmdline_option): Ditto.
3962         (redirect_output_signal): Ditto.
3963
3964         * init.c (commands): Ditto.
3965
3966         * ftp-ls.c (ftp_index): Ditto.
3967
3968         * cookies.c (check_domain_match): Declare the pointer to a literal
3969         string as `const'.
3970
3971 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
3972
3973         * retr.c (fd_read_body): Pass total size to progress_create, not
3974         the remaining amount.
3975
3976 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
3977
3978         * retr.c (fd_read_body): Don't fiddle with "interactive timeout"
3979         if read timeout is unset.
3980
3981 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
3982
3983         * connect.c (bind_local): Don't set the IPV6_V6ONLY option on the
3984         socket.
3985
3986 2003-12-06  Hrvoje Niksic  <hniksic@xemacs.org>
3987
3988         * url.c (url_file_name): Respect the setting of
3989         opt.protocol_directories.
3990
3991         * main.c (main): Only check for ret=='?' when longindex is unset.
3992         (option_data): New option --protocol-directories.
3993
3994 2003-12-06  Hrvoje Niksic  <hniksic@xemacs.org>
3995
3996         * ftp.c (getftp): Ditto.
3997
3998         * http.c (gethttp): Correctly calculate bandwidth as total data
3999         read divided with download time.
4000
4001         * retr.c (fd_read_body): Separate the return values for data
4002         written and read.
4003
4004 2003-12-05  Hrvoje Niksic  <hniksic@xemacs.org>
4005
4006         * http.c (H_REDIRECTED): Respect the HTTP/1.1 "303 See Other"
4007         response code.
4008         Suggested by Dan Razzell.
4009
4010 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
4011
4012         * retr.c (fd_read_body): Report the amount of data *written* as
4013         amount_read.  This is not entirely logical, but that's what the
4014         callers expect, and it's not easy to change.
4015
4016         * ftp.c (ftp_loop_internal): Ditto.
4017
4018         * http.c (http_loop): Be smarter about assigning restval; if we're
4019         in the nth pass of a download, simply use the information we have
4020         about how much data has been retrieved as restval.
4021
4022         * ftp.c (getftp): Ditto for FTP "REST" command.
4023
4024         * http.c (gethttp): When the server doesn't respect range, skip
4025         the first RESTVAL bytes of the read body.  Never truncate the
4026         output file.
4027
4028         * retr.c (fd_read_body): Support skipping initial STARTPOS octets.
4029
4030 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
4031
4032         * http.c (skip_short_body): Renamed skip_body to skip_short_body;
4033         don't bother calling fd_read_body.
4034
4035 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
4036
4037         * retr.c (fd_read_body): Sanitize arguments and document them
4038         better.  Make sure the timer is created and updated only if
4039         necessary.  Updated callers.
4040
4041 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
4042
4043         * http.c (skip_body): New function.
4044         (gethttp): Use it to skip the body of the responses we don't care
4045         to download.  That allows us to reuse the connection.
4046         (gethttp): Trust that the HEAD requests will not generate body
4047         data.
4048
4049         * retr.c (fd_read_body): Don't write to OUT if it's NULL.
4050
4051 2003-11-29  Hrvoje Niksic  <hniksic@xemacs.org>
4052
4053         * http.c (gethttp): Initialize SSL only the first time when SSL
4054         URL is downloaded.
4055
4056 2003-11-29  Hrvoje Niksic  <hniksic@xemacs.org>
4057
4058         * cookies.c (cookie_header): Only generate the contents of the
4059         header, not the leading "Cookie: " or the trailing "\r\n".
4060
4061         * http.c (gethttp): When adding headers specified with `--header',
4062         allow them to override the headers generated by Wget.
4063
4064         * init.c (cmd_spec_header): Made opt.user_headers a vector.
4065
4066         * http.c (request_new): New function.  Returns a request structure
4067         which can be modified in various ways, most notably by adding HTTP
4068         headers to the request.
4069         (request_set_header): New function for adding the header to the
4070         request.  If the header is already available, it gets replaced.
4071         (request_send): Construct and send the request.
4072         (gethttp): Use the request_* functions to generate the request.
4073
4074 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
4075
4076         * http.c (gethttp): Don't include the Proxy-Authorization header
4077         in the request tunneled through proxy.
4078
4079 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
4080
4081         * http.c (gethttp): Use the CONNECT handle to establish SSL
4082         passthrough through non-SSL proxies.
4083
4084 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
4085
4086         * init.c: Don't #include netinet/Winsock stuff.
4087
4088 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
4089
4090         * http.c: Deleted the old functions header_process,
4091         header_extract_number, header_exists, header_strdup,
4092         http_process_range, http_process_none, http_process_type, and
4093         http_process_connection.
4094
4095         * http.c (response_new): New function.
4096         (response_header_bounds): Ditto.
4097         (response_header_copy): Ditto.
4098         (response_header_strdup): Ditto.
4099         (response_status): Ditto.
4100         (gethttp): Use the new response_* functions to parse the response.
4101         Support HTTP/0.9 responses.
4102
4103 2003-11-27  Hrvoje Niksic  <hniksic@xemacs.org>
4104
4105         * progress.c (create_image): Don't calculate ETA if nothing has
4106         been downloaded yet, because it causes division by zero.
4107
4108 2003-11-27  Hrvoje Niksic  <hniksic@xemacs.org>
4109
4110         * connect.c (bind_local): Rename sa_len to addrlen because IRIX
4111         headers define sa_len as a macro.
4112
4113 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
4114
4115         * html-parse.c (convert_and_copy): Remove embedded newlines when
4116         AP_TRIM_BLANKS is specified.
4117
4118 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
4119
4120         * ftp.c: Set con->csock to -1 where rbuf_uninitialize was
4121         previously used.
4122
4123 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
4124
4125         * Makefile.in (http$o): Added the trailing backslash that was
4126         missing.
4127
4128 2003-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
4129
4130         * headers.c: Removed.  The file is no longer relevant, now that no
4131         special handling of headers is done by the rbuf code.  Moved
4132         portions to http.c.
4133
4134 2003-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
4135
4136         * rbuf.c: Removed.
4137
4138         * ftp-basic.c (ftp_response): Use fd_read_line.  No longer use
4139         struct rbuf.  Updated all callers.
4140
4141         * http.c (gethttp): Use fd_read_head to read all the headers in
4142         one go.
4143         (next_header): New function.
4144
4145         * retr.c (fd_read_line): New function: reads a line from FD,
4146         leaving the rest of the data unread.
4147         (fd_read_head): New function.
4148
4149         * connect.c (fd_peek): New function, implements peeking.
4150         (poll_internal): New function.
4151         (fd_read): Use it.
4152         (fd_write): Ditto.
4153         (fd_peek): Ditto.
4154         (fd_register_transport): Allow registering a "peeker" callback.
4155
4156 2003-11-20  Hrvoje Niksic  <hniksic@xemacs.org>
4157
4158         * connect.c: Renamed xread/xwrite/xclose to
4159         fd_read/fd_write/fd_close.  The "x" prefix is not appropriate
4160         because the semantics have diverged from read/write/close too
4161         significantly.  Updated all callers.
4162
4163 2003-11-20  Hrvoje Niksic  <hniksic@xemacs.org>
4164
4165         * connect.c (sock_write): It's not necessary to initialize RES.
4166
4167 2003-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
4168
4169         * main.c (main): Don't reference opt.ipv4_only and opt.ipv6_only
4170         if IPv6 is disabled.
4171
4172 2003-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
4173
4174         * connect.c (socket_has_inet6): Only compile it if IPv6 is enabled
4175         and AI_ADDRCONFIG is missing.
4176
4177 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
4178
4179         * gen_sslfunc.c (ssl_init_prng): Warn the user when using a weak
4180         random seed.
4181
4182 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
4183
4184         * host.c (address_list_contains): Renamed address_list_find to
4185         address_list_contains because its result is boolean.
4186
4187 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
4188
4189         * connect.c (select_fd): Return 1 if select is not available.
4190
4191 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
4192
4193         * connect.c (connect_to_host): Don't reference address list after
4194         releasing it.
4195
4196 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
4197
4198         * main.c (print_help): Fix alignment of FTP options output.
4199
4200 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
4201
4202         * host.c (lookup_host): Check for the ability to create IPv6
4203         sockets here.
4204
4205         * init.c (defaults): Don't auto-set --inet4-only on IPv6-less
4206         systems.
4207
4208 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
4209
4210         * main.c (print_help): Fix typo in `-O' help message.  Fix docs of
4211         -Y/--proxy.  Fix docs of `--cookies' and `--glob'.  Improve docs
4212         of --convert-links.  Fix docs of SSL options.
4213
4214 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
4215
4216         * ftp-basic.c: Don't include <arpa/inet.h> and others because
4217         they're no longer needed.
4218
4219 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
4220
4221         * main.c (main): Don't allow setting of both opt.ipv4_only and
4222         opt.ipv6_only.
4223
4224         * init.c (defaults): Mark opt.ipv4_only specially when set
4225         automatically.
4226
4227 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
4228
4229         * host.c (lookup_host): Use AI_ADDRCONFIG only if the family is
4230         unspecified.  This ensures that specifying `--no-inet4' on systems
4231         where IPv6 resolves, but doesn't work behaves the same regardless
4232         of the availability of AI_ADDRCONFIG.
4233
4234 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
4235
4236         * host.c: Don't refer to the now-removed function
4237         forget_host_lookup in the documentation of lookup_host.
4238
4239 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
4240
4241         * http.c (persistent_available_p): Correctly specify the endpoint
4242         argument to socket_ip_address.
4243         (gethttp): When printing the "reusing connection to..." message,
4244         specify the host name of the reused connection, not the current
4245         host name.  That makes more sense because it provides a useful
4246         piece of information -- we know to which host we're supposed to
4247         connect anyway!
4248
4249 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
4250
4251         * init.c: Make sure the options are in alphabetic order!
4252
4253         * host.c (lookup_host): Merge lookup_host_passive and lookup_host
4254         after all -- having both would result in some code duplication.
4255         (lookup_host): Set hints.ai_family to AF_INET if ipv4_only is
4256         requested.  Likewise, set it to AF_INET6 for ipv6_only.  Specify
4257         AI_ADDRCONFIG where available.
4258         (lookup_host): New flag LH_REFRESH that specifies that a cached
4259         entry for HOST should be refreshed.
4260         (cache_query): New function.
4261         (cache_store): Ditto.
4262         (cache_remove): Ditto.
4263         (forget_host_lookup): No longer necessary, replaced with static
4264         function cache_remove.
4265
4266 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
4267
4268         * main.c: Enable -4 and -6 only if IPv6 is enabled.
4269
4270 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
4271
4272         * connect.c (register_transport): Renamed from register_extended.
4273         Explain the intended usage.
4274
4275 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
4276
4277         * url.c (uri_merge): Merging "foo" and "bar" should result in
4278         "bar", not in "foo/bar".
4279         (path_simplify): Don't remove empty path elements; don't
4280         special-case leading slash.
4281         (path_simplify): Don't swallow ".."'s at the beginning of string.
4282         E.g. simplify "foo/../../bar" as "../bar", not as "bar".
4283         (append_uri_pathel): Defang ".." path element upon encountering
4284         it.
4285
4286 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4287
4288         * http.c (persistent_available_p): Don't attempt to talk to two
4289         different SSL sites over the same secure connection.
4290
4291 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4292
4293         * http.c (gethttp): Ditto.
4294
4295         * ftp.c (getftp): Use retryable_socket_connect_error instead of
4296         CONNECT_ERROR.
4297
4298         * wget.h (CONNECT_ERROR): Removed.
4299
4300         * connect.c (retryable_socket_connect_error): New function instead
4301         of unsupported_socket_family_error.
4302
4303 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4304
4305         * wget.h (CONNECT_ERROR): Use it.
4306
4307         * connect.c (unsupported_socket_family_error): New function.
4308
4309 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4310
4311         * connect.c (bind_local): Renamed bindport to bind_local; return
4312         the socket directly.  Updated callers.
4313         (accept_connection): Renamed acceptport to accept_connection;
4314         return the created socket directly.  Updated callers.
4315
4316 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4317
4318         * init.c (defaults): Turn on opt.ipv4_only if we're compiling with
4319         IPv6, and AI_ADDRINFO is not available, and AF_INET6 sockets can't
4320         be created.
4321
4322 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4323
4324         * host.c (lookup_host): Document the fact that the addresses are
4325         returned in order.
4326
4327 2003-11-12  Hrvoje Niksic  <hniksic@xemacs.org>
4328
4329         * utils.c: Use limits.h only where available.
4330
4331         * hash.c: Use INVALID_PTR and INVALID_PTR_BYTE.  Include limits.h.
4332
4333 2003-11-11  Hrvoje Niksic  <hniksic@xemacs.org>
4334
4335         * main.c: Added options --inet4-only and --inet6-only.
4336
4337 2003-11-11  Hrvoje Niksic  <hniksic@xemacs.org>
4338
4339         * host.c (host_errstr): Use the more standard message "Unknown
4340         host".
4341
4342 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
4343
4344         * connect.c (connect_to_host): Use that flag to decide whether to
4345         re-resolve the host name.
4346
4347         * host.c (struct address_list): Added a flag that maintains
4348         whether the connection worked at some point.
4349
4350 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
4351
4352         * host.c (lookup_host): Special-case the numeric addresses only in
4353         the non-IPv6 case.
4354
4355 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
4356
4357         * connect.c (resolve_bind_address): Call lookup_host_passive.
4358         Make sure that opt.bind_address is resolved only once.
4359
4360         * host.c (lookup_host_passive): New function, handles "passive"
4361         lookups.
4362         (lookup_host): Remove the passive flags.  Remove the
4363         family-related flags -- use ip_default_family instead.
4364
4365 2003-11-09  Hrvoje Niksic  <hniksic@xemacs.org>
4366
4367         * html-url.c: Get URLs from <object data="...">.
4368
4369 2003-11-09  Hrvoje Niksic  <hniksic@xemacs.org>
4370
4371         * main.c (option_data): Specify the command to use for --mirror.
4372
4373 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4374
4375         * cookies.c (cookie_handle_set_cookie): Specify exact match for
4376         unspecified domains.
4377
4378 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4379
4380         * main.c (main): Removed one-letter options `-C', `-g', `-G', and
4381         `-s'.
4382
4383 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4384
4385         * main.c (main): Add --dont-remove-listing for backward
4386         compatibility with previous versions.
4387         (print_help): Fix typo, spotted by Dennis Smit.
4388
4389 2003-11-08  Gisle Vanem  <giva@bgnett.no>
4390
4391         * ftp-basic.c: Support Windows-2000 ftp servers. Win-2000 *is*
4392         Win-NT 5.0 so calling it ST_WINNT is okay I guess.
4393
4394 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4395
4396         * progress.c (update_speed_ring): Clear the speed ring when the
4397         download stalls.
4398
4399         * retr.c (get_contents): Specify 0.95s read timeout, so that the
4400         progress gauge can be updated even when data arrives very slowly
4401         or stalls.
4402
4403 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4404
4405         * utils.c (wtimer_allocate): Bless the use of wtimer_read on a
4406         timer that has merely been allocated because get_contents() does
4407         that.
4408         (wtimer_update): Abort if the timer is not initialized.
4409
4410 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4411
4412         * retr.c (get_contents): Pass the timer to limit_bandwidth().
4413
4414         * utils.c (wtimer_update): New function instead of wget_elapsed;
4415         just update the timer, but don't return anything.
4416         (wtimer_read): Read and return the last known value of the timer.
4417
4418 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4419
4420         * http.c (persistent_available_p): Instead of matching all the
4421         addresses of HOST and last host, determine the peer's IP address
4422         with socket_ip_address and see if that address is one of those
4423         HOST resolves to.
4424
4425         * host.c (address_list_match_all): Removed.
4426         (address_list_find): New function, finds an IP address in the
4427         address list.
4428
4429         * ftp.c (ftp_do_pasv): Get the peer's address here, and pass it to
4430         ftp_epsv so it doesn't need to call getpeername.
4431
4432         * ftp-basic.c (ftp_port): Use socket_ip_address instead of
4433         getpeername.
4434         (ftp_lprt): Ditto.
4435
4436         * connect.c (socket_ip_address): Replaces conaddr, generalized to
4437         either get peer's or local address.
4438         (sockaddr_get_data): Made local to this file.
4439
4440 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4441
4442         * hash.c (HASH_POSITION): Explicitly accept the hash function.
4443         (grow_hash_table): Extract ht->hash_function outside the loop.
4444         (hash_table_remove): Ditto.
4445         (hash_table_clear): Fill entries with 0xff to clear them.
4446         (hash_table_remove): Mark entries as deleted with the correct
4447         marker.
4448
4449 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4450
4451         * http.c (persistent_available_p): No reason for the host lookup
4452         to be silent -- it's a lookup like any other.
4453
4454 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4455
4456         * connect.c (register_extended): Check that fd >= 0.
4457
4458 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
4459
4460         * connect.c (LAZY_RETRIEVE_INFO): Set LAST_INFO.
4461
4462 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
4463
4464         * hash.c (NON_EMPTY): Use the all-bit-set value as the marker that
4465         the field is empty.  This allows NULL pointer and 0 value to be
4466         used as keys, which is necessary for the connect.c code to work
4467         when fd==0.
4468         (hash_table_new): Fill mappings with 0xff.
4469         (grow_hash_table): Ditto.
4470
4471 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
4472
4473         * url.c (url_parse): Allow empty ports.
4474
4475 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
4476
4477         * main.c (print_help): Break the help string into multiple chunks.
4478         (cmdline_option): New option handler OPT_FUNCALL.  Generalized
4479         HANDLE_CMD to generic DATA.
4480         (option_data): Use the new OPT_FUNCALL feature.
4481
4482 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
4483
4484         * log.h: Declare log_init, log_close, and
4485         log_request_redirect_output here.
4486
4487 2003-11-05  Dennis Smit  <ds@nerds-incorporated.org>
4488
4489         * main.c: (main): added --preserve-permissions option.
4490
4491         * ftp.c (ftp_retrieve_list): added support for
4492         --preserve-permissions option.
4493
4494         * init.c: added support for --preserve-permission option.
4495
4496         * option.h: added support for --preserve-permission option.
4497
4498 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
4499
4500         * main.c (init_switches): New function.  Convert option_data to
4501         long_options and short_options, which can be fed to getopt_long.
4502         (main): Execute command-line options by consulting option_data.
4503
4504 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
4505
4506         * gen_sslfunc.c (ssl_read): Implement a more correct check for
4507         EINTR.
4508         (ssl_write): Ditto.
4509         (init_ssl): Use a global SSL context.
4510
4511 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
4512
4513         * connect.c (xclose): Free INFO even if it doesn't provide a
4514         closer.
4515
4516 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
4517
4518         * connect.c: Updated all callers of
4519         iread/ssl_iread/iwrite/ssl_iwrite to use xread and xwrite instead.
4520
4521         * rbuf.h (struct rbuf): Removed the SSL member because SSL is
4522         handled automatically by xread.
4523
4524         * hash.c (ptrhash): Made private.
4525         (ptrcmp): Ditto.
4526         (inthash): Removed.
4527
4528         * connect.c (select_fd): Don't set errno, leave it to the caller.
4529
4530         * gen_sslfunc.c (connect_ssl): Use register_extended to register
4531         SSL callbacks for communication with SSL-enabled endpoints.
4532         (ssl_read): New function.
4533         (ssl_write): Ditto.
4534         (ssl_poll): Ditto.
4535         (ssl_close): Ditto.
4536
4537         * connect.c (register_extended): New function -- register
4538         callbacks for basic socket operations.
4539         (xread): Ditto.
4540         (xwrite): Ditto.
4541         (xclose): Ditto.
4542         (sock_read): New function, default implementation for reading.
4543         (sock_write): Ditto for writing.
4544         (sock_poll): Ditto for polling.
4545         (sock_close): Ditto for closing.
4546
4547 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
4548
4549         * connect.c (bindport): Fix compilation under pre-C99 compilers.
4550
4551 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
4552
4553         * connect.c (connect_to_ip): More compact error checking.
4554         (bindport): Don't treat failed setsockopt as a fatal error.
4555
4556 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
4557
4558         * connect.c (resolve_bind_address): Use a more accurate error
4559         message -- we're not binding to ANY, we're disabling bind
4560         altogether.
4561
4562 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
4563
4564         * cookies.c (save_cookies_mapper): Respect the setting of
4565         keep-session-cookies.
4566         (cookie_jar_load): Import session cookies.
4567         Based on code submitted by Nicolas Schodet.
4568
4569         * utils.c (datetime_str): Use information in TM when it's
4570         non-NULL.
4571
4572         * main.c (main): New option `--keep-session-cookies'.
4573
4574 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
4575
4576         * Makefile.in (realclean): Delete config.h.in.
4577
4578 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
4579
4580         * config-post.h: New file, included from now autogenerated
4581         config.h.in.
4582
4583 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
4584
4585         * progress.c (progress_handle_sigwinch): Don't call
4586         determine_screen_width() from the signal handler.  Instead, just
4587         set a volatile variable.
4588         (bar_create): Check whether SIGWINCH was received.
4589         (bar_update): Ditto.
4590
4591         * sysdep.h: Define SYSTEM_FNMATCH only if HAVE_FNMATCH_H is true.
4592
4593 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4594
4595         * utils.c (xsleep): New function.  Uses nanosleep where available,
4596         resuming sleeps interrupted by signals.  Updated callers of sleep
4597         and usleep to use xsleep.
4598
4599 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4600
4601         * ftp-basic.c (ftp_login): Remove shadowing (and bogus)
4602         declaration of SEED.
4603
4604 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4605
4606         * log.c (logvprintf): Documented better.  Renamed to
4607         log_vprintf_internal to avoid confusion with the public API
4608         functions logprintf and logputs.
4609
4610 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4611
4612         * wget.h (N_): Don't parenthesize argument.
4613
4614 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4615
4616         * host.h (ADDRESS_IPV4_DATA): Don't take the address of in.s_addr
4617         because that doesn't work on machines that define it as bitfield.
4618
4619 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4620
4621         * connect.c (select_fd): Generalize the third argument into WAIT,
4622         so that the caller can request waiting for both read and write.
4623         Updated callers.
4624
4625 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
4626
4627         * html-url.c (cleanup_html_url): Destroy the hash tables, don't
4628         just call free on them.
4629         (init_interesting): Use hash_table_put instead of string_set_add
4630         because we don't need the strdup that the latter function
4631         performs.
4632
4633         * init.c (cleanup): Don't pass NULL to cookie_jar_delete.
4634
4635         * xmalloc.c (xfree_real): Abort when passed a NULL pointer.
4636         (xfree_debug): Print at the file and line of the offending call to
4637         free.
4638
4639 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
4640
4641         * wget.h: Retired the `boolean' type.  Moved the DEFAULT_LOGFILE
4642         define to log.h.  Moved the INFINITE_RECURSION define to recur.h.
4643
4644         * xmalloc.h: Renamed FREE_MAYBE to xfree_null and moved the
4645         definition from wget.h to xmalloc.h.
4646
4647 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
4648
4649         * html-parse.c (decode_entity): New function; split the decoding
4650         of entities here.
4651         (convert_and_copy): Use it to decode entities.
4652         (decode_entity): Handle the &apos entity.
4653         (decode_entity): Don't decode Latin 1 numeric entities.  Don't
4654         decode &#0.
4655
4656 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
4657
4658         * ftp-opie.c (calculate_skey_response): Use uint32_t instead of
4659         `unsigned long' for the cheksum array.  Document the function.
4660
4661 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
4662
4663         * connect.c (acceptport): Don't call select_fd when timeout is not
4664         requested.
4665
4666 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
4667
4668         * host.c: Removed the ip_default_family global variable.
4669
4670         * host.c (lookup_host): Document the function.  Fixed declaration
4671         of VEC.
4672
4673 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
4674
4675         * various: Use new macros xnew, xnew0, xnew_array, and xnew0_array
4676         in various places.
4677
4678 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
4679
4680         * wget.h: Move declarations of malloc and logging code to
4681         xmalloc.h and log.h respectively to unclutter this file.
4682         (STRDUP_ALLOCA): Made it side-effect free.
4683
4684         * xmalloc.h: New files.  Define macros xnew, xnew0, xnew_array,
4685         and xnew0_array.
4686
4687         * xmalloc.c: New file.  Move the xmalloc routines here.
4688
4689 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
4690
4691         * connect.c (sockaddr_set_data): Remove the broken code that
4692         checked for NULL address.
4693
4694 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
4695
4696         * host.c (address_list_from_single): Removed.
4697         (address_list_from_ipv4_addresses): Renamed from
4698         address_list_from_vector.
4699
4700 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
4701
4702         * sysdep.h (CLOSE): Don't call close on file descriptors less than
4703         0, i.e. on uncreated sockets.
4704
4705         * connect.c (resolve_bind_address): Work on struct sockaddr
4706         directly.
4707         (connect_to_host): Replacement for connect_to_many.  Resolve HOST
4708         and connect to any of its addresses.  If we can't connect and the
4709         host name lookup was cached, try to resolve it again.  This should
4710         fix problems with hosts behind dynamic DNS.  Updated all callers.
4711         (connect_to_ip): Replacement for connect_to_one.  Removed SILENT;
4712         added the argument PRINT instead.  Updated all callers.
4713         (set_connection_host_name): Removed.
4714
4715         * host.c (address_list_address_at): New function instead of
4716         address_list_copy_one. It returns a pointer to ip_address *, so
4717         it's not necessary to copy the data.
4718         (address_list_cached_p): New function.
4719         (forget_host_lookup): Ditto.
4720
4721         * connect.c: Got rid of the MSOCK global variable.  Made bindport
4722         return the local socket it creates.  Added a new argument to
4723         acceptport, the socket to call accept on.  Updated callers.
4724         (closeport): Removed.
4725
4726         * connect.c: Moved the sockaddr code from host.c to this file,
4727         because most of that stuff is used for connecting, and has nothing
4728         to do with host names anyway.
4729         (sockaddr_set_data, sockaddr_get_data): New functions, replace the
4730         old sockaddr_set_address, sockaddr_set_port, sockaddr_get_address,
4731         and sockaddr_get_port.
4732
4733 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
4734
4735         * sysdep.h: Use `S >= 8' rather than `S == 8' when looking for
4736         large integers.
4737
4738 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
4739
4740         * url.c (append_uri_pathel): New argument ESCAPED_P that says
4741         whether [B, E) is to be treated as URL-escaped or not.  If
4742         ESCAPED_P is false, don't unescape the region.
4743         (url_file_name): u->file is not URL-escaped.
4744
4745 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
4746
4747         * retr.c (retrieve_from_file): Use retrieve_tree for
4748         page-requisites.
4749
4750         * main.c (main): Don't define opt.recursive when -p is used.
4751         Instead, make sure that recursion is used for HTTP in that case.
4752
4753 2003-10-29  Hrvoje Niksic  <hniksic@xemacs.org>
4754
4755         * host.h: Defined accessors for elements of ip_address.  Updated
4756         all callers.
4757         (address_list_match_all): Use memcmp in the non-IPv6 case.
4758
4759         * wget.h (CONNECT_ERROR): Don't retry connecting if connect()
4760         returned EAFNOSUPPORT.
4761
4762 2003-10-27  Mauro Tortonesi <mauro@deepspace6.net>
4763
4764         * connect.h: changed bindport prototype and added the related
4765         BIND_ON_IPV4_ONLY and BIND_ON_IPV6_ONLY flags.
4766
4767         * connect.c: changed bindport and resolve_bind_address to allow
4768         protocol-version specific DNS resolution. modified conaddr,
4769         acceptport and connect_to_one to make use of struct
4770         sockaddr_storage and of the new ip_address structure.
4771
4772         * ftp-basic.c: added LPRT/LPSV (RFC1639) support, refactored
4773         PORT/PASV (RFC959) and EPRT/EPSV (RFC2428) support code.
4774
4775         * ftp.c: added the ftp_do_port and ftp_do_pasv functions to
4776         handle FTP over IPv6.
4777
4778         * ftp.h: changed prototype of ftp_epsv and added prototypes for
4779         ftp_lpsv, ftp_lprt and ftp_eprt.
4780
4781         * host.c: renamed the
4782         wget_sockaddr_set_address and wget_sockaddr_get_addr, and
4783         wget_sockaddr_{s,g}et_port couples to sockaddr_{s,g}et_address and
4784         sockaddr_{g,s}et_port respectively.  changed
4785         address_list_match_all, address_list_from_addrinfo sockaddr_len,
4786         pretty_print_address, lookup_host, sockaddr_{s,g}et_address and
4787         sockaddr_{g,s}et_port to make use of struct sockaddr_storage and
4788         of the new ip_address structure.  removed map_ipv4_to_ip and
4789         map_ip_to_ipv4.
4790
4791         * host.h: redefined structure ip_address and removed structure
4792         wget_sockaddr.
4793
4794 2003-10-26  Hrvoje Niksic  <hniksic@xemacs.org>
4795
4796         * sysdep.h: Include inttypes.h where available.
4797
4798         * host.c: Switch from u_int32_t to uint32_t.
4799
4800 2003-10-26  Hrvoje Niksic  <hniksic@xemacs.org>
4801
4802         * netrc.c (parse_netrc): Reset the QUOTE flag after the closing
4803         quote.
4804
4805 2003-10-25  Hrvoje Niksic  <hniksic@xemacs.org>
4806
4807         * url.c (is_valid_ipv6_address): Reformat to GNU coding style.
4808         Use enums for NS_IN* constants.  Use ISXDIGIT.
4809
4810         * convert.c (construct_relative): Document better how the function
4811         works.
4812
4813 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
4814
4815         * config.h.in: Deploy preprocessor magic to avoid Ultrix's
4816         <netdb.h> include <bitypes.h> which defines its own u_int32_t.
4817         Reported by Bernhard Simon.
4818
4819 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
4820
4821         * version.c: Bump version.
4822
4823 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
4824
4825         * url.c: Ditto.
4826
4827         * html-parse.c (advance_declaration): Don't use trailing comma in
4828         enum because older compilers don't support it.
4829
4830         * utils.c: Don't redefine HAVE_SIGSETJMP.
4831
4832 2003-10-16  Hrvoje Niksic  <hniksic@xemacs.org>
4833
4834         * convert.c (construct_relative): Don't handle absolute files
4835         specially -- for example, -P/tmp/foo shouldn't imply that
4836         converted files must refer to "/tmp/foo/..."!
4837
4838 2003-10-15  Hrvoje Niksic  <hniksic@xemacs.org>
4839
4840         * http.c: Consider status 307 a valid redirect.
4841
4842 2003-10-15  Philip Stadermann  <philip.stadermann@credativ.de>
4843
4844         * ftp.c (ftp_retrieve_glob): Correctly loop through the list whose
4845         elements might have been deleted.
4846
4847 2003-10-13  Hrvoje Niksic  <hniksic@xemacs.org>
4848
4849         * html-url.c (tag_handle_meta): Set the Refresh link to expect
4850         HTML.
4851         (append_one_url): Renamed to append_url.
4852
4853 2003-10-13  Hrvoje Niksic  <hniksic@xemacs.org>
4854
4855         * sysdep.h: Only define u_int32_t.
4856
4857 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
4858
4859         * utils.c (large_int_to_string): Use snprintf() to print the
4860         number.  This will work even on systems where libc doesn't
4861         understand %lld, but the compiler does, because it will use our
4862         snprintf replacement.
4863
4864         * init.c (parse_bytes_helper): New function.
4865         (cmd_bytes): Use it to parse bytes, but cast the result to long.
4866         (cmd_bytes_large): Ditto, but store the result to LARGE_INT.  Used
4867         for --quota so that --quota=10G works even on machines without
4868         long long.
4869
4870         * options.h (struct options): Declare quota as LARGE_INT.
4871
4872         * retr.c (downloaded_exceeds_quota): Removed.
4873         (downloaded_increase): Ditto.
4874         (total_downloaded_bytes): New variable, replaces opt.downloaded,
4875         which was the wrong place for it anyway.  Updated callers of
4876         downloaded_exceeds_quota and downloaded_increase to check this
4877         variable directly.
4878
4879         * sysdep.h: Get rid of VERY_LONG_TYPE.  Use LARGE_INT for the same
4880         purpose, defined as `long', `long long' or `double', depending on
4881         size of long and whether long long is available.
4882
4883 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
4884
4885         * sysdep.h: Also check size of short for int32_t.
4886
4887 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
4888
4889         * host.c (lookup_host): Use u_int32_t to store the result of
4890         inet_addr().  That removes the need for offset fiddling, caring
4891         about endian-ness, etc.
4892
4893         * sysdep.h: Define int32_t and u_int32_t if not available.
4894
4895 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
4896
4897         * ftp-basic.c (ftp_epsv): Use socklen_t * as the third argument to
4898         getpeername.
4899
4900         * config.h.in: Define socklen_t stub.
4901
4902         * host.c (sockaddr_len): Return socklen_t.
4903
4904         * connect.c (conaddr): Use socklen_t as the third argument to
4905         accept, getsockname, and connect.
4906
4907 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
4908
4909         * recur.c (retrieve_tree): Don't descend into documents that are
4910         not expected to contain HTML, regardless of their content-type.
4911
4912         * html-url.c (tag_url_attributes): Record which attributes are
4913         supposed to yield HTML links that can be followed.
4914         (tag_find_urls): Propagate that information to the caller through
4915         struct urlpos.
4916
4917 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
4918
4919         * hash.c (find_mapping): Return the next available mapping when
4920         the key is not found, not NULL.
4921         (hash_table_put): Use find_mapping to find the storage for the new
4922         data.
4923         (hash_table_put): Grow the table before exceeding maximum
4924         fullness, not afterwards.
4925
4926 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
4927
4928         * hash.c (hash_table_new): Slightly change the meaning of the
4929         first parameter.  Instead of being the minimum initial size, it is
4930         now the minimum number of items that the hash table can take
4931         without needing to resize.
4932
4933 2003-10-09  Hrvoje Niksic  <hniksic@xemacs.org>
4934
4935         * html-url.c (init_interesting): Initialize interesting_tags and
4936         interesting_attributes as hash tables.  This simplifies the code
4937         immensely because hash tables handle allocation and remove
4938         duplicates automatically.
4939         (find_tag): Removed.
4940         (collect_tags_mapper): Instead of calling find_tag, simply get the
4941         entry from interesting_tags hash table, which is both simpler and
4942         faster.
4943
4944 2003-10-09  Hrvoje Niksic  <hniksic@xemacs.org>
4945
4946         * hash.c (hash_table_get): Declare hash-table argument as const.
4947         (find_mapping): Ditto.
4948         (hash_table_get_pair): Ditto.
4949         (hash_table_contains): Ditto.
4950         (hash_table_count): Ditto.
4951
4952 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
4953
4954         * html-url.c (get_urls_html): Parse the appropriate flags to
4955         html-parse.c.
4956
4957         * html-parse.c (map_html_tags): Accept FLAGS from the caller
4958         instead of examining OPT.
4959
4960 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
4961
4962         * html-url.c (find_tag): Switch to binary search.
4963
4964 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
4965
4966         * main.c (print_help): Fix typo; stured -> stored.
4967
4968 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
4969
4970         * getopt.c: Add definitions of getopt_long and getopt_long_only.
4971
4972 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
4973
4974         * config.h.in: Renamed DEBUG to ENABLE_DEBUG.  ENABLE_DEBUG is, I
4975         think, a better name, because it implies that debugging output is
4976         merely possible, not "on by default", as might be construed from
4977         just DEBUG.
4978
4979 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
4980
4981         * ftp.c (has_insecure_name_p): Define it here.
4982
4983         * utils.c (has_wildcards_p): Define it here.
4984
4985         * sysdep.h: Declare fnmatch-related macros here, if not using
4986         system fnmatch().  Update .c files to not declare fnmatch.h
4987         directly.
4988
4989         * cmpt.c (fnmatch): Moved here.  Use it only under non-GNU libc.
4990
4991 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
4992
4993         * getopt.c: Newer version, imported from Free libit.
4994
4995 2003-10-07  Hrvoje Niksic  <hniksic@xemacs.org>
4996
4997         * cookies.c (struct cookie): Remove unused backpointer to cookie
4998         jar.
4999
5000 2003-10-07  Hrvoje Niksic  <hniksic@xemacs.org>
5001
5002         * cmpt.c (memmove): Comment out, since it's no longer used.
5003
5004         * cookies.c (cookie_jar_generate_cookie_header): Allocate room for
5005         chains in one pass.
5006         (find_chains_of_host): Assume that the caller has allocated DEST
5007         to be sufficiently large to take all the data.
5008         (eliminate_dups): Run through the array and eliminate dups on the
5009         fly instead of using memmove.
5010         (cookie_jar_process_set_cookie): Free cookie->domain before
5011         re-setting it.
5012
5013 2003-10-05  Gisle Vanem  <giva@bgnett.no>
5014
5015         * mswindows.c (set_sleep_mode): Fix type of
5016         _SetThreadExecutionState.
5017
5018 2003-10-05  Hrvoje Niksic  <hniksic@xemacs.org>
5019
5020         * utils.c (file_size): Return -1 if fopen() returns NULL.  Prior
5021         to this patch, wget --post-file=nosuchfile dumped core.
5022
5023 2003-10-04  Gisle Vanem  <giva@bgnett.no>
5024
5025         * mswindows.c (run_with_timeout): Use WaitForSingleObject to wait
5026         for thread termination.
5027
5028 2003-10-04  Hrvoje Niksic  <hniksic@xemacs.org>
5029
5030         * log.c: Use `...' in function definitions; ansi2knr will convert
5031         them to va_dcl.  This allowed removal of the ugly VA_START_1 and
5032         VA_START_2 macros.
5033
5034 2003-10-03  Gisle Vanem  <giva@bgnett.no>
5035
5036         * connect.c: And don't include them here.
5037
5038         * mswindows.h: Include winsock headers here.
5039
5040 2003-10-03  Hrvoje Niksic  <hniksic@xemacs.org>
5041
5042         * html-parse.c (convert_and_copy): Move variable declarations
5043         before statements.
5044
5045 2003-10-02  Gisle Vanem  <giva@bgnett.no>
5046         
5047         * mswindows.c (run_with_timeout): For Windows: Run the 'fun' in a
5048         thread via a helper function. Continually query the thread's
5049         exit-code until finished or timed out.
5050
5051 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
5052
5053         * wget.h (XMALLOC_ARRAY): Removed.
5054         (ALLOCA_ARRAY): Ditto.
5055
5056         * html-parse.c: Renamed alloca_p to resized.
5057         (GROW_ARRAY): Renamed DO_REALLOC_FROM_ALLOCA to GROW_ARRAY and
5058         returned it to html-parse.c, since nothing else was using it.
5059
5060 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
5061
5062         * retr.c (retrieve_url): Initialize DUMMY storage for DT.  Caught
5063         by valgrind.
5064
5065 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
5066
5067         * html-parse.c (convert_and_copy): Handle numeric entities in
5068         hexadecimal, &#xHH.
5069         (convert_and_copy): Copy the contents directly to the pool without
5070         a stack-allocated intermediary.
5071
5072 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
5073
5074         * utils.c (alarm_set): New function; use either setitimer or alarm
5075         to set up the alarm.
5076         (alarm_cancel): New function; cancel the alarm set up by
5077         alarm_set.
5078         (run_with_timeout): Use them.
5079
5080 2003-10-01  Hrvoje Niksic  <hniksic@xemacs.org>
5081
5082         * url.c (url_parse): Don't leak memory when a reencoded URL turns
5083         out to be invalid.
5084
5085         * url.c (parse_errors): Mark error messages for translation.
5086         (url_error): Translate error messages returned to the caller.
5087
5088 2003-10-01  Hrvoje Niksic  <hniksic@xemacs.org>
5089
5090         * ftp.c (ftp_loop_internal): Initialize TMRATE to NULL to shut up
5091         the compiler.
5092
5093 2003-09-26  Gisle Vanem  <giva@bgnett.no>
5094
5095         * src/mswindows.c: Added ws_percenttitle() showing progress in the
5096         window titlebar. Called from retr.c. Secured ws_mypath().
5097
5098         * windows/config.h.ms: alloca() prototype not needed.  Removed
5099         "#undef ENABLE_NLS"; should be in Makefile IMHO. Moved
5100         WGET_USE_STDARG from mswindows.h to config.ms.h because of #ifdef
5101         in log.c. (MSVC's vararg.h and stdarg.h are incompatible).
5102
5103 2003-09-29  Aaron Hawley <Aaron.Hawley@uvm.edu>
5104
5105         * ftp.c (getftp): --spider option should now work with FTP
5106         downloads.
5107         (ftp_loop_internal): quiet reports and calculations of downloads
5108         when --spider option set, nor try deleting when --delete-after
5109         also set.
5110         (ftp_loop): --spider will skip HTML-ification of .listing file.
5111
5112 2003-09-26  Gisle Vanem  <giva@bgnett.no>
5113
5114         * mswindows.c (read_registry): Removed.
5115         (set_sleep_mode): New function.
5116         (windows_main_junk): Call it.
5117
5118 2003-09-26  Gisle Vanem  <giva@bgnett.no>
5119
5120         * mswindows.c (read_registry): Fix invocation of registry
5121         functions.
5122
5123         * mswindows.c (read_registry): Condition definitions of sleep and
5124         usleep with not HAVE_SLEEP and HAVE_USLEEP respectively.  Define
5125         HAVE_SLEEP and HAVE_USLEEP under __DMC__.
5126
5127 2003-09-24  Hrvoje Niksic  <hniksic@xemacs.org>
5128
5129         * url.c (url_escape_1): Revert unintentional change to lowercase
5130         xdigit escapes.
5131         (url_escape_dir): Document that this function depends on the
5132         output of url_escape_1.
5133
5134 2003-09-23  Hrvoje Niksic  <hniksic@xemacs.org>
5135
5136         * progress.c (create_image): Print the current ETA if we're done
5137         with the download.
5138         (create_image): Change '-' display char to '+' in the progress bar.
5139
5140         * Makefile.in (clean): Remove .libs.
5141
5142 2003-09-23  Hrvoje Niksic  <hniksic@xemacs.org>
5143
5144         * cookies.c (struct cookie): New flag domain_exact.
5145         (update_cookie_field): Skip leading dot in domain.
5146         (find_matching_chains): Match numeric addresses exactly; don't
5147         needlessly copy HOST to the stack.
5148         (matching_cookie): Added argument HOST.  If cookie->domain_exact
5149         is set, check that HOST is equal to cookie->domain.
5150         (cookie_jar_load): Only use TAB as delimiter.  Document the
5151         meaning of DOMAIN-FLAG.  Skip leading dot in domain.
5152         (cookie_jar_load): Don't ignore DOMAIN-FLAG -- instead, set
5153         domain_exact to true if DOMAIN-FLAG is false.
5154         (save_cookies_mapper): If domain_exact is false, prepend the
5155         domain with dot, like Mozilla does.
5156
5157 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
5158
5159         * progress.c (create_image): Print the initial part of the
5160         download with '-' characters, analogous to how dot progress prints
5161         the initial part with ','.
5162
5163         * hash.c (ptrhash): New function.
5164         (ptrcmp): Ditto.
5165         (hash_table_new): Default to identity hash table.
5166
5167 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
5168
5169         * safe-ctype.h (_sch_test): The cast of BIT to unsigned char was
5170         broken -- _sch_istable bitmasks are 16-bit, not 8-bit!  Cast BIT
5171         to unsigned short instead.
5172
5173 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
5174
5175         * url.c (path_simplify): Instead of calls to memmove, handle "./"
5176         and "../" by advancing pointers.
5177
5178 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
5179
5180         * retr.c (getproxy): Moved from url.c.
5181
5182         * convert.c: Split off link conversion from url.c into separate
5183         file.  Also included the book-keeping stuff from recur.c.
5184
5185 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5186
5187         * init.c: Improved documentation of functions.
5188         (cmd_boolean): Attempt to make code that tries to avoid calling
5189         strcmp for "speed" a bit more readable.
5190
5191         * init.c (simple_atof): Report error on encountering non-digit,
5192         non-"." character.
5193         (simple_atoi): Replacement for myatoi(), calling interface
5194         compatible with simple_atof.  Updated myatoi's callers.
5195
5196 2003-09-21  Bertrand Demiddelaer  <bert@b3rt.org>
5197
5198         * url.c (path_simplify): Would read two bytes past the end of the
5199         string in the "./" case.
5200
5201 2003-09-21  Matthew J. Mellon  <mellon@tymenet.com>
5202
5203         * http.c (gethttp): Recognize content-type "application/xhtml+xml"
5204         as what Wget considers "text/html".
5205
5206 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5207
5208         * connect.c (connect_with_timeout): Made timeout type double.
5209
5210         * options.h (struct options): New members read_timeout,
5211         dns_timeout, and connect_timeout.
5212         Use them.
5213
5214 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5215
5216         * init.c (simple_atof): New function.
5217         (cmd_time): Use it.
5218         (cmd_bytes): Accept things like "1.5k" and such.  Use simple_atof
5219         to parse decimals.
5220
5221         * retr.c (limit_bandwidth): Adjust each sleep by the error of the
5222         previous one.
5223
5224 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5225
5226         * main.c (main): Use setoptval() for setting the options.  Use
5227         run_command for `-e'.
5228
5229         * init.c (parse_line): Rewritten to return COMIND right away.
5230         Changed linkage to static.
5231         (run_wgetrc): Use the available comind when calling setval, so it
5232         doesn't have to be computed twice.
5233         (setval_internal): New function, runs the command's action without
5234         any error checking.
5235         (setoptval): New function, does what setval used to do, but exits
5236         in case of error.
5237         (run_command): New function.
5238
5239 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5240
5241         * connect.c (select_fd): Change MAXTIME's type to double.  Handle
5242         its decimal part.
5243
5244         * retr.c (sleep_between_retrievals): In the random-wait case, use
5245         random_float() to wait between 0 and 2*opt.wait seconds.
5246
5247         * utils.c (run_with_timeout): Accept `double' timeouts.  Correctly
5248         handle timeout values in (0, 1) range.
5249         (random_float): New function.
5250
5251         * options.h (struct options): Change the types of wait, waitretry,
5252         and timeout to double.
5253
5254         * init.c (cmd_time): Accept floating point time.
5255
5256 2003-09-20  Hrvoje Niksic  <hniksic@xemacs.org>
5257
5258         * retr.c (get_contents): Cosmetic fixes.
5259
5260 2003-09-20  Hrvoje Niksic  <hniksic@xemacs.org>
5261
5262         * url.c (uri_merge): Get rid of uri_merge_1.
5263         (uri_merge): Merge "foo//", "bar" as "foo//bar", not "foo///bar",
5264         i.e. don't add an extra slash merely because BASE ends with two
5265         slashes.
5266         (parse_credentials): Renamed from parse_uname.  Rewrittern in
5267         standard [beg, end) calling style.
5268         (url_skip_credentials): Renamed from url_skip_uname.  Made static.
5269         (url_skip_credentials): Include # and ; as terminators.  Old code
5270         would mistakenly consider "http://foo.com#hniksic@iskon.hr" to
5271         contain a username.
5272         (url_skip_scheme): Removed because it was unused.
5273         (url_has_scheme): Require "scheme" to be at least one char long.
5274
5275 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
5276
5277         * url.c (url_file_name): Expect NULL dir_prefix.
5278
5279         * init.c (cmd_file): Use a macro to prevent multiple #ifdef
5280         WINDOWS.
5281         (defaults): Set dir_prefix to NULL by default.
5282
5283 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
5284
5285         * safe-ctype.h (_sch_test): Cast BIT to unsigned char, like latest
5286         gcc does.
5287
5288 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
5289
5290         * wget.h (BOUNDED_TO_ALLOCA): Evaluate PLACE only once.
5291         (ARRAY_SIZE): Renamed to countof.  All callers updated.
5292
5293 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
5294
5295         * main.c (main): New option --strict-comments.
5296
5297         * html-parse.c (find_comment_end): New function: simple BM search
5298         for "-->".
5299         (map_html_tags): Use it if looking at a comment and not in strict
5300         comments mode.
5301
5302 2003-09-17  Aurelien Marchand  <artaxerxes@users.sf.net>
5303
5304         * ftp.h: Added OS400 system in enum
5305         * ftp-basic.c: recognize OS400 systems
5306         * ftp.c: don't prepend the CWD if talking to OS400, since it
5307         breaks the change in library
5308
5309 2003-09-18  Hrvoje Niksic  <hniksic@xemacs.org>
5310
5311         * retr.c (get_contents): Pass the correct argument to ssl_iread.
5312
5313 2003-09-18  Hrvoje Niksic  <hniksic@xemacs.org>
5314
5315         * safe-ctype.h: Don't #define ctype.h macros to errors because
5316         that loses when someone #include's ctype.h after safe-ctype.h.
5317
5318 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
5319
5320         * url.c: Undef U, W, C after use.
5321
5322 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
5323
5324         * init.c (cmd_spec_restrict_file_names): Allow the OS setting to
5325         be augmented by ",nocontrol" which means don't escape the control
5326         characters, but otherwise keep OS settings.
5327
5328         * url.c (file_unsafe_char): Deleted.
5329         (append_uri_pathel): Query filechr_table directly.
5330         (filechr_table): Separated Unix, Windows, and control-unsafe
5331         characters.
5332
5333 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
5334
5335         * url.c (url_escape_1): New function.
5336         (url_escape): Use it.
5337         (sync_path): Handle pathological cases where u->file and u->dir
5338         contain really strange characters.
5339         (ENCODE): Deleted.
5340         (REENCODE): Deleted.
5341
5342 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
5343
5344         * url.c (url_file_name): Don't reallocate FNAME if the file
5345         doesn't exist, as is usually the case.
5346
5347         * utils.c (unique_name): New flag allow_passthrough.
5348
5349 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
5350
5351         * utils.c (wtimer_sys_diff): Convert the time difference to signed
5352         __int64, then to double.  This works around MS VC++ 6 which can't
5353         convert unsigned __int64 to double directly.
5354
5355 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
5356
5357         * Makefile.in (clean): Also remove the core.<number> files
5358         produced by recent Linux systems.
5359
5360 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
5361
5362         * http.c (post_file): Don't pad the file if it's not large
5363         enough.  Bail out instead.
5364
5365 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5366
5367         * retr.c (get_contents): Reduce the buffer size to the amount of
5368         data that may pass through for one second.  This prevents long
5369         sleeps when limiting bandwidth.
5370
5371         * connect.c (connect_to_one): Reduce the socket's RCVBUF when
5372         bandwidth limitation to small values is requested.
5373
5374 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5375
5376         * progress.c (update_speed_ring): Moved the speed ring update to a
5377         separate function and documented it better.
5378
5379         * progress.c: Use `double' for most timers to support granularity
5380         smaller than 1ms.
5381
5382 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5383
5384         * wget.h (XDIGIT_TO_XCHAR): Implement as index into a literal
5385         string.
5386         (XDIGIT_TO_xchar): Ditto.
5387
5388 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5389
5390         * utils.c: Change the type of timer-related functions from long to
5391         double, for better precision.  On machines supporting gettimeofday
5392         the timers now work with granularity of less than one millisecond.
5393
5394 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5395
5396         * cookies.c (parse_set_cookies): Fixed the parser to handle more
5397         edge conditions.
5398         (test_cookies): New function, contains a test suite for
5399         parse_set_cookies.
5400
5401 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5402
5403         * url.c (strpbrk_or_eos): Implement as a macro under Gcc.
5404
5405 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5406
5407         * cookies.c (parse_set_cookies): Allow trailing space in
5408         set-cookies header.  Also, allow any amount of whitespace, not
5409         only one character.  Allow empty set-cookies header without
5410         spewing an error.
5411
5412 2003-09-14  Hrvoje Niksic  <hniksic@xemacs.org>
5413
5414         * url.c (append_uri_pathel): Use opt.restrict_file_names when
5415         calling file_unsafe_char.
5416
5417         * init.c: New command restrict_file_names.
5418
5419         * main.c (main): New option --restrict-file-names[=windows,unix].
5420
5421         * url.c (url_file_name): Renamed from url_filename.
5422         (url_file_name): Add directory and hostdir prefix here, not in
5423         mkstruct.
5424         (append_dir_structure): New function, does part of the work that
5425         used to be in mkstruct.  Iterates over path elements in u->path,
5426         calling append_uri_pathel on each one to append it to the file
5427         name.
5428         (append_uri_pathel): URL-unescape a path element and reencode it
5429         with a different set of rules, more appropriate for handling of
5430         files.
5431         (file_unsafe_char): New function, uses a lookup table to decide
5432         whether a character should be escaped for use in file name.
5433         (append_string): New utility function.
5434         (append_char): Ditto.
5435         (file_unsafe_char): New argument restrict_for_windows, decide
5436         whether Windows file names should be escaped in run-time.
5437
5438         * connect.c: Include <stdlib.h> to get prototype for abort().
5439
5440 2003-09-14  Hrvoje Niksic  <hniksic@xemacs.org>
5441
5442         * utils.c (wtimer_sys_set): Extracted the code that sets the
5443         current time here.
5444         (wtimer_reset): Call it.
5445         (wtimer_sys_diff): Extracted the code that calculates the
5446         difference between two system times here.
5447         (wtimer_elapsed): Call it.
5448         (wtimer_elapsed): Don't return a value smaller than the previous
5449         one, which could previously happen when system time is set back.
5450         Instead, reset start time to current time and note the elapsed
5451         offset for future calculations.  The returned times are now
5452         guaranteed to be monotonically nondecreasing.
5453
5454 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
5455
5456         * host.c (lookup_host): Print the result of the DNS lookup.
5457
5458 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
5459
5460         * init.c (cmd_boolean): Accept yes/no along with on/off.
5461         (cmd_lockable_boolean): Ditto.
5462
5463 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
5464
5465         * init.c: New command dns_cache.
5466
5467         * main.c (main): New option --dns-cache[=off].
5468
5469 2003-09-09  Hrvoje Niksic  <hniksic@xemacs.org>
5470
5471         * config.h.in: Initialize HAVE_GETADDRINFO and ENABLE_IPV6.
5472
5473         * all: Use #ifdef ENABLE_IPV6 instead of the older INET6.  Use
5474         HAVE_GETADDRINFO for getaddrinfo-related stuff.
5475
5476 2003-09-09  Hrvoje Niksic  <hniksic@xemacs.org>
5477
5478         * url.c (url_parse): Return an error if the URL contains a [...]
5479         IPv6 numeric address and we don't support IPv6.
5480
5481 2003-09-05  Hrvoje Niksic  <hniksic@xemacs.org>
5482
5483         * url.c (is_valid_ipv6_address): Modified to not require
5484         zero-terminated strings.
5485         (is_valid_ipv4_address): Ditto.
5486
5487 2003-09-05  Mauro Tortonesi <mauro@deepspace6.net>
5488
5489         src/url.c: added RFC 2732 compliance for URL parsing. The
5490         functions is_*_address valid are a modified version of
5491         glibc 2.3.2 inet_pton's code.
5492
5493 2003-09-03  Ahmon Dancy  <dancy@dancysoft.com>
5494
5495         * main.c init.c options.h: Added --retry-connrefused option so
5496         that Connection Refused failures are treated as non-fatal (when
5497         trying to retrieve from busy servers).
5498
5499         * wget.h: New CONNECT_ERROR macro for encapsulating this
5500         modification.
5501
5502         * ftp.c http.c : Use CONNECT_ERROR macro in places where
5503         ECONNREFUSED was checked.
5504
5505 2003-01-11  Ian Abbott  <abbotti@mev.co.uk>
5506
5507         * ftp.c (ftp_retrieve_glob): Reject insecure filenames as determined
5508         by calling new function has_insecure_name_p.  This is based on a
5509         patch by Red Hat.
5510
5511         * fnmatch.c (has_insecure_name_p): New function: returns non-zero
5512         if filename starts with `/' or contains `../' and is therefore
5513         considered insecure.
5514
5515         * fnmatch.h: Declare has_insecure_name_p().
5516
5517 2002-08-03  Hrvoje Niksic  <hniksic@xemacs.org>
5518
5519         * init.c (cmd_file): Allocate RESULT correctly.
5520
5521 2002-07-24  Hrvoje Niksic  <hniksic@xemacs.org>
5522
5523         * recur.c (retrieve_tree): Check whether downloaded_html_set is
5524         non-NULL before using it.
5525
5526 2002-05-27  Hrvoje Niksic  <hniksic@arsdigita.com>
5527
5528         * html-parse.c (NAME_CHAR_P): Allow almost any character here.
5529
5530 2002-05-24  Hrvoje Niksic  <hniksic@arsdigita.com>
5531
5532         * progress.c (bar_set_params): Fall back to dot progress if the
5533         terminal type is "emacs".
5534
5535 2002-05-20  Hrvoje Niksic  <hniksic@arsdigita.com>
5536
5537         * log.c: Don't #undef WGET_USE_STDARG.
5538
5539 2002-05-16  Hrvoje Niksic  <hniksic@arsdigita.com>
5540
5541         * hash.c (prime_size): Store the offset of the prime number in the
5542         prime table.  When searching, start with the given offset.
5543         (hash_table_new): Pass the pointer to ht->prime_offset to
5544         prime_size.
5545         (grow_hash_table): Ditto.
5546         (prime_size): Make 13 the first prime to make empty hash tables
5547         slightly smaller.
5548
5549 2002-05-16  Ian Abbott  <abbotti@mev.co.uk>
5550
5551         * recur.c (download_child_p): Minor optimization to avoid an
5552         unnecessary additional call to schemes_are_similar_p function.
5553
5554 2002-05-16  Ian Abbott  <abbotti@mev.co.uk>
5555
5556         * url.c (schemes_are_similar_p): New function to test enumerated
5557         scheme codes for similarity.
5558
5559         * url.h: Declare it.
5560
5561         * recur.c (download_child_p): Use it to compare schemes.  This
5562         also fixes a bug that allows hosts to be spanned (without the
5563         -H option) when the parent scheme is https and the child's is
5564         http or vice versa.
5565
5566 2002-05-14  Bill Richardson  <bill@riverstonenet.com>
5567
5568         * ftp.c (getftp): Don't ftruncate stdout.
5569
5570         * http.c (gethttp): Don't ftruncate stdout.
5571
5572 2002-05-09  Ian Abbott  <abbotti@mev.co.uk>
5573
5574         * cmpt.c (strptime_internal): Synched with glibc-2.1.3.
5575         (get_number): Ditto.
5576         (get_alt_number): Ditto.
5577         (__isleap): New function-like macro used by strptime.
5578         (day_of_the_week): New function used by strptime.
5579         (day_of_the_year): Ditto.
5580         (__mon_yday): Now shared by mktime and strptime implementations.
5581
5582 2002-05-08  Hrvoje Niksic  <hniksic@arsdigita.com>
5583
5584         * cookies.c (check_domain_match): Use match_tail in case
5585         insensitive mode.
5586
5587         * utils.c (match_tail): Allow the caller to specify case
5588         insensitive mode.
5589
5590         * cookies.c (store_cookie): When expiry_time is 0, print it as
5591         undefined, not indefinite.
5592
5593 2002-05-07  Ian Abbott  <abbotti@mev.co.uk>
5594
5595         * cookies.c (cookie_jar_process_set_cookie): Do not store
5596         discarded cookie.
5597
5598 2002-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
5599
5600         * cookies.c (check_domain_match): Allow cookies to be set for
5601         subdomains of unknown top-level domains under some circumstances.
5602
5603 2002-04-21  Thomas Lussnig  <thomas.lussnig@bewegungsmelder.de>
5604
5605         * gen_ssl.c:
5606         - allow checking of server cert
5607         - allow defining client cert type
5608         - allow limit of ssl protocol
5609         - check more return values
5610         - added debug message on break
5611
5612 2002-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
5613
5614         * recur.c (download_child_p): Revert order of items in check
5615         number 6 for clarity.
5616
5617 2002-04-20  Hrvoje Niksic  <hniksic@arsdigita.com>
5618
5619         * init.c: Ditto.
5620
5621         * main.c: Ditto.
5622
5623         * http.c: Use the new interface.
5624
5625         * cookies.c: Provide an OO-style "cookie jar" interface to enable
5626         separate cookie jars.
5627
5628         * http.c (http_atotm): Declare argument as const.
5629
5630 2002-04-20  Hrvoje Niksic  <hniksic@arsdigita.com>
5631
5632         * cookies.c (cookie_new): Default to PORT_ANY.
5633         (find_cookie_chain_exact): Only search by DOMAIN.
5634         (find_matching_cookie): Also check that PORT matches.
5635         (store_cookie): Only match the domain.
5636         (set_cookie_header_cb): When a cookie "fakes" a domain, assume it
5637         is valid for that host rather than discarding it completely.
5638         (find_matching_chains): Don't search by PORT.
5639         (matching_cookie): Also match PORT.
5640         (load_cookies): Set the port if specified, otherwise leave it as
5641         ANY.
5642         (save_cookies_mapper): Save the port if specified, otherwise leave
5643         it empty.
5644
5645 2002-04-19  Thomas Lussnig  <thomas.lussnig@bewegungsmelder.de>
5646
5647         * init.c: The option `egdfile' was not in sort order.
5648
5649 2002-04-16  Hrvoje Niksic  <hniksic@arsdigita.com>
5650
5651         * ftp.c (getftp): Treat directories that begin with <letter>: as
5652         absolute.
5653         (getftp): Strip trailing slashes from con->id before merging it
5654         with TARGET.
5655
5656 2002-04-16  Hrvoje Niksic  <hniksic@arsdigita.com>
5657
5658         * http.c (gethttp): If Content-Type is not given, assume
5659         text/html.
5660
5661 2002-04-15  Hrvoje Niksic  <hniksic@arsdigita.com>
5662
5663         * recur.c (download_child_p): Don't ignore rejection of HTML
5664         documents that are themselves leaves of recursion.
5665
5666 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
5667
5668         Makefile.in: Updated several dependencies for object files to take
5669         account of nested include files.
5670
5671 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
5672
5673         Makefile.in: The target `connect$o' (connect.o) now depends on
5674         `utils.h'
5675
5676 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
5677
5678         * host.c (SET_H_ERRNO): New function-like macro to set `h_errno'.
5679         (gethostbyname_with_timeout): Use it.
5680
5681         * utils.c: Don't define `SETJMP()', `run_with_timeout_env' or
5682         `abort_run_with_timeout()' when `USE_SIGNAL_TIMEOUT' is undefined.
5683
5684 2002-04-15  Hrvoje Niksic  <hniksic@arsdigita.com>
5685
5686         * host.c (getaddrinfo_with_timeout): New function.
5687         (gethostbyname_with_timeout): Ditto.
5688         (lookup_host): Use them.
5689
5690 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5691
5692         * utils.c (number_to_string): Handle the case when n < -INT_MAX.
5693
5694 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5695
5696         * init.c (comind): Use a marginally faster implementation of
5697         binary search.  To quote Martin Buchholz, "a nanosecond saved is a
5698         nanosecond earned."
5699
5700 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5701
5702         * main.c (print_help): Document `--post-data' and `--post-file'.
5703
5704 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5705
5706         * http.c (gethttp): Ditto.
5707
5708         * retr.c (retrieve_url): Initialize variables to appease the
5709         compiler.
5710
5711         * gen_sslfunc.c (ssl_iread): Don't handle EINTR when calling
5712         select_fd.
5713         (ssl_iwrite): Ditto.
5714
5715         * connect.c (select_fd): Rewrite to handle EINTR.  Set errno to
5716         ETIMEDOUT in case of timeout.
5717         (iread): No need to handle EINTR when calling select_fd.
5718         (iwrite): Ditto.
5719
5720 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5721
5722         * retr.c (retrieve_url): Make sure that POST is not honored for
5723         redirections.
5724
5725         * http.c (gethttp): Send the POST data when requested.
5726         (post_file): New function.
5727         (gethttp): Use it.
5728
5729         * main.c (main): Ditto.
5730
5731         * init.c: Add new options.
5732
5733         * options.h (struct options): New options post_data and
5734         post_file_name.
5735
5736 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5737
5738         * connect.c (connect_with_timeout): Firing SIGALRM can result in
5739         connect() exiting with EINTR.  Treat EINTR the same as ETIMEDOUT.
5740
5741 2002-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
5742
5743         * connect.c (connect_with_timeout): Use it.
5744
5745         * utils.c (run_with_timeout): New function.
5746
5747 2002-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
5748
5749         * url.c (getproxy): Accept a struct url argument.  This obviates
5750         the need for USE_PROXY_P.
5751
5752         * retr.c (retrieve_url): Allow proxy to be a non-FTP URL.
5753
5754         * ftp.c (getftp): Recognize FWTK-style proxy.
5755
5756 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
5757
5758         * config.h.in: Only define _VA_LIST when compiled with gcc.
5759
5760 2002-04012  Ian Abbott  <abbotti@mev.co.uk>
5761
5762         * http.c (http_loop): Compensate for MS Windows two-second
5763         granularity of file modification time when comparing timestamps.
5764
5765         * ftp.c (ftp_retrieve_list): Ditto.
5766
5767 2002-04-12  Ian Abbott  <abbotti@mev.co.uk>
5768
5769         * utils.c (has_html_suffix_p): New function to test filename for
5770         common html extensions.
5771
5772         * utils.h: Declare it.
5773
5774         * http.c (http_loop): Use it instead of previous test.
5775
5776         * retr.c (retrieve_url): Ditto.
5777
5778         * recur.c (download_child_p): Ditto.
5779
5780 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
5781
5782         * config.h.in: Define _VA_LIST on Solaris to prevent stdio.h from
5783         declaring va_list.
5784         From Kevin Rodgers <kevinr@ihs.com>.
5785
5786 2002-04-12  Ian Abbott  <abbotti@mev.co.uk>
5787
5788         * Makefile.in: Specify libtool mode explicitly when linking.
5789
5790 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
5791
5792         * connect.c (connect_with_timeout): New function.
5793         (connect_to_one): Use it.
5794
5795         * config.h.in: Add stubs for HAVE_SIGSETJMP, HAVE_SIGBLOCK, and
5796         HAVE_SETJMP_H.
5797
5798 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5799
5800         * log.c: Set WGET_USE_STDARG if __STDC__ is defined and stdarg.h
5801         is present.
5802
5803 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5804
5805         * progress.c (bar_create): If INITIAL is larger than TOTAL, fix
5806         TOTAL.
5807         (bar_finish): Likewise.
5808
5809 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5810
5811         * html-url.c (tag_handle_form): New function.  Pick up form
5812         actions and mark them for conversion only.
5813
5814 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5815
5816         * progress.c (struct progress_implementation): Use PARAMS when
5817         declaring the parameters of *create, *update, *finish, and
5818         *set_params.
5819
5820         * netrc.c: Ditto.
5821
5822         * http.c: Reformat some function definitions so that ansi2knr can
5823         read them.
5824
5825         * hash.c (struct hash_table): Use the PARAMS macro around
5826         parameters in the declaration of hash_function and test_function.
5827         (prime_size): Spell 2580823717UL and 3355070839UL as (unsigned
5828         long)0x99d43ea5 and (unsigned long)0xc7fa5177 respectively, so
5829         that pre-ANSI compilers can read them.
5830         (find_mapping): Use PARAMS when declaring EQUALS.
5831         (hash_table_put): Ditto.
5832
5833         * ftp.h: Wrap the parameters of ftp_index declaration in PARAMS.
5834
5835         * cookies.c (cookie_new): Use (unsigned long)0 instead of 0UL,
5836         which was unsupported by pre-ANSI compilers.
5837
5838         From Nelson H. F. Beebe <beebe@math.utah.edu>, for the most part.
5839
5840 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5841
5842         * url.c (url_filename): Use compose_file_name regardless of
5843         whether opt.dirstruct is set.
5844         (mkstruct): Don't handle the query and the reencoding of DIR; that
5845         is done in compose_file_name.
5846
5847 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
5848
5849         * wget.h: Ditto for extern char *exec_name.
5850
5851         * options.h: Don't guard against OPTIONS_DEFINED_HERE -- it is
5852         perfectly legal to follow an `extern' with a non-`extern' ones,
5853         provided the types match.
5854
5855         * main.c: Don't define OPTIONS_DEFINED_HERE.
5856
5857 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
5858
5859         * progress.c (create_image): Revert to calculating ETA based on
5860         average download speed.
5861         (create_image): Don't print ETA until the download has been active
5862         for at least 3 seconds.
5863         (create_image): When ETA is not available, don't print anything.
5864         The previous version would print --:--.
5865
5866 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
5867
5868         * progress.c (bar_update): Keep updating a subinterval until it
5869         reaches or exceeds a watermark.  That way the measurement will be
5870         guaranteed to span a configurable minimum of time.  The current
5871         default is 3s in 30 100ms intervals.
5872
5873 2002-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
5874
5875         * progress.c (bar_update): Maintain an array of the time it took
5876         to perform previous 30 network reads.
5877         (create_image): Calculate the download speed and ETA based on the
5878         last 30 reads, not the entire download.
5879         (create_image): Make sure that the ETA is not changed more than
5880         once per second.
5881
5882 2002-04-09  Ian Abbott  <abbotti@mev.co.uk>
5883
5884         * mswindows.c (borland_utime): New function conditionally defined
5885         when `HACK_BCC_UTIME_BUG' is defined.  A reimplementation of
5886         `utime()' as Borland's `utime()' function is broken on Windows 9x
5887         systems.  (Original patch by Chin-yuan Kuo <sr1111111@yahoo.com.tw>.)
5888
5889 2002-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
5890
5891         * ftp.c (ftp_loop): Propagate the result of ftp_retrieve_glob.
5892
5893 2002-03-26  Ian Abbott  <abbotti@mev.co.uk>
5894
5895         * Makefile.in: Updated several dependencies for object files.
5896
5897 2002-03-20  Ian Abbott  <abbotti@mev.co.uk>
5898
5899         * mswindows.c: Include "utils.h".
5900
5901 2002-03-18  Ian Abbott  <abbotti@mev.co.uk>
5902
5903         * host.h: Don't include netdb.h on windows.
5904
5905 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
5906
5907         * recur.c (retrieve_tree): Handle the case when start_url doesn't
5908         parse.
5909
5910 2002-02-19  Andreas Damm  <andreas-sourceforge@radab.org>
5911
5912         * wget.h (DO_REALLOC_FROM_ALLOCA): Multiply with sizeof(type) when
5913         calling xmalloc and memcpy.
5914
5915 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
5916
5917         * host.h: Include Unix-specific includes #ifndef WINDOWS.
5918         Patch originally provided by Christian Lackas.
5919
5920 2002-02-11  Christian Lackas  <delta@lackas.net>
5921
5922         * recur.c: recurive downloading for https fixed.
5923
5924 2002-02-19  Alan Eldridge  <alane@geeksrus.net>
5925
5926         * host.h: Also include <netinet/in.h> and <sys/socket.h>.
5927
5928         * ftp-basic.c: Also include <netinet/in.h>.
5929
5930 2002-02-05  Ian Abbott  <abbotti@mev.co.uk>
5931
5932         * http.c (gethttp): when -c used, mark already fully retrieved
5933         file as successfully retrieved.
5934
5935 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
5936
5937         * url.c (url_parse): Don't treat '?' as query string separator
5938         when parsing FTP URLs.
5939
5940 2002-02-01  Hrvoje Niksic  <hniksic@arsdigita.com>
5941
5942         * html-url.c (tag_handle_meta): Don't crash on <meta
5943         http-equiv=refresh> where content is missing.
5944
5945 2002-01-31  Herold Heiko  <Heiko.Herold@previnet.it>
5946
5947         * ftp-basic.c, host.c: don't include sys/socket.h, arpa/inet.h,
5948         netdb.h on windows.
5949
5950 2002-01-30  Hrvoje Niksic  <hniksic@arsdigita.com>
5951
5952         * retr.c (retrieve_url): Remove redirection cycle detection.  This
5953         is because some sites legitimately redirect the user back to the
5954         same location, e.g. after an authorization check performed by
5955         another page.  MAX_REDIRECTIONS is still used to prevent infinite
5956         redirection loops.
5957
5958 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
5959
5960         * http.c (gethttp): Wrap host name in square brackets if it
5961         contains a colon.
5962
5963 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
5964
5965         * url.c (url_parse): Allow all hex digits, not only decimal ones,
5966         to form an IP address.
5967
5968 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
5969
5970         * url.c (urlchr_table): Make square braces reserved, so we can
5971         parse http://[::1]/.
5972         (url_parse): Handle host in braces.
5973         (url_string): If url->host contains colons, wrap it in braces.
5974
5975 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
5976
5977         * connect.c (resolve_bind_address): New function.
5978         (connect_to_one): Use it.
5979         (bindport): Ditto.
5980
5981         * init.c: Don't resolve bind-address here.
5982
5983         * host.c (wget_sockaddr_set_address): Would bug out with ADDR == NULL.
5984
5985 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
5986
5987         * host.c (lookup_host): Use sizeof(ip4_address) to calculate the
5988         offset.
5989         (address_list_new): Use map_ipv4_to_ip.
5990         (wget_sockaddr_set_address): Convert ADDR to IPv4 before using it
5991         in IPv4 context.
5992
5993 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
5994
5995         * source: Integrated IPv6 support.
5996         Written by Thomas Lussnig <thomas.lussnig@bewegungsmelder.de>.
5997
5998 2002-01-15  Ian Abbott  <abbotti@mev.co.uk>
5999
6000         * init.c (cmd_file): Change `\' to `/' for Windows (yes, really!)
6001         (cmd_directory): New function. Like cmd_file(), but strips
6002         trailing directory separators.
6003         (commands): Change action for "dirprefix" from `cmd_file' to
6004         `cmd_directory'.
6005
6006         * utils.c (make_directory): Allow intermediate `mkdir' calls to
6007         fail, as not all path components that do not exist should be
6008         directory components, especially under Windows.
6009
6010 2002-01-17  Hrvoje Niksic  <hniksic@arsdigita.com>
6011
6012         * netrc.c (parse_netrc): Skip leading whitespace before testing
6013         whether the line is empty.  Empty lines still contain the line
6014         terminator.
6015
6016 2002-01-15  Hrvoje Niksic  <hniksic@arsdigita.com>
6017
6018         * gen_sslfunc.c (ssl_iread): Call select on the file descriptor
6019         only if no data is pending in SSL buffers.
6020         From tony@bluetail.com.
6021
6022 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6023
6024         * headers.c (header_get): Strip trailing whitespace from the
6025         header.
6026
6027 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6028
6029         * url.c (parse_uname): URL-decode *USER and *PASSWD.
6030
6031 2002-01-07  Ian Abbott <abbotti@mev.co.uk>
6032
6033         * url.c (uri_merge_1): Deal with "net path" relative URL (one that
6034         starts with "//").
6035
6036 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6037
6038         * http.c (gethttp): Invalidate SOCK if get_contents encountered an
6039         error.
6040
6041 2001-12-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6042
6043         * version.c: Wget 1.8.1 is released.
6044
6045 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6046
6047         * version.c: Wget 1.8.1-pre3 is released.
6048
6049 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6050
6051         * recur.c (retrieve_tree): Enqueue the canonical representation of
6052         start_url, so that the test against dl_url_file_map works.
6053
6054 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6055
6056         * log.c (logputs): Check for requested verbosity before printing
6057         anything.
6058
6059 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6060
6061         * html-url.c (tag_handle_link): Treat the "shortcut icon" link as
6062         inline.
6063
6064 2001-12-18  Hrvoje Niksic  <hniksic@arsdigita.com>
6065
6066         * recur.c (retrieve_tree): Make a copy of file obtained from
6067         dl_url_file_map because the code calls xfree(file) later.
6068
6069 2001-12-18  Hrvoje Niksic  <hniksic@arsdigita.com>
6070
6071         * recur.c (register_html): Maintain a hash table of HTML files
6072         along with the list.  Disallow duplicates.
6073         (retrieve_tree): Use downloaded_html_set to check whether the file
6074         found in dl_url_file_map is an HTML file, and descend into it if
6075         so.
6076         (convert_all_links): Don't guard against duplicates in
6077         downloaded_html_list, since they are no longer possible.
6078
6079 2001-12-18  Ian Abbott  <abbotti@mev.co.uk>
6080
6081         * recur.c (retrieve_tree): Pass on referring URL when retrieving
6082         recursed URL.
6083
6084 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
6085
6086         * version.c: Wget 1.8.1-pre2 is released.
6087
6088 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
6089
6090         * retr.c (sleep_between_retrievals): Simplify indentation.
6091
6092 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
6093
6094         * gen_sslfunc.c (ssl_init_prng): Use random_number to get a byte
6095         of "randomness" at a time.
6096         (ssl_init_prng): Don't seed the PRNG; random_number will do that.
6097
6098         * retr.c (sleep_between_retrievals): Use it.  Make sure that the
6099         random amount averages in opt.wait.
6100         (sleep_between_retrievals): Don't seed the PRNG; random_number
6101         will do that.
6102
6103         * utils.c (random_number): New function.
6104
6105 2001-12-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6106
6107         * url.c (path_simplify): Move here from utils.c, and make static.
6108
6109 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6110
6111         * init.c (wgetrc_file_name): Print correct message when loading
6112         getenv("WGETRC") fails.
6113
6114 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6115
6116         * recur.c (register_download): Don't abort when one URL references
6117         two different files.
6118
6119 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6120
6121         * http.c (gethttp): Check for conn->scheme, not u->scheme, before
6122         calling ssl_iwrite.
6123
6124 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6125
6126         * version.c: Wget 1.8.1-pre1 is released.
6127
6128 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6129
6130         * res.c (matches): Fix broken URL in the docstring.
6131
6132 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6133
6134         * html-url.c (tag_url_attributes): Mark <embed href=...> as
6135         external.
6136
6137 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6138
6139         * url.c (get_urls_file): Cosmetic changes.
6140
6141 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6142
6143         * html-url.c (append_one_url): Resurrect warning when unable to
6144         resolve a relative link.
6145
6146 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6147
6148         * html-url.c (collect_tags_mapper): Break into several functions.
6149         (tag_url_attributes): Collect <embed href=...>.
6150
6151 2001-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6152
6153         * host.c: New type ipv4_address.  Use it consistently instead of
6154         `unsigned char[4]' and `unsigned char *'.
6155         (pretty_print_address): Accept a `const void *', to require even
6156         less casting.
6157
6158 2001-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6159
6160         * ftp-ls.c (ftp_parse_vms_ls): Fix obvious memory leaks.
6161
6162 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6163
6164         * main.c (main): Initialize progress after fork_to_background, so
6165         that it knows when to use dots.
6166
6167         * mswindows.c (ws_hangup): Call log_request_redirect_output.
6168
6169         * utils.c (fork_to_background): Print the PID of the child
6170         process.
6171
6172         * log.c (log_request_redirect_output): Set a flag that output
6173         redirection has been requested.  Doing anything else in a signal
6174         handler is unsafe.
6175         (check_redirect_output): New function: check whether redirection
6176         has been requested and, if so, call redirect_output().
6177         (logputs): Call check_redirect_output.
6178         (logprintf): Ditto.
6179         (debug_logprintf): Ditto.
6180         (redirect_output): Print clearer messages.
6181
6182         * main.c (redirect_output_signal): Don't call
6183         redirect_output_signal directly.  Instead, call
6184         log_request_redirect_output.
6185
6186         * utils.c (memfatal): Ditto.
6187
6188         * progress.c (display_image): Use it.
6189
6190         * log.c (log_set_save_context): New function: allow the caller to
6191         turn off saving log context lines.
6192
6193 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6194
6195         * host.c (address_list_set_faulty): Uncomment a sanity check.
6196
6197 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6198
6199         * utils.c (long_to_string): Return a pointer after where the
6200         number ends.
6201         (long_to_string): Rename to number_to_string.
6202
6203 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6204
6205         * utils.c (path_simplify): Correctly handle the unlikely case that
6206         b starts out as path + 1.
6207
6208 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6209
6210         * utils.c (path_simplify): Rewrite, with better comments, and
6211         without the use of strcpy to move overlapping blocks.
6212
6213 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6214
6215         * init.c (cmd_spec_progress): Resurrect.  Check whether VAL is a
6216         valid progress type before setting it.
6217
6218 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6219
6220         * main.c (main): Remove stray debugging message.
6221
6222 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6223
6224         * progress.c (create_image): Fix ETA padding when hours are prined.
6225
6226 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6227
6228         * version.c: Wget 1.8 is released.
6229
6230 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6231
6232         * url.c (reencode_string): Declare static.
6233
6234         * res.c (registered_specs): Declare static.
6235
6236         * progress.c (current_impl_locked): Declare static.
6237
6238         * log.c (flush_log_p): Declare static.
6239         (needs_flushing): Ditto.
6240
6241         * http.c (digest_authentication_encode): Declare static.
6242
6243         * html-url.c (init_interesting): Declare static.
6244
6245         * host.c (host_name_addresses_map): Declare static.
6246
6247         * cookies.c (find_matching_chains): Declare static.
6248
6249         * ftp-ls.c (ftp_parse_vms_ls): Warn about the memory leak
6250         indicated by lint.
6251
6252         * utils.c (path_simplify): Remove unused variable STUB_CHAR.
6253
6254         * host.c (address_list_set_faulty): Document that INDEX is
6255         currently unused.
6256
6257         * url.c (rewrite_shorthand_url): Remove unused variable PATH.
6258
6259 2001-12-08  Hrvoje Niksic  <hniksic@arsdigita.com>
6260
6261         * version.c: Wget 1.8-pre2 is released.
6262
6263 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6264
6265         * progress.c (progress_handle_sigwinch): Set up the signal again.
6266
6267         * utils.c: Include <sys/termios.h>, where Solaris defines
6268         TIOCGWINSZ.
6269
6270         * progress.c (bar_create): Don't use the last column on the screen.
6271         (create_image): Pad ETA to constant size.  Pad SIZE to nine digits
6272         only until it exceeded them.
6273
6274 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6275
6276         * version.c: Wget 1.8-pre1 is released.
6277
6278 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6279
6280         * progress.c (progress_create): Make sure that, when the output is
6281         redirected, the progress implementation gets changed to the
6282         fallback one.
6283         (bar_set_params): Set current_impl_locked to 1 when "force" is
6284         specified.
6285         (progress_create): Don't change the progress implementation if
6286         current_impl_locked is non-zero.
6287
6288         * main.c (redirect_output_signal): Call
6289         progress_schedule_redirect.
6290
6291         * progress.c (progress_schedule_redirect): New function.
6292
6293 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6294
6295         * log.c (logvprintf): Restructure to allow being called multiple
6296         times.
6297         (logprintf): Call logvprintf in a loop.
6298         (debug_logprintf): Ditto.
6299
6300 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6301
6302         * gen_sslfunc.c (ssl_init_prng): Allow the user to disable EGD by
6303         setting egd_file it to empty string.
6304
6305         * main.c (main): Change the option name from --sslegdsock to
6306         --egd-file.
6307
6308 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6309
6310         * gen_sslfunc.c (ssl_init_prng): Make the printed message
6311         translatable.
6312
6313 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6314
6315         * url.c (scheme_disable): New function.
6316
6317         * main.c (main): Call ssl_init_prng from here rather than from
6318         init_ssl, so that it has a chance to disable support for https
6319         before a URL has been resolved.
6320
6321         * gen_sslfunc.c (ssl_init_prng): Seed with rand() if all else
6322         failed.
6323         (ssl_init_prng): Disable support for https if seeding the PRNG
6324         fails.
6325
6326 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6327
6328         * utils.c (read_whole_line): Handle lines beginning with \0.
6329
6330 2001-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
6331
6332         * recur.c (convert_all_links): Guard against duplicates in
6333         downloaded_html_files.
6334         (register_download): Don't invalidate similar-looking URLs.
6335         (match_except_index): New function.
6336
6337 2001-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
6338
6339         * utils.c (path_simplify): Document with test cases.
6340
6341 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
6342
6343         * gen_sslfunc.c: Ditto.
6344
6345         * rbuf.c: Include <string.h>.
6346
6347 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
6348
6349         * recur.c (retrieve_tree): Check whether the URL was already
6350         downloaded before downloading it again.
6351         (descend_child_p): Renamed to download_child_p.
6352         (register_download): When one URL is downloaded to a file already
6353         "owned" by another URL, delete all references that map any URL to
6354         that file.
6355         (register_delete_file): New function.
6356         (retrieve_tree): Use it after deleting a file.
6357
6358         * url.c (url_parse): Re-canonicalize the URL also if the path is
6359         empty, so that e.g. "http://www.server.com" ->
6360         "http://www.server.com/".
6361         (lowercase_str): Use ISUPPER instead of !ISLOWER.
6362
6363         * retr.c (retrieve_url): Use the canonical URL form when calling
6364         register_download().
6365
6366 2001-12-04  Ian Abbott <abbotti@mev.co.uk>
6367
6368         * snprintf.c (dopr): Use `unsigned int' as the second argument to
6369         va_arg when casting to `unsigned short' is intended.
6370
6371 2001-12-04  Herold Heiko  <Heiko.Herold@previnet.it>
6372
6373         * gen_sslfunc.c: on windows provide ssl crypto random 
6374           initialization through RAND_screen(); could possibly
6375           be not enough for strong ssl communication (see the 
6376           relevant manual page from the openssl package).
6377
6378 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
6379
6380         * url.c (local_quote_string): Reenable quoting of question marks,
6381         but only when `--html-extension' is used.
6382
6383 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
6384
6385         * version.c: Wget 1.8-beta3 is released.
6386
6387 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
6388
6389         * snprintf.c (dopr): Cast the result of va_arg to short int and
6390         short unsigned int where these types are expected to be used.
6391
6392 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
6393
6394         * snprintf.c (dopr): Replace `short int' and `unsigned short int'
6395         with `int' when using it as the second argument to `va_arg'.
6396
6397 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
6398
6399         * host.c (address_list_new_one): New function.
6400         (lookup_host): Use it.
6401
6402 2001-12-03  Andre Majorel  <amajorel@teaser.fr>
6403
6404         * host.c (lookup_host): Don't initialize TMPSTORE directly because
6405         it's not legal C.
6406
6407 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
6408
6409         * ftp-basic.c (ftp_port): Don't return HOSTERR if we fail getting
6410         the socket data.
6411
6412         * ftp.c: Ditto.
6413
6414         * http.c: No need to declare h_errno.
6415
6416         * host.c: Declare h_errno.
6417
6418 2001-12-02  Hrvoje Niksic  <hniksic@arsdigita.com>
6419
6420         * utils.c (file_merge): If BASE doesn't contain a slash, just
6421         return a copy of FILE.
6422
6423 2001-12-02  Hrvoje Niksic  <hniksic@arsdigita.com>
6424
6425         * version.c: Wget 1.8-beta2 is released.
6426
6427 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6428
6429         * ftp.c (getftp): When PWD fails, assume "/".
6430
6431         * ftp-basic.c (ftp_syst): Fix indentation.
6432
6433 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6434
6435         * url.c (get_urls_file): If opt.base_href is specified, merge each
6436         URL with the base.
6437
6438 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6439
6440         * main.c (print_help): Don't document the removed `-nh'.
6441
6442 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6443
6444         * url.c (url_full_path): Document better.
6445
6446         * http.c (gethttp): Use the full path when creating digest
6447         authorization.
6448
6449 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6450
6451         * cookies.c (path_matches): Return 0 if PREFIX doesn't begin with
6452         '/'.
6453
6454 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6455
6456         * cookies.c (path_matches): FULL_PATH doesn't begin with '/', but
6457         PREFIX does.
6458
6459 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6460
6461         * cookies.c (check_domain_match): Reimplement to match Netscape's
6462         "preliminary specification" for cookies.
6463
6464 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6465
6466         * url.c (replace_attr_refresh_hack): New function.
6467         (convert_links): Call replace_attr_refresh_hack for Refresh
6468         links.  It will add the "TMOUT; URL=" junk before the link.
6469
6470         * html-url.c (collect_tags_mapper): Set ID to the ID of the
6471         "content" attribute, not "http-equiv".
6472         (collect_tags_mapper): Don't use OFFSET to hack the raw_* values;
6473         instead, store the information that this entry belongs to a
6474         "refresh" link.
6475
6476 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6477
6478         * version.c: Wget 1.8-beta1 is released.
6479
6480 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6481
6482         * recur.c (retrieve_tree): Allow -p retrievals to exceed maximum
6483         depth by more than one.
6484
6485 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
6486
6487         * retr.c (retrieve_url): Don't allow more than 20 redirections.
6488
6489 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
6490
6491         * recur.c (retrieve_tree): Skip the non-inline entries when
6492         enqueuing the children of a leaf HTML node in -p mode.
6493         (descend_url_p): Ignore opt.no_parent when in -p mode and UPOS is
6494         "inline".
6495
6496         * html-url.c (get_urls_html): Don't accept dash_p_leaf_HTML.
6497         (collect_tags_mapper): When an entry is "inline", mark it as such.
6498
6499         * recur.c (descend_url_p): Fix test when checking for
6500         acceptance/rejection rules.
6501
6502 2001-10-31 Daniel BODEA <dali@dali-designs.com>
6503
6504         * netrc.c (search_netrc): When slack_default is 0, still look for
6505         an account with matching password, just not the "default account".
6506         HTTP Authorization using .netrc should now work as expected.
6507
6508 2001-11-30  T. Bharath  <TBharath@responsenetworks.com>
6509
6510         * http.c (persistent_available_p): Call SHUTDOWN_SSL if
6511         test_socket_open fails.
6512
6513 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
6514
6515         * progress.c (display_image): Just print one CR to reset the
6516         cursor position.
6517
6518 2001-11-30  Christian Fraenkel  <c.fraenkel@gmx.net>
6519
6520         * init.c: New command `ssl_egd_sock'.
6521
6522         * main.c (main): New option `--sslegdsock'.
6523
6524         * gen_sslfunc.c (ssl_init_prng): Seed the RNG using EGD.
6525
6526 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6527
6528         * cmpt.c (memmove): Include a simple memmove implementation.
6529
6530 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6531
6532         * headers: Guard against header files being included twice.
6533
6534 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6535
6536         * gen-md5.c: Use unsigned char * as the buffer argument to
6537         gen_md5_update.
6538
6539 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6540
6541         * connect.h: Declare select_fd.
6542
6543 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6544
6545         * recur.c (descend_url_p): When resolving no_parent, compare with
6546         start_url, not parent url.  Otherwise link from /a/b/ to /a/c/
6547         wouldn't be followed, although the download started from /a/.
6548
6549 2001-01-23  Herold Heiko  <Heiko.Herold@previnet.it>
6550
6551         * config.h.ms, mswindows.h: defined HAVE_ISATTY, use _isatty for
6552         MS VC; somebody with Borland compiler please check and provide
6553         patch if possible;
6554
6555         * cmpt.c: provided a usleep emulation.
6556
6557 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6558
6559         * host.c (address_list_new): Initialize al->faulty.
6560
6561 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6562
6563         * http.c (http_process_range): Accept the broken output of
6564         "JavaWebServer/1.1.1".
6565
6566 2001-11-28  Hrvoje Niksic  <hniksic@arsdigita.com>
6567
6568         * progress.c (dot_set_params): If PARAMS is unspecified, use
6569         dot_style, if available.
6570
6571         * init.c: Ditto.
6572
6573         * main.c (main): Resurect --dot-style.
6574
6575         * progress.c (dot_finish): Print the quantity if we're left at the
6576         beginning of a row.
6577
6578 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6579
6580         * cmpt.c (random): Removed.
6581
6582         * retr.c (sleep_between_retrievals): Use the more portable rand()
6583         instead of random().
6584
6585 2001-11-27  Ian Abbott <abbotti@mev.co.uk>
6586
6587         * retr.c (retrieve_from_file): Initialize `new_file' to NULL to
6588         prevent seg fault.
6589
6590 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6591
6592         * connect.c (connect_to_many): Use address_list_set_faulty to
6593         prevent the faulty address from being reused.
6594
6595         * host.c (address_list_set_faulty): New function.
6596         (address_list_get_bounds): New function, instead of
6597         address_list_count.
6598
6599 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6600
6601         * url.c (convert_links): Don't translate %d-%d.
6602
6603         * main.c (print_help): Remove stray HAVE_RANDOM code.
6604
6605 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6606
6607         * ftp.c (getftp): Improve output after sending PASV.  Don't
6608         attempt to "look up" the IP address we already know; call
6609         connect_to_one directly.
6610
6611 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6612
6613         * progress.c: Change the default progress implementation to "bar".
6614
6615 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6616
6617         * progress.c (bar_create): Print two newlines.
6618
6619 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6620
6621         * cmpt.c (random): New function, a simple-minded replacement for
6622         random() on systems that don't have it.
6623
6624 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6625
6626         * config.h.in: Put a HAVE_USLEEP stub.
6627
6628         * cmpt.c (usleep): Replacement implementation of usleep using
6629         select.
6630
6631         * init.c: New option init_rate.
6632
6633         * main.c (main): New option --limit-rate.
6634
6635         * retr.c (limit_bandwidth): New function.
6636         (get_contents): Call it to limit the bandwidth used when
6637         downloading.
6638
6639         * progress.c (dot_update): Would print the wrong download speed on
6640         rows other than the first one when the download was continued.
6641         (dot_finish): Ditto.
6642
6643 2001-11-26  Ian Abbott <abbotti@mev.co.uk>
6644
6645         * http.c (gethttp): fix undeclared variable 'err' when compiled
6646         with HAVE_SSL.
6647
6648 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6649
6650         * progress.c: Don't allocate new timers; use the timing data
6651         propagated from the caller.
6652
6653         * retr.c (get_contents): Allocate and use a timer.
6654
6655 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6656
6657         * http.c (last_host_ip): Made into an address_list.
6658         (invalidate_persistent): Release pc_last_host_ip.
6659         (register_persistent): Use lookup_host.
6660         (persistent_available_p): Check for equality of hosts using
6661         address_list_match_all.  Call address_list_release.
6662         (http_cleanup): New function.
6663
6664         * ftp.c (getftp): Use lookup_host and connect_to_many.
6665
6666         * http.c (gethttp): Use lookup_host and connect_to_many.
6667
6668         * connect.c (make_connection): Removed.
6669         (connect_to_one): New function.
6670         (connect_to_many): Ditto.
6671         (set_connection_host_name): Ditto.
6672
6673         * host.c (lookup_host): New function; new return type.
6674         (address_list_new): New function.
6675         (address_list_count): Ditto.
6676         (address_list_copy_one): Ditto.
6677         (address_list_delete): Ditto.
6678         (address_list_release): Ditto.
6679         (pretty_print_address): Ditto.
6680
6681 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6682
6683         * recur.c (retrieve_tree): In case of followed redirection,
6684         blacklist the pre-redirection URL.
6685
6686 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6687
6688         * recur.c (descend_redirect_p): New function.
6689         (retrieve_tree): Make sure redirections are not blindly followed.
6690
6691 2001-11-04  Alan Eldridge  <alane@geeksrus.net>
6692
6693         * config.h.in: added HAVE_RANDOM.
6694
6695         * options.h: added random_wait to struct options.
6696
6697         * main.c (print_help [HAVE_RANDOM], main): added arg parsing, help
6698         for --random-wait.
6699
6700         * retr.c (sleep_between_retrievals) [HAVE_RANDOM]: added
6701         implementation of random wait times.
6702
6703         * init.c (commands): added "randomwait" keyword.
6704
6705 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6706
6707         * recur.c (descend_url_p): Be more conservative with blacklisting
6708         URLs.
6709         (convert_all_links): Print how many files have been converted, and
6710         how long it took.
6711
6712         * progress.c (create_image): Place the number of downloaded bytes
6713         right after the progress bar.
6714
6715         * utils.c (suffix): Return a pointer into the string.
6716
6717 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6718
6719         * url.c (convert_links): Handle CO_NULLIFY_BASE.
6720
6721         * recur.c (retrieve_tree): Ignore download-ignorable children.
6722         (convert_all_links): Specify CO_NULLIFY_BASE when link_base_p.
6723
6724         * html-url.c (handle_link): Return the newly created urlpos.
6725         (collect_tags_mapper): When dealing with BASE, store the base
6726         reference and mark it as download-ignorable.
6727
6728 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6729
6730         * url.c (convert_links): Attempt to quote '?' as "%3F" when
6731         linking to local files.  Given up on the attempt, as it breaks
6732         local browsing.
6733
6734 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6735
6736         * main.c (private_initialize): Removed.
6737         (main): Don't call private_initialize.
6738
6739         * http.c: Call lookup_host.
6740
6741         * host.c (host_init): Removed.
6742         (add_host_to_cache): Initialize host_name_address_map here, on
6743         demand.
6744         (ngethostbyname): Commented out.
6745
6746         * connect.c (make_connection): Remove dead code; use lookup_host.
6747
6748         * host.c (store_hostaddress): Renamed to lookup_host and reversed
6749         the args.
6750         Removed host_address_name_map and host_slave_master_map.
6751
6752 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6753
6754         * progress.c (dot_create): Align the "[ skipping ... ]" string
6755         with the dots.
6756
6757         * retr.c (rate): Split into two functions: calc_rate and
6758         retr_rate.
6759
6760         * progress.c (create_image): Draw a dummy progress bar even when
6761         total size is unknown.
6762         (display_image): Place the text cursor at the end of the "image".
6763
6764 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6765
6766         * url.c (reencode_string): Use unsigned char, not char --
6767         otherwise the hex digits come out wrong for 8-bit chars such as
6768         nbsp.
6769         (lowercase_str): New function.
6770         (url_parse): Canonicalize u->url if needed.
6771         (get_urls_file): Parse each URL, and return only the valid ones.
6772         (free_urlpos): Call url_free.
6773         (mkstruct): Add :port if the port is non-standard.
6774         (mkstruct): Append the query string to the file name, if any.
6775         (urlpath_length): Use strpbrk_or_eos.
6776         (uri_merge_1): Handle the cases where LINK is an empty string,
6777         where LINK consists only of query, and where LINK consists only of
6778         fragment.
6779         (convert_links): Count and report both kinds of conversion.
6780         (downloaded_file): Use a hash table, not a list.
6781         (downloaded_files_free): Free the hash table.
6782
6783         * retr.c (retrieve_from_file): Ditto.
6784
6785         * main.c (main): Call either retrieve_url or retrieve_tree
6786         for each URL, not both.
6787
6788         * retr.c (register_all_redirections): New function.
6789         (register_redirections_mapper): Ditto.
6790         (retrieve_url): Register the redirections.
6791         (retrieve_url): Make the string "Error parsing proxy ..." 
6792         translatable.
6793
6794         * res.c (add_path): Strip leading slash from robots.txt paths so
6795         that the path representations are "compatible".
6796         (free_specs): Free each individual path, too.
6797         (res_cleanup): New function.
6798         (cleanup_hash_table_mapper): Ditto.
6799
6800         * recur.c (url_queue_new): New function.
6801         (url_queue_delete): Ditto.
6802         (url_enqueue): Ditto.
6803         (url_dequeue): Ditto.
6804         (retrieve_tree): New function, replacement for recursive_retrieve.
6805         (descend_url_p): New function.
6806         (register_redirection): New function.
6807
6808         * progress.c (create_image): Cosmetic changes.
6809
6810         * init.c (cleanup): Do all those complex cleanups only if
6811         DEBUG_MALLOC is defined.
6812
6813         * main.c: Removed --simple-check and the corresponding
6814         simple_host_check in init.c.
6815
6816         * html-url.c (handle_link): Parse the URL here, and propagate the
6817         parsed URL to the caller, who would otherwise have to parse it
6818         again.
6819
6820         * host.c (xstrdup_lower): Moved to utils.c.
6821         (realhost): Removed.
6822         (same_host): Ditto.
6823
6824 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6825
6826         * utils.c (path_simplify): Preserver the (non-)existence of
6827         leading slash.  Return non-zero if changes were made.
6828
6829 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6830
6831         * progress.c (bar_update): Don't modify bp->total_length if it is
6832         zero.
6833
6834 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6835
6836         * retr.c (retrieve_url): When the redirection URL doesn't parse,
6837         print the correct error message rather than "UNKNOWN".
6838
6839 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6840
6841         * progress.c (bar_finish): If the timer didn't record any time
6842         since the download beginning, fake 1ms.
6843
6844 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6845
6846         * recur.c (recursive_retrieve): Fix typo.
6847
6848 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
6849
6850         * progress.c (create_image): Don't translate "%ld ".
6851
6852 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
6853
6854         * progress.c (bar_set_params): Allow the user to force the use of
6855         the bar.
6856
6857 2001-11-23  Lemble Gregory  <gregory.lemble@st.com>
6858
6859         * gen_sslfunc.c (ssl_init_prng): New function; seed the SSL RNG.
6860
6861 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
6862
6863         * progress.c: Renamed dp_* functions to dot_* for greater clarity
6864         and consistency with bar_*.
6865         (print_download_speed): Get rid of the unneeded '@' character.
6866         (create_image): Fix download rate geometry.
6867
6868         * progress.c (print_elapsed): Remove spurious space.
6869         (print_elapsed): Renamed to print_download_speed, since that's
6870         what it does.
6871
6872 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
6873
6874         * progress.c (bar_update): If the downloaded amount becomes larger
6875         than the expected amount, adjust the expected amount accordingly.
6876
6877 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
6878
6879         * utils.c (determine_screen_width): New function.
6880
6881         * main.c (main): New option `--progress=TYPE'.
6882         (main): Implement compatibility with the old option `--dot-style'.
6883
6884         * init.c: Removed cmd_spec_dotstyle -- that logic is now in
6885         dp_set_params.
6886         (cmd_spec_progress): New function.
6887
6888         * retr.c (get_contents): Use the progress_* functions instead of
6889         the old show_progress().
6890         (show_progress): Removed.
6891         (rate): Print "xxxx.xx K/s" instead of "KB/s".  Ditto for MB/s,
6892         etc.
6893
6894         * progress.c (set_progress_implementation): New function.
6895         (valid_progress_implementation_p): Ditto.
6896         (progress_create): Ditto.
6897         (progress_update): Ditto.
6898         (progress_finish): Ditto.
6899         (dp_create): Ditto.
6900         (dp_update): Ditto.
6901         (dp_finish): Ditto.
6902         (dp_set_params): Ditto.
6903         (print_elapsed): Ditto.
6904
6905 2001-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
6906
6907         * retr.c (show_progress): Use it.
6908
6909         * log.c (log_set_flush): New function.
6910
6911 2001-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
6912
6913         * utils.c (path_simplify): Don't remove trailing slashes.
6914
6915         * ftp.c (ftp_get_listing): Use it.
6916
6917         * utils.c (file_merge): New function.
6918
6919         * url.c (opt_url): Removed.
6920
6921         * recur.c (recursive_retrieve): Inline "opt_url" logic.
6922
6923         * main.c (main): Use xfree(), not free().
6924
6925         * url.c (rewrite_url_maybe): Renamed to rewrite_shorthand_url.
6926
6927         * ftp.c (ccon): Move `ccon' typedef here, since it's only used
6928         internally.
6929
6930         * config.h.in: Include a stub for HAVE_STRPBRK.
6931
6932         * cmpt.c (strpbrk): Include a replacement for systems without
6933         strpbrk().
6934
6935         * ftp.c: Use url_set_dir and url_set_file when modifying the URL.
6936
6937         * url.c (url_set_dir): New function.
6938         (url_set_file): Ditto.
6939
6940         * ftp-basic.c (ftp_process_type): Process FTP type here; the URL
6941         parser makes the URL "params" available, so we can do that in this
6942         function.
6943
6944         * retr.c: Ditto.
6945
6946         * ftp.c: Ditto; pass the local file information in `ccon'.
6947
6948         * http.c: Get rid of the ugly kludge that had URL being replaced
6949         with the proxy URL when proxy retrieval was requested.  Use a
6950         separate parameter to http_loop and gethttp for the proxy URL.
6951
6952         * http.c: Changed to reflect the fact that local file, proxy, and
6953         referer information are no longer stored in struct url.  The local
6954         file information is passed in `struct hstat' now.
6955
6956         * url.c: Reworked URL parsing to be more regular.  Reencode the
6957         URL using reencode_string.
6958         Removed non-URL-related information from struct url.  This
6959         includes fields `proxy', `local', and `referer'.
6960
6961 2001-11-22  Jochen Hein  <jochen@jochen.org>
6962
6963         * main.c (main): Split the copyright notice for easier
6964         translation.
6965
6966 2001-08-21  Dave Turner <dct25@hermes.cam.ac.uk>
6967
6968         * ftp-basic.c (ftp_size): New function to send non-standard SIZE
6969           command to server to request file size.
6970         * ftp.h (ftp_size): Export it.
6971         * ftp.c (getftp): Use new ftp_size function if restoring
6972           transfer of a file with unknown size.
6973
6974 2001-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
6975
6976         * url.c (parseurl): Don't depend on the now-obsolete TYPE.
6977
6978 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6979
6980         * url.c (getproxy): Handle URL shorthands.
6981
6982 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6983
6984         * main.c: Remove --wait / --waitretry backwards compatibility
6985         code.
6986         
6987 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6988
6989         * main.c (main): Use it.
6990
6991         * url.c (rewrite_url_maybe): New function.
6992
6993 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6994
6995         * url.c: Clean up handling of URL schemes.
6996
6997 2001-05-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6998
6999         * url.c: Get rid of `protostrings'.
7000         (skip_proto): Don't use protostrings.
7001         (has_proto): Ditto.
7002
7003 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7004
7005         * Makefile.in: Conditionally compile getopt.o.
7006
7007 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7008
7009         * md5.h: Renamed to gnu-md5.h.
7010
7011         * md5.c: Renamed to gnu-md5.c.
7012
7013         * http.c: Ditto.
7014
7015         * ftp-opie.c: Use the new macros.
7016
7017         * sysdep.h: Define md5-related macros.
7018
7019         * config.h.in: Define HAVE_SOLARIS_MD5 or HAVE_BUILTIN_MD5
7020         depending on which md5 implementation is used.
7021
7022 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7023
7024         * res.c (res_register_specs): Initialize OLD and HP_OLD to appease
7025         the compiler.
7026
7027 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7028
7029         * http.c (gethttp): Print the whole response line when printing
7030         headers is requested.
7031
7032 2001-05-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7033
7034         * res.c: New file.  Implement all RES-related code here.
7035
7036 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7037
7038         * version.c: Wget 1.7.1 is released.
7039
7040 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
7041
7042         * headers.c (header_extract_number): Ignore trailing whitespace.
7043
7044 2001-08-24  Ian Abbott  <abbotti@mev.co.uk>
7045
7046         * html-url.c (collect_tags_mapper): Fix bug converting links
7047         with -k option for tags with multiple link attributes by
7048         handling links in the order they appear.
7049
7050 2001-08-15  Ian Abbott  <abbotti@mev.co.uk>
7051
7052         * ftp.c (ftp_loop_internal): Avoid a potential buffer overflow in
7053           the call to the 'rate' function by moving it past the error
7054           checking for the 'getftp' function return value.
7055
7056 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
7057
7058         * html-parse.c (advance_declaration): Use 0x22 instead of '"' or
7059         '\"'.  Different compilers' assert macros are broken in different
7060         ways.
7061
7062 2001-09-29  Christian Fraenkel  <c.fraenkel@gmx.net>
7063
7064         * http.c (gethttp): print debug output for errors occuring during
7065         the ssl handshake.
7066
7067 2001-11-16  Chris Seawood  <cls@seawood.org>
7068
7069         * init.c: Ditto.
7070
7071         * host.c: Ditto.
7072
7073         * connect.c: Ditto.
7074
7075         * sysdep.h: Support compilation under BEOS.
7076
7077 2001-06-08  Edward J. Sabol  <sabol@alderaan.gsfc.nasa.gov>
7078
7079         * url.c (url_equal): Fix a memory leak when parseurl returns an
7080         error on the second URL. Also, since url_equal is not used at the
7081         moment, do not compile it.
7082
7083         * url.h: Ditto for the prototype of url_equal.
7084
7085 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
7086
7087         * html-parse.c (map_html_tags): Support XML-style empty tags.
7088
7089 2001-06-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7090
7091         * wget.h (DO_REALLOC_FROM_ALLOCA): Check for do_realloc_newsize in
7092         loop condition because we're no longer setting SIZEVAR here.
7093
7094 2001-06-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7095
7096         * wget.h (DO_REALLOC_FROM_ALLOCA): Set SIZEVAR after the memcpy()
7097         call because it needs the old value.
7098
7099 2001-06-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7100
7101         * cookies.c (ATTR_NAME_CHAR): Allow almost any character to be in
7102         an attribute name.
7103
7104 2001-06-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7105
7106         * url.c (url_filename): Make sure that slashes that sneak in to
7107         u->file via query string get protected.
7108         (file_name_protect_query_string): New function.
7109
7110 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7111
7112         * recur.c (recursive_retrieve): Also check undesirable_urls with
7113         canonicalized URL.
7114
7115 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7116
7117         * http.c (gethttp): Search `.netrc' with real host, not the proxy
7118         one.
7119
7120 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7121
7122         * sysdep.h (MAP_FAILED): Provide MAP_FAILED for systems that don't
7123         define it.
7124
7125 2001-06-09  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7126
7127         * ftp.h: Provide correct prototype for ftp_parse_ls().
7128
7129 2001-06-04  Hrvoje Niksic  <hniksic@arsdigita.com>
7130
7131         * version.c: Wget 1.7 is released.
7132
7133 2001-06-03  Karl Eichwalder  <ke@suse.de>
7134
7135         * ftp-ls.c (ftp_parse_ls): Fix typo.
7136
7137 2001-05-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7138
7139         * all: Update copyright information.
7140
7141 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7142
7143         * http.c (gethttp): Indicate that the continued download failed
7144         for *this* file.
7145
7146 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7147
7148         * version.c: Wget 1.7-pre1 is released.
7149
7150 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7151
7152         * version.c: Updated version to 1.7-pre1.
7153
7154 2001-05-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7155
7156         * gen_sslfunc.c: Don't include <sys/time.h> directly.
7157
7158 2001-05-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7159
7160         * http.c (gethttp): Use real URL data for cookies, not the proxy
7161         stuff.
7162
7163 2001-05-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7164
7165         * main.c (print_help): Document `--no-http-keep-alive'.
7166
7167         * utils.c (numdigit): Handle negative numbers *correctly*.
7168
7169         * hash.c (make_nocase_string_hash_table): Use term "nocase" rather
7170         than the confusing "unsigned".
7171
7172         * utils.c (string_set_contains): Renamed from string_set_exists.
7173
7174         * hash.c (hash_table_contains): Renamed from hash_table_exists.
7175
7176         * cookies.c: Move case-insensitive hash tables to hash.c.
7177
7178 2001-05-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7179
7180         * http.c (gethttp): Before concluding that the file is already
7181         fully retrieved, make sure that the file existed and `Range' was
7182         actually requested.
7183
7184 2001-05-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7185
7186         * cookies.c (eliminate_dups): New function.
7187         (build_cookies_request): Use it.
7188         (build_cookies_request): Set chain_store_size after reallocating
7189         all_chains.
7190         (check_domain_match): Annotated for easier future debugging.
7191         (store_cookie): In the debug message, print whether the cookie is
7192         permanent.
7193
7194 2001-05-08  Hrvoje Niksic  <hniksic@arsdigita.com>
7195
7196         * http.c (http_loop): Reset no_truncate before deciding whether to
7197         set it.
7198         (gethttp): Further clarify "-c conflicts with existing file" error
7199         message, based on input from Herold Heiko.
7200
7201 2001-05-07  Hrvoje Niksic  <hniksic@arsdigita.com>
7202
7203         * http.c (http_loop): If restval is set, set no_truncate to 1
7204         unconditionally.
7205
7206 2001-05-02  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7207
7208         * ftp-ls.c (ftp_parse_winnt_ls): Assure months are being correctly
7209         converted. Pointed out by <Stefan.Weil@de.heidelberg.com>.
7210         (ftp_parse_vms_ls): Ditto.
7211
7212 2001-04-30  Hrvoje Niksic  <hniksic@arsdigita.com>
7213
7214         * init.c (cmd_address): Zero SIN before using it; apparently
7215         needed on *BSD.
7216
7217 2001-04-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7218
7219         * ftp.c (ftp_loop_internal): Don't set NO_TRUNCATE if the file is
7220         empty.
7221
7222 2001-04-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7223
7224         * main.c (main): Make `--cookies' respect its argument.
7225
7226 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
7227
7228         * main.c (main): Removed undocumented option `--email-address'.
7229
7230         * netrc.c: Use the latest read_whole_line.
7231
7232         * init.c (defaults): Set opt.ftp_pass to "-wget@".
7233
7234         * mswindows.c (pwd_cuserid): Ditto.
7235
7236         * utils.c (pwd_cuserid): Removed.
7237
7238         * host.c (ftp_getaddress): Removed.
7239
7240 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
7241
7242         (http_loop): Allocate space for filename_plus_orig_suffix with
7243         alloca; this is more efficient and removes the need to free it
7244         before each and every return.
7245
7246 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
7247
7248         * http.c (gethttp): Return RETRUNNEEDED when the retrieval is
7249         unneeded because the file is already there and fully downloaded,
7250         and -c is specified.
7251         (http_loop): Handle RETRUNNEEDED.
7252
7253         * wget.h (uerr_t): New value RETRUNNEEDED.
7254
7255         * http.c (http_loop): Set no_truncate for files that both exist
7256         and are non-empty.
7257         (gethttp): Consider the download finished when restval >= contlen,
7258         not only when restval==contlen.
7259         (gethttp): Handle redirection before giving up due to -c.
7260         (gethttp): Clarify error message which explains that -c will not
7261         truncate the file.
7262         (gethttp): When returning CONTNOTSUPPORTED, don't forget to free
7263         the stuff that needs freeing and release the socket.
7264
7265 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7266
7267         * main.c (print_help): Wget booleans accept "off", not "no".
7268
7269 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7270
7271         * http.c (http_loop): If allow_cache is zero, always disable
7272         caching, not only when retrieving through proxy.
7273
7274         * init.c: Ditto.
7275
7276         * options.h (struct options): Rename proxy_cache to allow_cache.
7277
7278 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7279
7280         * http.c (mktime_from_utc): Improve documentation.
7281         (http_atotm): Put format strings into a separate array.
7282
7283 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7284
7285         * safe-ctype.h: Instead of throwing #error when isalpha is
7286         defined, redefine it to something that will throw a compile-time
7287         error if actually *used*.  Do the same for the rest of the
7288         standard C macros.
7289
7290 2001-04-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7291
7292         * url.c (getproxy): Ignore empty proxy vars.
7293
7294 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7295
7296         * http.c (http_loop): Would load cookies every time.
7297
7298         * cookies.c (load_cookies): Handle cookies whose values contain
7299         embedded spaces.
7300
7301 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7302
7303         * utils.c: Define each DIGITS_* in one line.
7304
7305 2001-04-25  Roger L. Beeman  <beeman@cisco.com>
7306
7307         * http.c (http_atotm): Initialize t.tm_isdst to 0.
7308         (mktime_from_utc): Prevent mktime() from having discontinuities at
7309         DST transition points.
7310
7311 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7312
7313         * html-url.c (get_urls_html): Fix documentation.
7314
7315 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7316
7317         * url.c (UNSAFE_CHAR): Reimplement using a static table.
7318         (url_init): Removed.
7319         (init_unsafe_char_table): Removed.
7320
7321 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7322
7323         * snprintf.c (dopr): Replace ISDIGIT with '0' <= ch && ch <= '9'.
7324
7325 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7326
7327         * utils.c: Document timer functions.
7328
7329         * retr.c (rate): Use it.
7330         (rate): Print in GB/s if transfer rate exceeds 1 GB/s.
7331
7332         * utils.c (wtimer_granularity): New function.
7333
7334 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7335
7336         * retr.c (show_progress): Ditto.
7337
7338         * ftp.c (getftp): Ditto.
7339
7340         * http.c (gethttp): Use new timer functions.
7341
7342         * utils.c (wtimer_allocate): New function.
7343         (wtimer_new): Ditto.
7344         (wtimer_delete): Ditto.
7345         (wtimer_reset): Ditto.
7346         (wtimer_elapsed): Ditto.
7347
7348 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7349
7350         * utils.c (long_to_string): New, faster version.  Favors smaller
7351         numbers; much of the calculation is now done at compile-time.
7352
7353 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7354
7355         * utils.c (numdigit): Handle negative numbers.
7356
7357 2001-04-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7358
7359         * retr.c (show_progress): Print the download rate even when the
7360         percentages are not available.
7361
7362 2001-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
7363
7364         * ftp.c (getftp): Adjust expected_bytes if the length is
7365         authoritative.
7366
7367 2001-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7368
7369         * url.c: Don't declare `construct'.
7370
7371         * hash.c (grow_hash_table): Speed up rehashing; inline storing of
7372         mappings to new locations.
7373         (hash_table_new): Make resize_threshold a field in the hash table,
7374         so we don't have to recalculate it in each hash_table_put.
7375         (grow_hash_table): Update resize_threshold.
7376         (MAX): Remove unused macro.
7377         (prime_size): Made static.
7378
7379 2001-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7380
7381         * retr.c (retrieve_url): Call uri_merge, not url_concat.
7382
7383         * html-url.c (collect_tags_mapper): Call uri_merge, not
7384         url_concat.
7385
7386         * url.c (mkstruct): Use encode_string instead of xstrdup followed
7387         by URL_CLEANSE.
7388         (path_simplify_with_kludge): Deleted.
7389         (contains_unsafe): Deleted.
7390         (construct): Renamed to uri_merge_1.
7391         (url_concat): Renamed to uri_merge.
7392
7393 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7394
7395         * url.c (str_url): Use encode_string instead of the unnecessary
7396         CLEANDUP.
7397         (encode_string_maybe): New function, returns input string if no
7398         encoding is needed.
7399         (encode_string): Call encode_string_maybe to do the dirty work,
7400         xstrdup if no work needed.
7401
7402 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7403
7404         * wget.h (XDIGIT_TO_xchar): Define here.
7405
7406         * url.c (decode_string): Use new name.
7407         (encode_string): Ditto.
7408
7409         * http.c (XDIGIT_TO_xchar): Rename HEXD2asc to XDIGIT_TO_xchar.
7410         (dump_hash): Use new name.
7411
7412         * wget.h: Rename ASC2HEXD and HEXD2ASC to XCHAR_TO_XDIGIT and
7413         XDIGIT_TO_XCHAR respectively.
7414
7415 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7416
7417         * init.c: Include cookies.h.
7418
7419         * cookies.h: Declare cookies_cleanup.
7420
7421         * cookies.c (check_domain_match): Remove unused variable.
7422         (save_cookies): Remove extraneous argument from debug statement.
7423
7424         * host.c (same_host): Don't call skip_url.
7425
7426         * url.c (skip_url): Removed.  Removed its calls from various
7427         functions in url.c.
7428
7429 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7430
7431         * cookies.c (unsigned_string_hash): Use the new code in
7432         string_hash as reference.
7433
7434         * hash.c (hash_table_map): Allow deletion and change of the
7435         element processed by MAPFUN.
7436         (string_hash): Use the function from glib.
7437
7438 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7439
7440         * config.h.in: Include #undef stub.
7441
7442         * hash.c (hash_table_remove): Rewrite to actually clear deleted
7443         entries instead of just marking them as deleted.
7444
7445 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7446
7447         * hash.h: Declare hash_table_get_pair and hash_table_count.
7448
7449 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7450
7451         * cookies.c: Declare http_atotm.
7452
7453 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7454
7455         * ftp-ls.c (ftp_parse_unix_ls): Use octal constants for
7456         permissions.  A compiler that doesn't accept octal constants is
7457         seriously broken and shouldn't be used -- octal constants were
7458         present in K&R C!
7459
7460 2001-01-20  Karl Eichwalder  <ke@suse.de>
7461
7462         * Makefile.in: Provide and use DESTDIR according to the Coding
7463         Standards.
7464
7465 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7466
7467         * ftp-ls.c (ftp_parse_vms_ls): Make seconds optional in time
7468         specification.
7469
7470 2001-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7471
7472         * url.c (parseurl): Don't strip trailing slash when u->dir is "/"
7473         because that strips the *leading* slash, thus forcing relative
7474         FTP retrieval.
7475
7476 2001-04-10  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7477
7478         * ftp.c (getftp): Convert initial FTP directory from VMS to UNIX
7479         notation for VMS servers. 
7480         (ftp_retrieve_dirs): Do not prepend '/' to f->name when
7481         odir is an empty string.
7482
7483 2001-04-10  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7484
7485         * ftp-ls.c (ftp_parse_winnt_ls): Made the fix for AM/PM more
7486         effective. Suggested by Edward J. Sabol.
7487
7488 2001-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
7489
7490         * cookies.c (build_cookies_request): Use and sort cookies from all
7491         matching domains.
7492         (build_cookies_request): Check for duplicates before generating
7493         the `Cookies' header.
7494
7495         * main.c (main): Don't load cookies here.
7496         (main): Make loadcookies and savecookies call the correct command.
7497
7498         * http.c (http_loop): Load cookies on-demand.
7499
7500 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7501
7502         * http.c (gethttp): Fix indentation of SSL ifdef.
7503
7504 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7505
7506         * ftp.c (ftp_retrieve_dirs): Don't forcibly prepend "/" to u->dir;
7507         that hack is no longer necessary.
7508         (getftp): Prepend initial directory to *non*-absolute u->dir's.
7509
7510 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7511
7512         * init.c (cmd_file): New function.
7513         (enable_tilde_expansion): New variable.
7514         (run_wgetrc): Use it.
7515         (cmd_file): Use it.
7516
7517 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
7518
7519         * init.c: Include cookie-related options.
7520
7521         * main.c (main): Include cookie-specific options.
7522         (main): Load cookies before download is finished.
7523         (main): Save cookies when done.
7524
7525         * http.c (gethttp): Process the `Set-Cookie' header.
7526         (gethttp): Include cookies in the response.
7527
7528         * cookies.c: New file.
7529
7530 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
7531
7532         * utils.c (datetime_str): New function.
7533
7534 2001-04-08  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7535
7536         * ftp-ls.c (ftp_parse_winnt_ls): The AM/PM change did assume
7537         12:01PM == 00:01, which was obviously wrong. Taken care of this
7538         anomaly.
7539
7540         * ChangeLog: Removed an excess conflict marker. Reformatted the
7541         entry by Philipp Thomas from 2001-03-09.
7542
7543         * ftp-ls.c (ftp_parse_winnt_ls): Ensure that adjusted PM hours lay
7544         between 0 and 23. Elminate unused variable `sec'.
7545
7546 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
7547
7548         * hash.c (hash_table_count): New function.
7549
7550 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7551
7552         * utils.c (read_file): Cast MAP_FAILED to char *.  Enforced by
7553         Digital Unix cc.
7554
7555 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7556
7557         * config.h.in: Oops, do the namespace tweaks only on systems we
7558         know about.
7559
7560 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7561
7562         * hash.c: Include <string.h>.
7563
7564 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7565
7566         * config.h.in: Define "compilation environment" options that work
7567         under Linux and Solaris.  To be reviewed on other OS'es.
7568
7569 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7570
7571         * http.c (gethttp): Prepend literal newline with `\n\'.
7572
7573 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7574
7575         * sysdep.h: Don't define VERY_LONG_FORMAT.
7576
7577         * utils.c (very_long_to_string): New function.
7578         (legible_very_long): Use it; don't use VERY_LONG_FORMAT.
7579
7580 2001-04-04  Christian Fraenkel  <christian.fraenkel@gmx.net>
7581
7582         * url.c (parse_uname): Would run past the end of the string if the
7583         username was present, but the URL did not contain a slash, e.g.
7584         http://foo:bar@myhost.
7585
7586 2001-04-03  KOJIMA Hajime  <kjm@rins.ryukoku.ac.jp>
7587
7588         * http.c (http_atotm): Use %A instead of %a to match full
7589         weekday.  (On most systems there is no difference.)
7590
7591 2001-04-03  Paul Bludov  <paul@ozero.net>
7592
7593         * mswindows.c (sleep): Use SleepEx() instead of Sleep().
7594         (ws_changetitle): Use alloca() instead of malloc() to avoid memory
7595         leak.
7596         (ws_mypath): Use GetModuleFileName instead of argv[0].
7597         (ws_startup): Use data.wVersion for comparison.
7598
7599 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7600
7601         * http.c (http_loop): Ditto.
7602
7603         * ftp.c (ftp_loop_internal): Made the check whether to continue
7604         retrieval `-O'-friendly.
7605
7606 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7607
7608         * netrc.c (parse_netrc): Don't trim the line endings explicitly;
7609         they will be handled as whitespace.
7610         (parse_netrc): Correctly handle lines that end with whitespace.
7611
7612 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7613
7614         * retr.c (retrieve_url): New variable global_download_count used
7615         to identify first retrieval.
7616
7617         * ftp.c (getftp): Ditto.
7618
7619         * http.c (gethttp): Rewind opt.dfp only on first retrieval.
7620
7621 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7622
7623         * init.c (cmd_address): Heap-allocate the address that gets stored
7624         to CLOSURE.  Old code would simply assign an address on the stack.
7625
7626 2001-04-01  Nicolas Lichtmaier <nick@debian.org>
7627
7628         * ftp.c (ftp_get_listing): Propagate error status.
7629         (ftp_retrieve_glob): Use it.
7630         (ftp_loop): Ditto.
7631
7632 2001-04-01  Nicolas Lichtmaier <nick@debian.org>
7633
7634         * main.c (main): Add -C to the string that is the third arg to
7635         getopt_long().
7636
7637 2001-04-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7638
7639         * ftp.c (getftp): Don't start the download from scratch if `-c'
7640         was specified, but the file is already fully downloaded.
7641
7642         * http.c (gethttp): Don't truncate a pre-existing file if `-c' was
7643         specified and the server doesn't support continued download.
7644         (gethttp): Don't start the download from scratch if `-c' was
7645         specified, but the file is already fully downloaded.
7646
7647 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7648
7649         (recursive_retrieve): Don't clear the hash tables at this point at
7650         all; it interferes with the normal operation of register_download.
7651
7652 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7653
7654         * recur.c (recursive_retrieve): Clear the hash tables only when
7655         they are defined.
7656
7657 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7658
7659         * http.c (gethttp): Make sure the socket is closed with
7660         CLOSE_INVALIDATE before we have drained the body.
7661
7662 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7663
7664         * retr.c (retrieve_url): Call register_download() for downloaded
7665         files and register_html() for downloaded HTML files.
7666
7667         * recur.c (register_download): New function; register here that a
7668         file has been downloaded, rather than in recursive_retrieve().
7669         (register_html): New function; enqueue the location of HTML files
7670         here rather than in recursive_retrieve().
7671
7672 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7673
7674         * main.c (print_help): Use multiple fputs instead of a single ugly
7675         printf().
7676         (main): Consistently assign numbers >128 to options without a
7677         corresponding character.
7678
7679 2001-03-09  Philipp Thomas  <pthomas@suse.de>
7680
7681         * safe-ctype.h: New file. Locale independent ctype.h replacement
7682         taken from libiberty.
7683
7684         * safe-ctype.c: New file. Tables for above.
7685
7686         * Makefile.in: Add safe-ctype$o to OBJS.  Add dependencies for
7687         safe-ctype$o.
7688
7689         * cmpt.c: Remove include of ctype.h. Use ISSPACE instead of
7690         isspace.
7691
7692         * ftp-basic.c: Don't include ctype.h.
7693
7694         * ftp-ls.c: Likewise.
7695
7696         * ftp.c: Likewise.
7697
7698         * headers.c: Likewise.
7699
7700         * host.c: Likewise.
7701
7702         * html-parse.c: Likewise.
7703
7704         * html-url.c: Likewise.
7705
7706         * http.c: Likewise.
7707
7708         * init.c: Likewise.
7709
7710         * main.c: Likewise. Set LC_CTYPE along with LC_MESSAGES.
7711
7712         * netrc.c: Likewise.
7713
7714         * recur.c: Likewise.
7715
7716         * retr.c: Likewise.
7717
7718         * snprintf.c: Replace ctype.h with safe-ctype.h. Use ISDIGIT
7719         instead of isdigit.
7720
7721         * sysdep.h: Remove defines of ctype macros as they aren't needed
7722         for safe-ctype-h.
7723
7724         * url.c: Don't include ctype.h.
7725
7726         * utils.c: Likewise.
7727
7728         * wget.h: Include safe-ctype.h.
7729
7730 2001-03-27  Dan Harkless  <wget@harkless.org>
7731
7732         * Makefile.in: Moved top_builddir out of "User configuration
7733         section" of top Makefile and analogous spot in this one.
7734
7735 2001-03-17  Dan Harkless  <wget@harkless.org>
7736
7737         * Makefile.in: Include @SSL_INCLUDES@ substition in INCLUDES.
7738         Define top_builddir.  Link wget with libtool so the user doesn't
7739         have to supply a bunch of custom environment variables to 
7740         correctly link with the OpenSSL shared libraries.
7741
7742 2001-03-06  Hack Kampbjorn  <hack@hackdata.com>
7743
7744         * http.c (gethttp): skip :port in host header if it is the
7745         DEFAULT_HTTPS_PORT when using SSL.
7746
7747         * url.c: move the #define of DEFAULT_HTTP_PORT, DEFAULT_FTP_PORT
7748         and DEFAULT_HTTPS_PORT to the header file so it can be use in the
7749         rest of the code. 
7750         * url.h: Ditto
7751
7752 2001-03-01  Jonas Jensen  <bones@huleboer.dk>
7753
7754         * retr.c (show_progress): Correctly calculate the number of bytes
7755         in the first line of the download that have been actually
7756         downloaded in this run.
7757
7758 2001-02-23  Dan Harkless  <wget@harkless.org>
7759
7760         * main.c (print_help): --help documentation for -N said it would
7761         re-download files if they had the _same_ timestamp on server.
7762         (print_help): -nr belongs in "FTP options" section of --help
7763         output, not "Recursive retrieval" section.  Alphabetized FTP
7764         options by long option name.
7765
7766 2001-02-16  Dan Harkless  <wget@harkless.org>
7767
7768         * init.c (commands): Hack Kampbjørn <hack@hackdata.com> discovered
7769         that "httpsproxy" had been inserted into commands[] out of
7770         alphabetical order, causing "BUG: unknown command `httpuser'".
7771
7772 2001-02-13  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7773
7774         * ftp-ls.c (ftp_parse_ls): Added support of ST_MACOS (Unix-like
7775         listing without correct permissons).
7776
7777         * ftp.h (stype): Added ST_MACOS to identify the NetPresenz MacOS
7778         FTP server. 
7779
7780         * ftp.c (ftp_retrieve_list): New mirroring logic: A remote file
7781         shall be donwloaded only when it's newer than the local copy or
7782         when it has the same timeestamp but its size is different. ST_VMS
7783         and ST_MACOS as special cases that lie about file size. 
7784
7785         * ftp-ls.c (ftp_parse_ls): Support for ST_MACOS.
7786
7787         * Makefile.in: Removed dependency on ftpparse library due to unclear
7788         copyright issues and absence of any feedback to our queries. 
7789
7790         * ftp-ls.c: Removed dependency on ftpparse library due to unclear
7791         copyright issues and absence of any feedback to our queries.   
7792         (ftp_parse_ls): Added a warning message when remote server system
7793         does not seem to be suported by wget. 
7794         (ftp_parse_vms_ls): New function for parsing VMS ftp
7795         server listing output.
7796         (clean_line): New function responsible for removing
7797         end-of-line characters from FTP listing texts.
7798
7799         * ftp.c (getftp): Global variables pwd and host_type are now
7800         member of the ccon structure under names ccon.id and ccon.rs. 
7801
7802         * ftp.h (struct ccon): Added formed global variables from ftp.c,
7803         enum stype rs (remote system identification) and char *id (initial
7804         working directory), as suggested by Hrvoje.
7805
7806         * url.c (parse_uname): Added support for passwords containing '@'
7807         characters.
7808         (skip_uname): Ditto.
7809
7810 2001-02-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7811
7812         * ftp.c (ftp_loop): Reset con.
7813
7814 2001-01-06  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7815
7816         * url.c (parse_uname): Added support for passwords containing '@'
7817         characters.
7818         (skip_uname): Ditto.
7819
7820 2001-02-11  Hack Kampbjørn  <hack@hackdata.com>
7821
7822         * url.c (parseurl): Debug-print u->ftp_type.
7823
7824 2001-02-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7825
7826         * ftp.c (ftp_loop_internal): Disable padding.
7827         (getftp): Ditto.
7828
7829         * http.c (http_loop): Disable padding.
7830
7831         * retr.c (show_progress): Use it to enable padding.
7832
7833         * retr.c (rate): Optional parameter PAD for padding the rate.
7834
7835 2001-02-10  Hrvoje Niksic  <hniksic@arsdigita.com>
7836
7837         * retr.c (show_progress): Make sure that the last output line
7838         includes progress.
7839
7840 2001-02-10  Jonas Jensen  <bones@huleboer.dk>
7841
7842         * retr.c (show_progress): Print the download rate along with the
7843         percentages.
7844         Along with Anders Thorsby <anders@thorsby.dk>.
7845
7846 2001-02-10  Tim Mooney  <mooney@dogbert.cc.ndsu.NoDak.edu>
7847
7848         * ftp.h: Rename enums `command' to `wget_ftp_command' and
7849         `fstatus' to `wget_ftp_status' because old names clash with Tru64
7850         net/if.h.
7851
7852 2001-02-08  Christian Fraenkel <christian.fraenkel@gmx.net>
7853
7854         * gen_sslfunc.c: verify_callback is now static
7855
7856         * gen_sslfunc.c (init_ssl): load certificate if specified
7857
7858         * gen_sslfunc.c (ssl_printerr): new function
7859
7860         * init.c: added new --sslcertfile and --sslcertkey switches
7861
7862         * main.c: ditto
7863
7864         * options.h: ditto
7865
7866         * http.c (gethttp): abort when init_ssl fails
7867
7868 2001-01-23  Herold Heiko  <Heiko.Herold@previnet.it>
7869
7870         * mswindows.h: Include <malloc.h>; it's needed for alloca().
7871
7872 2001-01-10  Dan Harkless  <wget@harkless.org>
7873
7874         * url.c (str_url): Clarified this function's comment header after
7875         Hrvoje answered my question on the list as to when hide != 1.
7876         Also Hrvoje pointed out I need to use xstrdup() on the string literal.
7877
7878 2001-01-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7879
7880         * connect.c (bindport): Declare addrlen as int.  Diagnosed by
7881         Drazen Kacar <dave@arsdigita.com>.
7882         (conaddr): Ditto.
7883
7884 2001-01-09  Dan Harkless  <wget@harkless.org>
7885
7886         * html-url.c: A bunch of fixup of `--page-requisites'-related
7887         comments to reflect Hrvoje's changes to my code when transplanting
7888         it into this new file, to fix spelling mistakes, to clarify, etc.
7889
7890         * url.c (write_backup_file): Clarified a comment.
7891         (str_url): Henrik van Ginhoven pointed out on the list that we
7892         shouldn't give away the number of characters in the password by
7893         replacing each character with a 'x'.  Use "<password>" instead.
7894
7895         * ftp.c (ftp_retrieve_dirs): The bug where recursion into FTP
7896         directories didn't work if logging in put you in a directory other
7897         than "/" is fixed now.  Removed the comment here warning of the bug.
7898
7899         * main.c (print_help): --continue's description was misleading.
7900         We don't "restart", we "resume".  Also, better to say
7901         "partially-downloaded file" rather than just "existing file".
7902
7903 2001-01-06  Dan Harkless  <wget@harkless.org>
7904
7905         * ChangeLog: The '[Not in 1.6 branch.]'s were decided not to be
7906         the best way to go about my aim.  Removed them in favor of:
7907
7908         * ChangeLog-branches/1.6_branch.ChangeLog: New file.
7909
7910 2001-01-04  Hrvoje Niksic  <hniksic@arsdigita.com>
7911
7912         * url.c (replace_attr): New function, to be used by both
7913         TO_COMPLETE and TO_RELATIVE case in convert_links.
7914         (find_fragment): New function for finding URL fragments.
7915         (replace_attr): Better handle the case where the original string
7916         is not quoted.  Use find_fragment.
7917         (convert_links): Use replace_attr().
7918
7919 2000-12-31  Dan Harkless  <wget@harkless.org>
7920
7921         * ChangeLog: Since this flat file doesn't have multiple branches,
7922         looking at the dates would make you think that things went into
7923         1.6 that actually just went into the 1.7-dev branch.  Added "[Not
7924         in 1.6 branch.]" where appropriate to clarify.
7925         
7926 2000-12-30  Dan Harkless  <wget@harkless.org>
7927
7928         * ftp.c, http.c:  Applied Hack Kampbjørn <hack@hackdata.com>'s
7929         patch to deal with h_errno not being defined in netdb.h under Cygwin.
7930
7931 2000-12-18  Csaba Raduly  <csaba.raduly@sophos.com>
7932
7933         * sysdep.h: Include <malloc.h> and <io.h> under Watcom.
7934
7935 2000-12-17  Igor Khristophorov  <igor@atdot.org>
7936
7937         * http.c (check_end): Fix test for '+' or '-'.
7938
7939 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
7940
7941         * url.c (parseurl): Rename inner loop var from i to ind to avoid
7942         clash with the function top-level-declared variable i.
7943         (str_url): Likewise, rename inner-loop i to j.
7944
7945         * recur.c (parse_robots): Don't declare LEN at top of function.
7946         (robots_match): Renamed parameter FORBIDDEN to avoid hiding of
7947         global variable.
7948
7949         * main.c (main): Change erroneous use of bitwise and to logical.
7950
7951         * init.c (cmd_address): Don't heap-allocate `sin'; it can be on
7952         the stack because it will be copied to closure.
7953
7954         Thanks to Csaba Raduly's run of PC-LINT over the sources.
7955
7956 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
7957
7958         * http.c (basic_authentication_encode): Use xmalloc(), not
7959         malloc().  Thanks to Csaba Raduly's run of PC-LINT over the
7960         sources.
7961
7962 2000-12-17  Csaba Raduly  <csaba.raduly@sophos.com>
7963
7964         * sysdep.h: Test for __EMX__ rather than for EMXOS2 for OS/2
7965         compilation.
7966
7967 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
7968
7969         * mswindows.c: Include <errno.h>.
7970
7971         * gen_sslfunc.c: Include <errno.h>.
7972
7973         * ftp-basic.c: Don't attempt to declare errno or h_errno because
7974         they're not used.
7975
7976         * main.c: Include <errno.h> because errno is used.
7977
7978         * ftp.c: Ditto.
7979
7980         * http.c: Include <netdb.h> for h_errno.
7981
7982 2000-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7983
7984         * html-parse.c (advance_declaration): MSVC assert() chokes on
7985         '\"'.  Use '"' instead.
7986
7987 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7988
7989         * utils.c (xfree_real): Removed.
7990         (xfree_debug): Just call free().
7991
7992         * wget.h (xfree): Make it an alias for free.
7993
7994 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7995
7996         * http.c (http_loop): Furthermore, touch output_document only if
7997         it is known to be an existing regular file.
7998
7999 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8000
8001         * ftp.c (ftp_retrieve_list): Ditto.
8002
8003         * http.c (http_loop): Touch output_document if that is used for
8004         output.
8005
8006 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8007
8008         * http.c: Include gen_sslfunc.h after including Wget's headers.
8009         (persistent_available_p): Needed coma before `int ssl'.
8010
8011 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8012
8013         * ftp.c (ftp_loop_internal): Ditto.
8014
8015         * http.c (http_loop): Use it.
8016
8017         * retr.c (sleep_between_retrievals): New function that handles the
8018         logic of opt.wait and opt.waitretry.
8019
8020 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8021
8022         * rbuf.h: Implement only a single version of RBUF_READCHAR, using
8023         rbuf_read_bufferful when the buffer is depleted.
8024
8025         * rbuf.c (rbuf_read_bufferful): New function.
8026
8027 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8028
8029         * gen_sslfunc.h: Use ansi2knr style function declarations.
8030
8031         * gen_sslfunc.c: Reformat according to the GNU coding standards.
8032         More should be done.
8033
8034         * http.c (persistent_available_p): Place the cheap SSL test nearer
8035         the top of the function.
8036         (CLOSE_FINISH, CLOSE_INVALIDATE): Define only one version of each.
8037
8038 2000-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
8039
8040         * url.c (init_unsafe_char_table): Reinstate space as an unsafe
8041         char.
8042
8043 2000-12-03  Christian Fraenkel <christian.fraenkel@gmx.net>
8044
8045         * Makefile.in: added gen_sslfunc object
8046         * config.h.in: added HAVE_SSL define
8047         * connect.c: changed select_fd from static int to int
8048         * connect.h: ditto
8049         * gen_sslfunc.h: New file
8050         * gen_sslfunc.c: ditto
8051         * http.c: added HTTPS fuctionality
8052         * retrc.c: ditto
8053         * url.c: ditto
8054         * init.c: added opt.httpsproxy
8055         * options.h: ditto
8056         * rbuf.h: added alternate rbuf struct
8057         * wget.h: added CONSSLERR
8058         * rbuf.c: ditto
8059
8060         * http.c: Added HTTPS fuctionality.
8061
8062         * retrc.c: Ditto.
8063
8064         * url.c: Ditto.
8065
8066         * init.c: Added opt.httpsproxy.
8067
8068         * options.h: Ditto.
8069
8070         * rbuf.h: Added alternate rbuf struct.
8071
8072         * wget.h: Added CONSSLERR.
8073
8074         * rbuf.c: Ditto.
8075
8076 2000-11-30  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8077
8078         * ftp-ls.c (ftp_parse_unix_ls): Added second parameter
8079         "ignore_perms" to ignore file and directory permissions for
8080         Windows NT FTP server listings.
8081         (ftp_parse_winnt_ls): New function.
8082         (ftp_parse_ls): Parses UNIX and Windows NT listings
8083         separately. Simple heuristics for distinguishing between UNIX and
8084         MS-DOS-like FTP listing provided by Windows NT FTP service.
8085
8086 2000-11-18  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8087
8088         * ftpparse.c, ftpparse.h: New files.
8089
8090         * ftp-ls.c (ftp_parse_ls): Use ftp_parse_unix_ls for UNIX servers
8091         only. Use ftp_parse_nonunix_ls otherwise.
8092         (ftp_parse_nonunix_ls): Stub to the ftpparse library handling all
8093         exotic FTP servers.
8094
8095         * ftp.h (stype): New enum, distinguishes UNIX, VMS, and "other"
8096         FTP servers.
8097
8098         * ftp.c: New static wariables host_type, pwd, and pwd_len. 
8099         (getftp): Support for VMS. Support for FTP servers that do not
8100         place you in the root directory after login.
8101         (ftp_retrieve_list): VMS is silent about the real file size, issue
8102         a more appropriate message.
8103         (ftp_get_listing): Pass host_type to ftp_parse_ls.
8104
8105         * ftp-basic.c (ftp_pwd, ftp_syst): New functions.
8106
8107 2000-11-30  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8108
8109         * ftp-ls.c (ftp_parse_unix_ls): Added second parameter
8110         "ignore_perms" to ignore file and directory permissions for
8111         Windows NT FTP server listings.
8112         (ftp_parse_winnt_ls): New function.
8113         (ftp_parse_ls): Parses UNIX and Windows NT listings
8114         separately. Simple heuristics for distinguishing between UNIX
8115         and MS-DOS-like FTP listing provided by Windows NT FTP service.
8116
8117 2000-11-29  John Summerfield  <summer@OS2.ami.com.au>
8118
8119         * netrc.c (parse_netrc): Get rid of line ending.
8120
8121 2000-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
8122
8123         * ftp.c (ftp_retrieve_list): Undo typo "fix" until resolution by
8124         Dan.
8125
8126 2000-11-24  Karl Eichwalder  <ke@suse.de>
8127
8128         * main.c (print_help): Untabify.
8129
8130 2000-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
8131
8132         * utils.c (xrealloc_debug): Do the unregister/register thing only
8133         if the pointer has actually changed.
8134         (xmalloc_real): Declare `static' in DEBUG_MALLOC builds.
8135         (xfree_real): Ditto.
8136         (xrealloc_real): Ditto.
8137         (xstrdup_real): Ditto.
8138
8139 2000-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
8140
8141         * ftp.c (getftp): ftp_getaddress() returns a malloc'ed copy of the
8142         string; no need to strdup() it.
8143         (getftp): Make pwd_len a local variable.
8144         (ftp_loop): Free PWD before returning.
8145
8146         * init.c (cleanup): Free opt.ftp_pass only if it's non-NULL.
8147
8148 2000-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
8149
8150         * all: Use xfree() instead of free.
8151
8152         * utils.c (xfree): New function.
8153
8154 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
8155
8156         * url.c (convert_links): HTML-quote the converted string.
8157
8158         * utils.c (html_quote_string): Move here from ftp-ls.c
8159         (html_quote_string): Make non-static; declare in utils.h.
8160         (html_quote_string): Convert SP to &#32;.
8161
8162 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
8163
8164         * ftp.c (getftp): Reformat Jan's code according to GNU coding
8165         standards; remove (debugging?) printf's; use '\0' for the ASCII
8166         zero character.  Use alloca() instead of malloc() for
8167         inter-function temporary allocations.
8168
8169 2000-11-18  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8170
8171         * ftpparse.c, ftpparse.h: New files.
8172
8173         * ftp-ls.c (ftp_parse_ls): Use ftp_parse_unix_ls for UNIX servers
8174         only. Use ftp_parse_nonunix_ls otherwise.
8175         (ftp_parse_nonunix_ls): Stub to the ftpparse library handling all
8176         exotic FTP servers.
8177
8178         * ftp.h (stype): New enum, distinguishes UNIX, VMS, and "other"
8179         FTP servers.
8180
8181         * ftp.c: New static wariables host_type, pwd, and pwd_len. 
8182         (getftp): Support for VMS. Support for FTP servers that do not
8183         place you in the root directory after login.
8184         (ftp_retrieve_list): VMS is silent about the real file size, issue
8185         a more appropriate message.
8186         (ftp_get_listing): Pass host_type to ftp_parse_ls.
8187
8188         * ftp-basic.c (ftp_pwd, ftp_syst): New functions.
8189
8190 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
8191
8192         * hash.c (hash_table_put): Don't overwrite deleted mappings.
8193
8194 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
8195
8196         * hash.c (find_mapping): New function.
8197         (hash_table_get): Use it.
8198         (hash_table_get_pair): Ditto.
8199         (hash_table_exists): Ditto.
8200         (hash_table_remove): Ditto.
8201         (hash_table_remove): Really delete the entry if the mapping
8202         following LOCATION is empty.
8203
8204         * utils.c (string_set_add): Check whether the element has existed
8205         before.
8206
8207         * hash.c (hash_table_get_pair): New function.
8208
8209 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8210
8211         * http.c (http_process_type): Ignore trailing whitespace; use
8212         strdupdelim().
8213
8214         * recur.c (recursive_retrieve): Use the new `convert' field.
8215         (convert_all_links): Ditto.
8216         (convert_all_links): Don't respect meta_disallow_follow.
8217
8218         * html-url.c (handle_link): Fill out link_relative_p and
8219         link_complete_p.
8220
8221         * url.h (struct _urlpos): Make elements more readable.
8222
8223         * recur.c (recursive_retrieve): Call slist_prepend instead of
8224         slist_append.
8225         (convert_all_links): Call slist_nreverse before iterating through
8226         urls_html.
8227
8228         * utils.c (slist_prepend): New function.
8229         (slist_nreverse): Ditto.
8230
8231 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8232
8233         * http.c (check_end): Constify.
8234
8235 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8236
8237         * http.c (http_loop): If username and password are known, try the
8238         `Basic' authentication scheme by default.
8239
8240         * connect.h: Declare test_socket_open.
8241
8242 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8243
8244         * version.c: Bump version from 1.5.3+dev to 1.7-dev.
8245
8246 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8247
8248         * http.c (gethttp): Don't use the return value of sprintf().
8249         (gethttp): Inhibit keep-alive if opt.http_keep_alive is 0.
8250
8251 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8252
8253         * recur.c (recursive_retrieve): Print the "so we don't load"
8254         debugging message only if we really don't load.
8255
8256         * http.c (gethttp): Inhibit keep-alive if proxy is being used.
8257         (gethttp): Don't request keep-alive if keep-alive is inhibited.
8258
8259 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8260
8261         * http.c (gethttp): Make the HTTP persistent connections more
8262         robust.
8263
8264 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8265
8266         * retr.c (get_contents): If use_expected, make sure that the
8267         appropriate amount of data is being read.
8268
8269         * http.c (gethttp): Check for both `Keep-Alive: ...' and
8270         `Connection: Keep-Alive'.
8271
8272         * wget.h (DEBUGP): Call debug_logprintf only if opt.debug is
8273         turned on.
8274
8275 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8276
8277         * http.c (connection_available_p): Use it.
8278
8279         * connect.c (test_socket_open): New function.
8280
8281         * http.c (gethttp): Support persistent connections.  Based on the
8282         ideas, and partly on code, by Sam Horrocks <sam@daemoninc.com>.
8283         (register_persistent): New function.
8284         (connection_available_p): Ditto.
8285         (invalidate_connection): Ditto.
8286
8287 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8288
8289         * url.c (convert_links): Handle UREL2ABS case.
8290
8291         * recur.c (recursive_retrieve): Instead of the list
8292         urls_downloaded, use hash tables dl_file_url_map and
8293         dl_url_file_map.
8294         (convert_all_links): Use them to retrieve data.
8295
8296         * host.c (clean_hosts): Free the hash tables.
8297
8298         * main.c (private_initialize): Call host_init().
8299
8300         * host.c (store_hostaddress): Use a saner, hash table-based data
8301         model.
8302         (realhost): Ditto.
8303         (host_init): Initialize the hash tables.
8304
8305 2000-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
8306
8307         * utils.c (slist_append): Eviscerate NOSORT.  Hash tables are now
8308         used for what the sorted slists used to be used for.
8309         (slist_contains): Don't rely on the list being sorted.
8310         (slist_append): Simplify the code.
8311
8312         * recur.c (recursive_cleanup): Use free_string_set.
8313
8314         * utils.c (string_set_add, string_set_exists, string_set_free):
8315         New functions for easier freeing of hash tables whose keys are
8316         strdup'ed strings.
8317
8318         * recur.c (recursive_retrieve): Use the hash table functions for
8319         storing undesirable URLs.
8320
8321         * hash.c: New file.
8322
8323 2000-11-17  Hrvoje Niksic  <hniksic@arsdigita.com>
8324
8325         * main.c (private_initialize): Call url_init.
8326         (main): Call private_initialize.
8327
8328         * url.c (unsafe_char_table): New table.
8329         (UNSAFE_CHAR): Use it.
8330         (init_unsafe_char_table): New function.
8331         (url_init): New function; call init_unsafe_char_table.
8332
8333 2000-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
8334
8335         * mswindows.h: Define snprintf and vsnprintf to _snprintf and
8336         _vsnprintf respectively.
8337
8338 2000-11-15  Hrvoje Niksic  <hniksic@arsdigita.com>
8339
8340         * config.h.in: Do the _XOPEN_SOURCE and _SVID_SOURCE things only
8341         on Linux.
8342
8343 2000-11-15  Hrvoje Niksic  <hniksic@arsdigita.com>
8344
8345         * html-url.c (handle_link): Handle HTML fragment identifiers.
8346
8347         * recur.c (recursive_retrieve): If norobot info is respected and
8348         the file is specified not to be followed by robots, respect that.
8349
8350         * html-url.c (collect_tags_mapper): Handle <meta name=robots
8351         content=X>.  For us the important cases are where X is NONE or
8352         where X contains NOFOLLOW.
8353         (get_urls_html): Propagate that information to the caller.
8354
8355 2000-11-13  Hrvoje Niksic  <hniksic@arsdigita.com>
8356
8357         * url.c (convert_links): Unlink the file we might be reading from
8358         before writing to it.
8359         (convert_links): Use alloca instead of malloc for
8360         filename_plus_orig_suffix.
8361
8362 2000-11-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8363
8364         * host.c (realhost): Add HOST to the list with quality==0 only if
8365         it wasn't already there.
8366         Based on analysis by Lu Guohan <feng@public.bjnet.edu.cn>.
8367
8368 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8369
8370         * url.c (get_urls_file): Ditto.
8371         (convert_links): Ditto.
8372
8373         * html-url.c (get_urls_html): Use read_file() instead of
8374         load_file().
8375
8376         * utils.c (read_file): New function, instead of the old
8377         load_file().
8378         (read_file_free): Ditto.
8379
8380         * url.c (findurl): Search only for the supported protocols.
8381         (convert_links): Use fwrite() when writing out a region of
8382         characters.
8383
8384 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8385
8386         * ftp-ls.c: Move html_quote_string and ftp_index here.
8387
8388         * url.c: Remove get_urls_html, since that's now in html-url.c.
8389
8390         * html-url.c: New file.
8391
8392         * html-parse.c: New file.
8393
8394 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8395
8396         * init.c (run_wgetrc): Don't bother killing off '\r' since
8397         pars_line() skips whitespace at end of line anyway.
8398         (parse_line): Oops, it didn't.  Now it does.
8399
8400         * recur.c (parse_robots): Ditto here.
8401
8402         * ftp-ls.c (ftp_parse_unix_ls): Kill off the newline character
8403         manually because read_whole_line no longer does.
8404
8405         * utils.c (read_whole_line): Rewrite to: a) use less memory
8406         (reallocates to needed size after work), b) work faster -->
8407         fgets() instead of getc, c) be more correct --> doesn't kill the
8408         newline character at the end of line.
8409
8410 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8411
8412         * init.c (comind): Initialize MAX to array size - 1.
8413
8414 2000-11-08  Hrvoje Niksic  <hniksic@arsdigita.com>
8415
8416         * url.c (construct): Changed last_slash[-1] to *(last_slash - 1).
8417         Suggested by Edward J. Sabol.
8418
8419 2000-11-08  Hrvoje Niksic  <hniksic@arsdigita.com>
8420
8421         * url.c (construct): Handle the case where host name is not
8422         followed by a slash.
8423
8424 2000-11-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8425
8426         * init.c: commands[] need to be sorted!  ("base" wasn't.)
8427
8428 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
8429
8430         * wget.h (DO_REALLOC_FROM_ALLOCA): Use braces to disambiguate
8431         `if'.
8432
8433 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
8434
8435         * url.c (construct): Insert unneeded initialization for the
8436         compiler to shut up.
8437
8438         * config.h.in: Define _XOPEN_SOURCE to 500 to get the prototype
8439         for strptime() (*duh*).  Define _SVID_SOURCE to get S_IFLNK which
8440         otherwise gets lost when you define _XOPEN_SOURCE.
8441
8442         * utils.c (touch): Include the file name in the error message.
8443         From Debian.
8444
8445 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
8446
8447         * log.c (logvprintf): Use vsnprintf() in all cases.  If necessary,
8448         resize the buffer to fit the formated message.  That way, messages
8449         of arbitrary size may be printed.
8450         (logvprintf): Use saved_append() to optionally log the last
8451         several lines of output.
8452         (logputs): Ditto.
8453         (log_close): Adapt to new data structures.
8454         (log_dump): Ditto.
8455         (redirect_output): Print messages to stderr, not to stdout.
8456
8457         * log.c (saved_append_1): New function.  Replaces the old logging
8458         system ("log all output until 10M characters") with a new, much
8459         more reasonable one ("log last screenful of text").
8460         (saved_append): New function; call saved_append_1.
8461         (free_log_line): New function.
8462
8463 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
8464
8465         * url.c (construct): Fix comment.
8466         (find_last_char): Document.
8467
8468 2000-11-04  Hrvoje Niksic  <hniksic@arsdigita.com>
8469
8470         * snprintf.c: New file.
8471
8472 2000-11-03  Hrvoje Niksic  <hniksic@arsdigita.com>
8473
8474         * wget.h: If HAVE_STDARG_H is not defined, don't declare argument
8475         types to logprintf() and debug_logprintf().
8476
8477 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8478
8479         * ftp.c (ftp_loop_internal): Hide the password from the URL when
8480         printing non-verbose.  Problem spotted by Dariusz Mlynarczyk
8481         <darekm@bydg.lomac.com.pl>.
8482
8483 2000-11-02  Junio Hamano  <junio@twinsun.com>
8484
8485         * ftp-basic.c (ftp_login): Make comparison case-insensitive.
8486
8487 2000-11-02  Tyler Riddle  <triddle@liquidmarket.com>
8488
8489         * http.c (known_authentication_scheme_p): Recognize NTML
8490         authentication.
8491         (create_authorization_line): Treat NTML the same as `Basic'.
8492
8493 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8494
8495         * retr.c (retrieve_url): Free url before returning.
8496         (retrieve_url): Free mynewloc before returning.
8497         Spotted by Mark A. Mankins <Mankins_Mark@prc.com>.
8498
8499 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8500
8501         * url.c (parseurl): Remove possible reading past the end of
8502         sup_protos[].  Spotted by Mark A. Mankins <Mankins_Mark@prc.com>.
8503
8504 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8505
8506         * main.c (main): In case of opt.downloaded overflowing, print
8507         <overflow> instead of a totally bogus random value.
8508
8509         * retr.c (retrieve_from_file): Ditto.
8510
8511         * recur.c (recursive_retrieve): Ditto.
8512
8513         * main.c (main): Ditto.
8514
8515         * http.c (http_loop): Ditto.
8516
8517         * ftp.c (ftp_loop_internal): Use downloaded_increase() instead of
8518         `+=', and downloaded_exceeds_quota() instead of the simple-minded
8519         check.
8520         (ftp_retrieve_list): Ditto.
8521         (ftp_retrieve_dirs): Ditto.
8522         (ftp_retrieve_glob): Ditto.
8523
8524         * retr.c (downloaded_increase): New function.  Notice overflows of
8525         opt.downloaded.
8526         (downloaded_exceeds_quota): Make sure that opt.downloaded is not
8527         used if it overflowed.
8528
8529         * options.h (struct options): New member downloaded_overflow.
8530
8531 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8532
8533         * wget.h (enum): Remove extra space after last enumeration.
8534
8535 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8536
8537         * main.c (main): Use legible_very_long() for printing
8538         opt.downloaded.
8539
8540         * utils.c (legible_1): New function that operates on strings and
8541         does the brunt of legible()'s work.
8542         (legible): Use legible_1().
8543         (legible_very_long): New function; dump the argument with
8544         sprintf(), and call legible_1().
8545
8546         * options.h (struct options): Use VERY_LONG_TYPE for
8547         opt.downloaded.
8548
8549         * sysdep.h (VERY_LONG_TYPE): Define it to have a 64-bit or greater
8550         type.
8551
8552         * config.h.in: Make sure that SIZEOF_LONG and SIZEOF_LONG_LONG get
8553         defined.  Define HAVE_LONG_LONG if long long is available.
8554
8555 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8556
8557         * utils.c (long_to_string): Update with a later, better version.
8558
8559 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8560
8561         * url.c (path_simplify_with_kludge): New function.
8562         (path_simplify_with_kludge): Disable it.  Instead...
8563         (parse_dir): ...make sure that at this point the right thing is
8564         done, i.e. that "query" part of the URL (?...) is always assigned
8565         to the file, never to the directory portion of the path.
8566
8567 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8568
8569         * retr.c (retrieve_url): Detect redirection cycles.
8570
8571 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8572
8573         * url.c (get_urls_html): Decode HTML entities using
8574         html_decode_entities.
8575
8576         * html.c (htmlfindurl): Don't count the `#' in numeric entities
8577         (&#NNN;) as an HTML fragemnt.
8578         (html_decode_entities): New function.
8579
8580 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8581
8582         * html.c (htmlfindurl): Fix recognition of # HTML fragments.
8583
8584 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8585
8586         * url.c (construct): Rewritten for clarity.  Avoids the
8587         unnecessary copying and stack-allocation the old version
8588         performed.
8589
8590 2000-10-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8591
8592         * ftp.c (getftp): Ditto.
8593
8594         * http.c (gethttp): Rewind the stream when retrying from scratch.
8595
8596 2000-10-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8597
8598         * retr.c (retrieve_url): Use url_concat() to handle relative
8599         redirections instead of /ad hoc/ code.
8600
8601         * url.c (url_concat): New function encapsulating weird
8602         construct().
8603         (urllen_http_hack): New function.
8604         (construct): When constructing new URLs, recognize that `?' does
8605         not form part of the file name in HTTP.
8606
8607 2000-10-13  Adrian Aichner  <adrian@xemacs.org>
8608
8609         * retr.c: Add msec timing support for WINDOWS.
8610         * retr.c (reset_timer): GetSystemTime() on WINDOWS.
8611         * retr.c (elapsed_time): Calculate delta time to msec on WINDOWS.
8612
8613 2000-10-27  Dan Harkless  <wget@harkless.org>
8614
8615         * retr.c (retrieve_url): Manually applied T. Bharath
8616         <TBharath@responsenetworks.com>'s patch to get wget to grok
8617         illegal relative URL redirects.  Reformatted and re-commented it.
8618
8619 2000-10-23  Dan Harkless  <wget@harkless.org>
8620
8621         * connect.c (make_connection and bindport): Manually applied Rob
8622         Mayoff <mayoff@dqd.com>'s 1.5.3 patch to add --bind-address,
8623         changing coding style to GNU's.
8624
8625         * ftp.c (ftp_loop_internal): --delete-after wasn't implemented for
8626         files downloaded via FTP.  Per a comment, .listing files were not
8627         counted towards number of bytes and files downloaded because they're 
8628         deleted anyway.  Well, they aren't under -nr, so count them then.
8629
8630         * init.c: Manually applied Rob Mayoff's 1.5.3 patch to add
8631         --bind-address, alphabetizing, changing coding style to GNU's,
8632         commenting, and renaming cmd_ip_address() to cmd_address() to
8633         imply hostnames also okay.
8634                 
8635         * main.c (main): --delete-after didn't delete the root of the
8636         tree.  Ignore --convert-links if --delete-after was specified.
8637         Manually applied Rob Mayoff's 1.5.3 patch to add --bind-address,
8638         fixing duplicate use of added-since-1.5.3 case value.
8639         (print_help): Clarified that --delete-after deletes local files.
8640         Rob forgot to add a line for his new --bind-address option.
8641                 
8642         * options.h (struct options): Manually applied Rob Mayoff's patch
8643         to add --bind-address (bind_address structure member).
8644                 
8645         * recur.c (recursive_retrieve): Improved comment; added DEBUGP().
8646         Ignore --convert-links if --delete-after was specified.
8647                 
8648         * retr.c (retrieve_from_file): Just added a DEBUGP().
8649                 
8650 2000-10-19  Dan Harkless  <wget@harkless.org>
8651
8652         * ftp.c (ftp_loop_internal): downloaded_file() enumerators changed.
8653         (getftp): Applied Piotr Sulecki <Piotr.Sulecki@ios.krakow.pl>'s
8654         patch to work around FTP servers that incorrectly respond to the
8655         "REST" command with the remaining size rather than the total file size.
8656                 
8657         * http.c (gethttp): Improved a comment and added code to tack on
8658         ".html" to text/html files without that extension when -E specified.
8659         (http_loop): Use new downloaded_file() enumerators and deal with
8660         the case of gethttp() called xrealloc() on u->local.
8661
8662         * init.c (commands): Added new "htmlextension" command.
8663         Also renamed John Daily's cmd_quad() to the more descriptive
8664         cmd_lockable_boolean(), alpha-sorted the CMD_DECLARE()s and
8665         removed duplicate cmd_boolean() declaration.
8666
8667         * main.c (print_help): Added my new -E / --html-extension option.
8668         (main): Undocumented --email-address option previously used -E synonym.
8669         Stole it away for the much more deserving --html-extension's use.
8670
8671         * options.h (struct options): Added html_extension field.
8672
8673         * url.c (convert_links): URL X that we saved as X.html locally due
8674         to -E needs to be backed up as X.orig, not X.html.orig.  Added comments.
8675         (downloaded_file): Now remembers if we added .html extension to a file.
8676
8677         * url.h (downloaded_file_t): Added extra enumerators to support above.
8678         (downloaded_file): Now takes and returns a downloaded_file_t.
8679
8680         * wget.h (unnamed "dt" enum): Added ADDED_HTML_EXTENSION enumerator.
8681         
8682 2000-10-09  Dan Harkless  <wget@harkless.org>
8683
8684         * html.c (htmlfindurl): Added unneeded initialization to quiet warning.
8685                 
8686         * main.c (print_help): Clarified what --retr-symlinks does.
8687         
8688 2000-09-15  John Daily  <jdaily@cyberdude.com>
8689
8690         * init.c: Add support for "always" and "never" values to allow
8691         .wgetrc to override commandline (useful e.g. with .pm files
8692         calling `wget --passive-ftp' when your firewall doesn't allow that).
8693
8694         * ftp.c (getftp): passive_ftp is first option to support always/never.
8695
8696 2000-08-30  Dan Harkless  <wget@harkless.org>
8697
8698         * ftp.c (ftp_retrieve_list): Use new INFINITE_RECURSION #define.
8699         
8700         * html.c: htmlfindurl() now takes final `dash_p_leaf_HTML' parameter.
8701         Wrapped some > 80-column lines.  When -p is specified and we're at a 
8702         leaf node, do not traverse <A>, <AREA>, or <LINK> tags other than 
8703         <LINK REL="stylesheet">.
8704         
8705         * html.h (htmlfindurl): Now takes final `dash_p_leaf_HTML' parameter.
8706         
8707         * init.c: Added new -p / --page-requisites / page_requisites option.
8708
8709         * main.c (print_help): Clarified that -l inf and -l 0 both allow
8710         infinite recursion.  Changed the unhelpful --mirrior description
8711         to simply give the options it's equivalent to.  Added new -p option.
8712         (main): Added some comments; handle new -p / --page-requisites.
8713         
8714         * options.h (struct options): Added new page_requisites field.
8715
8716         * recur.c: Changed "URL-s" to "URLs" and "HTML-s" to "HTMLs".
8717         Calculate and pass down new `dash_p_leaf_HTML' parameter to
8718         get_urls_html().  Use new INFINITE_RECURSION #define.
8719
8720         * retr.c: Changed "URL-s" to "URLs".  get_urls_html() now takes
8721         final `dash_p_leaf_HTML' parameter.
8722
8723         * url.c: get_urls_html() and htmlfindurl() now take final
8724         `dash_p_leaf_HTML' parameter.
8725
8726         * url.h (get_urls_html): Now takes final `dash_p_leaf_HTML' parameter.
8727
8728         * wget.h: Added some comments and new INFINITE_RECURSION #define.
8729         
8730 2000-08-23  Dan Harkless  <wget@harkless.org>
8731
8732         * main.c (print_help): -B / --base was not mentioned.
8733
8734 2000-08-22  Dan Harkless  <wget@harkless.org>
8735
8736         * main.c (print_help): Modified -nc description to mention that it
8737         also prevents the creation of multiple versions of the same file
8738         with ".<number>" suffixes.
8739
8740 2000-07-14  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8741
8742         * retr.c (retrieve_url): Consistently strdup opt.referer when
8743         setting u->referer.
8744
8745 2000-06-09  Dan Harkless  <wget@harkless.org>
8746
8747         * main.c (print_help): --help output for --waitretry was over 80 cols.
8748
8749 2000-06-09  Hrvoje Niksic  <hniksic@iskon.hr>
8750
8751         * url.c (encode_string): Fix comment.
8752         Suggested by Herold Heiko <Heiko.Herold@previnet.it>.
8753
8754 2000-06-01  Const Kaplinsky  <const@ce.cctpu.edu.ru>
8755
8756         * ftp.c (ftp_retrieve_list): Change permissions only on plain
8757         files.
8758
8759 2000-06-01  Hrvoje Niksic  <hniksic@iskon.hr>
8760
8761         * url.c (str_url): Print the port number only if it's different
8762         from the default port number for that protocol.
8763
8764 2000-05-22  Dan Harkless  <wget@harkless.org>
8765
8766         * main.c (print_help): Added --help line for Damir Dzeko
8767         <ddzeko@zesoi.fer.hr>'s until-now-undocumented --referer option.
8768         Removed comments that --referer and --waitretry were undocumented.
8769         Changed "`.wgetrc' command" to "`.wgetrc'-style command" on --help
8770         line for --execute.
8771
8772 2000-05-18  Hrvoje Niksic  <hniksic@iskon.hr>
8773
8774         * ftp.c (getftp): Ditto.
8775
8776         * http.c (gethttp): Check for return value of fclose/fflush.
8777
8778 2000-04-12  Hrvoje Niksic  <hniksic@iskon.hr>
8779
8780         * host.c (store_hostaddress): Instead of shifting ADDR, start
8781         copying from the correct address.
8782
8783 2000-04-12  Hrvoje Niksic  <hniksic@iskon.hr>
8784
8785         * http.c (gethttp): Don't free REQUEST -- it was allocated with
8786         alloca().
8787         Pointed out by Gisle Vanem <gvanem@eunet.no>.
8788
8789 2000-04-04  Dan Harkless  <wget@harkless.org>
8790
8791         * host.c (store_hostaddress): R. K. Owen's patch introduces a
8792         "left shift count >= width of type" warning on 32-bit
8793         architectures.  Got rid of it by tricking the compiler w/ a variable.
8794         
8795         * url.c (UNSAFE_CHAR): The macro didn't include all the illegal
8796         characters per RFC1738, namely everything above '~'.  It also
8797         generated a warning on OSes where char =~ unsigned char.  Fixed.
8798         
8799 1998-10-17  Hrvoje Niksic  <hniksic@srce.hr>
8800
8801         * http.c (http_process_type): Removed needless strdup(), a memory
8802         leak.
8803
8804 1998-09-25  Hrvoje Niksic  <hniksic@srce.hr>
8805
8806         * html.c (htmlfindurl): Set PH to the first occurrence of `#'.
8807
8808 1998-09-25  Simon Munton  <simonm@m4data.co.uk>
8809
8810         * init.c (wgetrc_file_name): Don't free HOME under Windows.
8811
8812 1998-12-01  "R. K. Owen"  <rkowen@Nersc.GOV>
8813
8814         * host.c (store_hostaddress): Fix for big endian 64-bit machines.
8815
8816 1998-12-01  Hrvoje Niksic  <hniksic@srce.hr>
8817
8818         * url.c (UNSAFE_CHAR): New macro.
8819         (contains_unsafe): Use it.
8820         (encode_string): Ditto.
8821
8822 1998-12-01  Hrvoje Niksic  <hniksic@srce.hr>
8823
8824         * main.c (i18n_initialize): Use LC_MESSAGES only if available.
8825
8826 2000-03-31  Hrvoje Niksic  <hniksic@srce.hr>
8827
8828         * Use TOUPPER/TOLOWER.
8829
8830 1998-12-22  Alexander V. Lukyanov  <lav@yars.free.net>
8831
8832         * ftp-opie.c (btoe): Zero-terminate OSTORE.
8833
8834 2000-03-21  Hrvoje Niksic  <hniksic@iskon.hr>
8835
8836         * wget.h (DO_REALLOC_FROM_ALLOCA): Ditto.
8837
8838         * sysdep.h (ISALNUM): New macro.
8839         (TOLOWER): Ditto.
8840         (TOUPPER): Ditto.
8841
8842 2000-03-10  Dan Harkless  <wget@harkless.org>
8843
8844         * html.c (idmatch): Implemented checking of my new --follow-tags
8845         and --ignore-tags options.
8846         
8847         * init.c (commands): Added comment reminding people adding new
8848         entries doing allocation to add corresponding freeing in cleanup().
8849         (commands): Added new followtags and ignoretags commands.
8850         (cleanup): Free storage for new followtags and ignoretags.
8851         
8852         * main.c: Use of "comma-separated list" was random -- normalized
8853         it.  Did some alphabetization.  Added comments pointing out
8854         "Options without arguments" and "Options accepting an argument"
8855         sections of long_options[].  Added new options --follow-tags and
8856         -G / --ignore-tags.  Added comment that Damir's --referer is
8857         currently undocumented.  Added comment that Heiko's --waitretry is
8858         partially undocumented (mentioned in --help but not in
8859         wget.texi).  Moved improperly sorted 24, 129, and 'G' cases.
8860         
8861         * options.h (struct options): Added new fields follow_tags and
8862         ignore_tags. 
8863         
8864         * wget.h: Added "#define EQ 0" so we can say "strcmp(a, b) == EQ".
8865         
8866 2000-03-02  Dan Harkless  <wget@harkless.org>
8867
8868         * ftp.c (ftp_loop_internal): Heiko introduced "suggest explicit
8869         braces to avoid ambiguous `else'" warnings.  Eliminated them.
8870         
8871         * http.c (gethttp): Dan Berger's query string patch is totally
8872         bogus.  If you have two different URLs, gen_page.cgi?page1 and
8873         get_page.cgi?page2, they'll both be saved as get_page.cgi and the
8874         second will overwrite the first.  Also, parameters to implicit
8875         CGIs, like "http://www.host.com/db/?2000-03-02" cause the URLs to
8876         be printed with trailing garbage characters, and could seg fault.
8877         Backing out the patch, which Dan B. informed me by email was just
8878         a kludge to download StarOffice from Sun made necessary due to
8879         wget's unconditional escaping of certain characters (room for an
8880         option there?).
8881         (http_loop): Heiko introduced "suggest explicit braces to avoid
8882         ambiguous `else'" warnings.  Eliminated them.
8883         
8884         * main.c: Heiko's --wait / --waitretry backwards compatibility
8885         code looks to have been totally untested -- automatic variable
8886         'wr' was used without being initialized, and a long int was passed
8887         into setval()'s char* val parameter.
8888         
8889         * recur.c (parse_robots): Applied Edward J. Sabol
8890         <sabol@alderaan.gsfc.nasa.gov>'s patch for Guan Yang's reported
8891         problem with "User-agent:<space>*<space>" lines in robots.txt.
8892         
8893         * url.c (parseurl, str_url): Removing Dan Berger's code (see
8894         http.c above for explanation).
8895         
8896 1999-08-25  Heiko Herold  <Heiko.Herold@previnet.it>
8897
8898         * ftp.c: Respect new option waitretry.
8899
8900 2000-01-30  Damir Dzeko  <ddzeko@zesoi.fer.hr>
8901
8902         * http.c (gethttp): Send custom Referer, if required.
8903
8904 1999-09-24  Charles G Waldman  <cgw@fnal.gov>
8905
8906         * netrc.c (parse_netrc): Allow passwords to contain spaces.
8907
8908         * netrc.c (parse_netrc): New function.
8909
8910 1999-09-17  Dan Berger  <dberger@ix.netcom.com>
8911
8912         * http.c (gethttp): Send it.
8913
8914         * url.c (parseurl): Detect query string in HTTP URL-s.
8915         (str_url): Print it.
8916
8917 2000-03-02  HIROSE Masaaki  <hirose31@t3.rim.or.jp>
8918
8919         * html.c (html_allow): Add <link href=...> and <script src=...>.
8920
8921 1999-05-02  andrew deryabin  <djsf@softhome.net>
8922
8923         * http.c (gethttp): Specify port in `Host' header only if it's
8924         different from 80.
8925
8926 1998-11-03  Edward J. Sabol  <sabol@alderaan.gsfc.nasa.gov>
8927
8928         * recur.c (recursive_retrieve): If a finite maximum depth is
8929         specified, and we're are already at that depth, don't download the
8930         HTML file for parsing.
8931
8932 2000-03-01  Dan Harkless  <wget@harkless.org>
8933
8934         * ftp.c (ftp_loop_internal): Call new downloaded_file() function,
8935         even though we don't do conversion on HTML files retrieved via
8936         FTP, so _current_ usage of downloaded_file() makes this call unneeded. 
8937         (ftp_retrieve_list): Added a comment saying where we need to
8938         stat() a .orig file if FTP'd HTML file conversion is ever implemented.
8939         (ftp_retrieve_list): "Local file '%s' is more recent," is sometimes
8940         a lie -- reworded as "Server file no newer than local file '%s' --".
8941         
8942         * http.c (http_loop): Fixed a typo and clarified a comment.
8943         (http_loop): When -K and -N are specified together, compare size
8944         and timestamp of server file X against local file X.orig (if
8945         extant) rather than converted local file X.
8946         (http_loop): "Local file '%s' is more recent," is sometimes a lie
8947         -- reworded as "Server file no newer than local file '%s' --".
8948         (http_loop): Call new downloaded_file() function to prevent
8949         wrongful overwriting of .orig file when -N is specified.
8950         
8951         * url.c (convert_links): When -K specified, only rename X to
8952         X.orig if downloaded_file() returns TRUE.  Otherwise when we skip
8953         file X due to -N, we clobber an X.orig from a previous invocation.
8954         (convert_links): Call the failsafe xstrdup(), not the real strdup().
8955         (convert_links): Added a note asking anyone who understands how
8956         multiple URLs can correspond to a single file to comment it.
8957         (downloaded_file): Added this new function.
8958         
8959         * url.h (downloaded_file): Added prototype for this new function
8960         as well as its downloaded_file_t enum type.
8961
8962         * wget.h (boolean): Added this new typedef and TRUE and FALSE #defines.
8963
8964 2000-02-29  Dan Harkless  <wget@harkless.org>
8965
8966         * version.c: Upped version to developer-only "1.5.3+dev".
8967
8968 2000-02-18  Dan Harkless  <wget@harkless.org>
8969
8970         * init.c (backup_converted): Added this new option.
8971
8972         * main.c (-K / --backup-converted): Added this new option.
8973
8974         * options.h (backup_converted): Added this new option.
8975
8976         * url.c (convert_links): When backup_converted is specified, save
8977         file X as X.orig before converting.
8978
8979         * url.h (urlpos): Fixed typo -- said "Rekative" instead of "Relative".
8980
8981 1998-09-21  Hrvoje Niksic  <hniksic@srce.hr>
8982
8983         * version.c: Wget 1.5.3 is released.
8984
8985 1998-09-21  Hrvoje Niksic  <hniksic@srce.hr>
8986
8987         * host.c (ftp_getaddress): Don't warn when reverse-lookup of local 
8988         address doesn't yield FQDN.
8989
8990 1998-09-21  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
8991
8992         * cmpt.c (strerror): Fix declaration of sys_errlist.
8993
8994 1998-09-11  Hrvoje Niksic  <hniksic@srce.hr>
8995
8996         * main.c (main): Don't use an array subscript as the first
8997         argument to STRDUP_ALLOCA.
8998         From Kaveh R. Ghazi.
8999
9000 1998-09-11  Szakacsits Szabolcs  <szaka@sienet.hu>
9001
9002         * html.c (htmlfindurl): Download table background.
9003
9004 1998-09-11  Hans Grobler  <grobh@conde.ee.sun.ac.za>
9005
9006         * init.c (parse_line): Would free *com before allocating it.
9007         (parse_line): Would free com instead of *com.
9008
9009 1998-09-10  Howard Gayle  <howard@fjst.com>
9010
9011         * url.c (get_urls_html): Would drop the last character of the
9012         link.
9013
9014 1998-09-10  Hrvoje Niksic  <hniksic@srce.hr>
9015
9016         * http.c (http_loop): Don't print status code if quiet.
9017
9018 1998-09-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9019
9020         * log.c: Use <stdarg.h> only when __STDC__.
9021
9022 1998-09-10  Adam D. Moss  <adam@foxbox.org>
9023
9024         * html.c (htmlfindurl): Download <layer src=...>.
9025
9026 1998-09-10  Howard Gayle  <howard@fjst.com>
9027
9028         * ftp.c (ftp_retrieve_list): Don't update the time stamp of a file 
9029         not retrieved.
9030
9031 1998-06-27  Hrvoje Niksic  <hniksic@srce.hr>
9032
9033         * utils.c: Include <libc.h> on NeXT.
9034
9035 1998-06-26  Heinz Salzmann  <heinz.salzmann@intermetall.de>
9036
9037         * url.c (get_urls_html): Fix calculation of URL position.
9038
9039 1998-06-23  Hrvoje Niksic  <hniksic@srce.hr>
9040
9041         * version.c: Wget 1.5.2 is released.
9042
9043 1998-06-23  Dave Love  <d.love@dl.ac.uk>
9044
9045         * ftp.c, init.c, netrc.c: Include errno.h.
9046
9047         * http.c: Include errno.h and time header.
9048
9049         * Makefile.in (exext): Define.
9050         (install.bin, uninstall.bin): Use it.
9051
9052 1998-06-21  Hrvoje Niksic  <hniksic@srce.hr>
9053
9054         * http.c (http_loop): Don't attempt to compare local and remote
9055         sizes if the remote size is unknown.
9056
9057 1998-06-16  Hrvoje Niksic  <hniksic@srce.hr>
9058
9059         * url.c (get_urls_html): Use malloc() instead of alloca in the
9060         loop.
9061
9062 1998-06-13  Hrvoje Niksic  <hniksic@srce.hr>
9063
9064         * version.c: Wget 1.5.2-b4 is released.
9065
9066 1998-06-13  Hrvoje Niksic  <hniksic@srce.hr>
9067
9068         * url.c (get_urls_html): Ignore spaces before and after the URI.
9069
9070 1998-06-08  Wanderlei Antonio Cavassin  <cavassin@conectiva.com.br>
9071
9072         * ftp.c (getftp): Translate `done'.
9073
9074 1998-06-06  Hrvoje Niksic  <hniksic@srce.hr>
9075
9076         * version.c: Wget 1.5.2-b3 is released.
9077
9078 1998-06-06  Alexander Kourakos  <awk@bnt.com>
9079
9080         * init.c (cleanup): Close dfp, don't free it.
9081
9082 1998-06-06  Hrvoje Niksic  <hniksic@srce.hr>
9083
9084         * utils.c (make_directory): Twiddle.
9085
9086         * config.h.in: Added template for access().
9087
9088 1998-06-05  Mathieu Guillaume  <mat@cythere.com>
9089
9090         * html.c (htmlfindurl): Download <input src=...>
9091
9092 1998-06-03  Hrvoje Niksic  <hniksic@srce.hr>
9093
9094         * utils.c (file_exists_p): Use access() with two arguments.
9095
9096 1998-05-27  Martin Kraemer  <Martin.Kraemer@mch.sni.de>
9097
9098         * netrc.c (parse_netrc): Correct logic.
9099
9100 1998-05-27  Hrvoje Niksic  <hniksic@srce.hr>
9101
9102         * ftp.c (getftp): Added `break'; suggested by Lin Zhe Min
9103         <ljm@ljm.wownet.net>.
9104
9105 1998-05-24  Hrvoje Niksic  <hniksic@srce.hr>
9106
9107         * version.c: Wget 1.5.2-b2 is released.
9108
9109 1998-05-18  Juan Jose Rodriguez  <jcnsoft@jal1.telmex.net.mx>
9110
9111         * mswindows.h: Don't translate mkdir to _mkdir under Borland.
9112
9113 1998-05-17  Hrvoje Niksic  <hniksic@srce.hr>
9114
9115         * retr.c (elapsed_time): Return correct value when
9116         HAVE_GETTIMEOFDAY is undefined.
9117
9118 1998-05-13  Hrvoje Niksic  <hniksic@srce.hr>
9119
9120         * version.c: Wget 1.5.2-b1 is released.
9121
9122 1998-05-08  Hrvoje Niksic  <hniksic@srce.hr>
9123
9124         * getopt.c (_getopt_internal): Use exec_name instead of argv[0].
9125         (_getopt_internal): Don't translate `#if 0'-ed strings.
9126
9127 1998-05-06  Douglas E. Wegscheid  <wegscd@whirlpool.com>
9128
9129         * mswindows.c (ws_handler): Use fork_to_background().
9130
9131 1998-05-05  Hrvoje Niksic  <hniksic@srce.hr>
9132
9133         * version.c: Wget 1.5.1 is released.
9134
9135 1998-05-05  Hrvoje Niksic  <hniksic@srce.hr>
9136
9137         * http.c (parse_http_status_line): Avoid `minor' and `major'
9138         names.
9139
9140 1998-05-02  Hrvoje Niksic  <hniksic@srce.hr>
9141
9142         * utils.c (mkdirhier): Renamed to make_directory.
9143
9144 1998-05-01  Hrvoje Niksic  <hniksic@srce.hr>
9145
9146         * mswindows.c (fork_to_background): Define under Windows.
9147
9148         * utils.c (fork_to_background): New function.
9149
9150         * html.c (htmlfindurl): Removed rerdundant casts.
9151
9152 1998-05-01  Douglas E. Wegscheid  <wegscd@whirlpool.com>
9153
9154         * mswindows.c (ws_mypath): Cache the path.
9155
9156 1998-04-30  Douglas E. Wegscheid  <wegscd@whirlpool.com>
9157
9158         * ftp.h: Prefix enum ftype members with FT_.
9159
9160         * ftp-ls.c, ftp.c, html.h: Adjust accordingly.
9161
9162         * mswindows.h: Use stat under Borland, _stat under MSVC.
9163
9164 1998-04-28  Hrvoje Niksic  <hniksic@srce.hr>
9165
9166         * http.c (known_authentication_scheme_p): New function.
9167         (gethttp): Handle authorization more correctly.
9168
9169         * ftp-basic.h: Removed.
9170
9171         * cmpt.h: Removed.
9172
9173         * utils.c: Include <unistd.h> before <pwd.h>; needed under SunOS
9174         with gcc 2.8.
9175         (numdigit): Use `while' loop.
9176
9177         * http.c (create_authorization_line): Detect authentication
9178         schemes case-insensitively.
9179
9180         * http.c (extract_header_attr): Use strdupdelim().
9181         (digest_authentication_encode): Move declaration of local
9182         variables to smaller scope.
9183         (digest_authentication_encode): Reset REALM, OPAQUE and NONCE.
9184         (create_authorization_line): Detect authentication schemes
9185         case-insensitively.
9186
9187         * utils.c (touch): Constify.
9188
9189         * http.c (gethttp): Report a nicer error when no data is received.
9190
9191         * rbuf.h (RBUF_READCHAR): Ditto.
9192
9193         * ftp-basic.c (ftp_response): Use sizeof.
9194
9195 1998-04-27  Hrvoje Niksic  <hniksic@srce.hr>
9196
9197         * retr.c (print_percentage): EXPECTED is long, not int.
9198         (print_percentage): Use floating-point arithmetic to avoid
9199         overflow with large files' sizes multiplied with 100.
9200
9201 1998-04-27  Gregor Hoffleit  <flight@mathi.uni-heidelberg.de>
9202
9203         * config.h.in: Added pid_t stub.
9204
9205         * sysdep.h (S_ISREG): Moved here from mswindows.h (NeXT doesn't
9206         define it).
9207
9208 1998-04-20  Hrvoje Niksic  <hniksic@srce.hr>
9209
9210         * version.c: Wget 1.5.0 is released.
9211
9212 1998-04-18  Hrvoje Niksic  <hniksic@srce.hr>
9213
9214         * url.c (str_url): Ditto.
9215
9216         * ftp-basic.c (ftp_rest): Use new name.
9217
9218         * utils.c (long_to_string): Renamed from prnum().
9219
9220 1998-04-16  Hrvoje Niksic  <hniksic@srce.hr>
9221
9222         * version.c: Wget 1.5-b17 is released.
9223
9224 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
9225
9226         * headers.c (header_get): New argument FLAGS.
9227
9228         * http.c (gethttp): If request is malformed, bail out of the
9229         header loop.
9230         (gethttp): Check for empty header *after* the status line checks.
9231         (gethttp): Disallow continuations for status line.
9232
9233 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
9234
9235         * version.c: Wget 1.5-b16 is released.
9236
9237 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
9238
9239         * init.c (commands): Renamed `always_rest' to `continue'.
9240
9241 1998-04-05  Hrvoje Niksic  <hniksic@srce.hr>
9242
9243         * all: Use it.
9244
9245         * log.c (logputs): New argument.
9246         (logvprintf): Ditto.
9247         (logprintf): Ditto.
9248
9249 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
9250
9251         * http.c (http_atotm): Update comment.
9252
9253         * main.c (i18n_initialize): Set LC_MESSAGES, not LC_ALL.
9254
9255         * wget.h: Renamed ENABLED_NLS to HAVE_NLS.
9256
9257         * main.c (i18n_initialize): New function.
9258         (main): Use it.
9259
9260         * log.c: Include <unistd.h>.
9261
9262         * retr.c (show_progress): Cast alloca to char *.
9263
9264 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
9265
9266         * version.c: Wget 1.5-b15 is released.
9267
9268 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
9269
9270         * utils.h: Declare file_non_directory_p().
9271
9272 1998-04-03  Hrvoje Niksic  <hniksic@srce.hr>
9273
9274         * main.c (main): It's `tries', not `numtries' now.
9275
9276 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
9277
9278         * init.c (getperms): Removed.
9279
9280 1998-04-01  Tim Charron  <tcharron@interlog.com>
9281
9282         * log.c (logvprintf): Don't use ARGS twice.
9283
9284 1998-04-01  John  <john@futuresguide.com>
9285
9286         * mswindows.c: Cleaned up.
9287
9288 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
9289
9290         * version.c: Wget 1.5-b14 is released.
9291
9292 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
9293
9294         * ftp-opie.c (STRLEN4): New macro.
9295         (btoe): Use it.
9296
9297 1998-04-01  Junio Hamano  <junio@twinsun.com>
9298
9299         * http.c: Document all the Digest functions.
9300
9301 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
9302
9303         * utils.c (file_non_directory_p): Renamed from isfile().
9304
9305         * mswindows.h (S_ISREG): New macro, suggested by Tim Adam.
9306
9307 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
9308
9309         * utils.c (mkdirhier): Use 0777 instead of opt.dirmode.
9310
9311         * init.c (cmd_spec_dotstyle): Use 48 dots per line for binary
9312         style.
9313         (cmd_permissions): Removed.
9314
9315         * config.h.in: Add template for WORDS_BIGENDIAN.
9316
9317 1998-03-31  Junio Hamano  <junio@twinsun.com>
9318
9319         * http.c (HEXD2asc): New macro.
9320         (dump_hash): Use it.
9321
9322 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
9323
9324         * version.c: Wget 1.5-b13 is released.
9325
9326 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
9327
9328         * main.c (main): Don't try to use `com'.
9329
9330 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
9331
9332         * init.c (cmd_permissions): New function.
9333
9334 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
9335
9336         * version.c: Wget 1.5-b12 is released.
9337
9338 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
9339
9340         * init.c (commands): Renamed `numtries' to `tries'.
9341         (cmd_spec_debug): Removed.
9342         (home_dir): Under Windows, return `C:\' if HOME is undefined.
9343
9344 1998-03-29  Hrvoje Niksic  <hniksic@srce.hr>
9345
9346         * config.h.in: Define _XOPEN_SOURCE.
9347
9348         * init.c (check_user_specified_header): New function.
9349         (cmd_spec_header): Use it.
9350         (cmd_spec_useragent): New function.
9351
9352 1998-03-29  Hrvoje Niksic  <hniksic@srce.hr>
9353
9354         * version.c: Wget 1.5-b11 is released.
9355
9356 1998-03-28  Hrvoje Niksic  <hniksic@srce.hr>
9357
9358         * wget.h: Include <libintl.h> only if NLS is enabled.
9359
9360 1998-03-26  Hrvoje Niksic  <hniksic@srce.hr>
9361
9362         * options.h (struct options): Made `wait' a long.
9363         (struct options): Ditto for `timeout'.
9364
9365 1998-03-19  Hrvoje Niksic  <hniksic@srce.hr>
9366
9367         * utils.c (exists): Renamed to file_exists_p.
9368         (file_exists_p): Use access() if available.
9369
9370 1998-03-17  Hrvoje Niksic  <hniksic@srce.hr>
9371
9372         * utils.c (memfatal): Set save_log_p to 0 to avoid potential
9373         infloop.
9374
9375         * log.c: do_logging -> save_log_p.
9376
9377         * config.h.in: Added template for HAVE_VSNPRINTF.
9378
9379 1998-03-16  Hrvoje Niksic  <hniksic@srce.hr>
9380
9381         * init.c: Ditto.
9382
9383         * http.c: Protect declaration against non-ANSI compiler.
9384
9385         * log.c (logvprintf): Use vsnprintf() if available.
9386
9387         * getopt.c (main): Don't translate test stuff.
9388
9389 1998-03-16  Hrvoje Niksic  <hniksic@srce.hr>
9390
9391         * version.c: Wget 1.5-b10 is released.
9392
9393 1998-03-11  Hrvoje Niksic  <hniksic@srce.hr>
9394
9395         * ftp.c (getftp): Don't translate "CWD %s".
9396
9397         * wget.h (GCC_FORMAT_ATTR): Renamed from FORMAT_ATTR.
9398
9399 1998-03-07  Hrvoje Niksic  <hniksic@srce.hr>
9400
9401         * ftp-opie.c (btoe): Use memcpy() instead of strncat().
9402
9403         * log.c (logputs): New function.
9404         (logvprintf): Renamed from vlogmsg; use logputs().
9405
9406         * retr.c (show_progress): Print `[100%]' when the retrieval is
9407         finished.
9408
9409         * init.c (run_wgetrc): Use FILE, not PATH.
9410         (wgetrc_file_name): Ditto.
9411
9412 1998-03-07  Tim Adam  <tma@osa.com.au>
9413
9414         * recur.c (parse_robots): Correctly reset `entries' on empty
9415         disallow.
9416
9417 1998-03-07  Hrvoje Niksic  <hniksic@srce.hr>
9418
9419         * init.c (cmd_spec_debug): Use cmd_boolean().
9420
9421 1998-02-23  Hrvoje Niksic  <hniksic@srce.hr>
9422
9423         * http.c (gethttp): Create proxy-authorization correctly.
9424
9425 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
9426
9427         * md5.c: Ditto.
9428
9429         * getopt.c: Use ANSI function definitions.
9430
9431         * ftp-opie.c: New file.
9432
9433         * options.h: Don't redefine EXTERN.
9434
9435         * init.c: Sort it correctly.
9436
9437 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
9438
9439         * version.c: Wget 1.5-b9 is released.
9440
9441 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
9442
9443         * recur.c (recursive_retrieve): Reset `first_time'.
9444
9445         * ftp.c (getftp): Added `default' clause to switches of uerr_t.
9446
9447         * rbuf.c (rbuf_peek): Simplified.
9448         (rbuf_flush): Use MINVAL.
9449
9450         * wget.h (MINVAL): Moved from url.h.
9451
9452         * rbuf.h (RBUF_FD): New macro.
9453
9454         * url.c (add_url): Add to the head of the list.
9455
9456         * ftp.c (ftp_retrieve_list): Set the permissions to downloaded
9457         file.
9458         (getftp): Set the default permissions to 0600.
9459
9460 1998-02-21  Hrvoje Niksic  <hniksic@srce.hr>
9461
9462         * url.c (get_urls_html): Ditto.
9463         (convert_links): Ditto.
9464
9465         * recur.c (parse_robots): Ditto.
9466
9467         * html.c (ftp_index): Ditto.
9468
9469         * ftp-ls.c (ftp_parse_unix_ls): Open file as binary.
9470
9471         * init.c (defaults): Initialize `opt' to zero via memset.
9472
9473         * http.c (digest_authentication_encode): goto considered harmful.
9474
9475 1998-02-19  Hrvoje Niksic  <hniksic@srce.hr>
9476
9477         * ftp.c (delelement): Simplify and fix leak.
9478
9479 1998-02-18  Hrvoje Niksic  <hniksic@srce.hr>
9480
9481         * http.c (dump_hash): Use HEXD2ASC instead of home-grown stuff.
9482
9483         * url.h (HEXD2ASC): Removed warning.
9484
9485         * init.c (comind): Use binary search.
9486         (commands): Reorganized.
9487         (setval): Ditto.
9488         (cmd_boolean): New function.
9489         (cmd_number): Ditto.
9490         (cmd_number_inf): Ditto.
9491         (cmd_string): Ditto.
9492         (cmd_vector): Ditto.
9493         (cmd_directory_vector): Ditto.
9494         (cmd_bytes): Ditto.
9495         (cmd_time): Ditto.
9496         (cmd_spec_debug): Ditto.
9497         (cmd_spec_dirmode): Ditto.
9498         (cmd_spec_dirstruct): Ditto.
9499         (cmd_spec_dotstyle): Ditto.
9500         (cmd_spec_header): Ditto.
9501         (cmd_spec_htmlify): Ditto.
9502         (cmd_spec_mirror): Ditto.
9503         (cmd_spec_outputdocument): Ditto.
9504         (cmd_spec_recursive): Ditto.
9505         (settime): Merged with cmd_time().
9506         (setbytes): Merged with cmd_bytes().
9507         (setonoff): Merged with cmd_boolean().
9508         (onoff): Ditto.
9509
9510 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
9511
9512         * Makefile.in (distclean): Remove `config.h'.
9513
9514 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
9515
9516         * version.c: Wget 1.5-b8 is released.
9517
9518 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
9519
9520         * http.c (digest_authentication_encode): New function.
9521         (create_authorization_line): Use it.
9522         (dump_hash): New function.
9523         (digest_authentication_encode): Use it.
9524
9525         * fnmatch.c: Renamed from `mtch.c'.
9526
9527 1998-02-15  Karl Eichwalder  <ke@suse.de>
9528
9529         * main.c (main): Tag "Written by..." string as translatable.
9530
9531 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
9532
9533         * wget.h (FREE_MAYBE): New macro.
9534
9535         * http.c (create_authorization_line): Don't use ANSI C string
9536         concatenation feature.
9537         (basic_authentication_encode): Use alloca() for temporary
9538         variables.
9539
9540         * recur.h: Ditto.
9541
9542         * http.c: Ditto.
9543
9544         * headers.h: Ditto.
9545
9546         * ftp-basic.c: Protect declaration against non-ANSI compiler.
9547
9548         * http.c (create_authorization_line): Cast `unsigned char *' to
9549         `char *' for sprintf, to shut up the noisy Digital Unix cc.
9550
9551 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
9552
9553         * version.c: Wget 1.5-b7 is released.
9554
9555 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
9556
9557         * cmpt.c (strstr): Synched with glibc-2.0.6.
9558
9559         * ftp-basic.c (calculate_skey_response): Ditto.
9560         (calculate_skey_response): Use alloca().
9561
9562         * http.c (create_authorization_line): Work with FSF's version of
9563         md5.c.
9564
9565         * md5.c: New file, from GNU libc.
9566
9567 1998-02-14  Hrvoje Niksic  <hniksic@srce.hr>
9568
9569         * url.h (URL_CLEANSE): Name the temporary variable more carefully.
9570
9571 1998-02-13  Hrvoje Niksic  <hniksic@srce.hr>
9572
9573         * http.c (basic_authentication_encode): New function, instead of
9574         the macro.
9575
9576 1998-02-13  Junio Hamano  <junio@twinsun.com>
9577
9578         * http.c: Add HTTP-DA support.
9579         * ftp-basic.c: Add Opie/S-key support.
9580         * config.h.in, Makefile.in: Add HTTP-DA and Opie/S-key support.
9581         * md5.c, md5.h: New files.
9582
9583 1998-02-13  Hrvoje Niksic  <hniksic@srce.hr>
9584
9585         * http.c (http_process_range): Renamed from hprocrange().
9586         (http_process_range): Parse the whole header.
9587
9588         * headers.c: New file.
9589         (header_process): New function.
9590         (header_get): Renamed from fetch_next_header.
9591
9592         * all: Include utils.h only where necessary.
9593
9594         * wget.h: Declare xmalloc(), xrealloc() and xstrdup() here.
9595
9596         * wget.h: Add provisions for dmalloc.
9597
9598 1998-02-12  Hrvoje Niksic  <hniksic@srce.hr>
9599
9600         * version.c: Wget 1.5-b6 is released.
9601
9602 1998-02-12  Hrvoje Niksic  <hniksic@srce.hr>
9603
9604         * ftp.c (ftp_loop): Determine `filename' more precisely.
9605
9606         * init.c (setval): Don't set `opt.quiet' if output-document is
9607         `-'.
9608
9609         * log.c (log_init): Print to STDERR instead of STDOUT.
9610         (vlogmsg): Use STDERR by default.
9611         (logflush): Ditto.
9612
9613 1998-02-11  Simon Josefsson  <jas@pdc.kth.se>
9614
9615         * host.c: Use addr_in again.
9616
9617 1998-02-08  Karl Eichwalder  <karl@suse.de>
9618
9619         * http.c (gethttp): Fixed typo.
9620
9621 1998-02-08  Hrvoje Niksic  <hniksic@srce.hr>
9622
9623         * version.c: Wget 1.5-b5 is released.
9624
9625 1998-02-08  Hrvoje Niksic  <hniksic@srce.hr>
9626
9627         * retr.c (show_progress): Use it.
9628
9629         * log.c (logflush): New function.
9630
9631         * wget.h: Utilize __attribute__ if on gcc.
9632
9633 1998-02-07  Hrvoje Niksic  <hniksic@srce.hr>
9634
9635         * http.c (base64_encode_line): New argument LENGTH.
9636         (BASIC_AUTHENTICATION_ENCODE): Use it.
9637         (BASIC_AUTHENTICATION_ENCODE): Take length of HEADER into account.
9638
9639         * main.c (main): Fixed fprintf() format mismatch.
9640
9641 1998-02-06  Hrvoje Niksic  <hniksic@srce.hr>
9642
9643         * version.c: Wget 1.5-b4 is released.
9644
9645 1998-02-03  Simon Josefsson  <jas@pdc.kth.se>
9646
9647         * host.c: use sockaddr_in instead of addr_in.
9648
9649 1998-02-04  Hrvoje Niksic  <hniksic@srce.hr>
9650
9651         * init.c (cleanup): Use it.
9652
9653         * recur.c (recursive_cleanup): New function.
9654
9655         * retr.c (retrieve_from_file): Ditto.
9656
9657         * main.c (main): Use it.
9658
9659         * recur.c (recursive_reset): New function.
9660
9661         * retr.c (retrieve_from_file): Ditto.
9662
9663         * main.c (main): Simplify call to recursive_retrieve().
9664
9665         * recur.c (recursive_retrieve): Removed FLAGS argument.
9666
9667         * http.c (gethttp): Changed call to iwrite().
9668
9669 1998-02-03  Hrvoje Niksic  <hniksic@srce.hr>
9670
9671         * url.c (get_urls_html): Ditto.
9672         (free_urlpos): Ditto.
9673         (mkstruct): Ditto.
9674         (construct): Ditto.
9675
9676         * retr.c (retrieve_url): Move declaration of local variables to
9677         smaller scope.
9678
9679         * url.c (urlproto): Use it.
9680         (parseurl): Ditto.
9681         (str_url): Ditto.
9682         (get_urls_html): Ditto.
9683
9684         * utils.h (ARRAY_SIZE): New macro.
9685
9686         * url.c (proto): Moved from url.h.
9687
9688         * url.h (URL_CLEANSE): Reformatted.
9689         (USE_PROXY_P): Renamed from USE_PROXY.
9690
9691         * ftp-basic.c: Adjust to the new interface of iwrite().
9692
9693         * ftp-basic.c (ftp_port): Use alloca().
9694
9695 1998-02-03  Hrvoje Niksic  <hniksic@srce.hr>
9696
9697         * version.c: Wget 1.5-b3 is released.
9698
9699         * host.c (ftp_getaddress): Don't print to stderr directly.
9700
9701         * init.c (setbytes): Support `g' for gigabytes.
9702         (cmdtype): New specification CTIME.
9703         (setval): Use it with settime().
9704         (commands): Use it for WAIT and TIMEOUT.
9705
9706 1998-02-02  Hrvoje Niksic  <hniksic@srce.hr>
9707
9708         * http.c (BASIC_AUTHENTICATION_ENCODE): New macro.
9709         (gethttp): Use it.
9710
9711         * utils.c (unique_name_1): Moved from url.c.
9712         (unique_name): Ditto.
9713
9714         * url.c (url_filename): Ditto.
9715
9716         * log.c (redirect_output): Changed call to unique_name().
9717
9718         * url.c (unique_name_1): Renamed from unique_name().
9719         (unique_name): Changed interface.
9720
9721         * init.c (enum cmdid): Moved from init.h.
9722         (cmdtype): Ditto.
9723         (struct cmd): Ditto.
9724
9725         * main.c (main): Use it.
9726         (main): Moved `--backups' to not have a short option.
9727
9728         * options.h (struct options): New member BACKGROUND.
9729
9730         * main.c (print_help): Rearranged.
9731         (main): New long options for -n* short options: --no-directories,
9732         --no-host-directories, --non-verbose, --no-host-lookup and
9733         --dont-remove-listing.
9734
9735 1998-02-01  Hrvoje Niksic  <hniksic@srce.hr>
9736
9737         * main.c (main): Use log_close().
9738
9739         * log.c: New variable LOGFP.
9740         (vlogmsg): Use it.
9741         (redirect_output): Don't open /dev/null; set LOGFP to stdin
9742         instead.
9743         (log_close): New function.
9744
9745         * options.h (struct options): Removed LFILE.
9746
9747         * log.c (log_enable): Removed.
9748
9749         * main.c (main): Use it.
9750
9751         * log.c (log_init): New function.
9752
9753         * url.c (get_urls_html): Removed needless assignment to BASE.
9754
9755         * host.c (add_hlist): Don't set CMP needlessly.
9756
9757         * utils.c (match_backwards): Ditto.
9758         (in_acclist): Ditto.
9759
9760         * url.c (findurl): Ditto.
9761
9762         * netrc.c (parse_netrc): Ditto.
9763
9764         * log.c (log_dump): Ditto.
9765
9766         * html.c (html_quote_string): Ditto.
9767
9768         * ftp-basic.c (ftp_request): Made static.
9769
9770         * connect.c: Made global variables static.
9771
9772         * url.c (construct): Ditto.
9773
9774         * init.c (init_path): Avoid assignment inside `if'-condition.
9775
9776         * ftp.c: Don't include in.h or winsock.h.
9777
9778         * ftp.c (ftp_loop): Use SZ.
9779
9780         * connect.c (bindport): Cast &addrlen to int *.
9781         (conaddr): Ditto.
9782
9783         * init.c (initialize): Don't use SYSTEM_WGETRC unconditionally.
9784
9785 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
9786
9787         * ftp.c (getftp): Initialize opt.ftp_pass here.
9788         (ftp_retrieve_dirs): Use alloca().
9789
9790         * init.c (defaults): Don't initialize opt.ftp_pass.
9791
9792         * sysdep.h (S_ISLNK): Declare for OS/2; ditto for lstat.
9793         From Ivan F. Martinez <ivanfm@ecodigit.com.br>.
9794
9795 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
9796
9797         * recur.c (parse_robots): Check for comments more correctly.
9798
9799         * host.c (ftp_getaddress): Use STRDUP_ALLOCA.
9800         (ftp_getaddress): Add diagnostics when reverse-lookup yields only
9801         hostname.
9802
9803 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
9804
9805         * version.c: Wget 1.5-b2 is released.
9806
9807         * netrc.c (NETRC_FILE_NAME): Moved from netrc.h.
9808
9809         * utils.c (proclist): Pass FNM_PATHNAME to fnmatch().
9810
9811         * ftp-basic.c (ftp_pasv): Avoid unnecessary casting to unsigned
9812         char.
9813
9814         * log.c: Don't attempt to hide arguments from ansi2knr.
9815
9816         * cmpt.c: Synched strptime() and mktime() with glibc-2.0.6.
9817
9818         * ansi2knr.c: Use a later version, from fileutils-3.16l alpha.
9819
9820         * ftp.c (getftp): Ditto.
9821
9822         * http.c (gethttp): Use it.
9823
9824         * retr.c (get_contents): New argument EXPECTED; pass it to
9825         show_progress().
9826         (show_progress): New argument EXPECTED; use it to display
9827         percentages.
9828
9829         * init.c (setval): Ditto.
9830
9831         * http.c (gethttp): Ditto.
9832         (http_loop): Ditto.
9833
9834         * ftp.c (getftp): Ditto.
9835         (ftp_loop_internal): Ditto.
9836
9837         * ftp-ls.c (ftp_parse_unix_ls): Use abort() instead of assert(0).
9838
9839         * sysdep.h (CLOSE): Simplify; use DEBUGP.
9840
9841         * netrc.c (search_netrc): Use alloca().
9842
9843         * init.c (defaults): Initialize no_flush.
9844
9845         * log.c (vlogmsg): Don't flush if no_flush.
9846
9847         * options.h (struct options): New variable no_flush.
9848
9849         * main.c (main): Don't play games with buffering.
9850
9851         * log.c (vlogmsg): Flush the output after every message.
9852
9853 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
9854
9855         * init.c (parse_line): Ditto.
9856
9857         * url.c (get_urls_html): Ditto.
9858
9859         * main.c (main): Don't cast to unsigned char.
9860
9861         * init.c (run_wgetrc): Don't cast to unsigned char.
9862         (parse_line): Accept char instead of unsigned char.
9863
9864         * html.c (htmlfindurl): Use char instead of unsigned char.
9865
9866         * all: Use them.
9867
9868         * sysdep.h: Add wrappers to ctype macros to make them
9869         eight-bit-clean:
9870
9871 1998-01-30  Hrvoje Niksic  <hniksic@srce.hr>
9872
9873         * html.c (htmlfindurl): Download <img lowsrc=...>
9874
9875         * main.c (main): Ignore SIGPIPE.
9876
9877         * connect.c (select_fd): New argument WRITEP.
9878         (iwrite): Call select_fd().
9879
9880 1997-02-27  Fila Kolodny <fila@ibi.com>
9881
9882         * ftp.c (ftp_retrieve_list): If retrieving symlink and the proper
9883         one already exists, just skip it.
9884
9885 1998-01-30  Hrvoje Niksic  <hniksic@srce.hr>
9886
9887         * http.c (gethttp): Cosmetic changes.
9888
9889         * http.c (check_end): Allow `+D...' instead of `GMT'.
9890         From Fabrizio Pollastri <pollastri@cstv.to.cnr.it>.
9891
9892         * url.c (process_ftp_type): New function.
9893         (parseurl): Use it.
9894
9895         * connect.c (iwrite): Allow writing in a few chunks.
9896         (bindport): Made SRV static, so addr can point to it.
9897         (select_fd): Removed HPUX kludge.
9898
9899         * host.c (free_hlist): Incorporated into clean_hosts().
9900
9901 1998-01-29  Hrvoje Niksic  <hniksic@srce.hr>
9902
9903         * host.c (hlist): Made static.
9904         (search_address): Cosmetic change.
9905
9906 1998-01-29  Hrvoje Niksic  <hniksic@srce.hr>
9907
9908         * version.c: Wget v1.5-b1 is released.
9909
9910         * http.c (hgetlen): Use sizeof() to get the header length.
9911         (hgetrange): Ditto.
9912         (hgettype): Ditto.
9913         (hgetlocation): Ditto.
9914         (hgetmodified): Ditto.
9915         (haccepts_none): Ditto.
9916
9917         * main.c (main): Updated `--version' and `--help' output, as per
9918         Francois Pinard's suggestions.
9919
9920         * main.c: Include locale.h; call setlocale(), bindtextdomain() and 
9921         textdomain().
9922
9923         * config.h.in: Define stubs for I18N3.
9924
9925         * wget.h: Include libintl.h.
9926
9927 1998-01-28  Hrvoje Niksic  <hniksic@srce.hr>
9928
9929         * url.c (mkstruct): Check for opt.cut_dirs.
9930         (mkstruct): alloca()-te more, xmalloc() less.
9931
9932         * utils.c (load_file): Check for ferror().
9933
9934         * url.c (get_urls_file): Close only the files we opened.
9935         (get_urls_html): Ditto.
9936         (count_slashes): New function.
9937
9938         * http.h: Removed.
9939
9940         * http.c (gethttp): Respect username and password provided by
9941         proxy URL.
9942         (base64_encode_line): Write into an existing buffer instead of
9943         malloc-ing a new one.
9944         (struct http_stat): Moved from http.h
9945
9946         * retr.c (retrieve_url): Free SUF.
9947
9948         * all: Removed lots of unnecessary .h dependencies.
9949
9950         * html.c (global_state): Made static.
9951
9952         * utils.h (ALLOCA_ARRAY): New macro.
9953
9954         * main.c (main): New option `--cut-dirs'.
9955
9956         * url.c (construct): Use alloca() for T.
9957
9958         * utils.c (mkdirhier): Use STRDUP_ALLOCA.
9959
9960         * host.c (_host_t): Moved from host.h.
9961         (struct host): Renamed from _host_t.
9962         (store_hostaddress): Use STRDUP_ALLOCA for INET_S.
9963         (realhost): Ditto.
9964
9965         * host.h: Don't include url.h.
9966
9967         * ftp.c (LIST_FILENAME): Moved from ftp.h.
9968
9969         * init.c (DEFAULT_FTP_ACCT): Moved from ftp.h.
9970
9971         * main.c (main): Enable log if the output goes to a TTY.
9972
9973         * connect.h: Removed unused constant `BACKLOG'.
9974
9975         * config.h.in: Check for isatty().
9976
9977         * Makefile.in (LINK): Use CFLAGS when linking.
9978
9979 1998-01-27  Hrvoje Niksic  <hniksic@srce.hr>
9980
9981         * mswindows.c (ws_hangup): Use redirect_output().
9982
9983         * main.c (redirect_output_signal): New function; use
9984         redirect_output().
9985
9986         * log.c (redirect_output): New function, based on hangup(), which
9987         is deleted.
9988
9989         * log.c (vlogmsg): New function.
9990
9991         * wget.h (DEBUGP): Use debug_logmsg().
9992
9993         * main.c (hangup): Use it.
9994
9995         * log.c (log_dump): New function.
9996
9997         * utils.h (DO_REALLOC): Use `long' for various sizes.
9998
9999         * http.c (hskip_lws): Use `while', for clarity.
10000         (HTTP_DYNAMIC_LINE_BUFFER): New constant.
10001         (fetch_next_header): Use it instead of DYNAMIC_LINE_BUFFER.
10002
10003         * ftp-basic.c (FTP_DYNAMIC_LINE_BUFFER): New constant.
10004         (ftp_response): Use it instead of DYNAMIC_LINE_BUFFER.
10005
10006         * utils.c (DYNAMIC_LINE_BUFFER): Moved from utils.c.
10007         (LEGIBLE_SEPARATOR): Ditto.
10008         (FILE_BUFFER_SIZE): Ditto.
10009
10010         * retr.c (BUFFER_SIZE): Moved from retr.h.
10011
10012         * log.c: New file.
10013         (logmsg): Moved from utils.c.
10014         (debug_logmsg): New function.
10015
10016         * mswindows.h: Include it here.
10017
10018         * init.c: Ditto.
10019
10020         * utils.c: Don't include <windows.h>.
10021
10022 1998-01-25  Hrvoje Niksic  <hniksic@srce.hr>
10023
10024         * host.c (ftp_getaddress): Ditto.
10025
10026         * main.c (main): Use it.
10027
10028         * utils.h (STRDUP_ALLOCA): New macro.
10029
10030         * init.c: Prepend `wget: ' to error messages printed on stderr.
10031
10032         * utils.c (mkdirhier): Renamed from mymkdir.
10033         (touch): Renamed from my_touch.
10034         (pwd_cuserid): Renamed from my_cuserid().
10035
10036 1998-01-24  Andy Eskilsson  <andy.eskilsson@telelogic.se>
10037
10038         * utils.c (accdir): Process wildcards.
10039         (proclist): New function.
10040         (accdir): Use it to avoid code repetition.
10041
10042 1998-01-24  Hrvoje Niksic  <hniksic@srce.hr>
10043
10044         * recur.c (parse_robots): Respect opt.useragent; use alloca().
10045
10046         * http.c (gethttp): Construct useragent accordingly.
10047
10048         * version.c: Changed version string to numbers-only.
10049
10050         * main.c (print_help): List all the options.
10051
10052         * mswindows.c (windows_main_junk): Initialize argv0 here.
10053
10054 1998-01-24  Karl Heuer  <kwzh@gnu.org>
10055
10056         * netrc.c (search_netrc): Initialize `l' only after processing
10057         netrc.
10058
10059         * main.c (main): Don't trap SIGHUP if it's being ignored.
10060
10061 1998-01-24  Hrvoje Niksic  <hniksic@srce.hr>
10062
10063         * all: Use logmsg().
10064
10065         * utils.c (time_str): Moved from retr.c.
10066         (logmsg): New function.
10067         (logmsg_noflush): Ditto.
10068
10069         * rbuf.c: New file, moved buf_* functions here.
10070
10071         * ftp.c (ftp_expected_bytes): Moved from ftp-basic.c.
10072
10073         * ftp-basic.c (ftp_rest): Use prnum().
10074
10075         * ftp-basic.c: Ditto.
10076
10077         * ftp.c: Use the new reading functions and macros.
10078
10079         * retr.c (buf_initialize): New function.
10080         (buf_initialized_p): Ditto.
10081         (buf_uninitialize): Ditto.
10082         (buf_fd): Ditto.
10083
10084         * http.c (fetch_next_header): Use the BUF_READCHAR macro for
10085         efficiency.
10086         (gethttp): Use alloca() where appropriate.
10087
10088         * retr.c (buf_readchar): Use it.
10089         (buf_peek): Use rstreams.
10090
10091         * retr.h (BUF_READCHAR): New macro.
10092
10093         * init.c (home_dir): Rewritten for clarity.
10094         (init_path): Ditto.
10095
10096         * mswindows.c (ws_backgnd): Made static.
10097         (read_registry): Ditto.
10098         (ws_cleanup): Ditto.
10099         (ws_handler): Ditto.
10100
10101 1998-01-23  Hrvoje Niksic  <hniksic@srce.hr>
10102
10103         * alloca.c: New file.
10104
10105         * Makefile.in (ALLOCA): Define.
10106
10107         * mswindows.c (ws_help): Constify.
10108         (ws_help): Use alloca.
10109
10110         * mswindows.c: Reformat.
10111
10112         * all: Added _(...) annotations for I18N snarfing and translation.
10113
10114         * host.c (ftp_getaddress): Nuke SYSINFO.
10115         (ftp_getaddress): Don't use getdomainname().
10116         (ftp_getaddress): Use uname(), where available.
10117
10118         * http.c (gethttp): Protect a stray fprintf().
10119
10120         * init.c (settime): New function.
10121         (setval): Treat WAIT specially, allowing suffixes like `m' for
10122         minutes, etc.
10123
10124 1998-01-21  Hrvoje Niksic  <hniksic@srce.hr>
10125
10126         * url.c (get_urls_html): Use alloca() for TEMP.
10127
10128 1998-01-21  Jordan Mendelson  <jordy@wserv.com>
10129
10130         * url.c (rotate_backups): New function.
10131
10132         * http.c (gethttp): Ditto.
10133
10134         * ftp.c (getftp): Rotate backups.
10135
10136 1997-12-18  Hrvoje Niksic  <hniksic@srce.hr>
10137
10138         * all: Renamed nmalloc(), nrealloc() and nstrdup() to xmalloc(),
10139         xrealloc() and xstrdup().  Use the new functions.
10140
10141         * url.c (decode_string): Made static.
10142         (has_proto): Ditto.
10143         (parse_dir): Ditto.
10144         (parse_uname): Ditto.
10145         (mkstruct): Ditto.
10146         (construct): Ditto.
10147         (construct_relative): Ditto.
10148
10149         * retr.c (show_progress): Made static.
10150
10151         * recur.c (robots_url): Made static.
10152         (retrieve_robots): Ditto.
10153         (parse_robots): Ditto.
10154         (robots_match): Ditto.
10155
10156         * main.h: Removed.
10157
10158         * main.c (printhelp): Made static.
10159         (hangup): Ditto.
10160
10161         * init.c (comind): Made static.
10162         (defaults): Ditto.
10163         (init_path): Ditto.
10164         (run_wgetrc): Ditto.
10165         (onoff): Ditto.
10166         (setonoff): Ditto.
10167         (setnum): Ditto.
10168         (myatoi): Ditto.
10169         (getperms): Ditto.
10170         (setbytes): Ditto.
10171
10172         * http.c (fetch_next_header): Made static.
10173         (hparsestatline): Ditto.
10174         (hskip_lws): Ditto.
10175         (hgetlen): Ditto.
10176         (hgetrange): Ditto.
10177         (hgettype): Ditto.
10178         (hgetlocation): Ditto.
10179         (hgetmodified): Ditto.
10180         (haccepts_none): Ditto.
10181         (gethttp): Ditto.
10182         (base64_encode_line): Ditto.
10183         (mktime_from_utc): Ditto.
10184         (http_atotm): Ditto.
10185
10186         * html.c (idmatch): Made static.
10187
10188         * host.c (search_host): Made static.
10189         (search_address): Ditto.
10190         (free_hlist): Ditto.
10191
10192         * ftp.c (getftp): Made static.
10193         (ftp_loop_internal): Ditto.
10194         (ftp_get_listing): Ditto.
10195         (ftp_retrieve_list): Ditto.
10196         (ftp_retrieve_dirs): Ditto.
10197         (ftp_retrieve_glob): Ditto.
10198         (freefileinfo): Ditto.
10199         (delelement): Ditto.
10200
10201         * ftp-ls.c (symperms): Made static.
10202         (ftp_parse_unix_ls): Ditto.
10203
10204         * connect.c (select_fd): Made static.
10205
10206         * utils.c (xmalloc): Renamed from nmalloc.
10207         (xrealloc): Renamed from nrealloc.
10208         (xstrdup): Renamed from nstrdup.
10209
10210         * getopt.c (exchange): Use alloca.
10211
10212         * mswindows.c (mycuserid): Use strncpy.
10213
10214         * New files mswindows.c, mswindows.h, sysdep.h.  winjunk.c,
10215         systhings.h, windecl.h and winjunk.h removed.
10216
10217         * mswindows.c (sleep): New function.
10218
10219         * utils.c: Include <windows.h> under Windows.
10220
10221 1997-06-12  Darko Budor  <dbudor@zesoi.fer.hr>
10222
10223         * url.h (URL_UNSAFE): Change default under Windows.
10224
10225         * retr.c (retrieve_from_file): Respect opt.delete_after.
10226
10227         * main.c (main): Call ws_help on Windows.
10228
10229         * winjunk.c (windows_main_junk): New function.
10230
10231         * main.c (main): Junk-process argv[0].
10232
10233         * http.c (mktime_from_utc): Return -1 if mktime failed.
10234
10235         * http.c (http_loop): Ditto.
10236
10237         * ftp.c (ftp_loop_internal): Change title on Windows when using a
10238         new URL.
10239
10240         * winjunk.c (getdomainname): Lots of functions.
10241
10242 1997-06-12  Hrvoje Niksic  <hniksic@srce.hr>
10243
10244         * cmpt.c (strptime_internal): Handle years more correctly for
10245         `%y'.
10246
10247 1997-06-09  Mike Thomas <mthomas@reality.ctron.com>
10248
10249         * http.c (gethttp): Allocate enough space for
10250         `Proxy-Authorization' header.
10251
10252 1997-05-10  Hrvoje Niksic  <hniksic@srce.hr>
10253
10254         * version.c: Wget/1.4.5 is released.
10255
10256 1997-05-10  Hrvoje Niksic  <hniksic@srce.hr>
10257
10258         * retr.c (get_contents): Check return value of fwrite more
10259         carefully.
10260
10261 1997-03-30  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
10262
10263         * cmpt.c (strptime_internal) [case 'Y']: Always subtract 1900 from
10264         year, regardless of century.
10265
10266 1997-03-30  Hrvoje Niksic  <hniksic@srce.hr>
10267
10268         * utils.c (isfile): Use `lstat' instead of `stat'.
10269
10270 1997-03-29  Hrvoje Niksic  <hniksic@srce.hr>
10271
10272         * utils.c (numdigit): Use explicit test.
10273
10274 1997-03-21  Hrvoje Niksic  <hniksic@srce.hr>
10275
10276         * http.c (http_loop): Always use `url_filename' to get u->local.
10277
10278 1997-03-20  Hrvoje Niksic  <hniksic@srce.hr>
10279
10280         * url.c: Recognize https.
10281
10282 1997-03-13  Hrvoje Niksic  <hniksic@srce.hr>
10283
10284         * recur.c (recursive_retrieve): Lowercase just the host name.
10285
10286 1997-03-09  Hrvoje Niksic  <hniksic@srce.hr>
10287
10288         * url.c (get_urls_file): Use the correct test.
10289         (get_urls_html): Ditto.
10290
10291 1997-03-07  Hrvoje Niksic  <hniksic@srce.hr>
10292
10293         * connect.c: Reverted addrlen to int.
10294
10295         * init.c (parse_line): Check for -1 instead of NONE.
10296
10297         * version.c: Changed version to 1.4.5.
10298
10299 1997-02-17  Hrvoje Niksic  <hniksic@srce.hr>
10300
10301         * init.c: New option netrc.
10302         (initialize): Don't parse .netrc.
10303
10304         * cmpt.c (recursive): Return rp.
10305         (strptime_internal): Match the long strings first, the abbreviated
10306         second.
10307
10308 1997-02-16  Hrvoje Niksic  <hniksic@srce.hr>
10309
10310         * http.c (check_end): New function.
10311         (http_atotm): Use it.
10312
10313 1997-02-13  gilles Cedoc  <gilles@cedocar.fr>
10314
10315         * http.c (gethttp): Use them.
10316
10317         * init.c: New options proxy_user and proxy_passwd.
10318
10319 1997-02-14  Hrvoje Niksic  <hniksic@srce.hr>
10320
10321         * ftp.c (ftp_retrieve_list): Create links even if not relative.
10322
10323 1997-02-10  Hrvoje Niksic  <hniksic@srce.hr>
10324
10325         * recur.c (recursive_retrieve): Lowercase the host name, if the
10326         URL is not "optimized".
10327
10328         * host.c (realhost): Return l->hostname, even if it matches with
10329         host.
10330
10331 1997-02-10  Marin Purgar  <pmc@asgard.hr>
10332
10333         * connect.c: Make addrlen size_t instead of int.
10334         (conaddr): Ditto.
10335
10336 1997-02-09  Gregor Hoffleit  <flight@mathi.uni-heidelberg.DE>
10337
10338         * systhings.h: Define S_ISLNK on NeXT too.
10339
10340 1997-02-09  Hrvoje Niksic  <hniksic@srce.hr>
10341
10342         * version.c: Released 1.4.3.
10343
10344         * url.c: Futher update to list of protostrings.
10345         (skip_proto): Skip `//' correctly for FTP and HTTP.
10346
10347         * url.c (get_urls_html): Handle bogus `http:' things a little
10348         different.
10349
10350         * main.c (main): Removed `follow-ftp' from `f'.
10351         (main): Dumped the `prefix-files' and `file-prefix' options and
10352         features; old and bogus.
10353         (main): Exit on failed setval() in `-e'.
10354
10355         * http.c (fetch_next_header): Use it to detect header continuation
10356         correctly.
10357
10358         * retr.c (buf_peek): New function.
10359
10360 1997-02-08  Hrvoje Niksic  <hniksic@srce.hr>
10361
10362         * wget.h: Include time.h and stuff.
10363
10364 1997-02-08  Roger Beeman  <beeman@cisco.com>
10365
10366         * ftp.c: Include <time.h>
10367
10368 1997-02-07  Hrvoje Niksic  <hniksic@srce.hr>
10369
10370         * url.c (findurl): Would read over buffer limits.
10371
10372 1997-02-06  Hrvoje Niksic  <hniksic@srce.hr>
10373
10374         * ftp-ls.c (ftp_parse_unix_ls): Allow spaces in file names.
10375
10376 1997-02-05  Hrvoje Niksic  <hniksic@srce.hr>
10377
10378         * http.c (http_atotm): Initialize tm.is_dst.
10379
10380 1997-02-02  Hrvoje Niksic  <hniksic@srce.hr>
10381
10382         * http.c (gethttp): Don't print the number of retrieved headers.
10383
10384         * main.c (main): New option `--no-clobber', alias for `-nc'.
10385
10386         * url.c: Recognize `https://'.
10387
10388 1997-02-01  Hrvoje Niksic  <hniksic@srce.hr>
10389
10390         * host.c (herrmsg): Don't use h_errno.
10391
10392 1997-01-30  Hrvoje Niksic  <hniksic@srce.hr>
10393
10394         * host.c (accept_domain): Use it.
10395
10396         * main.c (main): New option `--exclude-domains'.
10397
10398         * retr.c (retrieve_url): Use it.
10399         (retrieve_url): Bail out when an URL is redirecting to itself.
10400
10401         * url.c (url_equal): New function.
10402
10403 1997-01-29  Hrvoje Niksic  <hniksic@srce.hr>
10404
10405         * connect.c: Include arpa/inet.h instead of arpa/nameser.h.
10406
10407         * http.c (mk_utc_time): New function.
10408         (http_atotm): Use it; handle time zones correctly.
10409
10410 1997-01-28  Hrvoje Niksic  <hniksic@srce.hr>
10411
10412         * http.c: Ditto.
10413
10414         * ftp-basic.c: Use it instead of WRITE.
10415
10416         * connect.c (iwrite): New function.
10417
10418 1997-01-27  Hrvoje Niksic  <hniksic@srce.hr>
10419
10420         * cmpt.c (mktime): New function.
10421
10422         * netrc.c: Include <sys/types.h>.
10423
10424         * main.c (main): Wouldn't recognize --spider.
10425
10426         * retr.c (rate): Use `B', `KB' and `MB'.
10427         (reset_timer,elapsed_time): Moved from utils.c.
10428
10429         * ftp.c (ftp_retrieve_list): Ditto.
10430
10431         * http.c (http_loop): Don't touch the file if opt.dfp.
10432
10433 1997-01-24  Hrvoje Niksic  <hniksic@srce.hr>
10434
10435         * cmpt.c: New file.
10436
10437         * ftp.c (ftp_retrieve_glob): New argument semantics.
10438         (ftp_retrieve_dirs): Use it.
10439         (ftp_loop): Ditto.
10440
10441         * html.c (htmlfindurl): Recognize `'' as the quote char.
10442
10443 1997-01-23  Hrvoje Niksic  <hniksic@srce.hr>
10444
10445         * ftp.c (ftp_loop_internal): Use it.
10446
10447         * utils.c (remove_link): New function.
10448
10449 1997-01-22  Hrvoje Niksic  <hniksic@srce.hr>
10450
10451         * retr.c (retrieve_url): Require STRICT redirection URL.
10452
10453         * url.c (parseurl): New argument STRICT.
10454
10455         * http.c (hparsestatline): Be a little-bit less strict about
10456         status line format.
10457
10458 1997-01-21  Hrvoje Niksic  <hniksic@srce.hr>
10459
10460         * http.c (gethttp): Use it.
10461
10462         * main.c (main): Don't use '<digit>' as options.
10463
10464         * init.c: New option ignore_length.
10465
10466         * http.c (gethttp): Ditto.
10467         (http_loop): Check for redirection without Location:.
10468         (gethttp): Don't print Length unless RETROKF.
10469
10470         * ftp.c (getftp): Use it.
10471
10472         * url.c (mkalldirs): New function.
10473
10474         * utils.c (mymkdir): Don't check for existing non-directory.
10475
10476         * url.c (mkstruct): Don't create the directory.
10477
10478 1997-01-20  Hrvoje Niksic  <hniksic@srce.hr>
10479
10480         * init.c (setval): Removed NO_RECURSION checks.
10481
10482 1997-01-19  Hrvoje Niksic  <hniksic@srce.hr>
10483
10484         * version.c: "Released" 1.4.3-pre2.
10485
10486         * recur.c (recursive_retrieve): Bypass host checking only if URL
10487         is ftp AND parent URL is not ftp.
10488
10489         * ftp-basic.c (ftp_request): Print out Turtle Power.
10490
10491         * ftp.c (ftp_loop): Call ftp_retrieve_glob with 0 if there's no
10492         wildcard.
10493         (ftp_retrieve_glob): Call ftp_loop_internal even on empty list, if
10494         not glob.
10495
10496         * http.c (gethttp): Be a little bit smarter about status codes.
10497
10498         * recur.c (recursive_retrieve): Always reset opt.recursive when
10499         dealing with FTP.
10500
10501 1997-01-18  Hrvoje Niksic  <hniksic@srce.hr>
10502
10503         * retr.c (retrieve_url): New variable location_changed; use it for
10504         tests instead of mynewloc.
10505         (retrieve_url): Allow heuristic adding of html.
10506
10507         * url.c (url_filename): Don't use the `%' in Windows file names.
10508
10509         * http.c (http_loop): Always time-stamp the local file.
10510
10511         * http.c (http_loop): Ditto.
10512
10513         * ftp.c (ftp_retrieve_list): Use it.
10514
10515         * utils.c (my_touch): New function.
10516
10517         * ftp.c (ftp_retrieve_list): Use #ifdef HAVE_STRUCT_UTIMBUF
10518         instead of #ifndef NeXT.
10519
10520         * utils.c (strptime): New version, by Ulrich Drepper.
10521
10522 1997-01-17  Hrvoje Niksic  <hniksic@srce.hr>
10523
10524         * http.c (haccepts_none): Renamed from `haccepts_bytes'.
10525         (gethttp): If haccepts_none(), disable ACCEPTRANGES.
10526         (http_loop): Would remove ACCEPTRANGES.
10527
10528         * ftp.c (getftp): Call ftp_list with NULL.
10529
10530 1997-01-15  Hrvoje Niksic  <hniksic@srce.hr>
10531
10532         * html.c (ftp_index): Don't print minutes and seconds if we don't
10533         know them; beautify the output.
10534
10535         * ftp.c (getftp): Don't close the socket on FTPNSFOD.
10536
10537 1997-01-14  Hrvoje Niksic  <hniksic@srce.hr>
10538
10539         * utils.c (strptime): New function.
10540         (strptime): Don't use get_alt_number.
10541         (strptime): Don't use locale.
10542         (match_string): Made it a function.
10543
10544 1997-01-12  Hrvoje Niksic  <hniksic@srce.hr>
10545
10546         * http.c (http_atotm): New function.
10547         (http_loop): Use it.
10548
10549         * atotm.c: Removed from the distribution.
10550
10551         * http.c (base64_encode_line): Rewrite.
10552
10553 1997-01-09  Hrvoje Niksic  <hniksic@srce.hr>
10554
10555         * ftp.c (getftp): Use ftp_expected_bytes; print size.
10556
10557         * ftp-basic.c (ftp_response): Use ftp_last_respline.
10558         (ftp_expected_bytes): New function.
10559
10560         * ftp.c (getftp): Print the unauthoritative file length.
10561
10562         * ftp-ls.c: Renamed from ftp-unix.c.
10563         (ftp_parse_ls): Moved from ftp.c.
10564         (ftp_parse_unix_ls): Recognize seconds in time spec.
10565         (ftp_parse_unix_ls): Recognize year-less dates of the previous
10566         year.
10567
10568 1997-01-08  Hrvoje Niksic  <hniksic@srce.hr>
10569
10570         * ftp-basic.c: Don't declare errno if #defined.
10571
10572         * host.c (ftp_getaddress): Check for sysinfo legally.
10573
10574 1997-01-08  Darko Budor  <dbudor@diana.zems.fer.hr>
10575
10576         * connect.c (iread): Use READ.
10577
10578 1996-12-23  Hrvoje Niksic  <hniksic@srce.hr>
10579
10580         * url.c: Recognize finger, rlogin, tn3270, mid and cid as valid
10581         schemes.
10582
10583 1996-12-22  Hrvoje Niksic  <hniksic@srce.hr>
10584
10585         * host.c (ftp_getaddress): Allow `.' in hostname.
10586
10587 1996-12-26  Darko Budor <dbudor@zems.fer.hr>
10588
10589         * wget.h: READ and WRITE macros for use instead of read and write
10590         on sockets, grep READ *.c, grep WRITE *.c
10591
10592         * wsstartup.c: new file - startup for winsock
10593
10594         * wsstartup.h: new file
10595
10596         * win32decl.h: new file - fixup for <errno.h> and winsock trouble
10597
10598         * configure.bat: Configure utility for MSVC
10599
10600         * src/Makefile.ms,config.h.ms: new files for use with MSVC 4.x
10601
10602 1996-12-22  Hrvoje Niksic  <hniksic@srce.hr>
10603
10604         * version.c: Released 1.4.3-pre.
10605
10606         * utils.c (prnum): Accept long.
10607         (legible): Use prnum().
10608
10609         * connect.c (make_connection): Accept port as short.
10610         (bindport): Ditto.
10611
10612         * http.c (gethttp): Use search_netrc.
10613
10614 1996-12-21  Hrvoje Niksic  <hniksic@srce.hr>
10615
10616         * ftp.c (getftp): Use search_netrc.
10617
10618         * netrc.c (free_netrc): New function.
10619
10620         * init.c (home_dir): New function.
10621
10622         * url.c (convert_links): Allow REL2ABS changes.
10623
10624 1996-12-21  Gordon Matzigkeit  <gord@gnu.ai.mit.edu>
10625
10626         * netrc.c: New file.
10627         (parse_netrc, maybe_add_to_list): New functions.
10628
10629 1996-12-17  Hrvoje Niksic  <hniksic@srce.hr>
10630
10631         * retr.c (retrieve_url): Reset opt.recursion before calling
10632         ftp_loop if it is reached through newloc.
10633
10634         * init.c (run_wgetrc): Print the wgetrc path too, when reporting
10635         error; don't use "Syntax error", since we don't know if it is
10636         really a syntax error.
10637
10638 1996-12-16  Hrvoje Niksic  <hniksic@srce.hr>
10639
10640         * utils.c (acceptable): Extract the filename part of the path.
10641
10642         * recur.c (recursive_retrieve): Call acceptable() with the right
10643         argument; would bug out on wildcards.
10644
10645         * init.c (parse_line): Likewise.
10646
10647         * html.c (htmlfindurl): Cast to char * when calling stuff.
10648
10649 1996-12-15  Hrvoje Niksic  <hniksic@srce.hr>
10650
10651         * ftp.c (getftp): Use ftp_pasv.
10652
10653         * ftp-basic.c (ftp_request): Accept NULL value.
10654         (ftp_pasv): New function.
10655
10656         * options.h (struct options): Add passive FTP option.
10657
10658 1996-12-15  Hrvoje Niksic  <hniksic@srce.hr>
10659
10660         * url.c (parseurl): Debug output.
10661
10662         * utils.c (path_simplify): New one, adapted from bash's
10663         canonicalize_pathname().
10664
10665 1996-12-14  Hrvoje Niksic  <hniksic@srce.hr>
10666
10667         * ftp.c (getftp): Don't discard the buffer.
10668
10669         * retr.c (get_contents): New parameter nobuf.
10670
10671 1996-12-13  Shawn McHorse  <riffraff@txdirect.net>
10672
10673         * html.c (htmlfindurl): Recognize <meta contents="d; URL=...".
10674
10675         * init.c (setval): Strip the trailing slashes on CVECDIR.
10676
10677 1996-12-13  Hrvoje Niksic  <hniksic@srce.hr>
10678
10679         * init.c: Make excludes and includes under CVECDIR instead of
10680         CVEC.
10681
10682 1996-12-13  Shawn McHorse  <riffraff@txdirect.net>
10683
10684         * url.c (get_urls_html): Skip "http:".
10685
10686 1996-12-13  Hrvoje Niksic  <hniksic@srce.hr>
10687
10688         * utils.c (strcasecmp): From glibc.
10689         (strncasecmp): Also.
10690         (strstr): Also.
10691
10692         * url.c: Added javascript: to the list of URLs prefixes.
10693
10694 1996-12-12  Shawn McHorse  <riffraff@txdirect.net>
10695
10696         * recur.c (retrieve_robots): Print the warning message only if
10697         verbose.
10698
10699 1996-12-12  Gregor Hoffleit  <flight@mathi.uni-heidelberg.DE>
10700
10701         * ftp.c (ftp_retrieve_list): Use NeXT old utime interface.
10702
10703 1996-12-12  Hrvoje Niksic  <hniksic@srce.hr>
10704
10705         * systhings.h: New file.
10706
10707         * ../configure.in: Check for utime.h
10708
10709         * ftp.c: Check whether we have unistd.h.
10710
10711 1996-11-27  Hrvoje Niksic  <hniksic@srce.hr>
10712
10713         * recur.c (recursive_retrieve): Send the canonical URL as referer.
10714         (recursive_retrieve): Call get_urls_html with the canonical URL.
10715
10716 1996-12-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10717
10718         * (configure.in, config.h.in, src/Makefile.in, src/*.[ch]): Add
10719         ansi2knr support for compilers which don't support ANSI style
10720         function prototypes and signatures.
10721
10722         * (aclocal.m4, src/ansi2knr.c, src/ansi2knr.1): New files.
10723
10724 1996-11-26  Hrvoje Niksic  <hniksic@srce.hr>
10725
10726         * url.c: Use it; Recognize paths ending with "." and ".." as
10727         directories.
10728         (url_filename): Append .n whenever file exists and could be a
10729         directory.
10730
10731         * url.h (ISDDOT): New macro.
10732
10733         * init.c (parse_line): Use unsigned char.
10734
10735         * url.c (get_urls_html): Cast to unsigned char * when calling
10736         htmlfindurl.
10737
10738         * html.c (htmlfindurl): Use unsigned char.
10739
10740         * version.c: Changed version to 1.4.3.
10741
10742 1996-11-25  Hrvoje Niksic  <hniksic@srce.hr>
10743
10744         * version.c: Released 1.4.2.
10745
10746         * ftp.c (getftp): Simplified assertion.
10747         (ftp_loop_internal): Remove symlink before downloading.
10748         (ftp_retrieve_list): Unlink the symlink name before attempting to
10749         create a symlink!
10750
10751         * options.h (struct options): Renamed print_server_response to
10752         server_response.
10753
10754         * ftp.c (rel_constr): Removed.
10755         (ftp_retrieve_list): Don't use it.
10756         (ftp_retrieve_list): Use opt.retr_symlinks.
10757
10758 1996-11-24  Hrvoje Niksic  <hniksic@srce.hr>
10759
10760         * main.c (main): New option retr_symlinks.
10761
10762         * url.c (convert_links): Print verbose message.
10763
10764 1996-11-24  Hrvoje Niksic  <hniksic@srce.hr>
10765
10766         * http.c (http_loop): Reset newloc in the beginning of function;
10767         would cause FMR in retrieve_url.
10768
10769 1996-11-23  Hrvoje Niksic  <hniksic@srce.hr>
10770
10771         * recur.c (convert_all_links): Find the URL of each HTML document,
10772         and feed it to get_urls_html; would bug out.
10773         (convert_all_links): Check for l2 instead of dl; removed dl.
10774
10775         * url.c (convert_links): Don't refer to freed newname.
10776
10777         * recur.c (recursive_retrieve): Add this_url to urls_downloaded.
10778
10779         * main.c (main): Print the OS_TYPE in the debug output, too.
10780
10781         * recur.c (recursive_retrieve): Check for opt.delete_after.
10782
10783         * main.c (main): New option delete-after.
10784
10785         * init.c (setval): Cleaned up.
10786
10787 1996-11-21  Hrvoje Niksic  <hniksic@srce.hr>
10788
10789         * Makefile.in (wget): Make `wget' the default target.
10790
10791         * ftp.c (ftp_loop_internal): Move noclobber checking out of the
10792         loop.
10793         (ftp_retrieve_list): Warn about non-matching sizes.
10794
10795         * http.c (http_loop): Made -nc non-dependent on opt.recursive.
10796
10797         * init.c (setnum): Renamed from setnuminf; New argument flags.
10798         (setval): Use it.
10799
10800         * main.c (main): Sorted the options.
10801         (main): New option --wait.
10802
10803 1996-11-21  Shawn McHorse  <riffraff@txdirect.net>
10804
10805         * html.c (htmlfindurl): Reset s->in_quote after getting out of
10806         quotes.
10807
10808 1996-11-20  Hrvoje Niksic  <hniksic@srce.hr>
10809
10810         * version.c: Changed version to 1.4.2.
10811
10812 1996-11-20  Hrvoje Niksic  <hniksic@srce.hr>
10813
10814         * version.c: Released 1.4.1.
10815
10816         * html.c (html_quote_string): New function.
10817         (ftp_index): Use it.
10818         (htmlfindurl): A more gentle ending debug message.
10819
10820         * ftp.c (ftp_loop): Check for opt.htmlify.
10821
10822         * init.c: New command htmlify.
10823
10824         * ftp.c (getftp): Nicer error messages, with `'-encapsulated
10825         strings.
10826         (ftp_loop): Print size of index.html.
10827
10828         * init.c (setval): Implement "styles".
10829
10830         * main.c (main): New option dotstyle.
10831
10832 1996-11-19  Hrvoje Niksic  <hniksic@srce.hr>
10833
10834         * ftp.c (getftp): Close the master socket in case of errors, after
10835         bindport().
10836
10837         * connect.c (bindport): Initialize msock to -1.
10838
10839         * ftp.c (getftp): Initialize dtsock to -1.
10840
10841         * connect.c (closeport): Don't close sock if sock == -1.
10842
10843 1996-11-18  Hrvoje Niksic  <hniksic@srce.hr>
10844
10845         * init.c (setnuminf): Nuked default value -- just leave unchanged.
10846         (setval): Don't send default values.
10847         (defaults): Use DEFAULT_TIMEOUT -- aaargh.
10848
10849         * options.h (struct options): Use long for dot_bytes.
10850
10851         * init.c (setquota): Renamed to setbytes.
10852         (setval): Use setbytes on DOTBYTES.
10853
10854 1996-11-17  Hrvoje Niksic  <hniksic@srce.hr>
10855
10856         * ftp.c (getftp): Initialize con->dltime.
10857
10858         * recur.c (recursive_retrieve): Use same_host instead of
10859         try_robots; simply load robots_txt whenever the host is changed.
10860         (recursive_retrieve): Free forbidden before calling parse_robots.
10861
10862 1996-11-16  Hrvoje Niksic  <hniksic@srce.hr>
10863
10864         * retr.c (show_progress): Use them.
10865
10866         * options.h (struct options): New options dot_bytes, dots_on_line
10867         and dot_spacing.
10868
10869 1996-11-16  Mark Boyns  <boyns@sdsu.edu>
10870
10871         * recur.c (recursive_retrieve): Retrieve directories regardless of
10872         acc/rej rules; check for empty u->file.
10873
10874 1996-11-14  Hrvoje Niksic  <hniksic@srce.hr>
10875
10876         * init.c (setval): Use it.
10877
10878         * utils.c (merge_vecs): New function.
10879
10880         * init.c (setval): Reset the list-type functions when encountering
10881         "".
10882
10883 1996-11-14  Shawn McHorse  <riffraff@txdirect.net>
10884
10885         * recur.c (recursive_retrieve): Use base_url instead of this_url
10886         for no_parent.
10887
10888 1996-11-14  Shawn McHorse  <riffraff@txdirect.net>
10889
10890         * html.c (htmlfindurl): Reset s->in_quote after exiting the quote.
10891
10892 1996-11-13  Hrvoje Niksic  <hniksic@srce.hr>
10893
10894         * utils.c (sepstring): Rewrote; don't use strtok.
10895
10896         * recur.c (recursive_retrieve): Enter assorted this_url to slist
10897         when running the first time.
10898         (retrieve_robots): Warn to ignore errors when robots are loaded.
10899
10900         * utils.c (load_file): Moved from url.c.
10901
10902         * http.c: Made static variables const too in h* functions.
10903
10904         * main.c (main): Renamed --continue-ftp to --continue.
10905
10906         * recur.c (recursive_retrieve): Use it.
10907
10908         * utils.c (frontcmp): New function.
10909
10910         * url.c (accdir): New function.
10911
10912         * html.c (htmlfindurl): Recognize <area href=...>.
10913
10914         * ftp.c (ftp_retrieve_dirs): Implemented opt.includes.
10915
10916         * init.c (setval): Free the existing opt.excludes and
10917         opt.includes, if available.
10918
10919         * main.c (main): New option -I.
10920
10921 1996-11-12  Hrvoje Niksic  <hniksic@srce.hr>
10922
10923         * ftp.c (ftp_retrieve_glob): Do not weed out directories.
10924
10925         * version.c: Changed version to 1.4.1.
10926
10927 1996-11-11  Hrvoje Niksic  <hniksic@srce.hr>
10928
10929         * version.c: Released 1.4.0.
10930
10931 1996-11-10  Hrvoje Niksic  <hniksic@srce.hr>
10932
10933         * main.c (main): Free com and val after parse_line.
10934         (printhelp): Reorder the listing.
10935
10936         * http.c: More robust header parsing.
10937
10938         * http.c: Allow any number of spaces, or no spaces, precede ':'.
10939         (hskip_lws): New function.
10940         (haccepts_bytes): New function.
10941         (gethttp): Use it.
10942
10943         * init.c (setval): Check header sanity.
10944         (setval): Allow resetting of headers.
10945
10946 1996-11-10  Hrvoje Niksic  <hniksic@srce.hr>
10947
10948         * http.c (http_loop): Don't use has_wildcards.
10949
10950         * http.c (gethttp): Free all_headers -- would leak.
10951
10952         * recur.c (recursive_retrieve): Initialize depth to 1 instead of
10953         0 -- this fixes a long-standing bug in -rl.
10954
10955 1996-11-09  Hrvoje Niksic  <hniksic@srce.hr>
10956
10957         * ftp.c: Use -1 as "impossible" value for con->fd.
10958
10959         * url.h (URL_SEPARATOR): Don't treat `*' and `+' as separators.
10960
10961         * init.c (parse_line): Use isalpha.
10962
10963         * ftp-unix.c: Use HAVE_UNISTD_H.
10964
10965         * mtch.c (has_wildcards): Don't match \.
10966
10967         * http.c (http_loop): Warn on HTTP wildcard usage.
10968
10969 1996-11-08  Hrvoje Niksic  <hniksic@srce.hr>
10970
10971         * url.c (url_filename): Do not create numbered suffixes if
10972         opt.noclobber -- would bug out on -nc.
10973
10974 1996-11-07  Hrvoje Niksic  <hniksic@srce.hr>
10975
10976         * recur.c (parse_robots): Don't chuck out the commands without
10977         arguments (`Disallow:<empty>' didn't work).
10978         (parse_robots): Compare versions lowercase.
10979         (parse_robots): Match on base_version, not version_string!
10980         (parse_robots): Handle comments properly.
10981         (parse_robots): Match versions in a sane way.
10982
10983         * init.c: Print nicer error messages.
10984
10985         * version.c: Changed version to 1.4.0.
10986
10987 1996-11-06  Hrvoje Niksic  <hniksic@srce.hr>
10988
10989         * version.c: Released 1.4.0-test2.
10990
10991         * init.c (run_wgetrc): Close fp.
10992
10993         * ftp.c (ftp_retrieve_dirs): Allocate the correct length for
10994         u->dir.
10995
10996 1996-11-06  Hrvoje Niksic  <hniksic@srce.hr>
10997
10998         * init.c (setquota): Allow inf as quota specification.
10999
11000 1996-11-05  Hrvoje Niksic  <hniksic@srce.hr>
11001
11002         * ftp.c (ftp_retrieve_dirs): Return QUOTEXC if quota exceeded.
11003         (ftp_retrieve_glob): Return QUOTEXC on quota exceeded.
11004
11005         * main.c (main): Check for quota by comparison with downloaded
11006         stuff, not from status.
11007
11008         * connect.c (select_fd): Should compile on HPUX without warnings now.
11009
11010         * ftp.c (ftp_get_listing): Check whether ftp_loop_internal
11011         returned RETROK.
11012
11013 1996-11-04  Hrvoje Niksic  <hniksic@srce.hr>
11014
11015         * ftp.c (ftp_retrieve_glob): Print the pattern nicely.
11016         (getftp): Return FTPRETRINT on control connection error.
11017
11018         * html.c (htmlfindurl): Recognize <embed src=...> and
11019         <bgsound src=...>.
11020         (ftp_index): Handle username and password correctly.
11021
11022         * main.c (main): Made `-np' a synonim for --no-parent.
11023
11024 1996-11-02  Hrvoje Niksic  <hniksic@srce.hr>
11025
11026         * ftp.c (ftp_loop): Check for opt.ftp_glob too before calling
11027         ftp_retrieve_glob.
11028
11029         * version.c: Changed version to 1.4.0-test2.
11030
11031 1996-11-02  Hrvoje Niksic  <hniksic@srce.hr>
11032
11033         * version.c: Released 1.4.0-test1.
11034
11035         * url.c (str_url): Don't use sprintf when creating %2F-prefixed
11036         directory.
11037         (convert_links): Removed definition of make_backup.
11038
11039         * http.h: Removed definition of MAX_ERROR_LENGTH.
11040
11041         * host.c (ftp_getaddress): Check for "(none)" domains.
11042
11043         * ftp.c (ftp_retrieve_dirs): Docfix.
11044
11045         * http.c (gethttp): Use ou->referer instead of u->referer.
11046
11047         * retr.c (retrieve_url): Reset u to avoid freeing pointers twice;
11048         this was known to cause coredumps on Linux.
11049
11050         * html.c (ftp_index): Cast the argument to local_time to time_t *.
11051
11052 1996-11-01  Hrvoje Niksic  <hniksic@srce.hr>
11053
11054         * connect.c (select_fd): Use exceptfds -- once and for all.
11055
11056         * retr.c (retrieve_from_file): Free filename after
11057         recursive_retrieve.
11058         (retrieve_from_file): Send RFIRST_TIME to recursive_retrieve on
11059         first-time retrieval.
11060         (retrieve_from_file): Return uerr_t; new argument, count.
11061         (retrieve_from_file): Break on QUOTEXC.
11062
11063         * init.c (setquota): Fixed a bug that caused rejection of
11064         non-postfixed values..
11065
11066 1996-10-30  Hrvoje Niksic  <hniksic@srce.hr>
11067
11068         * version.c: Changed name to wget.
11069
11070         * connect.c (iread): Smarter use of select.
11071         (select_fd): Set errno on timeout.  If not timeout, return 1
11072         instead of 0.
11073
11074 1996-10-29  Hrvoje Niksic  <hniksic@srce.hr>
11075
11076         * ftp.c (ftp_loop_internal): Don't use con->cmd before
11077         establishing it.
11078
11079 1996-10-26  Hrvoje Niksic  <hniksic@srce.hr>
11080
11081         * http.c (gethttp): Send correct referer when using proxy.
11082         (gethttp): Use struct urlinfo ou to access the relevant data; send
11083         correct authorization in all cases.
11084
11085         * host.c (same_host): Use skip_uname to skip username and
11086         password.
11087
11088         * url.c (skip_uname): New function.
11089         (parseurl): Use it.
11090
11091         * host.c (same_host): Do not assume HTTP -- same_host should now
11092         be totally foolproof.
11093
11094         * url.c (skip_proto): New function.
11095         (parse_uname): Use it.
11096
11097         * http.c (gethttp): Create local user and passwd from what is
11098         given.
11099
11100         * url.c (parseurl): Check for HTTP username and password too.
11101
11102 1996-10-25  Hrvoje Niksic  <hniksic@srce.hr>
11103
11104         * config.h.in: Removed #define gethostbyname R...
11105
11106 1996-10-22  Hrvoje Niksic  <hniksic@srce.hr>
11107
11108         * version.c: Changed version to 1.4.0-test1.
11109
11110 1996-10-21  Hrvoje Niksic  <hniksic@srce.hr>
11111
11112         * version.c: "Released" 1.4b29.
11113
11114         * recur.c (recursive_retrieve): Check for no_parent.
11115
11116         * init.c (setval): Option update.
11117
11118         * main.c (main): New option no-parent.
11119
11120         * options.h (struct options): New variable no_parent.
11121
11122         * recur.c (recursive_retrieve): Only files are checked for
11123         opt.accepts and opt.rejects.
11124         (recursive_retrieve): Check directories for opt.excludes.
11125         (recursive_retrieve): Make the dir absolute when checking
11126         opt.excludes.
11127
11128         * html.c (htmlfindurl): Recognize <applet code=...> and <script
11129         src=...>
11130
11131 1996-10-18  Hrvoje Niksic  <hniksic@srce.hr>
11132
11133         * ftp.c (getftp): Do not line-break assert entries at all.
11134         (ftp_retrieve_dirs): docfix.
11135
11136         * connect.c (select_fd): Use fd + 1 as nfds.
11137
11138         * version.c: Changed version to 1.4b29.
11139
11140 1996-10-18  Hrvoje Niksic  <hniksic@srce.hr>
11141
11142         * version.c: "Released" 1.4b28.
11143
11144         * ftp.c (ftp_loop_internal): Check whether f->size == len and
11145         don't continue the loop if it is.
11146         (ftp_get_listing): Remove list_filename on unsuccesful loop.
11147
11148 1996-10-17  Hrvoje Niksic  <hniksic@srce.hr>
11149
11150         * ftp.c (ftp_loop_internal): Use strcpy to initialize tmp.
11151         (getftp): Do not use multiline assert.
11152
11153         * http.c (hparsestatline): Use mjr and mnr instead of major and
11154         minor, which don't compile on Ultrix.
11155         (http_loop): Use strcpy() to initialize tmp.
11156
11157         * all: Geturl -> Fetch
11158
11159 1996-10-17  Hrvoje Niksic  <hniksic@srce.hr>
11160
11161         * recur.c (parse_robots): Fixed an off-by-one bug when looking for
11162         ':'.
11163
11164         * html.c (htmlfindurl): Fixed several possible off-by-one bugs by
11165         moving `bufsize &&' to the beginning of each check in for-loops.
11166
11167         * recur.c (parse_robots): Close fp on exit.
11168
11169         * url.c (mymkdir): Check for each directory before creating.
11170
11171 1996-10-16  Hrvoje Niksic  <hniksic@srce.hr>
11172
11173         * version.c: Changed version to 1.4b28.
11174
11175 1996-10-16  Hrvoje Niksic  <hniksic@srce.hr>
11176
11177         * version.c: "Released" 1.4b27.
11178
11179         * init.c (parse_line): Use isspace.
11180         (parse_line): Free *com on all errors.
11181
11182         * ftp.c (ftp_loop): Change FTPOK to RETROK before exiting.
11183         (delelement): Use next instead of f->next and prev instead of
11184         f->prev.
11185         (delelement): Free the members of the deleted element.
11186
11187         * http.c (http_loop): Do not return RETROK on code != 20x.
11188
11189         * init.c (cleanup): Free opt.user_header.
11190         (cleanup): Free opt.domains.
11191
11192         * url.c (freelists): Moved to cleanup().
11193
11194         * http.c (hparsestatline): Docfix.
11195
11196         * main.c (main): Return with error status on unsuccesful
11197         retrieval.
11198
11199         * init.c (setval): Do not remove listing when mirroring.
11200
11201         * url.c (url_filename): Use opt.fileprefix.
11202
11203         * ftp.c (ftp_get_listing): Use url_filename to get filename for
11204         .listing.
11205
11206         * main.c (main): New option: -rn.
11207
11208 1996-10-15  Hrvoje Niksic  <hniksic@srce.hr>
11209
11210         * Makefile.in (RM): Added RM = rm -f.
11211
11212         * host.c (clean_hosts): New function.
11213         (free_hlist): Just free the list, no reset.
11214
11215         * version.c: Changed version to 1.4b27.
11216
11217 1996-10-13  Hrvoje Niksic  <hniksic@srce.hr>
11218
11219         * version.c: "Released" 1.4b26.
11220
11221         * retr.c (retrieve_from_file): If call get_urls_html with
11222         opt.spider to make it silent in spider mode.
11223
11224         * url.c (str_url): Use CLEANDUP instead of URL_CLEANSE.
11225
11226         * url.h (CLEANDUP): New macro.
11227
11228         * http.c (gethttp): Fixed a bug that freed location only when it
11229         was NULL.
11230
11231         * retr.c (retrieve_url): Free url if it will not be stored,
11232         i.e. newloc is NULL.
11233
11234         * html.c (htmlfindurl): Handle exiting from quotes correctly; the
11235         old version would bug out on <a href="x#a"href="y">.
11236
11237         * html.h (state_t): New member in_quote.
11238
11239         * html.c (htmlfindurl): Free s->attr at the beginning of
11240         attr-loop.
11241
11242         * recur.c (recursive_retrieve): Recognize RCLEANUP.
11243         (tried_robots): Make hosts a global variable.
11244         (recursive_retrieve): Free constr after URL host optimization.
11245         (tried_robots): Free urlinfo before exiting.
11246
11247         * utils.c (free_slist): New function.
11248
11249         * recur.c (recursive_retrieve): Use flags to add cleanup
11250         possibility.
11251
11252         * main.c (main): Free filename after recursive_retrieve.
11253
11254         * http.c (gethttp): Store successful responses too.
11255
11256 1996-10-12  Hrvoje Niksic  <hniksic@srce.hr>
11257
11258         * all: Constified the whole source.  This required some minor
11259         changes in many functions in url.c, possibly introducing bugs -- I
11260         hope not.
11261
11262         * ftp-basic.c: Removed last_respline.
11263
11264         * http.c (gethttp): Free type.
11265
11266         * host.c (same_host): Free real1 and real2.
11267
11268         * main.c (main): New option --spider.
11269
11270         * retr.c (get_contents): Don't reset errno.
11271
11272         * main.c (main): Sorted the options.
11273
11274         * connect.c (iread): Set errno to ETIMEDOUT only if it was left
11275         uninitialized by select().
11276
11277         * http.c (http_loop): Print the time when the connection is
11278         closed.
11279         (gethttp): Debug-print the HTTP request.
11280
11281 1996-10-11  Hrvoje Niksic  <hniksic@srce.hr>
11282
11283         * connect.c (iread): Do not try reading after timeout.
11284
11285         * main.c (main): Would bug out on -T.
11286
11287         * connect.c (select_fd): Do not use exceptfds.
11288         (iread): Set ETIMEDOUT on select_fd <= 0.
11289
11290         * version.c: Changed version to 1.4b26.
11291
11292 1996-10-10  Hrvoje Niksic  <hniksic@srce.hr>
11293
11294         * version.c: "Released" 1.4b25.
11295
11296         * ftp-unix.c (ftp_parse_unix_ls): Ignore lines without file name
11297         or link name.
11298
11299         * http.c (gethttp): Add errcode to struct hstat.
11300         (http_loop): Use it.
11301
11302         * url.c (no_proxy_match): Simplify using char** for no_proxy.
11303
11304         * options.h (struct options): Make opt.no_proxy a vector.
11305
11306         * utils.c (sepstring): Use !*s instead of !strlen(s).
11307
11308         * init.c (setval): Set opt.maxreclevel to 0 on --mirror.
11309         (getperms): Use ISODIGIT instead of isdigit.
11310
11311         * ftp.c (getftp): Print time.
11312
11313         * main.c (main): Use legible output of downloaded quantity.
11314
11315         * ftp.c (getftp): Use elapsed_time().
11316         (ftp_loop_internal): Use rate().
11317
11318         * http.c (http_loop): Add download ratio output; Use rate().
11319
11320         * utils.c (rate): New function.
11321
11322 1996-10-09  Hrvoje Niksic  <hniksic@srce.hr>
11323
11324         * http.c (http_loop): Use timer.
11325
11326         * ftp.c: Split to ftp-basic.c and ftp.c
11327
11328         * utils.c (reset_timer): New function.
11329         (elapsed_time): New function.
11330
11331         * retr.c (show_progress): Make bytes_in_line and offs long; should
11332         work on 16-bit machines.
11333
11334 1996-10-08  Hrvoje Niksic  <hniksic@srce.hr>
11335
11336         * url.c (in_acclist): New argument backward.
11337
11338         * ftp.c (ftp_retrieve_glob): Use acceptable() to determine whether
11339         a file should be retrieved according to suffix.
11340         (ftp_get_listing): Check the return value of unlink; Do not call
11341         ftp_retrieve_dirs if depth reached maxreclevel.
11342         (ftp_retrieve_dirs): Check whether the directory is in
11343         exclude-list.
11344
11345         * main.c (main): Print the version number at the beginning of
11346         DEBUG output.
11347         (main): Use strrchr when creating exec_name.
11348
11349         * ftp.c (ftp_retrieve_glob): Do not close control connection.
11350
11351         * version.c: Changed version to 1.4b25.
11352
11353 1996-10-07  Hrvoje Niksic  <hniksic@srce.hr>
11354
11355         * version.c: "Released" 1.4b24.
11356
11357         * Makefile.in: Rewrite.
11358
11359         * ftp.c (ftp_loop_internal): Likewise.
11360
11361         * retr.c (time_str): Check for failed time().
11362
11363         * html.c (htmlfindurl): Recognize <fig src> and <overlay src> from
11364         HTML3.0.
11365
11366         * retr.c (time_str): Return time_t *.
11367
11368         * connect.c (bindport): Close msock on unsuccesful bind.
11369         (bindport): The same for getsockname and listen.
11370
11371         * retr.c (retrieve_url): Allow any number of retries on
11372         proxy.
11373
11374         * http.c (gethttp): Do not treat errno == 0 as timeout.
11375         (http_loop): Likewise.
11376         (http_loop): Cosmetic changes.
11377
11378         * connect.c (iread): Set errno to ETIMEDOUT in case of timeout.
11379
11380         * retr.c (get_contents): Reset errno.
11381
11382         * ftp.c (getftp): Minor fixes.
11383
11384 1996-10-06  Hrvoje Niksic  <hniksic@srce.hr>
11385
11386         * http.c: Do not use backups.
11387
11388         * geturl.1 (WARNING): Warn that man-page could be obsolete.
11389
11390         * getopt.c (getopt_long): Moved to getopt.c
11391
11392         * geturl.texi: Enhanced.
11393
11394         * main.c (main): Use it.
11395
11396         * recur.c (convert_all_links): New function.
11397
11398         * utils.c (add_slist): New argument flags.
11399
11400         * recur.c (recursive_retrieve): Update a list of downloaded URLs.
11401         (parse_robots): Do not chuck out empty value fields.
11402         (parse_robots): Make yourself welcome on empty Disallow.
11403
11404         * version.c: Changed version to 1.4b24.
11405
11406 1996-10-06  Hrvoje Niksic  <hniksic@srce.hr>
11407
11408         * version.c: "Released" 1.4b23.
11409
11410         * ftp.c (ftp_loop_internal): Get the time after getftp.
11411
11412         * Makefile.in (install.info): New target.
11413         (install): Use it.
11414
11415         * http.c (http_loop): Fix output when doing -O.
11416
11417 1996-10-05  Hrvoje Niksic  <hniksic@srce.hr>
11418
11419         * geturl.texi: New file.
11420
11421         * main.c (main): Do not print the warnings and download summary if
11422         opt.quiet is set.
11423
11424         * version.c: Changed version to 1.4b23.
11425
11426 1996-10-05  Hrvoje Niksic  <hniksic@srce.hr>
11427
11428         * "Released" 1.4b22.
11429
11430         * atotm.c (atotm): Use True and False instead of TRUE and FALSE,
11431         to avoid redefinition warnings.
11432
11433         * host.c (store_hostaddress): Use memcpy() to copy the address
11434         returned by inet_addr.
11435
11436         * version.c: Changed version to 1.4b22.
11437
11438 1996-10-04  Hrvoje Niksic  <hniksic@srce.hr>
11439
11440         * version.c: "Released" 1.4b21.
11441
11442         * ftp-unix.c (ftp_parse_ls): Renamed to ftp_parse_unix_ls.
11443
11444         * ftp.c (ftp_port): Use conaddr.
11445         (getftp): Print the file length.
11446         (ftp_retrieve_list): Check the stamps of plain files only.
11447
11448         * connect.c (closeport): Do not call shutdown().
11449         (conaddr): New function.
11450
11451         * html.c (ftp_index): Made it dfp-aware.
11452
11453         * init.c (cleanup): New name of freemem. Close opt.dfp.
11454
11455         * ftp.c (getftp): Use opt.dfp if it is set.
11456
11457         * ftp-unix.c (ftp_parse_ls): Recognize time in h:mm format.
11458
11459         * ftp.c (ftp_retrieve_dirs): Fixed a bug that caused incorrect
11460         CWDs to be sent with recursive FTP retrievals.
11461
11462 1996-10-03  Hrvoje Niksic  <hniksic@srce.hr>
11463
11464         * recur.c (parse_robots): Made it more compliant with "official"
11465         specifications.
11466
11467         * http.c: New function.
11468
11469         * ftp-unix.c (ftp_parse_ls): Added better debug output.
11470
11471         * ftp.c (getftp): Print out the LIST in case of
11472         opt.print_server_response.
11473
11474         * version.c: Changed version to 1.4b21.
11475
11476 1996-10-01  Hrvoje Niksic  <hniksic@srce.hr>
11477
11478         * version.c: "Released" 1.4b20.
11479
11480         * README: Update.
11481
11482         * http.c (gethttp): Preset lengths of various headers instead of
11483         calculating them dynamically.
11484         (gethttp): Check for 206 partial contents.
11485
11486 1996-09-30  Hrvoje Niksic  <hniksic@srce.hr>
11487
11488         * configure.in: Set SYSTEM_GETURLRC to $libdir/geturlrc
11489
11490         * http.c (gethttp): Send the port number in the Host: header.
11491
11492 1996-09-29  Hrvoje Niksic  <hniksic@srce.hr>
11493
11494         * http.c (gethttp): Send host: header.
11495         (gethttp): Add the possibility of user-defined headers.
11496         (gethttp): Move decision about pragma: no-cache to http_loop,
11497         where it belongs.
11498         (gethttp): Pass a struct instead of enormous argument list.
11499         (http_loop): Use a new, fancier display format.
11500         (ftp_loop): Likewise.
11501
11502         * main.c: (hangup): Turn off buffering of the new log file.
11503
11504         * install-sh: Likewise.
11505
11506         * config.sub: Replace with the one in autoconf-2.10
11507
11508         * geturl.1: Update.
11509
11510         * init.c: New options httpuser and httppasswd.
11511
11512         * http.c: (base64_encode_line): New function.
11513         (gethttp): Send authentication.
11514
11515         * connect.c (make_connection): Use store_hostaddress.
11516
11517 1996-09-28  Hrvoje Niksic  <hniksic@srce.hr>
11518
11519         * host.c (store_hostaddress): New function.
11520
11521         * NEWS: Update.
11522
11523         * http.c (hgetrange): New function.
11524         (gethttp): Use ranges.
11525
11526         * utils.c (numdigit): Accept long instead of int.
11527
11528         * http.c (http_loop): Add restart capabilities.
11529
11530         * ftp.c (ftp_retrieve_glob): Fixed a bug that could cause matchres
11531         being used uninitialized.
11532         (ftp_retrieve_list): Similar fix.
11533
11534         * host.c (add_hlist): Fixed a bug that could cause cmp being used
11535         uninitialized.
11536
11537         * url.c (construct_relative): New function.
11538
11539         * recur.c (recursive_retrieve): Use it.
11540
11541         * retr.c (convert_links): New function.
11542
11543 1996-09-27  Hrvoje Niksic  <hniksic@srce.hr>
11544
11545         * url.c (free_urlpos): New function.
11546
11547         * recur.c (recursive_retrieve): Adapt.
11548
11549         * url.c (get_urls_html): Return a linked list instead of a vector.
11550
11551         * url.c (get_urls_file): Return a linked list instead of a vector.
11552
11553         * geturl.1: Update.
11554
11555         * http.c (gethttp): Implement it.
11556
11557         * init.c (setval): New option: SAVEHEADERS
11558
11559         * ftp.c (ftp_loop_internal): Do not set restval if listing is to
11560         be retrieved. Lack of this test caused bugs when the connection
11561         was lost during listing.
11562
11563         * retr.c (retrieve_url): Fixed a bug that caused
11564         coredumps. *newloc is now reset by default.
11565         (retrieve_url): Lift the twenty-tries limit on proxies.
11566
11567         * version.c: Changed version to 1.4b20.
11568
11569 1996-09-20  Hrvoje Niksic  <hniksic@srce.hr>
11570
11571         * version.c: "Released" 1.4b19.
11572
11573 1996-09-19  Hrvoje Niksic  <hniksic@srce.hr>
11574
11575         * ftp.c (ftp_loop_internal): Renamed from ftp_1fl_loop.
11576         (getftp): Changed prototype to accept ccon *.
11577
11578 1996-09-17  Hrvoje Niksic  <hniksic@srce.hr>
11579
11580         * ftp.c (ftp_retrieve_list): Fixed a bug that caused setting
11581         incorrect values to files pointed to by symbolic links.
11582         (ftp_1fl_loop): Do not count listings among the downloaded URL-s.
11583
11584 1996-09-16  Hrvoje Niksic  <hniksic@srce.hr>
11585
11586         * url.c (mkstruct): Do not prepend "./" in front of a pathname.
11587
11588         * main.c (main): New option: --user-agent.
11589
11590         * geturl.1: Ditto.
11591
11592         * init.h: Ditto.
11593
11594         * init.c (setval): Ditto.
11595
11596         * main.c (main): Rename "server-headers" to "server-response".
11597
11598         * ftp-unix.c (ftp_parse_ls): Check for asterisks at the end of
11599         executables in 'ls -F' listings.
11600
11601 1996-09-15  Hrvoje Niksic  <hniksic@srce.hr>
11602
11603         * url.c (parseurl): Remove realloc() and sprintf().
11604         (str_url): Get rid of sprintf().
11605
11606         * recur.c (recursive_retrieve): Enable FTP recursion through proxy
11607         servers.
11608
11609         * url.h (URL_CLEANSE): Made it else-resistant.
11610         (USE_PROXY): New macro.
11611
11612 1996-09-14  Hrvoje Niksic  <hniksic@srce.hr>
11613
11614         * NEWS: Update.
11615
11616         * version.c: Changed version to 1.4b19.
11617
11618 1996-09-14  Hrvoje Niksic  <hniksic@srce.hr>
11619
11620         * version.c: "Released" 1.4b18.
11621
11622         * url.c: Made it reallocate space exponentially.
11623
11624 1996-09-14  Drazen Kacar  <dave@fly.cc.fer.hr>
11625
11626         * html.c (htmlfindurl): Added <frame src> and <iframe src> among
11627         the list of stuff to fetch.
11628
11629 1996-09-13  Hrvoje Niksic  <hniksic@srce.hr>
11630
11631         * url.c (get_urls_html): Fixed a bug that caused SIGSEGV's with
11632         -Fi.
11633
11634         * html.c (htmlfindurl): Rewrite.
11635
11636         * http.c (gethttp): Use opt.proxy_cache.
11637
11638         * main.c (main): Added --cache option.
11639
11640         * ftp.c (ftp_response): Print server response if opt.print_server
11641         response is set.
11642         (getftp): Print newlines after each request if the server response
11643         is to be printed.
11644         (ftp_response): Copy the last response line to last_respline.
11645
11646         * http.c (gethttp): Add Pragma: nocache for retried
11647         proxy-retrievals.
11648
11649         * ftp.c (getftp): Use it.
11650
11651         * retr.c (buf_discard): New function.
11652
11653         * ftp.c (ftp_response): Use buf_readchar().
11654         (getftp): Flush the control connection buffer before calling
11655         get_contents().
11656
11657         * retr.c (buf_readchar): New function.
11658         (buf_flush): New function.
11659         (get_contents): Use buf_readchar() instead of read(x, x, 1).
11660         (get_contents): Use buf_flush.
11661
11662 1996-09-12  Hrvoje Niksic  <hniksic@srce.hr>
11663
11664         * ftp.c: Incorporate changes to ftp_response.
11665
11666         * ftp.c (ftp_response): Allocate the server response dynamically,
11667         as in read_whole_line and fetch_next_header.
11668
11669         * utils.c (read_whole_line): Fixed a bug that prevented reading
11670         the last line if it is not \n-terminated. Also fixed a possible
11671         memory overflow.
11672
11673         * http.c (fetch_next_header): Return malloc-ed string as large as
11674         needed.
11675         (gethttp): Use new fetch_next_header.
11676
11677 1996-09-12  Hrvoje Niksic  <hniksic@srce.hr>
11678
11679         * http.c (hgetlen): Compute the header length the first time only.
11680         (hgettype): Ditto.
11681         (hgetlocation): Ditto.
11682         (hgetmodified): Ditto.
11683
11684 1996-09-11  Hrvoje Niksic  <hniksic@srce.hr>
11685
11686         * sample.geturlrc: Update.
11687
11688 1996-09-10  Hrvoje Niksic  <hniksic@srce.hr>
11689
11690         * http.c (http_loop): Ditto.
11691
11692         * ftp.c (getftp): Open the output file as binary.
11693
11694         * version.c: Changed version to 1.4b18.
11695
11696 1996-09-10  Hrvoje Niksic  <hniksic@srce.hr>
11697
11698         * version.c: "Released" 1.4b17.
11699
11700         * ftp-unix.c (ftp_parse_ls): If unable to open file, return NULL
11701         instead of failed assertion.
11702
11703 1996-09-09  Hrvoje Niksic  <hniksic@srce.hr>
11704
11705         * ftp.c (ftp_get_listing): Add a numbered suffix to LIST_FILENAME
11706         if a file of that name already exists.
11707
11708 1996-09-05  Hrvoje Niksic  <hniksic@srce.hr>
11709
11710         * ftp.c (ftp_1fl_loop): Handler FTPPORTERR and FOPENERR correctly.
11711
11712         * config.h.in: Define gethostbyname as Rgethostbyname when using
11713         Socks.
11714
11715         * configure.in: Check for -lresolv if using Socks.
11716
11717         * version.c: Changed version to 1.4b17.
11718
11719 1996-07-15  Hrvoje Niksic  <hniksic@srce.hr>
11720
11721         * version.c: "Released" 1.4b16.
11722
11723         * http.c (gethttp): More intelligent check for first line of HTTP
11724         response.
11725         (gethttp): Would bug out on time-stamping.
11726
11727         * version.c: Changed version to 1.4b16.
11728
11729 1996-07-11  Hrvoje Niksic  <hniksic@srce.hr>
11730
11731         * version.c: Released 1.4b15.
11732
11733         * http.c (http_loop): Print \n after the loop entry, not before.
11734
11735         * url.c (url_filename): Use ISDOT.
11736
11737         * url.h (ISDOT): New macro.
11738
11739         * recur.c (recursive_retrieve): Change only opt.recursive for
11740         following FTP.
11741
11742 1996-07-11  Antonio Rosella <antonio.rosella@agip.it>
11743
11744         * socks/geturl.cgi: Fixed version No.
11745
11746         * socks/download-netscape.html: Ditto.
11747
11748         * socks/download.html: Changed socks.html to download.html.
11749
11750 1996-07-11  Hrvoje Niksic  <hniksic@srce.hr>
11751
11752         * url.c (url_filename): Check for opt.dirstruct instead for
11753         opt.recursive && opt.dirstruct.
11754
11755         * init.c (defaults): Ditto.
11756         (defaults): Reset dirstruct by default.
11757         (setval): Set opt.dirstruct whenever setting recursive.
11758
11759         * init.h: Removed FORCEDIRHIER.
11760
11761         * INSTALL: Added -L to socks-description.
11762
11763         * version.c: Changed version to 1.4b15.
11764
11765 1996-07-10  Hrvoje Niksic  <hniksic@srce.hr>
11766
11767         * version.c: "Released" 1.4b14.
11768
11769         * geturl.1: Update AUTHOR to include Rosella as contributor.
11770
11771         * NEWS: Update.
11772
11773         * socks/geturl.cgi: Simplified command creation, nuked <blink>.
11774
11775         * socks/geturl.cgi: Wrap nutscape extensions within if $netscape.
11776         (cal_time): Fix == to eq.
11777
11778         * socks/geturl.cgi: GPL-ized with permission of A. Rosella.
11779
11780         * geturl.1 (hostname): Moved URL CONVENTIONS to the beginning.
11781
11782         * Makefile.in: Use @VERSION@.
11783
11784         * configure.in: Check version from version.c.
11785
11786         * socks/geturl.cgi: Changed /pub/bin/perl to /usr/bin/perl.
11787
11788         * socks/download.html: Created from download-netscape.html, made
11789         HTML-2.0 compliant.
11790
11791         * recur.c (recursive_retrieve): Set opt.force_dir_hier when
11792         following FTP links from recursions.
11793
11794 1996-07-09  Hrvoje Niksic  <hniksic@srce.hr>
11795
11796         * url.c (mymkdir): Fixed a bug that prevented mymkdir() to create
11797         absolute directories correctly.
11798
11799         * version.c: Changed version to 1.4b14.
11800
11801 1996-07-09  Hrvoje Niksic  <hniksic@srce.hr>
11802
11803         * version.c: "Released" 1.4b13.
11804
11805         * url.c (make_backup): New function.
11806
11807         * http.c (http_loop): Make a backup copy of the local file (using
11808         rename(2)) before opening it.
11809
11810         * main.c (main): Added --backups.
11811
11812         * host.c (ftp_getaddress): Bail out on failed mycuserid().
11813         (ftp_getaddress): Check for leading dot on MY_DOMAIN.
11814         (ftp_getaddress): Check for empty, null or (null) domain.
11815
11816         * url.c (get_urls_html): If this_url is NULL, the base must have a
11817         protocol.
11818         (parseurl): Use has_proto.
11819
11820         * retr.c (retrieve_url): Warn when proxy is used with more than 20
11821         retries.
11822
11823         * url.c (mkstruct): Create the directory (calling mymkdir()) only
11824         if it is not already there.
11825         (has_proto): New function.
11826         (get_urls_html): Eliminate the remaining call to findurl -- use
11827         has_proto.
11828
11829         * geturl.1: Ditto.
11830
11831         * main.c: Change -X to -x.
11832
11833         * url.c (url_filename): Simplify creation of filename if
11834         prefix_files is set.
11835         (url_filename): Simplify everything. And I do mean *everything*.
11836         (mkstruct): Add dir_prefix before hostname.
11837         (path_simplify): Fixed a bug that caused writing outside the path
11838         string in case of "." and ".." path strings.
11839
11840 1996-07-06  Hrvoje Niksic  <hniksic@srce.hr>
11841
11842         * init.c: Added --mirror.
11843
11844         * main.c (main): Added -X to force saving of directory hierarchy.
11845
11846         * ftp.c (ftp_retrieve_list): Added recursion depth counter.
11847         (ftp_retrieve_list): Check whether quota is exceeded.
11848
11849         * url.c (get_urls_html): Skip leading blanks for absolute URIs.
11850
11851         * http.c (gethttp): Use referer if present.
11852
11853         * recur.c (recursive_retrieve): Set u->referer before calling
11854         retrieve_url.
11855
11856         * url.c (newurl): Use memset to nullify the struct members.
11857         (freeurl): Free the referer field too.
11858
11859         * url.h: Added referer to urlinfo.
11860
11861         * geturl.1: Updated the manual to document some of the new features.
11862
11863         * utils.c (numdigit): Moved from url.c.
11864
11865         * README: Rewritten.
11866
11867         * config.h.in: Add the support for socks.
11868
11869         * configure.in: Add the support for socks.
11870
11871         * url.c (url_filename): If the dir_prefix is ".", work with just
11872         the file name.
11873         (url_filename): Do not look for .n extensions if timestamping if
11874         turned on.
11875
11876         * retr.c (show_progress): Skip the over-abundant restval data, and
11877         print the rest of it with ',' instead of '.'.
11878
11879 1996-07-05  Hrvoje Niksic  <hniksic@srce.hr>
11880
11881         * retr.c (show_progress): Changed second arg. to long (as it
11882         should be).
11883         (show_progress): Moved to retr.c.
11884         (get_contents): Moved to retr.c.
11885
11886         * version.c: Change version to 1.4b13.
11887
11888 1996-07-05  Hrvoje Lacko <hlacko@fly.cc.fer.hr>
11889
11890         * url.c (in_acclist): Would return after the first suffix.
11891
11892 1996-07-04  Hrvoje Niksic  <hniksic@srce.hr>
11893
11894         * version.c: "Released" 1.4b12.
11895
11896         * url.c (path_simplify): More kludgifications.
11897         (get_urls_html): Use new parameters for htmlfindurl.
11898
11899         * html.c: Removed memorizing "parser states", since the new
11900         organization does not require them.
11901
11902         * init.c (run_geturlrc): Use read_whole_line.
11903
11904         * ftp-unix.c (ftp_parse_ls): Use read_whole_line.
11905
11906         * recur.c (parse_robots): Use read_whole_line.
11907
11908         * utils.c (read_whole_line): New function.
11909
11910         * recur.c (tried_robots): Use add_slist/in_slist, *much* cleaner.
11911
11912         * host.c (ngethostbyname): Call inet_addr just once. Yet to be
11913         tested on OSF and Ultrix.
11914         (add_hlist): New function.
11915         (free_hlist): New function.
11916         (search_host): New function.
11917         (search_address): New function.
11918         (realhost): Use search_host, search_address and add_hlist.
11919         (same_host): Replaced realloc() with strdupdelim(), made
11920         case-insensitive, fixed a memory leak.
11921
11922         * html.c (ftp_index): Fixed tm_min and tm_sec to be tm_hour and
11923         tm_min, like intended.
11924
11925         * version.c: Change user agent information to
11926         Geturl/version.
11927
11928 1996-07-03  Hrvoje Niksic  <hniksic@srce.hr>
11929
11930         * utils.c: Renamed nmalloc.c to utils.c, .h likewise.
11931
11932         * url.c (acceptable): Always accept directories.
11933
11934         * ftp-unix.c (ftp_parse_ls): Support brain-damaged "ls -F"-loving
11935         servers by stripping trailing @ from symlinks and trailing / from
11936         directories.
11937
11938         * ftp.c (ftp_loop): Debugged the "enhanced" heuristics. :-)
11939
11940         * url.c (skip_url): Use toupper instead of UCASE.
11941
11942         * host.c (sufmatch): Made it case-insensitive.
11943
11944         * url.c (match_backwards_or_pattern): Fixed i == -1 to j == -1.
11945         (match_backwards): New function, instead of
11946         match_backwards_or_pattern.
11947
11948         * recur.c (recursive_retrieve): Increased performance by
11949         introducing inl, which reduces number of calls to in_slist to only
11950         one.
11951
11952         * ftp.c (ftp_loop): Enhanced the heuristics that decides which
11953         routine to use.
11954
11955         * main.c (printhelp): Removed the warranty stuff.
11956
11957 1996-07-02  Hrvoje Niksic  <hniksic@srce.hr>
11958
11959         * url.c (add_slist): Simplify.
11960         (match_backwards_or_pattern): New function.
11961         (in_acclist): Use match_backwards_or_pattern.
11962         (matches): Remove.
11963
11964 1996-06-30  Hrvoje Niksic  <hniksic@srce.hr>
11965
11966         * ftp.c (ftp_loop): Call ftp_index on empty file names, if not
11967         recursive.
11968
11969         * html.c (ftp_index): Fixed to work. Beautified the output.
11970
11971         * ftp.c (ftp_retrieve_glob): Another argument to control whether
11972         globbing is to be used.
11973         (ftp_retrieve_list): Compare the time-stamps of local and remote
11974         files to determine whether to download.
11975
11976 1996-06-29  Hrvoje Niksic  <hniksic@srce.hr>
11977
11978         * ftp.c (rel_constr): New function.
11979
11980         * retr.c (retrieve_from_file): Check for text/html before
11981         retrieving recursively.
11982
11983         * main.c (main): Check whether the file is HTML before going into
11984         recursive HTML retrieving.
11985
11986         * ftp.c (ftp_retrieve_list): Manage directories.
11987         (ftp_retrieve_glob): Pass all the file-types to ftp_retrieve_list.
11988         (ftp_1fl_loop): Fixed a bug that caused con->com to be incorrectly
11989         initialized, causing bugchecks in getftp to fail.
11990
11991         * configure.in: Check for symlink.
11992
11993         * ftp.c (ftp_retrieve_list): Added support for symlinks.
11994
11995         * version.c: "Released" 1.4b10.
11996
11997         * atotm.c (atotm): Redeclared as time_t.
11998
11999         * init.c: New variable "timestamping".
12000
12001         * main.c (main): New option 'N'.
12002
12003         * http.c (hgetlocation): Case-insensitive match.
12004         (hgetmodified): New function.
12005         (http_loop): Implement time-stamping.
12006
12007 1996-06-28  Hrvoje Niksic  <hniksic@srce.hr>
12008
12009         * version.c: Changed version to 1.4b10
12010
12011         * atotm.c: New file, from phttpd.
12012
12013         * options.h (struct options): New parameter timestamping.
12014
12015         * version.c: 1.4b9 "released".
12016
12017         * recur.c (recursive_retrieve): Used linked list (ulist) for
12018         faster storing of URLs.
12019
12020         * url.c (get_urls_html): Removed the old kludge with comparing the
12021         outputs of htmlfindurl and findurl.
12022         (get_urls_html): Added better protocol support here.
12023         (create_hash): Removed, as well as add_hash and in_hash.
12024         (addslist): New function.
12025         (in_slist): ditto
12026
12027         * version.c: Released 1.4b8, changed version to b9.
12028
12029 1996-06-27  Hrvoje Niksic  <hniksic@srce.hr>
12030
12031         * ftp.c (freefileinfo): New function.
12032         (delelement): New function.
12033
12034         * everywhere: GPL!
12035
12036         * ftp.c (ftp_loop): Use ccon.
12037         (ftp_retrieve_glob): Likewise.
12038
12039         * ftp.h: Define ccon, to define status of control connection.
12040
12041         * ftp.c (ftp_get_listing): New function.
12042         (ftp_retrieve_more): New function.
12043         (ftp_retrieve_glob): New function.
12044
12045 1996-06-25  Hrvoje Niksic  <hniksic@srce.hr>
12046
12047         * configure.in: Removed the search for cuserid().
12048
12049         * init.c (getmode): Renamed to getperms.
12050
12051 1996-06-24  Hrvoje Niksic  <hniksic@srce.hr>
12052
12053         * version.c: New version.
12054
12055         * main.c (hangup): New function, that handles hangup. Hangup
12056         signal now causes geturl to stop writing on stdout, and to write
12057         to a log file.
12058
12059         * ftp.c (getftp): "Released" 1.4b7.
12060
12061         * html.c (htmlfindurl): Ignore everything inside <head>...</head>.
12062         (ftp_index): Use fileinfo/urlinfo.
12063
12064         * ftp-unix.c (ftp_parse_ls): New function.
12065         (symperms): New function.
12066
12067         * ftp.c (ftp_1fl_loop): New function, to handle 1-file loops.
12068
12069         * retr.c (retrieve_url): Added FTP support.
12070
12071 1996-06-23  Hrvoje Niksic  <hniksic@srce.hr>
12072
12073         * geturl.h: Removed NOTFTP2HTML enum.
12074         Added DO_LOGIN, DO_CWD and DO_LIST. LIST_ONLY is obsolete.
12075
12076         * ftp.c (getftp): Resynched with urlinfo.
12077         (getftp): Removed HMTL-ization of index.html from getftp.
12078
12079         * version.c: 1.4b6 "released".
12080
12081         * options.h (options): New struct, to keep options in.
12082
12083         * http.c (http_loop,gethttp): Synched with proxy.
12084
12085         * retr.c (retrieve_url): Implemented proxy retrieval.
12086
12087         * main.c (main): Use retrieve_from_file.
12088
12089 1996-06-22  Hrvoje Niksic  <hniksic@srce.hr>
12090
12091         * retr.c (retrieve_from_file): New function.
12092
12093         * url.c (parseurl): Modified to return URLOK if all OK. Protocol
12094         can be found in u->proto.
12095
12096         * ftp.c (ftp_response): Fixed to accept multi-line responses as
12097         per RFC 959.
12098
12099         * recr.c (recursive_retrieve): Take newloc from retrieve_url.
12100
12101         * url.c (mymkdir): Removed the file of the same name, if one
12102         exists.
12103         (isfile): New function.
12104         (mkstruct): Fixed the '/' glitches.
12105         (path_simplify): Hacked to treat something/.. correctly.
12106
12107 1996-06-21  Hrvoje Niksic  <hniksic@srce.hr>
12108
12109         * http.c (gethttp): Close the socket after error in headers.
12110         (http_loop): HEOF no longer a fatal header.
12111
12112         * loop.c (retrieve_url): When dt is NULL, do not modify it. This
12113         simplifies the syntax of calling retrieve_url.
12114
12115         * recr.c (recursive_retrieve): Modified to use get_urls_html.
12116
12117         * url.c (get_urls_file): New function.
12118         (get_urls_html): New function.
12119
12120         * recr.c (recursive_retrieve): Patched up to conform to the
12121         standards.
12122
12123         * http.c (gethttp): Synched with the rest...
12124         (gethttp): Treat only CONREFUSED specially, with connection
12125         errors.
12126
12127         * init.c,geturl.1,http.c (http_loop): Removed kill_error.
12128
12129 1996-06-20  Hrvoje Niksic  <hniksic@srce.hr>
12130
12131         * http.c (http_loop): New function.
12132
12133         * loop.c: Removed *lots* of stuff from retrieve_url.
12134
12135         * url.c (parseurl): Changed to work with urlinfo. Integrated
12136         username finding and path parsing.
12137         (newurl): New function.
12138         (freeurl): New function.
12139         (mkstruct): Removed the old bogosities, made it urlinfo-compliant.
12140         (url_filename): Likewise.
12141         (path_simplify): Accept relative paths too.
12142         (opt_url): Made urlinfo-compliant, removed bogosities.
12143         (path_simplify): Expanded to accept relative paths.
12144         (str_url): A replacement for hide_url
12145         (decode_string): Fixed a bug that caused malfunctioning when
12146         encountering an illegal %.. combination.
12147         (opt_url): Removed the argument. Dot-optimizations are now default.
12148
12149         * nmalloc.c (strdupdelim): New function.
12150
12151         * url.h: Added the urlinfo structure
12152
12153 1996-06-19  Hrvoje Niksic  <hniksic@srce.hr>
12154
12155         * url.c (hide_url): Thrown out the protocol assertion. Do not
12156         change the URL if the protocol if not recognized.
12157         (findurl): Put continue instead of break.
12158
12159 1996-06-18  Hrvoje Niksic  <hniksic@srce.hr>
12160
12161         * sample.geturlrc: Changed the defaults to be commented out and
12162         harmless (previous defaults caused pains if copied to
12163         ~/.geturlrc).
12164
12165         * http.c (gethttp): Print the HTTP request in debug mode.
12166
12167         * connect.c (iread): Added EINTR check loop to select-ing
12168         too. EINTR is now correctly handled with select().
12169
12170         * TODO: new file
12171
12172 1996-05-07  Hrvoje Niksic  <hniksic@srce.hr>
12173
12174         * host.c (same_host): Made the function a little bit more
12175         intelligent regarding diversified URL syntaxes.
12176
12177         * url.c (skip_url): Spaces are now skipped after URL:
12178
12179         * Released 1.3.1 with the patch to prevent crashing when sending
12180         NULL to robot* functions and the patch to compile "out of the box"
12181         on AIX.
12182
12183         * recr.c (recursive_retrieve): Added checking whether this_url is
12184         NULL when calling the robot functions.
12185
12186         * ChangeLog: New file.