]> sjero.net Git - wget/blob - src/ChangeLog
Use proper prototypes for snprintf, vsnprintf.
[wget] / src / ChangeLog
1 2009-09-24  Micah Cowan  <micah@cowan.name>
2
3         * sysdep.h: Use proper prototypes for snprintf, vsnprintf (thanks
4         to Steven Schweda).
5
6 2009-09-24  Steven Schweda  <sms@antinode.info>
7
8         * main.c (print_version): Remove VMS-conditional build info
9         string; the new VMS builders use OS_TYPE.
10
11         * ftp.c (getftp): Fix accidental use of target -> targ.
12
13 2009-09-24  Micah Cowan  <micah@cowan.name>
14
15         * host.c (host_errstr): host_errstr should return const char *.
16
17 2009-09-22  Micah Cowan  <micah@cowan.name>
18
19         * Makefile.am (version.c): Explicitly tell Mercurial where the
20         top-source repository should be, so it doesn't accidentally use
21         the repository for a containing directory (for instance, if the
22         user's home directory is managed by a Mercurial repo). Also
23         ensures we find the repository, even if the build directory is
24         outside the source directory.
25
26         * wget.h: define WINDOWS if _WIN32 or __WIN32__ is defined, but
27         not __CYGWIN__.
28
29         * mswindows.c (xsleep): Check for availability of the sleep
30         function, in addition to the usleep function.
31         (get_winsock_error, windows_strerror): Removed (gnulib already
32         supplies this functionality).
33
34         * mswindows.h [NEED_GAI_STRERROR]: define gai_strerror
35         to (gnulib's) strerror, rather than windows_strerror. Removed
36         error macro definitions provided by gnulib.
37         (windows_strerror): Removed (gnulib already supplies this
38         functionality).
39
40         * host.c: Don't declare h_errno when building on Windows.
41
42         * Makefile.am (LIBS): Added @W32LIBS@.
43         (EXTRA_wget_SOURCES): Removed (it's in LIBOBJ now).
44         (version.c): Removed dependency on $(LDADD), since it may include
45         dependencies that are not part of the Wget sources (-lwsock32, for
46         instance).
47
48         * openssl.c (ssl_check_certificate): Avoid reusing the same buffer
49         space for successive quoted arguments. Thanks to Steven Schweda
50         for pointing out the problem.
51
52 2009-09-21  Micah Cowan  <micah@cowan.name>
53
54         * progress.c (update_speed_ring): "the the" -> "the".
55
56         * css-url.c, iri.c, mswindows.c: Removed assert.h inclusion (not
57         using it).
58
59 2009-09-11  Steven Schweda  <sms@antinode.info>
60
61         * utils.c, utils.h (fopen_excl): Make second argument an int,
62         rather than a bool (so it can handle the appropriate VMS version
63         of the flag).
64
65         * main.c (print_version): Don't print LOCALEDIR unless NLS is
66         enabled.
67
68         * http.c (gethttp): Pass FOPEN_BIN_FLAG, instead of true.
69
70         * ftp.c (ftp_retrieve_glob): Cast strcmp to assign to cmp, for a
71         silly HP build environment.
72
73 2009-09-08  Steven Schubiger  <stsc@member.fsf.org>
74
75         * main.c, init.c: Mark the --preserve-permissions and 
76         --html-extension option as deprecated.
77
78 2009-09-06  Micah Cowan  <micah@cowan.name>
79
80         * ftp.c (getftp, ftp_loop_internal): Separate "len" input/output
81         parameter (with different meanings for input and output), into two
82         separate parameters, one input (passed_expected_bytes) and one
83         output (qtyread). Fixes bug #26870.
84
85 2009-09-05  Steven Schubiger  <stsc@member.fsf.org>
86
87         * retr.h: Declare set_local_file() to avoid build warnings.
88
89 2009-09-05  Gisle Vanem  <gvanem@broadpark.no>
90
91         * connect.c, init.c, main.c, openssl.c, options.h:  Replace
92         "ifdef MSDOS" with "ifdef USE_WATT32" since DOS-targets in fact
93         use the Watt-32 tcp/ip stack.
94
95 2009-09-04  Micah Cowan  <micah@cowan.name>
96
97         * Makefile.am: Move build_info.c to wget_SOURCES from
98         nodist_wget_SOURCES, reduce dependencies, and invoke build_info.pl
99         in its new home, $(top_srcdir)/build-aux.
100
101 2009-09-03  Micah Cowan  <micah@cowan.name>
102
103         * ftp-ls.c (ftp_parse_vms_ls): Replace use of localtime_r with
104         localtime, as not all platforms have localtime_r.
105
106         * Makefile.am (wget_SOURCES): Rearranged some of the file order,
107         so .c files and .h files are apart. Added gettext.h, so that it
108         shows up in the dist.
109
110 2009-09-02  Micah Cowan  <micah@cowan.name>
111
112         * gettext.h: Refreshed from gettext 0.17.
113
114         * test.c: Added definition of program_name variable, required by
115         lib/error.c (libgnu.a). Doesn't cause problems until you try to
116         build on a non-GNU system...
117
118         * build_info.c.in: Removed useless "+gettext" feature ad.
119
120 2009-08-29  Steven Schubiger  <stsc@member.fsf.org>
121
122         * convert.c (local_quote_string): Percent-encode semicolons
123         in local file strings.
124
125 2009-08-27  Micah Cowan  <micah@cowan.name>
126
127         * wget.h (uerr_t): added new VERIFCERTERR code for SSL certificate
128         problems. Marked exit codes that are defined but never used (at
129         least, the ones I could find).
130
131         * retr.c, retr.h (retrieve_url): Added a new boolean argument to
132         determine whether an exit status should be recorded.
133         (retrieve_from_file): Adjust to new retrieve_url signature.
134
135         * res.c (res_retrieve_file): Don't have retrieve_url record an
136         exit status for robots.txt.
137
138         * recur.c (retrieve_tree): Adjust to new retrieve_url signature.
139
140         * main.c (main): Use the exit status stored by retrieve_url.
141
142         * http.c (gethttp): Distinguish certificate verification problems
143         from SSL connection issues.
144         (http_loop): Handle newly-created VERIFCERTERR error code.
145
146         * exits.c, exits.h: Newly added.
147         
148         * Makefile.am (wget_SOURCES): Add exits.c and exits.h.
149
150 2009-08-27  Micah Cowan  <micah@cowan.name>
151
152         * http.c (gethttp): Make sure Wget heeds cookies when they
153         are sent with a 401 response; or any other sort of response for
154         that matter (#26775).
155
156 2009-08-19  Micah Cowan  <micah@cowan.name>
157
158         * openssl.c (ssl_check_certificate): Only warn about an attack if
159         the hostname would otherwise have matched. Also some formatting
160         cleanup.
161
162 2009-08-19  Joao Ferreira  <joao@joaoff.com>
163
164         * openssl.c (ssl_check_certificate): Detect embedded NUL
165         characters in the SSL certificate common name.
166
167 2009-08-17  Tony Lewis  <tlewis@exelana.com>
168
169         * http.c (gethttp): Ensure that we parse Content-Length before we
170         attempt to refer to its value. Without this fix, NTLM support was
171         completely buggered. #27192
172
173 2009-08-09  Michael Baeuerle  <michael.baeuerle@gmx.net>
174
175         * ftp.c: #include <strings.h> for strcasecmp.
176
177 2009-07-28  Micah Cowan  <micah@cowan.name>
178
179         * main.c (option_data): Rename --html-extension to
180         --adjust-extension.
181         (print_help): Ditto.
182         
183         * options.h (struct option): Rename html_extension to
184         adjust_extension.
185         * http.c (gethttp): Ditto.
186         * convert.c (local_quote_string): Ditto.
187
188         * init.c (commands): Add "adjustextension", and reflect rename
189         change for opt.adjust_extension, for both "adjustextension" and
190         "htmlextension".
191
192 2009-07-27  Micah Cowan  <micah@cowan.name>
193
194         * options.h (struct options): Added restrict_files_nonascii
195         boolean field.
196
197         * url.c (FILE_CHAR_TEST): Add check for chars outside the ASCII
198         range.
199
200         * init.c (defaults): Add restrict_files_nonascii to initialization.
201         (cmd_spec_restrict_file_names): Allow parsing of "ascii" keyword.
202
203 2009-07-27  Marcel Telka  <marcel@telka.sk>
204
205         * iri.c (do_conversion): Typo: invalide -> invalid
206
207 2009-07-27  Petr Pisar  <petr.pisar@atlas.cz>
208
209         * main.c (print_help): Fixed a couple typos.
210
211 2009-07-26  Micah Cowan  <micah@cowan.name>
212
213         * main.c (option_data): Rename --locale option to --local-encoding
214         (print_help): Document --no-iri, --local-encoding, and
215         --remote-encoding, within usage message. Remove defunct
216         --preserve-permissions.
217
218 2009-07-23  Micah Cowan  <micah@cowan.name>
219
220         * progress.c (get_eta): Change "Translation note" in comment to
221         "TRANSLATORS", so it actually appears in wget.pot.
222
223 2009-07-06  Micah Cowan  <micah@cowan.name>
224
225         * main.c (print_help): Improve documentation of --base.
226
227 2009-07-05  Micah Cowan  <micah@cowan.name>
228
229         * html-url.c (tag_handle_meta): Handle meta name="robots"
230         properly: deal with whitespace, commas after...
231
232         * netrc.c (parse_netrc): Rename local-scope variable "quote" to
233         "qmark", to avoid conflict with the function name.
234
235 2009-07-05  Petr Pisar  <petr.pisar@atlas.cz>
236
237         * main.c (print_version): Mark initial line for translation, along
238         with (env), (user), and (system). Change copyright year to 2009.
239
240         * http.c (http_loop): Space after colon.
241
242         * gnutls.c (ssl_check_certificate): Use quote function, rather
243         than explicit quotes.
244
245 2009-07-05  Micah Cowan  <micah@cowan.name>
246
247         * Makefile.am (version.c): Add dependency on configure.ac.
248
249         * iri.c: Mark some strings for translation.
250
251 2009-07-04  Steven Schweda  <sms@antinode.info>
252
253         * wget.h (ORIG_SFX): Macro added, to supply an alternative "_orig"
254         suffix on VMS.
255         
256         * connect.c, host.c, host.h, main.c: Include "vms_ip.h" rather
257         than <netdb.h> on VMS systems.
258
259         * convert.c (write_backup_file): Use "_orig" rather than ".orig"
260         on VMS.
261
262         * ftp-basic.c (ftp_list): Don't use LIST -a on VMS servers.
263
264         * ftp.c [__VMS]: Include "vms.h"
265         * ftp.c (getftp): Disable some unhelpful "for VMS" code. Pass the
266         OS type to ftp_list.
267         (getftp) [__VMS]: Alter the filename as required, and invoke fopen
268         with extra optional arguments.
269         (ftp_retrieve_list): Set permissions before setting the times.
270
271         * ftp-ls.c [__VMS]: Various improvements.
272
273         * http.c (SET_USER_AGENT): Added. Include operating-system info in
274         the User-Agent header.
275         (gethttp): Use ORIG_SFX macro.
276         (gethttp) [__VMS]: invoke fopen with extra arguments to
277         communicate file type.
278         (http_loop): Add cast to time_t.
279
280         * init.c (wgetrc_user_file_name) [__VMS]: Adjustments for where to
281         find the .wgetrc.
282
283         * log.c: Adjustments to improve handling of log files on VMS.
284
285         * main.c [__VMS]: Added --ftp-stmlf option (and associated
286         documentation). Adjust description of backup-suffixes, as they now
287         differ for VMS.
288         (print_help, print_version): Include OS type in version
289         information.
290         (main) [__VMS]: Invoke fopen with extra options, to specify file
291         type information.
292
293         * netrc.c (search_netrc) [__VMS]: Fix .netrc-finding.
294
295         * openssl.c, openssl.h (ssl_connect_wget): Renamed from ssl_connect.
296
297         * options.h (struct options): Add ftp_stmlf field.
298
299         * retr.c (write_data) [__VMS]: Avoid fflush.
300
301         * url.c [__VMS]: Include vms.h.
302         * url.c (url_file_name) [__VMS]: Handle naming as required for VMS.
303
304         * utils.c [__VMS]: Include vms.h. Various added facilities for VMS
305         needs.
306
307 2009-07-04  Micah Cowan  <micah@cowan.name>
308
309         * main.c (print_version): Allow localization of the version-info
310         labels, eschew attempts at alignment (which is complicated when
311         handling translated strings), and avoid using printf() with
312         variable-stored format strings that lack conversion
313         specifications.
314         (format_and_print_line): For similar reasons, don't calculate
315         line-continuation tabulation based on the number of bytes in a
316         string.
317
318 2009-07-04  Steven Schubiger  <stsc@member.fsf.org>
319
320         * url.c (url_parse): If an URL scheme is invalid, distinguish
321         between an unsupported or missing scheme.
322
323         * url.c: Add a "missing scheme" entry to parse_errors.
324
325 2009-07-03  Micah Cowan  <micah@cowan.name>
326
327         * iri.h (iri_dup): Provide macro definition for when IRIs are
328         disabled.
329
330         * Makefile.am (LIBS): Added @LIBICONV@.
331         (wget_SOURCES): Added iri.h.
332         (EXTRA_wget_SOURCES): Added iri.c, so it gets packaged even if IRI
333         support was disabled.
334
335 2009-07-02  Micah Cowan  <micah@cowan.name>
336
337         * recur.c (url_enqueue): Quote enqueue/dequeue debug messages.
338
339         * html-url.c (append_url): Change "merge()" quoting style from
340         locale_quoting_style to escape_quoting_style.
341
342 2009-07-01  Micah Cowan  <micah@cowan.name>
343
344         * retr.c (retrieve_url): Use the existing "redirect" label,
345         instead of superfluous "second_try". Removed no-longer-accurate
346         debug statement. Use the "newloc" parameter to store the fallback
347         URL, when IRI version was rejected.
348
349         * recur.c (retrieve_tree): Always use the parsed URL for tracking
350         the Referer, since that's the one we actually requested (if
351         there's a difference in terms of percent-encodings and such).
352
353 2009-07-01  Steven Schubiger  <stsc@member.fsf.org>
354
355         * Makefile.am: Add a rule to generate build_info.c and list
356         the build_info.c.in file in EXTRA_DIST. Adjust elsewhere
357         where needed.
358         
359         * build_info.c: Remove this static source file.
360         
361         * build_info.c.in: Data for generation of build_info.c.
362
363 2009-06-29  Micah Cowan  <micah@cowan.name>
364
365         * html-url.c (append_url): Quote some more arguments that might
366         contain characters that are inappropriate to display for the
367         current locale.
368
369         * retr.c (retrieve_from_file): Be sure to pass iri information
370         when parsing an input-fle url, and be sure to hand a clean iri
371         struct, off to retrieve_tree and retrieve_url.
372
373         * iri.c, iri.h (iri_dup): Added.
374
375         * retr.c (retrieve_url): Re-parse for IRI fallback.
376
377         * main.c (main): Set up iri before the url_parse invocation (so we
378         can use it).
379
380 2009-06-20  Jay Krell  <jay.krell@cornell.edu>
381
382         * sysdep.h (_ALL_SOURCE): (small change) Define the _ALL_SOURCE
383         macro on INTERIX systems. (I switched the location from ftp.c to
384         sysdep.h --mjc)
385
386 2009-06-15  Micah Cowan  <micah@cowan.name>
387
388         * ftp.c (getftp): If we can't accept the connection, return
389         CONERROR, not whatever the contents of err happens to be. Fixes
390         bug #25015.
391
392         * retr.c (fd_read_body): Make both args to progress_create
393         consistent, resulting in an accurate progress display. Fixes bug
394         #24948.
395
396 2009-06-14  Micah Cowan  <micah@cowan.name>
397
398         * Makefile.am (wget_SOURCES): css-tokens.h needs to ship with
399         dist, too.
400
401 2009-06-13  Micah Cowan  <micah@cowan.name>
402
403         * init.c: Rename setval_internal_wrapper to setval_internal_tilde,
404         ensure we don't "replace" the tilde unless it's actually
405         present. Clean up some minor GNU style issues.
406
407 2009-06-13  Julien Pichon  <julienpichon7@gmail.com>
408
409         * init.c: Handle tilde-expansion in wgetrc commands, without
410         resorting to setting/unsetting globals to change behavior in one
411         call location.
412
413 2009-06-12  Micah Cowan  <micah@cowan.name>
414
415         * host.c: Include <sys/types.h> before <sys/socket.h>. Not
416         required by POSIX any more, but some older systems (such as
417         FreeBSD 4.1) still need it, and it doesn't seem like it could
418         hurt...
419
420         * build_info.c (library): Handle "https" as a feature in its own
421         right, apart from "gnutls" and "openssl".
422
423         * host.c: Declare h_errno if no declaration is provided. Idea
424         thanks to Maciej W. Rozycki.
425
426 2009-06-11  Xin Zou  <zouxin2008@gmail.com>     
427         
428         * http.c (gethttp): Fix some memory leaks.
429         
430 2009-06-11  Micah Cowan  <micah@cowan.name>
431
432         * http.c (http_atotm): Handle potential for setlocale's return
433         value to be static storage. Thanks to Benjamin Wolsey
434         <bwy@benjaminwolsey.de>.
435
436         * sysdep.h: Need NAMESPACE_TWEAKS on non-Linux glibc-based
437         systems, too. Thanks to Robert Millan.
438
439 2009-05-28  Steven Schubiger  <stsc@member.fsf.org>
440
441         * ftp.c (ftp_get_listing): Update the "listing file" 
442         string after calling ftp_loop_internal().
443
444 2009-05-27  Steven Schubiger  <stsc@member.fsf.org>
445
446         * ftp.c (ftp_get_listing): Duplicate the "listing file"
447         string to avoid memory corruption when FOPEN_EXCL_ERR is
448         encountered.
449
450 2009-05-17  Steven Schubiger  <stsc@member.fsf.org>
451
452         * progress.c (eta_to_human_short): Fix the remaining hours
453         to be displayed. Spotted by Tadeu Martins (#26411).
454
455 2009-04-24  Micah Cowan  <micah@cowan.name>
456
457         * hash.c: Change stdint.h inclusion to use HAVE_STDINT_H, not C99
458         check.
459
460         * connect.c: stdint.h inclusion added.
461
462         Thanks to Markus Duft <mduft@gentoo.org> for a similar patch.
463         
464 2009-04-20  Micah Cowan  <micah@cowan.name>
465
466         * Makefile.am (version.c): Fix unportable use of "echo -n".
467
468 2009-04-13  Steven Schubiger  <stsc@member.fsf.org>
469
470         * ftp.c (ftp_retrieve_list): Move the duplicated code that
471         determines the local file to a function.
472         
473         * http.c (http_loop): Likewise.
474
475         * retr.c (set_local_file): New function.
476
477 2009-04-11  Steven Schubiger  <stsc@member.fsf.org>
478
479         * init.c (initialize): Run a custom SYSTEM_WGETRC when 
480         provided as an environment variable.
481
482 2009-02-27  Gisle Vanem  <gvanem@broadpark.no>
483
484         * main.c (main): "freopen (NULL,.." causes an assertion in MSVC
485         debug-mode.  I.e. NULL isn't legal. But the "CONOUT$" device works
486         fine.
487
488 2009-02-27  Steven Schubiger  <stsc@member.fsf.org>
489
490         * ftp.c (ftp_loop_internal): Don't claim for FTP retrievals
491         when writing to standard output either that the document
492         has been saved. Addresses bug #20520 again.
493
494 2009-02-21  Steven Schubiger  <stsc@member.fsf.org>
495
496         * http.c (http_loop): When a document is written to 
497         standard output, don't claim it has been saved to a file.
498         Addresses bug #20520.
499
500 2009-02-18  Steven Schubiger  <stsc@members.fsf.org>
501
502         * recur.h: Remove the dangling declaration for recursive_cleanup().
503
504 2009-02-01  Gerardo E. Gidoni  <gerel@gnu.org>
505
506         * main.c, recur.c, recur.h, res.c, retr.c, retr.h: restructured code to
507         avoid multiple 'url_parse' calls.
508
509 2008-11-13  Micah Cowan  <micah@cowan.name>
510
511         * http.c (gethttp): Don't do anything when content-length >= our
512         requested range.
513
514 2008-11-27  Saint Xavier  <wget@sxav.eu>
515
516         * http.c (gethttp): Move authentication code before filename
517         allocation avoiding fallbacking on default filename because
518         "Content-Disposition" header wasn't present before authentcation
519         has been completed. Fixes bug #24862.
520
521 2008-11-16  Steven Schubiger  <stsc@members.fsf.org>
522
523         * main.c: Declare and initialize the numurls counter.
524
525         * ftp.c, http.c: Make the counter visible here and use it.
526         
527         * options.h: Remove old declaration from options struct.
528
529 2008-11-15  Steven Schubiger  <stsc@members.fsf.org>
530
531         * init.c (defaults): Set default waitretry value.
532
533 2008-11-14  Steven Schubiger  <stsc@members.fsf.org>
534
535         * main.c (format_and_print_line): Use a custom format 
536         string for printing leading spaces.
537
538 2008-11-12  Micah Cowan  <micah@cowan.name>
539
540         * ftp-ls.c (ftp_index): HTML-escape dir name in title, h1, a:href.
541
542 2008-11-12  Alexander Belopolsky  <alexander.belopolsky@gmail.com>
543
544         * url.c, url.h (url_escape_unsafe_and_reserved): Added.
545
546         * ftp-ls.c (ftp_index): URL-escape, rather than HTML-escape, the
547         filename appearing in the link.
548
549 2008-11-12  Steven Schubiger  <stsc@members.fsf.org>
550
551         * main.c (print_version): Hand the relevant
552         xstrdup/xfree calls back to format_and_print_line().
553
554 2008-11-11  Steven Schubiger  <stsc@members.fsf.org>
555
556         * main.c (format_and_print_line): Move both the memory
557         allocating and freeing bits upwards to print_version().
558
559 2008-11-10  Saint Xavier  <wget@sxav.eu>
560
561         * http.c: Make --auth-no-challenge works with user:pass@ in URLs.
562
563 2008-11-05  Micah Cowan  <micah@cowan.name>
564
565         * ftp.c (print_length): Should print humanized "size remaining"
566         only when it's at least 1k.
567
568 2008-10-31  Micah Cowan  <micah@cowan.name>
569
570         * main.c (print_version): Add information about the mailing list.
571
572 2008-10-31  Alexander Drozdov  <dzal_mail@mtu-net.ru>
573
574         * retr.c (fd_read_hunk): Make assert deal with maxsize == 0.
575
576         * ftp-ls.c (clean_line): Prevent underflow on empty lines.
577
578 2008-10-26  Gisle Vanem  <gvanem@broadpark.no>
579
580         * main.c (format_and_print_line): Put variables on top of
581         blocks (not all compilers are C99). Add an extra '\n' if
582         SYSTEM_WGETRC isn't defined and printed.
583
584 2008-09-09  Gisle Vanem  <gvanem@broadpark.no>
585
586         * url.c (url_error): Use aprintf, not asprintf.
587         
588 2008-09-09  Micah Cowan  <micah@cowan.name>
589
590         * init.c (home_dir): Save the calculated value for home,
591         to avoid duplicated work on repeated calls.
592         (wgetrc_file_name) [WINDOWS]: Define and initialize home var.
593
594         * build_info.c, main.c: Remove unnecessary extern vars
595         system_wgetrc and locale_dir.
596
597         * main.c: Define program_name for lib/error.c.
598
599 2008-09-02  Gisle Vanem  <gvanem@broadpark.no>
600
601         * mswindows.h: Must ensure <stdio.h> is included before
602         we redefine ?vsnprintf().
603
604 2008-08-08  Steven Schubiger  <stsc@members.fsf.org>
605
606         * main.c, utils.h: Removed some dead conditional DEBUG_MALLOC code.
607
608 2008-08-03  Micah Cowan  <micah@cowan.name>
609
610         * main.c (print_help): Added --default-page.
611
612 2008-08-01  Joao Ferreira  <joao@joaoff.com>
613
614         * init.c, main.c, options.h, url.c: Added option --default-page
615         to support alternative default names for index.html
616
617 2008-08-03  Micah Cowan  <micah@cowan.name>
618
619         * build_info.c, css-url.c: #include wget.h, not config.h.
620
621 2008-08-03  Steven Schubiger  <stsc@members.fsf.org>
622
623         * url.c, url.h (url_error): Better messages for unsupported
624         schemes, especially https.
625
626         * html-url.c, recur.c, retr.c: Adjust to new url_error
627         invocation, and free result.
628
629 2008-07-17  Steven Schubiger  <stsc@members.fsf.org>
630
631         * retr.c (retrieve_from_file): When given an URL as input file,
632         use it as baseref if none was specified and treat the input file
633         as HTML if its content type is text/html.
634
635         * init.c (cleanup): Free the memory associated with the base
636         option (when DEBUG_MALLOC is defined).
637
638 2008-07-02  Xavier Saint  <wget@sxav.eu>
639
640         * iri.c, iri.h  : New function idn_decode() to decode ASCII
641         encoded hostname to the locale.
642
643         * host.c : Show hostname to be resolved both in locale and
644         ASCII encoded.
645
646 2008-06-28  Steven Schubiger  <stsc@members.fsf.org>
647
648         * retr.c (retrieve_from_file): Allow for reading the links from
649         an external file (HTTP/FTP).
650
651 2008-06-26  Xavier Saint  <wget@sxav.eu>
652
653         * iri.c, iri.h : New functions locale_to_utf8() and
654         idn_encode() adding basic capabilities of IRI/IDN.
655
656         * url.c : Convert URLs from locale to UTF-8 allowing a basic
657         support of IRI/IDN
658
659 2008-06-25  Steven Schubiger  <stsc@members.fsf.org>
660
661         * ftp.c (getftp): When spidering a FTP URL, emit a diagnostic
662         message if the remote file exists.
663
664 2008-06-24  Steven Schubiger  <stsc@members.fsf.org>
665
666         * http.c (http_loop): Replace escnonprint() occurence with
667         a quotearg_style() call.
668
669 2008-06-24  Micah Cowan  <micah@cowan.name>
670
671         * ftp-ls.c (ftp_index): Don't assume time_t* is compatible with
672         long*. Fixes crash on Windows, and probably other systems.
673
674 2008-06-22  Steven Schubiger  <stsc@members.fsf.org>
675
676         * http.c: Explicitly initialize and deallocate the message
677         string used by the -nv --spider functionality.
678
679 2008-06-22  Steven Schubiger  <schubiger@gmail.com>
680
681         * http.c: Make -nv --spider include the file's name when it
682         exists.
683
684 2008-06-22  Micah Cowan  <micah@cowan.name>
685
686         * Makefile.am (version.c): Fixed version string invocation so it
687         once again can't result in unterminated strings, made all the
688         string vars pointers-to-const, and moved line lengths
689         below 80 (in Makefile.am, not in version.c).
690
691 2008-06-19  Xavier Saint  <wget@sxav.eu>
692
693         * iri.c, iri.h : New function check_encoding_name() as
694         a preliminary encoding name check.
695
696         * main.c, iri.c : Make use of check_encoding_name().
697
698 2008-06-19  Xavier Saint  <wget@sxav.eu>
699
700         * iri.c : Include missing stringprep.h file and add a
701         cast.
702
703         * init.c : set a default initial value for opt.enable_iri,
704         opt.locale and opt.encoding_remote.
705
706 2008-06-19  Xavier Saint  <wget@sxav.eu>
707
708         * iri.c, iri.h : Add a new function find_locale() to find
709         out the local system encoding.
710
711         * main.c : Make use of find_locale().
712
713 2008-06-19  Xavier Saint  <wget@sxav.eu>
714
715         * html-url.c : Add "content-type" meta tag parsing for
716         retrieving page encoding.
717
718         * iri.h : Make no-op version of parse_charset() return
719         NULL.
720
721 2008-06-16  Micah Cowan  <micah@cowan.name>
722
723         * http.c (http_loop): When hstat.len is higher than the
724         successfully completed content's length, but it's because we
725         _set_ it that way, don't abort.
726
727 2008-06-14  Xavier Saint  <wget@sxav.eu>
728
729         * iri.c, iri.h : New files.
730
731         * Makefile.am : Add files iri.h and conditional iri.c.
732
733         * build_info.c : Add compiled feature "iri".
734
735         * http.c : include iri.h and parse charset from Content-Type
736         header.
737
738         * init.c, main.c, options.h : if an options isn't supported
739         at compiled time, don't get rid off it and show a dummy
740         message instead if they are used.
741
742 2008-06-13  Micah Cowan  <micah@cowan.name>
743
744         * build_info.c: ENABLE_NTLM, not HAVE_NTLM; distinguish OpenSSL
745         from "ssl".
746
747 2008-06-13  Madhusudan Hosaagrahara <com.gmail.hrmadhu>
748
749         * Makefile.am, main.c, init.c, init.h, build_info.c: Adds build
750         information to the --version command line option. Fixes bug
751         #20636.
752
753 2008-06-01  Micah Cowan  <micah@cowan.name>
754
755         * main.c [WINDOWS]: Reopen stdout in binary mode, when -O - is
756         given.
757
758 2008-05-31 Micah Cowan  <micah@cowan.name>
759
760         * html-url.c, http.c: Avoid casts in a couple spots.
761
762 2008-05-30 Henri Häkkinen  <henux@users.sourceforge.net>
763
764         * cookies.c, ftp-basic.c, hash.c, html-url.c, http-ntlm.c, http.c,
765         init.c, log.c, main.c, progress.c, ptimer.c, spider.c, url.c,
766         utils.c: Minor changes to silence warnings when using -Wall.
767
768 2008-05-26  Steven Schubiger  <schubiger@gmail.com>
769
770         * ftp.c (getftp): Replace last remaining invocation of escnonprint
771         with gnulib quote.
772
773 2008-05-19  Micah Cowan  <micah@cowan.name>
774
775         * main.c (main): Password prompt should be done only once (not
776         once per argument), and should be done prior to the background
777         fork.
778
779 2008-05-17  Steven Schubiger  <schubiger@gmail.com>
780
781         * init.c (defaults): Set the preferred IP family to `none' by
782         default.
783
784 2008-05-17  Kenny Parnell  <k.parnell@gmail.com>
785
786         (cmd_spec_prefer_family): Initialize prefer_family to prefer_none.
787
788 2008-05-17  Micah Cowan  <micah@cowan.name>
789
790         * main.c (main): Handle Ctrl-D on command-line.
791
792 2008-05-15  Steven Schubiger  <schubiger@gmail.com>
793
794         * ftp.c (getftp): Verify that the file actually exists in FTP, by
795         checking it against the listing.
796
797 2008-05-15  Micah Cowan  <micah@cowan.name>
798
799         * main.c (prompt_for_password): Use the quote module.
800
801 2008-05-14  Micah Cowan  <micah@cowan.name>
802
803         * ftp.c (ftp_retrieve_list): Symlinks and other filenames
804         should be fully quoted.
805
806 2008-05-12  Micah Cowan  <micah@cowan.name>
807
808         * main.c (main): Downgrade "-N with -O" to a warning, and switch
809         it off to avoid confusing messages.
810
811 2008-04-30  Micah Cowan  <micah@cowan.name>
812
813         * progress.c (create_image): Fix glitch where too many spaces are
814         printed on lines that don't display the ETA, in multibyte
815         locales.
816
817 2008-04-30  Steven Schubiger  <stsc@members.fsf.org>
818
819         * main.c (main): New code that handles prompting for passwords
820         when specified explicitly via command-line option (using gnulib's
821         getpass-gnu module).
822         (main): Include the getpass header.
823
824         * init.c: Add "ask-password" to the list of recognized commands.
825
826         * options.h: Add an according boolean member to the options
827         struct.
828
829         * sysdep.h: Comment the defines __EXTENSIONS__ and _GNU_SOURCE
830         out, because they're now defined independently by config.h.
831
832 2008-04-27  Rabin Vincent  <rabin@rab.in>
833
834         * http.c (http_loop): Fix return for the case where we don't
835         download a file because of -nc.
836
837 2008-04-27  Micah Cowan  <micah@cowan.name>
838
839         * url.c (path_simplify): Go back to allowing leading ".." in
840         paths, but only for FTP URLs.
841         (test_path_simplify): Add scheme-specificness to tests, adapt for
842         mu_run_test.
843
844         * test.c (all_tests): Add test_path_simplify.
845
846         * main.c (main): Downgrade -r, -p with -O to a warning rather than
847         an error; elaborate just a bit more for other -O combination
848         cases.
849
850 2008-04-26  Micah Cowan  <micah@cowan.name>
851
852         * http.c (gethttp): Move proxy CONNECT handling to below the
853         retry_with_auth label, to deal with properly reconnecting to
854         proxies when we need to authenticate.
855
856 2008-04-25  Micah Cowan  <micah@cowan.name>
857
858         * Makefile.am: -I foo -> -Ifoo.
859
860 2008-04-24  Micah Cowan  <micah@cowan.name>
861
862         * main.c: Revised usage description of --convert-links to apply
863         to CSS as well as to HTML.
864
865 2008-04-23  Micah Cowan  <micah@cowan.name>
866
867         * utils.c (test_dir_matches_p): Added a test for the case
868         described in issue #20518.
869
870 2008-04-22  Micah Cowan  <micah@cowan.name>
871
872         * Makefile.am, css.lex, css.l: Renamed css.lex to css.l.
873         * recur.c (retrieve_tree): Fix typo to allow text/css files to
874         be parsed.
875
876 2008-04-22  Ted Mielczarek  <ted.mielczarek@gmail.com>
877
878         * css.lex, css-url.c, css-url.h: Added to implement support for
879         parsing CSS in Wget.
880         * convert.c: Convert links in CSS files, too.
881         * convert.h (convert_options): Added for options link_css_p,
882         link_expect_css.
883         * convert.h: Added prototype for new register_css function.
884         * html-parse.c: Added support for parsing element content, in
885         addition to tag starts and ends.
886         * html-parse.h (taginfo): Added delimiter fields for element
887         content.
888         * html-url.h: Added.
889         * html-url.c (append_url): No longer internal-linkage only. Now
890         takes position and size as explicit parameters.
891         * html-url.c: Use new html-url.h header, add support for
892         handling of "style" HTML attributes. Mark URIs obtained from
893         link tags with rel="stylesheet" with link_expect_css. Adapt
894         uses of append_url to supply the newly-added parameters for
895         position and size.
896         * http.c: Add detection for when the content-type is text/css;
897         and ensure that such files have the ".css" filename extension,
898         when --convert-links is active.
899         * recur.h: Remove declarations for functions found in
900         html-url.c (moved to html-url.h).
901         * recur.c: Add support for culling links from CSS files, too,
902         and tracking for when we're expecting the file to be CSS (even
903         when its content type isn't text/css).
904         * retr.c (retrieve_url): Add registration of CSS files.
905         * wget.h: Added TEXTCSS to dt flags enum.
906         * Makefile.am: Added css.lex, css-url.c, css-url.h, html-url.h
907         to wget_SOURCES.
908
909 2008-04-22  Jim Paris  <jim@jtan.com>
910
911         * openssl.c (ssl_init): Enable combined certificate/key in
912         single file (apparent regression from ~1.9). Resolves issue
913         #22767.
914
915 2008-04-22  Steven Schubiger  <schubiger@gmail.com>
916
917         * http.c (print_response_line): Changed to make responses always
918         be logged, even in --quiet mode, if --server-response was
919         specified. This is to bring http.c's handling of the situation
920         in line with ftp.c's.
921
922 2008-04-22  Pranab Shenoy  <pranab.loosinit.shenoy@gmail.com>
923
924         * init.c: Added test_commands_sorted unit test to check is
925         commands are sorted.  Fixes bug #21245.
926
927         * test.c: Added test_commands_sorted to the test suite.
928
929 2008-04-22  Rabin Vincent  <rabin@rab.in>
930
931         * ftp.c (ftp_get_listing): Only remove .listing if it has been
932         created. 
933
934 2008-04-22  Alain Guibert  <alguibert+bts@free.fr>
935
936         * test.h (mu_run_test): Move declaration before statements, for
937         C90 conformance. Fixes bug #22789.
938
939 2008-04-22  Mike Frysinger  <vapier@gentoo.org>
940
941         * Makefile.am: Move @LIBS@ after other libraries, for better
942         static-linking support. Fixes bug #22143.
943
944 2008-04-16  Steven Schubiger  <schubiger@gmail.com>
945
946         * ftp.c: Use Gnulib's quote function for printing filenames and
947         such.
948         * connect.c: Likewise.
949         * convert.c: Likewise.
950         * cookies.c: Likewise.
951         * ftp-opie.c: Likewise.
952         * gnutls.c: Likewise.
953         * init.c: Likewise.
954         * log.c: Likewise.
955         * mswindows.c: Likewise.
956         * openssl.c: Likewise.
957         * progress.c: Likewise.
958         * recur.c: Likewise.
959         * res.c: Likewise.
960         * utils.c: Likewise.
961
962 2008-04-16  Steven Schubiger  <schubiger@gmail.com>
963
964         * sysdep.h: Comment the defines __EXTENSIONS__ and _GNU_SOURCE 
965         out, because they're now defined independently by config.h.
966
967 2008-04-14  Steven Schubiger  <schubiger@gmail.com>
968
969         * http.c: Use Gnulib's quote function for printing filenames and
970         such.
971         * wget.h: #include "quote.h".
972
973 2008-04-12  Rabin Vincent  <rabin@rab.in>
974
975         * mswindows.c (fake_fork_child): Don't create a logfile for
976         --background when --quiet is used, but not --server-response.
977         Fixes bug #20917.
978
979         * utils.c (fork_to_background): Likewise.
980
981 2008-04-12  Micah Cowan  <micah@cowan.name>
982
983         * utils.c (aprintf): Minor formatting changes to Alex's code (80-
984         column limit, concatenated string literals, avoiding nesting
985         levels), and removed invocation of free (since we're aborting
986         anyway).
987
988 2008-04-11  Alexander Dergachev  <cy6erbr4in@gmail.com>
989
990         * utils.c (aprintf): Now we are setting limits (1 Mb) for text
991         buffer when we use non-C99 vsnprintf.
992         
993 2008-04-11  Micah Cowan  <micah@cowan.name>
994
995         * ftp.c (getftp, ftp_loop_internal): Don't append to an existing
996         .listing when --continue is used.  Fixes bug #22825. Thanks to
997         Rabin Vincent <rabin@rab.in> for pointing the way with a
998         suggested fix!
999
1000 2008-04-10  Alexander Dergachev  <cy6erbr4in@gmail.com>
1001
1002         * xmalloc.c, xmalloc.h (memfatal): Now exported; accepts an
1003         "unknown" value for the attempted allocation size.
1004         * utils.c (aprintf): Now calls memfatal, instead of aborting.
1005
1006 2008-03-19  Micah Cowan  <micah@cowan.name>
1007
1008         * utils.c (test_dir_matches_p): More tests related for
1009         dir_matches_p.
1010
1011 2008-03-17  Micah Cowan  <micah@cowan.name>
1012
1013         * connect.c: Include sys/time.h to support use of the select
1014         function on older systems.
1015
1016 2008-02-11  Benno Schulenberg  <bensberg@justemail.net>
1017
1018         * http.c: More accurate and descriptive messages for when a file
1019         won't be retrieved during spider-mode.
1020
1021 2008-02-10  Micah Cowan  <micah@cowan.name>
1022
1023         * http.c: Added existence_checked member to the http_stat
1024         struct.
1025         (gethttp): Mark hs->existence_checked when we've checked whether
1026         a file-to-download exists; so we don't check it again if the
1027         connection gets lost (and potentially pick a new "unique" name).
1028         This fixes bug 22251.
1029         * progress.c (create_image): Add space for an extra column in
1030         the "eta" portion of the progress bar image; to deal with
1031         too-long Czech translation.
1032         * main.c, http.c, init.c: Added --auth-no-challenge option, to
1033         bring back 1.10.2 unsafe auth behavior when needed. This fixes
1034         bug #22242.
1035
1036 2008-02-07  Micah Cowan  <micah@cowan.name>
1037
1038         * progress.c (create_image): Remove assertion on exceeding
1039         screen width, which given the less-than-robust code there, can
1040         be broken by a number of factors (such as large file downloads).
1041
1042 2008-02-06  Micah Cowan  <micah@cowan.name>
1043
1044         * progress.c (countcols): Use strlen() when mbtowc or wcwidth
1045         not available (or not using NLS).
1046         * utils.c: Ensure we use single-byte separators when not doing
1047         NLS progress-bars.
1048         * wget.h: Determine whether to use NLS for progress-bars, based
1049         on whether wcwidth and mbtowc are available.
1050
1051 2008-02-03  Micah Cowan  <micah@cowan.name>
1052
1053         * progress.c (create_image): Use number of characters/columns
1054         consumed, rather than number of bytes, to determine how much of
1055         a line we've used. Fixes assertion errors and field alignment
1056         bugs (#22161, #20481)
1057         (get_eta, count_cols): Added to support the changes for
1058         create_image.
1059         * http.c (http_loop): Put no-clobber logic back into http_loop,
1060         before starting to fetch, for when we're not doing
1061         content-disposition.
1062
1063 2008-01-31  Micah Cowan  <micah@cowan.name>
1064
1065         * http.c (gethttp): Don't derive hs->contlen from possibly
1066         invalid/missing Content-Length; instead, get the appropriate
1067         value from the Content-Range header values.
1068         (parse_content_range): Handle '*' instance-length field.
1069
1070 2008-01-25  Micah Cowan  <micah@cowan.name>
1071
1072         * main.c: Added notes to translators regarding (C), diacritics
1073         in names.
1074         * Makefile.am, cmpt.c, connect.c, connect.h, convert.c,
1075         cookies.c, cookies.h, ftp-basic.c, ftp-ls.c, ftp-opie.c, ftp.c,
1076         ftp.h, gen-md5.c, gen-md5.h, gnutls.c, hash.c, hash.h, host.c,
1077         host.h, html-parse.c, html-parse.h, html-url.c, http-ntlm.c,
1078         http-ntlm.h, http.c, http.h, init.c, init.h, log.c, log.h,
1079         main.c, mswindows.c, mswindows.h, netrc.c, netrc.h, openssl.c,
1080         options.h, progress.c, progress.h, ptimer.c, ptimer.h, recur.c,
1081         recur.h, res.c, res.h, retr.c, retr.h, spider.c, spider.h,
1082         ssl.h, sysdep.h, test.c, test.h, url.c, url.h, utils.c,
1083         utils.h, wget.h, xmalloc.c, xmalloc.h: Updated copyright year.
1084
1085 2007-12-10  Micah Cowan  <micah@cowan.name>
1086
1087         * main.c: The option is --content-disposition, not
1088         --no-content-disposition (at the moment).
1089
1090 2007-12-08  Hrvoje Niksic  <hniksic@xemacs.org>
1091
1092         * ftp.c (ftp_retrieve_glob): Print both arguments of fnmatch in
1093         fnmatch error message.
1094         (ftp_retrieve_glob): Don't match with fnmatch if we're only
1095         supposed to get one file.
1096
1097 2007-12-07  Micah Cowan  <micah@cowan.name>
1098
1099         * Makefile.am: Plug in vars to include stuff from
1100         $(top_srcdir)/md5 when appropriate.
1101
1102 2007-12-05  Micah Cowan  <micah@cowan.name>
1103
1104         * utils.c (subdir_p): Handle the case where d1 is "".
1105         * convert.c (convert_all_links): Don't return without
1106         deallocating timer.
1107
1108 2007-11-28  Micah Cowan  <micah@cowan.name>
1109
1110         * Makefile.am, cmpt.c, connect.c, connect.h, convert.c,
1111         convert.h, cookies.c, cookies.h, ftp-basic.c, ftp-ls.c,
1112         ftp-opie.c, ftp.c, ftp.h, gen-md5.c, gen-md5.h, gnutls.c,
1113         hash.c, hash.h, host.c, host.h, html-parse.c, html-parse.h,
1114         html-url.c, http-ntlm.c, http-ntlm.h, http.c, http.h, init.c,
1115         init.h, log.c, log.h, main.c, mswindows.c, mswindows.h,
1116         netrc.c, netrc.h, openssl.c, options.h, progress.c, progress.h,
1117         ptimer.c, ptimer.h, recur.c, recur.h, res.c, res.h, retr.c,
1118         retr.h, safe-ctype.c, safe-ctype.h, spider.c, spider.h, ssl.h,
1119         sysdep.h, test.c, test.h, url.c, url.h, utils.c, utils.h,
1120         wget.h, xmalloc.c, xmalloc.h: Updated license exception for
1121         OpenSSL, per the SFLC.
1122
1123 2007-10-30  Micah Cowan  <micah@cowan.name>
1124
1125         * main.c (main): Declare argv parameter as char **argv, rather
1126         than char *const *argv. This fixes usage of getopt_long,
1127         regardless of whether getopt_long has a constified argv or not.
1128
1129 2007-10-22  Gisle Vanem  <gvanem@broadpark.no>
1130
1131         * mswindows.c: Move INHIBIT_WRAP macro definition up with wget.h
1132         inclusion.
1133
1134 2007-10-18  Steven Schweda  <sms@antinode.org>
1135
1136         * sysdep.h: #include <stdint.h> as well as <inttypes.h>, to work
1137         around a glitch on Tru64 systems.
1138
1139 2007-10-18  Micah Cowan  <micah@cowan.name>
1140
1141         * Makefile.am: version.c should not be distributed. Removed
1142         config-post.h. Add version.c dependency and gnulib include path
1143         for libunittest.a.
1144         * sysdep.h: Got contents of config-post.h
1145         * config-post.h: Removed.
1146         * wget.h: #include "config.h".
1147         * alloca.c, cmpt.c, connect.c, convert.c, cookies.c,
1148         ftp-basic.c, ftp-ls.c, ftp-opie.c, ftp.c, gen-md5.c, gnutls.c,
1149         hash.c, host.c, html-parse.c, html-url.c, http-ntlm.c, http.c,
1150         init.c, log.c, main.c, mswindows.c, netrc.c, openssl.c,
1151         progress.c, ptimer.c, recur.c, res.c, retr.c, spider.c, url.c,
1152         utils.c, xmalloc.c: Use wget.h at very top, and instead of
1153         config.h.
1154
1155 2007-10-15  Micah Cowan  <micah@cowan.name>
1156
1157         * Makefile.am: Remove intermediary hg-id file generation, make
1158         version.c-generation more portable.
1159
1160 2007-10-14  Micah Cowan  <micah@cowan.name>
1161
1162         * cmpt.c, cookies.c, ftp-basic.c, ftp-ls.c, ftp.c, hash.c,
1163         host.c, html-parse.c, html-url.c, http-ntlm.c, http.c, init.c,
1164         log.c, main.c, netrc.c, openssl.c, res.c, url.c, utils.c,
1165         wget.h: Replace uses of ISSPACE, etc with c_isspace, etc.
1166         * gnu-md5.c, gnu-md5.h: Removed, in deference to gnulib.
1167         * Makefile.am: Removed gnu-md5.h from wget_SOURCES.
1168         * gen-md5.c: Changed #inclusion of gnu-md5.h to md5.h (gnulib's).
1169         * recur.c (download_child_p): Print error if unlink of
1170         robots.txt fails.
1171         * main.c (main): --spider or --delete-after now implies
1172         --no-directories (thanks, Josh Williams).
1173
1174 2007-10-14  Joshua David Williams  <yurimxpxman@gmail.com>
1175
1176         * recur.c (download_child_p): Remove robots.txt if
1177         --delete-after or --spider is on.
1178
1179 2007-10-13  Micah Cowan  <micah@cowan.name>
1180
1181         * Makefile.am: Make version.c depend on Wget dependencies (source
1182         files, plus such things as LIBOBJS so we get things like
1183         http-ntlm.c). Removed getopt.[ch], as we're now using gnulib for
1184         these.
1185
1186 2007-10-10  Micah Cowan  <micah@cowan.name>
1187
1188         * http-ntlm.c: Include openssl/opensslv.h explicitly, instead of
1189         hoping it'll be included by accident in openssl/des.h.
1190
1191 2007-10-09  Gisle Vanem  <gvanem@broadpark.no>
1192
1193         * mswindows.c: 'argc' and 'argv' in 'windows_main()' are no longer
1194         needed.  Hence simply the prototype. Free 'exec_name' at exit.
1195
1196 2007-10-09  Micah Cowan  <micah@cowan.name>
1197
1198         * gettext.h: Imported from /usr/share/gettext, fuller handling
1199         of --disable-nls.
1200         * wget.h: Remove logic for handling lack of NLS (now in
1201         gettext.h).
1202         * main.c: Use gettext's ENABLE_NLS rather than HAVE_NLS.
1203         * Makefile.am: added @LIBINTL@ to LIBS (though it probably
1204         belongs in LDADD, along with everything else currently assigned
1205         to LIBS).
1206
1207 2007-10-08  Micah Cowan  <micah@cowan.name>
1208
1209         * http.c (http_loop): Add send_head_first conditional back
1210         around code that needs it, but not around the last-modified
1211         header-parsing stuff this time. Removed no-longer-useful (was it
1212         ever?) restart_loop boolean, continuing unconditionally at end
1213         of send_head_first conditional block (if we haven't jumped out).
1214
1215 2007-10-04  Micah Cowan  <micah@cowan.name>
1216
1217         * http.c (http_loop): We've got_name if content_disposition
1218         support isn't on; make sure we continue properly in that case,
1219         even though we're not sending HEAD.
1220         * Makefile.in: Removed, replaced by Makefile.am.
1221         * Makefile.am: Converted from Makefile.in.
1222
1223 2007-10-02  Gisle Vanem  <gvanem@broadpark.no>
1224         
1225         * ftp.c: Use "_listing" for MSDOS (".listing" is illegal).
1226
1227         * url.c: Update comment for 'filechr_not_windows'.
1228
1229         * utils.c: Include <process.h> for 'getpid()' on Watcom.
1230
1231 2007-10-02  Micah Cowan  <micah@cowan.name>
1232
1233         * ftp.c (getftp, ftp_loop_internal), http.c (http_loop), main
1234         (main): Use datetime_str instead of time_str, for those who have
1235         potentially long-running sessions. Based on suggestions by Saso
1236         Tomat <miskox@hotmail.com> and Steven M. Schweda
1237         <sms@antinode.org>.
1238         * http.c (gethttp): Warn about host lookup failures. Adjusted
1239         from Stephen Gildea's patch.
1240
1241 2007-10-02  Stephen Gildea  <stepheng+wget@gildea.com>
1242
1243         * connect.c (connect_to_host): Warn about host lookup failures.
1244
1245 2007-09-25  Micah Cowan  <micah@cowan.name>
1246
1247         * Makefile.in: Use EXEEXT instead of exeext.
1248
1249 2007-09-24  Gisle Vanem  <giva@bgnett.no>
1250
1251         * connect.c, init.c, main.c, openssl.c, options.h, sysdep.h,
1252         url.c, utils.c: Added support for building on MS-DOS.
1253
1254 2007-09-24  Jochen Roderburg  <roderburg@uni-koeln.de>
1255
1256         * http.c (http_zero): Remove no-longer-used local_size variable.
1257         Fixes bug #21057.
1258
1259 2007-09-12  Micah Cowan  <micah@cowan.name>
1260
1261         * http.c (http_loop): Remove send_head_first from condition for
1262         parsing timestamp.
1263
1264 2007-08-29  Micah Cowan  <micah@cowan.name>
1265
1266         * openssl.c (ssl_init): Re un-const-ified the meth local
1267         variable, to match current versions of openssl.
1268         * spider.c: Removed visited_url function, as it may be very
1269         inefficient.
1270         (print_broken_links): Removed traversal of referrers, until such
1271         time as a more efficient implementation can be written.
1272         * spider.h: Replaced declaration of visited_url with an
1273         empty-bodied, function-like macro.
1274
1275 2007-08-27  Gisle Vanem  <giva@bgnett.no>
1276
1277         * mswindows.c (run_with_timeout): Ensure that the correct
1278         conversion specification is used for the return result of
1279         the GetLastError function.
1280         * getopt.c: Fix missing (but, accidentally, legal) comment
1281         delimiter after licensing text.
1282         * recur.c (retrieve_tree): Inserted missing cast for strip_auth.
1283         Includes adjustment by Ralf Wildenhues.
1284         * openssl.c (ssl_init): const-ified the meth local variable.
1285         * main.c: Include all the static function definitions in the
1286         "#ifndef TESTING" clause, leaving just the definitions for
1287         exec_name (not set), and opt.
1288         * utils.c (run_with_timeout): Now returns bool, to align with
1289         declaration in utils.h.
1290
1291 2007-08-27  Micah Cowan  <micah@cowan.name>
1292
1293         * wget.h: Added macro replacement for ngettext, for environs
1294         that lack NLS.
1295
1296 2007-08-26  Micah Cowan  <micah@cowan.name>
1297
1298         * spider.c (print_broken_links): Fixed incorrect plurals msgid
1299         usage, switched to use ngettext function.
1300
1301 2007-08-24  Micah Cowan  <micah@cowan.name>
1302
1303         * http.c (http_loop): Introduced time_came_from_head boolean
1304         flag, to help avoid parsing the same Last-Modified header twice.
1305         Replaced spidering returns of RETRUNNEEDED for some situations,
1306         to RETROK, as otherwise it will be interpreted as an error.
1307         RETRUNNEEDED appears never to be referenced outside of
1308         http.c (and wget.h), and, when returned by gethttp, is
1309         translated by http_loop to RETROK.
1310         * url.c (are_urls_equal): Don't call getchar_from_escaped_string
1311         if u2 is shorter than u1.
1312         (getchar_from_escaped_string): Don't decode reserved characters.
1313         Handle illegally appearing '%'s as literal '%'s. Ensure hex
1314         digits before attempting to decode.
1315         (test_are_urls_equal): Added tests to handle u2 shorter than u1,
1316         and %2f not treated the same as /.
1317         * spider.c (in_url_list_p): Don't call are_urls_equal if one of
1318         them is NULL.
1319
1320 2007-08-23  Joshua David Williams  <yurimxpxman@gmail.com>
1321
1322         * spider.c (in_url_list_p): Removed the bool verbose argument
1323
1324 2007-08-22  Mauro Tortonesi  <mauro@ferrara.linux.it>
1325
1326         * http.c (http_loop): Fall back to GET if HEAD fails with a 500 or 501
1327         error code.
1328
1329 2007-08-21  Mauro Tortonesi  <mauro@ferrara.linux.it>
1330         
1331         * http.c (http_loop): Send preliminary HEAD request if -N is given and
1332         the destination file exists already.
1333
1334 2007-08-10  Mauro Tortonesi  <mauro@ferrara.linux.it>
1335
1336         * http.c (http_loop): Fixed HTTP HEAD requests logic when --spider is
1337         given.
1338
1339 2007-08-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1340
1341         * url.c (append_uri_pathel): Do not assume dest string to be
1342         zero-terminated.
1343         (test_append_uri_pathel): Terminate string to fix test failure.
1344
1345 2007-08-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1346
1347         * url.c (url_string): Use comparison, not assignment, in
1348         check for auth_mode == URL_AUTH_HIDE_PASSWD.
1349
1350 2007-08-09  Micah Cowan  <micah@cowan.name>
1351
1352         * http.c (http_loop): If we got a HEAD and then a GET, and the
1353         GET had a timestamp, use that one, not any we may have gotten
1354         from the HEAD.
1355
1356 2007-08-08  Micah Cowan  <micah@cowan.name>
1357
1358         * init.c (defaults): Content disposition will not be default,
1359         since it currently results in extra round-trips.
1360
1361 2007-07-31  Micah Cowan  <micah@cowan.name>
1362
1363         * http.c (gethttp): Set contlen = -1 when we encounter a
1364         negative-valued Content-Length header, so we don't consider it
1365         an internal error later on and call abort().
1366
1367 2007-07-29  Micah Cowan  <micah@cowan.name>
1368
1369         * url.h, url.c (url_string): Replaced bool arg of the url_string
1370         function with enum url_auth_mode, with added option to
1371         completely remove user/pass auth information.
1372         * http.c, ftp.c, url.c, recur.c: Adapted call to url_string
1373         function to fit new usage.
1374         * recur.c (retrieve_tree): Remove auth info from Referer header.
1375
1376 2007-07-28  Micah Cowan  <micah@cowan.name>
1377
1378         * options.h, init.c, retr.c, main.c: renamed opt maxredirect
1379         field to max_redirect, for improved consistency.
1380         * init.c: changed max_redirect parser from cmd_number_inf to
1381         cmd_number, as infinite redirects may not be appropriate.
1382         Alternatively, if cmd_number_inf should be used, then
1383         opt.max_redirect's value should be checked a bit differently in
1384         retr.c, to allow for the "infinite" meaning of zero.
1385
1386 2007-07-25  Micah Cowan  <micah@cowan.name>
1387
1388         * http.c (create_authorization_line)
1389         (basic_authentication_encode, known_authentication_scheme_p)
1390         (load_cookies): Moved declarations up.
1391         (basic_authed_hosts): Added. Tracks what hosts have issued Basic
1392         challenge and been given the global username, password.
1393         (maybe_send_basic_creds): Added. Sends Basic creds for hosts that
1394         have issued Basic challenges.
1395         (register_basic_auth_host): Added. Instantiates
1396         basic_authed_hosts if necessary, then registers the host that
1397         has issued a challenge.
1398         (gethttp) <auth>: Only send authentication credentials after
1399         we've received a challenge from that host. This is a stop-gap
1400         fix until a proper fix can be implemented; still isn't quite
1401         right, as we should only be sending credentials automatically
1402         for authenticated paths and below, and not for the entire host.
1403
1404 2007-07-16  Joshua David Williams  <yurimxpxman@gmail.com>
1405
1406         * options.h: added maxredirect to options struct
1407         * init.c: added maxredirect to list of variables
1408         * retr.c (retrieve_url): replaced MAX_REDIRECTIONS with opt.maxredirect
1409         * main.c: added option --max-redirect
1410
1411 2007-07-16  Joshua David Williams  <yurimxpxman@gmail.com>
1412
1413         * test.h: tests made more verbose; now displays the name
1414         of each test run.
1415
1416 2007-07-10  Mauro Tortonesi  <mauro@ferrara.linux.it>
1417
1418         * http.c (http_loop): Fixed the HTTP requests logic. Now it skips the 
1419         preliminary HEAD request if either -O or --no-content-disposition are 
1420         given, and neither --spider and -N are given.
1421
1422 2007-07-05  Micah Cowan  <micah@cowan.name>
1423
1424         * cmpt.c, connect.c, connect.h, convert.c, convert.h:
1425         * cookies.c, cookies.h, ftp-basic.c, ftp.c, ftp.h, ftp-ls.c:
1426         * ftp-opie.c, gen-md5.c, gen-md5.h, getopt.c, getopt.h, gnu-md5.c:
1427         * gnu-md5.h, gnutls.c, hash.c, hash.h, host.c, host.h:
1428         * html-parse.c, html-parse.h, html-url.c, http.c, http.h:
1429         * http-ntlm.c, http-ntlm.h, init.c, init.h, log.c, log.h, main.c:
1430         * Makefile.in, mswindows.c, mswindows.h, netrc.c, netrc.h:
1431         * openssl.c, options.h, progress.c, progress.h, ptimer.c:
1432         * ptimer.h, recur.c, recur.h, res.c, res.h, retr.c, retr.h:
1433         * safe-ctype.c, safe-ctype.h, spider.c, spider.h, ssl.h, sysdep.h:
1434         * test.c, test.h, url.c, url.h, utils.c, utils.h, wget.h:
1435         * xmalloc.c, xmalloc.h:
1436         Updated GPL reference to version 3 or later, removed FSF
1437         address.
1438
1439 2007-07-04  Mauro Tortonesi  <mauro@ferrara.linux.it>
1440
1441         * http.c (http_loop): Skip HEAD request and start immediately with GET
1442         if -O is given.
1443
1444 2007-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
1445
1446         * http.c (print_server_response): Escape non-printable characters
1447         in server respone.
1448
1449 2007-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
1450
1451         * netrc.c: Don't make netrc_list static, as it prevents
1452         compilation with DEBUG_MALLOC.
1453
1454         * utils.c (aprintf): Don't use vasprintf when DEBUG_MALLOC is
1455         requested because, in that case, we want the calls to malloc to be
1456         coming from us.
1457
1458 2007-01-23  Hrvoje Niksic  <hniksic@xemacs.org>
1459
1460         * cookies.c (parse_set_cookie): Would erroneously discard cookies
1461         with unparsable expiry time.
1462
1463 2007-01-23  Hrvoje Niksic  <hniksic@xemacs.org>
1464
1465         * progress.c (create_image): Check for ETA overflow.
1466         (print_row_stats): Ditto.
1467
1468 2007-01-09  Mauro Tortonesi  <mauro@ferrara.linux.it>
1469
1470         * init.c (cmd_spec_prefer_family): Small fix to get rid of a gcc
1471         warning about strict-aliasing violation.
1472
1473 2007-01-09  Steven M. Schweda  <sms@antinode.org>
1474
1475         * ftp-basic.c (ftp_syst): Fixed segfault if response text is missing.
1476
1477 2006-12-29  Gisle Vanem  <giva@bgnett.no>
1478
1479         * mswindows.c: Avoid a warning if 'ws_hangup()' is unused.
1480
1481 2006-12-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
1482
1483         * http.c (parse_content_disposition): Consider directory prefix, if
1484         specified.
1485
1486 2006-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
1487
1488         * retr.c (retrieve_from_file): Ditto.
1489         (url_uses_proxy): New function.
1490
1491         * main.c (main): Don't check for opt.use_proxy when deciding
1492         whether to call retrieve_url or retrieve_tree; check whether the
1493         proxy would be used for *this* URL.
1494
1495 2006-10-17  Mike Grant  <mggr@pml.ac.uk>
1496
1497         * ftp.c (ftp_loop_internal): Would incorrectly skip changing
1498         working directory when retrying after a failed FTP attempt.
1499         Originally reported by Nate Eldredge.
1500
1501 2006-10-12  Mauro Tortonesi  <mauro@ferrara.linux.it>
1502
1503         * convert.c (downloaded_file): Fixed bug which used to break -E -k -K 
1504         mode.
1505
1506 2006-08-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
1507
1508         * http.c: #include'd spider.h to get rid of compiler warnings.
1509
1510         * main.c: Ditto.
1511
1512         * recur.c: Ditto.
1513
1514 2006-08-24  Mauro Tortonesi  <mauro@ferrara.linux.it>
1515
1516         * Makefile.in: Added spider.c to the list of files to compile and
1517         spider.h to the list of header files. Updated copyright information.
1518
1519         * http.c: Major changes to recursive spider mode. Now for every
1520         resource we are supposed to check, we send a HEAD request to find out
1521         if it exists. If the resource is a HTML file, we retrieve it and parse
1522         it to discover links to other resources.
1523
1524         * recur.c: Ditto.
1525
1526         * res.c (res_retrieve_file): Disable opt.timestamping and opt.spider
1527         when retrieving robots.txt. Updated copyright information.
1528
1529         * convert.c: Moved code tracking broken links to spider.c.
1530
1531         * convert.h: Ditto.
1532
1533         * spider.c: Created new file to keep track of visited URLs in spider
1534         mode.
1535
1536         * spider.h: Ditto.
1537
1538 2006-08-21  Mauro Tortonesi  <mauro@ferrara.linux.it>
1539
1540         * http.c: Fixed timestamping-related bug.
1541
1542 2006-08-16  Mauro Tortonesi  <mauro@ferrara.linux.it>
1543
1544         * http.c: Fixed bug which broke --continue feature. Now if -c is
1545         given, http_loop sends a HEAD request to find out the destination
1546         filename before resuming download.
1547
1548 2006-08-08  Hrvoje Niksic  <hniksic@xemacs.org>
1549
1550         * utils.c (datetime_str): Avoid code repetition with time_str.
1551
1552 2006-07-21  Hrvoje Niksic  <hniksic@xemacs.org>
1553
1554         * init.c (commands): Correctly place "contentdisposition".
1555
1556 2006-07-14  Mauro Tortonesi  <mauro@ferrara.linux.it>
1557         
1558         * sysdep.h: If intptr_t isn't defined, simply typedef it to long.
1559
1560         * http.c: Added explicit cast to int in logprintf call to remove
1561         compiler warnings on 64-bit platforms.
1562
1563         * connect.c: Added a few casts to intptr_t to remove compiler warnings
1564         on 64-bit platforms.
1565         
1566         * main.c: Disable -r, -p and -N when -O is used. Disable -k when -O is
1567         used and multiple URLs are given. Update maintainer information.
1568         
1569         * all: Update copyright information.
1570         
1571 2006-07-10  KJKHyperion  <hackbunny@reactos.com>
1572
1573         * url.c (filechr_table): Mark DEL (0x7f) as a control character
1574         and | as a character Windows can't handle.
1575
1576 2006-06-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
1577
1578         * res.c: Implemented is_robots_txt_url function for detection of
1579         robots.txt URLs and related test routine.
1580
1581         * res.h: Ditto.
1582
1583         * url.c: Implemented are_urls_equal function for URL comparison and
1584         related testing routine.
1585
1586         * url.h: Ditto.
1587
1588         * convert.c: Fixes for recursive spider mode: don't consider
1589         non-existing robots.txt as a broken link, and use are_urls_equal
1590         instead of strcasecmp for referrer URLs comparison.
1591
1592         * test.c: Call tests routines for are_urls_equal and 
1593         is_robots_txt_url.
1594
1595 2006-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
1596
1597         * wget.h (wgint): Typedef to any 64-bit (or larger) type we can
1598         find, not necessarily off_t or long.
1599
1600 2006-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
1601
1602         * cmpt.c (strtoll): Check for overflow and underflow without
1603         relying on (technically) undefined behavior.  Don't assume that
1604         strtoll_type is 64 bits wide.
1605
1606 2006-06-21  Hrvoje Niksic  <hniksic@xemacs.org>
1607
1608         * utils.c (base64_encode): Cast void pointer to char * before
1609         doing arithmetic.
1610
1611 2006-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
1612
1613         * utils.c (base64_encode): Made TBL const.
1614         (base64_decode): Made the base64_char_to_value table const.
1615
1616 2006-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
1617
1618         * utils.c (base64_encode): Made the DATA pointer void * so the
1619         callers can pass it any kind of pointer (including both signed and
1620         unsigned char pointers).
1621         (base64_decode): Ditto for DEST.
1622
1623 2006-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
1624
1625         * utils.c (base64_encode): Would read past end of STR.
1626         Reported by rick@eckle.org.
1627
1628 2006-06-13  Mauro Tortonesi  <mauro@ferrara.linux.it>
1629
1630         * options.h (struct options): Introduced member restrict_files_case to
1631         keep track of preferences on character case restrictions for
1632         filenames.
1633
1634         * init.c: Modified defaults and cmd_spec_restrict_file_names to
1635         support character case restrictions for filenames. Added
1636         test_cmd_spec_restrict_file_names unit test.
1637
1638         * url.c: Modified append_uri_pathel to support character case
1639         restrictions for filenames. Added test_append_uri_pathel unit test.
1640
1641         * test.c: Added test_cmd_spec_restrict_file_names and
1642         test_append_uri_pathel to the list of unit tests to run.
1643
1644 2006-06-12  Mauro Tortonesi  <mauro@ferrara.linux.it>
1645
1646         * retr.c (retrieve_from_file): Use retrieve_tree and automatically
1647         turn on opt.follow_ftp in case of recursive FTP retrieval through HTTP
1648         proxy.
1649
1650         * main.c: Automatically turn on opt.follow_ftp in case of recursive
1651         FTP retrieval through HTTP proxy.
1652
1653 2006-06-12  Tony Lewis  <tlewis@exelana.com>
1654
1655         * main.c: Improved CHEN Peng's patch by proposing a simpler logic.
1656
1657 2006-06-12  CHEN Peng  <chenpeng@alumni.nus.edu.sg>
1658
1659         * main.c: Use retrieve_tree in case of recursive FTP retrieval through
1660         HTTP proxy.
1661
1662 2006-05-25  Mauro Tortonesi  <mauro@ferrara.linux.it>
1663
1664         * convert.c: Added mechanisms to keep track broken links.
1665
1666         * convert.h: Ditto.
1667
1668         * wget.h: Reordered and enumerated uerr_t constants.
1669
1670         * recur.c: Fixes to support recursive spider mode.
1671
1672         * http.c: Ditto.
1673
1674         * main.c: Print broken links in case of recursive spider mode.
1675
1676         * retr.c: Changed interface of retrieve_url.
1677
1678         * retr.h: Ditto.
1679
1680         * ftp.c: Changed interface of ftp_loop.
1681
1682         * ftp.h: Ditto.
1683
1684         * res.c: Minor change to reflect changes in interface of retrieve_url.
1685
1686 2006-05-18  Lawrence Jones  <lawrence.jones@ugs.com>
1687
1688         * ftp-ls.c (ftp_parse_unix_ls): Correct size parsing, add size
1689         and filename debugging output.
1690
1691 2006-04-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
1692
1693         * http.c: If Content-Disposition header is present, allow unique
1694         filename generation unless -nc is given. Permit to disable parsing of
1695         Content-Disposition header.
1696
1697         * options.h: Added option --no-content-disposition to disable parsing
1698         of HTTP Content-Disposition header.
1699
1700         * init.c: Ditto.
1701         
1702         * main.c: Ditto.
1703
1704 2006-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
1705
1706         * hash.c (TOLOWER): Wrap macro arg in parentheses.
1707
1708 2006-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
1709
1710         * http.c (parse_content_disposition): Doc fix.
1711
1712 2006-03-15  Mauro Tortonesi  <mauro@ferrara.linux.it>
1713
1714         * utils.c: Restricted operational semantics of frontcmp and proclist
1715         from generic strings to directory names and them to subdir_p and
1716         dir_matches_p respectively.  Applied George Ogata's one line patch to
1717         restrict algorithm of subdir_p to full directory name matching.  Added
1718         testcases for subdir_p and dir_matches_p.
1719
1720         * utils.h: Changed all frontcmp occurrences to subdir_p.
1721         
1722         * recur.c: Ditto.
1723         
1724         * test.c: Changed type returned by test functions from char * to const
1725         char *.  Added test_subdir_p and test_dir_matches_p to the list of
1726         tests to run.
1727
1728         * http.c (test_parse_content_disposition): Changed return type from
1729         char * to const char *. 
1730
1731 2006-03-14  Mauro Tortonesi  <mauro@ferrara.linux.it>
1732
1733         * recur.c (struct queue_element): Changed type of html_allowed member
1734         to bool.
1735         
1736 2006-03-09  Mauro Tortonesi  <mauro@ferrara.linux.it>
1737
1738         * ftp.c (ftp_list): Try `LIST -a' command first and revert to `LIST'
1739         in case of failure.
1740
1741 2006-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
1742
1743         * hash.c (TOLOWER): Fix definition when STANDALONE.
1744         Reported by Beni Serfaty.
1745
1746 2006-03-02  Mauro Tortonesi  <mauro@ferrara.linux.it>
1747
1748         * http.c (http_loop): Fixed recursive HTTP retrieval.
1749
1750 2006-02-28  Hrvoje Niksic  <hniksic@xemacs.org>
1751
1752         * http.c (extract_param): Declare extern so it can be used from
1753         other files.
1754         (extract_param): Return error for empty name.
1755
1756 2006-02-28  Hrvoje Niksic  <hniksic@xemacs.org>
1757
1758         * url.c (find_last_char): Define in terms of memrchr.
1759
1760         * cmpt.c (memrchr): Define it on systems that don't have it.
1761
1762         * http.c (extract_param): New function for parsing header values
1763         with parameters.
1764         (parse_content_disposition): Use it.  Don't allow slashes and
1765         backslashes in the file name.
1766
1767 2006-02-27  Hrvoje Niksic  <hniksic@xemacs.org>
1768
1769         * url.c (path_simplify): Don't preserve ".." at beginning of path.
1770         Suggested by Frank McCown.
1771
1772 2006-02-25  Hrvoje Niksic  <hniksic@xemacs.org>
1773
1774         * http.c (gethttp): Only use FILE.N.html if FILE.html exists.
1775
1776 2006-02-09  Hrvoje Niksic  <hniksic@xemacs.org>
1777
1778         * mswindows.c (run_with_timeout): Made thread_hnd non-static.
1779
1780 2006-02-05  Hrvoje Niksic  <hniksic@xemacs.org>
1781
1782         * retr.c (sleep_between_retrievals): Sleep at a minimum of 1/2 of
1783         the specified wait period.
1784
1785 2006-02-03  Hrvoje Niksic  <hniksic@xemacs.org>
1786
1787         * utils.c (number_to_string): Don't use sprintf for printing
1788         WGINT_MIN; simply divide n by 10 and defer printing the last
1789         digit.
1790         (number_to_string): Removed the SPRINTF_WGINT macro.
1791
1792 2006-02-03  Mauro Tortonesi  <mauro@ferrara.linux.it>
1793
1794         * http.c: Fixed support for Content-Disposition header.
1795
1796         * test.c: Added test_parse_content_disposition to the list of unit
1797         tests to run.
1798
1799 2006-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
1800
1801         * hash.c: Don't define countof if it's already defined.
1802
1803         * hash.c: Obtain the definition of uintptr_t when standalone.
1804
1805 2006-01-30  Mauro Tortonesi  <mauro@ferrara.linux.it>
1806
1807         * http.c: Changed output format. Removed excessively verbose debugging
1808         output.
1809
1810 2005-12-07  Mauro Tortonesi  <mauro@ferrara.linux.it>
1811
1812         * http.c: Fixed pre-download verbose output which was broken by 
1813         HTTP code refactoring.
1814
1815 2005-11-23  Mauro Tortonesi  <mauro@ferrara.linux.it>
1816
1817         * http.c: Refactored HTTP code.  If -O is not used, the new code
1818         delays the choice of the file name where the downloaded resource
1819         will be saved until the HTTP headers have been retrieved.
1820         Added support for Content-Disposition header. 
1821
1822 2005-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
1823
1824         * hash.c (INVALID_PTR): Use uintptr_t instead of unsigned long.
1825         (hash_pointer): Don't assume a pointer fits in `unsigned long'.
1826
1827 2005-11-02  Mauro Tortonesi  <mauro@ferrara.linux.it>
1828
1829         * Makefile.in: Removed support for unit testing (now it is in
1830         tests/Makefile.in).
1831
1832 2005-10-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
1833
1834         * Makefile.in: Added basic support for unit testing.
1835
1836         * test.c: Ditto.
1837         
1838         * test.h: Ditto.
1839         
1840 2005-10-13  Daniel Stenberg  <daniel@haxx.se>
1841
1842         * http-ntlm.c (ntlm_output): Fixed buffer overflow vulnerability.
1843
1844 2005-10-09  Russ Allbery  <rra@stanford.edu>
1845
1846         * snprintf.c: Remove round to round_int and pow10 to pow10_int, to
1847         avoid warnings from GCC 4.0.
1848
1849 2005-10-05  Mauro Tortonesi  <mauro@ferrara.linux.it>
1850
1851         * retr.c: Changed semantics of no_proxy_match.
1852
1853 2005-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
1854
1855         * main.c (main): Don't print the summary if nothing has been downloaded.
1856
1857 2005-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
1858
1859         * retr.c (retr_rate): Rename parameter from MSECS to SECS since it
1860         no longer holds milliseconds.
1861
1862 2005-09-01  Hrvoje Niksic  <hniksic@xemacs.org>
1863
1864         * progress.c: Introduce symbolic constants for "magic" values of
1865         0.2 and 0.9, REFRESH_INTERVAL and ETA_REFRESH_INTERVAL.
1866
1867 2005-08-27  Hrvoje Niksic  <hniksic@xemacs.org>
1868
1869         * cmpt.c (strtoll): Correctly handle strtoll("0x", ptr, 0) and
1870         strtoll("0x<nonhexchar>", ptr, 0) -- in both cases *ptr must be
1871         set to the position of 'x', not after it.
1872
1873 2005-08-27  Hrvoje Niksic  <hniksic@xemacs.org>
1874
1875         * hash.c (hash_table_map): Rename to hash_table_for_each and
1876         update callers.
1877         Document the meaning of the callback's return value.
1878         (hash_table_iterate): New function.
1879         (hash_table_iter_next): Likewise.
1880         Update most places that used hash_table_for_each to use the
1881         iteration, which doesn't require a temporary function with
1882         explicit state management.
1883
1884 2005-08-26  Albert Chin  <wget@mlists.thewrittenword.com>
1885
1886         * Makefile.in: Use @datadir@.  Define localedir as $(datadir)/locale.
1887
1888 2005-08-26  Jeremy Shapiro  <jnshapiro@gmail.com>
1889
1890         * openssl.c (ssl_init): Set SSL_MODE_AUTO_RETRY.
1891
1892 2005-08-23  Hrvoje Niksic  <hniksic@xemacs.org>
1893
1894         * host.c (address_list_from_ipv4_addresses): Use IP_INADDR_DATA.
1895
1896 2005-08-12  Hrvoje Niksic  <hniksic@xemacs.org>
1897
1898         * wget.h: Renamed strtoll_return to strtoll_type.
1899
1900 2005-08-11  Hrvoje Niksic  <hniksic@xemacs.org>
1901
1902         * progress.c (eta_to_human_short): Switch to days when printing
1903         more than 48h rather than 100h.  (It's not immediately apparent
1904         how many days there are in 83h.)
1905
1906 2005-08-11  Hrvoje Niksic  <hniksic@xemacs.org>
1907
1908         * cmpt.c (strtoll): Define it if missing on the system and if Wget
1909         needs it.
1910
1911         * mswindows.c (str_to_int64): Move to cmpt.c and rename to strtoll.
1912
1913 2005-08-10  Hrvoje Niksic  <hniksic@xemacs.org>
1914
1915         * host.c (print_address): Always use inet_ntop when IPv6 is
1916         enabled.
1917
1918         * host.h (ip_address): Simplify the data union.
1919
1920 2005-08-09  Hrvoje Niksic  <hniksic@xemacs.org>
1921
1922         * mswindows.c (inet_ntop): Also handle IPv4 addresses for
1923         completeness.
1924
1925 2005-08-09  Hrvoje Niksic  <hniksic@xemacs.org>
1926
1927         * http.c (gethttp): Don't read more than the amount of data
1928         specified by the content-length header.
1929
1930 2005-08-09  Vasil Dimov  <vd@datamax.bg>
1931
1932         * ftp.c (getftp): Don't free RESPLINE if ftp_response returns a
1933         status other than FTPOK.
1934
1935 2005-08-04  Giuseppe Bonacci  <g.bonacci@libero.it>
1936
1937         * ftp-ls.c (ftp_parse_unix_ls): Remember the position of the
1938         previous token instead of backtracking back to it.
1939
1940 2005-07-08  Gisle Vanem  <giva@bgnett.no>
1941
1942         * mswindows.h: Include process.h to get getpid() declaration.
1943
1944 2005-07-08  Hrvoje Niksic  <hniksic@xemacs.org>
1945
1946         * utils.c (aprintf): Use vasprintf where available.
1947
1948 2005-07-08  Hrvoje Niksic  <hniksic@xemacs.org>
1949
1950         * url.c (rewrite_shorthand_url): Simplify code using aprintf and
1951         strspn.
1952
1953 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
1954
1955         * gnutls.c (ssl_check_certificate): Check for the validity of the
1956         presented X509 certificate.
1957
1958 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
1959
1960         * openssl.c (ssl_check_certificate): Print custom error messages
1961         for frequent X509 certificate problems.
1962
1963 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
1964
1965         * mswindows.h: Define an alias for stat and fstat, as requested by
1966         config-compiler.h.
1967         (gai_strerror): Define to windows_strerror if NEED_GAI_STRERROR is
1968         defined.
1969
1970 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
1971
1972         * mswindows.h: Use strtoll where available.
1973
1974 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
1975
1976         * sysdep.h: Add a full declaration of fnmatch.h.
1977
1978 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
1979
1980         * utils.c: Unconditionally include <setjmp.h>.
1981
1982 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
1983
1984         * utils.c (fnmatch_nocase): New function.
1985         (proclist): Use it instead of fnmatch when opt.ignore_case is
1986         requested.
1987         (in_acclist): Respect opt.ignore_case.
1988         (frontcmp): Respect opt.ignore_case.
1989
1990         * options.h (struct options): New flag opt.ignore_case.
1991
1992 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
1993
1994         * ptimer.c: Measure time in seconds rather than milliseconds.
1995         Adjusted all callers.
1996
1997 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
1998
1999         * http.c (gethttp): When freeing MESSAGE, take into account that
2000         it can be NULL.
2001
2002 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2003
2004         * cmpt.c (timegm): Handle years after 2099.
2005
2006 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2007
2008         * cmpt.c (timegm): Remove unused variable.
2009
2010 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2011
2012         * cmpt.c (timegm): Don't call mktime; simply count the seconds
2013         between 1970-01-01 and the specified date.
2014
2015 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2016
2017         * wget.h (or): Define HAVE_SSL when either HAVE_OPENSSL or
2018         HAVE_GNUTLS are defined.
2019
2020         * gnutls.c: New file.
2021
2022 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2023
2024         * http.c (gethttp): Don't print the request write error message
2025         twice.
2026
2027 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2028
2029         * openssl.c (openssl_errstr): Instead of always using a large
2030         static buffer, only allocate the error string when there is an
2031         actual error.
2032
2033 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2034
2035         * xmalloc.c (debugging_free): Prefix hex pointer value with "0x"
2036         when printing.
2037
2038 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2039
2040         * utils.c (NEXT_BASE64_CHAR): Rename to NEXT_CHAR and simplify to
2041         get the next non-whitespace character.
2042
2043 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2044
2045         * utils.c (base64_decode): Don't silently tolerate non-base64
2046         non-white-space characters in the base64 stream.
2047
2048 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2049
2050         * connect.c (LAZY_RETRIEVE_INFO): Make last_tick unsigned to match
2051         transport_map_modified_tick.
2052
2053 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2054
2055         * config-post.h (alloca): Updated declaration to not enumerate all
2056         Windows compilers.
2057
2058 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2059
2060         * openssl.c (openssl_errstr): Separate error messages with "; ".
2061
2062 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
2063
2064         * ftp.c (getftp): Ditto.
2065
2066         * http.c (gethttp): Use fd_errstr.
2067
2068         * connect.c (fd_register_transport): Restructure parameters to
2069         include only a single structure that describes transport
2070         implementation.
2071
2072         * openssl.c (openssl_errstr): New function: dump SSL error strings
2073         into a static buffer and return a pointer to the buffer.
2074
2075         * connect.c (fd_errstr): New function; returns transport-specific
2076         error message, or strerror(errno) if transport doesn't supply one.
2077
2078 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
2079
2080         * mswindows.h: Also wrap accept() and listen().
2081
2082 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
2083
2084         * url.c (path_end): Skip separators appropriate for the scheme.
2085         (strpbrk_or_eos): Remove gcc-specific version, as the optimization
2086         it tried to perform no longer applies.
2087
2088 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2089
2090         * host.c: Don't include "connect.h" now that we no longer have
2091         socket_has_inet6.
2092
2093 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2094
2095         * host.c: Remove extraneous definition of netdb.h.
2096
2097 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2098
2099         * http.c (gethttp): Skip error message body in the keep-alive
2100         case.
2101
2102 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2103
2104         * url.c (url_parse): Would crash when parsing fragments.  Support
2105         fragments for FTP URLs too.
2106
2107 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2108
2109         * version.c: Don't use "cvs" in version name, since we're not
2110         using CVS anymore.
2111
2112 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2113
2114         * progress.c (create_image): Ditto.
2115
2116         * retr.c (retr_rate): Display smaller rate numbers with greater
2117         precision.
2118
2119 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2120
2121         * http.c (response_head_terminator): Minor optimization.
2122
2123         * retr.c (fd_read_hunk): Call terminator with pointer to the start
2124         of the data and the pointer to the current data.  Changed all
2125         callers.
2126
2127 2005-07-01  Hrvoje Niksic  <hniksic@xemacs.org>
2128
2129         * url.c (url_parse): Make sure u->params is not initialized for
2130         http/https URLs.
2131         (url_parse): Don't crash on garbage following []-delimited IPv6
2132         addresses.
2133
2134 2005-07-01  Hrvoje Niksic  <hniksic@xemacs.org>
2135
2136         * main.c (print_help): Don't refer to the non-existent -nr in
2137         description of --mirror.
2138
2139 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
2140
2141         * host.c (pretty_print_address): Renamed to just print_address.
2142         Clarify documentation.
2143
2144 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
2145
2146         * http.c (gethttp): Explicitly document the different cases when
2147         generating the Host header.
2148
2149 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
2150
2151         * host.c (pretty_print_address): Handle error result from
2152         inet_ntop.
2153
2154 2005-06-30  Gisle Vanem  <giva@bgnett.no>
2155
2156         * mswindows.c (inet_ntop): New function.  Print IPv6 addresses
2157         using WSAAddressToString.
2158
2159 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2160
2161         * progress.c (dot_update): Remove unused variable row_qty.
2162
2163 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2164
2165         * main.c: Check for both SIGHUP and SIGUSR1 before using them.
2166
2167 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2168
2169         * utils.c: Unconditionally include locale.h.
2170
2171 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2172
2173         * ptimer.c: Include sys/time.h to get struct timeval.
2174
2175 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2176
2177         * wget.h: Remove obsolete definition of with_thousand_seps_sum.
2178
2179 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2180
2181         * gnu-md5.h: Unconditionally include limits.h.
2182
2183 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2184
2185         * utils.c (random_number): Use lrand48 if available.
2186         (random_float): Use drand48 if available.
2187
2188 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2189
2190         * main.c (secs_to_human_time): Use print_decimal when printing
2191         total download time in seconds.
2192
2193         * progress.c (print_row_stats): Use it to print total download
2194         time at the end of the download.
2195         (create_image): Ditto.
2196
2197         * utils.c (print_decimal): New function; print small decimal
2198         numbers with more precision than large ones.
2199
2200         * progress.c (print_row_stats): New function.  Print ETA after the
2201         download rate at the end of each row.
2202
2203 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
2204
2205         * init.c (parse_line): Check for alphanumerics.
2206
2207 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
2208
2209         * (dot_create): Remove unnecessary casts.
2210
2211 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
2212
2213         * ftp.c (getftp): Delete trailing newlines from LIST output so
2214         lines don't come out with trailing \015\012 with -S.
2215
2216 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2217
2218         * mswindows.h: Remove superfluous includes.
2219
2220 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2221
2222         * config-post.h (alloca): Amend alloca declaration to take care of
2223         all Win32 compilers, not just MSVC and MinGW.
2224
2225 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2226
2227         * utils.c (get_grouping_data): Force separator to "." rather than
2228         " " when "," is taken.
2229
2230 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2231
2232         * wget.h (PTR_FORMAT): Cast the result of sizeof to int before
2233         passing it to printf's %*.
2234
2235         * retr.h: Declare output_stream and output_stream_regular.
2236
2237         * ftp.h: Declare ftp_last_respline.
2238
2239         * convert.h: Declare dl_url_file_map.
2240
2241         * http.h: New file.
2242
2243 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2244
2245         * cookies.c: Make cookies_now static.
2246
2247 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2248
2249         * utils.c (human_readable): Remove intermediary cast to long; MSVC
2250         has problems casting *unsigned* __int64 to double.
2251
2252 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2253
2254         * sysdep.h: Use the system-provided fnmatch by default.
2255
2256 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2257
2258         * http.c (mktime_from_utc): Renamed to timegm and moved to cmpt.c.
2259         Don't compile it if GNU timegm is available.
2260         (http_atotm): Use timegm.
2261
2262 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2263
2264         * http.c (http_atotm): Correctly query the old locale value.
2265
2266 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2267
2268         * config-post.h (alloca): Don't #define alloca under MinGW32,
2269         which defines it in malloc.h, included from mswindows.h.
2270
2271 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2272
2273         * utils.c (get_grouping_data): Force the use of separators in C
2274         locale.
2275
2276 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2277
2278         * main.c (i18n_initialize): Set all locale categories.
2279
2280         * http.c (http_atotm): Temporarily set locale to "C".
2281
2282 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2283
2284         * http.c (gethttp): Improve "POST data file missing" error
2285         message.
2286
2287 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2288
2289         * progress.c (set_progress_implementation): Type COLON as const
2290         char *.
2291
2292 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2293
2294         * utils.c (with_thousand_seps): Handle negative numbers.
2295
2296 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2297
2298         * progress.c (create_image): Mark the "eta" string for translation.
2299
2300 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2301
2302         * html-url.c (get_urls_file): Don't explicitly set entry->next to
2303         NULL since entry is already zeroed out.
2304
2305 2005-06-26  Gisle Vanem  <giva@bgnett.no>
2306
2307         * mswindows.h: Define gai_strerror under MinGW.
2308
2309 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2310
2311         * utils.c (with_thousand_seps): Correctly implement thousand seps
2312         consisting of more than one character.
2313
2314 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2315
2316         * main.c (secs_to_human_time): Ditto.
2317
2318         * progress.c (create_image): Print more exact duration of very
2319         short downloads.
2320
2321         * main.c (secs_to_human_time): Don't translate time suffixes "h",
2322         "m", and "s", which are not strictly SI, but are "accepted for use
2323         with SI".
2324         (secs_to_human_time): Print really small intervals as 0s, not
2325         0.00s.
2326
2327 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2328
2329         * config-post.h: Replace the alloca declaration with the one from
2330         the latest Autoconf manual.  This should remove a warning with GCC
2331         on AIX.
2332
2333 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2334
2335         * ftp.c (getftp): Always invoke SIZE, not only when continuing a
2336         download.
2337
2338         * main.c (main): Ditto here.
2339
2340         * progress.c (create_image): When the download is finished, print
2341         how long it took.
2342
2343 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2344
2345         * main.c (main): Print the downloaded and quota amounts with the
2346         "human_readable" function.
2347
2348         * ftp.c (print_length): Ditto.
2349
2350         * http.c (gethttp): Don't display thousand separators.
2351
2352         * utils.c (with_thousand_seps): Rewritten to respect locale
2353         settings and to be type size agnostic.
2354
2355 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2356
2357         * utils.c (human_readable): Divide with 1024 instead of shifting
2358         so the operation can work with non-integer N.
2359
2360 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2361
2362         * progress.c (eta_to_human): New logic for more human-readable
2363         ETA.
2364
2365 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2366
2367         * utils.c (with_thousand_seps_sum): Decrease buffer size so it
2368         cannot overrun add_thousand_seps's buffer.
2369
2370 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2371
2372         * utils.c (SPRINTF_WGINT): The correct format is %I64d, not just
2373         %I64.
2374
2375 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2376
2377         * http.c (http_loop): Don't warn about wildcards in HTTP URLs if
2378         globbing isn't requested in the first place.
2379
2380         * retr.c (retrieve_url): Temporarily turn off globbing when
2381         processing HTTP->FTP redirects.
2382
2383 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2384
2385         * utils.c (with_thousand_seps_sum): Now defined only if
2386         SUM_SIZE_INT is double.
2387
2388         * wget.h (SUM_SIZE_INT): Instead of bothering with long, long
2389         long, __int64, and friends, simply either use wgint or double, end
2390         of story.  Since we know how to print either, we no longer need
2391         LARGE_INT_FMT.
2392
2393         * sysdeps.h (LARGE_INT): Renamed to SUM_SIZE_INT to better reflect
2394         its intent, and moved to wget.h.
2395
2396 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2397
2398         * Makefile.in: No need to clean .libs.
2399
2400 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2401
2402         * cookies.c (parse_set_cookies): Cast pointer subtraction to int
2403         before using it with %d; AIX compiler warns on this.
2404         Reported by Jens Schleusener.
2405
2406 2005-06-24  Hrvoje Niksic  <hniksic@xemacs.org>
2407
2408         * http.c (gethttp): Don't prepend / here.
2409
2410         * cookies.c (cookie_handle_set_cookie): Prepend / to PATH.
2411         (cookie_header): Ditto.
2412
2413 2005-06-24  Hrvoje Niksic  <hniksic@xemacs.org>
2414
2415         * init.c: opt.verbose must be declared as int.
2416
2417 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
2418
2419         * cmpt.c (strpbrk): Removed.
2420         (mktime): Removed.
2421         Include <time.h>.
2422
2423 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
2424
2425         * utils.c (read_file): Ditto.
2426
2427         * main.c (main): Use struct_fstat.
2428
2429         * mswindows.h (struct_fstat): Define a struct_fstat to deal with
2430         the fact that Borland 5.5 has 64-bit stat, but not 64-bit fstat!
2431
2432 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
2433
2434         * sysdep.h: Remove code that deals with Watcom.
2435
2436 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2437
2438         * all: Use bool instead of int and false/true instead of 0/non-0
2439         for boolean variables and values.
2440
2441 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2442
2443         * sysdep.h: Include the stdbool.h/_Bool/bool blurb from Autoconf.
2444
2445 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2446
2447         * init.c (cmd_lockable_boolean): Removed.
2448
2449 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2450
2451         * cookies.c (struct cookie): Use 1-bit bitfields for booleans
2452         which makes the structure takes less space at no cost in
2453         complexity.
2454
2455 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2456
2457         * Makefile.in ($(OBJ)): Add the config.h dependency.
2458
2459 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2460
2461         * openssl.c, connect.c, host.c: Replace instances of #ifdef
2462         ENABLE_DEBUG if (opt.debug) {...} #endif with IF_DEBUG {...}.
2463
2464         * main.c: Rename the IF_DEBUG defined here to WHEN_DEBUG.
2465
2466         * wget.h (IF_DEBUG): New macro.
2467         (DEBUGP): Define in terms of IF_DEBUG.
2468
2469 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2470
2471         * http.c (gethttp): Only handle --set-cookies (and assert that
2472         cookie jar exists) if opt.cookies is true.  Failure to do so
2473         triggered the assert when --no-cookies was used and the server
2474         sent a Set-Cookie header.  Ouch!
2475
2476 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2477
2478         * connect.c (select_fd): Expect select() to exist.
2479
2480         * utils.c (xsleep): Always use select() as sleep fallback on
2481         non-Windows platforms.
2482
2483         * ptimer.c: Delete the implementation of PTIMER_TIME.
2484
2485         * main.c: Assume existence of signal(), test for different signal
2486         names instead.
2487
2488         * cmpt.c: Better document reasons why certain functions are
2489         included.
2490
2491 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2492
2493         * Makefile.in: Remove the manually maintained dependency list;
2494         make all object files depend on every header.
2495
2496 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
2497
2498         * hash.c: Rename "mapping" to "cell" to avoid confusion with the
2499         term "mapping" (or "map") sometimes being used for the entire hash
2500         table.  Also rename "non-empty" to "occupied" for easier reading
2501         of if (!NON_EMPTY (...)) ... .
2502
2503 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
2504
2505         * main.c, ptimer.c, sysdep.h, utils.c: Use #elif to simplify reading of
2506         chained if-else-else-else-... statements.
2507
2508 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
2509
2510         * all: Return type of signal handlers is `void'.  Include signal.h
2511         unconditionally.
2512
2513         * all: Don't explicitly cast values returned by malloc.  We no
2514         longer support ancient compilers that don't declare malloc, and we
2515         never supported C++ builds.
2516
2517 2005-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
2518
2519         * all: Don't declare errno.  Include both time.h and sys/time.h,
2520         as long as sys/time.h exists.  Don't dereference function pointers
2521         when invoking the functions they point to.
2522
2523         * cmpt.c (memmove): Remove function mandated by C89.
2524         (strerror): Ditto.
2525         (strstr): Ditto.
2526
2527         * all: Undo the K&R-ization changes from 2005-05-03.
2528
2529         * all: Remove support for K&R compilers: use C89 function
2530         declarations, remove definition of PARAMS, remove support for
2531         varargs, and remove ansi2knr.  Assume the presence of time.h,
2532         string.h, and other headers mandated by C89.
2533
2534 2005-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
2535
2536         * init.c (cmd_lockable_boolean): Don't recognize literal "2" and
2537         "-1" values; unlike 0 and 1, those should never be exposed to the
2538         user.  Update the error message to be more self-consistent, as
2539         proposed by Benno Schulenberg.
2540
2541 2005-06-18  Hrvoje Niksic  <hniksic@xemacs.org>
2542
2543         * http.c (gethttp): Don't free "head" before using it to save
2544         headers.
2545
2546 2005-06-18  Hrvoje Niksic  <hniksic@xemacs.org>
2547
2548         * http.c (gethttp): When -E is in use, check for file existence
2549         after appending ".html" to the name and modify the file name if
2550         necessary.
2551
2552 2005-06-17  Hrvoje Niksic  <hniksic@xemacs.org>
2553
2554         * connect.c (socket_has_inet6): Removed.
2555
2556         * host.c (lookup_host): Don't use the AI_ADDRCONFIG getaddrinfo
2557         hint.
2558
2559 2005-06-16  Hrvoje Niksic  <hniksic@xemacs.org>
2560
2561         * init.c (cmd_lockable_boolean): Improve the error message so it
2562         lists the more useful values first.
2563
2564 2005-06-15  Hrvoje Niksic  <hniksic@xemacs.org>
2565
2566         * http.c (gethttp): Also report the system error when the POST
2567         data file is missing.
2568
2569 2005-06-15  Benno Schulenberg  <benno@nietvergeten.nl>
2570
2571         * ftp.c, http.c, connect.c, cookies.c, html-url.c, init.c, res.c:
2572         Gettext-ize messages that were previously missed.
2573
2574 2005-06-15  Hrvoje Niksic  <hniksic@xemacs.org>
2575
2576         * host.h (ip_address): Remove the trailing comma from the type
2577         enum in the no-IPv6 case.
2578
2579         * main.c (struct cmdline_option): Remove the trailing comma from
2580         the enum.
2581
2582         Reported by Jens Schleusener.
2583
2584 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
2585
2586         * url.c (strpbrk_or_eos): Check for a recent GCC version before
2587         using the statement-as-expression extension.
2588
2589 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
2590
2591         * http.c (gethttp): Don't attempt to "skip short body" if we're
2592         issuing a HEAD request (in which case the response head is not
2593         followed by a body).
2594
2595 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
2596
2597         * init.c (cmd_spec_header): Don't split the string along the
2598         commas using cmd_vector; just append the new value using
2599         vec_append instead.
2600
2601         * utils.c (vec_append): New function.
2602
2603 2005-05-27  Andreas Beckmann  <debian@abeckmann.de>
2604
2605         * html-url.c (tag_handle_link): Mark the content from the <link
2606         src="..."> tag as expecting HTML.
2607
2608 2005-05-24  Hrvoje Niksic  <hniksic@xemacs.org>
2609
2610         * http.c (http_atotm): Document the origin of the "cookie date"
2611         format.
2612
2613 2005-05-21  Hrvoje Niksic  <hniksic@xemacs.org>
2614
2615         * init.c (setval_internal): Report exact command name alongside
2616         the "display name".
2617
2618 2005-05-18  Hrvoje Niksic  <hniksic@xemacs.org>
2619
2620         * cookies.c (update_cookie_field): Explicitly cast -1 to time_t to
2621         cope with systems where time_t is unsigned.
2622
2623         * cookies.c: Remove unnecessary casts to time_t from values
2624         already of that type.
2625
2626 2005-05-17  Hrvoje Niksic  <hniksic@xemacs.org>
2627
2628         * ftp.c (ftp_loop_internal): Same here.
2629
2630         * http.c (http_loop): Don't clobber the file when -c is specified
2631         and the first attempt to retrieve the file fails.
2632
2633 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
2634
2635         * openssl.c (ssl_check_certificate): Print all issues with a
2636         certificate.
2637
2638 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
2639
2640         * ftp-basic.c: Don't xfree() the line returned by ftp_response if
2641         the returned code is not FTPOK.
2642
2643 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
2644
2645         * init.c (cleanup): Don't free the non-existent opt.ftp_acc.  Free
2646         the SSL-related stuff.
2647
2648 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
2649
2650         * ftp.c (print_length): Consistently print \n at end of the
2651         "Length" line.
2652
2653 2005-05-14  Hrvoje Niksic  <hniksic@xemacs.org>
2654
2655         * openssl.c (ssl_connect): Announce the beginning and the end of
2656         the SSL handshake when in debug mode.
2657
2658         * wget.h (PTR_FORMAT): New macro for easier printing of pointer
2659         values.  Use %0*lx along with PTR_FORMAT instead of %p.
2660
2661 2005-05-14  Hrvoje Niksic  <hniksic@xemacs.org>
2662
2663         * http.c (gethttp): Would forget to close the connection when
2664         keep_alive was not used.
2665
2666 2005-05-13  Hrvoje Niksic  <hniksic@xemacs.org>
2667
2668         * openssl.c (pattern_match): Document the code that decides
2669         whether "*" matches ".".
2670
2671 2005-05-12  Hrvoje Niksic  <hniksic@xemacs.org>
2672
2673         * ftp-ls.c (ftp_index): Use %d to print the port number, which is
2674         now int.
2675         From Steven M. Schweda's VMS patches.
2676
2677 2005-05-12  Hrvoje Niksic  <hniksic@xemacs.org>
2678
2679         * url.c (rewrite_shorthand_url): Don't rewrite "https://host" to
2680         "ftp://https//host" when SSL is not used.
2681
2682 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
2683
2684         * openssl.c (ssl_check_server_identity): Renamed to
2685         ssl_check_certificate because it does more than just checking the
2686         server's identity.
2687         (ssl_check_certificate): Tell the user about
2688         --no-check-certificate.
2689
2690 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
2691
2692         * openssl.c (ssl_init): Always use SSL_VERIFY_NONE, so that the
2693         handshake finishes even if the certificate is invalid.  That way
2694         ssl_check_server_identity can provide better diagnostics on why
2695         the verification failed.
2696
2697 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
2698
2699         * openssl.c (pattern_match): New function.
2700         (ssl_check_server_identity): Treat peer certificate common name as
2701         wildcard.
2702
2703 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
2704
2705         * openssl.c (ssl_check_server_identity): Print certificate subject
2706         and issuer.
2707
2708 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
2709
2710         * res.c (res_register_specs): Correctly pass pointers to
2711         hash_table_get_pair.
2712
2713 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
2714
2715         * http.c (gethttp): Call ssl_check_server_identity.
2716
2717         * openssl.c (ssl_check_server_identity): New function, verifies
2718         that the host name in the certificate matches the actual host
2719         name.
2720         (verify_cert_callback): Removed, since it didn't do anything
2721         except returning the preverify_ok argument.
2722
2723         * connect.c (fd_transport_context): Allow retrieval of the context
2724         pointer registered with fd_register_transport.
2725
2726 2005-05-09  Hrvoje Niksic  <hniksic@xemacs.org>
2727
2728         * openssl.c (verify_cert_callback): Renamed from verify_callback.
2729         Always return the received "ok" value.  Print the X509 name in
2730         debug mode.
2731         (ssl_init): Enable partial writes in SSL context.
2732
2733 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
2734
2735         * http.c (http_loop): Check for wildcards in the URL path
2736         component, not in the whole URL.
2737
2738         * ftp.c (ftp_loop): Check for wildcards in URL path before
2739         unescaping, so the users can escape globbing metacharacters with %
2740         escapes.
2741
2742 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
2743
2744         * init.c (run_command): Correctly interpret the return value of
2745         parse_line.
2746         (commands): Re-alphabetize.
2747
2748 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
2749
2750         * netrc.c (parse_netrc): Explicitly check for assignment != NULL
2751         to silence warning from Borland C.
2752
2753         * url.c (sync_path): Don't unnecessarily increment p.
2754         (url_parse): Don't unnecessarily set url_encode to NULL just
2755         prior to return from the function.
2756
2757 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
2758
2759         * log.c (escnonprint_internal): Place variable declarations
2760         before other statements.
2761
2762 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
2763
2764         * html-url.c: Include recur.h.
2765
2766         * http.c (request_new): Define as accepting no args.
2767
2768 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
2769
2770         * url.c (strpbrk_or_eos): Made inline.  Use strchr(s, '\0') for
2771         finding the NUL char position.
2772
2773 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
2774
2775         * url.c (decide_copy_method): Renamed to char_needs_escaping.
2776         Since it now returns only two possible values, change it to return
2777         boolean (int).
2778
2779 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
2780
2781         * ftp-basic.c (ftp_request): Prevent newlines in VALUE causing
2782         inadvertent sending of multiple FTP commands.
2783
2784 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
2785
2786         * url.c (decide_copy_method): Never cause reencode_escapes to
2787         decode % escapes; it is too intrusive and breaks some servers.
2788
2789 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
2790
2791         * http.c (gethttp): When tunnelling SSL traffic over proxy with
2792         CONNECT, we're really talking to the remote server directly.
2793         Because of this, the request-line argument must be the URL path
2794         rather than the whole URL, as it would be when using regular
2795         proxies.
2796         Reported by Charles Lane.
2797
2798 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
2799
2800         * init.c (cmd_spec_useragent): Allow empty User-Agent.
2801
2802         * http.c (gethttp): Don't print "unknown authentication scheme"
2803         for failed Basic authentication.
2804         (SET_USER_AGENT): Don't set user-agent if opt.useragent is empty.
2805         (gethttp): Use alloca for allocation of www_authenticate.
2806
2807 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
2808
2809         * main.c (print_help): Fix wording of --secure-protocol help text.
2810
2811 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
2812
2813         * cmpt.c (strstr): Updated from glibc 2.3.5.
2814
2815 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2816
2817         * http.c (http_atotm): Zero out the whole struct tm being passed
2818         to strptime.
2819
2820 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2821
2822         * main.c (main): Propagate option name to setoptval.
2823
2824         * init.c (setoptval): Accept another argument, OPTNAME.  Propagate
2825         that argument as the option name independently of the actual
2826         command, determined by command_by_name(com).
2827
2828 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2829
2830         * init.c (parse_line): Make the return value indicate whether
2831         there was a syntax error or a setter failed.
2832         (run_wgetrc): Return an indication on whether an error has been
2833         encountered.
2834         (initialize): Abort if there have been errors running either
2835         .wgetrc file.
2836
2837 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2838
2839         * log.c (copy_and_escape): Slightly reduce code repetition between
2840         the two loops.
2841
2842 2005-05-05  Charles C.Fu  <ccwf@bacchus.com>
2843
2844         * utils.c (proclist): Strip leading slash when calling fnmatch
2845         too, otherwise wildcard comparisons always fail.
2846
2847 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2848
2849         * utils.c (touch): Set access time to current time.
2850
2851 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2852
2853         * url.c (url_unescape): Don't unescape %00, it effectively
2854         truncates the string.
2855
2856 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2857
2858         * log.c (copy_and_escape): Replace the FOR_URI argument with a
2859         slightly more general mechanism for specifying different kinds of
2860         escape.
2861
2862 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2863
2864         * ftp-basic.c (ftp_response): Fix printing FTP server response.
2865
2866 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2867
2868         * retr.c (limit_bandwidth_reset): Reset sleep_adjust.
2869         (limit_bandwidth): Don't allow huge "adjustment" values that
2870         result from being suspended for a while.
2871
2872 2005-05-04  Hrvoje Niksic  <hniksic@xemacs.org>
2873
2874         * wget.h: If gettext was found but libtintl.h wasn't, declare
2875         gettext's return type to avoid type mismatches.
2876
2877 2005-05-03  Hrvoje Niksic  <hniksic@xemacs.org>
2878
2879         * url.c (url_parse): Rename label `error' to avoid conflict with
2880         identifier.
2881
2882         * retr.c (fd_read_body): Rename label `out' to avoid conflict with
2883         identifier.
2884         (fd_read_hunk): Use explicit double constant.
2885         (retrieve_from_file): Don't use string concatenation.
2886         (sleep_between_retrievals): Make sure xsleep is called with a
2887         `double' argument.
2888         (no_proxy_match): Define as static, like it is declared.
2889
2890         * progress.c (bar_create): Use 0.0 instead of 0 because K&R
2891         compilers can't automatically promote it.
2892
2893         * http-ntlm.c (ntlm_output): Replace \xHH sequences with \OOO for
2894         the sake of old compilers.
2895
2896         * ftp.c (ftp_loop_internal): Don't use string concatenation.
2897
2898         * http.c (request_send): Use explicit double constants when
2899         calling fd_read and fd_write.
2900         (post_file): Ditto.
2901         (gethttp): Ditto.
2902         (skip_short_body): Ditto.
2903
2904         * ftp-basic.c: When calling fd_write, specify the last argument as
2905         a `double' constant for the sake of K&R compilers which don't see
2906         the prototype and therefore can't promote it to double
2907         automatically.
2908
2909         * cookies.c (cookie_jar_load): Rename abort label to abort_cookie
2910         to avoid name conflict in K&R compilers.
2911
2912 2005-04-29  Hrvoje Niksic  <hniksic@xemacs.org>
2913
2914         * ptimer.c (posix_init): Since we allow _POSIX_MONOTONIC_CLOCK==0,
2915         it is not enough to check for _POSIX_MONOTONIC_CLOCK-0, we must
2916         also check for defined(_POSIX_MONOTONIC_CLOCK).
2917
2918 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
2919
2920         * ftp.c, hash.c, connect.c, host.c, http.c: Remove unreached code,
2921         such as "break" following return or abort.
2922
2923 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
2924
2925         * init.c (commands): Wrap the use of opt.random_file in #ifdef
2926         HAVE_SSL.
2927
2928 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
2929
2930         * http.c (gethttp): Correctly set the user agent.
2931
2932 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
2933
2934         * init.c (cmd_spec_useragent): Free the old value of
2935         opt.useragent before setting the new one.
2936
2937 2005-04-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
2938
2939         * main.c: Map --ftp-password, --http-password and --proxy-password to
2940         the new ftppassword, httppassword and proxypassword commands
2941         respectively.  Document the --user and --password options in the help
2942         string.
2943         
2944 2005-04-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
2945
2946         * ftp.c: Add support for --user and --password.
2947         
2948         * http.c: Add support for --user and --password.
2949         
2950         * init.c: Deprecated ftppasswd, httppasswd, login, passwd and
2951         proxypasswd commands.  Added ftppassword, ftpuser, httppassword,
2952         password, proxypassword and user commands.
2953
2954         * main.c: Renamed --ftp-passwd to --ftp-password.  Added --ftp-user,
2955         --http-password, --password, --proxy-password and --user.  Deprecated
2956         --http-passwd and --proxy-passwd.  Added documentation for new options
2957         and removed documentation for deprecated options in the help string.
2958         
2959         * options.h (struct options): Added user and passwd members to handle
2960         --user and --password respectively.  Renamed ftp_acc and ftp_pass
2961         members to ftp_user and ftp_passwd for consistency.
2962
2963 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
2964
2965         * main.c (print_help): Advertise "DER", not "ASN1".
2966
2967 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
2968
2969         * openssl.c (init_prng): Disable the weak random seed by default.
2970
2971         * http.c (gethttp): Simplify SSL initialization; disable SSL when
2972         anything goes wrong with the initialization.
2973
2974         * options.h (struct options): New option opt.random_file.
2975
2976 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
2977
2978         * init.c: Wrap private key commands in IF_SSL.
2979
2980 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
2981
2982         * openssl.c (ssl_init): Ditto.
2983
2984         * options.h (struct options): Allow separate specification of key
2985         type and certificate type.
2986
2987         * init.c (cmd_spec_cert_type): Provide a "der" synonym for "asn1"
2988         certificate encoding.
2989
2990 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
2991
2992         * openssl.c: Renamed "gen_sslfunc.c" to "openssl.c" and
2993         "gen_sslfunc.h" to "openssl.h".  This reflects the intent of
2994         openssl.c encapsulating the OpenSSL-specific code.
2995
2996 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
2997
2998         * init.c: Renamed "closure" (a synonym for context in some
2999         cultures) to "place", which more accurately reflects the usage.
3000
3001 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3002
3003         * gen_sslfunc.c (ssl_init): Use default locations for loading the
3004         certificate bundles.
3005         (ssl_init_prng): Disable the cryptographically weak PRNG
3006         initialization fallback.
3007
3008         * init.c: Renamed SSL command-line arguments and wgetrc commands.
3009         (defaults): Check the server certificate by default.
3010
3011 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3012
3013         * cookies.c (cookie_handle_set_cookie): Delete the part of the
3014         path after the trailing slash.
3015
3016         * http.c (gethttp): Call cookie_handle_set_cookie with path that
3017         begins with '/'.
3018
3019 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3020
3021         * http.c (gethttp): Call skip_short_body only if keep_alive is in
3022         use.
3023         (gethttp): Send the User-Agent header with the CONNECT request as
3024         well.
3025
3026 2005-04-25  Hrvoje Niksic  <hniksic@xemacs.org>
3027
3028         * main.c (option_data): Removed support for the undocumented flag
3029         --use-proxy.
3030
3031 2005-04-25  Hrvoje Niksic  <hniksic@xemacs.org>
3032
3033         * main.c (option_data): Don't treat -Y as a boolean switch; treat
3034         it as a value switch instead, so "-Y off" continues to work.
3035
3036 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
3037
3038         * utils.c (aprintf): Delete unreachable statement.
3039
3040 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
3041
3042         * host.c (cmp_prefer_ipv4): New function.
3043         (cmp_prefer_ipv6): New function.
3044         (lookup_host): Use the appropriate comparator according to
3045         opt.prefer_family.
3046
3047         * init.c: New option prefer_family.
3048
3049         * host.c (is_valid_ipv6_address): Spell NS_* constants in lower
3050         case to avoid clash with system headers.
3051         (lookup_host): Reorder the addresses so that IPv4 ones come first.
3052
3053         * utils.c (stable_sort): New function.
3054
3055 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
3056
3057         * connect.c (retryable_socket_connect_error): Return 0 for
3058         ENETUNREACH and EHOSTUNREACH.
3059
3060 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
3061
3062         * cmpt.c: Reenable the memmove implementation for systems that
3063         lack it.
3064
3065         * http.c (gethttp): Store the "authorized" state of the persistent
3066         connection.
3067         (request_remove_header): New function.
3068         (gethttp): Don't send the "Basic" authentication if the connection
3069         is already authorized.
3070
3071 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
3072
3073         * utils.c (base64_encode): Treat input as unsigned chars.
3074         Required for correct encoding of binary stuff.
3075
3076 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
3077
3078         * http-ntlm.c: Format the function definitions in an
3079         ansi2knr-friendly fashion.
3080
3081 2005-04-22  Hrvoje Niksic  <hniksic@xemacs.org>
3082
3083         * http.c (gethttp): Handle multiple WWW-Authentication headers,
3084         only one of which is recognized.  Those are sent by IIS with NTLM
3085         authorization.
3086         (create_authorization_line): Propagate information whether
3087         authorization is finished.
3088         (gethttp): Only stop authorization when it's really finished, not
3089         after fixed two steps.
3090
3091 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
3092
3093         * gen_sslfunc.c (ssl_init): Fix warning message text; mark the
3094         message as translatable.
3095
3096 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
3097
3098         * main.c (print_help): Print the EGD option outside the cluster of
3099         SSL options.
3100
3101 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
3102
3103         * http-ntlm.c (ntlm_output): Fix setting the domain.
3104         Suggested by Sami Krank.
3105
3106 2005-04-20  Mauro Tortonesi  <mauro@ferrara.linux.it>
3107
3108         * connect.c: Set IPV6_V6ONLY socket option when -6 switch is used.
3109
3110 2005-04-20  FUJISHIMA Satsuki  <sf@FreeBSD.org>
3111
3112         * http.c (request_set_header): Fix the check whether a new header
3113         needs to be allocated.
3114
3115 2005-04-18  Hrvoje Niksic  <hniksic@xemacs.org>
3116
3117         * utils.c (base64_encode): Use the parameter order that makes more
3118         sense.  Return the length of the base64 written.  Updated all
3119         callers.
3120
3121 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
3122
3123         * http.c (request_set_header): Free NAME when VALUE is NULL and
3124         freeing the header name is requested.
3125
3126 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
3127
3128         * snprintf.c (fmtstr): Declare VALUE as const char *.
3129         Based on patch by Russ Allbery.
3130
3131 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
3132
3133         * snprintf.c (fmtfp): More correct handling of significant digit
3134         count with %g -- 0.002 has one significant digit, not three.
3135
3136 2005-04-16  Hrvoje Niksic  <hniksic@xemacs.org>
3137
3138         * retr.c (fd_read_body): Respect read timeout with non-interactive
3139         or no progress gauge -- treat ETIMEDOUT specially only when
3140         progress_interactive.
3141         Reported by FUJISHIMA Satsuki.
3142
3143 2005-04-16  FUJISHIMA Satsuki  <sf@FreeBSD.org>
3144
3145         * http.c (gethttp): Don't use HTTP/1.0 persistent connections over
3146         proxy.
3147
3148 2005-04-16  Hrvoje Niksic  <hniksic@xemacs.org>
3149
3150         * snprintf.c: Use the PARAMS macro to handle prototypes.  Write
3151         function definitions in the ansi2knr-friendly way.
3152         (fmtstr): If string precision is specified, don't read VALUE past
3153         it.
3154         (dopr): Actually print %g and %e formats.
3155         (fmtfp): Fix a bug that caused 0.01 to be printed as 0.1.
3156         (fmtfp): Use LLONG in floating point conversions to be able to
3157         convert more digits.
3158         (fmtfp): Interpret precision as number of significant digits with
3159         %g.
3160         (fmtfp): Omit trailing decimal zeros with %g.
3161
3162         * snprintf.c: Don't include <ctype.h> because none of it is used.
3163         Include strings.h/string.h, as per Autoconf.
3164
3165 2005-04-15  Hrvoje Niksic  <hniksic@xemacs.org>
3166
3167         * ptimer.c: Use _POSIX_TIMERS - 0 > 0, which handles the case when
3168         _POSIX_TIMERS is defined but empty, as well as the case when it is
3169         undefined.  Do the same with the check for _POSIX_MONOTONIC_CLOCK.
3170         Suggested by Larry Jones.
3171
3172 2005-04-15  Hrvoje Niksic  <hniksic@xemacs.org>
3173
3174         * ptimer.c: Check that _POSIX_TIMERS is defined as well as > 0.
3175         Problem reported by Steven M. Schweda.
3176
3177 2005-04-14  Hrvoje Niksic  <hniksic@xemacs.org>
3178
3179         * http.c (skip_short_body): Print the skipped body data in debug
3180         mode.
3181         (skip_short_body): Don't skip more than 4k of body data.
3182         (skip_short_body): Return whether the skipping was successful.
3183         (gethttp): If skip_short_body failed, invalidate the connection.
3184
3185 2005-04-12  Gisle Vanem  <giva@bgnett.no>
3186
3187         * ftp.c (getftp): Ditto.
3188
3189         * http.c (gethttp): Open the output file in binary mode.
3190
3191 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3192
3193         * hash.c: Conditionalize including config.h on HAVE_CONFIG_H
3194         instead of on STANDALONE.
3195
3196 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3197
3198         * gen_sslfunc.c (ssl_print_errors): Made static.
3199         (ssl_print_errors): Eliminate potentially dangerous fixed-size
3200         error buffer.  Passing NULL to ERR_error_string causes it to use
3201         its own static buffer, which is fine for our purposes.
3202
3203         * gen_sslfunc.c: Include gen_sslfunc.h.  Make the declarations of
3204         ssl_init and ssl_conect match the actual definitions.
3205         (ssl_connect): Simply return a boolean, the SSL context is no
3206         longer useful as a return value.
3207
3208         * retr.c: Don't include SSL headers; we don't need them.
3209
3210 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3211
3212         * config-post.h: Don't define _VA_LIST under Solaris; it breaks
3213         compilation with GCC 3.4 under Solaris 10.  (It was defined to
3214         avoid a warning with previous versions of GCC.)
3215
3216 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3217
3218         * xmalloc.c (register_ptr): Warn the user to increase SZ prior to
3219         aborting.
3220
3221 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3222
3223         * convert.c (convert_cleanup): Free converted_files.
3224
3225 2005-04-10  Hrvoje Niksic  <hniksic@xemacs.org>
3226
3227         * wget.h (DEBUGP): Use __builtin_expect to give a hint to GCC that
3228         opt.debug is false in the vast majority of cases.
3229
3230 2005-04-10  Hrvoje Niksic  <hniksic@xemacs.org>
3231
3232         * config-post.h: Declare alloca as void *, not char *.
3233
3234 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
3235
3236         * recur.c (download_child_p): When -p is used, (temporarily)
3237         ignore accept/reject rules for HTMLs, even when they are at the
3238         maximum recursion depth.  That is because with -p we are, if
3239         necessary, overstepping the max. depth to get the requisites.
3240
3241 2004-06-12  Larry Jones <lawrence.jones@ugsplm.com>
3242
3243         * recur.c (download_child_p): Correct the logic in check number 6:
3244         test opt.reclevel (not DEPTH) against INFINITE_RECURSION.
3245
3246 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
3247
3248         * url.c: Use "static const" in preference to "const static".
3249         Sun's cc warns that "storage class after type is obsolescent".
3250
3251         * url.c (urlchr_table): Don't mark ~ as unsafe, too many broken
3252         web sites are confused when ~ is changed to %7E.  Their servers
3253         redirect /%7Efoo/ to /~foo/, which Wget again accesses using %7E,
3254         causing further redirections, therefore looping infinitely.  See
3255         Debian bug #301624 for an example.
3256
3257 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
3258
3259         * alloca.c: Include wget.h to be able to use xmalloc.  In addition
3260         to defining malloc to xmalloc, also define free to xfree.
3261
3262 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
3263
3264         * http-ntlm.c (ntlm_output): Use "char", not "unsigned char" for
3265         ntlmbuf.  Our base64 functions accept char anyway.
3266         (ntlm_output): Join up the format string, since we nominally
3267         support K&R compilers.
3268         (ntlm_output): Ditto.
3269
3270 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3271
3272         * ptimer.c: Use Windows timers under Cygwin, whose POSIX timer
3273         implementation is incomplete.
3274
3275 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3276
3277         * ptimer.c (struct ptimer): Remove the unused initialized field.
3278
3279         * ptimer.c: Renamed function parameters from WT (which used to
3280         stand for wget_timer or wtimer) to PT.
3281
3282 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3283
3284         * ptimer.c (posix_init): Be smarter about choosing clocks.  In
3285         decreasing order of preference, use CLOCK_MONOTONIC,
3286         CLOCK_HIGHRES, and CLOCK_REALTIME.
3287         (ptimer_allocate): Removed.
3288
3289         * ptimer.c: Refactor the code by cleanly separating the
3290         architecture-dependent code from the architecture-independent
3291         code.
3292
3293 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3294
3295         * ptimer.c (ptimer_init): Explicitly check that
3296         _POSIX_MONOTONIC_CLOCK is *both* defined and >=0.  (Undefined
3297         symbols are >=0.)
3298
3299 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3300
3301         * ptimer.c (ptimer_diff): Fix typo affecting Windows build.
3302
3303 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3304
3305         * ptimer.c (ptimer_init): In fact, _POSIX_MONOTONIC_CLOCK needs to
3306         be >= 0.
3307
3308         * ptimer.c (ptimer_init): Check whether _POSIX_MONOTONIC_CLOCK is
3309         defined instead of whether it's greater than 0.  glibc defines it
3310         to 0, but still makes it available via sysconf.
3311
3312 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3313
3314         * mswindows.c (str_to_int64): Rename OVERFLOW and UNDERFLOW to
3315         INT64_OVERFLOW and INT64_UNDERFLOW, since those names are used.
3316
3317 2005-04-07  Hrvoje Niksic  <hniksic@xemacs.org>
3318
3319         * ptimer.c: New file.  Move the "wtimer" functions from utils.c to
3320         this file and rename them to ptimer_.
3321
3322 2005-04-07  Hrvoje Niksic  <hniksic@xemacs.org>
3323
3324         * host.c (NO_ADDRESS): Define NO_ADDRESS only after the system
3325         headers have been included.
3326
3327 2005-04-06  Hrvoje Niksic  <hniksic@xemacs.org>
3328
3329         * http.c (pconn): Include NTLM data, which is per-connection.
3330         (known_authentication_scheme_p): Recognize NTLM authorization.
3331         (create_authorization_line): Call ntlm_input and ntlm_output.
3332
3333         * http-ntlm.c: New file, donated by Daniel Stenberg and originally
3334         written for curl, heavily modified for Wget.
3335
3336         * utils.c (base64_encode): Relocated from http.c, since it is now
3337         used by http-ntlm.c, and will possibly be used elsewhere.
3338         (base64_decode): New function, originally based on code from GNU
3339         recode.
3340
3341 2005-04-02  Hrvoje Niksic  <hniksic@xemacs.org>
3342
3343         * ftp.c (ftp_loop): Ditto.
3344
3345         * ftp-basic.c (ftp_pasv): Use the xzero shorthand for memset(0).
3346         (ftp_lpsv): Ditto.
3347
3348 2005-04-05  Mauro Tortonesi  <mauro@ferrara.linux.it>
3349
3350         * Makefile.in: removed string_t.c from list of source files.
3351
3352 2005-04-04  Mauro Tortonesi  <mauro@ferrara.linux.it>
3353
3354         * string_t.c: Removed.
3355         
3356         * string_t.h: Removed.
3357
3358 2005-04-02  Hrvoje Niksic  <hniksic@xemacs.org>
3359
3360         * url.c (rewrite_shorthand_url): Only accept recognized schemes.
3361         That way "foo:80" will correctly be rewritten to "http://foo:80"
3362         instead of left unchanged and ultimately rejected because of
3363         "unsupported scheme foo".
3364
3365 2005-03-31  Hrvoje Niksic  <hniksic@xemacs.org>
3366
3367         * utils.c (number_to_string): Avoid explicit 64-bit constants;
3368         construct them by multiplication at compile-time.
3369
3370         * utils.c, elsewhere: Don't append "L" to 32-bit integer
3371         constants; we aren't really compilable on 16-bit systems anyway.
3372
3373         * hash.c (prime_size): Remove primes larger than 2^31, but include
3374         2^31-1, which is prime.
3375
3376 2005-03-30  Hrvoje Niksic  <hniksic@xemacs.org>
3377
3378         * utils.c (string_set_to_array): New function.
3379
3380         * convert.c: Replace the use of "slists" with sets/hash-tables,
3381         which in fact suit the intended purpose much better.
3382         downloaded_html_list is removed altogether.
3383
3384 2005-03-29  Hrvoje Niksic  <hniksic@xemacs.org>
3385
3386         * ftp.h (enum): Rename GLOBALL, GETALL, and GETONE to
3387         GLOB_GLOBALL, GLOB_GETALL, and GLOB_GETONE to avoid conflict with
3388         Linux headers.
3389
3390 2005-03-29  Hrvoje Niksic  <hniksic@xemacs.org>
3391
3392         * utils.c (numdigit): More correct handling of negative numbers.
3393
3394 2005-03-21  Hrvoje Niksic  <hniksic@xemacs.org>
3395
3396         * http.c (gethttp): Print the human-readable size.
3397
3398         * ftp.c (getftp): Print the human-readable size of the file to be
3399         downloaded.
3400
3401         * utils.c (human_readable): New function.
3402
3403         * utils.c: Renamed "legible" to "with_thousand_seps",
3404         "legible_large_int" to "with_thousand_seps_large", and "legible_1"
3405         to "add_thousand_seps".
3406
3407 2005-03-21  Hrvoje Niksic  <hniksic@xemacs.org>
3408
3409         * http.c (gethttp): Inhibit persistent connections when talking to
3410         proxies, as mandated by RFC 2068.
3411
3412 2005-03-20  Hrvoje Niksic  <hniksic@xemacs.org>
3413
3414         * url.c (unescape_single_char): New function.
3415         (url_escape_dir): Use it to unescape slashes in directory
3416         components.
3417         (url_string): Escape unsafe chars in host name, except for the ':'
3418         charaters, which can appear in IPv6 addresses.
3419
3420         * main.c (main): Don't access the cookie jar directly.
3421
3422         * log.c (escnonprint_internal): Correctly calculate the needed
3423         string size.  Don't forget the buffer's new size after having
3424         reallocated it.
3425         (log_cleanup): New function.  Free the escnonprint ring data.
3426
3427         * init.c (cleanup): Don't free the cookie jar explicitly, it is
3428         now done by http_cleanup.
3429         (cleanup): opt.user_headers is now a vector, free it with
3430         free_vec.
3431
3432         * http.c (gethttp): Make sure to free the request data, the status
3433         message, and the response data before returning from the function.
3434         (save_cookies): New function.
3435         (http_cleanup): Free the cookie jar here.
3436
3437         * hash.c: Renamed string_hash to hash_string and ptrhash to
3438         hash_pointer.  Exported hash_pointer.
3439
3440         * xmalloc.c: Organized malloc_table (previously malloc_debug) as a
3441         simple EQ hash table.  register_ptr and unregister_ptr are now of
3442         O(1) complexity.
3443
3444         * xmalloc.c: Renamed "*_debug" to debugging_* and "*_real" to
3445         checking_*.
3446
3447 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
3448
3449         * utils.c (debug_test_md5): Moved to gen-md5.c.
3450
3451         * mswindows.h: Don't declare inet_ntop, since we don't use it.
3452
3453         * mswindows.h: For consistency, also wrap closesocket, it being
3454         a Winsock call.
3455
3456         * mswindows.h: Don't declare sleep and usleep; we're defining
3457         xsleep now.
3458
3459         * mswindows.h (mkdir): Don't special-case Borland C, _mkdir
3460         works there as well.
3461
3462         * host.c: Don't include winsock header files; the correct ones
3463         are already included by mswindows.h.
3464
3465         * mswindows.c (xsleep): Round toward the nearest millisecond
3466         in an attempt to avoid average short sleeps.
3467
3468         * utils.c (wtimer_granularity): Report correct values for
3469         Windows timers and for high-resolution timers.
3470
3471         * utils.c (wtimer_initialize_once): New function, called to
3472         initialize the timer frequency.
3473
3474         * utils.c: Replace the use of GetSystemTime with high-resolution
3475         counters under Windows.  When high-resolution counters are
3476         unavailable, use GetTickCount().
3477
3478 2005-03-15  Hrvoje Niksic  <hniksic@xemacs.org>
3479
3480         * retr.c (fd_read_body): Undo the 2004-11-18 change.  Instead,
3481         always be "exact".
3482
3483 2005-03-17  Hrvoje Niksic  <hniksic@xemacs.org>
3484
3485         * ftp-basic.c (ftp_login): Don't free the string if ftp_response
3486         returned an error status because the line didn't get allocated in
3487         the first place.
3488
3489 2005-03-15  Hrvoje Niksic  <hniksic@xemacs.org>
3490
3491         * http.c (read_http_response_head): Limit the response size to 64k
3492         bytes.
3493
3494         * retr.c (fd_read_hunk): Accept a MAXSIZE argument that limits the
3495         number of bytes the function is allowed to allocate.
3496         (fd_read_line): Limit the line to 4096 bytes.
3497
3498 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
3499
3500         * wget.h: Include options.h after wgint has been defined.
3501
3502         * options.h (struct options): Declare options processed with
3503         cmd_bytes as wgint, not long.
3504
3505 2005-03-18  Hrvoje Niksic  <hniksic@xemacs.org>
3506
3507         * init.c (cmd_file): Use concat_strings.
3508
3509         * http.c (basic_authentication_encode): Use concat_strings.
3510
3511         * ftp-ls.c (ftp_index): Use concat_strings.
3512
3513         * ftp-basic.c (ftp_request): Use concat_strings.
3514
3515         * utils.c (concat_strings): New function.
3516
3517 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
3518
3519         * init.c (simple_atof): Handle negative numbers; skip whitespace
3520         before the number.
3521         (simple_atoi): Ditto.  Also, check for overflow and underflow.
3522         (cmd_number): Bail out on negative numbers.
3523         (parse_bytes_helper): Ditto.
3524
3525 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3526
3527         * http.c (gethttp): Handle multiple Set-Cookie headers sent by
3528         remote server.
3529
3530 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3531
3532         * init.c (defaults): Use passive FTP by default.
3533
3534 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3535
3536         * mswindows.c: Provide wrappers to Winsock functions that set
3537         errno to WSAGetLastError() in case of failure.  Also provide a
3538         Windows-specific version of strerror.
3539
3540         * mswindows.h: Wrap calls to socket, bind, connect, recv, send,
3541         select, getsockname, getpeername, and setsockopt.
3542
3543 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3544
3545         * url.c (url_parse): Reject port numbers larger than 65535.  We
3546         also check for overflow while parsing port numbers.
3547
3548 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3549
3550         * utils.c (read_file): Don't use wgint for file size; LFS won't
3551         work since the file is mmap'ed as a whole.
3552
3553         * options.h: Don't include stdio.h.
3554
3555         * log.c: Ditto.
3556
3557         * init.c: Disambiguate assignment from non-zero test to avoid
3558         Borland C warning.
3559
3560         * http.c (response_new): Don't needlessly post-increment count.
3561
3562         * hash.c: Include stdio.h.
3563
3564         * gnu-md5.h: Don't include stdio.h.
3565
3566         * getopt.h (struct option): Always use const.
3567
3568         * ftp.c (getftp): Avoid unnecessary assignment to RES to avoid
3569         Borland C warning.
3570
3571         * ftp-ls.c: Disambiguate assignment from non-zero test to avoid
3572         Borland C warning.
3573
3574         * cmpt.c (strptime_internal): Don't initialize rp_backup when
3575         !_NL_CURRENT to avoid Borland C warning.
3576
3577 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3578
3579         * utils.c (fopen_excl): Fix parse error when O_BINARY is
3580         available.
3581
3582 2005-03-05  Hrvoje Niksic  <hniksic@xemacs.org>
3583
3584         * url.c (url_file_name): Don't allow hosts named ".." to be
3585         appended as path elements.
3586
3587 2005-03-03  Hrvoje Niksic  <hniksic@xemacs.org>
3588
3589         * retr.c (retrieve_url): Escape location header.
3590
3591         * http.c (print_server_response_1): Escape server response when
3592         printing it.
3593         (gethttp): Escape host name, status message, location header, and
3594         content type.
3595         (http_loop): Escape error message from server.
3596
3597         * host.c (lookup_host): Escape host name when printing it.
3598
3599         * ftp.c (getftp): Escape user name when printing it.
3600         (getftp): Escape remote file and directory for printing.
3601         (getftp): Escape server listing when printing it.
3602         (ftp_retrieve_list): Escape link name and file name.
3603         (ftp_retrieve_glob): Escape file name.
3604
3605         * ftp-basic.c (ftp_response): Escape server response when printing
3606         it.
3607
3608         * cookies.c (parse_set_cookies): Escape the cookie field when
3609         printing it.
3610         (parse_set_cookies): Escape contents of remote header.
3611         (cookie_handle_set_cookie): Escape host name and cookie domain.
3612
3613         * connect.c (connect_to_ip): Escape the host name.
3614
3615         * log.c (escnonprint): New function, used for printing strings
3616         coming from the server that possibly contain non-ASCII characters.
3617         (escnonprint_uri): Ditto.
3618
3619 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
3620
3621         * ftp.c (getftp): Ditto.
3622
3623         * http.c (gethttp): When we're not supposed to overwrite files,
3624         use fopen_excl to open the file and recompute the file name.
3625
3626         * log.c (redirect_output): Use unique_create to avoid a race
3627         condition.
3628
3629         * mswindows.c (fake_fork_child): Use unique_create.
3630
3631         * utils.c (fopen_excl): New function that opens a stdio stream
3632         with the O_EXCL flag (where available).
3633         (unique_create): New function, like unique_name, but also creating
3634         the file and returning a file pointer.
3635         (fork_to_background): Use unique_create to create the file
3636         immediately to avoid race condition with multiple instances of
3637         wget -b.
3638
3639 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
3640
3641         * host.c (lookup_host): Test for AI_ADDRCONFIG directly, instead
3642         of checking for HAVE_GETADDRINFO_AI_ADDRCONFIG.
3643
3644 2005-02-23  Hrvoje Niksic  <hniksic@xemacs.org>
3645
3646         * host.c (is_valid_ipv6_address): Move here from url.c.
3647         (lookup_host): If the address is numeric, don't print the
3648         "resolving..." line, don't set up DNS timeouts, and set the
3649         AI_NUMERICHOST hint, where available.
3650
3651 2005-02-26  Gisle Vanem  <giva@bgnett.no>
3652
3653         * utils.c: Use the nnnLL syntax under GCC.  Define struct_stat to
3654         struct _stati64 under __MINGW32__ as well as under MS VC.
3655
3656 2005-02-26  Hrvoje Niksic  <hniksic@xemacs.org>
3657
3658         * utils.c: Use the nnnI64 syntax for __int64 constants under all
3659         Windows compilers.
3660         (SPRINTF_WGINT): Use "%I64" under all Windows compilers.
3661
3662         * mswindows.h (WGINT_MAX): Use the nnnI64 syntax for
3663         __int64 constants under all Windows compilers.
3664         (struct_stat): Use `struct stati64' under Borland C.
3665         (fstat): Don't redefine to _fstati64 under Borland.
3666
3667         * mswindows.c: Define str_to_int64 under Borland C as well as
3668         under (older) Visual C.
3669
3670 2005-02-25  Hrvoje Niksic  <hniksic@xemacs.org>
3671
3672         * ftp.c (getftp): Initialize err to suppress compiler warning.
3673
3674 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
3675
3676         * ftp.c (ftp_expected_bytes): Fix bug that caused infloop because
3677         of not correctly skipping the '(' character.
3678
3679 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
3680
3681         * mswindows.c (wget_ftello): Removed.
3682
3683         * mswindows.h: Remove bogus definition of stat.
3684         (wget_ftello): Remove the leftover ftello replacement.
3685
3686 2005-02-20  Hrvoje Niksic  <hniksic@xemacs.org>
3687
3688         * mswindows.c (wget_ftello): Wget's replacement for ftello.
3689
3690         * utils.c (file_size): Use ftello where available.
3691
3692         * ftp-ls.c (ftp_parse_unix_ls): Use str_to_wgint to parse the file
3693         size.
3694         (ftp_parse_winnt_ls): Ditto.
3695
3696         * ftp-basic.c (ftp_size): Use str_to_wgint to convert number to
3697         wgint; pass 10 instead of 0 as the BASE argument.
3698
3699         * ftp.c (ftp_expected_bytes): Use str_to_wgint to parse the file
3700         size.
3701
3702         * sysdep.h (LARGE_INT_FMT): Use __int64 as LARGE_INT on
3703         MSVC/Windows; print it with "%I64".
3704
3705         * wget.h: Define a `wgint' type, normally aliased to (the possibly
3706         64-bit variant of) off_t.
3707
3708         * all: Use `wgint' instead of `long' for numeric variables that
3709         can hold file sizes.
3710
3711         * utils.c (number_to_string): Support printing of `wgint'
3712         argument.
3713         (number_to_static_string): New function.
3714
3715         * all: Replace printf("%ld", long_value) with printf("%s",
3716         number_to_static_string(wgint_value)).
3717
3718 2005-02-18  Mauro Tortonesi <mauro@ferrara.linux.it>
3719
3720         * main.c: Added the --ftp-passwd command line option.
3721
3722         * init.c: Renamed command passwd to ftppasswd.
3723
3724 2005-02-11  Mauro Tortonesi <mauro@ferrara.linux.it>
3725         
3726         * string_t.c: Fixed a bug in do_escape and triggered escape of
3727         backslashes in string_escape to avoid ambiguities in the result
3728         string.
3729         
3730 2005-02-10  Mauro Tortonesi <mauro@ferrara.linux.it>
3731
3732         * string.h: Renamed to string_t.h to fix a compilation conflict 
3733         with the string.h header in the standard C library.
3734         
3735         * string.c: Renamed to string_t.c for consistency with string.h.
3736         
3737         * string_t.c: Ditto.
3738
3739         * string_t.h: Ditto.
3740         
3741 2004-12-31  Mauro Tortonesi <mauro@ferrara.linux.it>
3742
3743         * string.c: New file.
3744
3745         * string.h: New file.
3746
3747         * Makefile.in: Added string.c to the list of modules to compile.
3748
3749         * main.c: Updated copyright.
3750
3751 2004-11-18  Ulf Harnhammar <ulf.harnhammar.9485@student.uu.se>
3752
3753         * ftp-ls.c: Fixed a problem in ftp_parse_winnt_ls that could allow a
3754         malicious remote FTP server to crash wget.
3755
3756 2004-11-18  Hans-Andreas Engel <engel@node.ch>
3757
3758         * http.c: Enable --convert-links (-k) when a single page is downloaded
3759         via --output-document (-O).
3760
3761 2004-11-18  Mauro Tortonesi <mauro@deepspace6.net>
3762
3763         * connect.c: Minor correction to the comment in front of fd_peek.
3764
3765 2004-11-18  Leonid Petrov <nouser@lpetrov.net>
3766
3767         * retr.c: Fix a timeout problem in fd_read_body when using http_proxy.
3768
3769 2004-11-15  YAMAZAKI Makoto <Yamazaki.Makoto@fujixerox.co.jp>
3770
3771         * netrc.c: Fix termination by assertion bug in netrc parsing.
3772
3773 2004-05-09  David Fritz  <zeroxdf@att.net>
3774
3775         * mswindows.c (fake_fork): Pass entire command line to the child
3776         process.
3777
3778 2004-03-31  Hrvoje Niksic  <hniksic@xemacs.org>
3779
3780         * http.c (gethttp): Fix typo: SCHEME_SSL -> SCHEME_HTTPS.
3781
3782 2004-03-30  Hrvoje Niksic  <hniksic@xemacs.org>
3783
3784         * http.c (gethttp): Send the Proxy-Authorization header over
3785         non-SSL connections too.
3786
3787 2004-03-25  David Fritz  <zeroxdf@att.net>
3788
3789         * mswindows.c (fake_fork_child): Ignore error code when
3790         OpenFileMapping() fails; assume it failed because the object does
3791         not exist.
3792
3793 2004-03-24  David Fritz  <zeroxdf@att.net>
3794
3795         * mswindows.c (fake_fork): New function.
3796
3797         * mswindows.c (fork_to_background): Use it.
3798
3799 2004-03-19  David Fritz  <zeroxdf@att.net>
3800
3801         * mswindows.c (ws_hangup): Incorporate old fork_to_background()
3802         code.  Add event name argument.
3803         (fork_to_backgorund): Now a simple wrapper around ws_hangup().
3804         (ws_handler): Correctly handle the case when neither CTRLC_BACKGND
3805         nor CTRLBREAK_BACKGND are defined.  Don't bother handling close,
3806         logoff, or shutdown events.  Call ws_hangup() with the correct
3807         event name; don't assume it was CTRL+Break.
3808
3809 2004-03-19  Hrvoje Niksic  <hniksic@xemacs.org>
3810
3811         * url.c (url_parse): Decode %HH sequences in host name.
3812
3813 2004-03-04  Hrvoje Niksic  <hniksic@xemacs.org>
3814
3815         * convert.c (local_quote_string): Quote "#" as "%23" and "%" as
3816         "%25" when creating links to local files.
3817
3818 2004-03-02  David Fritz  <zeroxdf@att.net>
3819
3820         * mswindows.c (ws_percenttitle): Guard against future changes by
3821         doing nothing if the proper variables have not been initialized.
3822         Clamp percentage value.
3823
3824 2004-03-04  Gisle Vanem  <giva@bgnett.no>
3825
3826         * retr.c (fd_read_body): Don't change console title if quiet.
3827
3828 2004-02-25  David Fritz  <zeroxdf@att.net>
3829
3830         * mswindows.c (set_sleep_mode): Remove argument and return value.
3831         Call GetModuleHandle() instead of LoadLibrary()/FreeLibrary() for
3832         kernel32.dll.  Use typedef for function-pointer.  Don't cast
3833         l-value.  Don't use dereference operator when calling through
3834         function-pointer.
3835         (ws_startup): Update call to set_sleep_mode().
3836         (ws_cleanup): Remove call to set_sleep_mode().
3837
3838 2004-02-23  David Fritz  <zeroxdf@att.net>
3839
3840         * http.c (http_loop): Ditto.
3841
3842         * ftp.c (ftp_loop_internal): Update call to ws_changetitle().
3843
3844         * main.c (main): Don't bother calling ws_changetitle().
3845
3846         * mswindows.h (ws_changetitle): Update prototype.
3847
3848         * mswindows.c (ws_changetitle): Remove second argument.  Use
3849         xfree_null().
3850         (ws_percenttitle): Only update title when percentage has changed.
3851
3852 2004-02-23  David Fritz  <zeroxdf@att.net>
3853
3854         * mswindows.h: Ditto.
3855
3856         * mswindows.c: Misc. formatting/comment tweaks throughout.
3857
3858 2004-02-20  David Fritz  <zeroxdf@att.net>
3859
3860         * main.c (print_help): Remove call to ws_help().
3861
3862         * mswindows.c (ws_help): Remove.
3863
3864         * mswindows.h (ws_help): Remove.
3865
3866 2004-02-16  David Fritz  <zeroxdf@att.net>
3867
3868         * init.c (home_dir): Use aprintf() instead of xmalloc()/sprintf().
3869         Under Windows, if $HOME is not defined, use the directory that
3870         contains the Wget binary instead of hard-coded `C:\'.
3871         (wgetrc_file_name): Under Windows, look for $HOME/.wgetrc then, if
3872         not found, look for wget.ini in the directory of the Wget binary.
3873
3874         * mswindows.c (ws_mypath): Employ slightly more robust methodology.
3875         Strip trailing path separator.
3876
3877 2004-02-06  Hrvoje Niksic  <hniksic@xemacs.org>
3878
3879         * http.c (gethttp): Respect --ignore-length.
3880         (gethttp): Inhibit keep-alive if --ignore-length is specified.
3881
3882 2004-02-06  Hrvoje Niksic  <hniksic@xemacs.org>
3883
3884         * connect.c (sockaddr_set_data): Zero out
3885         sockaddr_in/sockaddr_in6.  Apparently BSD-derived stacks need this
3886         when binding a socket to local address.
3887
3888 2004-02-04  Hrvoje Niksic  <hniksic@xemacs.org>
3889
3890         * hash.c: Make the file compilable outside Wget source tree when
3891         -DSTANDALONE is used.
3892
3893 2004-01-29  Hrvoje Niksic  <hniksic@xemacs.org>
3894
3895         * utils.c (determine_screen_width): Return 0 if not running on
3896         Windows or on a TIOCGWINSZ-capable system.
3897
3898 2004-01-28  David Fritz  <zeroxdf@att.net>
3899
3900         * utils.c (determine_screen_width): Correctly determine console
3901         width under Windows.
3902
3903 2004-01-28  Christian Biere  <christianbiere@gmx.de>
3904
3905         * progress.c (bar_set_params): Fixed syntax error when HAVE_ISATTY
3906         was undefined.
3907
3908         * ftp.c (ftp_loop_internal): Allocate a larger buffer in case
3909         "try" gets translated to something large.  Ditto in http_loop in
3910         http.c.
3911
3912         * http.c (response_header_copy): Don't write to buf[BUFSIZE].
3913
3914         * ftp-opie.c (skey_response): Eliminate unnecessary string
3915         concatenation; just call gen_md5_update twice.
3916
3917 2004-01-25  Hrvoje Niksic  <hniksic@xemacs.org>
3918
3919         * utils.c (xsleep): Don't call usleep with values larger than
3920         1,000,000.
3921
3922 2003-12-16  Hrvoje Niksic  <hniksic@xemacs.org>
3923
3924         * http.c (gethttp): Fix generation of `Content-Length'.
3925
3926 2003-12-15  Gisle Vanem  <giva@bgnett.no>
3927
3928         * url.c (url_skip_credentials): Fixed return value; 'url' if no
3929         credentials.
3930
3931 2003-12-14  Hrvoje Niksic  <hniksic@xemacs.org>
3932
3933         * url.c (url_skip_credentials): Return a pointer directly.
3934
3935 2003-12-14  Hrvoje Niksic  <hniksic@xemacs.org>
3936
3937         * url.c (url_file_name): Ditto.
3938         (parse_errors): Ditto.
3939
3940         * retr.c (retr_rate): Ditto.
3941
3942         * progress.c (create_image): Ditto.
3943
3944         * netrc.c (parse_netrc): Ditto.
3945
3946         * main.c (struct cmdline_option): Ditto.
3947         (redirect_output_signal): Ditto.
3948
3949         * init.c (commands): Ditto.
3950
3951         * ftp-ls.c (ftp_index): Ditto.
3952
3953         * cookies.c (check_domain_match): Declare the pointer to a literal
3954         string as `const'.
3955
3956 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
3957
3958         * retr.c (fd_read_body): Pass total size to progress_create, not
3959         the remaining amount.
3960
3961 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
3962
3963         * retr.c (fd_read_body): Don't fiddle with "interactive timeout"
3964         if read timeout is unset.
3965
3966 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
3967
3968         * connect.c (bind_local): Don't set the IPV6_V6ONLY option on the
3969         socket.
3970
3971 2003-12-06  Hrvoje Niksic  <hniksic@xemacs.org>
3972
3973         * url.c (url_file_name): Respect the setting of
3974         opt.protocol_directories.
3975
3976         * main.c (main): Only check for ret=='?' when longindex is unset.
3977         (option_data): New option --protocol-directories.
3978
3979 2003-12-06  Hrvoje Niksic  <hniksic@xemacs.org>
3980
3981         * ftp.c (getftp): Ditto.
3982
3983         * http.c (gethttp): Correctly calculate bandwidth as total data
3984         read divided with download time.
3985
3986         * retr.c (fd_read_body): Separate the return values for data
3987         written and read.
3988
3989 2003-12-05  Hrvoje Niksic  <hniksic@xemacs.org>
3990
3991         * http.c (H_REDIRECTED): Respect the HTTP/1.1 "303 See Other"
3992         response code.
3993         Suggested by Dan Razzell.
3994
3995 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
3996
3997         * retr.c (fd_read_body): Report the amount of data *written* as
3998         amount_read.  This is not entirely logical, but that's what the
3999         callers expect, and it's not easy to change.
4000
4001         * ftp.c (ftp_loop_internal): Ditto.
4002
4003         * http.c (http_loop): Be smarter about assigning restval; if we're
4004         in the nth pass of a download, simply use the information we have
4005         about how much data has been retrieved as restval.
4006
4007         * ftp.c (getftp): Ditto for FTP "REST" command.
4008
4009         * http.c (gethttp): When the server doesn't respect range, skip
4010         the first RESTVAL bytes of the read body.  Never truncate the
4011         output file.
4012
4013         * retr.c (fd_read_body): Support skipping initial STARTPOS octets.
4014
4015 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
4016
4017         * http.c (skip_short_body): Renamed skip_body to skip_short_body;
4018         don't bother calling fd_read_body.
4019
4020 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
4021
4022         * retr.c (fd_read_body): Sanitize arguments and document them
4023         better.  Make sure the timer is created and updated only if
4024         necessary.  Updated callers.
4025
4026 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
4027
4028         * http.c (skip_body): New function.
4029         (gethttp): Use it to skip the body of the responses we don't care
4030         to download.  That allows us to reuse the connection.
4031         (gethttp): Trust that the HEAD requests will not generate body
4032         data.
4033
4034         * retr.c (fd_read_body): Don't write to OUT if it's NULL.
4035
4036 2003-11-29  Hrvoje Niksic  <hniksic@xemacs.org>
4037
4038         * http.c (gethttp): Initialize SSL only the first time when SSL
4039         URL is downloaded.
4040
4041 2003-11-29  Hrvoje Niksic  <hniksic@xemacs.org>
4042
4043         * cookies.c (cookie_header): Only generate the contents of the
4044         header, not the leading "Cookie: " or the trailing "\r\n".
4045
4046         * http.c (gethttp): When adding headers specified with `--header',
4047         allow them to override the headers generated by Wget.
4048
4049         * init.c (cmd_spec_header): Made opt.user_headers a vector.
4050
4051         * http.c (request_new): New function.  Returns a request structure
4052         which can be modified in various ways, most notably by adding HTTP
4053         headers to the request.
4054         (request_set_header): New function for adding the header to the
4055         request.  If the header is already available, it gets replaced.
4056         (request_send): Construct and send the request.
4057         (gethttp): Use the request_* functions to generate the request.
4058
4059 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
4060
4061         * http.c (gethttp): Don't include the Proxy-Authorization header
4062         in the request tunneled through proxy.
4063
4064 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
4065
4066         * http.c (gethttp): Use the CONNECT handle to establish SSL
4067         passthrough through non-SSL proxies.
4068
4069 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
4070
4071         * init.c: Don't #include netinet/Winsock stuff.
4072
4073 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
4074
4075         * http.c: Deleted the old functions header_process,
4076         header_extract_number, header_exists, header_strdup,
4077         http_process_range, http_process_none, http_process_type, and
4078         http_process_connection.
4079
4080         * http.c (response_new): New function.
4081         (response_header_bounds): Ditto.
4082         (response_header_copy): Ditto.
4083         (response_header_strdup): Ditto.
4084         (response_status): Ditto.
4085         (gethttp): Use the new response_* functions to parse the response.
4086         Support HTTP/0.9 responses.
4087
4088 2003-11-27  Hrvoje Niksic  <hniksic@xemacs.org>
4089
4090         * progress.c (create_image): Don't calculate ETA if nothing has
4091         been downloaded yet, because it causes division by zero.
4092
4093 2003-11-27  Hrvoje Niksic  <hniksic@xemacs.org>
4094
4095         * connect.c (bind_local): Rename sa_len to addrlen because IRIX
4096         headers define sa_len as a macro.
4097
4098 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
4099
4100         * html-parse.c (convert_and_copy): Remove embedded newlines when
4101         AP_TRIM_BLANKS is specified.
4102
4103 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
4104
4105         * ftp.c: Set con->csock to -1 where rbuf_uninitialize was
4106         previously used.
4107
4108 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
4109
4110         * Makefile.in (http$o): Added the trailing backslash that was
4111         missing.
4112
4113 2003-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
4114
4115         * headers.c: Removed.  The file is no longer relevant, now that no
4116         special handling of headers is done by the rbuf code.  Moved
4117         portions to http.c.
4118
4119 2003-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
4120
4121         * rbuf.c: Removed.
4122
4123         * ftp-basic.c (ftp_response): Use fd_read_line.  No longer use
4124         struct rbuf.  Updated all callers.
4125
4126         * http.c (gethttp): Use fd_read_head to read all the headers in
4127         one go.
4128         (next_header): New function.
4129
4130         * retr.c (fd_read_line): New function: reads a line from FD,
4131         leaving the rest of the data unread.
4132         (fd_read_head): New function.
4133
4134         * connect.c (fd_peek): New function, implements peeking.
4135         (poll_internal): New function.
4136         (fd_read): Use it.
4137         (fd_write): Ditto.
4138         (fd_peek): Ditto.
4139         (fd_register_transport): Allow registering a "peeker" callback.
4140
4141 2003-11-20  Hrvoje Niksic  <hniksic@xemacs.org>
4142
4143         * connect.c: Renamed xread/xwrite/xclose to
4144         fd_read/fd_write/fd_close.  The "x" prefix is not appropriate
4145         because the semantics have diverged from read/write/close too
4146         significantly.  Updated all callers.
4147
4148 2003-11-20  Hrvoje Niksic  <hniksic@xemacs.org>
4149
4150         * connect.c (sock_write): It's not necessary to initialize RES.
4151
4152 2003-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
4153
4154         * main.c (main): Don't reference opt.ipv4_only and opt.ipv6_only
4155         if IPv6 is disabled.
4156
4157 2003-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
4158
4159         * connect.c (socket_has_inet6): Only compile it if IPv6 is enabled
4160         and AI_ADDRCONFIG is missing.
4161
4162 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
4163
4164         * gen_sslfunc.c (ssl_init_prng): Warn the user when using a weak
4165         random seed.
4166
4167 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
4168
4169         * host.c (address_list_contains): Renamed address_list_find to
4170         address_list_contains because its result is boolean.
4171
4172 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
4173
4174         * connect.c (select_fd): Return 1 if select is not available.
4175
4176 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
4177
4178         * connect.c (connect_to_host): Don't reference address list after
4179         releasing it.
4180
4181 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
4182
4183         * main.c (print_help): Fix alignment of FTP options output.
4184
4185 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
4186
4187         * host.c (lookup_host): Check for the ability to create IPv6
4188         sockets here.
4189
4190         * init.c (defaults): Don't auto-set --inet4-only on IPv6-less
4191         systems.
4192
4193 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
4194
4195         * main.c (print_help): Fix typo in `-O' help message.  Fix docs of
4196         -Y/--proxy.  Fix docs of `--cookies' and `--glob'.  Improve docs
4197         of --convert-links.  Fix docs of SSL options.
4198
4199 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
4200
4201         * ftp-basic.c: Don't include <arpa/inet.h> and others because
4202         they're no longer needed.
4203
4204 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
4205
4206         * main.c (main): Don't allow setting of both opt.ipv4_only and
4207         opt.ipv6_only.
4208
4209         * init.c (defaults): Mark opt.ipv4_only specially when set
4210         automatically.
4211
4212 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
4213
4214         * host.c (lookup_host): Use AI_ADDRCONFIG only if the family is
4215         unspecified.  This ensures that specifying `--no-inet4' on systems
4216         where IPv6 resolves, but doesn't work behaves the same regardless
4217         of the availability of AI_ADDRCONFIG.
4218
4219 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
4220
4221         * host.c: Don't refer to the now-removed function
4222         forget_host_lookup in the documentation of lookup_host.
4223
4224 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
4225
4226         * http.c (persistent_available_p): Correctly specify the endpoint
4227         argument to socket_ip_address.
4228         (gethttp): When printing the "reusing connection to..." message,
4229         specify the host name of the reused connection, not the current
4230         host name.  That makes more sense because it provides a useful
4231         piece of information -- we know to which host we're supposed to
4232         connect anyway!
4233
4234 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
4235
4236         * init.c: Make sure the options are in alphabetic order!
4237
4238         * host.c (lookup_host): Merge lookup_host_passive and lookup_host
4239         after all -- having both would result in some code duplication.
4240         (lookup_host): Set hints.ai_family to AF_INET if ipv4_only is
4241         requested.  Likewise, set it to AF_INET6 for ipv6_only.  Specify
4242         AI_ADDRCONFIG where available.
4243         (lookup_host): New flag LH_REFRESH that specifies that a cached
4244         entry for HOST should be refreshed.
4245         (cache_query): New function.
4246         (cache_store): Ditto.
4247         (cache_remove): Ditto.
4248         (forget_host_lookup): No longer necessary, replaced with static
4249         function cache_remove.
4250
4251 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
4252
4253         * main.c: Enable -4 and -6 only if IPv6 is enabled.
4254
4255 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
4256
4257         * connect.c (register_transport): Renamed from register_extended.
4258         Explain the intended usage.
4259
4260 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
4261
4262         * url.c (uri_merge): Merging "foo" and "bar" should result in
4263         "bar", not in "foo/bar".
4264         (path_simplify): Don't remove empty path elements; don't
4265         special-case leading slash.
4266         (path_simplify): Don't swallow ".."'s at the beginning of string.
4267         E.g. simplify "foo/../../bar" as "../bar", not as "bar".
4268         (append_uri_pathel): Defang ".." path element upon encountering
4269         it.
4270
4271 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4272
4273         * http.c (persistent_available_p): Don't attempt to talk to two
4274         different SSL sites over the same secure connection.
4275
4276 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4277
4278         * http.c (gethttp): Ditto.
4279
4280         * ftp.c (getftp): Use retryable_socket_connect_error instead of
4281         CONNECT_ERROR.
4282
4283         * wget.h (CONNECT_ERROR): Removed.
4284
4285         * connect.c (retryable_socket_connect_error): New function instead
4286         of unsupported_socket_family_error.
4287
4288 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4289
4290         * wget.h (CONNECT_ERROR): Use it.
4291
4292         * connect.c (unsupported_socket_family_error): New function.
4293
4294 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4295
4296         * connect.c (bind_local): Renamed bindport to bind_local; return
4297         the socket directly.  Updated callers.
4298         (accept_connection): Renamed acceptport to accept_connection;
4299         return the created socket directly.  Updated callers.
4300
4301 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4302
4303         * init.c (defaults): Turn on opt.ipv4_only if we're compiling with
4304         IPv6, and AI_ADDRINFO is not available, and AF_INET6 sockets can't
4305         be created.
4306
4307 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4308
4309         * host.c (lookup_host): Document the fact that the addresses are
4310         returned in order.
4311
4312 2003-11-12  Hrvoje Niksic  <hniksic@xemacs.org>
4313
4314         * utils.c: Use limits.h only where available.
4315
4316         * hash.c: Use INVALID_PTR and INVALID_PTR_BYTE.  Include limits.h.
4317
4318 2003-11-11  Hrvoje Niksic  <hniksic@xemacs.org>
4319
4320         * main.c: Added options --inet4-only and --inet6-only.
4321
4322 2003-11-11  Hrvoje Niksic  <hniksic@xemacs.org>
4323
4324         * host.c (host_errstr): Use the more standard message "Unknown
4325         host".
4326
4327 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
4328
4329         * connect.c (connect_to_host): Use that flag to decide whether to
4330         re-resolve the host name.
4331
4332         * host.c (struct address_list): Added a flag that maintains
4333         whether the connection worked at some point.
4334
4335 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
4336
4337         * host.c (lookup_host): Special-case the numeric addresses only in
4338         the non-IPv6 case.
4339
4340 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
4341
4342         * connect.c (resolve_bind_address): Call lookup_host_passive.
4343         Make sure that opt.bind_address is resolved only once.
4344
4345         * host.c (lookup_host_passive): New function, handles "passive"
4346         lookups.
4347         (lookup_host): Remove the passive flags.  Remove the
4348         family-related flags -- use ip_default_family instead.
4349
4350 2003-11-09  Hrvoje Niksic  <hniksic@xemacs.org>
4351
4352         * html-url.c: Get URLs from <object data="...">.
4353
4354 2003-11-09  Hrvoje Niksic  <hniksic@xemacs.org>
4355
4356         * main.c (option_data): Specify the command to use for --mirror.
4357
4358 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4359
4360         * cookies.c (cookie_handle_set_cookie): Specify exact match for
4361         unspecified domains.
4362
4363 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4364
4365         * main.c (main): Removed one-letter options `-C', `-g', `-G', and
4366         `-s'.
4367
4368 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4369
4370         * main.c (main): Add --dont-remove-listing for backward
4371         compatibility with previous versions.
4372         (print_help): Fix typo, spotted by Dennis Smit.
4373
4374 2003-11-08  Gisle Vanem  <giva@bgnett.no>
4375
4376         * ftp-basic.c: Support Windows-2000 ftp servers. Win-2000 *is*
4377         Win-NT 5.0 so calling it ST_WINNT is okay I guess.
4378
4379 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4380
4381         * progress.c (update_speed_ring): Clear the speed ring when the
4382         download stalls.
4383
4384         * retr.c (get_contents): Specify 0.95s read timeout, so that the
4385         progress gauge can be updated even when data arrives very slowly
4386         or stalls.
4387
4388 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4389
4390         * utils.c (wtimer_allocate): Bless the use of wtimer_read on a
4391         timer that has merely been allocated because get_contents() does
4392         that.
4393         (wtimer_update): Abort if the timer is not initialized.
4394
4395 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4396
4397         * retr.c (get_contents): Pass the timer to limit_bandwidth().
4398
4399         * utils.c (wtimer_update): New function instead of wget_elapsed;
4400         just update the timer, but don't return anything.
4401         (wtimer_read): Read and return the last known value of the timer.
4402
4403 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4404
4405         * http.c (persistent_available_p): Instead of matching all the
4406         addresses of HOST and last host, determine the peer's IP address
4407         with socket_ip_address and see if that address is one of those
4408         HOST resolves to.
4409
4410         * host.c (address_list_match_all): Removed.
4411         (address_list_find): New function, finds an IP address in the
4412         address list.
4413
4414         * ftp.c (ftp_do_pasv): Get the peer's address here, and pass it to
4415         ftp_epsv so it doesn't need to call getpeername.
4416
4417         * ftp-basic.c (ftp_port): Use socket_ip_address instead of
4418         getpeername.
4419         (ftp_lprt): Ditto.
4420
4421         * connect.c (socket_ip_address): Replaces conaddr, generalized to
4422         either get peer's or local address.
4423         (sockaddr_get_data): Made local to this file.
4424
4425 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4426
4427         * hash.c (HASH_POSITION): Explicitly accept the hash function.
4428         (grow_hash_table): Extract ht->hash_function outside the loop.
4429         (hash_table_remove): Ditto.
4430         (hash_table_clear): Fill entries with 0xff to clear them.
4431         (hash_table_remove): Mark entries as deleted with the correct
4432         marker.
4433
4434 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4435
4436         * http.c (persistent_available_p): No reason for the host lookup
4437         to be silent -- it's a lookup like any other.
4438
4439 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4440
4441         * connect.c (register_extended): Check that fd >= 0.
4442
4443 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
4444
4445         * connect.c (LAZY_RETRIEVE_INFO): Set LAST_INFO.
4446
4447 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
4448
4449         * hash.c (NON_EMPTY): Use the all-bit-set value as the marker that
4450         the field is empty.  This allows NULL pointer and 0 value to be
4451         used as keys, which is necessary for the connect.c code to work
4452         when fd==0.
4453         (hash_table_new): Fill mappings with 0xff.
4454         (grow_hash_table): Ditto.
4455
4456 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
4457
4458         * url.c (url_parse): Allow empty ports.
4459
4460 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
4461
4462         * main.c (print_help): Break the help string into multiple chunks.
4463         (cmdline_option): New option handler OPT_FUNCALL.  Generalized
4464         HANDLE_CMD to generic DATA.
4465         (option_data): Use the new OPT_FUNCALL feature.
4466
4467 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
4468
4469         * log.h: Declare log_init, log_close, and
4470         log_request_redirect_output here.
4471
4472 2003-11-05  Dennis Smit  <ds@nerds-incorporated.org>
4473
4474         * main.c: (main): added --preserve-permissions option.
4475
4476         * ftp.c (ftp_retrieve_list): added support for
4477         --preserve-permissions option.
4478
4479         * init.c: added support for --preserve-permission option.
4480
4481         * option.h: added support for --preserve-permission option.
4482
4483 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
4484
4485         * main.c (init_switches): New function.  Convert option_data to
4486         long_options and short_options, which can be fed to getopt_long.
4487         (main): Execute command-line options by consulting option_data.
4488
4489 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
4490
4491         * gen_sslfunc.c (ssl_read): Implement a more correct check for
4492         EINTR.
4493         (ssl_write): Ditto.
4494         (init_ssl): Use a global SSL context.
4495
4496 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
4497
4498         * connect.c (xclose): Free INFO even if it doesn't provide a
4499         closer.
4500
4501 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
4502
4503         * connect.c: Updated all callers of
4504         iread/ssl_iread/iwrite/ssl_iwrite to use xread and xwrite instead.
4505
4506         * rbuf.h (struct rbuf): Removed the SSL member because SSL is
4507         handled automatically by xread.
4508
4509         * hash.c (ptrhash): Made private.
4510         (ptrcmp): Ditto.
4511         (inthash): Removed.
4512
4513         * connect.c (select_fd): Don't set errno, leave it to the caller.
4514
4515         * gen_sslfunc.c (connect_ssl): Use register_extended to register
4516         SSL callbacks for communication with SSL-enabled endpoints.
4517         (ssl_read): New function.
4518         (ssl_write): Ditto.
4519         (ssl_poll): Ditto.
4520         (ssl_close): Ditto.
4521
4522         * connect.c (register_extended): New function -- register
4523         callbacks for basic socket operations.
4524         (xread): Ditto.
4525         (xwrite): Ditto.
4526         (xclose): Ditto.
4527         (sock_read): New function, default implementation for reading.
4528         (sock_write): Ditto for writing.
4529         (sock_poll): Ditto for polling.
4530         (sock_close): Ditto for closing.
4531
4532 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
4533
4534         * connect.c (bindport): Fix compilation under pre-C99 compilers.
4535
4536 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
4537
4538         * connect.c (connect_to_ip): More compact error checking.
4539         (bindport): Don't treat failed setsockopt as a fatal error.
4540
4541 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
4542
4543         * connect.c (resolve_bind_address): Use a more accurate error
4544         message -- we're not binding to ANY, we're disabling bind
4545         altogether.
4546
4547 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
4548
4549         * cookies.c (save_cookies_mapper): Respect the setting of
4550         keep-session-cookies.
4551         (cookie_jar_load): Import session cookies.
4552         Based on code submitted by Nicolas Schodet.
4553
4554         * utils.c (datetime_str): Use information in TM when it's
4555         non-NULL.
4556
4557         * main.c (main): New option `--keep-session-cookies'.
4558
4559 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
4560
4561         * Makefile.in (realclean): Delete config.h.in.
4562
4563 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
4564
4565         * config-post.h: New file, included from now autogenerated
4566         config.h.in.
4567
4568 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
4569
4570         * progress.c (progress_handle_sigwinch): Don't call
4571         determine_screen_width() from the signal handler.  Instead, just
4572         set a volatile variable.
4573         (bar_create): Check whether SIGWINCH was received.
4574         (bar_update): Ditto.
4575
4576         * sysdep.h: Define SYSTEM_FNMATCH only if HAVE_FNMATCH_H is true.
4577
4578 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4579
4580         * utils.c (xsleep): New function.  Uses nanosleep where available,
4581         resuming sleeps interrupted by signals.  Updated callers of sleep
4582         and usleep to use xsleep.
4583
4584 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4585
4586         * ftp-basic.c (ftp_login): Remove shadowing (and bogus)
4587         declaration of SEED.
4588
4589 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4590
4591         * log.c (logvprintf): Documented better.  Renamed to
4592         log_vprintf_internal to avoid confusion with the public API
4593         functions logprintf and logputs.
4594
4595 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4596
4597         * wget.h (N_): Don't parenthesize argument.
4598
4599 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4600
4601         * host.h (ADDRESS_IPV4_DATA): Don't take the address of in.s_addr
4602         because that doesn't work on machines that define it as bitfield.
4603
4604 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4605
4606         * connect.c (select_fd): Generalize the third argument into WAIT,
4607         so that the caller can request waiting for both read and write.
4608         Updated callers.
4609
4610 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
4611
4612         * html-url.c (cleanup_html_url): Destroy the hash tables, don't
4613         just call free on them.
4614         (init_interesting): Use hash_table_put instead of string_set_add
4615         because we don't need the strdup that the latter function
4616         performs.
4617
4618         * init.c (cleanup): Don't pass NULL to cookie_jar_delete.
4619
4620         * xmalloc.c (xfree_real): Abort when passed a NULL pointer.
4621         (xfree_debug): Print at the file and line of the offending call to
4622         free.
4623
4624 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
4625
4626         * wget.h: Retired the `boolean' type.  Moved the DEFAULT_LOGFILE
4627         define to log.h.  Moved the INFINITE_RECURSION define to recur.h.
4628
4629         * xmalloc.h: Renamed FREE_MAYBE to xfree_null and moved the
4630         definition from wget.h to xmalloc.h.
4631
4632 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
4633
4634         * html-parse.c (decode_entity): New function; split the decoding
4635         of entities here.
4636         (convert_and_copy): Use it to decode entities.
4637         (decode_entity): Handle the &apos entity.
4638         (decode_entity): Don't decode Latin 1 numeric entities.  Don't
4639         decode &#0.
4640
4641 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
4642
4643         * ftp-opie.c (calculate_skey_response): Use uint32_t instead of
4644         `unsigned long' for the cheksum array.  Document the function.
4645
4646 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
4647
4648         * connect.c (acceptport): Don't call select_fd when timeout is not
4649         requested.
4650
4651 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
4652
4653         * host.c: Removed the ip_default_family global variable.
4654
4655         * host.c (lookup_host): Document the function.  Fixed declaration
4656         of VEC.
4657
4658 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
4659
4660         * various: Use new macros xnew, xnew0, xnew_array, and xnew0_array
4661         in various places.
4662
4663 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
4664
4665         * wget.h: Move declarations of malloc and logging code to
4666         xmalloc.h and log.h respectively to unclutter this file.
4667         (STRDUP_ALLOCA): Made it side-effect free.
4668
4669         * xmalloc.h: New files.  Define macros xnew, xnew0, xnew_array,
4670         and xnew0_array.
4671
4672         * xmalloc.c: New file.  Move the xmalloc routines here.
4673
4674 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
4675
4676         * connect.c (sockaddr_set_data): Remove the broken code that
4677         checked for NULL address.
4678
4679 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
4680
4681         * host.c (address_list_from_single): Removed.
4682         (address_list_from_ipv4_addresses): Renamed from
4683         address_list_from_vector.
4684
4685 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
4686
4687         * sysdep.h (CLOSE): Don't call close on file descriptors less than
4688         0, i.e. on uncreated sockets.
4689
4690         * connect.c (resolve_bind_address): Work on struct sockaddr
4691         directly.
4692         (connect_to_host): Replacement for connect_to_many.  Resolve HOST
4693         and connect to any of its addresses.  If we can't connect and the
4694         host name lookup was cached, try to resolve it again.  This should
4695         fix problems with hosts behind dynamic DNS.  Updated all callers.
4696         (connect_to_ip): Replacement for connect_to_one.  Removed SILENT;
4697         added the argument PRINT instead.  Updated all callers.
4698         (set_connection_host_name): Removed.
4699
4700         * host.c (address_list_address_at): New function instead of
4701         address_list_copy_one. It returns a pointer to ip_address *, so
4702         it's not necessary to copy the data.
4703         (address_list_cached_p): New function.
4704         (forget_host_lookup): Ditto.
4705
4706         * connect.c: Got rid of the MSOCK global variable.  Made bindport
4707         return the local socket it creates.  Added a new argument to
4708         acceptport, the socket to call accept on.  Updated callers.
4709         (closeport): Removed.
4710
4711         * connect.c: Moved the sockaddr code from host.c to this file,
4712         because most of that stuff is used for connecting, and has nothing
4713         to do with host names anyway.
4714         (sockaddr_set_data, sockaddr_get_data): New functions, replace the
4715         old sockaddr_set_address, sockaddr_set_port, sockaddr_get_address,
4716         and sockaddr_get_port.
4717
4718 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
4719
4720         * sysdep.h: Use `S >= 8' rather than `S == 8' when looking for
4721         large integers.
4722
4723 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
4724
4725         * url.c (append_uri_pathel): New argument ESCAPED_P that says
4726         whether [B, E) is to be treated as URL-escaped or not.  If
4727         ESCAPED_P is false, don't unescape the region.
4728         (url_file_name): u->file is not URL-escaped.
4729
4730 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
4731
4732         * retr.c (retrieve_from_file): Use retrieve_tree for
4733         page-requisites.
4734
4735         * main.c (main): Don't define opt.recursive when -p is used.
4736         Instead, make sure that recursion is used for HTTP in that case.
4737
4738 2003-10-29  Hrvoje Niksic  <hniksic@xemacs.org>
4739
4740         * host.h: Defined accessors for elements of ip_address.  Updated
4741         all callers.
4742         (address_list_match_all): Use memcmp in the non-IPv6 case.
4743
4744         * wget.h (CONNECT_ERROR): Don't retry connecting if connect()
4745         returned EAFNOSUPPORT.
4746
4747 2003-10-27  Mauro Tortonesi <mauro@deepspace6.net>
4748
4749         * connect.h: changed bindport prototype and added the related
4750         BIND_ON_IPV4_ONLY and BIND_ON_IPV6_ONLY flags.
4751
4752         * connect.c: changed bindport and resolve_bind_address to allow
4753         protocol-version specific DNS resolution. modified conaddr,
4754         acceptport and connect_to_one to make use of struct
4755         sockaddr_storage and of the new ip_address structure.
4756
4757         * ftp-basic.c: added LPRT/LPSV (RFC1639) support, refactored
4758         PORT/PASV (RFC959) and EPRT/EPSV (RFC2428) support code.
4759
4760         * ftp.c: added the ftp_do_port and ftp_do_pasv functions to
4761         handle FTP over IPv6.
4762
4763         * ftp.h: changed prototype of ftp_epsv and added prototypes for
4764         ftp_lpsv, ftp_lprt and ftp_eprt.
4765
4766         * host.c: renamed the
4767         wget_sockaddr_set_address and wget_sockaddr_get_addr, and
4768         wget_sockaddr_{s,g}et_port couples to sockaddr_{s,g}et_address and
4769         sockaddr_{g,s}et_port respectively.  changed
4770         address_list_match_all, address_list_from_addrinfo sockaddr_len,
4771         pretty_print_address, lookup_host, sockaddr_{s,g}et_address and
4772         sockaddr_{g,s}et_port to make use of struct sockaddr_storage and
4773         of the new ip_address structure.  removed map_ipv4_to_ip and
4774         map_ip_to_ipv4.
4775
4776         * host.h: redefined structure ip_address and removed structure
4777         wget_sockaddr.
4778
4779 2003-10-26  Hrvoje Niksic  <hniksic@xemacs.org>
4780
4781         * sysdep.h: Include inttypes.h where available.
4782
4783         * host.c: Switch from u_int32_t to uint32_t.
4784
4785 2003-10-26  Hrvoje Niksic  <hniksic@xemacs.org>
4786
4787         * netrc.c (parse_netrc): Reset the QUOTE flag after the closing
4788         quote.
4789
4790 2003-10-25  Hrvoje Niksic  <hniksic@xemacs.org>
4791
4792         * url.c (is_valid_ipv6_address): Reformat to GNU coding style.
4793         Use enums for NS_IN* constants.  Use ISXDIGIT.
4794
4795         * convert.c (construct_relative): Document better how the function
4796         works.
4797
4798 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
4799
4800         * config.h.in: Deploy preprocessor magic to avoid Ultrix's
4801         <netdb.h> include <bitypes.h> which defines its own u_int32_t.
4802         Reported by Bernhard Simon.
4803
4804 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
4805
4806         * version.c: Bump version.
4807
4808 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
4809
4810         * url.c: Ditto.
4811
4812         * html-parse.c (advance_declaration): Don't use trailing comma in
4813         enum because older compilers don't support it.
4814
4815         * utils.c: Don't redefine HAVE_SIGSETJMP.
4816
4817 2003-10-16  Hrvoje Niksic  <hniksic@xemacs.org>
4818
4819         * convert.c (construct_relative): Don't handle absolute files
4820         specially -- for example, -P/tmp/foo shouldn't imply that
4821         converted files must refer to "/tmp/foo/..."!
4822
4823 2003-10-15  Hrvoje Niksic  <hniksic@xemacs.org>
4824
4825         * http.c: Consider status 307 a valid redirect.
4826
4827 2003-10-15  Philip Stadermann  <philip.stadermann@credativ.de>
4828
4829         * ftp.c (ftp_retrieve_glob): Correctly loop through the list whose
4830         elements might have been deleted.
4831
4832 2003-10-13  Hrvoje Niksic  <hniksic@xemacs.org>
4833
4834         * html-url.c (tag_handle_meta): Set the Refresh link to expect
4835         HTML.
4836         (append_one_url): Renamed to append_url.
4837
4838 2003-10-13  Hrvoje Niksic  <hniksic@xemacs.org>
4839
4840         * sysdep.h: Only define u_int32_t.
4841
4842 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
4843
4844         * utils.c (large_int_to_string): Use snprintf() to print the
4845         number.  This will work even on systems where libc doesn't
4846         understand %lld, but the compiler does, because it will use our
4847         snprintf replacement.
4848
4849         * init.c (parse_bytes_helper): New function.
4850         (cmd_bytes): Use it to parse bytes, but cast the result to long.
4851         (cmd_bytes_large): Ditto, but store the result to LARGE_INT.  Used
4852         for --quota so that --quota=10G works even on machines without
4853         long long.
4854
4855         * options.h (struct options): Declare quota as LARGE_INT.
4856
4857         * retr.c (downloaded_exceeds_quota): Removed.
4858         (downloaded_increase): Ditto.
4859         (total_downloaded_bytes): New variable, replaces opt.downloaded,
4860         which was the wrong place for it anyway.  Updated callers of
4861         downloaded_exceeds_quota and downloaded_increase to check this
4862         variable directly.
4863
4864         * sysdep.h: Get rid of VERY_LONG_TYPE.  Use LARGE_INT for the same
4865         purpose, defined as `long', `long long' or `double', depending on
4866         size of long and whether long long is available.
4867
4868 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
4869
4870         * sysdep.h: Also check size of short for int32_t.
4871
4872 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
4873
4874         * host.c (lookup_host): Use u_int32_t to store the result of
4875         inet_addr().  That removes the need for offset fiddling, caring
4876         about endian-ness, etc.
4877
4878         * sysdep.h: Define int32_t and u_int32_t if not available.
4879
4880 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
4881
4882         * ftp-basic.c (ftp_epsv): Use socklen_t * as the third argument to
4883         getpeername.
4884
4885         * config.h.in: Define socklen_t stub.
4886
4887         * host.c (sockaddr_len): Return socklen_t.
4888
4889         * connect.c (conaddr): Use socklen_t as the third argument to
4890         accept, getsockname, and connect.
4891
4892 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
4893
4894         * recur.c (retrieve_tree): Don't descend into documents that are
4895         not expected to contain HTML, regardless of their content-type.
4896
4897         * html-url.c (tag_url_attributes): Record which attributes are
4898         supposed to yield HTML links that can be followed.
4899         (tag_find_urls): Propagate that information to the caller through
4900         struct urlpos.
4901
4902 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
4903
4904         * hash.c (find_mapping): Return the next available mapping when
4905         the key is not found, not NULL.
4906         (hash_table_put): Use find_mapping to find the storage for the new
4907         data.
4908         (hash_table_put): Grow the table before exceeding maximum
4909         fullness, not afterwards.
4910
4911 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
4912
4913         * hash.c (hash_table_new): Slightly change the meaning of the
4914         first parameter.  Instead of being the minimum initial size, it is
4915         now the minimum number of items that the hash table can take
4916         without needing to resize.
4917
4918 2003-10-09  Hrvoje Niksic  <hniksic@xemacs.org>
4919
4920         * html-url.c (init_interesting): Initialize interesting_tags and
4921         interesting_attributes as hash tables.  This simplifies the code
4922         immensely because hash tables handle allocation and remove
4923         duplicates automatically.
4924         (find_tag): Removed.
4925         (collect_tags_mapper): Instead of calling find_tag, simply get the
4926         entry from interesting_tags hash table, which is both simpler and
4927         faster.
4928
4929 2003-10-09  Hrvoje Niksic  <hniksic@xemacs.org>
4930
4931         * hash.c (hash_table_get): Declare hash-table argument as const.
4932         (find_mapping): Ditto.
4933         (hash_table_get_pair): Ditto.
4934         (hash_table_contains): Ditto.
4935         (hash_table_count): Ditto.
4936
4937 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
4938
4939         * html-url.c (get_urls_html): Parse the appropriate flags to
4940         html-parse.c.
4941
4942         * html-parse.c (map_html_tags): Accept FLAGS from the caller
4943         instead of examining OPT.
4944
4945 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
4946
4947         * html-url.c (find_tag): Switch to binary search.
4948
4949 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
4950
4951         * main.c (print_help): Fix typo; stured -> stored.
4952
4953 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
4954
4955         * getopt.c: Add definitions of getopt_long and getopt_long_only.
4956
4957 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
4958
4959         * config.h.in: Renamed DEBUG to ENABLE_DEBUG.  ENABLE_DEBUG is, I
4960         think, a better name, because it implies that debugging output is
4961         merely possible, not "on by default", as might be construed from
4962         just DEBUG.
4963
4964 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
4965
4966         * ftp.c (has_insecure_name_p): Define it here.
4967
4968         * utils.c (has_wildcards_p): Define it here.
4969
4970         * sysdep.h: Declare fnmatch-related macros here, if not using
4971         system fnmatch().  Update .c files to not declare fnmatch.h
4972         directly.
4973
4974         * cmpt.c (fnmatch): Moved here.  Use it only under non-GNU libc.
4975
4976 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
4977
4978         * getopt.c: Newer version, imported from Free libit.
4979
4980 2003-10-07  Hrvoje Niksic  <hniksic@xemacs.org>
4981
4982         * cookies.c (struct cookie): Remove unused backpointer to cookie
4983         jar.
4984
4985 2003-10-07  Hrvoje Niksic  <hniksic@xemacs.org>
4986
4987         * cmpt.c (memmove): Comment out, since it's no longer used.
4988
4989         * cookies.c (cookie_jar_generate_cookie_header): Allocate room for
4990         chains in one pass.
4991         (find_chains_of_host): Assume that the caller has allocated DEST
4992         to be sufficiently large to take all the data.
4993         (eliminate_dups): Run through the array and eliminate dups on the
4994         fly instead of using memmove.
4995         (cookie_jar_process_set_cookie): Free cookie->domain before
4996         re-setting it.
4997
4998 2003-10-05  Gisle Vanem  <giva@bgnett.no>
4999
5000         * mswindows.c (set_sleep_mode): Fix type of
5001         _SetThreadExecutionState.
5002
5003 2003-10-05  Hrvoje Niksic  <hniksic@xemacs.org>
5004
5005         * utils.c (file_size): Return -1 if fopen() returns NULL.  Prior
5006         to this patch, wget --post-file=nosuchfile dumped core.
5007
5008 2003-10-04  Gisle Vanem  <giva@bgnett.no>
5009
5010         * mswindows.c (run_with_timeout): Use WaitForSingleObject to wait
5011         for thread termination.
5012
5013 2003-10-04  Hrvoje Niksic  <hniksic@xemacs.org>
5014
5015         * log.c: Use `...' in function definitions; ansi2knr will convert
5016         them to va_dcl.  This allowed removal of the ugly VA_START_1 and
5017         VA_START_2 macros.
5018
5019 2003-10-03  Gisle Vanem  <giva@bgnett.no>
5020
5021         * connect.c: And don't include them here.
5022
5023         * mswindows.h: Include winsock headers here.
5024
5025 2003-10-03  Hrvoje Niksic  <hniksic@xemacs.org>
5026
5027         * html-parse.c (convert_and_copy): Move variable declarations
5028         before statements.
5029
5030 2003-10-02  Gisle Vanem  <giva@bgnett.no>
5031         
5032         * mswindows.c (run_with_timeout): For Windows: Run the 'fun' in a
5033         thread via a helper function. Continually query the thread's
5034         exit-code until finished or timed out.
5035
5036 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
5037
5038         * wget.h (XMALLOC_ARRAY): Removed.
5039         (ALLOCA_ARRAY): Ditto.
5040
5041         * html-parse.c: Renamed alloca_p to resized.
5042         (GROW_ARRAY): Renamed DO_REALLOC_FROM_ALLOCA to GROW_ARRAY and
5043         returned it to html-parse.c, since nothing else was using it.
5044
5045 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
5046
5047         * retr.c (retrieve_url): Initialize DUMMY storage for DT.  Caught
5048         by valgrind.
5049
5050 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
5051
5052         * html-parse.c (convert_and_copy): Handle numeric entities in
5053         hexadecimal, &#xHH.
5054         (convert_and_copy): Copy the contents directly to the pool without
5055         a stack-allocated intermediary.
5056
5057 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
5058
5059         * utils.c (alarm_set): New function; use either setitimer or alarm
5060         to set up the alarm.
5061         (alarm_cancel): New function; cancel the alarm set up by
5062         alarm_set.
5063         (run_with_timeout): Use them.
5064
5065 2003-10-01  Hrvoje Niksic  <hniksic@xemacs.org>
5066
5067         * url.c (url_parse): Don't leak memory when a reencoded URL turns
5068         out to be invalid.
5069
5070         * url.c (parse_errors): Mark error messages for translation.
5071         (url_error): Translate error messages returned to the caller.
5072
5073 2003-10-01  Hrvoje Niksic  <hniksic@xemacs.org>
5074
5075         * ftp.c (ftp_loop_internal): Initialize TMRATE to NULL to shut up
5076         the compiler.
5077
5078 2003-09-26  Gisle Vanem  <giva@bgnett.no>
5079
5080         * src/mswindows.c: Added ws_percenttitle() showing progress in the
5081         window titlebar. Called from retr.c. Secured ws_mypath().
5082
5083         * windows/config.h.ms: alloca() prototype not needed.  Removed
5084         "#undef ENABLE_NLS"; should be in Makefile IMHO. Moved
5085         WGET_USE_STDARG from mswindows.h to config.ms.h because of #ifdef
5086         in log.c. (MSVC's vararg.h and stdarg.h are incompatible).
5087
5088 2003-09-29  Aaron Hawley <Aaron.Hawley@uvm.edu>
5089
5090         * ftp.c (getftp): --spider option should now work with FTP
5091         downloads.
5092         (ftp_loop_internal): quiet reports and calculations of downloads
5093         when --spider option set, nor try deleting when --delete-after
5094         also set.
5095         (ftp_loop): --spider will skip HTML-ification of .listing file.
5096
5097 2003-09-26  Gisle Vanem  <giva@bgnett.no>
5098
5099         * mswindows.c (read_registry): Removed.
5100         (set_sleep_mode): New function.
5101         (windows_main_junk): Call it.
5102
5103 2003-09-26  Gisle Vanem  <giva@bgnett.no>
5104
5105         * mswindows.c (read_registry): Fix invocation of registry
5106         functions.
5107
5108         * mswindows.c (read_registry): Condition definitions of sleep and
5109         usleep with not HAVE_SLEEP and HAVE_USLEEP respectively.  Define
5110         HAVE_SLEEP and HAVE_USLEEP under __DMC__.
5111
5112 2003-09-24  Hrvoje Niksic  <hniksic@xemacs.org>
5113
5114         * url.c (url_escape_1): Revert unintentional change to lowercase
5115         xdigit escapes.
5116         (url_escape_dir): Document that this function depends on the
5117         output of url_escape_1.
5118
5119 2003-09-23  Hrvoje Niksic  <hniksic@xemacs.org>
5120
5121         * progress.c (create_image): Print the current ETA if we're done
5122         with the download.
5123         (create_image): Change '-' display char to '+' in the progress bar.
5124
5125         * Makefile.in (clean): Remove .libs.
5126
5127 2003-09-23  Hrvoje Niksic  <hniksic@xemacs.org>
5128
5129         * cookies.c (struct cookie): New flag domain_exact.
5130         (update_cookie_field): Skip leading dot in domain.
5131         (find_matching_chains): Match numeric addresses exactly; don't
5132         needlessly copy HOST to the stack.
5133         (matching_cookie): Added argument HOST.  If cookie->domain_exact
5134         is set, check that HOST is equal to cookie->domain.
5135         (cookie_jar_load): Only use TAB as delimiter.  Document the
5136         meaning of DOMAIN-FLAG.  Skip leading dot in domain.
5137         (cookie_jar_load): Don't ignore DOMAIN-FLAG -- instead, set
5138         domain_exact to true if DOMAIN-FLAG is false.
5139         (save_cookies_mapper): If domain_exact is false, prepend the
5140         domain with dot, like Mozilla does.
5141
5142 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
5143
5144         * progress.c (create_image): Print the initial part of the
5145         download with '-' characters, analogous to how dot progress prints
5146         the initial part with ','.
5147
5148         * hash.c (ptrhash): New function.
5149         (ptrcmp): Ditto.
5150         (hash_table_new): Default to identity hash table.
5151
5152 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
5153
5154         * safe-ctype.h (_sch_test): The cast of BIT to unsigned char was
5155         broken -- _sch_istable bitmasks are 16-bit, not 8-bit!  Cast BIT
5156         to unsigned short instead.
5157
5158 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
5159
5160         * url.c (path_simplify): Instead of calls to memmove, handle "./"
5161         and "../" by advancing pointers.
5162
5163 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
5164
5165         * retr.c (getproxy): Moved from url.c.
5166
5167         * convert.c: Split off link conversion from url.c into separate
5168         file.  Also included the book-keeping stuff from recur.c.
5169
5170 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5171
5172         * init.c: Improved documentation of functions.
5173         (cmd_boolean): Attempt to make code that tries to avoid calling
5174         strcmp for "speed" a bit more readable.
5175
5176         * init.c (simple_atof): Report error on encountering non-digit,
5177         non-"." character.
5178         (simple_atoi): Replacement for myatoi(), calling interface
5179         compatible with simple_atof.  Updated myatoi's callers.
5180
5181 2003-09-21  Bertrand Demiddelaer  <bert@b3rt.org>
5182
5183         * url.c (path_simplify): Would read two bytes past the end of the
5184         string in the "./" case.
5185
5186 2003-09-21  Matthew J. Mellon  <mellon@tymenet.com>
5187
5188         * http.c (gethttp): Recognize content-type "application/xhtml+xml"
5189         as what Wget considers "text/html".
5190
5191 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5192
5193         * connect.c (connect_with_timeout): Made timeout type double.
5194
5195         * options.h (struct options): New members read_timeout,
5196         dns_timeout, and connect_timeout.
5197         Use them.
5198
5199 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5200
5201         * init.c (simple_atof): New function.
5202         (cmd_time): Use it.
5203         (cmd_bytes): Accept things like "1.5k" and such.  Use simple_atof
5204         to parse decimals.
5205
5206         * retr.c (limit_bandwidth): Adjust each sleep by the error of the
5207         previous one.
5208
5209 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5210
5211         * main.c (main): Use setoptval() for setting the options.  Use
5212         run_command for `-e'.
5213
5214         * init.c (parse_line): Rewritten to return COMIND right away.
5215         Changed linkage to static.
5216         (run_wgetrc): Use the available comind when calling setval, so it
5217         doesn't have to be computed twice.
5218         (setval_internal): New function, runs the command's action without
5219         any error checking.
5220         (setoptval): New function, does what setval used to do, but exits
5221         in case of error.
5222         (run_command): New function.
5223
5224 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5225
5226         * connect.c (select_fd): Change MAXTIME's type to double.  Handle
5227         its decimal part.
5228
5229         * retr.c (sleep_between_retrievals): In the random-wait case, use
5230         random_float() to wait between 0 and 2*opt.wait seconds.
5231
5232         * utils.c (run_with_timeout): Accept `double' timeouts.  Correctly
5233         handle timeout values in (0, 1) range.
5234         (random_float): New function.
5235
5236         * options.h (struct options): Change the types of wait, waitretry,
5237         and timeout to double.
5238
5239         * init.c (cmd_time): Accept floating point time.
5240
5241 2003-09-20  Hrvoje Niksic  <hniksic@xemacs.org>
5242
5243         * retr.c (get_contents): Cosmetic fixes.
5244
5245 2003-09-20  Hrvoje Niksic  <hniksic@xemacs.org>
5246
5247         * url.c (uri_merge): Get rid of uri_merge_1.
5248         (uri_merge): Merge "foo//", "bar" as "foo//bar", not "foo///bar",
5249         i.e. don't add an extra slash merely because BASE ends with two
5250         slashes.
5251         (parse_credentials): Renamed from parse_uname.  Rewrittern in
5252         standard [beg, end) calling style.
5253         (url_skip_credentials): Renamed from url_skip_uname.  Made static.
5254         (url_skip_credentials): Include # and ; as terminators.  Old code
5255         would mistakenly consider "http://foo.com#hniksic@iskon.hr" to
5256         contain a username.
5257         (url_skip_scheme): Removed because it was unused.
5258         (url_has_scheme): Require "scheme" to be at least one char long.
5259
5260 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
5261
5262         * url.c (url_file_name): Expect NULL dir_prefix.
5263
5264         * init.c (cmd_file): Use a macro to prevent multiple #ifdef
5265         WINDOWS.
5266         (defaults): Set dir_prefix to NULL by default.
5267
5268 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
5269
5270         * safe-ctype.h (_sch_test): Cast BIT to unsigned char, like latest
5271         gcc does.
5272
5273 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
5274
5275         * wget.h (BOUNDED_TO_ALLOCA): Evaluate PLACE only once.
5276         (ARRAY_SIZE): Renamed to countof.  All callers updated.
5277
5278 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
5279
5280         * main.c (main): New option --strict-comments.
5281
5282         * html-parse.c (find_comment_end): New function: simple BM search
5283         for "-->".
5284         (map_html_tags): Use it if looking at a comment and not in strict
5285         comments mode.
5286
5287 2003-09-17  Aurelien Marchand  <artaxerxes@users.sf.net>
5288
5289         * ftp.h: Added OS400 system in enum
5290         * ftp-basic.c: recognize OS400 systems
5291         * ftp.c: don't prepend the CWD if talking to OS400, since it
5292         breaks the change in library
5293
5294 2003-09-18  Hrvoje Niksic  <hniksic@xemacs.org>
5295
5296         * retr.c (get_contents): Pass the correct argument to ssl_iread.
5297
5298 2003-09-18  Hrvoje Niksic  <hniksic@xemacs.org>
5299
5300         * safe-ctype.h: Don't #define ctype.h macros to errors because
5301         that loses when someone #include's ctype.h after safe-ctype.h.
5302
5303 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
5304
5305         * url.c: Undef U, W, C after use.
5306
5307 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
5308
5309         * init.c (cmd_spec_restrict_file_names): Allow the OS setting to
5310         be augmented by ",nocontrol" which means don't escape the control
5311         characters, but otherwise keep OS settings.
5312
5313         * url.c (file_unsafe_char): Deleted.
5314         (append_uri_pathel): Query filechr_table directly.
5315         (filechr_table): Separated Unix, Windows, and control-unsafe
5316         characters.
5317
5318 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
5319
5320         * url.c (url_escape_1): New function.
5321         (url_escape): Use it.
5322         (sync_path): Handle pathological cases where u->file and u->dir
5323         contain really strange characters.
5324         (ENCODE): Deleted.
5325         (REENCODE): Deleted.
5326
5327 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
5328
5329         * url.c (url_file_name): Don't reallocate FNAME if the file
5330         doesn't exist, as is usually the case.
5331
5332         * utils.c (unique_name): New flag allow_passthrough.
5333
5334 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
5335
5336         * utils.c (wtimer_sys_diff): Convert the time difference to signed
5337         __int64, then to double.  This works around MS VC++ 6 which can't
5338         convert unsigned __int64 to double directly.
5339
5340 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
5341
5342         * Makefile.in (clean): Also remove the core.<number> files
5343         produced by recent Linux systems.
5344
5345 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
5346
5347         * http.c (post_file): Don't pad the file if it's not large
5348         enough.  Bail out instead.
5349
5350 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5351
5352         * retr.c (get_contents): Reduce the buffer size to the amount of
5353         data that may pass through for one second.  This prevents long
5354         sleeps when limiting bandwidth.
5355
5356         * connect.c (connect_to_one): Reduce the socket's RCVBUF when
5357         bandwidth limitation to small values is requested.
5358
5359 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5360
5361         * progress.c (update_speed_ring): Moved the speed ring update to a
5362         separate function and documented it better.
5363
5364         * progress.c: Use `double' for most timers to support granularity
5365         smaller than 1ms.
5366
5367 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5368
5369         * wget.h (XDIGIT_TO_XCHAR): Implement as index into a literal
5370         string.
5371         (XDIGIT_TO_xchar): Ditto.
5372
5373 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5374
5375         * utils.c: Change the type of timer-related functions from long to
5376         double, for better precision.  On machines supporting gettimeofday
5377         the timers now work with granularity of less than one millisecond.
5378
5379 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5380
5381         * cookies.c (parse_set_cookies): Fixed the parser to handle more
5382         edge conditions.
5383         (test_cookies): New function, contains a test suite for
5384         parse_set_cookies.
5385
5386 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5387
5388         * url.c (strpbrk_or_eos): Implement as a macro under Gcc.
5389
5390 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5391
5392         * cookies.c (parse_set_cookies): Allow trailing space in
5393         set-cookies header.  Also, allow any amount of whitespace, not
5394         only one character.  Allow empty set-cookies header without
5395         spewing an error.
5396
5397 2003-09-14  Hrvoje Niksic  <hniksic@xemacs.org>
5398
5399         * url.c (append_uri_pathel): Use opt.restrict_file_names when
5400         calling file_unsafe_char.
5401
5402         * init.c: New command restrict_file_names.
5403
5404         * main.c (main): New option --restrict-file-names[=windows,unix].
5405
5406         * url.c (url_file_name): Renamed from url_filename.
5407         (url_file_name): Add directory and hostdir prefix here, not in
5408         mkstruct.
5409         (append_dir_structure): New function, does part of the work that
5410         used to be in mkstruct.  Iterates over path elements in u->path,
5411         calling append_uri_pathel on each one to append it to the file
5412         name.
5413         (append_uri_pathel): URL-unescape a path element and reencode it
5414         with a different set of rules, more appropriate for handling of
5415         files.
5416         (file_unsafe_char): New function, uses a lookup table to decide
5417         whether a character should be escaped for use in file name.
5418         (append_string): New utility function.
5419         (append_char): Ditto.
5420         (file_unsafe_char): New argument restrict_for_windows, decide
5421         whether Windows file names should be escaped in run-time.
5422
5423         * connect.c: Include <stdlib.h> to get prototype for abort().
5424
5425 2003-09-14  Hrvoje Niksic  <hniksic@xemacs.org>
5426
5427         * utils.c (wtimer_sys_set): Extracted the code that sets the
5428         current time here.
5429         (wtimer_reset): Call it.
5430         (wtimer_sys_diff): Extracted the code that calculates the
5431         difference between two system times here.
5432         (wtimer_elapsed): Call it.
5433         (wtimer_elapsed): Don't return a value smaller than the previous
5434         one, which could previously happen when system time is set back.
5435         Instead, reset start time to current time and note the elapsed
5436         offset for future calculations.  The returned times are now
5437         guaranteed to be monotonically nondecreasing.
5438
5439 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
5440
5441         * host.c (lookup_host): Print the result of the DNS lookup.
5442
5443 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
5444
5445         * init.c (cmd_boolean): Accept yes/no along with on/off.
5446         (cmd_lockable_boolean): Ditto.
5447
5448 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
5449
5450         * init.c: New command dns_cache.
5451
5452         * main.c (main): New option --dns-cache[=off].
5453
5454 2003-09-09  Hrvoje Niksic  <hniksic@xemacs.org>
5455
5456         * config.h.in: Initialize HAVE_GETADDRINFO and ENABLE_IPV6.
5457
5458         * all: Use #ifdef ENABLE_IPV6 instead of the older INET6.  Use
5459         HAVE_GETADDRINFO for getaddrinfo-related stuff.
5460
5461 2003-09-09  Hrvoje Niksic  <hniksic@xemacs.org>
5462
5463         * url.c (url_parse): Return an error if the URL contains a [...]
5464         IPv6 numeric address and we don't support IPv6.
5465
5466 2003-09-05  Hrvoje Niksic  <hniksic@xemacs.org>
5467
5468         * url.c (is_valid_ipv6_address): Modified to not require
5469         zero-terminated strings.
5470         (is_valid_ipv4_address): Ditto.
5471
5472 2003-09-05  Mauro Tortonesi <mauro@deepspace6.net>
5473
5474         src/url.c: added RFC 2732 compliance for URL parsing. The
5475         functions is_*_address valid are a modified version of
5476         glibc 2.3.2 inet_pton's code.
5477
5478 2003-09-03  Ahmon Dancy  <dancy@dancysoft.com>
5479
5480         * main.c init.c options.h: Added --retry-connrefused option so
5481         that Connection Refused failures are treated as non-fatal (when
5482         trying to retrieve from busy servers).
5483
5484         * wget.h: New CONNECT_ERROR macro for encapsulating this
5485         modification.
5486
5487         * ftp.c http.c : Use CONNECT_ERROR macro in places where
5488         ECONNREFUSED was checked.
5489
5490 2003-01-11  Ian Abbott  <abbotti@mev.co.uk>
5491
5492         * ftp.c (ftp_retrieve_glob): Reject insecure filenames as determined
5493         by calling new function has_insecure_name_p.  This is based on a
5494         patch by Red Hat.
5495
5496         * fnmatch.c (has_insecure_name_p): New function: returns non-zero
5497         if filename starts with `/' or contains `../' and is therefore
5498         considered insecure.
5499
5500         * fnmatch.h: Declare has_insecure_name_p().
5501
5502 2002-08-03  Hrvoje Niksic  <hniksic@xemacs.org>
5503
5504         * init.c (cmd_file): Allocate RESULT correctly.
5505
5506 2002-07-24  Hrvoje Niksic  <hniksic@xemacs.org>
5507
5508         * recur.c (retrieve_tree): Check whether downloaded_html_set is
5509         non-NULL before using it.
5510
5511 2002-05-27  Hrvoje Niksic  <hniksic@arsdigita.com>
5512
5513         * html-parse.c (NAME_CHAR_P): Allow almost any character here.
5514
5515 2002-05-24  Hrvoje Niksic  <hniksic@arsdigita.com>
5516
5517         * progress.c (bar_set_params): Fall back to dot progress if the
5518         terminal type is "emacs".
5519
5520 2002-05-20  Hrvoje Niksic  <hniksic@arsdigita.com>
5521
5522         * log.c: Don't #undef WGET_USE_STDARG.
5523
5524 2002-05-16  Hrvoje Niksic  <hniksic@arsdigita.com>
5525
5526         * hash.c (prime_size): Store the offset of the prime number in the
5527         prime table.  When searching, start with the given offset.
5528         (hash_table_new): Pass the pointer to ht->prime_offset to
5529         prime_size.
5530         (grow_hash_table): Ditto.
5531         (prime_size): Make 13 the first prime to make empty hash tables
5532         slightly smaller.
5533
5534 2002-05-16  Ian Abbott  <abbotti@mev.co.uk>
5535
5536         * recur.c (download_child_p): Minor optimization to avoid an
5537         unnecessary additional call to schemes_are_similar_p function.
5538
5539 2002-05-16  Ian Abbott  <abbotti@mev.co.uk>
5540
5541         * url.c (schemes_are_similar_p): New function to test enumerated
5542         scheme codes for similarity.
5543
5544         * url.h: Declare it.
5545
5546         * recur.c (download_child_p): Use it to compare schemes.  This
5547         also fixes a bug that allows hosts to be spanned (without the
5548         -H option) when the parent scheme is https and the child's is
5549         http or vice versa.
5550
5551 2002-05-14  Bill Richardson  <bill@riverstonenet.com>
5552
5553         * ftp.c (getftp): Don't ftruncate stdout.
5554
5555         * http.c (gethttp): Don't ftruncate stdout.
5556
5557 2002-05-09  Ian Abbott  <abbotti@mev.co.uk>
5558
5559         * cmpt.c (strptime_internal): Synched with glibc-2.1.3.
5560         (get_number): Ditto.
5561         (get_alt_number): Ditto.
5562         (__isleap): New function-like macro used by strptime.
5563         (day_of_the_week): New function used by strptime.
5564         (day_of_the_year): Ditto.
5565         (__mon_yday): Now shared by mktime and strptime implementations.
5566
5567 2002-05-08  Hrvoje Niksic  <hniksic@arsdigita.com>
5568
5569         * cookies.c (check_domain_match): Use match_tail in case
5570         insensitive mode.
5571
5572         * utils.c (match_tail): Allow the caller to specify case
5573         insensitive mode.
5574
5575         * cookies.c (store_cookie): When expiry_time is 0, print it as
5576         undefined, not indefinite.
5577
5578 2002-05-07  Ian Abbott  <abbotti@mev.co.uk>
5579
5580         * cookies.c (cookie_jar_process_set_cookie): Do not store
5581         discarded cookie.
5582
5583 2002-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
5584
5585         * cookies.c (check_domain_match): Allow cookies to be set for
5586         subdomains of unknown top-level domains under some circumstances.
5587
5588 2002-04-21  Thomas Lussnig  <thomas.lussnig@bewegungsmelder.de>
5589
5590         * gen_ssl.c:
5591         - allow checking of server cert
5592         - allow defining client cert type
5593         - allow limit of ssl protocol
5594         - check more return values
5595         - added debug message on break
5596
5597 2002-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
5598
5599         * recur.c (download_child_p): Revert order of items in check
5600         number 6 for clarity.
5601
5602 2002-04-20  Hrvoje Niksic  <hniksic@arsdigita.com>
5603
5604         * init.c: Ditto.
5605
5606         * main.c: Ditto.
5607
5608         * http.c: Use the new interface.
5609
5610         * cookies.c: Provide an OO-style "cookie jar" interface to enable
5611         separate cookie jars.
5612
5613         * http.c (http_atotm): Declare argument as const.
5614
5615 2002-04-20  Hrvoje Niksic  <hniksic@arsdigita.com>
5616
5617         * cookies.c (cookie_new): Default to PORT_ANY.
5618         (find_cookie_chain_exact): Only search by DOMAIN.
5619         (find_matching_cookie): Also check that PORT matches.
5620         (store_cookie): Only match the domain.
5621         (set_cookie_header_cb): When a cookie "fakes" a domain, assume it
5622         is valid for that host rather than discarding it completely.
5623         (find_matching_chains): Don't search by PORT.
5624         (matching_cookie): Also match PORT.
5625         (load_cookies): Set the port if specified, otherwise leave it as
5626         ANY.
5627         (save_cookies_mapper): Save the port if specified, otherwise leave
5628         it empty.
5629
5630 2002-04-19  Thomas Lussnig  <thomas.lussnig@bewegungsmelder.de>
5631
5632         * init.c: The option `egdfile' was not in sort order.
5633
5634 2002-04-16  Hrvoje Niksic  <hniksic@arsdigita.com>
5635
5636         * ftp.c (getftp): Treat directories that begin with <letter>: as
5637         absolute.
5638         (getftp): Strip trailing slashes from con->id before merging it
5639         with TARGET.
5640
5641 2002-04-16  Hrvoje Niksic  <hniksic@arsdigita.com>
5642
5643         * http.c (gethttp): If Content-Type is not given, assume
5644         text/html.
5645
5646 2002-04-15  Hrvoje Niksic  <hniksic@arsdigita.com>
5647
5648         * recur.c (download_child_p): Don't ignore rejection of HTML
5649         documents that are themselves leaves of recursion.
5650
5651 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
5652
5653         Makefile.in: Updated several dependencies for object files to take
5654         account of nested include files.
5655
5656 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
5657
5658         Makefile.in: The target `connect$o' (connect.o) now depends on
5659         `utils.h'
5660
5661 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
5662
5663         * host.c (SET_H_ERRNO): New function-like macro to set `h_errno'.
5664         (gethostbyname_with_timeout): Use it.
5665
5666         * utils.c: Don't define `SETJMP()', `run_with_timeout_env' or
5667         `abort_run_with_timeout()' when `USE_SIGNAL_TIMEOUT' is undefined.
5668
5669 2002-04-15  Hrvoje Niksic  <hniksic@arsdigita.com>
5670
5671         * host.c (getaddrinfo_with_timeout): New function.
5672         (gethostbyname_with_timeout): Ditto.
5673         (lookup_host): Use them.
5674
5675 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5676
5677         * utils.c (number_to_string): Handle the case when n < -INT_MAX.
5678
5679 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5680
5681         * init.c (comind): Use a marginally faster implementation of
5682         binary search.  To quote Martin Buchholz, "a nanosecond saved is a
5683         nanosecond earned."
5684
5685 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5686
5687         * main.c (print_help): Document `--post-data' and `--post-file'.
5688
5689 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5690
5691         * http.c (gethttp): Ditto.
5692
5693         * retr.c (retrieve_url): Initialize variables to appease the
5694         compiler.
5695
5696         * gen_sslfunc.c (ssl_iread): Don't handle EINTR when calling
5697         select_fd.
5698         (ssl_iwrite): Ditto.
5699
5700         * connect.c (select_fd): Rewrite to handle EINTR.  Set errno to
5701         ETIMEDOUT in case of timeout.
5702         (iread): No need to handle EINTR when calling select_fd.
5703         (iwrite): Ditto.
5704
5705 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5706
5707         * retr.c (retrieve_url): Make sure that POST is not honored for
5708         redirections.
5709
5710         * http.c (gethttp): Send the POST data when requested.
5711         (post_file): New function.
5712         (gethttp): Use it.
5713
5714         * main.c (main): Ditto.
5715
5716         * init.c: Add new options.
5717
5718         * options.h (struct options): New options post_data and
5719         post_file_name.
5720
5721 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5722
5723         * connect.c (connect_with_timeout): Firing SIGALRM can result in
5724         connect() exiting with EINTR.  Treat EINTR the same as ETIMEDOUT.
5725
5726 2002-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
5727
5728         * connect.c (connect_with_timeout): Use it.
5729
5730         * utils.c (run_with_timeout): New function.
5731
5732 2002-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
5733
5734         * url.c (getproxy): Accept a struct url argument.  This obviates
5735         the need for USE_PROXY_P.
5736
5737         * retr.c (retrieve_url): Allow proxy to be a non-FTP URL.
5738
5739         * ftp.c (getftp): Recognize FWTK-style proxy.
5740
5741 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
5742
5743         * config.h.in: Only define _VA_LIST when compiled with gcc.
5744
5745 2002-04012  Ian Abbott  <abbotti@mev.co.uk>
5746
5747         * http.c (http_loop): Compensate for MS Windows two-second
5748         granularity of file modification time when comparing timestamps.
5749
5750         * ftp.c (ftp_retrieve_list): Ditto.
5751
5752 2002-04-12  Ian Abbott  <abbotti@mev.co.uk>
5753
5754         * utils.c (has_html_suffix_p): New function to test filename for
5755         common html extensions.
5756
5757         * utils.h: Declare it.
5758
5759         * http.c (http_loop): Use it instead of previous test.
5760
5761         * retr.c (retrieve_url): Ditto.
5762
5763         * recur.c (download_child_p): Ditto.
5764
5765 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
5766
5767         * config.h.in: Define _VA_LIST on Solaris to prevent stdio.h from
5768         declaring va_list.
5769         From Kevin Rodgers <kevinr@ihs.com>.
5770
5771 2002-04-12  Ian Abbott  <abbotti@mev.co.uk>
5772
5773         * Makefile.in: Specify libtool mode explicitly when linking.
5774
5775 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
5776
5777         * connect.c (connect_with_timeout): New function.
5778         (connect_to_one): Use it.
5779
5780         * config.h.in: Add stubs for HAVE_SIGSETJMP, HAVE_SIGBLOCK, and
5781         HAVE_SETJMP_H.
5782
5783 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5784
5785         * log.c: Set WGET_USE_STDARG if __STDC__ is defined and stdarg.h
5786         is present.
5787
5788 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5789
5790         * progress.c (bar_create): If INITIAL is larger than TOTAL, fix
5791         TOTAL.
5792         (bar_finish): Likewise.
5793
5794 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5795
5796         * html-url.c (tag_handle_form): New function.  Pick up form
5797         actions and mark them for conversion only.
5798
5799 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5800
5801         * progress.c (struct progress_implementation): Use PARAMS when
5802         declaring the parameters of *create, *update, *finish, and
5803         *set_params.
5804
5805         * netrc.c: Ditto.
5806
5807         * http.c: Reformat some function definitions so that ansi2knr can
5808         read them.
5809
5810         * hash.c (struct hash_table): Use the PARAMS macro around
5811         parameters in the declaration of hash_function and test_function.
5812         (prime_size): Spell 2580823717UL and 3355070839UL as (unsigned
5813         long)0x99d43ea5 and (unsigned long)0xc7fa5177 respectively, so
5814         that pre-ANSI compilers can read them.
5815         (find_mapping): Use PARAMS when declaring EQUALS.
5816         (hash_table_put): Ditto.
5817
5818         * ftp.h: Wrap the parameters of ftp_index declaration in PARAMS.
5819
5820         * cookies.c (cookie_new): Use (unsigned long)0 instead of 0UL,
5821         which was unsupported by pre-ANSI compilers.
5822
5823         From Nelson H. F. Beebe <beebe@math.utah.edu>, for the most part.
5824
5825 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5826
5827         * url.c (url_filename): Use compose_file_name regardless of
5828         whether opt.dirstruct is set.
5829         (mkstruct): Don't handle the query and the reencoding of DIR; that
5830         is done in compose_file_name.
5831
5832 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
5833
5834         * wget.h: Ditto for extern char *exec_name.
5835
5836         * options.h: Don't guard against OPTIONS_DEFINED_HERE -- it is
5837         perfectly legal to follow an `extern' with a non-`extern' ones,
5838         provided the types match.
5839
5840         * main.c: Don't define OPTIONS_DEFINED_HERE.
5841
5842 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
5843
5844         * progress.c (create_image): Revert to calculating ETA based on
5845         average download speed.
5846         (create_image): Don't print ETA until the download has been active
5847         for at least 3 seconds.
5848         (create_image): When ETA is not available, don't print anything.
5849         The previous version would print --:--.
5850
5851 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
5852
5853         * progress.c (bar_update): Keep updating a subinterval until it
5854         reaches or exceeds a watermark.  That way the measurement will be
5855         guaranteed to span a configurable minimum of time.  The current
5856         default is 3s in 30 100ms intervals.
5857
5858 2002-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
5859
5860         * progress.c (bar_update): Maintain an array of the time it took
5861         to perform previous 30 network reads.
5862         (create_image): Calculate the download speed and ETA based on the
5863         last 30 reads, not the entire download.
5864         (create_image): Make sure that the ETA is not changed more than
5865         once per second.
5866
5867 2002-04-09  Ian Abbott  <abbotti@mev.co.uk>
5868
5869         * mswindows.c (borland_utime): New function conditionally defined
5870         when `HACK_BCC_UTIME_BUG' is defined.  A reimplementation of
5871         `utime()' as Borland's `utime()' function is broken on Windows 9x
5872         systems.  (Original patch by Chin-yuan Kuo <sr1111111@yahoo.com.tw>.)
5873
5874 2002-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
5875
5876         * ftp.c (ftp_loop): Propagate the result of ftp_retrieve_glob.
5877
5878 2002-03-26  Ian Abbott  <abbotti@mev.co.uk>
5879
5880         * Makefile.in: Updated several dependencies for object files.
5881
5882 2002-03-20  Ian Abbott  <abbotti@mev.co.uk>
5883
5884         * mswindows.c: Include "utils.h".
5885
5886 2002-03-18  Ian Abbott  <abbotti@mev.co.uk>
5887
5888         * host.h: Don't include netdb.h on windows.
5889
5890 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
5891
5892         * recur.c (retrieve_tree): Handle the case when start_url doesn't
5893         parse.
5894
5895 2002-02-19  Andreas Damm  <andreas-sourceforge@radab.org>
5896
5897         * wget.h (DO_REALLOC_FROM_ALLOCA): Multiply with sizeof(type) when
5898         calling xmalloc and memcpy.
5899
5900 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
5901
5902         * host.h: Include Unix-specific includes #ifndef WINDOWS.
5903         Patch originally provided by Christian Lackas.
5904
5905 2002-02-11  Christian Lackas  <delta@lackas.net>
5906
5907         * recur.c: recurive downloading for https fixed.
5908
5909 2002-02-19  Alan Eldridge  <alane@geeksrus.net>
5910
5911         * host.h: Also include <netinet/in.h> and <sys/socket.h>.
5912
5913         * ftp-basic.c: Also include <netinet/in.h>.
5914
5915 2002-02-05  Ian Abbott  <abbotti@mev.co.uk>
5916
5917         * http.c (gethttp): when -c used, mark already fully retrieved
5918         file as successfully retrieved.
5919
5920 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
5921
5922         * url.c (url_parse): Don't treat '?' as query string separator
5923         when parsing FTP URLs.
5924
5925 2002-02-01  Hrvoje Niksic  <hniksic@arsdigita.com>
5926
5927         * html-url.c (tag_handle_meta): Don't crash on <meta
5928         http-equiv=refresh> where content is missing.
5929
5930 2002-01-31  Herold Heiko  <Heiko.Herold@previnet.it>
5931
5932         * ftp-basic.c, host.c: don't include sys/socket.h, arpa/inet.h,
5933         netdb.h on windows.
5934
5935 2002-01-30  Hrvoje Niksic  <hniksic@arsdigita.com>
5936
5937         * retr.c (retrieve_url): Remove redirection cycle detection.  This
5938         is because some sites legitimately redirect the user back to the
5939         same location, e.g. after an authorization check performed by
5940         another page.  MAX_REDIRECTIONS is still used to prevent infinite
5941         redirection loops.
5942
5943 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
5944
5945         * http.c (gethttp): Wrap host name in square brackets if it
5946         contains a colon.
5947
5948 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
5949
5950         * url.c (url_parse): Allow all hex digits, not only decimal ones,
5951         to form an IP address.
5952
5953 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
5954
5955         * url.c (urlchr_table): Make square braces reserved, so we can
5956         parse http://[::1]/.
5957         (url_parse): Handle host in braces.
5958         (url_string): If url->host contains colons, wrap it in braces.
5959
5960 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
5961
5962         * connect.c (resolve_bind_address): New function.
5963         (connect_to_one): Use it.
5964         (bindport): Ditto.
5965
5966         * init.c: Don't resolve bind-address here.
5967
5968         * host.c (wget_sockaddr_set_address): Would bug out with ADDR == NULL.
5969
5970 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
5971
5972         * host.c (lookup_host): Use sizeof(ip4_address) to calculate the
5973         offset.
5974         (address_list_new): Use map_ipv4_to_ip.
5975         (wget_sockaddr_set_address): Convert ADDR to IPv4 before using it
5976         in IPv4 context.
5977
5978 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
5979
5980         * source: Integrated IPv6 support.
5981         Written by Thomas Lussnig <thomas.lussnig@bewegungsmelder.de>.
5982
5983 2002-01-15  Ian Abbott  <abbotti@mev.co.uk>
5984
5985         * init.c (cmd_file): Change `\' to `/' for Windows (yes, really!)
5986         (cmd_directory): New function. Like cmd_file(), but strips
5987         trailing directory separators.
5988         (commands): Change action for "dirprefix" from `cmd_file' to
5989         `cmd_directory'.
5990
5991         * utils.c (make_directory): Allow intermediate `mkdir' calls to
5992         fail, as not all path components that do not exist should be
5993         directory components, especially under Windows.
5994
5995 2002-01-17  Hrvoje Niksic  <hniksic@arsdigita.com>
5996
5997         * netrc.c (parse_netrc): Skip leading whitespace before testing
5998         whether the line is empty.  Empty lines still contain the line
5999         terminator.
6000
6001 2002-01-15  Hrvoje Niksic  <hniksic@arsdigita.com>
6002
6003         * gen_sslfunc.c (ssl_iread): Call select on the file descriptor
6004         only if no data is pending in SSL buffers.
6005         From tony@bluetail.com.
6006
6007 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6008
6009         * headers.c (header_get): Strip trailing whitespace from the
6010         header.
6011
6012 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6013
6014         * url.c (parse_uname): URL-decode *USER and *PASSWD.
6015
6016 2002-01-07  Ian Abbott <abbotti@mev.co.uk>
6017
6018         * url.c (uri_merge_1): Deal with "net path" relative URL (one that
6019         starts with "//").
6020
6021 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6022
6023         * http.c (gethttp): Invalidate SOCK if get_contents encountered an
6024         error.
6025
6026 2001-12-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6027
6028         * version.c: Wget 1.8.1 is released.
6029
6030 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6031
6032         * version.c: Wget 1.8.1-pre3 is released.
6033
6034 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6035
6036         * recur.c (retrieve_tree): Enqueue the canonical representation of
6037         start_url, so that the test against dl_url_file_map works.
6038
6039 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6040
6041         * log.c (logputs): Check for requested verbosity before printing
6042         anything.
6043
6044 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6045
6046         * html-url.c (tag_handle_link): Treat the "shortcut icon" link as
6047         inline.
6048
6049 2001-12-18  Hrvoje Niksic  <hniksic@arsdigita.com>
6050
6051         * recur.c (retrieve_tree): Make a copy of file obtained from
6052         dl_url_file_map because the code calls xfree(file) later.
6053
6054 2001-12-18  Hrvoje Niksic  <hniksic@arsdigita.com>
6055
6056         * recur.c (register_html): Maintain a hash table of HTML files
6057         along with the list.  Disallow duplicates.
6058         (retrieve_tree): Use downloaded_html_set to check whether the file
6059         found in dl_url_file_map is an HTML file, and descend into it if
6060         so.
6061         (convert_all_links): Don't guard against duplicates in
6062         downloaded_html_list, since they are no longer possible.
6063
6064 2001-12-18  Ian Abbott  <abbotti@mev.co.uk>
6065
6066         * recur.c (retrieve_tree): Pass on referring URL when retrieving
6067         recursed URL.
6068
6069 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
6070
6071         * version.c: Wget 1.8.1-pre2 is released.
6072
6073 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
6074
6075         * retr.c (sleep_between_retrievals): Simplify indentation.
6076
6077 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
6078
6079         * gen_sslfunc.c (ssl_init_prng): Use random_number to get a byte
6080         of "randomness" at a time.
6081         (ssl_init_prng): Don't seed the PRNG; random_number will do that.
6082
6083         * retr.c (sleep_between_retrievals): Use it.  Make sure that the
6084         random amount averages in opt.wait.
6085         (sleep_between_retrievals): Don't seed the PRNG; random_number
6086         will do that.
6087
6088         * utils.c (random_number): New function.
6089
6090 2001-12-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6091
6092         * url.c (path_simplify): Move here from utils.c, and make static.
6093
6094 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6095
6096         * init.c (wgetrc_file_name): Print correct message when loading
6097         getenv("WGETRC") fails.
6098
6099 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6100
6101         * recur.c (register_download): Don't abort when one URL references
6102         two different files.
6103
6104 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6105
6106         * http.c (gethttp): Check for conn->scheme, not u->scheme, before
6107         calling ssl_iwrite.
6108
6109 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6110
6111         * version.c: Wget 1.8.1-pre1 is released.
6112
6113 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6114
6115         * res.c (matches): Fix broken URL in the docstring.
6116
6117 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6118
6119         * html-url.c (tag_url_attributes): Mark <embed href=...> as
6120         external.
6121
6122 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6123
6124         * url.c (get_urls_file): Cosmetic changes.
6125
6126 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6127
6128         * html-url.c (append_one_url): Resurrect warning when unable to
6129         resolve a relative link.
6130
6131 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6132
6133         * html-url.c (collect_tags_mapper): Break into several functions.
6134         (tag_url_attributes): Collect <embed href=...>.
6135
6136 2001-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6137
6138         * host.c: New type ipv4_address.  Use it consistently instead of
6139         `unsigned char[4]' and `unsigned char *'.
6140         (pretty_print_address): Accept a `const void *', to require even
6141         less casting.
6142
6143 2001-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6144
6145         * ftp-ls.c (ftp_parse_vms_ls): Fix obvious memory leaks.
6146
6147 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6148
6149         * main.c (main): Initialize progress after fork_to_background, so
6150         that it knows when to use dots.
6151
6152         * mswindows.c (ws_hangup): Call log_request_redirect_output.
6153
6154         * utils.c (fork_to_background): Print the PID of the child
6155         process.
6156
6157         * log.c (log_request_redirect_output): Set a flag that output
6158         redirection has been requested.  Doing anything else in a signal
6159         handler is unsafe.
6160         (check_redirect_output): New function: check whether redirection
6161         has been requested and, if so, call redirect_output().
6162         (logputs): Call check_redirect_output.
6163         (logprintf): Ditto.
6164         (debug_logprintf): Ditto.
6165         (redirect_output): Print clearer messages.
6166
6167         * main.c (redirect_output_signal): Don't call
6168         redirect_output_signal directly.  Instead, call
6169         log_request_redirect_output.
6170
6171         * utils.c (memfatal): Ditto.
6172
6173         * progress.c (display_image): Use it.
6174
6175         * log.c (log_set_save_context): New function: allow the caller to
6176         turn off saving log context lines.
6177
6178 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6179
6180         * host.c (address_list_set_faulty): Uncomment a sanity check.
6181
6182 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6183
6184         * utils.c (long_to_string): Return a pointer after where the
6185         number ends.
6186         (long_to_string): Rename to number_to_string.
6187
6188 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6189
6190         * utils.c (path_simplify): Correctly handle the unlikely case that
6191         b starts out as path + 1.
6192
6193 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6194
6195         * utils.c (path_simplify): Rewrite, with better comments, and
6196         without the use of strcpy to move overlapping blocks.
6197
6198 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6199
6200         * init.c (cmd_spec_progress): Resurrect.  Check whether VAL is a
6201         valid progress type before setting it.
6202
6203 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6204
6205         * main.c (main): Remove stray debugging message.
6206
6207 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6208
6209         * progress.c (create_image): Fix ETA padding when hours are prined.
6210
6211 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6212
6213         * version.c: Wget 1.8 is released.
6214
6215 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6216
6217         * url.c (reencode_string): Declare static.
6218
6219         * res.c (registered_specs): Declare static.
6220
6221         * progress.c (current_impl_locked): Declare static.
6222
6223         * log.c (flush_log_p): Declare static.
6224         (needs_flushing): Ditto.
6225
6226         * http.c (digest_authentication_encode): Declare static.
6227
6228         * html-url.c (init_interesting): Declare static.
6229
6230         * host.c (host_name_addresses_map): Declare static.
6231
6232         * cookies.c (find_matching_chains): Declare static.
6233
6234         * ftp-ls.c (ftp_parse_vms_ls): Warn about the memory leak
6235         indicated by lint.
6236
6237         * utils.c (path_simplify): Remove unused variable STUB_CHAR.
6238
6239         * host.c (address_list_set_faulty): Document that INDEX is
6240         currently unused.
6241
6242         * url.c (rewrite_shorthand_url): Remove unused variable PATH.
6243
6244 2001-12-08  Hrvoje Niksic  <hniksic@arsdigita.com>
6245
6246         * version.c: Wget 1.8-pre2 is released.
6247
6248 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6249
6250         * progress.c (progress_handle_sigwinch): Set up the signal again.
6251
6252         * utils.c: Include <sys/termios.h>, where Solaris defines
6253         TIOCGWINSZ.
6254
6255         * progress.c (bar_create): Don't use the last column on the screen.
6256         (create_image): Pad ETA to constant size.  Pad SIZE to nine digits
6257         only until it exceeded them.
6258
6259 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6260
6261         * version.c: Wget 1.8-pre1 is released.
6262
6263 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6264
6265         * progress.c (progress_create): Make sure that, when the output is
6266         redirected, the progress implementation gets changed to the
6267         fallback one.
6268         (bar_set_params): Set current_impl_locked to 1 when "force" is
6269         specified.
6270         (progress_create): Don't change the progress implementation if
6271         current_impl_locked is non-zero.
6272
6273         * main.c (redirect_output_signal): Call
6274         progress_schedule_redirect.
6275
6276         * progress.c (progress_schedule_redirect): New function.
6277
6278 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6279
6280         * log.c (logvprintf): Restructure to allow being called multiple
6281         times.
6282         (logprintf): Call logvprintf in a loop.
6283         (debug_logprintf): Ditto.
6284
6285 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6286
6287         * gen_sslfunc.c (ssl_init_prng): Allow the user to disable EGD by
6288         setting egd_file it to empty string.
6289
6290         * main.c (main): Change the option name from --sslegdsock to
6291         --egd-file.
6292
6293 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6294
6295         * gen_sslfunc.c (ssl_init_prng): Make the printed message
6296         translatable.
6297
6298 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6299
6300         * url.c (scheme_disable): New function.
6301
6302         * main.c (main): Call ssl_init_prng from here rather than from
6303         init_ssl, so that it has a chance to disable support for https
6304         before a URL has been resolved.
6305
6306         * gen_sslfunc.c (ssl_init_prng): Seed with rand() if all else
6307         failed.
6308         (ssl_init_prng): Disable support for https if seeding the PRNG
6309         fails.
6310
6311 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6312
6313         * utils.c (read_whole_line): Handle lines beginning with \0.
6314
6315 2001-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
6316
6317         * recur.c (convert_all_links): Guard against duplicates in
6318         downloaded_html_files.
6319         (register_download): Don't invalidate similar-looking URLs.
6320         (match_except_index): New function.
6321
6322 2001-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
6323
6324         * utils.c (path_simplify): Document with test cases.
6325
6326 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
6327
6328         * gen_sslfunc.c: Ditto.
6329
6330         * rbuf.c: Include <string.h>.
6331
6332 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
6333
6334         * recur.c (retrieve_tree): Check whether the URL was already
6335         downloaded before downloading it again.
6336         (descend_child_p): Renamed to download_child_p.
6337         (register_download): When one URL is downloaded to a file already
6338         "owned" by another URL, delete all references that map any URL to
6339         that file.
6340         (register_delete_file): New function.
6341         (retrieve_tree): Use it after deleting a file.
6342
6343         * url.c (url_parse): Re-canonicalize the URL also if the path is
6344         empty, so that e.g. "http://www.server.com" ->
6345         "http://www.server.com/".
6346         (lowercase_str): Use ISUPPER instead of !ISLOWER.
6347
6348         * retr.c (retrieve_url): Use the canonical URL form when calling
6349         register_download().
6350
6351 2001-12-04  Ian Abbott <abbotti@mev.co.uk>
6352
6353         * snprintf.c (dopr): Use `unsigned int' as the second argument to
6354         va_arg when casting to `unsigned short' is intended.
6355
6356 2001-12-04  Herold Heiko  <Heiko.Herold@previnet.it>
6357
6358         * gen_sslfunc.c: on windows provide ssl crypto random 
6359           initialization through RAND_screen(); could possibly
6360           be not enough for strong ssl communication (see the 
6361           relevant manual page from the openssl package).
6362
6363 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
6364
6365         * url.c (local_quote_string): Reenable quoting of question marks,
6366         but only when `--html-extension' is used.
6367
6368 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
6369
6370         * version.c: Wget 1.8-beta3 is released.
6371
6372 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
6373
6374         * snprintf.c (dopr): Cast the result of va_arg to short int and
6375         short unsigned int where these types are expected to be used.
6376
6377 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
6378
6379         * snprintf.c (dopr): Replace `short int' and `unsigned short int'
6380         with `int' when using it as the second argument to `va_arg'.
6381
6382 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
6383
6384         * host.c (address_list_new_one): New function.
6385         (lookup_host): Use it.
6386
6387 2001-12-03  Andre Majorel  <amajorel@teaser.fr>
6388
6389         * host.c (lookup_host): Don't initialize TMPSTORE directly because
6390         it's not legal C.
6391
6392 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
6393
6394         * ftp-basic.c (ftp_port): Don't return HOSTERR if we fail getting
6395         the socket data.
6396
6397         * ftp.c: Ditto.
6398
6399         * http.c: No need to declare h_errno.
6400
6401         * host.c: Declare h_errno.
6402
6403 2001-12-02  Hrvoje Niksic  <hniksic@arsdigita.com>
6404
6405         * utils.c (file_merge): If BASE doesn't contain a slash, just
6406         return a copy of FILE.
6407
6408 2001-12-02  Hrvoje Niksic  <hniksic@arsdigita.com>
6409
6410         * version.c: Wget 1.8-beta2 is released.
6411
6412 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6413
6414         * ftp.c (getftp): When PWD fails, assume "/".
6415
6416         * ftp-basic.c (ftp_syst): Fix indentation.
6417
6418 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6419
6420         * url.c (get_urls_file): If opt.base_href is specified, merge each
6421         URL with the base.
6422
6423 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6424
6425         * main.c (print_help): Don't document the removed `-nh'.
6426
6427 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6428
6429         * url.c (url_full_path): Document better.
6430
6431         * http.c (gethttp): Use the full path when creating digest
6432         authorization.
6433
6434 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6435
6436         * cookies.c (path_matches): Return 0 if PREFIX doesn't begin with
6437         '/'.
6438
6439 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6440
6441         * cookies.c (path_matches): FULL_PATH doesn't begin with '/', but
6442         PREFIX does.
6443
6444 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6445
6446         * cookies.c (check_domain_match): Reimplement to match Netscape's
6447         "preliminary specification" for cookies.
6448
6449 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6450
6451         * url.c (replace_attr_refresh_hack): New function.
6452         (convert_links): Call replace_attr_refresh_hack for Refresh
6453         links.  It will add the "TMOUT; URL=" junk before the link.
6454
6455         * html-url.c (collect_tags_mapper): Set ID to the ID of the
6456         "content" attribute, not "http-equiv".
6457         (collect_tags_mapper): Don't use OFFSET to hack the raw_* values;
6458         instead, store the information that this entry belongs to a
6459         "refresh" link.
6460
6461 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6462
6463         * version.c: Wget 1.8-beta1 is released.
6464
6465 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6466
6467         * recur.c (retrieve_tree): Allow -p retrievals to exceed maximum
6468         depth by more than one.
6469
6470 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
6471
6472         * retr.c (retrieve_url): Don't allow more than 20 redirections.
6473
6474 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
6475
6476         * recur.c (retrieve_tree): Skip the non-inline entries when
6477         enqueuing the children of a leaf HTML node in -p mode.
6478         (descend_url_p): Ignore opt.no_parent when in -p mode and UPOS is
6479         "inline".
6480
6481         * html-url.c (get_urls_html): Don't accept dash_p_leaf_HTML.
6482         (collect_tags_mapper): When an entry is "inline", mark it as such.
6483
6484         * recur.c (descend_url_p): Fix test when checking for
6485         acceptance/rejection rules.
6486
6487 2001-10-31 Daniel BODEA <dali@dali-designs.com>
6488
6489         * netrc.c (search_netrc): When slack_default is 0, still look for
6490         an account with matching password, just not the "default account".
6491         HTTP Authorization using .netrc should now work as expected.
6492
6493 2001-11-30  T. Bharath  <TBharath@responsenetworks.com>
6494
6495         * http.c (persistent_available_p): Call SHUTDOWN_SSL if
6496         test_socket_open fails.
6497
6498 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
6499
6500         * progress.c (display_image): Just print one CR to reset the
6501         cursor position.
6502
6503 2001-11-30  Christian Fraenkel  <c.fraenkel@gmx.net>
6504
6505         * init.c: New command `ssl_egd_sock'.
6506
6507         * main.c (main): New option `--sslegdsock'.
6508
6509         * gen_sslfunc.c (ssl_init_prng): Seed the RNG using EGD.
6510
6511 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6512
6513         * cmpt.c (memmove): Include a simple memmove implementation.
6514
6515 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6516
6517         * headers: Guard against header files being included twice.
6518
6519 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6520
6521         * gen-md5.c: Use unsigned char * as the buffer argument to
6522         gen_md5_update.
6523
6524 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6525
6526         * connect.h: Declare select_fd.
6527
6528 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6529
6530         * recur.c (descend_url_p): When resolving no_parent, compare with
6531         start_url, not parent url.  Otherwise link from /a/b/ to /a/c/
6532         wouldn't be followed, although the download started from /a/.
6533
6534 2001-01-23  Herold Heiko  <Heiko.Herold@previnet.it>
6535
6536         * config.h.ms, mswindows.h: defined HAVE_ISATTY, use _isatty for
6537         MS VC; somebody with Borland compiler please check and provide
6538         patch if possible;
6539
6540         * cmpt.c: provided a usleep emulation.
6541
6542 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6543
6544         * host.c (address_list_new): Initialize al->faulty.
6545
6546 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6547
6548         * http.c (http_process_range): Accept the broken output of
6549         "JavaWebServer/1.1.1".
6550
6551 2001-11-28  Hrvoje Niksic  <hniksic@arsdigita.com>
6552
6553         * progress.c (dot_set_params): If PARAMS is unspecified, use
6554         dot_style, if available.
6555
6556         * init.c: Ditto.
6557
6558         * main.c (main): Resurect --dot-style.
6559
6560         * progress.c (dot_finish): Print the quantity if we're left at the
6561         beginning of a row.
6562
6563 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6564
6565         * cmpt.c (random): Removed.
6566
6567         * retr.c (sleep_between_retrievals): Use the more portable rand()
6568         instead of random().
6569
6570 2001-11-27  Ian Abbott <abbotti@mev.co.uk>
6571
6572         * retr.c (retrieve_from_file): Initialize `new_file' to NULL to
6573         prevent seg fault.
6574
6575 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6576
6577         * connect.c (connect_to_many): Use address_list_set_faulty to
6578         prevent the faulty address from being reused.
6579
6580         * host.c (address_list_set_faulty): New function.
6581         (address_list_get_bounds): New function, instead of
6582         address_list_count.
6583
6584 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6585
6586         * url.c (convert_links): Don't translate %d-%d.
6587
6588         * main.c (print_help): Remove stray HAVE_RANDOM code.
6589
6590 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6591
6592         * ftp.c (getftp): Improve output after sending PASV.  Don't
6593         attempt to "look up" the IP address we already know; call
6594         connect_to_one directly.
6595
6596 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6597
6598         * progress.c: Change the default progress implementation to "bar".
6599
6600 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6601
6602         * progress.c (bar_create): Print two newlines.
6603
6604 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6605
6606         * cmpt.c (random): New function, a simple-minded replacement for
6607         random() on systems that don't have it.
6608
6609 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6610
6611         * config.h.in: Put a HAVE_USLEEP stub.
6612
6613         * cmpt.c (usleep): Replacement implementation of usleep using
6614         select.
6615
6616         * init.c: New option init_rate.
6617
6618         * main.c (main): New option --limit-rate.
6619
6620         * retr.c (limit_bandwidth): New function.
6621         (get_contents): Call it to limit the bandwidth used when
6622         downloading.
6623
6624         * progress.c (dot_update): Would print the wrong download speed on
6625         rows other than the first one when the download was continued.
6626         (dot_finish): Ditto.
6627
6628 2001-11-26  Ian Abbott <abbotti@mev.co.uk>
6629
6630         * http.c (gethttp): fix undeclared variable 'err' when compiled
6631         with HAVE_SSL.
6632
6633 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6634
6635         * progress.c: Don't allocate new timers; use the timing data
6636         propagated from the caller.
6637
6638         * retr.c (get_contents): Allocate and use a timer.
6639
6640 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6641
6642         * http.c (last_host_ip): Made into an address_list.
6643         (invalidate_persistent): Release pc_last_host_ip.
6644         (register_persistent): Use lookup_host.
6645         (persistent_available_p): Check for equality of hosts using
6646         address_list_match_all.  Call address_list_release.
6647         (http_cleanup): New function.
6648
6649         * ftp.c (getftp): Use lookup_host and connect_to_many.
6650
6651         * http.c (gethttp): Use lookup_host and connect_to_many.
6652
6653         * connect.c (make_connection): Removed.
6654         (connect_to_one): New function.
6655         (connect_to_many): Ditto.
6656         (set_connection_host_name): Ditto.
6657
6658         * host.c (lookup_host): New function; new return type.
6659         (address_list_new): New function.
6660         (address_list_count): Ditto.
6661         (address_list_copy_one): Ditto.
6662         (address_list_delete): Ditto.
6663         (address_list_release): Ditto.
6664         (pretty_print_address): Ditto.
6665
6666 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6667
6668         * recur.c (retrieve_tree): In case of followed redirection,
6669         blacklist the pre-redirection URL.
6670
6671 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6672
6673         * recur.c (descend_redirect_p): New function.
6674         (retrieve_tree): Make sure redirections are not blindly followed.
6675
6676 2001-11-04  Alan Eldridge  <alane@geeksrus.net>
6677
6678         * config.h.in: added HAVE_RANDOM.
6679
6680         * options.h: added random_wait to struct options.
6681
6682         * main.c (print_help [HAVE_RANDOM], main): added arg parsing, help
6683         for --random-wait.
6684
6685         * retr.c (sleep_between_retrievals) [HAVE_RANDOM]: added
6686         implementation of random wait times.
6687
6688         * init.c (commands): added "randomwait" keyword.
6689
6690 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6691
6692         * recur.c (descend_url_p): Be more conservative with blacklisting
6693         URLs.
6694         (convert_all_links): Print how many files have been converted, and
6695         how long it took.
6696
6697         * progress.c (create_image): Place the number of downloaded bytes
6698         right after the progress bar.
6699
6700         * utils.c (suffix): Return a pointer into the string.
6701
6702 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6703
6704         * url.c (convert_links): Handle CO_NULLIFY_BASE.
6705
6706         * recur.c (retrieve_tree): Ignore download-ignorable children.
6707         (convert_all_links): Specify CO_NULLIFY_BASE when link_base_p.
6708
6709         * html-url.c (handle_link): Return the newly created urlpos.
6710         (collect_tags_mapper): When dealing with BASE, store the base
6711         reference and mark it as download-ignorable.
6712
6713 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6714
6715         * url.c (convert_links): Attempt to quote '?' as "%3F" when
6716         linking to local files.  Given up on the attempt, as it breaks
6717         local browsing.
6718
6719 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6720
6721         * main.c (private_initialize): Removed.
6722         (main): Don't call private_initialize.
6723
6724         * http.c: Call lookup_host.
6725
6726         * host.c (host_init): Removed.
6727         (add_host_to_cache): Initialize host_name_address_map here, on
6728         demand.
6729         (ngethostbyname): Commented out.
6730
6731         * connect.c (make_connection): Remove dead code; use lookup_host.
6732
6733         * host.c (store_hostaddress): Renamed to lookup_host and reversed
6734         the args.
6735         Removed host_address_name_map and host_slave_master_map.
6736
6737 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6738
6739         * progress.c (dot_create): Align the "[ skipping ... ]" string
6740         with the dots.
6741
6742         * retr.c (rate): Split into two functions: calc_rate and
6743         retr_rate.
6744
6745         * progress.c (create_image): Draw a dummy progress bar even when
6746         total size is unknown.
6747         (display_image): Place the text cursor at the end of the "image".
6748
6749 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6750
6751         * url.c (reencode_string): Use unsigned char, not char --
6752         otherwise the hex digits come out wrong for 8-bit chars such as
6753         nbsp.
6754         (lowercase_str): New function.
6755         (url_parse): Canonicalize u->url if needed.
6756         (get_urls_file): Parse each URL, and return only the valid ones.
6757         (free_urlpos): Call url_free.
6758         (mkstruct): Add :port if the port is non-standard.
6759         (mkstruct): Append the query string to the file name, if any.
6760         (urlpath_length): Use strpbrk_or_eos.
6761         (uri_merge_1): Handle the cases where LINK is an empty string,
6762         where LINK consists only of query, and where LINK consists only of
6763         fragment.
6764         (convert_links): Count and report both kinds of conversion.
6765         (downloaded_file): Use a hash table, not a list.
6766         (downloaded_files_free): Free the hash table.
6767
6768         * retr.c (retrieve_from_file): Ditto.
6769
6770         * main.c (main): Call either retrieve_url or retrieve_tree
6771         for each URL, not both.
6772
6773         * retr.c (register_all_redirections): New function.
6774         (register_redirections_mapper): Ditto.
6775         (retrieve_url): Register the redirections.
6776         (retrieve_url): Make the string "Error parsing proxy ..." 
6777         translatable.
6778
6779         * res.c (add_path): Strip leading slash from robots.txt paths so
6780         that the path representations are "compatible".
6781         (free_specs): Free each individual path, too.
6782         (res_cleanup): New function.
6783         (cleanup_hash_table_mapper): Ditto.
6784
6785         * recur.c (url_queue_new): New function.
6786         (url_queue_delete): Ditto.
6787         (url_enqueue): Ditto.
6788         (url_dequeue): Ditto.
6789         (retrieve_tree): New function, replacement for recursive_retrieve.
6790         (descend_url_p): New function.
6791         (register_redirection): New function.
6792
6793         * progress.c (create_image): Cosmetic changes.
6794
6795         * init.c (cleanup): Do all those complex cleanups only if
6796         DEBUG_MALLOC is defined.
6797
6798         * main.c: Removed --simple-check and the corresponding
6799         simple_host_check in init.c.
6800
6801         * html-url.c (handle_link): Parse the URL here, and propagate the
6802         parsed URL to the caller, who would otherwise have to parse it
6803         again.
6804
6805         * host.c (xstrdup_lower): Moved to utils.c.
6806         (realhost): Removed.
6807         (same_host): Ditto.
6808
6809 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6810
6811         * utils.c (path_simplify): Preserver the (non-)existence of
6812         leading slash.  Return non-zero if changes were made.
6813
6814 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6815
6816         * progress.c (bar_update): Don't modify bp->total_length if it is
6817         zero.
6818
6819 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6820
6821         * retr.c (retrieve_url): When the redirection URL doesn't parse,
6822         print the correct error message rather than "UNKNOWN".
6823
6824 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6825
6826         * progress.c (bar_finish): If the timer didn't record any time
6827         since the download beginning, fake 1ms.
6828
6829 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6830
6831         * recur.c (recursive_retrieve): Fix typo.
6832
6833 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
6834
6835         * progress.c (create_image): Don't translate "%ld ".
6836
6837 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
6838
6839         * progress.c (bar_set_params): Allow the user to force the use of
6840         the bar.
6841
6842 2001-11-23  Lemble Gregory  <gregory.lemble@st.com>
6843
6844         * gen_sslfunc.c (ssl_init_prng): New function; seed the SSL RNG.
6845
6846 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
6847
6848         * progress.c: Renamed dp_* functions to dot_* for greater clarity
6849         and consistency with bar_*.
6850         (print_download_speed): Get rid of the unneeded '@' character.
6851         (create_image): Fix download rate geometry.
6852
6853         * progress.c (print_elapsed): Remove spurious space.
6854         (print_elapsed): Renamed to print_download_speed, since that's
6855         what it does.
6856
6857 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
6858
6859         * progress.c (bar_update): If the downloaded amount becomes larger
6860         than the expected amount, adjust the expected amount accordingly.
6861
6862 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
6863
6864         * utils.c (determine_screen_width): New function.
6865
6866         * main.c (main): New option `--progress=TYPE'.
6867         (main): Implement compatibility with the old option `--dot-style'.
6868
6869         * init.c: Removed cmd_spec_dotstyle -- that logic is now in
6870         dp_set_params.
6871         (cmd_spec_progress): New function.
6872
6873         * retr.c (get_contents): Use the progress_* functions instead of
6874         the old show_progress().
6875         (show_progress): Removed.
6876         (rate): Print "xxxx.xx K/s" instead of "KB/s".  Ditto for MB/s,
6877         etc.
6878
6879         * progress.c (set_progress_implementation): New function.
6880         (valid_progress_implementation_p): Ditto.
6881         (progress_create): Ditto.
6882         (progress_update): Ditto.
6883         (progress_finish): Ditto.
6884         (dp_create): Ditto.
6885         (dp_update): Ditto.
6886         (dp_finish): Ditto.
6887         (dp_set_params): Ditto.
6888         (print_elapsed): Ditto.
6889
6890 2001-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
6891
6892         * retr.c (show_progress): Use it.
6893
6894         * log.c (log_set_flush): New function.
6895
6896 2001-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
6897
6898         * utils.c (path_simplify): Don't remove trailing slashes.
6899
6900         * ftp.c (ftp_get_listing): Use it.
6901
6902         * utils.c (file_merge): New function.
6903
6904         * url.c (opt_url): Removed.
6905
6906         * recur.c (recursive_retrieve): Inline "opt_url" logic.
6907
6908         * main.c (main): Use xfree(), not free().
6909
6910         * url.c (rewrite_url_maybe): Renamed to rewrite_shorthand_url.
6911
6912         * ftp.c (ccon): Move `ccon' typedef here, since it's only used
6913         internally.
6914
6915         * config.h.in: Include a stub for HAVE_STRPBRK.
6916
6917         * cmpt.c (strpbrk): Include a replacement for systems without
6918         strpbrk().
6919
6920         * ftp.c: Use url_set_dir and url_set_file when modifying the URL.
6921
6922         * url.c (url_set_dir): New function.
6923         (url_set_file): Ditto.
6924
6925         * ftp-basic.c (ftp_process_type): Process FTP type here; the URL
6926         parser makes the URL "params" available, so we can do that in this
6927         function.
6928
6929         * retr.c: Ditto.
6930
6931         * ftp.c: Ditto; pass the local file information in `ccon'.
6932
6933         * http.c: Get rid of the ugly kludge that had URL being replaced
6934         with the proxy URL when proxy retrieval was requested.  Use a
6935         separate parameter to http_loop and gethttp for the proxy URL.
6936
6937         * http.c: Changed to reflect the fact that local file, proxy, and
6938         referer information are no longer stored in struct url.  The local
6939         file information is passed in `struct hstat' now.
6940
6941         * url.c: Reworked URL parsing to be more regular.  Reencode the
6942         URL using reencode_string.
6943         Removed non-URL-related information from struct url.  This
6944         includes fields `proxy', `local', and `referer'.
6945
6946 2001-11-22  Jochen Hein  <jochen@jochen.org>
6947
6948         * main.c (main): Split the copyright notice for easier
6949         translation.
6950
6951 2001-08-21  Dave Turner <dct25@hermes.cam.ac.uk>
6952
6953         * ftp-basic.c (ftp_size): New function to send non-standard SIZE
6954           command to server to request file size.
6955         * ftp.h (ftp_size): Export it.
6956         * ftp.c (getftp): Use new ftp_size function if restoring
6957           transfer of a file with unknown size.
6958
6959 2001-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
6960
6961         * url.c (parseurl): Don't depend on the now-obsolete TYPE.
6962
6963 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6964
6965         * url.c (getproxy): Handle URL shorthands.
6966
6967 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6968
6969         * main.c: Remove --wait / --waitretry backwards compatibility
6970         code.
6971         
6972 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6973
6974         * main.c (main): Use it.
6975
6976         * url.c (rewrite_url_maybe): New function.
6977
6978 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6979
6980         * url.c: Clean up handling of URL schemes.
6981
6982 2001-05-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6983
6984         * url.c: Get rid of `protostrings'.
6985         (skip_proto): Don't use protostrings.
6986         (has_proto): Ditto.
6987
6988 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
6989
6990         * Makefile.in: Conditionally compile getopt.o.
6991
6992 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
6993
6994         * md5.h: Renamed to gnu-md5.h.
6995
6996         * md5.c: Renamed to gnu-md5.c.
6997
6998         * http.c: Ditto.
6999
7000         * ftp-opie.c: Use the new macros.
7001
7002         * sysdep.h: Define md5-related macros.
7003
7004         * config.h.in: Define HAVE_SOLARIS_MD5 or HAVE_BUILTIN_MD5
7005         depending on which md5 implementation is used.
7006
7007 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7008
7009         * res.c (res_register_specs): Initialize OLD and HP_OLD to appease
7010         the compiler.
7011
7012 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7013
7014         * http.c (gethttp): Print the whole response line when printing
7015         headers is requested.
7016
7017 2001-05-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7018
7019         * res.c: New file.  Implement all RES-related code here.
7020
7021 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7022
7023         * version.c: Wget 1.7.1 is released.
7024
7025 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
7026
7027         * headers.c (header_extract_number): Ignore trailing whitespace.
7028
7029 2001-08-24  Ian Abbott  <abbotti@mev.co.uk>
7030
7031         * html-url.c (collect_tags_mapper): Fix bug converting links
7032         with -k option for tags with multiple link attributes by
7033         handling links in the order they appear.
7034
7035 2001-08-15  Ian Abbott  <abbotti@mev.co.uk>
7036
7037         * ftp.c (ftp_loop_internal): Avoid a potential buffer overflow in
7038           the call to the 'rate' function by moving it past the error
7039           checking for the 'getftp' function return value.
7040
7041 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
7042
7043         * html-parse.c (advance_declaration): Use 0x22 instead of '"' or
7044         '\"'.  Different compilers' assert macros are broken in different
7045         ways.
7046
7047 2001-09-29  Christian Fraenkel  <c.fraenkel@gmx.net>
7048
7049         * http.c (gethttp): print debug output for errors occuring during
7050         the ssl handshake.
7051
7052 2001-11-16  Chris Seawood  <cls@seawood.org>
7053
7054         * init.c: Ditto.
7055
7056         * host.c: Ditto.
7057
7058         * connect.c: Ditto.
7059
7060         * sysdep.h: Support compilation under BEOS.
7061
7062 2001-06-08  Edward J. Sabol  <sabol@alderaan.gsfc.nasa.gov>
7063
7064         * url.c (url_equal): Fix a memory leak when parseurl returns an
7065         error on the second URL. Also, since url_equal is not used at the
7066         moment, do not compile it.
7067
7068         * url.h: Ditto for the prototype of url_equal.
7069
7070 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
7071
7072         * html-parse.c (map_html_tags): Support XML-style empty tags.
7073
7074 2001-06-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7075
7076         * wget.h (DO_REALLOC_FROM_ALLOCA): Check for do_realloc_newsize in
7077         loop condition because we're no longer setting SIZEVAR here.
7078
7079 2001-06-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7080
7081         * wget.h (DO_REALLOC_FROM_ALLOCA): Set SIZEVAR after the memcpy()
7082         call because it needs the old value.
7083
7084 2001-06-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7085
7086         * cookies.c (ATTR_NAME_CHAR): Allow almost any character to be in
7087         an attribute name.
7088
7089 2001-06-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7090
7091         * url.c (url_filename): Make sure that slashes that sneak in to
7092         u->file via query string get protected.
7093         (file_name_protect_query_string): New function.
7094
7095 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7096
7097         * recur.c (recursive_retrieve): Also check undesirable_urls with
7098         canonicalized URL.
7099
7100 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7101
7102         * http.c (gethttp): Search `.netrc' with real host, not the proxy
7103         one.
7104
7105 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7106
7107         * sysdep.h (MAP_FAILED): Provide MAP_FAILED for systems that don't
7108         define it.
7109
7110 2001-06-09  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7111
7112         * ftp.h: Provide correct prototype for ftp_parse_ls().
7113
7114 2001-06-04  Hrvoje Niksic  <hniksic@arsdigita.com>
7115
7116         * version.c: Wget 1.7 is released.
7117
7118 2001-06-03  Karl Eichwalder  <ke@suse.de>
7119
7120         * ftp-ls.c (ftp_parse_ls): Fix typo.
7121
7122 2001-05-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7123
7124         * all: Update copyright information.
7125
7126 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7127
7128         * http.c (gethttp): Indicate that the continued download failed
7129         for *this* file.
7130
7131 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7132
7133         * version.c: Wget 1.7-pre1 is released.
7134
7135 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7136
7137         * version.c: Updated version to 1.7-pre1.
7138
7139 2001-05-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7140
7141         * gen_sslfunc.c: Don't include <sys/time.h> directly.
7142
7143 2001-05-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7144
7145         * http.c (gethttp): Use real URL data for cookies, not the proxy
7146         stuff.
7147
7148 2001-05-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7149
7150         * main.c (print_help): Document `--no-http-keep-alive'.
7151
7152         * utils.c (numdigit): Handle negative numbers *correctly*.
7153
7154         * hash.c (make_nocase_string_hash_table): Use term "nocase" rather
7155         than the confusing "unsigned".
7156
7157         * utils.c (string_set_contains): Renamed from string_set_exists.
7158
7159         * hash.c (hash_table_contains): Renamed from hash_table_exists.
7160
7161         * cookies.c: Move case-insensitive hash tables to hash.c.
7162
7163 2001-05-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7164
7165         * http.c (gethttp): Before concluding that the file is already
7166         fully retrieved, make sure that the file existed and `Range' was
7167         actually requested.
7168
7169 2001-05-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7170
7171         * cookies.c (eliminate_dups): New function.
7172         (build_cookies_request): Use it.
7173         (build_cookies_request): Set chain_store_size after reallocating
7174         all_chains.
7175         (check_domain_match): Annotated for easier future debugging.
7176         (store_cookie): In the debug message, print whether the cookie is
7177         permanent.
7178
7179 2001-05-08  Hrvoje Niksic  <hniksic@arsdigita.com>
7180
7181         * http.c (http_loop): Reset no_truncate before deciding whether to
7182         set it.
7183         (gethttp): Further clarify "-c conflicts with existing file" error
7184         message, based on input from Herold Heiko.
7185
7186 2001-05-07  Hrvoje Niksic  <hniksic@arsdigita.com>
7187
7188         * http.c (http_loop): If restval is set, set no_truncate to 1
7189         unconditionally.
7190
7191 2001-05-02  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7192
7193         * ftp-ls.c (ftp_parse_winnt_ls): Assure months are being correctly
7194         converted. Pointed out by <Stefan.Weil@de.heidelberg.com>.
7195         (ftp_parse_vms_ls): Ditto.
7196
7197 2001-04-30  Hrvoje Niksic  <hniksic@arsdigita.com>
7198
7199         * init.c (cmd_address): Zero SIN before using it; apparently
7200         needed on *BSD.
7201
7202 2001-04-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7203
7204         * ftp.c (ftp_loop_internal): Don't set NO_TRUNCATE if the file is
7205         empty.
7206
7207 2001-04-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7208
7209         * main.c (main): Make `--cookies' respect its argument.
7210
7211 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
7212
7213         * main.c (main): Removed undocumented option `--email-address'.
7214
7215         * netrc.c: Use the latest read_whole_line.
7216
7217         * init.c (defaults): Set opt.ftp_pass to "-wget@".
7218
7219         * mswindows.c (pwd_cuserid): Ditto.
7220
7221         * utils.c (pwd_cuserid): Removed.
7222
7223         * host.c (ftp_getaddress): Removed.
7224
7225 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
7226
7227         (http_loop): Allocate space for filename_plus_orig_suffix with
7228         alloca; this is more efficient and removes the need to free it
7229         before each and every return.
7230
7231 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
7232
7233         * http.c (gethttp): Return RETRUNNEEDED when the retrieval is
7234         unneeded because the file is already there and fully downloaded,
7235         and -c is specified.
7236         (http_loop): Handle RETRUNNEEDED.
7237
7238         * wget.h (uerr_t): New value RETRUNNEEDED.
7239
7240         * http.c (http_loop): Set no_truncate for files that both exist
7241         and are non-empty.
7242         (gethttp): Consider the download finished when restval >= contlen,
7243         not only when restval==contlen.
7244         (gethttp): Handle redirection before giving up due to -c.
7245         (gethttp): Clarify error message which explains that -c will not
7246         truncate the file.
7247         (gethttp): When returning CONTNOTSUPPORTED, don't forget to free
7248         the stuff that needs freeing and release the socket.
7249
7250 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7251
7252         * main.c (print_help): Wget booleans accept "off", not "no".
7253
7254 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7255
7256         * http.c (http_loop): If allow_cache is zero, always disable
7257         caching, not only when retrieving through proxy.
7258
7259         * init.c: Ditto.
7260
7261         * options.h (struct options): Rename proxy_cache to allow_cache.
7262
7263 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7264
7265         * http.c (mktime_from_utc): Improve documentation.
7266         (http_atotm): Put format strings into a separate array.
7267
7268 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7269
7270         * safe-ctype.h: Instead of throwing #error when isalpha is
7271         defined, redefine it to something that will throw a compile-time
7272         error if actually *used*.  Do the same for the rest of the
7273         standard C macros.
7274
7275 2001-04-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7276
7277         * url.c (getproxy): Ignore empty proxy vars.
7278
7279 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7280
7281         * http.c (http_loop): Would load cookies every time.
7282
7283         * cookies.c (load_cookies): Handle cookies whose values contain
7284         embedded spaces.
7285
7286 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7287
7288         * utils.c: Define each DIGITS_* in one line.
7289
7290 2001-04-25  Roger L. Beeman  <beeman@cisco.com>
7291
7292         * http.c (http_atotm): Initialize t.tm_isdst to 0.
7293         (mktime_from_utc): Prevent mktime() from having discontinuities at
7294         DST transition points.
7295
7296 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7297
7298         * html-url.c (get_urls_html): Fix documentation.
7299
7300 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7301
7302         * url.c (UNSAFE_CHAR): Reimplement using a static table.
7303         (url_init): Removed.
7304         (init_unsafe_char_table): Removed.
7305
7306 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7307
7308         * snprintf.c (dopr): Replace ISDIGIT with '0' <= ch && ch <= '9'.
7309
7310 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7311
7312         * utils.c: Document timer functions.
7313
7314         * retr.c (rate): Use it.
7315         (rate): Print in GB/s if transfer rate exceeds 1 GB/s.
7316
7317         * utils.c (wtimer_granularity): New function.
7318
7319 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7320
7321         * retr.c (show_progress): Ditto.
7322
7323         * ftp.c (getftp): Ditto.
7324
7325         * http.c (gethttp): Use new timer functions.
7326
7327         * utils.c (wtimer_allocate): New function.
7328         (wtimer_new): Ditto.
7329         (wtimer_delete): Ditto.
7330         (wtimer_reset): Ditto.
7331         (wtimer_elapsed): Ditto.
7332
7333 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7334
7335         * utils.c (long_to_string): New, faster version.  Favors smaller
7336         numbers; much of the calculation is now done at compile-time.
7337
7338 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7339
7340         * utils.c (numdigit): Handle negative numbers.
7341
7342 2001-04-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7343
7344         * retr.c (show_progress): Print the download rate even when the
7345         percentages are not available.
7346
7347 2001-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
7348
7349         * ftp.c (getftp): Adjust expected_bytes if the length is
7350         authoritative.
7351
7352 2001-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7353
7354         * url.c: Don't declare `construct'.
7355
7356         * hash.c (grow_hash_table): Speed up rehashing; inline storing of
7357         mappings to new locations.
7358         (hash_table_new): Make resize_threshold a field in the hash table,
7359         so we don't have to recalculate it in each hash_table_put.
7360         (grow_hash_table): Update resize_threshold.
7361         (MAX): Remove unused macro.
7362         (prime_size): Made static.
7363
7364 2001-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7365
7366         * retr.c (retrieve_url): Call uri_merge, not url_concat.
7367
7368         * html-url.c (collect_tags_mapper): Call uri_merge, not
7369         url_concat.
7370
7371         * url.c (mkstruct): Use encode_string instead of xstrdup followed
7372         by URL_CLEANSE.
7373         (path_simplify_with_kludge): Deleted.
7374         (contains_unsafe): Deleted.
7375         (construct): Renamed to uri_merge_1.
7376         (url_concat): Renamed to uri_merge.
7377
7378 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7379
7380         * url.c (str_url): Use encode_string instead of the unnecessary
7381         CLEANDUP.
7382         (encode_string_maybe): New function, returns input string if no
7383         encoding is needed.
7384         (encode_string): Call encode_string_maybe to do the dirty work,
7385         xstrdup if no work needed.
7386
7387 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7388
7389         * wget.h (XDIGIT_TO_xchar): Define here.
7390
7391         * url.c (decode_string): Use new name.
7392         (encode_string): Ditto.
7393
7394         * http.c (XDIGIT_TO_xchar): Rename HEXD2asc to XDIGIT_TO_xchar.
7395         (dump_hash): Use new name.
7396
7397         * wget.h: Rename ASC2HEXD and HEXD2ASC to XCHAR_TO_XDIGIT and
7398         XDIGIT_TO_XCHAR respectively.
7399
7400 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7401
7402         * init.c: Include cookies.h.
7403
7404         * cookies.h: Declare cookies_cleanup.
7405
7406         * cookies.c (check_domain_match): Remove unused variable.
7407         (save_cookies): Remove extraneous argument from debug statement.
7408
7409         * host.c (same_host): Don't call skip_url.
7410
7411         * url.c (skip_url): Removed.  Removed its calls from various
7412         functions in url.c.
7413
7414 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7415
7416         * cookies.c (unsigned_string_hash): Use the new code in
7417         string_hash as reference.
7418
7419         * hash.c (hash_table_map): Allow deletion and change of the
7420         element processed by MAPFUN.
7421         (string_hash): Use the function from glib.
7422
7423 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7424
7425         * config.h.in: Include #undef stub.
7426
7427         * hash.c (hash_table_remove): Rewrite to actually clear deleted
7428         entries instead of just marking them as deleted.
7429
7430 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7431
7432         * hash.h: Declare hash_table_get_pair and hash_table_count.
7433
7434 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7435
7436         * cookies.c: Declare http_atotm.
7437
7438 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7439
7440         * ftp-ls.c (ftp_parse_unix_ls): Use octal constants for
7441         permissions.  A compiler that doesn't accept octal constants is
7442         seriously broken and shouldn't be used -- octal constants were
7443         present in K&R C!
7444
7445 2001-01-20  Karl Eichwalder  <ke@suse.de>
7446
7447         * Makefile.in: Provide and use DESTDIR according to the Coding
7448         Standards.
7449
7450 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7451
7452         * ftp-ls.c (ftp_parse_vms_ls): Make seconds optional in time
7453         specification.
7454
7455 2001-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7456
7457         * url.c (parseurl): Don't strip trailing slash when u->dir is "/"
7458         because that strips the *leading* slash, thus forcing relative
7459         FTP retrieval.
7460
7461 2001-04-10  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7462
7463         * ftp.c (getftp): Convert initial FTP directory from VMS to UNIX
7464         notation for VMS servers. 
7465         (ftp_retrieve_dirs): Do not prepend '/' to f->name when
7466         odir is an empty string.
7467
7468 2001-04-10  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7469
7470         * ftp-ls.c (ftp_parse_winnt_ls): Made the fix for AM/PM more
7471         effective. Suggested by Edward J. Sabol.
7472
7473 2001-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
7474
7475         * cookies.c (build_cookies_request): Use and sort cookies from all
7476         matching domains.
7477         (build_cookies_request): Check for duplicates before generating
7478         the `Cookies' header.
7479
7480         * main.c (main): Don't load cookies here.
7481         (main): Make loadcookies and savecookies call the correct command.
7482
7483         * http.c (http_loop): Load cookies on-demand.
7484
7485 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7486
7487         * http.c (gethttp): Fix indentation of SSL ifdef.
7488
7489 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7490
7491         * ftp.c (ftp_retrieve_dirs): Don't forcibly prepend "/" to u->dir;
7492         that hack is no longer necessary.
7493         (getftp): Prepend initial directory to *non*-absolute u->dir's.
7494
7495 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7496
7497         * init.c (cmd_file): New function.
7498         (enable_tilde_expansion): New variable.
7499         (run_wgetrc): Use it.
7500         (cmd_file): Use it.
7501
7502 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
7503
7504         * init.c: Include cookie-related options.
7505
7506         * main.c (main): Include cookie-specific options.
7507         (main): Load cookies before download is finished.
7508         (main): Save cookies when done.
7509
7510         * http.c (gethttp): Process the `Set-Cookie' header.
7511         (gethttp): Include cookies in the response.
7512
7513         * cookies.c: New file.
7514
7515 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
7516
7517         * utils.c (datetime_str): New function.
7518
7519 2001-04-08  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7520
7521         * ftp-ls.c (ftp_parse_winnt_ls): The AM/PM change did assume
7522         12:01PM == 00:01, which was obviously wrong. Taken care of this
7523         anomaly.
7524
7525         * ChangeLog: Removed an excess conflict marker. Reformatted the
7526         entry by Philipp Thomas from 2001-03-09.
7527
7528         * ftp-ls.c (ftp_parse_winnt_ls): Ensure that adjusted PM hours lay
7529         between 0 and 23. Elminate unused variable `sec'.
7530
7531 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
7532
7533         * hash.c (hash_table_count): New function.
7534
7535 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7536
7537         * utils.c (read_file): Cast MAP_FAILED to char *.  Enforced by
7538         Digital Unix cc.
7539
7540 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7541
7542         * config.h.in: Oops, do the namespace tweaks only on systems we
7543         know about.
7544
7545 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7546
7547         * hash.c: Include <string.h>.
7548
7549 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7550
7551         * config.h.in: Define "compilation environment" options that work
7552         under Linux and Solaris.  To be reviewed on other OS'es.
7553
7554 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7555
7556         * http.c (gethttp): Prepend literal newline with `\n\'.
7557
7558 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7559
7560         * sysdep.h: Don't define VERY_LONG_FORMAT.
7561
7562         * utils.c (very_long_to_string): New function.
7563         (legible_very_long): Use it; don't use VERY_LONG_FORMAT.
7564
7565 2001-04-04  Christian Fraenkel  <christian.fraenkel@gmx.net>
7566
7567         * url.c (parse_uname): Would run past the end of the string if the
7568         username was present, but the URL did not contain a slash, e.g.
7569         http://foo:bar@myhost.
7570
7571 2001-04-03  KOJIMA Hajime  <kjm@rins.ryukoku.ac.jp>
7572
7573         * http.c (http_atotm): Use %A instead of %a to match full
7574         weekday.  (On most systems there is no difference.)
7575
7576 2001-04-03  Paul Bludov  <paul@ozero.net>
7577
7578         * mswindows.c (sleep): Use SleepEx() instead of Sleep().
7579         (ws_changetitle): Use alloca() instead of malloc() to avoid memory
7580         leak.
7581         (ws_mypath): Use GetModuleFileName instead of argv[0].
7582         (ws_startup): Use data.wVersion for comparison.
7583
7584 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7585
7586         * http.c (http_loop): Ditto.
7587
7588         * ftp.c (ftp_loop_internal): Made the check whether to continue
7589         retrieval `-O'-friendly.
7590
7591 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7592
7593         * netrc.c (parse_netrc): Don't trim the line endings explicitly;
7594         they will be handled as whitespace.
7595         (parse_netrc): Correctly handle lines that end with whitespace.
7596
7597 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7598
7599         * retr.c (retrieve_url): New variable global_download_count used
7600         to identify first retrieval.
7601
7602         * ftp.c (getftp): Ditto.
7603
7604         * http.c (gethttp): Rewind opt.dfp only on first retrieval.
7605
7606 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7607
7608         * init.c (cmd_address): Heap-allocate the address that gets stored
7609         to CLOSURE.  Old code would simply assign an address on the stack.
7610
7611 2001-04-01  Nicolas Lichtmaier <nick@debian.org>
7612
7613         * ftp.c (ftp_get_listing): Propagate error status.
7614         (ftp_retrieve_glob): Use it.
7615         (ftp_loop): Ditto.
7616
7617 2001-04-01  Nicolas Lichtmaier <nick@debian.org>
7618
7619         * main.c (main): Add -C to the string that is the third arg to
7620         getopt_long().
7621
7622 2001-04-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7623
7624         * ftp.c (getftp): Don't start the download from scratch if `-c'
7625         was specified, but the file is already fully downloaded.
7626
7627         * http.c (gethttp): Don't truncate a pre-existing file if `-c' was
7628         specified and the server doesn't support continued download.
7629         (gethttp): Don't start the download from scratch if `-c' was
7630         specified, but the file is already fully downloaded.
7631
7632 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7633
7634         (recursive_retrieve): Don't clear the hash tables at this point at
7635         all; it interferes with the normal operation of register_download.
7636
7637 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7638
7639         * recur.c (recursive_retrieve): Clear the hash tables only when
7640         they are defined.
7641
7642 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7643
7644         * http.c (gethttp): Make sure the socket is closed with
7645         CLOSE_INVALIDATE before we have drained the body.
7646
7647 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7648
7649         * retr.c (retrieve_url): Call register_download() for downloaded
7650         files and register_html() for downloaded HTML files.
7651
7652         * recur.c (register_download): New function; register here that a
7653         file has been downloaded, rather than in recursive_retrieve().
7654         (register_html): New function; enqueue the location of HTML files
7655         here rather than in recursive_retrieve().
7656
7657 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7658
7659         * main.c (print_help): Use multiple fputs instead of a single ugly
7660         printf().
7661         (main): Consistently assign numbers >128 to options without a
7662         corresponding character.
7663
7664 2001-03-09  Philipp Thomas  <pthomas@suse.de>
7665
7666         * safe-ctype.h: New file. Locale independent ctype.h replacement
7667         taken from libiberty.
7668
7669         * safe-ctype.c: New file. Tables for above.
7670
7671         * Makefile.in: Add safe-ctype$o to OBJS.  Add dependencies for
7672         safe-ctype$o.
7673
7674         * cmpt.c: Remove include of ctype.h. Use ISSPACE instead of
7675         isspace.
7676
7677         * ftp-basic.c: Don't include ctype.h.
7678
7679         * ftp-ls.c: Likewise.
7680
7681         * ftp.c: Likewise.
7682
7683         * headers.c: Likewise.
7684
7685         * host.c: Likewise.
7686
7687         * html-parse.c: Likewise.
7688
7689         * html-url.c: Likewise.
7690
7691         * http.c: Likewise.
7692
7693         * init.c: Likewise.
7694
7695         * main.c: Likewise. Set LC_CTYPE along with LC_MESSAGES.
7696
7697         * netrc.c: Likewise.
7698
7699         * recur.c: Likewise.
7700
7701         * retr.c: Likewise.
7702
7703         * snprintf.c: Replace ctype.h with safe-ctype.h. Use ISDIGIT
7704         instead of isdigit.
7705
7706         * sysdep.h: Remove defines of ctype macros as they aren't needed
7707         for safe-ctype-h.
7708
7709         * url.c: Don't include ctype.h.
7710
7711         * utils.c: Likewise.
7712
7713         * wget.h: Include safe-ctype.h.
7714
7715 2001-03-27  Dan Harkless  <wget@harkless.org>
7716
7717         * Makefile.in: Moved top_builddir out of "User configuration
7718         section" of top Makefile and analogous spot in this one.
7719
7720 2001-03-17  Dan Harkless  <wget@harkless.org>
7721
7722         * Makefile.in: Include @SSL_INCLUDES@ substition in INCLUDES.
7723         Define top_builddir.  Link wget with libtool so the user doesn't
7724         have to supply a bunch of custom environment variables to 
7725         correctly link with the OpenSSL shared libraries.
7726
7727 2001-03-06  Hack Kampbjorn  <hack@hackdata.com>
7728
7729         * http.c (gethttp): skip :port in host header if it is the
7730         DEFAULT_HTTPS_PORT when using SSL.
7731
7732         * url.c: move the #define of DEFAULT_HTTP_PORT, DEFAULT_FTP_PORT
7733         and DEFAULT_HTTPS_PORT to the header file so it can be use in the
7734         rest of the code. 
7735         * url.h: Ditto
7736
7737 2001-03-01  Jonas Jensen  <bones@huleboer.dk>
7738
7739         * retr.c (show_progress): Correctly calculate the number of bytes
7740         in the first line of the download that have been actually
7741         downloaded in this run.
7742
7743 2001-02-23  Dan Harkless  <wget@harkless.org>
7744
7745         * main.c (print_help): --help documentation for -N said it would
7746         re-download files if they had the _same_ timestamp on server.
7747         (print_help): -nr belongs in "FTP options" section of --help
7748         output, not "Recursive retrieval" section.  Alphabetized FTP
7749         options by long option name.
7750
7751 2001-02-16  Dan Harkless  <wget@harkless.org>
7752
7753         * init.c (commands): Hack Kampbjørn <hack@hackdata.com> discovered
7754         that "httpsproxy" had been inserted into commands[] out of
7755         alphabetical order, causing "BUG: unknown command `httpuser'".
7756
7757 2001-02-13  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7758
7759         * ftp-ls.c (ftp_parse_ls): Added support of ST_MACOS (Unix-like
7760         listing without correct permissons).
7761
7762         * ftp.h (stype): Added ST_MACOS to identify the NetPresenz MacOS
7763         FTP server. 
7764
7765         * ftp.c (ftp_retrieve_list): New mirroring logic: A remote file
7766         shall be donwloaded only when it's newer than the local copy or
7767         when it has the same timeestamp but its size is different. ST_VMS
7768         and ST_MACOS as special cases that lie about file size. 
7769
7770         * ftp-ls.c (ftp_parse_ls): Support for ST_MACOS.
7771
7772         * Makefile.in: Removed dependency on ftpparse library due to unclear
7773         copyright issues and absence of any feedback to our queries. 
7774
7775         * ftp-ls.c: Removed dependency on ftpparse library due to unclear
7776         copyright issues and absence of any feedback to our queries.   
7777         (ftp_parse_ls): Added a warning message when remote server system
7778         does not seem to be suported by wget. 
7779         (ftp_parse_vms_ls): New function for parsing VMS ftp
7780         server listing output.
7781         (clean_line): New function responsible for removing
7782         end-of-line characters from FTP listing texts.
7783
7784         * ftp.c (getftp): Global variables pwd and host_type are now
7785         member of the ccon structure under names ccon.id and ccon.rs. 
7786
7787         * ftp.h (struct ccon): Added formed global variables from ftp.c,
7788         enum stype rs (remote system identification) and char *id (initial
7789         working directory), as suggested by Hrvoje.
7790
7791         * url.c (parse_uname): Added support for passwords containing '@'
7792         characters.
7793         (skip_uname): Ditto.
7794
7795 2001-02-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7796
7797         * ftp.c (ftp_loop): Reset con.
7798
7799 2001-01-06  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7800
7801         * url.c (parse_uname): Added support for passwords containing '@'
7802         characters.
7803         (skip_uname): Ditto.
7804
7805 2001-02-11  Hack Kampbjørn  <hack@hackdata.com>
7806
7807         * url.c (parseurl): Debug-print u->ftp_type.
7808
7809 2001-02-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7810
7811         * ftp.c (ftp_loop_internal): Disable padding.
7812         (getftp): Ditto.
7813
7814         * http.c (http_loop): Disable padding.
7815
7816         * retr.c (show_progress): Use it to enable padding.
7817
7818         * retr.c (rate): Optional parameter PAD for padding the rate.
7819
7820 2001-02-10  Hrvoje Niksic  <hniksic@arsdigita.com>
7821
7822         * retr.c (show_progress): Make sure that the last output line
7823         includes progress.
7824
7825 2001-02-10  Jonas Jensen  <bones@huleboer.dk>
7826
7827         * retr.c (show_progress): Print the download rate along with the
7828         percentages.
7829         Along with Anders Thorsby <anders@thorsby.dk>.
7830
7831 2001-02-10  Tim Mooney  <mooney@dogbert.cc.ndsu.NoDak.edu>
7832
7833         * ftp.h: Rename enums `command' to `wget_ftp_command' and
7834         `fstatus' to `wget_ftp_status' because old names clash with Tru64
7835         net/if.h.
7836
7837 2001-02-08  Christian Fraenkel <christian.fraenkel@gmx.net>
7838
7839         * gen_sslfunc.c: verify_callback is now static
7840
7841         * gen_sslfunc.c (init_ssl): load certificate if specified
7842
7843         * gen_sslfunc.c (ssl_printerr): new function
7844
7845         * init.c: added new --sslcertfile and --sslcertkey switches
7846
7847         * main.c: ditto
7848
7849         * options.h: ditto
7850
7851         * http.c (gethttp): abort when init_ssl fails
7852
7853 2001-01-23  Herold Heiko  <Heiko.Herold@previnet.it>
7854
7855         * mswindows.h: Include <malloc.h>; it's needed for alloca().
7856
7857 2001-01-10  Dan Harkless  <wget@harkless.org>
7858
7859         * url.c (str_url): Clarified this function's comment header after
7860         Hrvoje answered my question on the list as to when hide != 1.
7861         Also Hrvoje pointed out I need to use xstrdup() on the string literal.
7862
7863 2001-01-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7864
7865         * connect.c (bindport): Declare addrlen as int.  Diagnosed by
7866         Drazen Kacar <dave@arsdigita.com>.
7867         (conaddr): Ditto.
7868
7869 2001-01-09  Dan Harkless  <wget@harkless.org>
7870
7871         * html-url.c: A bunch of fixup of `--page-requisites'-related
7872         comments to reflect Hrvoje's changes to my code when transplanting
7873         it into this new file, to fix spelling mistakes, to clarify, etc.
7874
7875         * url.c (write_backup_file): Clarified a comment.
7876         (str_url): Henrik van Ginhoven pointed out on the list that we
7877         shouldn't give away the number of characters in the password by
7878         replacing each character with a 'x'.  Use "<password>" instead.
7879
7880         * ftp.c (ftp_retrieve_dirs): The bug where recursion into FTP
7881         directories didn't work if logging in put you in a directory other
7882         than "/" is fixed now.  Removed the comment here warning of the bug.
7883
7884         * main.c (print_help): --continue's description was misleading.
7885         We don't "restart", we "resume".  Also, better to say
7886         "partially-downloaded file" rather than just "existing file".
7887
7888 2001-01-06  Dan Harkless  <wget@harkless.org>
7889
7890         * ChangeLog: The '[Not in 1.6 branch.]'s were decided not to be
7891         the best way to go about my aim.  Removed them in favor of:
7892
7893         * ChangeLog-branches/1.6_branch.ChangeLog: New file.
7894
7895 2001-01-04  Hrvoje Niksic  <hniksic@arsdigita.com>
7896
7897         * url.c (replace_attr): New function, to be used by both
7898         TO_COMPLETE and TO_RELATIVE case in convert_links.
7899         (find_fragment): New function for finding URL fragments.
7900         (replace_attr): Better handle the case where the original string
7901         is not quoted.  Use find_fragment.
7902         (convert_links): Use replace_attr().
7903
7904 2000-12-31  Dan Harkless  <wget@harkless.org>
7905
7906         * ChangeLog: Since this flat file doesn't have multiple branches,
7907         looking at the dates would make you think that things went into
7908         1.6 that actually just went into the 1.7-dev branch.  Added "[Not
7909         in 1.6 branch.]" where appropriate to clarify.
7910         
7911 2000-12-30  Dan Harkless  <wget@harkless.org>
7912
7913         * ftp.c, http.c:  Applied Hack Kampbjørn <hack@hackdata.com>'s
7914         patch to deal with h_errno not being defined in netdb.h under Cygwin.
7915
7916 2000-12-18  Csaba Raduly  <csaba.raduly@sophos.com>
7917
7918         * sysdep.h: Include <malloc.h> and <io.h> under Watcom.
7919
7920 2000-12-17  Igor Khristophorov  <igor@atdot.org>
7921
7922         * http.c (check_end): Fix test for '+' or '-'.
7923
7924 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
7925
7926         * url.c (parseurl): Rename inner loop var from i to ind to avoid
7927         clash with the function top-level-declared variable i.
7928         (str_url): Likewise, rename inner-loop i to j.
7929
7930         * recur.c (parse_robots): Don't declare LEN at top of function.
7931         (robots_match): Renamed parameter FORBIDDEN to avoid hiding of
7932         global variable.
7933
7934         * main.c (main): Change erroneous use of bitwise and to logical.
7935
7936         * init.c (cmd_address): Don't heap-allocate `sin'; it can be on
7937         the stack because it will be copied to closure.
7938
7939         Thanks to Csaba Raduly's run of PC-LINT over the sources.
7940
7941 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
7942
7943         * http.c (basic_authentication_encode): Use xmalloc(), not
7944         malloc().  Thanks to Csaba Raduly's run of PC-LINT over the
7945         sources.
7946
7947 2000-12-17  Csaba Raduly  <csaba.raduly@sophos.com>
7948
7949         * sysdep.h: Test for __EMX__ rather than for EMXOS2 for OS/2
7950         compilation.
7951
7952 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
7953
7954         * mswindows.c: Include <errno.h>.
7955
7956         * gen_sslfunc.c: Include <errno.h>.
7957
7958         * ftp-basic.c: Don't attempt to declare errno or h_errno because
7959         they're not used.
7960
7961         * main.c: Include <errno.h> because errno is used.
7962
7963         * ftp.c: Ditto.
7964
7965         * http.c: Include <netdb.h> for h_errno.
7966
7967 2000-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7968
7969         * html-parse.c (advance_declaration): MSVC assert() chokes on
7970         '\"'.  Use '"' instead.
7971
7972 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7973
7974         * utils.c (xfree_real): Removed.
7975         (xfree_debug): Just call free().
7976
7977         * wget.h (xfree): Make it an alias for free.
7978
7979 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7980
7981         * http.c (http_loop): Furthermore, touch output_document only if
7982         it is known to be an existing regular file.
7983
7984 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7985
7986         * ftp.c (ftp_retrieve_list): Ditto.
7987
7988         * http.c (http_loop): Touch output_document if that is used for
7989         output.
7990
7991 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7992
7993         * http.c: Include gen_sslfunc.h after including Wget's headers.
7994         (persistent_available_p): Needed coma before `int ssl'.
7995
7996 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7997
7998         * ftp.c (ftp_loop_internal): Ditto.
7999
8000         * http.c (http_loop): Use it.
8001
8002         * retr.c (sleep_between_retrievals): New function that handles the
8003         logic of opt.wait and opt.waitretry.
8004
8005 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8006
8007         * rbuf.h: Implement only a single version of RBUF_READCHAR, using
8008         rbuf_read_bufferful when the buffer is depleted.
8009
8010         * rbuf.c (rbuf_read_bufferful): New function.
8011
8012 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8013
8014         * gen_sslfunc.h: Use ansi2knr style function declarations.
8015
8016         * gen_sslfunc.c: Reformat according to the GNU coding standards.
8017         More should be done.
8018
8019         * http.c (persistent_available_p): Place the cheap SSL test nearer
8020         the top of the function.
8021         (CLOSE_FINISH, CLOSE_INVALIDATE): Define only one version of each.
8022
8023 2000-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
8024
8025         * url.c (init_unsafe_char_table): Reinstate space as an unsafe
8026         char.
8027
8028 2000-12-03  Christian Fraenkel <christian.fraenkel@gmx.net>
8029
8030         * Makefile.in: added gen_sslfunc object
8031         * config.h.in: added HAVE_SSL define
8032         * connect.c: changed select_fd from static int to int
8033         * connect.h: ditto
8034         * gen_sslfunc.h: New file
8035         * gen_sslfunc.c: ditto
8036         * http.c: added HTTPS fuctionality
8037         * retrc.c: ditto
8038         * url.c: ditto
8039         * init.c: added opt.httpsproxy
8040         * options.h: ditto
8041         * rbuf.h: added alternate rbuf struct
8042         * wget.h: added CONSSLERR
8043         * rbuf.c: ditto
8044
8045         * http.c: Added HTTPS fuctionality.
8046
8047         * retrc.c: Ditto.
8048
8049         * url.c: Ditto.
8050
8051         * init.c: Added opt.httpsproxy.
8052
8053         * options.h: Ditto.
8054
8055         * rbuf.h: Added alternate rbuf struct.
8056
8057         * wget.h: Added CONSSLERR.
8058
8059         * rbuf.c: Ditto.
8060
8061 2000-11-30  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8062
8063         * ftp-ls.c (ftp_parse_unix_ls): Added second parameter
8064         "ignore_perms" to ignore file and directory permissions for
8065         Windows NT FTP server listings.
8066         (ftp_parse_winnt_ls): New function.
8067         (ftp_parse_ls): Parses UNIX and Windows NT listings
8068         separately. Simple heuristics for distinguishing between UNIX and
8069         MS-DOS-like FTP listing provided by Windows NT FTP service.
8070
8071 2000-11-18  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8072
8073         * ftpparse.c, ftpparse.h: New files.
8074
8075         * ftp-ls.c (ftp_parse_ls): Use ftp_parse_unix_ls for UNIX servers
8076         only. Use ftp_parse_nonunix_ls otherwise.
8077         (ftp_parse_nonunix_ls): Stub to the ftpparse library handling all
8078         exotic FTP servers.
8079
8080         * ftp.h (stype): New enum, distinguishes UNIX, VMS, and "other"
8081         FTP servers.
8082
8083         * ftp.c: New static wariables host_type, pwd, and pwd_len. 
8084         (getftp): Support for VMS. Support for FTP servers that do not
8085         place you in the root directory after login.
8086         (ftp_retrieve_list): VMS is silent about the real file size, issue
8087         a more appropriate message.
8088         (ftp_get_listing): Pass host_type to ftp_parse_ls.
8089
8090         * ftp-basic.c (ftp_pwd, ftp_syst): New functions.
8091
8092 2000-11-30  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8093
8094         * ftp-ls.c (ftp_parse_unix_ls): Added second parameter
8095         "ignore_perms" to ignore file and directory permissions for
8096         Windows NT FTP server listings.
8097         (ftp_parse_winnt_ls): New function.
8098         (ftp_parse_ls): Parses UNIX and Windows NT listings
8099         separately. Simple heuristics for distinguishing between UNIX
8100         and MS-DOS-like FTP listing provided by Windows NT FTP service.
8101
8102 2000-11-29  John Summerfield  <summer@OS2.ami.com.au>
8103
8104         * netrc.c (parse_netrc): Get rid of line ending.
8105
8106 2000-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
8107
8108         * ftp.c (ftp_retrieve_list): Undo typo "fix" until resolution by
8109         Dan.
8110
8111 2000-11-24  Karl Eichwalder  <ke@suse.de>
8112
8113         * main.c (print_help): Untabify.
8114
8115 2000-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
8116
8117         * utils.c (xrealloc_debug): Do the unregister/register thing only
8118         if the pointer has actually changed.
8119         (xmalloc_real): Declare `static' in DEBUG_MALLOC builds.
8120         (xfree_real): Ditto.
8121         (xrealloc_real): Ditto.
8122         (xstrdup_real): Ditto.
8123
8124 2000-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
8125
8126         * ftp.c (getftp): ftp_getaddress() returns a malloc'ed copy of the
8127         string; no need to strdup() it.
8128         (getftp): Make pwd_len a local variable.
8129         (ftp_loop): Free PWD before returning.
8130
8131         * init.c (cleanup): Free opt.ftp_pass only if it's non-NULL.
8132
8133 2000-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
8134
8135         * all: Use xfree() instead of free.
8136
8137         * utils.c (xfree): New function.
8138
8139 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
8140
8141         * url.c (convert_links): HTML-quote the converted string.
8142
8143         * utils.c (html_quote_string): Move here from ftp-ls.c
8144         (html_quote_string): Make non-static; declare in utils.h.
8145         (html_quote_string): Convert SP to &#32;.
8146
8147 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
8148
8149         * ftp.c (getftp): Reformat Jan's code according to GNU coding
8150         standards; remove (debugging?) printf's; use '\0' for the ASCII
8151         zero character.  Use alloca() instead of malloc() for
8152         inter-function temporary allocations.
8153
8154 2000-11-18  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8155
8156         * ftpparse.c, ftpparse.h: New files.
8157
8158         * ftp-ls.c (ftp_parse_ls): Use ftp_parse_unix_ls for UNIX servers
8159         only. Use ftp_parse_nonunix_ls otherwise.
8160         (ftp_parse_nonunix_ls): Stub to the ftpparse library handling all
8161         exotic FTP servers.
8162
8163         * ftp.h (stype): New enum, distinguishes UNIX, VMS, and "other"
8164         FTP servers.
8165
8166         * ftp.c: New static wariables host_type, pwd, and pwd_len. 
8167         (getftp): Support for VMS. Support for FTP servers that do not
8168         place you in the root directory after login.
8169         (ftp_retrieve_list): VMS is silent about the real file size, issue
8170         a more appropriate message.
8171         (ftp_get_listing): Pass host_type to ftp_parse_ls.
8172
8173         * ftp-basic.c (ftp_pwd, ftp_syst): New functions.
8174
8175 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
8176
8177         * hash.c (hash_table_put): Don't overwrite deleted mappings.
8178
8179 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
8180
8181         * hash.c (find_mapping): New function.
8182         (hash_table_get): Use it.
8183         (hash_table_get_pair): Ditto.
8184         (hash_table_exists): Ditto.
8185         (hash_table_remove): Ditto.
8186         (hash_table_remove): Really delete the entry if the mapping
8187         following LOCATION is empty.
8188
8189         * utils.c (string_set_add): Check whether the element has existed
8190         before.
8191
8192         * hash.c (hash_table_get_pair): New function.
8193
8194 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8195
8196         * http.c (http_process_type): Ignore trailing whitespace; use
8197         strdupdelim().
8198
8199         * recur.c (recursive_retrieve): Use the new `convert' field.
8200         (convert_all_links): Ditto.
8201         (convert_all_links): Don't respect meta_disallow_follow.
8202
8203         * html-url.c (handle_link): Fill out link_relative_p and
8204         link_complete_p.
8205
8206         * url.h (struct _urlpos): Make elements more readable.
8207
8208         * recur.c (recursive_retrieve): Call slist_prepend instead of
8209         slist_append.
8210         (convert_all_links): Call slist_nreverse before iterating through
8211         urls_html.
8212
8213         * utils.c (slist_prepend): New function.
8214         (slist_nreverse): Ditto.
8215
8216 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8217
8218         * http.c (check_end): Constify.
8219
8220 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8221
8222         * http.c (http_loop): If username and password are known, try the
8223         `Basic' authentication scheme by default.
8224
8225         * connect.h: Declare test_socket_open.
8226
8227 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8228
8229         * version.c: Bump version from 1.5.3+dev to 1.7-dev.
8230
8231 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8232
8233         * http.c (gethttp): Don't use the return value of sprintf().
8234         (gethttp): Inhibit keep-alive if opt.http_keep_alive is 0.
8235
8236 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8237
8238         * recur.c (recursive_retrieve): Print the "so we don't load"
8239         debugging message only if we really don't load.
8240
8241         * http.c (gethttp): Inhibit keep-alive if proxy is being used.
8242         (gethttp): Don't request keep-alive if keep-alive is inhibited.
8243
8244 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8245
8246         * http.c (gethttp): Make the HTTP persistent connections more
8247         robust.
8248
8249 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8250
8251         * retr.c (get_contents): If use_expected, make sure that the
8252         appropriate amount of data is being read.
8253
8254         * http.c (gethttp): Check for both `Keep-Alive: ...' and
8255         `Connection: Keep-Alive'.
8256
8257         * wget.h (DEBUGP): Call debug_logprintf only if opt.debug is
8258         turned on.
8259
8260 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8261
8262         * http.c (connection_available_p): Use it.
8263
8264         * connect.c (test_socket_open): New function.
8265
8266         * http.c (gethttp): Support persistent connections.  Based on the
8267         ideas, and partly on code, by Sam Horrocks <sam@daemoninc.com>.
8268         (register_persistent): New function.
8269         (connection_available_p): Ditto.
8270         (invalidate_connection): Ditto.
8271
8272 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8273
8274         * url.c (convert_links): Handle UREL2ABS case.
8275
8276         * recur.c (recursive_retrieve): Instead of the list
8277         urls_downloaded, use hash tables dl_file_url_map and
8278         dl_url_file_map.
8279         (convert_all_links): Use them to retrieve data.
8280
8281         * host.c (clean_hosts): Free the hash tables.
8282
8283         * main.c (private_initialize): Call host_init().
8284
8285         * host.c (store_hostaddress): Use a saner, hash table-based data
8286         model.
8287         (realhost): Ditto.
8288         (host_init): Initialize the hash tables.
8289
8290 2000-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
8291
8292         * utils.c (slist_append): Eviscerate NOSORT.  Hash tables are now
8293         used for what the sorted slists used to be used for.
8294         (slist_contains): Don't rely on the list being sorted.
8295         (slist_append): Simplify the code.
8296
8297         * recur.c (recursive_cleanup): Use free_string_set.
8298
8299         * utils.c (string_set_add, string_set_exists, string_set_free):
8300         New functions for easier freeing of hash tables whose keys are
8301         strdup'ed strings.
8302
8303         * recur.c (recursive_retrieve): Use the hash table functions for
8304         storing undesirable URLs.
8305
8306         * hash.c: New file.
8307
8308 2000-11-17  Hrvoje Niksic  <hniksic@arsdigita.com>
8309
8310         * main.c (private_initialize): Call url_init.
8311         (main): Call private_initialize.
8312
8313         * url.c (unsafe_char_table): New table.
8314         (UNSAFE_CHAR): Use it.
8315         (init_unsafe_char_table): New function.
8316         (url_init): New function; call init_unsafe_char_table.
8317
8318 2000-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
8319
8320         * mswindows.h: Define snprintf and vsnprintf to _snprintf and
8321         _vsnprintf respectively.
8322
8323 2000-11-15  Hrvoje Niksic  <hniksic@arsdigita.com>
8324
8325         * config.h.in: Do the _XOPEN_SOURCE and _SVID_SOURCE things only
8326         on Linux.
8327
8328 2000-11-15  Hrvoje Niksic  <hniksic@arsdigita.com>
8329
8330         * html-url.c (handle_link): Handle HTML fragment identifiers.
8331
8332         * recur.c (recursive_retrieve): If norobot info is respected and
8333         the file is specified not to be followed by robots, respect that.
8334
8335         * html-url.c (collect_tags_mapper): Handle <meta name=robots
8336         content=X>.  For us the important cases are where X is NONE or
8337         where X contains NOFOLLOW.
8338         (get_urls_html): Propagate that information to the caller.
8339
8340 2000-11-13  Hrvoje Niksic  <hniksic@arsdigita.com>
8341
8342         * url.c (convert_links): Unlink the file we might be reading from
8343         before writing to it.
8344         (convert_links): Use alloca instead of malloc for
8345         filename_plus_orig_suffix.
8346
8347 2000-11-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8348
8349         * host.c (realhost): Add HOST to the list with quality==0 only if
8350         it wasn't already there.
8351         Based on analysis by Lu Guohan <feng@public.bjnet.edu.cn>.
8352
8353 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8354
8355         * url.c (get_urls_file): Ditto.
8356         (convert_links): Ditto.
8357
8358         * html-url.c (get_urls_html): Use read_file() instead of
8359         load_file().
8360
8361         * utils.c (read_file): New function, instead of the old
8362         load_file().
8363         (read_file_free): Ditto.
8364
8365         * url.c (findurl): Search only for the supported protocols.
8366         (convert_links): Use fwrite() when writing out a region of
8367         characters.
8368
8369 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8370
8371         * ftp-ls.c: Move html_quote_string and ftp_index here.
8372
8373         * url.c: Remove get_urls_html, since that's now in html-url.c.
8374
8375         * html-url.c: New file.
8376
8377         * html-parse.c: New file.
8378
8379 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8380
8381         * init.c (run_wgetrc): Don't bother killing off '\r' since
8382         pars_line() skips whitespace at end of line anyway.
8383         (parse_line): Oops, it didn't.  Now it does.
8384
8385         * recur.c (parse_robots): Ditto here.
8386
8387         * ftp-ls.c (ftp_parse_unix_ls): Kill off the newline character
8388         manually because read_whole_line no longer does.
8389
8390         * utils.c (read_whole_line): Rewrite to: a) use less memory
8391         (reallocates to needed size after work), b) work faster -->
8392         fgets() instead of getc, c) be more correct --> doesn't kill the
8393         newline character at the end of line.
8394
8395 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8396
8397         * init.c (comind): Initialize MAX to array size - 1.
8398
8399 2000-11-08  Hrvoje Niksic  <hniksic@arsdigita.com>
8400
8401         * url.c (construct): Changed last_slash[-1] to *(last_slash - 1).
8402         Suggested by Edward J. Sabol.
8403
8404 2000-11-08  Hrvoje Niksic  <hniksic@arsdigita.com>
8405
8406         * url.c (construct): Handle the case where host name is not
8407         followed by a slash.
8408
8409 2000-11-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8410
8411         * init.c: commands[] need to be sorted!  ("base" wasn't.)
8412
8413 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
8414
8415         * wget.h (DO_REALLOC_FROM_ALLOCA): Use braces to disambiguate
8416         `if'.
8417
8418 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
8419
8420         * url.c (construct): Insert unneeded initialization for the
8421         compiler to shut up.
8422
8423         * config.h.in: Define _XOPEN_SOURCE to 500 to get the prototype
8424         for strptime() (*duh*).  Define _SVID_SOURCE to get S_IFLNK which
8425         otherwise gets lost when you define _XOPEN_SOURCE.
8426
8427         * utils.c (touch): Include the file name in the error message.
8428         From Debian.
8429
8430 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
8431
8432         * log.c (logvprintf): Use vsnprintf() in all cases.  If necessary,
8433         resize the buffer to fit the formated message.  That way, messages
8434         of arbitrary size may be printed.
8435         (logvprintf): Use saved_append() to optionally log the last
8436         several lines of output.
8437         (logputs): Ditto.
8438         (log_close): Adapt to new data structures.
8439         (log_dump): Ditto.
8440         (redirect_output): Print messages to stderr, not to stdout.
8441
8442         * log.c (saved_append_1): New function.  Replaces the old logging
8443         system ("log all output until 10M characters") with a new, much
8444         more reasonable one ("log last screenful of text").
8445         (saved_append): New function; call saved_append_1.
8446         (free_log_line): New function.
8447
8448 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
8449
8450         * url.c (construct): Fix comment.
8451         (find_last_char): Document.
8452
8453 2000-11-04  Hrvoje Niksic  <hniksic@arsdigita.com>
8454
8455         * snprintf.c: New file.
8456
8457 2000-11-03  Hrvoje Niksic  <hniksic@arsdigita.com>
8458
8459         * wget.h: If HAVE_STDARG_H is not defined, don't declare argument
8460         types to logprintf() and debug_logprintf().
8461
8462 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8463
8464         * ftp.c (ftp_loop_internal): Hide the password from the URL when
8465         printing non-verbose.  Problem spotted by Dariusz Mlynarczyk
8466         <darekm@bydg.lomac.com.pl>.
8467
8468 2000-11-02  Junio Hamano  <junio@twinsun.com>
8469
8470         * ftp-basic.c (ftp_login): Make comparison case-insensitive.
8471
8472 2000-11-02  Tyler Riddle  <triddle@liquidmarket.com>
8473
8474         * http.c (known_authentication_scheme_p): Recognize NTML
8475         authentication.
8476         (create_authorization_line): Treat NTML the same as `Basic'.
8477
8478 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8479
8480         * retr.c (retrieve_url): Free url before returning.
8481         (retrieve_url): Free mynewloc before returning.
8482         Spotted by Mark A. Mankins <Mankins_Mark@prc.com>.
8483
8484 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8485
8486         * url.c (parseurl): Remove possible reading past the end of
8487         sup_protos[].  Spotted by Mark A. Mankins <Mankins_Mark@prc.com>.
8488
8489 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8490
8491         * main.c (main): In case of opt.downloaded overflowing, print
8492         <overflow> instead of a totally bogus random value.
8493
8494         * retr.c (retrieve_from_file): Ditto.
8495
8496         * recur.c (recursive_retrieve): Ditto.
8497
8498         * main.c (main): Ditto.
8499
8500         * http.c (http_loop): Ditto.
8501
8502         * ftp.c (ftp_loop_internal): Use downloaded_increase() instead of
8503         `+=', and downloaded_exceeds_quota() instead of the simple-minded
8504         check.
8505         (ftp_retrieve_list): Ditto.
8506         (ftp_retrieve_dirs): Ditto.
8507         (ftp_retrieve_glob): Ditto.
8508
8509         * retr.c (downloaded_increase): New function.  Notice overflows of
8510         opt.downloaded.
8511         (downloaded_exceeds_quota): Make sure that opt.downloaded is not
8512         used if it overflowed.
8513
8514         * options.h (struct options): New member downloaded_overflow.
8515
8516 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8517
8518         * wget.h (enum): Remove extra space after last enumeration.
8519
8520 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8521
8522         * main.c (main): Use legible_very_long() for printing
8523         opt.downloaded.
8524
8525         * utils.c (legible_1): New function that operates on strings and
8526         does the brunt of legible()'s work.
8527         (legible): Use legible_1().
8528         (legible_very_long): New function; dump the argument with
8529         sprintf(), and call legible_1().
8530
8531         * options.h (struct options): Use VERY_LONG_TYPE for
8532         opt.downloaded.
8533
8534         * sysdep.h (VERY_LONG_TYPE): Define it to have a 64-bit or greater
8535         type.
8536
8537         * config.h.in: Make sure that SIZEOF_LONG and SIZEOF_LONG_LONG get
8538         defined.  Define HAVE_LONG_LONG if long long is available.
8539
8540 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8541
8542         * utils.c (long_to_string): Update with a later, better version.
8543
8544 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8545
8546         * url.c (path_simplify_with_kludge): New function.
8547         (path_simplify_with_kludge): Disable it.  Instead...
8548         (parse_dir): ...make sure that at this point the right thing is
8549         done, i.e. that "query" part of the URL (?...) is always assigned
8550         to the file, never to the directory portion of the path.
8551
8552 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8553
8554         * retr.c (retrieve_url): Detect redirection cycles.
8555
8556 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8557
8558         * url.c (get_urls_html): Decode HTML entities using
8559         html_decode_entities.
8560
8561         * html.c (htmlfindurl): Don't count the `#' in numeric entities
8562         (&#NNN;) as an HTML fragemnt.
8563         (html_decode_entities): New function.
8564
8565 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8566
8567         * html.c (htmlfindurl): Fix recognition of # HTML fragments.
8568
8569 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8570
8571         * url.c (construct): Rewritten for clarity.  Avoids the
8572         unnecessary copying and stack-allocation the old version
8573         performed.
8574
8575 2000-10-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8576
8577         * ftp.c (getftp): Ditto.
8578
8579         * http.c (gethttp): Rewind the stream when retrying from scratch.
8580
8581 2000-10-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8582
8583         * retr.c (retrieve_url): Use url_concat() to handle relative
8584         redirections instead of /ad hoc/ code.
8585
8586         * url.c (url_concat): New function encapsulating weird
8587         construct().
8588         (urllen_http_hack): New function.
8589         (construct): When constructing new URLs, recognize that `?' does
8590         not form part of the file name in HTTP.
8591
8592 2000-10-13  Adrian Aichner  <adrian@xemacs.org>
8593
8594         * retr.c: Add msec timing support for WINDOWS.
8595         * retr.c (reset_timer): GetSystemTime() on WINDOWS.
8596         * retr.c (elapsed_time): Calculate delta time to msec on WINDOWS.
8597
8598 2000-10-27  Dan Harkless  <wget@harkless.org>
8599
8600         * retr.c (retrieve_url): Manually applied T. Bharath
8601         <TBharath@responsenetworks.com>'s patch to get wget to grok
8602         illegal relative URL redirects.  Reformatted and re-commented it.
8603
8604 2000-10-23  Dan Harkless  <wget@harkless.org>
8605
8606         * connect.c (make_connection and bindport): Manually applied Rob
8607         Mayoff <mayoff@dqd.com>'s 1.5.3 patch to add --bind-address,
8608         changing coding style to GNU's.
8609
8610         * ftp.c (ftp_loop_internal): --delete-after wasn't implemented for
8611         files downloaded via FTP.  Per a comment, .listing files were not
8612         counted towards number of bytes and files downloaded because they're 
8613         deleted anyway.  Well, they aren't under -nr, so count them then.
8614
8615         * init.c: Manually applied Rob Mayoff's 1.5.3 patch to add
8616         --bind-address, alphabetizing, changing coding style to GNU's,
8617         commenting, and renaming cmd_ip_address() to cmd_address() to
8618         imply hostnames also okay.
8619                 
8620         * main.c (main): --delete-after didn't delete the root of the
8621         tree.  Ignore --convert-links if --delete-after was specified.
8622         Manually applied Rob Mayoff's 1.5.3 patch to add --bind-address,
8623         fixing duplicate use of added-since-1.5.3 case value.
8624         (print_help): Clarified that --delete-after deletes local files.
8625         Rob forgot to add a line for his new --bind-address option.
8626                 
8627         * options.h (struct options): Manually applied Rob Mayoff's patch
8628         to add --bind-address (bind_address structure member).
8629                 
8630         * recur.c (recursive_retrieve): Improved comment; added DEBUGP().
8631         Ignore --convert-links if --delete-after was specified.
8632                 
8633         * retr.c (retrieve_from_file): Just added a DEBUGP().
8634                 
8635 2000-10-19  Dan Harkless  <wget@harkless.org>
8636
8637         * ftp.c (ftp_loop_internal): downloaded_file() enumerators changed.
8638         (getftp): Applied Piotr Sulecki <Piotr.Sulecki@ios.krakow.pl>'s
8639         patch to work around FTP servers that incorrectly respond to the
8640         "REST" command with the remaining size rather than the total file size.
8641                 
8642         * http.c (gethttp): Improved a comment and added code to tack on
8643         ".html" to text/html files without that extension when -E specified.
8644         (http_loop): Use new downloaded_file() enumerators and deal with
8645         the case of gethttp() called xrealloc() on u->local.
8646
8647         * init.c (commands): Added new "htmlextension" command.
8648         Also renamed John Daily's cmd_quad() to the more descriptive
8649         cmd_lockable_boolean(), alpha-sorted the CMD_DECLARE()s and
8650         removed duplicate cmd_boolean() declaration.
8651
8652         * main.c (print_help): Added my new -E / --html-extension option.
8653         (main): Undocumented --email-address option previously used -E synonym.
8654         Stole it away for the much more deserving --html-extension's use.
8655
8656         * options.h (struct options): Added html_extension field.
8657
8658         * url.c (convert_links): URL X that we saved as X.html locally due
8659         to -E needs to be backed up as X.orig, not X.html.orig.  Added comments.
8660         (downloaded_file): Now remembers if we added .html extension to a file.
8661
8662         * url.h (downloaded_file_t): Added extra enumerators to support above.
8663         (downloaded_file): Now takes and returns a downloaded_file_t.
8664
8665         * wget.h (unnamed "dt" enum): Added ADDED_HTML_EXTENSION enumerator.
8666         
8667 2000-10-09  Dan Harkless  <wget@harkless.org>
8668
8669         * html.c (htmlfindurl): Added unneeded initialization to quiet warning.
8670                 
8671         * main.c (print_help): Clarified what --retr-symlinks does.
8672         
8673 2000-09-15  John Daily  <jdaily@cyberdude.com>
8674
8675         * init.c: Add support for "always" and "never" values to allow
8676         .wgetrc to override commandline (useful e.g. with .pm files
8677         calling `wget --passive-ftp' when your firewall doesn't allow that).
8678
8679         * ftp.c (getftp): passive_ftp is first option to support always/never.
8680
8681 2000-08-30  Dan Harkless  <wget@harkless.org>
8682
8683         * ftp.c (ftp_retrieve_list): Use new INFINITE_RECURSION #define.
8684         
8685         * html.c: htmlfindurl() now takes final `dash_p_leaf_HTML' parameter.
8686         Wrapped some > 80-column lines.  When -p is specified and we're at a 
8687         leaf node, do not traverse <A>, <AREA>, or <LINK> tags other than 
8688         <LINK REL="stylesheet">.
8689         
8690         * html.h (htmlfindurl): Now takes final `dash_p_leaf_HTML' parameter.
8691         
8692         * init.c: Added new -p / --page-requisites / page_requisites option.
8693
8694         * main.c (print_help): Clarified that -l inf and -l 0 both allow
8695         infinite recursion.  Changed the unhelpful --mirrior description
8696         to simply give the options it's equivalent to.  Added new -p option.
8697         (main): Added some comments; handle new -p / --page-requisites.
8698         
8699         * options.h (struct options): Added new page_requisites field.
8700
8701         * recur.c: Changed "URL-s" to "URLs" and "HTML-s" to "HTMLs".
8702         Calculate and pass down new `dash_p_leaf_HTML' parameter to
8703         get_urls_html().  Use new INFINITE_RECURSION #define.
8704
8705         * retr.c: Changed "URL-s" to "URLs".  get_urls_html() now takes
8706         final `dash_p_leaf_HTML' parameter.
8707
8708         * url.c: get_urls_html() and htmlfindurl() now take final
8709         `dash_p_leaf_HTML' parameter.
8710
8711         * url.h (get_urls_html): Now takes final `dash_p_leaf_HTML' parameter.
8712
8713         * wget.h: Added some comments and new INFINITE_RECURSION #define.
8714         
8715 2000-08-23  Dan Harkless  <wget@harkless.org>
8716
8717         * main.c (print_help): -B / --base was not mentioned.
8718
8719 2000-08-22  Dan Harkless  <wget@harkless.org>
8720
8721         * main.c (print_help): Modified -nc description to mention that it
8722         also prevents the creation of multiple versions of the same file
8723         with ".<number>" suffixes.
8724
8725 2000-07-14  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8726
8727         * retr.c (retrieve_url): Consistently strdup opt.referer when
8728         setting u->referer.
8729
8730 2000-06-09  Dan Harkless  <wget@harkless.org>
8731
8732         * main.c (print_help): --help output for --waitretry was over 80 cols.
8733
8734 2000-06-09  Hrvoje Niksic  <hniksic@iskon.hr>
8735
8736         * url.c (encode_string): Fix comment.
8737         Suggested by Herold Heiko <Heiko.Herold@previnet.it>.
8738
8739 2000-06-01  Const Kaplinsky  <const@ce.cctpu.edu.ru>
8740
8741         * ftp.c (ftp_retrieve_list): Change permissions only on plain
8742         files.
8743
8744 2000-06-01  Hrvoje Niksic  <hniksic@iskon.hr>
8745
8746         * url.c (str_url): Print the port number only if it's different
8747         from the default port number for that protocol.
8748
8749 2000-05-22  Dan Harkless  <wget@harkless.org>
8750
8751         * main.c (print_help): Added --help line for Damir Dzeko
8752         <ddzeko@zesoi.fer.hr>'s until-now-undocumented --referer option.
8753         Removed comments that --referer and --waitretry were undocumented.
8754         Changed "`.wgetrc' command" to "`.wgetrc'-style command" on --help
8755         line for --execute.
8756
8757 2000-05-18  Hrvoje Niksic  <hniksic@iskon.hr>
8758
8759         * ftp.c (getftp): Ditto.
8760
8761         * http.c (gethttp): Check for return value of fclose/fflush.
8762
8763 2000-04-12  Hrvoje Niksic  <hniksic@iskon.hr>
8764
8765         * host.c (store_hostaddress): Instead of shifting ADDR, start
8766         copying from the correct address.
8767
8768 2000-04-12  Hrvoje Niksic  <hniksic@iskon.hr>
8769
8770         * http.c (gethttp): Don't free REQUEST -- it was allocated with
8771         alloca().
8772         Pointed out by Gisle Vanem <gvanem@eunet.no>.
8773
8774 2000-04-04  Dan Harkless  <wget@harkless.org>
8775
8776         * host.c (store_hostaddress): R. K. Owen's patch introduces a
8777         "left shift count >= width of type" warning on 32-bit
8778         architectures.  Got rid of it by tricking the compiler w/ a variable.
8779         
8780         * url.c (UNSAFE_CHAR): The macro didn't include all the illegal
8781         characters per RFC1738, namely everything above '~'.  It also
8782         generated a warning on OSes where char =~ unsigned char.  Fixed.
8783         
8784 1998-10-17  Hrvoje Niksic  <hniksic@srce.hr>
8785
8786         * http.c (http_process_type): Removed needless strdup(), a memory
8787         leak.
8788
8789 1998-09-25  Hrvoje Niksic  <hniksic@srce.hr>
8790
8791         * html.c (htmlfindurl): Set PH to the first occurrence of `#'.
8792
8793 1998-09-25  Simon Munton  <simonm@m4data.co.uk>
8794
8795         * init.c (wgetrc_file_name): Don't free HOME under Windows.
8796
8797 1998-12-01  "R. K. Owen"  <rkowen@Nersc.GOV>
8798
8799         * host.c (store_hostaddress): Fix for big endian 64-bit machines.
8800
8801 1998-12-01  Hrvoje Niksic  <hniksic@srce.hr>
8802
8803         * url.c (UNSAFE_CHAR): New macro.
8804         (contains_unsafe): Use it.
8805         (encode_string): Ditto.
8806
8807 1998-12-01  Hrvoje Niksic  <hniksic@srce.hr>
8808
8809         * main.c (i18n_initialize): Use LC_MESSAGES only if available.
8810
8811 2000-03-31  Hrvoje Niksic  <hniksic@srce.hr>
8812
8813         * Use TOUPPER/TOLOWER.
8814
8815 1998-12-22  Alexander V. Lukyanov  <lav@yars.free.net>
8816
8817         * ftp-opie.c (btoe): Zero-terminate OSTORE.
8818
8819 2000-03-21  Hrvoje Niksic  <hniksic@iskon.hr>
8820
8821         * wget.h (DO_REALLOC_FROM_ALLOCA): Ditto.
8822
8823         * sysdep.h (ISALNUM): New macro.
8824         (TOLOWER): Ditto.
8825         (TOUPPER): Ditto.
8826
8827 2000-03-10  Dan Harkless  <wget@harkless.org>
8828
8829         * html.c (idmatch): Implemented checking of my new --follow-tags
8830         and --ignore-tags options.
8831         
8832         * init.c (commands): Added comment reminding people adding new
8833         entries doing allocation to add corresponding freeing in cleanup().
8834         (commands): Added new followtags and ignoretags commands.
8835         (cleanup): Free storage for new followtags and ignoretags.
8836         
8837         * main.c: Use of "comma-separated list" was random -- normalized
8838         it.  Did some alphabetization.  Added comments pointing out
8839         "Options without arguments" and "Options accepting an argument"
8840         sections of long_options[].  Added new options --follow-tags and
8841         -G / --ignore-tags.  Added comment that Damir's --referer is
8842         currently undocumented.  Added comment that Heiko's --waitretry is
8843         partially undocumented (mentioned in --help but not in
8844         wget.texi).  Moved improperly sorted 24, 129, and 'G' cases.
8845         
8846         * options.h (struct options): Added new fields follow_tags and
8847         ignore_tags. 
8848         
8849         * wget.h: Added "#define EQ 0" so we can say "strcmp(a, b) == EQ".
8850         
8851 2000-03-02  Dan Harkless  <wget@harkless.org>
8852
8853         * ftp.c (ftp_loop_internal): Heiko introduced "suggest explicit
8854         braces to avoid ambiguous `else'" warnings.  Eliminated them.
8855         
8856         * http.c (gethttp): Dan Berger's query string patch is totally
8857         bogus.  If you have two different URLs, gen_page.cgi?page1 and
8858         get_page.cgi?page2, they'll both be saved as get_page.cgi and the
8859         second will overwrite the first.  Also, parameters to implicit
8860         CGIs, like "http://www.host.com/db/?2000-03-02" cause the URLs to
8861         be printed with trailing garbage characters, and could seg fault.
8862         Backing out the patch, which Dan B. informed me by email was just
8863         a kludge to download StarOffice from Sun made necessary due to
8864         wget's unconditional escaping of certain characters (room for an
8865         option there?).
8866         (http_loop): Heiko introduced "suggest explicit braces to avoid
8867         ambiguous `else'" warnings.  Eliminated them.
8868         
8869         * main.c: Heiko's --wait / --waitretry backwards compatibility
8870         code looks to have been totally untested -- automatic variable
8871         'wr' was used without being initialized, and a long int was passed
8872         into setval()'s char* val parameter.
8873         
8874         * recur.c (parse_robots): Applied Edward J. Sabol
8875         <sabol@alderaan.gsfc.nasa.gov>'s patch for Guan Yang's reported
8876         problem with "User-agent:<space>*<space>" lines in robots.txt.
8877         
8878         * url.c (parseurl, str_url): Removing Dan Berger's code (see
8879         http.c above for explanation).
8880         
8881 1999-08-25  Heiko Herold  <Heiko.Herold@previnet.it>
8882
8883         * ftp.c: Respect new option waitretry.
8884
8885 2000-01-30  Damir Dzeko  <ddzeko@zesoi.fer.hr>
8886
8887         * http.c (gethttp): Send custom Referer, if required.
8888
8889 1999-09-24  Charles G Waldman  <cgw@fnal.gov>
8890
8891         * netrc.c (parse_netrc): Allow passwords to contain spaces.
8892
8893         * netrc.c (parse_netrc): New function.
8894
8895 1999-09-17  Dan Berger  <dberger@ix.netcom.com>
8896
8897         * http.c (gethttp): Send it.
8898
8899         * url.c (parseurl): Detect query string in HTTP URL-s.
8900         (str_url): Print it.
8901
8902 2000-03-02  HIROSE Masaaki  <hirose31@t3.rim.or.jp>
8903
8904         * html.c (html_allow): Add <link href=...> and <script src=...>.
8905
8906 1999-05-02  andrew deryabin  <djsf@softhome.net>
8907
8908         * http.c (gethttp): Specify port in `Host' header only if it's
8909         different from 80.
8910
8911 1998-11-03  Edward J. Sabol  <sabol@alderaan.gsfc.nasa.gov>
8912
8913         * recur.c (recursive_retrieve): If a finite maximum depth is
8914         specified, and we're are already at that depth, don't download the
8915         HTML file for parsing.
8916
8917 2000-03-01  Dan Harkless  <wget@harkless.org>
8918
8919         * ftp.c (ftp_loop_internal): Call new downloaded_file() function,
8920         even though we don't do conversion on HTML files retrieved via
8921         FTP, so _current_ usage of downloaded_file() makes this call unneeded. 
8922         (ftp_retrieve_list): Added a comment saying where we need to
8923         stat() a .orig file if FTP'd HTML file conversion is ever implemented.
8924         (ftp_retrieve_list): "Local file '%s' is more recent," is sometimes
8925         a lie -- reworded as "Server file no newer than local file '%s' --".
8926         
8927         * http.c (http_loop): Fixed a typo and clarified a comment.
8928         (http_loop): When -K and -N are specified together, compare size
8929         and timestamp of server file X against local file X.orig (if
8930         extant) rather than converted local file X.
8931         (http_loop): "Local file '%s' is more recent," is sometimes a lie
8932         -- reworded as "Server file no newer than local file '%s' --".
8933         (http_loop): Call new downloaded_file() function to prevent
8934         wrongful overwriting of .orig file when -N is specified.
8935         
8936         * url.c (convert_links): When -K specified, only rename X to
8937         X.orig if downloaded_file() returns TRUE.  Otherwise when we skip
8938         file X due to -N, we clobber an X.orig from a previous invocation.
8939         (convert_links): Call the failsafe xstrdup(), not the real strdup().
8940         (convert_links): Added a note asking anyone who understands how
8941         multiple URLs can correspond to a single file to comment it.
8942         (downloaded_file): Added this new function.
8943         
8944         * url.h (downloaded_file): Added prototype for this new function
8945         as well as its downloaded_file_t enum type.
8946
8947         * wget.h (boolean): Added this new typedef and TRUE and FALSE #defines.
8948
8949 2000-02-29  Dan Harkless  <wget@harkless.org>
8950
8951         * version.c: Upped version to developer-only "1.5.3+dev".
8952
8953 2000-02-18  Dan Harkless  <wget@harkless.org>
8954
8955         * init.c (backup_converted): Added this new option.
8956
8957         * main.c (-K / --backup-converted): Added this new option.
8958
8959         * options.h (backup_converted): Added this new option.
8960
8961         * url.c (convert_links): When backup_converted is specified, save
8962         file X as X.orig before converting.
8963
8964         * url.h (urlpos): Fixed typo -- said "Rekative" instead of "Relative".
8965
8966 1998-09-21  Hrvoje Niksic  <hniksic@srce.hr>
8967
8968         * version.c: Wget 1.5.3 is released.
8969
8970 1998-09-21  Hrvoje Niksic  <hniksic@srce.hr>
8971
8972         * host.c (ftp_getaddress): Don't warn when reverse-lookup of local 
8973         address doesn't yield FQDN.
8974
8975 1998-09-21  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
8976
8977         * cmpt.c (strerror): Fix declaration of sys_errlist.
8978
8979 1998-09-11  Hrvoje Niksic  <hniksic@srce.hr>
8980
8981         * main.c (main): Don't use an array subscript as the first
8982         argument to STRDUP_ALLOCA.
8983         From Kaveh R. Ghazi.
8984
8985 1998-09-11  Szakacsits Szabolcs  <szaka@sienet.hu>
8986
8987         * html.c (htmlfindurl): Download table background.
8988
8989 1998-09-11  Hans Grobler  <grobh@conde.ee.sun.ac.za>
8990
8991         * init.c (parse_line): Would free *com before allocating it.
8992         (parse_line): Would free com instead of *com.
8993
8994 1998-09-10  Howard Gayle  <howard@fjst.com>
8995
8996         * url.c (get_urls_html): Would drop the last character of the
8997         link.
8998
8999 1998-09-10  Hrvoje Niksic  <hniksic@srce.hr>
9000
9001         * http.c (http_loop): Don't print status code if quiet.
9002
9003 1998-09-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9004
9005         * log.c: Use <stdarg.h> only when __STDC__.
9006
9007 1998-09-10  Adam D. Moss  <adam@foxbox.org>
9008
9009         * html.c (htmlfindurl): Download <layer src=...>.
9010
9011 1998-09-10  Howard Gayle  <howard@fjst.com>
9012
9013         * ftp.c (ftp_retrieve_list): Don't update the time stamp of a file 
9014         not retrieved.
9015
9016 1998-06-27  Hrvoje Niksic  <hniksic@srce.hr>
9017
9018         * utils.c: Include <libc.h> on NeXT.
9019
9020 1998-06-26  Heinz Salzmann  <heinz.salzmann@intermetall.de>
9021
9022         * url.c (get_urls_html): Fix calculation of URL position.
9023
9024 1998-06-23  Hrvoje Niksic  <hniksic@srce.hr>
9025
9026         * version.c: Wget 1.5.2 is released.
9027
9028 1998-06-23  Dave Love  <d.love@dl.ac.uk>
9029
9030         * ftp.c, init.c, netrc.c: Include errno.h.
9031
9032         * http.c: Include errno.h and time header.
9033
9034         * Makefile.in (exext): Define.
9035         (install.bin, uninstall.bin): Use it.
9036
9037 1998-06-21  Hrvoje Niksic  <hniksic@srce.hr>
9038
9039         * http.c (http_loop): Don't attempt to compare local and remote
9040         sizes if the remote size is unknown.
9041
9042 1998-06-16  Hrvoje Niksic  <hniksic@srce.hr>
9043
9044         * url.c (get_urls_html): Use malloc() instead of alloca in the
9045         loop.
9046
9047 1998-06-13  Hrvoje Niksic  <hniksic@srce.hr>
9048
9049         * version.c: Wget 1.5.2-b4 is released.
9050
9051 1998-06-13  Hrvoje Niksic  <hniksic@srce.hr>
9052
9053         * url.c (get_urls_html): Ignore spaces before and after the URI.
9054
9055 1998-06-08  Wanderlei Antonio Cavassin  <cavassin@conectiva.com.br>
9056
9057         * ftp.c (getftp): Translate `done'.
9058
9059 1998-06-06  Hrvoje Niksic  <hniksic@srce.hr>
9060
9061         * version.c: Wget 1.5.2-b3 is released.
9062
9063 1998-06-06  Alexander Kourakos  <awk@bnt.com>
9064
9065         * init.c (cleanup): Close dfp, don't free it.
9066
9067 1998-06-06  Hrvoje Niksic  <hniksic@srce.hr>
9068
9069         * utils.c (make_directory): Twiddle.
9070
9071         * config.h.in: Added template for access().
9072
9073 1998-06-05  Mathieu Guillaume  <mat@cythere.com>
9074
9075         * html.c (htmlfindurl): Download <input src=...>
9076
9077 1998-06-03  Hrvoje Niksic  <hniksic@srce.hr>
9078
9079         * utils.c (file_exists_p): Use access() with two arguments.
9080
9081 1998-05-27  Martin Kraemer  <Martin.Kraemer@mch.sni.de>
9082
9083         * netrc.c (parse_netrc): Correct logic.
9084
9085 1998-05-27  Hrvoje Niksic  <hniksic@srce.hr>
9086
9087         * ftp.c (getftp): Added `break'; suggested by Lin Zhe Min
9088         <ljm@ljm.wownet.net>.
9089
9090 1998-05-24  Hrvoje Niksic  <hniksic@srce.hr>
9091
9092         * version.c: Wget 1.5.2-b2 is released.
9093
9094 1998-05-18  Juan Jose Rodriguez  <jcnsoft@jal1.telmex.net.mx>
9095
9096         * mswindows.h: Don't translate mkdir to _mkdir under Borland.
9097
9098 1998-05-17  Hrvoje Niksic  <hniksic@srce.hr>
9099
9100         * retr.c (elapsed_time): Return correct value when
9101         HAVE_GETTIMEOFDAY is undefined.
9102
9103 1998-05-13  Hrvoje Niksic  <hniksic@srce.hr>
9104
9105         * version.c: Wget 1.5.2-b1 is released.
9106
9107 1998-05-08  Hrvoje Niksic  <hniksic@srce.hr>
9108
9109         * getopt.c (_getopt_internal): Use exec_name instead of argv[0].
9110         (_getopt_internal): Don't translate `#if 0'-ed strings.
9111
9112 1998-05-06  Douglas E. Wegscheid  <wegscd@whirlpool.com>
9113
9114         * mswindows.c (ws_handler): Use fork_to_background().
9115
9116 1998-05-05  Hrvoje Niksic  <hniksic@srce.hr>
9117
9118         * version.c: Wget 1.5.1 is released.
9119
9120 1998-05-05  Hrvoje Niksic  <hniksic@srce.hr>
9121
9122         * http.c (parse_http_status_line): Avoid `minor' and `major'
9123         names.
9124
9125 1998-05-02  Hrvoje Niksic  <hniksic@srce.hr>
9126
9127         * utils.c (mkdirhier): Renamed to make_directory.
9128
9129 1998-05-01  Hrvoje Niksic  <hniksic@srce.hr>
9130
9131         * mswindows.c (fork_to_background): Define under Windows.
9132
9133         * utils.c (fork_to_background): New function.
9134
9135         * html.c (htmlfindurl): Removed rerdundant casts.
9136
9137 1998-05-01  Douglas E. Wegscheid  <wegscd@whirlpool.com>
9138
9139         * mswindows.c (ws_mypath): Cache the path.
9140
9141 1998-04-30  Douglas E. Wegscheid  <wegscd@whirlpool.com>
9142
9143         * ftp.h: Prefix enum ftype members with FT_.
9144
9145         * ftp-ls.c, ftp.c, html.h: Adjust accordingly.
9146
9147         * mswindows.h: Use stat under Borland, _stat under MSVC.
9148
9149 1998-04-28  Hrvoje Niksic  <hniksic@srce.hr>
9150
9151         * http.c (known_authentication_scheme_p): New function.
9152         (gethttp): Handle authorization more correctly.
9153
9154         * ftp-basic.h: Removed.
9155
9156         * cmpt.h: Removed.
9157
9158         * utils.c: Include <unistd.h> before <pwd.h>; needed under SunOS
9159         with gcc 2.8.
9160         (numdigit): Use `while' loop.
9161
9162         * http.c (create_authorization_line): Detect authentication
9163         schemes case-insensitively.
9164
9165         * http.c (extract_header_attr): Use strdupdelim().
9166         (digest_authentication_encode): Move declaration of local
9167         variables to smaller scope.
9168         (digest_authentication_encode): Reset REALM, OPAQUE and NONCE.
9169         (create_authorization_line): Detect authentication schemes
9170         case-insensitively.
9171
9172         * utils.c (touch): Constify.
9173
9174         * http.c (gethttp): Report a nicer error when no data is received.
9175
9176         * rbuf.h (RBUF_READCHAR): Ditto.
9177
9178         * ftp-basic.c (ftp_response): Use sizeof.
9179
9180 1998-04-27  Hrvoje Niksic  <hniksic@srce.hr>
9181
9182         * retr.c (print_percentage): EXPECTED is long, not int.
9183         (print_percentage): Use floating-point arithmetic to avoid
9184         overflow with large files' sizes multiplied with 100.
9185
9186 1998-04-27  Gregor Hoffleit  <flight@mathi.uni-heidelberg.de>
9187
9188         * config.h.in: Added pid_t stub.
9189
9190         * sysdep.h (S_ISREG): Moved here from mswindows.h (NeXT doesn't
9191         define it).
9192
9193 1998-04-20  Hrvoje Niksic  <hniksic@srce.hr>
9194
9195         * version.c: Wget 1.5.0 is released.
9196
9197 1998-04-18  Hrvoje Niksic  <hniksic@srce.hr>
9198
9199         * url.c (str_url): Ditto.
9200
9201         * ftp-basic.c (ftp_rest): Use new name.
9202
9203         * utils.c (long_to_string): Renamed from prnum().
9204
9205 1998-04-16  Hrvoje Niksic  <hniksic@srce.hr>
9206
9207         * version.c: Wget 1.5-b17 is released.
9208
9209 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
9210
9211         * headers.c (header_get): New argument FLAGS.
9212
9213         * http.c (gethttp): If request is malformed, bail out of the
9214         header loop.
9215         (gethttp): Check for empty header *after* the status line checks.
9216         (gethttp): Disallow continuations for status line.
9217
9218 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
9219
9220         * version.c: Wget 1.5-b16 is released.
9221
9222 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
9223
9224         * init.c (commands): Renamed `always_rest' to `continue'.
9225
9226 1998-04-05  Hrvoje Niksic  <hniksic@srce.hr>
9227
9228         * all: Use it.
9229
9230         * log.c (logputs): New argument.
9231         (logvprintf): Ditto.
9232         (logprintf): Ditto.
9233
9234 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
9235
9236         * http.c (http_atotm): Update comment.
9237
9238         * main.c (i18n_initialize): Set LC_MESSAGES, not LC_ALL.
9239
9240         * wget.h: Renamed ENABLED_NLS to HAVE_NLS.
9241
9242         * main.c (i18n_initialize): New function.
9243         (main): Use it.
9244
9245         * log.c: Include <unistd.h>.
9246
9247         * retr.c (show_progress): Cast alloca to char *.
9248
9249 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
9250
9251         * version.c: Wget 1.5-b15 is released.
9252
9253 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
9254
9255         * utils.h: Declare file_non_directory_p().
9256
9257 1998-04-03  Hrvoje Niksic  <hniksic@srce.hr>
9258
9259         * main.c (main): It's `tries', not `numtries' now.
9260
9261 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
9262
9263         * init.c (getperms): Removed.
9264
9265 1998-04-01  Tim Charron  <tcharron@interlog.com>
9266
9267         * log.c (logvprintf): Don't use ARGS twice.
9268
9269 1998-04-01  John  <john@futuresguide.com>
9270
9271         * mswindows.c: Cleaned up.
9272
9273 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
9274
9275         * version.c: Wget 1.5-b14 is released.
9276
9277 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
9278
9279         * ftp-opie.c (STRLEN4): New macro.
9280         (btoe): Use it.
9281
9282 1998-04-01  Junio Hamano  <junio@twinsun.com>
9283
9284         * http.c: Document all the Digest functions.
9285
9286 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
9287
9288         * utils.c (file_non_directory_p): Renamed from isfile().
9289
9290         * mswindows.h (S_ISREG): New macro, suggested by Tim Adam.
9291
9292 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
9293
9294         * utils.c (mkdirhier): Use 0777 instead of opt.dirmode.
9295
9296         * init.c (cmd_spec_dotstyle): Use 48 dots per line for binary
9297         style.
9298         (cmd_permissions): Removed.
9299
9300         * config.h.in: Add template for WORDS_BIGENDIAN.
9301
9302 1998-03-31  Junio Hamano  <junio@twinsun.com>
9303
9304         * http.c (HEXD2asc): New macro.
9305         (dump_hash): Use it.
9306
9307 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
9308
9309         * version.c: Wget 1.5-b13 is released.
9310
9311 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
9312
9313         * main.c (main): Don't try to use `com'.
9314
9315 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
9316
9317         * init.c (cmd_permissions): New function.
9318
9319 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
9320
9321         * version.c: Wget 1.5-b12 is released.
9322
9323 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
9324
9325         * init.c (commands): Renamed `numtries' to `tries'.
9326         (cmd_spec_debug): Removed.
9327         (home_dir): Under Windows, return `C:\' if HOME is undefined.
9328
9329 1998-03-29  Hrvoje Niksic  <hniksic@srce.hr>
9330
9331         * config.h.in: Define _XOPEN_SOURCE.
9332
9333         * init.c (check_user_specified_header): New function.
9334         (cmd_spec_header): Use it.
9335         (cmd_spec_useragent): New function.
9336
9337 1998-03-29  Hrvoje Niksic  <hniksic@srce.hr>
9338
9339         * version.c: Wget 1.5-b11 is released.
9340
9341 1998-03-28  Hrvoje Niksic  <hniksic@srce.hr>
9342
9343         * wget.h: Include <libintl.h> only if NLS is enabled.
9344
9345 1998-03-26  Hrvoje Niksic  <hniksic@srce.hr>
9346
9347         * options.h (struct options): Made `wait' a long.
9348         (struct options): Ditto for `timeout'.
9349
9350 1998-03-19  Hrvoje Niksic  <hniksic@srce.hr>
9351
9352         * utils.c (exists): Renamed to file_exists_p.
9353         (file_exists_p): Use access() if available.
9354
9355 1998-03-17  Hrvoje Niksic  <hniksic@srce.hr>
9356
9357         * utils.c (memfatal): Set save_log_p to 0 to avoid potential
9358         infloop.
9359
9360         * log.c: do_logging -> save_log_p.
9361
9362         * config.h.in: Added template for HAVE_VSNPRINTF.
9363
9364 1998-03-16  Hrvoje Niksic  <hniksic@srce.hr>
9365
9366         * init.c: Ditto.
9367
9368         * http.c: Protect declaration against non-ANSI compiler.
9369
9370         * log.c (logvprintf): Use vsnprintf() if available.
9371
9372         * getopt.c (main): Don't translate test stuff.
9373
9374 1998-03-16  Hrvoje Niksic  <hniksic@srce.hr>
9375
9376         * version.c: Wget 1.5-b10 is released.
9377
9378 1998-03-11  Hrvoje Niksic  <hniksic@srce.hr>
9379
9380         * ftp.c (getftp): Don't translate "CWD %s".
9381
9382         * wget.h (GCC_FORMAT_ATTR): Renamed from FORMAT_ATTR.
9383
9384 1998-03-07  Hrvoje Niksic  <hniksic@srce.hr>
9385
9386         * ftp-opie.c (btoe): Use memcpy() instead of strncat().
9387
9388         * log.c (logputs): New function.
9389         (logvprintf): Renamed from vlogmsg; use logputs().
9390
9391         * retr.c (show_progress): Print `[100%]' when the retrieval is
9392         finished.
9393
9394         * init.c (run_wgetrc): Use FILE, not PATH.
9395         (wgetrc_file_name): Ditto.
9396
9397 1998-03-07  Tim Adam  <tma@osa.com.au>
9398
9399         * recur.c (parse_robots): Correctly reset `entries' on empty
9400         disallow.
9401
9402 1998-03-07  Hrvoje Niksic  <hniksic@srce.hr>
9403
9404         * init.c (cmd_spec_debug): Use cmd_boolean().
9405
9406 1998-02-23  Hrvoje Niksic  <hniksic@srce.hr>
9407
9408         * http.c (gethttp): Create proxy-authorization correctly.
9409
9410 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
9411
9412         * md5.c: Ditto.
9413
9414         * getopt.c: Use ANSI function definitions.
9415
9416         * ftp-opie.c: New file.
9417
9418         * options.h: Don't redefine EXTERN.
9419
9420         * init.c: Sort it correctly.
9421
9422 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
9423
9424         * version.c: Wget 1.5-b9 is released.
9425
9426 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
9427
9428         * recur.c (recursive_retrieve): Reset `first_time'.
9429
9430         * ftp.c (getftp): Added `default' clause to switches of uerr_t.
9431
9432         * rbuf.c (rbuf_peek): Simplified.
9433         (rbuf_flush): Use MINVAL.
9434
9435         * wget.h (MINVAL): Moved from url.h.
9436
9437         * rbuf.h (RBUF_FD): New macro.
9438
9439         * url.c (add_url): Add to the head of the list.
9440
9441         * ftp.c (ftp_retrieve_list): Set the permissions to downloaded
9442         file.
9443         (getftp): Set the default permissions to 0600.
9444
9445 1998-02-21  Hrvoje Niksic  <hniksic@srce.hr>
9446
9447         * url.c (get_urls_html): Ditto.
9448         (convert_links): Ditto.
9449
9450         * recur.c (parse_robots): Ditto.
9451
9452         * html.c (ftp_index): Ditto.
9453
9454         * ftp-ls.c (ftp_parse_unix_ls): Open file as binary.
9455
9456         * init.c (defaults): Initialize `opt' to zero via memset.
9457
9458         * http.c (digest_authentication_encode): goto considered harmful.
9459
9460 1998-02-19  Hrvoje Niksic  <hniksic@srce.hr>
9461
9462         * ftp.c (delelement): Simplify and fix leak.
9463
9464 1998-02-18  Hrvoje Niksic  <hniksic@srce.hr>
9465
9466         * http.c (dump_hash): Use HEXD2ASC instead of home-grown stuff.
9467
9468         * url.h (HEXD2ASC): Removed warning.
9469
9470         * init.c (comind): Use binary search.
9471         (commands): Reorganized.
9472         (setval): Ditto.
9473         (cmd_boolean): New function.
9474         (cmd_number): Ditto.
9475         (cmd_number_inf): Ditto.
9476         (cmd_string): Ditto.
9477         (cmd_vector): Ditto.
9478         (cmd_directory_vector): Ditto.
9479         (cmd_bytes): Ditto.
9480         (cmd_time): Ditto.
9481         (cmd_spec_debug): Ditto.
9482         (cmd_spec_dirmode): Ditto.
9483         (cmd_spec_dirstruct): Ditto.
9484         (cmd_spec_dotstyle): Ditto.
9485         (cmd_spec_header): Ditto.
9486         (cmd_spec_htmlify): Ditto.
9487         (cmd_spec_mirror): Ditto.
9488         (cmd_spec_outputdocument): Ditto.
9489         (cmd_spec_recursive): Ditto.
9490         (settime): Merged with cmd_time().
9491         (setbytes): Merged with cmd_bytes().
9492         (setonoff): Merged with cmd_boolean().
9493         (onoff): Ditto.
9494
9495 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
9496
9497         * Makefile.in (distclean): Remove `config.h'.
9498
9499 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
9500
9501         * version.c: Wget 1.5-b8 is released.
9502
9503 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
9504
9505         * http.c (digest_authentication_encode): New function.
9506         (create_authorization_line): Use it.
9507         (dump_hash): New function.
9508         (digest_authentication_encode): Use it.
9509
9510         * fnmatch.c: Renamed from `mtch.c'.
9511
9512 1998-02-15  Karl Eichwalder  <ke@suse.de>
9513
9514         * main.c (main): Tag "Written by..." string as translatable.
9515
9516 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
9517
9518         * wget.h (FREE_MAYBE): New macro.
9519
9520         * http.c (create_authorization_line): Don't use ANSI C string
9521         concatenation feature.
9522         (basic_authentication_encode): Use alloca() for temporary
9523         variables.
9524
9525         * recur.h: Ditto.
9526
9527         * http.c: Ditto.
9528
9529         * headers.h: Ditto.
9530
9531         * ftp-basic.c: Protect declaration against non-ANSI compiler.
9532
9533         * http.c (create_authorization_line): Cast `unsigned char *' to
9534         `char *' for sprintf, to shut up the noisy Digital Unix cc.
9535
9536 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
9537
9538         * version.c: Wget 1.5-b7 is released.
9539
9540 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
9541
9542         * cmpt.c (strstr): Synched with glibc-2.0.6.
9543
9544         * ftp-basic.c (calculate_skey_response): Ditto.
9545         (calculate_skey_response): Use alloca().
9546
9547         * http.c (create_authorization_line): Work with FSF's version of
9548         md5.c.
9549
9550         * md5.c: New file, from GNU libc.
9551
9552 1998-02-14  Hrvoje Niksic  <hniksic@srce.hr>
9553
9554         * url.h (URL_CLEANSE): Name the temporary variable more carefully.
9555
9556 1998-02-13  Hrvoje Niksic  <hniksic@srce.hr>
9557
9558         * http.c (basic_authentication_encode): New function, instead of
9559         the macro.
9560
9561 1998-02-13  Junio Hamano  <junio@twinsun.com>
9562
9563         * http.c: Add HTTP-DA support.
9564         * ftp-basic.c: Add Opie/S-key support.
9565         * config.h.in, Makefile.in: Add HTTP-DA and Opie/S-key support.
9566         * md5.c, md5.h: New files.
9567
9568 1998-02-13  Hrvoje Niksic  <hniksic@srce.hr>
9569
9570         * http.c (http_process_range): Renamed from hprocrange().
9571         (http_process_range): Parse the whole header.
9572
9573         * headers.c: New file.
9574         (header_process): New function.
9575         (header_get): Renamed from fetch_next_header.
9576
9577         * all: Include utils.h only where necessary.
9578
9579         * wget.h: Declare xmalloc(), xrealloc() and xstrdup() here.
9580
9581         * wget.h: Add provisions for dmalloc.
9582
9583 1998-02-12  Hrvoje Niksic  <hniksic@srce.hr>
9584
9585         * version.c: Wget 1.5-b6 is released.
9586
9587 1998-02-12  Hrvoje Niksic  <hniksic@srce.hr>
9588
9589         * ftp.c (ftp_loop): Determine `filename' more precisely.
9590
9591         * init.c (setval): Don't set `opt.quiet' if output-document is
9592         `-'.
9593
9594         * log.c (log_init): Print to STDERR instead of STDOUT.
9595         (vlogmsg): Use STDERR by default.
9596         (logflush): Ditto.
9597
9598 1998-02-11  Simon Josefsson  <jas@pdc.kth.se>
9599
9600         * host.c: Use addr_in again.
9601
9602 1998-02-08  Karl Eichwalder  <karl@suse.de>
9603
9604         * http.c (gethttp): Fixed typo.
9605
9606 1998-02-08  Hrvoje Niksic  <hniksic@srce.hr>
9607
9608         * version.c: Wget 1.5-b5 is released.
9609
9610 1998-02-08  Hrvoje Niksic  <hniksic@srce.hr>
9611
9612         * retr.c (show_progress): Use it.
9613
9614         * log.c (logflush): New function.
9615
9616         * wget.h: Utilize __attribute__ if on gcc.
9617
9618 1998-02-07  Hrvoje Niksic  <hniksic@srce.hr>
9619
9620         * http.c (base64_encode_line): New argument LENGTH.
9621         (BASIC_AUTHENTICATION_ENCODE): Use it.
9622         (BASIC_AUTHENTICATION_ENCODE): Take length of HEADER into account.
9623
9624         * main.c (main): Fixed fprintf() format mismatch.
9625
9626 1998-02-06  Hrvoje Niksic  <hniksic@srce.hr>
9627
9628         * version.c: Wget 1.5-b4 is released.
9629
9630 1998-02-03  Simon Josefsson  <jas@pdc.kth.se>
9631
9632         * host.c: use sockaddr_in instead of addr_in.
9633
9634 1998-02-04  Hrvoje Niksic  <hniksic@srce.hr>
9635
9636         * init.c (cleanup): Use it.
9637
9638         * recur.c (recursive_cleanup): New function.
9639
9640         * retr.c (retrieve_from_file): Ditto.
9641
9642         * main.c (main): Use it.
9643
9644         * recur.c (recursive_reset): New function.
9645
9646         * retr.c (retrieve_from_file): Ditto.
9647
9648         * main.c (main): Simplify call to recursive_retrieve().
9649
9650         * recur.c (recursive_retrieve): Removed FLAGS argument.
9651
9652         * http.c (gethttp): Changed call to iwrite().
9653
9654 1998-02-03  Hrvoje Niksic  <hniksic@srce.hr>
9655
9656         * url.c (get_urls_html): Ditto.
9657         (free_urlpos): Ditto.
9658         (mkstruct): Ditto.
9659         (construct): Ditto.
9660
9661         * retr.c (retrieve_url): Move declaration of local variables to
9662         smaller scope.
9663
9664         * url.c (urlproto): Use it.
9665         (parseurl): Ditto.
9666         (str_url): Ditto.
9667         (get_urls_html): Ditto.
9668
9669         * utils.h (ARRAY_SIZE): New macro.
9670
9671         * url.c (proto): Moved from url.h.
9672
9673         * url.h (URL_CLEANSE): Reformatted.
9674         (USE_PROXY_P): Renamed from USE_PROXY.
9675
9676         * ftp-basic.c: Adjust to the new interface of iwrite().
9677
9678         * ftp-basic.c (ftp_port): Use alloca().
9679
9680 1998-02-03  Hrvoje Niksic  <hniksic@srce.hr>
9681
9682         * version.c: Wget 1.5-b3 is released.
9683
9684         * host.c (ftp_getaddress): Don't print to stderr directly.
9685
9686         * init.c (setbytes): Support `g' for gigabytes.
9687         (cmdtype): New specification CTIME.
9688         (setval): Use it with settime().
9689         (commands): Use it for WAIT and TIMEOUT.
9690
9691 1998-02-02  Hrvoje Niksic  <hniksic@srce.hr>
9692
9693         * http.c (BASIC_AUTHENTICATION_ENCODE): New macro.
9694         (gethttp): Use it.
9695
9696         * utils.c (unique_name_1): Moved from url.c.
9697         (unique_name): Ditto.
9698
9699         * url.c (url_filename): Ditto.
9700
9701         * log.c (redirect_output): Changed call to unique_name().
9702
9703         * url.c (unique_name_1): Renamed from unique_name().
9704         (unique_name): Changed interface.
9705
9706         * init.c (enum cmdid): Moved from init.h.
9707         (cmdtype): Ditto.
9708         (struct cmd): Ditto.
9709
9710         * main.c (main): Use it.
9711         (main): Moved `--backups' to not have a short option.
9712
9713         * options.h (struct options): New member BACKGROUND.
9714
9715         * main.c (print_help): Rearranged.
9716         (main): New long options for -n* short options: --no-directories,
9717         --no-host-directories, --non-verbose, --no-host-lookup and
9718         --dont-remove-listing.
9719
9720 1998-02-01  Hrvoje Niksic  <hniksic@srce.hr>
9721
9722         * main.c (main): Use log_close().
9723
9724         * log.c: New variable LOGFP.
9725         (vlogmsg): Use it.
9726         (redirect_output): Don't open /dev/null; set LOGFP to stdin
9727         instead.
9728         (log_close): New function.
9729
9730         * options.h (struct options): Removed LFILE.
9731
9732         * log.c (log_enable): Removed.
9733
9734         * main.c (main): Use it.
9735
9736         * log.c (log_init): New function.
9737
9738         * url.c (get_urls_html): Removed needless assignment to BASE.
9739
9740         * host.c (add_hlist): Don't set CMP needlessly.
9741
9742         * utils.c (match_backwards): Ditto.
9743         (in_acclist): Ditto.
9744
9745         * url.c (findurl): Ditto.
9746
9747         * netrc.c (parse_netrc): Ditto.
9748
9749         * log.c (log_dump): Ditto.
9750
9751         * html.c (html_quote_string): Ditto.
9752
9753         * ftp-basic.c (ftp_request): Made static.
9754
9755         * connect.c: Made global variables static.
9756
9757         * url.c (construct): Ditto.
9758
9759         * init.c (init_path): Avoid assignment inside `if'-condition.
9760
9761         * ftp.c: Don't include in.h or winsock.h.
9762
9763         * ftp.c (ftp_loop): Use SZ.
9764
9765         * connect.c (bindport): Cast &addrlen to int *.
9766         (conaddr): Ditto.
9767
9768         * init.c (initialize): Don't use SYSTEM_WGETRC unconditionally.
9769
9770 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
9771
9772         * ftp.c (getftp): Initialize opt.ftp_pass here.
9773         (ftp_retrieve_dirs): Use alloca().
9774
9775         * init.c (defaults): Don't initialize opt.ftp_pass.
9776
9777         * sysdep.h (S_ISLNK): Declare for OS/2; ditto for lstat.
9778         From Ivan F. Martinez <ivanfm@ecodigit.com.br>.
9779
9780 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
9781
9782         * recur.c (parse_robots): Check for comments more correctly.
9783
9784         * host.c (ftp_getaddress): Use STRDUP_ALLOCA.
9785         (ftp_getaddress): Add diagnostics when reverse-lookup yields only
9786         hostname.
9787
9788 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
9789
9790         * version.c: Wget 1.5-b2 is released.
9791
9792         * netrc.c (NETRC_FILE_NAME): Moved from netrc.h.
9793
9794         * utils.c (proclist): Pass FNM_PATHNAME to fnmatch().
9795
9796         * ftp-basic.c (ftp_pasv): Avoid unnecessary casting to unsigned
9797         char.
9798
9799         * log.c: Don't attempt to hide arguments from ansi2knr.
9800
9801         * cmpt.c: Synched strptime() and mktime() with glibc-2.0.6.
9802
9803         * ansi2knr.c: Use a later version, from fileutils-3.16l alpha.
9804
9805         * ftp.c (getftp): Ditto.
9806
9807         * http.c (gethttp): Use it.
9808
9809         * retr.c (get_contents): New argument EXPECTED; pass it to
9810         show_progress().
9811         (show_progress): New argument EXPECTED; use it to display
9812         percentages.
9813
9814         * init.c (setval): Ditto.
9815
9816         * http.c (gethttp): Ditto.
9817         (http_loop): Ditto.
9818
9819         * ftp.c (getftp): Ditto.
9820         (ftp_loop_internal): Ditto.
9821
9822         * ftp-ls.c (ftp_parse_unix_ls): Use abort() instead of assert(0).
9823
9824         * sysdep.h (CLOSE): Simplify; use DEBUGP.
9825
9826         * netrc.c (search_netrc): Use alloca().
9827
9828         * init.c (defaults): Initialize no_flush.
9829
9830         * log.c (vlogmsg): Don't flush if no_flush.
9831
9832         * options.h (struct options): New variable no_flush.
9833
9834         * main.c (main): Don't play games with buffering.
9835
9836         * log.c (vlogmsg): Flush the output after every message.
9837
9838 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
9839
9840         * init.c (parse_line): Ditto.
9841
9842         * url.c (get_urls_html): Ditto.
9843
9844         * main.c (main): Don't cast to unsigned char.
9845
9846         * init.c (run_wgetrc): Don't cast to unsigned char.
9847         (parse_line): Accept char instead of unsigned char.
9848
9849         * html.c (htmlfindurl): Use char instead of unsigned char.
9850
9851         * all: Use them.
9852
9853         * sysdep.h: Add wrappers to ctype macros to make them
9854         eight-bit-clean:
9855
9856 1998-01-30  Hrvoje Niksic  <hniksic@srce.hr>
9857
9858         * html.c (htmlfindurl): Download <img lowsrc=...>
9859
9860         * main.c (main): Ignore SIGPIPE.
9861
9862         * connect.c (select_fd): New argument WRITEP.
9863         (iwrite): Call select_fd().
9864
9865 1997-02-27  Fila Kolodny <fila@ibi.com>
9866
9867         * ftp.c (ftp_retrieve_list): If retrieving symlink and the proper
9868         one already exists, just skip it.
9869
9870 1998-01-30  Hrvoje Niksic  <hniksic@srce.hr>
9871
9872         * http.c (gethttp): Cosmetic changes.
9873
9874         * http.c (check_end): Allow `+D...' instead of `GMT'.
9875         From Fabrizio Pollastri <pollastri@cstv.to.cnr.it>.
9876
9877         * url.c (process_ftp_type): New function.
9878         (parseurl): Use it.
9879
9880         * connect.c (iwrite): Allow writing in a few chunks.
9881         (bindport): Made SRV static, so addr can point to it.
9882         (select_fd): Removed HPUX kludge.
9883
9884         * host.c (free_hlist): Incorporated into clean_hosts().
9885
9886 1998-01-29  Hrvoje Niksic  <hniksic@srce.hr>
9887
9888         * host.c (hlist): Made static.
9889         (search_address): Cosmetic change.
9890
9891 1998-01-29  Hrvoje Niksic  <hniksic@srce.hr>
9892
9893         * version.c: Wget v1.5-b1 is released.
9894
9895         * http.c (hgetlen): Use sizeof() to get the header length.
9896         (hgetrange): Ditto.
9897         (hgettype): Ditto.
9898         (hgetlocation): Ditto.
9899         (hgetmodified): Ditto.
9900         (haccepts_none): Ditto.
9901
9902         * main.c (main): Updated `--version' and `--help' output, as per
9903         Francois Pinard's suggestions.
9904
9905         * main.c: Include locale.h; call setlocale(), bindtextdomain() and 
9906         textdomain().
9907
9908         * config.h.in: Define stubs for I18N3.
9909
9910         * wget.h: Include libintl.h.
9911
9912 1998-01-28  Hrvoje Niksic  <hniksic@srce.hr>
9913
9914         * url.c (mkstruct): Check for opt.cut_dirs.
9915         (mkstruct): alloca()-te more, xmalloc() less.
9916
9917         * utils.c (load_file): Check for ferror().
9918
9919         * url.c (get_urls_file): Close only the files we opened.
9920         (get_urls_html): Ditto.
9921         (count_slashes): New function.
9922
9923         * http.h: Removed.
9924
9925         * http.c (gethttp): Respect username and password provided by
9926         proxy URL.
9927         (base64_encode_line): Write into an existing buffer instead of
9928         malloc-ing a new one.
9929         (struct http_stat): Moved from http.h
9930
9931         * retr.c (retrieve_url): Free SUF.
9932
9933         * all: Removed lots of unnecessary .h dependencies.
9934
9935         * html.c (global_state): Made static.
9936
9937         * utils.h (ALLOCA_ARRAY): New macro.
9938
9939         * main.c (main): New option `--cut-dirs'.
9940
9941         * url.c (construct): Use alloca() for T.
9942
9943         * utils.c (mkdirhier): Use STRDUP_ALLOCA.
9944
9945         * host.c (_host_t): Moved from host.h.
9946         (struct host): Renamed from _host_t.
9947         (store_hostaddress): Use STRDUP_ALLOCA for INET_S.
9948         (realhost): Ditto.
9949
9950         * host.h: Don't include url.h.
9951
9952         * ftp.c (LIST_FILENAME): Moved from ftp.h.
9953
9954         * init.c (DEFAULT_FTP_ACCT): Moved from ftp.h.
9955
9956         * main.c (main): Enable log if the output goes to a TTY.
9957
9958         * connect.h: Removed unused constant `BACKLOG'.
9959
9960         * config.h.in: Check for isatty().
9961
9962         * Makefile.in (LINK): Use CFLAGS when linking.
9963
9964 1998-01-27  Hrvoje Niksic  <hniksic@srce.hr>
9965
9966         * mswindows.c (ws_hangup): Use redirect_output().
9967
9968         * main.c (redirect_output_signal): New function; use
9969         redirect_output().
9970
9971         * log.c (redirect_output): New function, based on hangup(), which
9972         is deleted.
9973
9974         * log.c (vlogmsg): New function.
9975
9976         * wget.h (DEBUGP): Use debug_logmsg().
9977
9978         * main.c (hangup): Use it.
9979
9980         * log.c (log_dump): New function.
9981
9982         * utils.h (DO_REALLOC): Use `long' for various sizes.
9983
9984         * http.c (hskip_lws): Use `while', for clarity.
9985         (HTTP_DYNAMIC_LINE_BUFFER): New constant.
9986         (fetch_next_header): Use it instead of DYNAMIC_LINE_BUFFER.
9987
9988         * ftp-basic.c (FTP_DYNAMIC_LINE_BUFFER): New constant.
9989         (ftp_response): Use it instead of DYNAMIC_LINE_BUFFER.
9990
9991         * utils.c (DYNAMIC_LINE_BUFFER): Moved from utils.c.
9992         (LEGIBLE_SEPARATOR): Ditto.
9993         (FILE_BUFFER_SIZE): Ditto.
9994
9995         * retr.c (BUFFER_SIZE): Moved from retr.h.
9996
9997         * log.c: New file.
9998         (logmsg): Moved from utils.c.
9999         (debug_logmsg): New function.
10000
10001         * mswindows.h: Include it here.
10002
10003         * init.c: Ditto.
10004
10005         * utils.c: Don't include <windows.h>.
10006
10007 1998-01-25  Hrvoje Niksic  <hniksic@srce.hr>
10008
10009         * host.c (ftp_getaddress): Ditto.
10010
10011         * main.c (main): Use it.
10012
10013         * utils.h (STRDUP_ALLOCA): New macro.
10014
10015         * init.c: Prepend `wget: ' to error messages printed on stderr.
10016
10017         * utils.c (mkdirhier): Renamed from mymkdir.
10018         (touch): Renamed from my_touch.
10019         (pwd_cuserid): Renamed from my_cuserid().
10020
10021 1998-01-24  Andy Eskilsson  <andy.eskilsson@telelogic.se>
10022
10023         * utils.c (accdir): Process wildcards.
10024         (proclist): New function.
10025         (accdir): Use it to avoid code repetition.
10026
10027 1998-01-24  Hrvoje Niksic  <hniksic@srce.hr>
10028
10029         * recur.c (parse_robots): Respect opt.useragent; use alloca().
10030
10031         * http.c (gethttp): Construct useragent accordingly.
10032
10033         * version.c: Changed version string to numbers-only.
10034
10035         * main.c (print_help): List all the options.
10036
10037         * mswindows.c (windows_main_junk): Initialize argv0 here.
10038
10039 1998-01-24  Karl Heuer  <kwzh@gnu.org>
10040
10041         * netrc.c (search_netrc): Initialize `l' only after processing
10042         netrc.
10043
10044         * main.c (main): Don't trap SIGHUP if it's being ignored.
10045
10046 1998-01-24  Hrvoje Niksic  <hniksic@srce.hr>
10047
10048         * all: Use logmsg().
10049
10050         * utils.c (time_str): Moved from retr.c.
10051         (logmsg): New function.
10052         (logmsg_noflush): Ditto.
10053
10054         * rbuf.c: New file, moved buf_* functions here.
10055
10056         * ftp.c (ftp_expected_bytes): Moved from ftp-basic.c.
10057
10058         * ftp-basic.c (ftp_rest): Use prnum().
10059
10060         * ftp-basic.c: Ditto.
10061
10062         * ftp.c: Use the new reading functions and macros.
10063
10064         * retr.c (buf_initialize): New function.
10065         (buf_initialized_p): Ditto.
10066         (buf_uninitialize): Ditto.
10067         (buf_fd): Ditto.
10068
10069         * http.c (fetch_next_header): Use the BUF_READCHAR macro for
10070         efficiency.
10071         (gethttp): Use alloca() where appropriate.
10072
10073         * retr.c (buf_readchar): Use it.
10074         (buf_peek): Use rstreams.
10075
10076         * retr.h (BUF_READCHAR): New macro.
10077
10078         * init.c (home_dir): Rewritten for clarity.
10079         (init_path): Ditto.
10080
10081         * mswindows.c (ws_backgnd): Made static.
10082         (read_registry): Ditto.
10083         (ws_cleanup): Ditto.
10084         (ws_handler): Ditto.
10085
10086 1998-01-23  Hrvoje Niksic  <hniksic@srce.hr>
10087
10088         * alloca.c: New file.
10089
10090         * Makefile.in (ALLOCA): Define.
10091
10092         * mswindows.c (ws_help): Constify.
10093         (ws_help): Use alloca.
10094
10095         * mswindows.c: Reformat.
10096
10097         * all: Added _(...) annotations for I18N snarfing and translation.
10098
10099         * host.c (ftp_getaddress): Nuke SYSINFO.
10100         (ftp_getaddress): Don't use getdomainname().
10101         (ftp_getaddress): Use uname(), where available.
10102
10103         * http.c (gethttp): Protect a stray fprintf().
10104
10105         * init.c (settime): New function.
10106         (setval): Treat WAIT specially, allowing suffixes like `m' for
10107         minutes, etc.
10108
10109 1998-01-21  Hrvoje Niksic  <hniksic@srce.hr>
10110
10111         * url.c (get_urls_html): Use alloca() for TEMP.
10112
10113 1998-01-21  Jordan Mendelson  <jordy@wserv.com>
10114
10115         * url.c (rotate_backups): New function.
10116
10117         * http.c (gethttp): Ditto.
10118
10119         * ftp.c (getftp): Rotate backups.
10120
10121 1997-12-18  Hrvoje Niksic  <hniksic@srce.hr>
10122
10123         * all: Renamed nmalloc(), nrealloc() and nstrdup() to xmalloc(),
10124         xrealloc() and xstrdup().  Use the new functions.
10125
10126         * url.c (decode_string): Made static.
10127         (has_proto): Ditto.
10128         (parse_dir): Ditto.
10129         (parse_uname): Ditto.
10130         (mkstruct): Ditto.
10131         (construct): Ditto.
10132         (construct_relative): Ditto.
10133
10134         * retr.c (show_progress): Made static.
10135
10136         * recur.c (robots_url): Made static.
10137         (retrieve_robots): Ditto.
10138         (parse_robots): Ditto.
10139         (robots_match): Ditto.
10140
10141         * main.h: Removed.
10142
10143         * main.c (printhelp): Made static.
10144         (hangup): Ditto.
10145
10146         * init.c (comind): Made static.
10147         (defaults): Ditto.
10148         (init_path): Ditto.
10149         (run_wgetrc): Ditto.
10150         (onoff): Ditto.
10151         (setonoff): Ditto.
10152         (setnum): Ditto.
10153         (myatoi): Ditto.
10154         (getperms): Ditto.
10155         (setbytes): Ditto.
10156
10157         * http.c (fetch_next_header): Made static.
10158         (hparsestatline): Ditto.
10159         (hskip_lws): Ditto.
10160         (hgetlen): Ditto.
10161         (hgetrange): Ditto.
10162         (hgettype): Ditto.
10163         (hgetlocation): Ditto.
10164         (hgetmodified): Ditto.
10165         (haccepts_none): Ditto.
10166         (gethttp): Ditto.
10167         (base64_encode_line): Ditto.
10168         (mktime_from_utc): Ditto.
10169         (http_atotm): Ditto.
10170
10171         * html.c (idmatch): Made static.
10172
10173         * host.c (search_host): Made static.
10174         (search_address): Ditto.
10175         (free_hlist): Ditto.
10176
10177         * ftp.c (getftp): Made static.
10178         (ftp_loop_internal): Ditto.
10179         (ftp_get_listing): Ditto.
10180         (ftp_retrieve_list): Ditto.
10181         (ftp_retrieve_dirs): Ditto.
10182         (ftp_retrieve_glob): Ditto.
10183         (freefileinfo): Ditto.
10184         (delelement): Ditto.
10185
10186         * ftp-ls.c (symperms): Made static.
10187         (ftp_parse_unix_ls): Ditto.
10188
10189         * connect.c (select_fd): Made static.
10190
10191         * utils.c (xmalloc): Renamed from nmalloc.
10192         (xrealloc): Renamed from nrealloc.
10193         (xstrdup): Renamed from nstrdup.
10194
10195         * getopt.c (exchange): Use alloca.
10196
10197         * mswindows.c (mycuserid): Use strncpy.
10198
10199         * New files mswindows.c, mswindows.h, sysdep.h.  winjunk.c,
10200         systhings.h, windecl.h and winjunk.h removed.
10201
10202         * mswindows.c (sleep): New function.
10203
10204         * utils.c: Include <windows.h> under Windows.
10205
10206 1997-06-12  Darko Budor  <dbudor@zesoi.fer.hr>
10207
10208         * url.h (URL_UNSAFE): Change default under Windows.
10209
10210         * retr.c (retrieve_from_file): Respect opt.delete_after.
10211
10212         * main.c (main): Call ws_help on Windows.
10213
10214         * winjunk.c (windows_main_junk): New function.
10215
10216         * main.c (main): Junk-process argv[0].
10217
10218         * http.c (mktime_from_utc): Return -1 if mktime failed.
10219
10220         * http.c (http_loop): Ditto.
10221
10222         * ftp.c (ftp_loop_internal): Change title on Windows when using a
10223         new URL.
10224
10225         * winjunk.c (getdomainname): Lots of functions.
10226
10227 1997-06-12  Hrvoje Niksic  <hniksic@srce.hr>
10228
10229         * cmpt.c (strptime_internal): Handle years more correctly for
10230         `%y'.
10231
10232 1997-06-09  Mike Thomas <mthomas@reality.ctron.com>
10233
10234         * http.c (gethttp): Allocate enough space for
10235         `Proxy-Authorization' header.
10236
10237 1997-05-10  Hrvoje Niksic  <hniksic@srce.hr>
10238
10239         * version.c: Wget/1.4.5 is released.
10240
10241 1997-05-10  Hrvoje Niksic  <hniksic@srce.hr>
10242
10243         * retr.c (get_contents): Check return value of fwrite more
10244         carefully.
10245
10246 1997-03-30  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
10247
10248         * cmpt.c (strptime_internal) [case 'Y']: Always subtract 1900 from
10249         year, regardless of century.
10250
10251 1997-03-30  Hrvoje Niksic  <hniksic@srce.hr>
10252
10253         * utils.c (isfile): Use `lstat' instead of `stat'.
10254
10255 1997-03-29  Hrvoje Niksic  <hniksic@srce.hr>
10256
10257         * utils.c (numdigit): Use explicit test.
10258
10259 1997-03-21  Hrvoje Niksic  <hniksic@srce.hr>
10260
10261         * http.c (http_loop): Always use `url_filename' to get u->local.
10262
10263 1997-03-20  Hrvoje Niksic  <hniksic@srce.hr>
10264
10265         * url.c: Recognize https.
10266
10267 1997-03-13  Hrvoje Niksic  <hniksic@srce.hr>
10268
10269         * recur.c (recursive_retrieve): Lowercase just the host name.
10270
10271 1997-03-09  Hrvoje Niksic  <hniksic@srce.hr>
10272
10273         * url.c (get_urls_file): Use the correct test.
10274         (get_urls_html): Ditto.
10275
10276 1997-03-07  Hrvoje Niksic  <hniksic@srce.hr>
10277
10278         * connect.c: Reverted addrlen to int.
10279
10280         * init.c (parse_line): Check for -1 instead of NONE.
10281
10282         * version.c: Changed version to 1.4.5.
10283
10284 1997-02-17  Hrvoje Niksic  <hniksic@srce.hr>
10285
10286         * init.c: New option netrc.
10287         (initialize): Don't parse .netrc.
10288
10289         * cmpt.c (recursive): Return rp.
10290         (strptime_internal): Match the long strings first, the abbreviated
10291         second.
10292
10293 1997-02-16  Hrvoje Niksic  <hniksic@srce.hr>
10294
10295         * http.c (check_end): New function.
10296         (http_atotm): Use it.
10297
10298 1997-02-13  gilles Cedoc  <gilles@cedocar.fr>
10299
10300         * http.c (gethttp): Use them.
10301
10302         * init.c: New options proxy_user and proxy_passwd.
10303
10304 1997-02-14  Hrvoje Niksic  <hniksic@srce.hr>
10305
10306         * ftp.c (ftp_retrieve_list): Create links even if not relative.
10307
10308 1997-02-10  Hrvoje Niksic  <hniksic@srce.hr>
10309
10310         * recur.c (recursive_retrieve): Lowercase the host name, if the
10311         URL is not "optimized".
10312
10313         * host.c (realhost): Return l->hostname, even if it matches with
10314         host.
10315
10316 1997-02-10  Marin Purgar  <pmc@asgard.hr>
10317
10318         * connect.c: Make addrlen size_t instead of int.
10319         (conaddr): Ditto.
10320
10321 1997-02-09  Gregor Hoffleit  <flight@mathi.uni-heidelberg.DE>
10322
10323         * systhings.h: Define S_ISLNK on NeXT too.
10324
10325 1997-02-09  Hrvoje Niksic  <hniksic@srce.hr>
10326
10327         * version.c: Released 1.4.3.
10328
10329         * url.c: Futher update to list of protostrings.
10330         (skip_proto): Skip `//' correctly for FTP and HTTP.
10331
10332         * url.c (get_urls_html): Handle bogus `http:' things a little
10333         different.
10334
10335         * main.c (main): Removed `follow-ftp' from `f'.
10336         (main): Dumped the `prefix-files' and `file-prefix' options and
10337         features; old and bogus.
10338         (main): Exit on failed setval() in `-e'.
10339
10340         * http.c (fetch_next_header): Use it to detect header continuation
10341         correctly.
10342
10343         * retr.c (buf_peek): New function.
10344
10345 1997-02-08  Hrvoje Niksic  <hniksic@srce.hr>
10346
10347         * wget.h: Include time.h and stuff.
10348
10349 1997-02-08  Roger Beeman  <beeman@cisco.com>
10350
10351         * ftp.c: Include <time.h>
10352
10353 1997-02-07  Hrvoje Niksic  <hniksic@srce.hr>
10354
10355         * url.c (findurl): Would read over buffer limits.
10356
10357 1997-02-06  Hrvoje Niksic  <hniksic@srce.hr>
10358
10359         * ftp-ls.c (ftp_parse_unix_ls): Allow spaces in file names.
10360
10361 1997-02-05  Hrvoje Niksic  <hniksic@srce.hr>
10362
10363         * http.c (http_atotm): Initialize tm.is_dst.
10364
10365 1997-02-02  Hrvoje Niksic  <hniksic@srce.hr>
10366
10367         * http.c (gethttp): Don't print the number of retrieved headers.
10368
10369         * main.c (main): New option `--no-clobber', alias for `-nc'.
10370
10371         * url.c: Recognize `https://'.
10372
10373 1997-02-01  Hrvoje Niksic  <hniksic@srce.hr>
10374
10375         * host.c (herrmsg): Don't use h_errno.
10376
10377 1997-01-30  Hrvoje Niksic  <hniksic@srce.hr>
10378
10379         * host.c (accept_domain): Use it.
10380
10381         * main.c (main): New option `--exclude-domains'.
10382
10383         * retr.c (retrieve_url): Use it.
10384         (retrieve_url): Bail out when an URL is redirecting to itself.
10385
10386         * url.c (url_equal): New function.
10387
10388 1997-01-29  Hrvoje Niksic  <hniksic@srce.hr>
10389
10390         * connect.c: Include arpa/inet.h instead of arpa/nameser.h.
10391
10392         * http.c (mk_utc_time): New function.
10393         (http_atotm): Use it; handle time zones correctly.
10394
10395 1997-01-28  Hrvoje Niksic  <hniksic@srce.hr>
10396
10397         * http.c: Ditto.
10398
10399         * ftp-basic.c: Use it instead of WRITE.
10400
10401         * connect.c (iwrite): New function.
10402
10403 1997-01-27  Hrvoje Niksic  <hniksic@srce.hr>
10404
10405         * cmpt.c (mktime): New function.
10406
10407         * netrc.c: Include <sys/types.h>.
10408
10409         * main.c (main): Wouldn't recognize --spider.
10410
10411         * retr.c (rate): Use `B', `KB' and `MB'.
10412         (reset_timer,elapsed_time): Moved from utils.c.
10413
10414         * ftp.c (ftp_retrieve_list): Ditto.
10415
10416         * http.c (http_loop): Don't touch the file if opt.dfp.
10417
10418 1997-01-24  Hrvoje Niksic  <hniksic@srce.hr>
10419
10420         * cmpt.c: New file.
10421
10422         * ftp.c (ftp_retrieve_glob): New argument semantics.
10423         (ftp_retrieve_dirs): Use it.
10424         (ftp_loop): Ditto.
10425
10426         * html.c (htmlfindurl): Recognize `'' as the quote char.
10427
10428 1997-01-23  Hrvoje Niksic  <hniksic@srce.hr>
10429
10430         * ftp.c (ftp_loop_internal): Use it.
10431
10432         * utils.c (remove_link): New function.
10433
10434 1997-01-22  Hrvoje Niksic  <hniksic@srce.hr>
10435
10436         * retr.c (retrieve_url): Require STRICT redirection URL.
10437
10438         * url.c (parseurl): New argument STRICT.
10439
10440         * http.c (hparsestatline): Be a little-bit less strict about
10441         status line format.
10442
10443 1997-01-21  Hrvoje Niksic  <hniksic@srce.hr>
10444
10445         * http.c (gethttp): Use it.
10446
10447         * main.c (main): Don't use '<digit>' as options.
10448
10449         * init.c: New option ignore_length.
10450
10451         * http.c (gethttp): Ditto.
10452         (http_loop): Check for redirection without Location:.
10453         (gethttp): Don't print Length unless RETROKF.
10454
10455         * ftp.c (getftp): Use it.
10456
10457         * url.c (mkalldirs): New function.
10458
10459         * utils.c (mymkdir): Don't check for existing non-directory.
10460
10461         * url.c (mkstruct): Don't create the directory.
10462
10463 1997-01-20  Hrvoje Niksic  <hniksic@srce.hr>
10464
10465         * init.c (setval): Removed NO_RECURSION checks.
10466
10467 1997-01-19  Hrvoje Niksic  <hniksic@srce.hr>
10468
10469         * version.c: "Released" 1.4.3-pre2.
10470
10471         * recur.c (recursive_retrieve): Bypass host checking only if URL
10472         is ftp AND parent URL is not ftp.
10473
10474         * ftp-basic.c (ftp_request): Print out Turtle Power.
10475
10476         * ftp.c (ftp_loop): Call ftp_retrieve_glob with 0 if there's no
10477         wildcard.
10478         (ftp_retrieve_glob): Call ftp_loop_internal even on empty list, if
10479         not glob.
10480
10481         * http.c (gethttp): Be a little bit smarter about status codes.
10482
10483         * recur.c (recursive_retrieve): Always reset opt.recursive when
10484         dealing with FTP.
10485
10486 1997-01-18  Hrvoje Niksic  <hniksic@srce.hr>
10487
10488         * retr.c (retrieve_url): New variable location_changed; use it for
10489         tests instead of mynewloc.
10490         (retrieve_url): Allow heuristic adding of html.
10491
10492         * url.c (url_filename): Don't use the `%' in Windows file names.
10493
10494         * http.c (http_loop): Always time-stamp the local file.
10495
10496         * http.c (http_loop): Ditto.
10497
10498         * ftp.c (ftp_retrieve_list): Use it.
10499
10500         * utils.c (my_touch): New function.
10501
10502         * ftp.c (ftp_retrieve_list): Use #ifdef HAVE_STRUCT_UTIMBUF
10503         instead of #ifndef NeXT.
10504
10505         * utils.c (strptime): New version, by Ulrich Drepper.
10506
10507 1997-01-17  Hrvoje Niksic  <hniksic@srce.hr>
10508
10509         * http.c (haccepts_none): Renamed from `haccepts_bytes'.
10510         (gethttp): If haccepts_none(), disable ACCEPTRANGES.
10511         (http_loop): Would remove ACCEPTRANGES.
10512
10513         * ftp.c (getftp): Call ftp_list with NULL.
10514
10515 1997-01-15  Hrvoje Niksic  <hniksic@srce.hr>
10516
10517         * html.c (ftp_index): Don't print minutes and seconds if we don't
10518         know them; beautify the output.
10519
10520         * ftp.c (getftp): Don't close the socket on FTPNSFOD.
10521
10522 1997-01-14  Hrvoje Niksic  <hniksic@srce.hr>
10523
10524         * utils.c (strptime): New function.
10525         (strptime): Don't use get_alt_number.
10526         (strptime): Don't use locale.
10527         (match_string): Made it a function.
10528
10529 1997-01-12  Hrvoje Niksic  <hniksic@srce.hr>
10530
10531         * http.c (http_atotm): New function.
10532         (http_loop): Use it.
10533
10534         * atotm.c: Removed from the distribution.
10535
10536         * http.c (base64_encode_line): Rewrite.
10537
10538 1997-01-09  Hrvoje Niksic  <hniksic@srce.hr>
10539
10540         * ftp.c (getftp): Use ftp_expected_bytes; print size.
10541
10542         * ftp-basic.c (ftp_response): Use ftp_last_respline.
10543         (ftp_expected_bytes): New function.
10544
10545         * ftp.c (getftp): Print the unauthoritative file length.
10546
10547         * ftp-ls.c: Renamed from ftp-unix.c.
10548         (ftp_parse_ls): Moved from ftp.c.
10549         (ftp_parse_unix_ls): Recognize seconds in time spec.
10550         (ftp_parse_unix_ls): Recognize year-less dates of the previous
10551         year.
10552
10553 1997-01-08  Hrvoje Niksic  <hniksic@srce.hr>
10554
10555         * ftp-basic.c: Don't declare errno if #defined.
10556
10557         * host.c (ftp_getaddress): Check for sysinfo legally.
10558
10559 1997-01-08  Darko Budor  <dbudor@diana.zems.fer.hr>
10560
10561         * connect.c (iread): Use READ.
10562
10563 1996-12-23  Hrvoje Niksic  <hniksic@srce.hr>
10564
10565         * url.c: Recognize finger, rlogin, tn3270, mid and cid as valid
10566         schemes.
10567
10568 1996-12-22  Hrvoje Niksic  <hniksic@srce.hr>
10569
10570         * host.c (ftp_getaddress): Allow `.' in hostname.
10571
10572 1996-12-26  Darko Budor <dbudor@zems.fer.hr>
10573
10574         * wget.h: READ and WRITE macros for use instead of read and write
10575         on sockets, grep READ *.c, grep WRITE *.c
10576
10577         * wsstartup.c: new file - startup for winsock
10578
10579         * wsstartup.h: new file
10580
10581         * win32decl.h: new file - fixup for <errno.h> and winsock trouble
10582
10583         * configure.bat: Configure utility for MSVC
10584
10585         * src/Makefile.ms,config.h.ms: new files for use with MSVC 4.x
10586
10587 1996-12-22  Hrvoje Niksic  <hniksic@srce.hr>
10588
10589         * version.c: Released 1.4.3-pre.
10590
10591         * utils.c (prnum): Accept long.
10592         (legible): Use prnum().
10593
10594         * connect.c (make_connection): Accept port as short.
10595         (bindport): Ditto.
10596
10597         * http.c (gethttp): Use search_netrc.
10598
10599 1996-12-21  Hrvoje Niksic  <hniksic@srce.hr>
10600
10601         * ftp.c (getftp): Use search_netrc.
10602
10603         * netrc.c (free_netrc): New function.
10604
10605         * init.c (home_dir): New function.
10606
10607         * url.c (convert_links): Allow REL2ABS changes.
10608
10609 1996-12-21  Gordon Matzigkeit  <gord@gnu.ai.mit.edu>
10610
10611         * netrc.c: New file.
10612         (parse_netrc, maybe_add_to_list): New functions.
10613
10614 1996-12-17  Hrvoje Niksic  <hniksic@srce.hr>
10615
10616         * retr.c (retrieve_url): Reset opt.recursion before calling
10617         ftp_loop if it is reached through newloc.
10618
10619         * init.c (run_wgetrc): Print the wgetrc path too, when reporting
10620         error; don't use "Syntax error", since we don't know if it is
10621         really a syntax error.
10622
10623 1996-12-16  Hrvoje Niksic  <hniksic@srce.hr>
10624
10625         * utils.c (acceptable): Extract the filename part of the path.
10626
10627         * recur.c (recursive_retrieve): Call acceptable() with the right
10628         argument; would bug out on wildcards.
10629
10630         * init.c (parse_line): Likewise.
10631
10632         * html.c (htmlfindurl): Cast to char * when calling stuff.
10633
10634 1996-12-15  Hrvoje Niksic  <hniksic@srce.hr>
10635
10636         * ftp.c (getftp): Use ftp_pasv.
10637
10638         * ftp-basic.c (ftp_request): Accept NULL value.
10639         (ftp_pasv): New function.
10640
10641         * options.h (struct options): Add passive FTP option.
10642
10643 1996-12-15  Hrvoje Niksic  <hniksic@srce.hr>
10644
10645         * url.c (parseurl): Debug output.
10646
10647         * utils.c (path_simplify): New one, adapted from bash's
10648         canonicalize_pathname().
10649
10650 1996-12-14  Hrvoje Niksic  <hniksic@srce.hr>
10651
10652         * ftp.c (getftp): Don't discard the buffer.
10653
10654         * retr.c (get_contents): New parameter nobuf.
10655
10656 1996-12-13  Shawn McHorse  <riffraff@txdirect.net>
10657
10658         * html.c (htmlfindurl): Recognize <meta contents="d; URL=...".
10659
10660         * init.c (setval): Strip the trailing slashes on CVECDIR.
10661
10662 1996-12-13  Hrvoje Niksic  <hniksic@srce.hr>
10663
10664         * init.c: Make excludes and includes under CVECDIR instead of
10665         CVEC.
10666
10667 1996-12-13  Shawn McHorse  <riffraff@txdirect.net>
10668
10669         * url.c (get_urls_html): Skip "http:".
10670
10671 1996-12-13  Hrvoje Niksic  <hniksic@srce.hr>
10672
10673         * utils.c (strcasecmp): From glibc.
10674         (strncasecmp): Also.
10675         (strstr): Also.
10676
10677         * url.c: Added javascript: to the list of URLs prefixes.
10678
10679 1996-12-12  Shawn McHorse  <riffraff@txdirect.net>
10680
10681         * recur.c (retrieve_robots): Print the warning message only if
10682         verbose.
10683
10684 1996-12-12  Gregor Hoffleit  <flight@mathi.uni-heidelberg.DE>
10685
10686         * ftp.c (ftp_retrieve_list): Use NeXT old utime interface.
10687
10688 1996-12-12  Hrvoje Niksic  <hniksic@srce.hr>
10689
10690         * systhings.h: New file.
10691
10692         * ../configure.in: Check for utime.h
10693
10694         * ftp.c: Check whether we have unistd.h.
10695
10696 1996-11-27  Hrvoje Niksic  <hniksic@srce.hr>
10697
10698         * recur.c (recursive_retrieve): Send the canonical URL as referer.
10699         (recursive_retrieve): Call get_urls_html with the canonical URL.
10700
10701 1996-12-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10702
10703         * (configure.in, config.h.in, src/Makefile.in, src/*.[ch]): Add
10704         ansi2knr support for compilers which don't support ANSI style
10705         function prototypes and signatures.
10706
10707         * (aclocal.m4, src/ansi2knr.c, src/ansi2knr.1): New files.
10708
10709 1996-11-26  Hrvoje Niksic  <hniksic@srce.hr>
10710
10711         * url.c: Use it; Recognize paths ending with "." and ".." as
10712         directories.
10713         (url_filename): Append .n whenever file exists and could be a
10714         directory.
10715
10716         * url.h (ISDDOT): New macro.
10717
10718         * init.c (parse_line): Use unsigned char.
10719
10720         * url.c (get_urls_html): Cast to unsigned char * when calling
10721         htmlfindurl.
10722
10723         * html.c (htmlfindurl): Use unsigned char.
10724
10725         * version.c: Changed version to 1.4.3.
10726
10727 1996-11-25  Hrvoje Niksic  <hniksic@srce.hr>
10728
10729         * version.c: Released 1.4.2.
10730
10731         * ftp.c (getftp): Simplified assertion.
10732         (ftp_loop_internal): Remove symlink before downloading.
10733         (ftp_retrieve_list): Unlink the symlink name before attempting to
10734         create a symlink!
10735
10736         * options.h (struct options): Renamed print_server_response to
10737         server_response.
10738
10739         * ftp.c (rel_constr): Removed.
10740         (ftp_retrieve_list): Don't use it.
10741         (ftp_retrieve_list): Use opt.retr_symlinks.
10742
10743 1996-11-24  Hrvoje Niksic  <hniksic@srce.hr>
10744
10745         * main.c (main): New option retr_symlinks.
10746
10747         * url.c (convert_links): Print verbose message.
10748
10749 1996-11-24  Hrvoje Niksic  <hniksic@srce.hr>
10750
10751         * http.c (http_loop): Reset newloc in the beginning of function;
10752         would cause FMR in retrieve_url.
10753
10754 1996-11-23  Hrvoje Niksic  <hniksic@srce.hr>
10755
10756         * recur.c (convert_all_links): Find the URL of each HTML document,
10757         and feed it to get_urls_html; would bug out.
10758         (convert_all_links): Check for l2 instead of dl; removed dl.
10759
10760         * url.c (convert_links): Don't refer to freed newname.
10761
10762         * recur.c (recursive_retrieve): Add this_url to urls_downloaded.
10763
10764         * main.c (main): Print the OS_TYPE in the debug output, too.
10765
10766         * recur.c (recursive_retrieve): Check for opt.delete_after.
10767
10768         * main.c (main): New option delete-after.
10769
10770         * init.c (setval): Cleaned up.
10771
10772 1996-11-21  Hrvoje Niksic  <hniksic@srce.hr>
10773
10774         * Makefile.in (wget): Make `wget' the default target.
10775
10776         * ftp.c (ftp_loop_internal): Move noclobber checking out of the
10777         loop.
10778         (ftp_retrieve_list): Warn about non-matching sizes.
10779
10780         * http.c (http_loop): Made -nc non-dependent on opt.recursive.
10781
10782         * init.c (setnum): Renamed from setnuminf; New argument flags.
10783         (setval): Use it.
10784
10785         * main.c (main): Sorted the options.
10786         (main): New option --wait.
10787
10788 1996-11-21  Shawn McHorse  <riffraff@txdirect.net>
10789
10790         * html.c (htmlfindurl): Reset s->in_quote after getting out of
10791         quotes.
10792
10793 1996-11-20  Hrvoje Niksic  <hniksic@srce.hr>
10794
10795         * version.c: Changed version to 1.4.2.
10796
10797 1996-11-20  Hrvoje Niksic  <hniksic@srce.hr>
10798
10799         * version.c: Released 1.4.1.
10800
10801         * html.c (html_quote_string): New function.
10802         (ftp_index): Use it.
10803         (htmlfindurl): A more gentle ending debug message.
10804
10805         * ftp.c (ftp_loop): Check for opt.htmlify.
10806
10807         * init.c: New command htmlify.
10808
10809         * ftp.c (getftp): Nicer error messages, with `'-encapsulated
10810         strings.
10811         (ftp_loop): Print size of index.html.
10812
10813         * init.c (setval): Implement "styles".
10814
10815         * main.c (main): New option dotstyle.
10816
10817 1996-11-19  Hrvoje Niksic  <hniksic@srce.hr>
10818
10819         * ftp.c (getftp): Close the master socket in case of errors, after
10820         bindport().
10821
10822         * connect.c (bindport): Initialize msock to -1.
10823
10824         * ftp.c (getftp): Initialize dtsock to -1.
10825
10826         * connect.c (closeport): Don't close sock if sock == -1.
10827
10828 1996-11-18  Hrvoje Niksic  <hniksic@srce.hr>
10829
10830         * init.c (setnuminf): Nuked default value -- just leave unchanged.
10831         (setval): Don't send default values.
10832         (defaults): Use DEFAULT_TIMEOUT -- aaargh.
10833
10834         * options.h (struct options): Use long for dot_bytes.
10835
10836         * init.c (setquota): Renamed to setbytes.
10837         (setval): Use setbytes on DOTBYTES.
10838
10839 1996-11-17  Hrvoje Niksic  <hniksic@srce.hr>
10840
10841         * ftp.c (getftp): Initialize con->dltime.
10842
10843         * recur.c (recursive_retrieve): Use same_host instead of
10844         try_robots; simply load robots_txt whenever the host is changed.
10845         (recursive_retrieve): Free forbidden before calling parse_robots.
10846
10847 1996-11-16  Hrvoje Niksic  <hniksic@srce.hr>
10848
10849         * retr.c (show_progress): Use them.
10850
10851         * options.h (struct options): New options dot_bytes, dots_on_line
10852         and dot_spacing.
10853
10854 1996-11-16  Mark Boyns  <boyns@sdsu.edu>
10855
10856         * recur.c (recursive_retrieve): Retrieve directories regardless of
10857         acc/rej rules; check for empty u->file.
10858
10859 1996-11-14  Hrvoje Niksic  <hniksic@srce.hr>
10860
10861         * init.c (setval): Use it.
10862
10863         * utils.c (merge_vecs): New function.
10864
10865         * init.c (setval): Reset the list-type functions when encountering
10866         "".
10867
10868 1996-11-14  Shawn McHorse  <riffraff@txdirect.net>
10869
10870         * recur.c (recursive_retrieve): Use base_url instead of this_url
10871         for no_parent.
10872
10873 1996-11-14  Shawn McHorse  <riffraff@txdirect.net>
10874
10875         * html.c (htmlfindurl): Reset s->in_quote after exiting the quote.
10876
10877 1996-11-13  Hrvoje Niksic  <hniksic@srce.hr>
10878
10879         * utils.c (sepstring): Rewrote; don't use strtok.
10880
10881         * recur.c (recursive_retrieve): Enter assorted this_url to slist
10882         when running the first time.
10883         (retrieve_robots): Warn to ignore errors when robots are loaded.
10884
10885         * utils.c (load_file): Moved from url.c.
10886
10887         * http.c: Made static variables const too in h* functions.
10888
10889         * main.c (main): Renamed --continue-ftp to --continue.
10890
10891         * recur.c (recursive_retrieve): Use it.
10892
10893         * utils.c (frontcmp): New function.
10894
10895         * url.c (accdir): New function.
10896
10897         * html.c (htmlfindurl): Recognize <area href=...>.
10898
10899         * ftp.c (ftp_retrieve_dirs): Implemented opt.includes.
10900
10901         * init.c (setval): Free the existing opt.excludes and
10902         opt.includes, if available.
10903
10904         * main.c (main): New option -I.
10905
10906 1996-11-12  Hrvoje Niksic  <hniksic@srce.hr>
10907
10908         * ftp.c (ftp_retrieve_glob): Do not weed out directories.
10909
10910         * version.c: Changed version to 1.4.1.
10911
10912 1996-11-11  Hrvoje Niksic  <hniksic@srce.hr>
10913
10914         * version.c: Released 1.4.0.
10915
10916 1996-11-10  Hrvoje Niksic  <hniksic@srce.hr>
10917
10918         * main.c (main): Free com and val after parse_line.
10919         (printhelp): Reorder the listing.
10920
10921         * http.c: More robust header parsing.
10922
10923         * http.c: Allow any number of spaces, or no spaces, precede ':'.
10924         (hskip_lws): New function.
10925         (haccepts_bytes): New function.
10926         (gethttp): Use it.
10927
10928         * init.c (setval): Check header sanity.
10929         (setval): Allow resetting of headers.
10930
10931 1996-11-10  Hrvoje Niksic  <hniksic@srce.hr>
10932
10933         * http.c (http_loop): Don't use has_wildcards.
10934
10935         * http.c (gethttp): Free all_headers -- would leak.
10936
10937         * recur.c (recursive_retrieve): Initialize depth to 1 instead of
10938         0 -- this fixes a long-standing bug in -rl.
10939
10940 1996-11-09  Hrvoje Niksic  <hniksic@srce.hr>
10941
10942         * ftp.c: Use -1 as "impossible" value for con->fd.
10943
10944         * url.h (URL_SEPARATOR): Don't treat `*' and `+' as separators.
10945
10946         * init.c (parse_line): Use isalpha.
10947
10948         * ftp-unix.c: Use HAVE_UNISTD_H.
10949
10950         * mtch.c (has_wildcards): Don't match \.
10951
10952         * http.c (http_loop): Warn on HTTP wildcard usage.
10953
10954 1996-11-08  Hrvoje Niksic  <hniksic@srce.hr>
10955
10956         * url.c (url_filename): Do not create numbered suffixes if
10957         opt.noclobber -- would bug out on -nc.
10958
10959 1996-11-07  Hrvoje Niksic  <hniksic@srce.hr>
10960
10961         * recur.c (parse_robots): Don't chuck out the commands without
10962         arguments (`Disallow:<empty>' didn't work).
10963         (parse_robots): Compare versions lowercase.
10964         (parse_robots): Match on base_version, not version_string!
10965         (parse_robots): Handle comments properly.
10966         (parse_robots): Match versions in a sane way.
10967
10968         * init.c: Print nicer error messages.
10969
10970         * version.c: Changed version to 1.4.0.
10971
10972 1996-11-06  Hrvoje Niksic  <hniksic@srce.hr>
10973
10974         * version.c: Released 1.4.0-test2.
10975
10976         * init.c (run_wgetrc): Close fp.
10977
10978         * ftp.c (ftp_retrieve_dirs): Allocate the correct length for
10979         u->dir.
10980
10981 1996-11-06  Hrvoje Niksic  <hniksic@srce.hr>
10982
10983         * init.c (setquota): Allow inf as quota specification.
10984
10985 1996-11-05  Hrvoje Niksic  <hniksic@srce.hr>
10986
10987         * ftp.c (ftp_retrieve_dirs): Return QUOTEXC if quota exceeded.
10988         (ftp_retrieve_glob): Return QUOTEXC on quota exceeded.
10989
10990         * main.c (main): Check for quota by comparison with downloaded
10991         stuff, not from status.
10992
10993         * connect.c (select_fd): Should compile on HPUX without warnings now.
10994
10995         * ftp.c (ftp_get_listing): Check whether ftp_loop_internal
10996         returned RETROK.
10997
10998 1996-11-04  Hrvoje Niksic  <hniksic@srce.hr>
10999
11000         * ftp.c (ftp_retrieve_glob): Print the pattern nicely.
11001         (getftp): Return FTPRETRINT on control connection error.
11002
11003         * html.c (htmlfindurl): Recognize <embed src=...> and
11004         <bgsound src=...>.
11005         (ftp_index): Handle username and password correctly.
11006
11007         * main.c (main): Made `-np' a synonim for --no-parent.
11008
11009 1996-11-02  Hrvoje Niksic  <hniksic@srce.hr>
11010
11011         * ftp.c (ftp_loop): Check for opt.ftp_glob too before calling
11012         ftp_retrieve_glob.
11013
11014         * version.c: Changed version to 1.4.0-test2.
11015
11016 1996-11-02  Hrvoje Niksic  <hniksic@srce.hr>
11017
11018         * version.c: Released 1.4.0-test1.
11019
11020         * url.c (str_url): Don't use sprintf when creating %2F-prefixed
11021         directory.
11022         (convert_links): Removed definition of make_backup.
11023
11024         * http.h: Removed definition of MAX_ERROR_LENGTH.
11025
11026         * host.c (ftp_getaddress): Check for "(none)" domains.
11027
11028         * ftp.c (ftp_retrieve_dirs): Docfix.
11029
11030         * http.c (gethttp): Use ou->referer instead of u->referer.
11031
11032         * retr.c (retrieve_url): Reset u to avoid freeing pointers twice;
11033         this was known to cause coredumps on Linux.
11034
11035         * html.c (ftp_index): Cast the argument to local_time to time_t *.
11036
11037 1996-11-01  Hrvoje Niksic  <hniksic@srce.hr>
11038
11039         * connect.c (select_fd): Use exceptfds -- once and for all.
11040
11041         * retr.c (retrieve_from_file): Free filename after
11042         recursive_retrieve.
11043         (retrieve_from_file): Send RFIRST_TIME to recursive_retrieve on
11044         first-time retrieval.
11045         (retrieve_from_file): Return uerr_t; new argument, count.
11046         (retrieve_from_file): Break on QUOTEXC.
11047
11048         * init.c (setquota): Fixed a bug that caused rejection of
11049         non-postfixed values..
11050
11051 1996-10-30  Hrvoje Niksic  <hniksic@srce.hr>
11052
11053         * version.c: Changed name to wget.
11054
11055         * connect.c (iread): Smarter use of select.
11056         (select_fd): Set errno on timeout.  If not timeout, return 1
11057         instead of 0.
11058
11059 1996-10-29  Hrvoje Niksic  <hniksic@srce.hr>
11060
11061         * ftp.c (ftp_loop_internal): Don't use con->cmd before
11062         establishing it.
11063
11064 1996-10-26  Hrvoje Niksic  <hniksic@srce.hr>
11065
11066         * http.c (gethttp): Send correct referer when using proxy.
11067         (gethttp): Use struct urlinfo ou to access the relevant data; send
11068         correct authorization in all cases.
11069
11070         * host.c (same_host): Use skip_uname to skip username and
11071         password.
11072
11073         * url.c (skip_uname): New function.
11074         (parseurl): Use it.
11075
11076         * host.c (same_host): Do not assume HTTP -- same_host should now
11077         be totally foolproof.
11078
11079         * url.c (skip_proto): New function.
11080         (parse_uname): Use it.
11081
11082         * http.c (gethttp): Create local user and passwd from what is
11083         given.
11084
11085         * url.c (parseurl): Check for HTTP username and password too.
11086
11087 1996-10-25  Hrvoje Niksic  <hniksic@srce.hr>
11088
11089         * config.h.in: Removed #define gethostbyname R...
11090
11091 1996-10-22  Hrvoje Niksic  <hniksic@srce.hr>
11092
11093         * version.c: Changed version to 1.4.0-test1.
11094
11095 1996-10-21  Hrvoje Niksic  <hniksic@srce.hr>
11096
11097         * version.c: "Released" 1.4b29.
11098
11099         * recur.c (recursive_retrieve): Check for no_parent.
11100
11101         * init.c (setval): Option update.
11102
11103         * main.c (main): New option no-parent.
11104
11105         * options.h (struct options): New variable no_parent.
11106
11107         * recur.c (recursive_retrieve): Only files are checked for
11108         opt.accepts and opt.rejects.
11109         (recursive_retrieve): Check directories for opt.excludes.
11110         (recursive_retrieve): Make the dir absolute when checking
11111         opt.excludes.
11112
11113         * html.c (htmlfindurl): Recognize <applet code=...> and <script
11114         src=...>
11115
11116 1996-10-18  Hrvoje Niksic  <hniksic@srce.hr>
11117
11118         * ftp.c (getftp): Do not line-break assert entries at all.
11119         (ftp_retrieve_dirs): docfix.
11120
11121         * connect.c (select_fd): Use fd + 1 as nfds.
11122
11123         * version.c: Changed version to 1.4b29.
11124
11125 1996-10-18  Hrvoje Niksic  <hniksic@srce.hr>
11126
11127         * version.c: "Released" 1.4b28.
11128
11129         * ftp.c (ftp_loop_internal): Check whether f->size == len and
11130         don't continue the loop if it is.
11131         (ftp_get_listing): Remove list_filename on unsuccesful loop.
11132
11133 1996-10-17  Hrvoje Niksic  <hniksic@srce.hr>
11134
11135         * ftp.c (ftp_loop_internal): Use strcpy to initialize tmp.
11136         (getftp): Do not use multiline assert.
11137
11138         * http.c (hparsestatline): Use mjr and mnr instead of major and
11139         minor, which don't compile on Ultrix.
11140         (http_loop): Use strcpy() to initialize tmp.
11141
11142         * all: Geturl -> Fetch
11143
11144 1996-10-17  Hrvoje Niksic  <hniksic@srce.hr>
11145
11146         * recur.c (parse_robots): Fixed an off-by-one bug when looking for
11147         ':'.
11148
11149         * html.c (htmlfindurl): Fixed several possible off-by-one bugs by
11150         moving `bufsize &&' to the beginning of each check in for-loops.
11151
11152         * recur.c (parse_robots): Close fp on exit.
11153
11154         * url.c (mymkdir): Check for each directory before creating.
11155
11156 1996-10-16  Hrvoje Niksic  <hniksic@srce.hr>
11157
11158         * version.c: Changed version to 1.4b28.
11159
11160 1996-10-16  Hrvoje Niksic  <hniksic@srce.hr>
11161
11162         * version.c: "Released" 1.4b27.
11163
11164         * init.c (parse_line): Use isspace.
11165         (parse_line): Free *com on all errors.
11166
11167         * ftp.c (ftp_loop): Change FTPOK to RETROK before exiting.
11168         (delelement): Use next instead of f->next and prev instead of
11169         f->prev.
11170         (delelement): Free the members of the deleted element.
11171
11172         * http.c (http_loop): Do not return RETROK on code != 20x.
11173
11174         * init.c (cleanup): Free opt.user_header.
11175         (cleanup): Free opt.domains.
11176
11177         * url.c (freelists): Moved to cleanup().
11178
11179         * http.c (hparsestatline): Docfix.
11180
11181         * main.c (main): Return with error status on unsuccesful
11182         retrieval.
11183
11184         * init.c (setval): Do not remove listing when mirroring.
11185
11186         * url.c (url_filename): Use opt.fileprefix.
11187
11188         * ftp.c (ftp_get_listing): Use url_filename to get filename for
11189         .listing.
11190
11191         * main.c (main): New option: -rn.
11192
11193 1996-10-15  Hrvoje Niksic  <hniksic@srce.hr>
11194
11195         * Makefile.in (RM): Added RM = rm -f.
11196
11197         * host.c (clean_hosts): New function.
11198         (free_hlist): Just free the list, no reset.
11199
11200         * version.c: Changed version to 1.4b27.
11201
11202 1996-10-13  Hrvoje Niksic  <hniksic@srce.hr>
11203
11204         * version.c: "Released" 1.4b26.
11205
11206         * retr.c (retrieve_from_file): If call get_urls_html with
11207         opt.spider to make it silent in spider mode.
11208
11209         * url.c (str_url): Use CLEANDUP instead of URL_CLEANSE.
11210
11211         * url.h (CLEANDUP): New macro.
11212
11213         * http.c (gethttp): Fixed a bug that freed location only when it
11214         was NULL.
11215
11216         * retr.c (retrieve_url): Free url if it will not be stored,
11217         i.e. newloc is NULL.
11218
11219         * html.c (htmlfindurl): Handle exiting from quotes correctly; the
11220         old version would bug out on <a href="x#a"href="y">.
11221
11222         * html.h (state_t): New member in_quote.
11223
11224         * html.c (htmlfindurl): Free s->attr at the beginning of
11225         attr-loop.
11226
11227         * recur.c (recursive_retrieve): Recognize RCLEANUP.
11228         (tried_robots): Make hosts a global variable.
11229         (recursive_retrieve): Free constr after URL host optimization.
11230         (tried_robots): Free urlinfo before exiting.
11231
11232         * utils.c (free_slist): New function.
11233
11234         * recur.c (recursive_retrieve): Use flags to add cleanup
11235         possibility.
11236
11237         * main.c (main): Free filename after recursive_retrieve.
11238
11239         * http.c (gethttp): Store successful responses too.
11240
11241 1996-10-12  Hrvoje Niksic  <hniksic@srce.hr>
11242
11243         * all: Constified the whole source.  This required some minor
11244         changes in many functions in url.c, possibly introducing bugs -- I
11245         hope not.
11246
11247         * ftp-basic.c: Removed last_respline.
11248
11249         * http.c (gethttp): Free type.
11250
11251         * host.c (same_host): Free real1 and real2.
11252
11253         * main.c (main): New option --spider.
11254
11255         * retr.c (get_contents): Don't reset errno.
11256
11257         * main.c (main): Sorted the options.
11258
11259         * connect.c (iread): Set errno to ETIMEDOUT only if it was left
11260         uninitialized by select().
11261
11262         * http.c (http_loop): Print the time when the connection is
11263         closed.
11264         (gethttp): Debug-print the HTTP request.
11265
11266 1996-10-11  Hrvoje Niksic  <hniksic@srce.hr>
11267
11268         * connect.c (iread): Do not try reading after timeout.
11269
11270         * main.c (main): Would bug out on -T.
11271
11272         * connect.c (select_fd): Do not use exceptfds.
11273         (iread): Set ETIMEDOUT on select_fd <= 0.
11274
11275         * version.c: Changed version to 1.4b26.
11276
11277 1996-10-10  Hrvoje Niksic  <hniksic@srce.hr>
11278
11279         * version.c: "Released" 1.4b25.
11280
11281         * ftp-unix.c (ftp_parse_unix_ls): Ignore lines without file name
11282         or link name.
11283
11284         * http.c (gethttp): Add errcode to struct hstat.
11285         (http_loop): Use it.
11286
11287         * url.c (no_proxy_match): Simplify using char** for no_proxy.
11288
11289         * options.h (struct options): Make opt.no_proxy a vector.
11290
11291         * utils.c (sepstring): Use !*s instead of !strlen(s).
11292
11293         * init.c (setval): Set opt.maxreclevel to 0 on --mirror.
11294         (getperms): Use ISODIGIT instead of isdigit.
11295
11296         * ftp.c (getftp): Print time.
11297
11298         * main.c (main): Use legible output of downloaded quantity.
11299
11300         * ftp.c (getftp): Use elapsed_time().
11301         (ftp_loop_internal): Use rate().
11302
11303         * http.c (http_loop): Add download ratio output; Use rate().
11304
11305         * utils.c (rate): New function.
11306
11307 1996-10-09  Hrvoje Niksic  <hniksic@srce.hr>
11308
11309         * http.c (http_loop): Use timer.
11310
11311         * ftp.c: Split to ftp-basic.c and ftp.c
11312
11313         * utils.c (reset_timer): New function.
11314         (elapsed_time): New function.
11315
11316         * retr.c (show_progress): Make bytes_in_line and offs long; should
11317         work on 16-bit machines.
11318
11319 1996-10-08  Hrvoje Niksic  <hniksic@srce.hr>
11320
11321         * url.c (in_acclist): New argument backward.
11322
11323         * ftp.c (ftp_retrieve_glob): Use acceptable() to determine whether
11324         a file should be retrieved according to suffix.
11325         (ftp_get_listing): Check the return value of unlink; Do not call
11326         ftp_retrieve_dirs if depth reached maxreclevel.
11327         (ftp_retrieve_dirs): Check whether the directory is in
11328         exclude-list.
11329
11330         * main.c (main): Print the version number at the beginning of
11331         DEBUG output.
11332         (main): Use strrchr when creating exec_name.
11333
11334         * ftp.c (ftp_retrieve_glob): Do not close control connection.
11335
11336         * version.c: Changed version to 1.4b25.
11337
11338 1996-10-07  Hrvoje Niksic  <hniksic@srce.hr>
11339
11340         * version.c: "Released" 1.4b24.
11341
11342         * Makefile.in: Rewrite.
11343
11344         * ftp.c (ftp_loop_internal): Likewise.
11345
11346         * retr.c (time_str): Check for failed time().
11347
11348         * html.c (htmlfindurl): Recognize <fig src> and <overlay src> from
11349         HTML3.0.
11350
11351         * retr.c (time_str): Return time_t *.
11352
11353         * connect.c (bindport): Close msock on unsuccesful bind.
11354         (bindport): The same for getsockname and listen.
11355
11356         * retr.c (retrieve_url): Allow any number of retries on
11357         proxy.
11358
11359         * http.c (gethttp): Do not treat errno == 0 as timeout.
11360         (http_loop): Likewise.
11361         (http_loop): Cosmetic changes.
11362
11363         * connect.c (iread): Set errno to ETIMEDOUT in case of timeout.
11364
11365         * retr.c (get_contents): Reset errno.
11366
11367         * ftp.c (getftp): Minor fixes.
11368
11369 1996-10-06  Hrvoje Niksic  <hniksic@srce.hr>
11370
11371         * http.c: Do not use backups.
11372
11373         * geturl.1 (WARNING): Warn that man-page could be obsolete.
11374
11375         * getopt.c (getopt_long): Moved to getopt.c
11376
11377         * geturl.texi: Enhanced.
11378
11379         * main.c (main): Use it.
11380
11381         * recur.c (convert_all_links): New function.
11382
11383         * utils.c (add_slist): New argument flags.
11384
11385         * recur.c (recursive_retrieve): Update a list of downloaded URLs.
11386         (parse_robots): Do not chuck out empty value fields.
11387         (parse_robots): Make yourself welcome on empty Disallow.
11388
11389         * version.c: Changed version to 1.4b24.
11390
11391 1996-10-06  Hrvoje Niksic  <hniksic@srce.hr>
11392
11393         * version.c: "Released" 1.4b23.
11394
11395         * ftp.c (ftp_loop_internal): Get the time after getftp.
11396
11397         * Makefile.in (install.info): New target.
11398         (install): Use it.
11399
11400         * http.c (http_loop): Fix output when doing -O.
11401
11402 1996-10-05  Hrvoje Niksic  <hniksic@srce.hr>
11403
11404         * geturl.texi: New file.
11405
11406         * main.c (main): Do not print the warnings and download summary if
11407         opt.quiet is set.
11408
11409         * version.c: Changed version to 1.4b23.
11410
11411 1996-10-05  Hrvoje Niksic  <hniksic@srce.hr>
11412
11413         * "Released" 1.4b22.
11414
11415         * atotm.c (atotm): Use True and False instead of TRUE and FALSE,
11416         to avoid redefinition warnings.
11417
11418         * host.c (store_hostaddress): Use memcpy() to copy the address
11419         returned by inet_addr.
11420
11421         * version.c: Changed version to 1.4b22.
11422
11423 1996-10-04  Hrvoje Niksic  <hniksic@srce.hr>
11424
11425         * version.c: "Released" 1.4b21.
11426
11427         * ftp-unix.c (ftp_parse_ls): Renamed to ftp_parse_unix_ls.
11428
11429         * ftp.c (ftp_port): Use conaddr.
11430         (getftp): Print the file length.
11431         (ftp_retrieve_list): Check the stamps of plain files only.
11432
11433         * connect.c (closeport): Do not call shutdown().
11434         (conaddr): New function.
11435
11436         * html.c (ftp_index): Made it dfp-aware.
11437
11438         * init.c (cleanup): New name of freemem. Close opt.dfp.
11439
11440         * ftp.c (getftp): Use opt.dfp if it is set.
11441
11442         * ftp-unix.c (ftp_parse_ls): Recognize time in h:mm format.
11443
11444         * ftp.c (ftp_retrieve_dirs): Fixed a bug that caused incorrect
11445         CWDs to be sent with recursive FTP retrievals.
11446
11447 1996-10-03  Hrvoje Niksic  <hniksic@srce.hr>
11448
11449         * recur.c (parse_robots): Made it more compliant with "official"
11450         specifications.
11451
11452         * http.c: New function.
11453
11454         * ftp-unix.c (ftp_parse_ls): Added better debug output.
11455
11456         * ftp.c (getftp): Print out the LIST in case of
11457         opt.print_server_response.
11458
11459         * version.c: Changed version to 1.4b21.
11460
11461 1996-10-01  Hrvoje Niksic  <hniksic@srce.hr>
11462
11463         * version.c: "Released" 1.4b20.
11464
11465         * README: Update.
11466
11467         * http.c (gethttp): Preset lengths of various headers instead of
11468         calculating them dynamically.
11469         (gethttp): Check for 206 partial contents.
11470
11471 1996-09-30  Hrvoje Niksic  <hniksic@srce.hr>
11472
11473         * configure.in: Set SYSTEM_GETURLRC to $libdir/geturlrc
11474
11475         * http.c (gethttp): Send the port number in the Host: header.
11476
11477 1996-09-29  Hrvoje Niksic  <hniksic@srce.hr>
11478
11479         * http.c (gethttp): Send host: header.
11480         (gethttp): Add the possibility of user-defined headers.
11481         (gethttp): Move decision about pragma: no-cache to http_loop,
11482         where it belongs.
11483         (gethttp): Pass a struct instead of enormous argument list.
11484         (http_loop): Use a new, fancier display format.
11485         (ftp_loop): Likewise.
11486
11487         * main.c: (hangup): Turn off buffering of the new log file.
11488
11489         * install-sh: Likewise.
11490
11491         * config.sub: Replace with the one in autoconf-2.10
11492
11493         * geturl.1: Update.
11494
11495         * init.c: New options httpuser and httppasswd.
11496
11497         * http.c: (base64_encode_line): New function.
11498         (gethttp): Send authentication.
11499
11500         * connect.c (make_connection): Use store_hostaddress.
11501
11502 1996-09-28  Hrvoje Niksic  <hniksic@srce.hr>
11503
11504         * host.c (store_hostaddress): New function.
11505
11506         * NEWS: Update.
11507
11508         * http.c (hgetrange): New function.
11509         (gethttp): Use ranges.
11510
11511         * utils.c (numdigit): Accept long instead of int.
11512
11513         * http.c (http_loop): Add restart capabilities.
11514
11515         * ftp.c (ftp_retrieve_glob): Fixed a bug that could cause matchres
11516         being used uninitialized.
11517         (ftp_retrieve_list): Similar fix.
11518
11519         * host.c (add_hlist): Fixed a bug that could cause cmp being used
11520         uninitialized.
11521
11522         * url.c (construct_relative): New function.
11523
11524         * recur.c (recursive_retrieve): Use it.
11525
11526         * retr.c (convert_links): New function.
11527
11528 1996-09-27  Hrvoje Niksic  <hniksic@srce.hr>
11529
11530         * url.c (free_urlpos): New function.
11531
11532         * recur.c (recursive_retrieve): Adapt.
11533
11534         * url.c (get_urls_html): Return a linked list instead of a vector.
11535
11536         * url.c (get_urls_file): Return a linked list instead of a vector.
11537
11538         * geturl.1: Update.
11539
11540         * http.c (gethttp): Implement it.
11541
11542         * init.c (setval): New option: SAVEHEADERS
11543
11544         * ftp.c (ftp_loop_internal): Do not set restval if listing is to
11545         be retrieved. Lack of this test caused bugs when the connection
11546         was lost during listing.
11547
11548         * retr.c (retrieve_url): Fixed a bug that caused
11549         coredumps. *newloc is now reset by default.
11550         (retrieve_url): Lift the twenty-tries limit on proxies.
11551
11552         * version.c: Changed version to 1.4b20.
11553
11554 1996-09-20  Hrvoje Niksic  <hniksic@srce.hr>
11555
11556         * version.c: "Released" 1.4b19.
11557
11558 1996-09-19  Hrvoje Niksic  <hniksic@srce.hr>
11559
11560         * ftp.c (ftp_loop_internal): Renamed from ftp_1fl_loop.
11561         (getftp): Changed prototype to accept ccon *.
11562
11563 1996-09-17  Hrvoje Niksic  <hniksic@srce.hr>
11564
11565         * ftp.c (ftp_retrieve_list): Fixed a bug that caused setting
11566         incorrect values to files pointed to by symbolic links.
11567         (ftp_1fl_loop): Do not count listings among the downloaded URL-s.
11568
11569 1996-09-16  Hrvoje Niksic  <hniksic@srce.hr>
11570
11571         * url.c (mkstruct): Do not prepend "./" in front of a pathname.
11572
11573         * main.c (main): New option: --user-agent.
11574
11575         * geturl.1: Ditto.
11576
11577         * init.h: Ditto.
11578
11579         * init.c (setval): Ditto.
11580
11581         * main.c (main): Rename "server-headers" to "server-response".
11582
11583         * ftp-unix.c (ftp_parse_ls): Check for asterisks at the end of
11584         executables in 'ls -F' listings.
11585
11586 1996-09-15  Hrvoje Niksic  <hniksic@srce.hr>
11587
11588         * url.c (parseurl): Remove realloc() and sprintf().
11589         (str_url): Get rid of sprintf().
11590
11591         * recur.c (recursive_retrieve): Enable FTP recursion through proxy
11592         servers.
11593
11594         * url.h (URL_CLEANSE): Made it else-resistant.
11595         (USE_PROXY): New macro.
11596
11597 1996-09-14  Hrvoje Niksic  <hniksic@srce.hr>
11598
11599         * NEWS: Update.
11600
11601         * version.c: Changed version to 1.4b19.
11602
11603 1996-09-14  Hrvoje Niksic  <hniksic@srce.hr>
11604
11605         * version.c: "Released" 1.4b18.
11606
11607         * url.c: Made it reallocate space exponentially.
11608
11609 1996-09-14  Drazen Kacar  <dave@fly.cc.fer.hr>
11610
11611         * html.c (htmlfindurl): Added <frame src> and <iframe src> among
11612         the list of stuff to fetch.
11613
11614 1996-09-13  Hrvoje Niksic  <hniksic@srce.hr>
11615
11616         * url.c (get_urls_html): Fixed a bug that caused SIGSEGV's with
11617         -Fi.
11618
11619         * html.c (htmlfindurl): Rewrite.
11620
11621         * http.c (gethttp): Use opt.proxy_cache.
11622
11623         * main.c (main): Added --cache option.
11624
11625         * ftp.c (ftp_response): Print server response if opt.print_server
11626         response is set.
11627         (getftp): Print newlines after each request if the server response
11628         is to be printed.
11629         (ftp_response): Copy the last response line to last_respline.
11630
11631         * http.c (gethttp): Add Pragma: nocache for retried
11632         proxy-retrievals.
11633
11634         * ftp.c (getftp): Use it.
11635
11636         * retr.c (buf_discard): New function.
11637
11638         * ftp.c (ftp_response): Use buf_readchar().
11639         (getftp): Flush the control connection buffer before calling
11640         get_contents().
11641
11642         * retr.c (buf_readchar): New function.
11643         (buf_flush): New function.
11644         (get_contents): Use buf_readchar() instead of read(x, x, 1).
11645         (get_contents): Use buf_flush.
11646
11647 1996-09-12  Hrvoje Niksic  <hniksic@srce.hr>
11648
11649         * ftp.c: Incorporate changes to ftp_response.
11650
11651         * ftp.c (ftp_response): Allocate the server response dynamically,
11652         as in read_whole_line and fetch_next_header.
11653
11654         * utils.c (read_whole_line): Fixed a bug that prevented reading
11655         the last line if it is not \n-terminated. Also fixed a possible
11656         memory overflow.
11657
11658         * http.c (fetch_next_header): Return malloc-ed string as large as
11659         needed.
11660         (gethttp): Use new fetch_next_header.
11661
11662 1996-09-12  Hrvoje Niksic  <hniksic@srce.hr>
11663
11664         * http.c (hgetlen): Compute the header length the first time only.
11665         (hgettype): Ditto.
11666         (hgetlocation): Ditto.
11667         (hgetmodified): Ditto.
11668
11669 1996-09-11  Hrvoje Niksic  <hniksic@srce.hr>
11670
11671         * sample.geturlrc: Update.
11672
11673 1996-09-10  Hrvoje Niksic  <hniksic@srce.hr>
11674
11675         * http.c (http_loop): Ditto.
11676
11677         * ftp.c (getftp): Open the output file as binary.
11678
11679         * version.c: Changed version to 1.4b18.
11680
11681 1996-09-10  Hrvoje Niksic  <hniksic@srce.hr>
11682
11683         * version.c: "Released" 1.4b17.
11684
11685         * ftp-unix.c (ftp_parse_ls): If unable to open file, return NULL
11686         instead of failed assertion.
11687
11688 1996-09-09  Hrvoje Niksic  <hniksic@srce.hr>
11689
11690         * ftp.c (ftp_get_listing): Add a numbered suffix to LIST_FILENAME
11691         if a file of that name already exists.
11692
11693 1996-09-05  Hrvoje Niksic  <hniksic@srce.hr>
11694
11695         * ftp.c (ftp_1fl_loop): Handler FTPPORTERR and FOPENERR correctly.
11696
11697         * config.h.in: Define gethostbyname as Rgethostbyname when using
11698         Socks.
11699
11700         * configure.in: Check for -lresolv if using Socks.
11701
11702         * version.c: Changed version to 1.4b17.
11703
11704 1996-07-15  Hrvoje Niksic  <hniksic@srce.hr>
11705
11706         * version.c: "Released" 1.4b16.
11707
11708         * http.c (gethttp): More intelligent check for first line of HTTP
11709         response.
11710         (gethttp): Would bug out on time-stamping.
11711
11712         * version.c: Changed version to 1.4b16.
11713
11714 1996-07-11  Hrvoje Niksic  <hniksic@srce.hr>
11715
11716         * version.c: Released 1.4b15.
11717
11718         * http.c (http_loop): Print \n after the loop entry, not before.
11719
11720         * url.c (url_filename): Use ISDOT.
11721
11722         * url.h (ISDOT): New macro.
11723
11724         * recur.c (recursive_retrieve): Change only opt.recursive for
11725         following FTP.
11726
11727 1996-07-11  Antonio Rosella <antonio.rosella@agip.it>
11728
11729         * socks/geturl.cgi: Fixed version No.
11730
11731         * socks/download-netscape.html: Ditto.
11732
11733         * socks/download.html: Changed socks.html to download.html.
11734
11735 1996-07-11  Hrvoje Niksic  <hniksic@srce.hr>
11736
11737         * url.c (url_filename): Check for opt.dirstruct instead for
11738         opt.recursive && opt.dirstruct.
11739
11740         * init.c (defaults): Ditto.
11741         (defaults): Reset dirstruct by default.
11742         (setval): Set opt.dirstruct whenever setting recursive.
11743
11744         * init.h: Removed FORCEDIRHIER.
11745
11746         * INSTALL: Added -L to socks-description.
11747
11748         * version.c: Changed version to 1.4b15.
11749
11750 1996-07-10  Hrvoje Niksic  <hniksic@srce.hr>
11751
11752         * version.c: "Released" 1.4b14.
11753
11754         * geturl.1: Update AUTHOR to include Rosella as contributor.
11755
11756         * NEWS: Update.
11757
11758         * socks/geturl.cgi: Simplified command creation, nuked <blink>.
11759
11760         * socks/geturl.cgi: Wrap nutscape extensions within if $netscape.
11761         (cal_time): Fix == to eq.
11762
11763         * socks/geturl.cgi: GPL-ized with permission of A. Rosella.
11764
11765         * geturl.1 (hostname): Moved URL CONVENTIONS to the beginning.
11766
11767         * Makefile.in: Use @VERSION@.
11768
11769         * configure.in: Check version from version.c.
11770
11771         * socks/geturl.cgi: Changed /pub/bin/perl to /usr/bin/perl.
11772
11773         * socks/download.html: Created from download-netscape.html, made
11774         HTML-2.0 compliant.
11775
11776         * recur.c (recursive_retrieve): Set opt.force_dir_hier when
11777         following FTP links from recursions.
11778
11779 1996-07-09  Hrvoje Niksic  <hniksic@srce.hr>
11780
11781         * url.c (mymkdir): Fixed a bug that prevented mymkdir() to create
11782         absolute directories correctly.
11783
11784         * version.c: Changed version to 1.4b14.
11785
11786 1996-07-09  Hrvoje Niksic  <hniksic@srce.hr>
11787
11788         * version.c: "Released" 1.4b13.
11789
11790         * url.c (make_backup): New function.
11791
11792         * http.c (http_loop): Make a backup copy of the local file (using
11793         rename(2)) before opening it.
11794
11795         * main.c (main): Added --backups.
11796
11797         * host.c (ftp_getaddress): Bail out on failed mycuserid().
11798         (ftp_getaddress): Check for leading dot on MY_DOMAIN.
11799         (ftp_getaddress): Check for empty, null or (null) domain.
11800
11801         * url.c (get_urls_html): If this_url is NULL, the base must have a
11802         protocol.
11803         (parseurl): Use has_proto.
11804
11805         * retr.c (retrieve_url): Warn when proxy is used with more than 20
11806         retries.
11807
11808         * url.c (mkstruct): Create the directory (calling mymkdir()) only
11809         if it is not already there.
11810         (has_proto): New function.
11811         (get_urls_html): Eliminate the remaining call to findurl -- use
11812         has_proto.
11813
11814         * geturl.1: Ditto.
11815
11816         * main.c: Change -X to -x.
11817
11818         * url.c (url_filename): Simplify creation of filename if
11819         prefix_files is set.
11820         (url_filename): Simplify everything. And I do mean *everything*.
11821         (mkstruct): Add dir_prefix before hostname.
11822         (path_simplify): Fixed a bug that caused writing outside the path
11823         string in case of "." and ".." path strings.
11824
11825 1996-07-06  Hrvoje Niksic  <hniksic@srce.hr>
11826
11827         * init.c: Added --mirror.
11828
11829         * main.c (main): Added -X to force saving of directory hierarchy.
11830
11831         * ftp.c (ftp_retrieve_list): Added recursion depth counter.
11832         (ftp_retrieve_list): Check whether quota is exceeded.
11833
11834         * url.c (get_urls_html): Skip leading blanks for absolute URIs.
11835
11836         * http.c (gethttp): Use referer if present.
11837
11838         * recur.c (recursive_retrieve): Set u->referer before calling
11839         retrieve_url.
11840
11841         * url.c (newurl): Use memset to nullify the struct members.
11842         (freeurl): Free the referer field too.
11843
11844         * url.h: Added referer to urlinfo.
11845
11846         * geturl.1: Updated the manual to document some of the new features.
11847
11848         * utils.c (numdigit): Moved from url.c.
11849
11850         * README: Rewritten.
11851
11852         * config.h.in: Add the support for socks.
11853
11854         * configure.in: Add the support for socks.
11855
11856         * url.c (url_filename): If the dir_prefix is ".", work with just
11857         the file name.
11858         (url_filename): Do not look for .n extensions if timestamping if
11859         turned on.
11860
11861         * retr.c (show_progress): Skip the over-abundant restval data, and
11862         print the rest of it with ',' instead of '.'.
11863
11864 1996-07-05  Hrvoje Niksic  <hniksic@srce.hr>
11865
11866         * retr.c (show_progress): Changed second arg. to long (as it
11867         should be).
11868         (show_progress): Moved to retr.c.
11869         (get_contents): Moved to retr.c.
11870
11871         * version.c: Change version to 1.4b13.
11872
11873 1996-07-05  Hrvoje Lacko <hlacko@fly.cc.fer.hr>
11874
11875         * url.c (in_acclist): Would return after the first suffix.
11876
11877 1996-07-04  Hrvoje Niksic  <hniksic@srce.hr>
11878
11879         * version.c: "Released" 1.4b12.
11880
11881         * url.c (path_simplify): More kludgifications.
11882         (get_urls_html): Use new parameters for htmlfindurl.
11883
11884         * html.c: Removed memorizing "parser states", since the new
11885         organization does not require them.
11886
11887         * init.c (run_geturlrc): Use read_whole_line.
11888
11889         * ftp-unix.c (ftp_parse_ls): Use read_whole_line.
11890
11891         * recur.c (parse_robots): Use read_whole_line.
11892
11893         * utils.c (read_whole_line): New function.
11894
11895         * recur.c (tried_robots): Use add_slist/in_slist, *much* cleaner.
11896
11897         * host.c (ngethostbyname): Call inet_addr just once. Yet to be
11898         tested on OSF and Ultrix.
11899         (add_hlist): New function.
11900         (free_hlist): New function.
11901         (search_host): New function.
11902         (search_address): New function.
11903         (realhost): Use search_host, search_address and add_hlist.
11904         (same_host): Replaced realloc() with strdupdelim(), made
11905         case-insensitive, fixed a memory leak.
11906
11907         * html.c (ftp_index): Fixed tm_min and tm_sec to be tm_hour and
11908         tm_min, like intended.
11909
11910         * version.c: Change user agent information to
11911         Geturl/version.
11912
11913 1996-07-03  Hrvoje Niksic  <hniksic@srce.hr>
11914
11915         * utils.c: Renamed nmalloc.c to utils.c, .h likewise.
11916
11917         * url.c (acceptable): Always accept directories.
11918
11919         * ftp-unix.c (ftp_parse_ls): Support brain-damaged "ls -F"-loving
11920         servers by stripping trailing @ from symlinks and trailing / from
11921         directories.
11922
11923         * ftp.c (ftp_loop): Debugged the "enhanced" heuristics. :-)
11924
11925         * url.c (skip_url): Use toupper instead of UCASE.
11926
11927         * host.c (sufmatch): Made it case-insensitive.
11928
11929         * url.c (match_backwards_or_pattern): Fixed i == -1 to j == -1.
11930         (match_backwards): New function, instead of
11931         match_backwards_or_pattern.
11932
11933         * recur.c (recursive_retrieve): Increased performance by
11934         introducing inl, which reduces number of calls to in_slist to only
11935         one.
11936
11937         * ftp.c (ftp_loop): Enhanced the heuristics that decides which
11938         routine to use.
11939
11940         * main.c (printhelp): Removed the warranty stuff.
11941
11942 1996-07-02  Hrvoje Niksic  <hniksic@srce.hr>
11943
11944         * url.c (add_slist): Simplify.
11945         (match_backwards_or_pattern): New function.
11946         (in_acclist): Use match_backwards_or_pattern.
11947         (matches): Remove.
11948
11949 1996-06-30  Hrvoje Niksic  <hniksic@srce.hr>
11950
11951         * ftp.c (ftp_loop): Call ftp_index on empty file names, if not
11952         recursive.
11953
11954         * html.c (ftp_index): Fixed to work. Beautified the output.
11955
11956         * ftp.c (ftp_retrieve_glob): Another argument to control whether
11957         globbing is to be used.
11958         (ftp_retrieve_list): Compare the time-stamps of local and remote
11959         files to determine whether to download.
11960
11961 1996-06-29  Hrvoje Niksic  <hniksic@srce.hr>
11962
11963         * ftp.c (rel_constr): New function.
11964
11965         * retr.c (retrieve_from_file): Check for text/html before
11966         retrieving recursively.
11967
11968         * main.c (main): Check whether the file is HTML before going into
11969         recursive HTML retrieving.
11970
11971         * ftp.c (ftp_retrieve_list): Manage directories.
11972         (ftp_retrieve_glob): Pass all the file-types to ftp_retrieve_list.
11973         (ftp_1fl_loop): Fixed a bug that caused con->com to be incorrectly
11974         initialized, causing bugchecks in getftp to fail.
11975
11976         * configure.in: Check for symlink.
11977
11978         * ftp.c (ftp_retrieve_list): Added support for symlinks.
11979
11980         * version.c: "Released" 1.4b10.
11981
11982         * atotm.c (atotm): Redeclared as time_t.
11983
11984         * init.c: New variable "timestamping".
11985
11986         * main.c (main): New option 'N'.
11987
11988         * http.c (hgetlocation): Case-insensitive match.
11989         (hgetmodified): New function.
11990         (http_loop): Implement time-stamping.
11991
11992 1996-06-28  Hrvoje Niksic  <hniksic@srce.hr>
11993
11994         * version.c: Changed version to 1.4b10
11995
11996         * atotm.c: New file, from phttpd.
11997
11998         * options.h (struct options): New parameter timestamping.
11999
12000         * version.c: 1.4b9 "released".
12001
12002         * recur.c (recursive_retrieve): Used linked list (ulist) for
12003         faster storing of URLs.
12004
12005         * url.c (get_urls_html): Removed the old kludge with comparing the
12006         outputs of htmlfindurl and findurl.
12007         (get_urls_html): Added better protocol support here.
12008         (create_hash): Removed, as well as add_hash and in_hash.
12009         (addslist): New function.
12010         (in_slist): ditto
12011
12012         * version.c: Released 1.4b8, changed version to b9.
12013
12014 1996-06-27  Hrvoje Niksic  <hniksic@srce.hr>
12015
12016         * ftp.c (freefileinfo): New function.
12017         (delelement): New function.
12018
12019         * everywhere: GPL!
12020
12021         * ftp.c (ftp_loop): Use ccon.
12022         (ftp_retrieve_glob): Likewise.
12023
12024         * ftp.h: Define ccon, to define status of control connection.
12025
12026         * ftp.c (ftp_get_listing): New function.
12027         (ftp_retrieve_more): New function.
12028         (ftp_retrieve_glob): New function.
12029
12030 1996-06-25  Hrvoje Niksic  <hniksic@srce.hr>
12031
12032         * configure.in: Removed the search for cuserid().
12033
12034         * init.c (getmode): Renamed to getperms.
12035
12036 1996-06-24  Hrvoje Niksic  <hniksic@srce.hr>
12037
12038         * version.c: New version.
12039
12040         * main.c (hangup): New function, that handles hangup. Hangup
12041         signal now causes geturl to stop writing on stdout, and to write
12042         to a log file.
12043
12044         * ftp.c (getftp): "Released" 1.4b7.
12045
12046         * html.c (htmlfindurl): Ignore everything inside <head>...</head>.
12047         (ftp_index): Use fileinfo/urlinfo.
12048
12049         * ftp-unix.c (ftp_parse_ls): New function.
12050         (symperms): New function.
12051
12052         * ftp.c (ftp_1fl_loop): New function, to handle 1-file loops.
12053
12054         * retr.c (retrieve_url): Added FTP support.
12055
12056 1996-06-23  Hrvoje Niksic  <hniksic@srce.hr>
12057
12058         * geturl.h: Removed NOTFTP2HTML enum.
12059         Added DO_LOGIN, DO_CWD and DO_LIST. LIST_ONLY is obsolete.
12060
12061         * ftp.c (getftp): Resynched with urlinfo.
12062         (getftp): Removed HMTL-ization of index.html from getftp.
12063
12064         * version.c: 1.4b6 "released".
12065
12066         * options.h (options): New struct, to keep options in.
12067
12068         * http.c (http_loop,gethttp): Synched with proxy.
12069
12070         * retr.c (retrieve_url): Implemented proxy retrieval.
12071
12072         * main.c (main): Use retrieve_from_file.
12073
12074 1996-06-22  Hrvoje Niksic  <hniksic@srce.hr>
12075
12076         * retr.c (retrieve_from_file): New function.
12077
12078         * url.c (parseurl): Modified to return URLOK if all OK. Protocol
12079         can be found in u->proto.
12080
12081         * ftp.c (ftp_response): Fixed to accept multi-line responses as
12082         per RFC 959.
12083
12084         * recr.c (recursive_retrieve): Take newloc from retrieve_url.
12085
12086         * url.c (mymkdir): Removed the file of the same name, if one
12087         exists.
12088         (isfile): New function.
12089         (mkstruct): Fixed the '/' glitches.
12090         (path_simplify): Hacked to treat something/.. correctly.
12091
12092 1996-06-21  Hrvoje Niksic  <hniksic@srce.hr>
12093
12094         * http.c (gethttp): Close the socket after error in headers.
12095         (http_loop): HEOF no longer a fatal header.
12096
12097         * loop.c (retrieve_url): When dt is NULL, do not modify it. This
12098         simplifies the syntax of calling retrieve_url.
12099
12100         * recr.c (recursive_retrieve): Modified to use get_urls_html.
12101
12102         * url.c (get_urls_file): New function.
12103         (get_urls_html): New function.
12104
12105         * recr.c (recursive_retrieve): Patched up to conform to the
12106         standards.
12107
12108         * http.c (gethttp): Synched with the rest...
12109         (gethttp): Treat only CONREFUSED specially, with connection
12110         errors.
12111
12112         * init.c,geturl.1,http.c (http_loop): Removed kill_error.
12113
12114 1996-06-20  Hrvoje Niksic  <hniksic@srce.hr>
12115
12116         * http.c (http_loop): New function.
12117
12118         * loop.c: Removed *lots* of stuff from retrieve_url.
12119
12120         * url.c (parseurl): Changed to work with urlinfo. Integrated
12121         username finding and path parsing.
12122         (newurl): New function.
12123         (freeurl): New function.
12124         (mkstruct): Removed the old bogosities, made it urlinfo-compliant.
12125         (url_filename): Likewise.
12126         (path_simplify): Accept relative paths too.
12127         (opt_url): Made urlinfo-compliant, removed bogosities.
12128         (path_simplify): Expanded to accept relative paths.
12129         (str_url): A replacement for hide_url
12130         (decode_string): Fixed a bug that caused malfunctioning when
12131         encountering an illegal %.. combination.
12132         (opt_url): Removed the argument. Dot-optimizations are now default.
12133
12134         * nmalloc.c (strdupdelim): New function.
12135
12136         * url.h: Added the urlinfo structure
12137
12138 1996-06-19  Hrvoje Niksic  <hniksic@srce.hr>
12139
12140         * url.c (hide_url): Thrown out the protocol assertion. Do not
12141         change the URL if the protocol if not recognized.
12142         (findurl): Put continue instead of break.
12143
12144 1996-06-18  Hrvoje Niksic  <hniksic@srce.hr>
12145
12146         * sample.geturlrc: Changed the defaults to be commented out and
12147         harmless (previous defaults caused pains if copied to
12148         ~/.geturlrc).
12149
12150         * http.c (gethttp): Print the HTTP request in debug mode.
12151
12152         * connect.c (iread): Added EINTR check loop to select-ing
12153         too. EINTR is now correctly handled with select().
12154
12155         * TODO: new file
12156
12157 1996-05-07  Hrvoje Niksic  <hniksic@srce.hr>
12158
12159         * host.c (same_host): Made the function a little bit more
12160         intelligent regarding diversified URL syntaxes.
12161
12162         * url.c (skip_url): Spaces are now skipped after URL:
12163
12164         * Released 1.3.1 with the patch to prevent crashing when sending
12165         NULL to robot* functions and the patch to compile "out of the box"
12166         on AIX.
12167
12168         * recr.c (recursive_retrieve): Added checking whether this_url is
12169         NULL when calling the robot functions.
12170
12171         * ChangeLog: New file.