]> sjero.net Git - wget/blob - src/ChangeLog
03795ef72b07ce76cf6d2b3389b356e6c63b7fd9
[wget] / src / ChangeLog
1 2009-08-27  Micah Cowan  <micah@cowan.name>
2
3         * http.c (gethttp): Make sure Wget heeds cookies when they
4         are sent with a 401 response; or any other sort of response for
5         that matter (#26775).
6
7 2009-08-19  Micah Cowan  <micah@cowan.name>
8
9         * openssl.c (ssl_check_certificate): Only warn about an attack if
10         the hostname would otherwise have matched. Also some formatting
11         cleanup.
12
13 2009-08-19  Joao Ferreira  <joao@joaoff.com>
14
15         * openssl.c (ssl_check_certificate): Detect embedded NUL
16         characters in the SSL certificate common name.
17
18 2009-08-17  Tony Lewis  <tlewis@exelana.com>
19
20         * http.c (gethttp): Ensure that we parse Content-Length before we
21         attempt to refer to its value. Without this fix, NTLM support was
22         completely buggered. #27192
23
24 2009-08-09  Michael Baeuerle  <michael.baeuerle@gmx.net>
25
26         * ftp.c: #include <strings.h> for strcasecmp.
27
28 2009-07-28  Micah Cowan  <micah@cowan.name>
29
30         * main.c (option_data): Rename --html-extension to
31         --adjust-extension.
32         (print_help): Ditto.
33         
34         * options.h (struct option): Rename html_extension to
35         adjust_extension.
36         * http.c (gethttp): Ditto.
37         * convert.c (local_quote_string): Ditto.
38
39         * init.c (commands): Add "adjustextension", and reflect rename
40         change for opt.adjust_extension, for both "adjustextension" and
41         "htmlextension".
42
43 2009-07-27  Micah Cowan  <micah@cowan.name>
44
45         * options.h (struct options): Added restrict_files_nonascii
46         boolean field.
47
48         * url.c (FILE_CHAR_TEST): Add check for chars outside the ASCII
49         range.
50
51         * init.c (defaults): Add restrict_files_nonascii to initialization.
52         (cmd_spec_restrict_file_names): Allow parsing of "ascii" keyword.
53
54 2009-07-27  Marcel Telka  <marcel@telka.sk>
55
56         * iri.c (do_conversion): Typo: invalide -> invalid
57
58 2009-07-27  Petr Pisar  <petr.pisar@atlas.cz>
59
60         * main.c (print_help): Fixed a couple typos.
61
62 2009-07-26  Micah Cowan  <micah@cowan.name>
63
64         * main.c (option_data): Rename --locale option to --local-encoding
65         (print_help): Document --no-iri, --local-encoding, and
66         --remote-encoding, within usage message. Remove defunct
67         --preserve-permissions.
68
69 2009-07-23  Micah Cowan  <micah@cowan.name>
70
71         * progress.c (get_eta): Change "Translation note" in comment to
72         "TRANSLATORS", so it actually appears in wget.pot.
73
74 2009-07-06  Micah Cowan  <micah@cowan.name>
75
76         * main.c (print_help): Improve documentation of --base.
77
78 2009-07-05  Micah Cowan  <micah@cowan.name>
79
80         * html-url.c (tag_handle_meta): Handle meta name="robots"
81         properly: deal with whitespace, commas after...
82
83         * netrc.c (parse_netrc): Rename local-scope variable "quote" to
84         "qmark", to avoid conflict with the function name.
85
86 2009-07-05  Petr Pisar  <petr.pisar@atlas.cz>
87
88         * main.c (print_version): Mark initial line for translation, along
89         with (env), (user), and (system). Change copyright year to 2009.
90
91         * http.c (http_loop): Space after colon.
92
93         * gnutls.c (ssl_check_certificate): Use quote function, rather
94         than explicit quotes.
95
96 2009-07-05  Micah Cowan  <micah@cowan.name>
97
98         * Makefile.am (version.c): Add dependency on configure.ac.
99
100         * iri.c: Mark some strings for translation.
101
102 2009-07-04  Steven Schweda  <sms@antinode.info>
103
104         * wget.h (ORIG_SFX): Macro added, to supply an alternative "_orig"
105         suffix on VMS.
106         
107         * connect.c, host.c, host.h, main.c: Include "vms_ip.h" rather
108         than <netdb.h> on VMS systems.
109
110         * convert.c (write_backup_file): Use "_orig" rather than ".orig"
111         on VMS.
112
113         * ftp-basic.c (ftp_list): Don't use LIST -a on VMS servers.
114
115         * ftp.c [__VMS]: Include "vms.h"
116         * ftp.c (getftp): Disable some unhelpful "for VMS" code. Pass the
117         OS type to ftp_list.
118         (getftp) [__VMS]: Alter the filename as required, and invoke fopen
119         with extra optional arguments.
120         (ftp_retrieve_list): Set permissions before setting the times.
121
122         * ftp-ls.c [__VMS]: Various improvements.
123
124         * http.c (SET_USER_AGENT): Added. Include operating-system info in
125         the User-Agent header.
126         (gethttp): Use ORIG_SFX macro.
127         (gethttp) [__VMS]: invoke fopen with extra arguments to
128         communicate file type.
129         (http_loop): Add cast to time_t.
130
131         * init.c (wgetrc_user_file_name) [__VMS]: Adjustments for where to
132         find the .wgetrc.
133
134         * log.c: Adjustments to improve handling of log files on VMS.
135
136         * main.c [__VMS]: Added --ftp-stmlf option (and associated
137         documentation). Adjust description of backup-suffixes, as they now
138         differ for VMS.
139         (print_help, print_version): Include OS type in version
140         information.
141         (main) [__VMS]: Invoke fopen with extra options, to specify file
142         type information.
143
144         * netrc.c (search_netrc) [__VMS]: Fix .netrc-finding.
145
146         * openssl.c, openssl.h (ssl_connect_wget): Renamed from ssl_connect.
147
148         * options.h (struct options): Add ftp_stmlf field.
149
150         * retr.c (write_data) [__VMS]: Avoid fflush.
151
152         * url.c [__VMS]: Include vms.h.
153         * url.c (url_file_name) [__VMS]: Handle naming as required for VMS.
154
155         * utils.c [__VMS]: Include vms.h. Various added facilities for VMS
156         needs.
157
158 2009-07-04  Micah Cowan  <micah@cowan.name>
159
160         * main.c (print_version): Allow localization of the version-info
161         labels, eschew attempts at alignment (which is complicated when
162         handling translated strings), and avoid using printf() with
163         variable-stored format strings that lack conversion
164         specifications.
165         (format_and_print_line): For similar reasons, don't calculate
166         line-continuation tabulation based on the number of bytes in a
167         string.
168
169 2009-07-04  Steven Schubiger  <stsc@member.fsf.org>
170
171         * url.c (url_parse): If an URL scheme is invalid, distinguish
172         between an unsupported or missing scheme.
173
174         * url.c: Add a "missing scheme" entry to parse_errors.
175
176 2009-07-03  Micah Cowan  <micah@cowan.name>
177
178         * iri.h (iri_dup): Provide macro definition for when IRIs are
179         disabled.
180
181         * Makefile.am (LIBS): Added @LIBICONV@.
182         (wget_SOURCES): Added iri.h.
183         (EXTRA_wget_SOURCES): Added iri.c, so it gets packaged even if IRI
184         support was disabled.
185
186 2009-07-02  Micah Cowan  <micah@cowan.name>
187
188         * recur.c (url_enqueue): Quote enqueue/dequeue debug messages.
189
190         * html-url.c (append_url): Change "merge()" quoting style from
191         locale_quoting_style to escape_quoting_style.
192
193 2009-07-01  Micah Cowan  <micah@cowan.name>
194
195         * retr.c (retrieve_url): Use the existing "redirect" label,
196         instead of superfluous "second_try". Removed no-longer-accurate
197         debug statement. Use the "newloc" parameter to store the fallback
198         URL, when IRI version was rejected.
199
200         * recur.c (retrieve_tree): Always use the parsed URL for tracking
201         the Referer, since that's the one we actually requested (if
202         there's a difference in terms of percent-encodings and such).
203
204 2009-07-01  Steven Schubiger  <stsc@member.fsf.org>
205
206         * Makefile.am: Add a rule to generate build_info.c and list
207         the build_info.c.in file in EXTRA_DIST. Adjust elsewhere
208         where needed.
209         
210         * build_info.c: Remove this static source file.
211         
212         * build_info.c.in: Data for generation of build_info.c.
213
214 2009-06-29  Micah Cowan  <micah@cowan.name>
215
216         * html-url.c (append_url): Quote some more arguments that might
217         contain characters that are inappropriate to display for the
218         current locale.
219
220         * retr.c (retrieve_from_file): Be sure to pass iri information
221         when parsing an input-fle url, and be sure to hand a clean iri
222         struct, off to retrieve_tree and retrieve_url.
223
224         * iri.c, iri.h (iri_dup): Added.
225
226         * retr.c (retrieve_url): Re-parse for IRI fallback.
227
228         * main.c (main): Set up iri before the url_parse invocation (so we
229         can use it).
230
231 2009-06-20  Jay Krell  <jay.krell@cornell.edu>
232
233         * sysdep.h (_ALL_SOURCE): (small change) Define the _ALL_SOURCE
234         macro on INTERIX systems. (I switched the location from ftp.c to
235         sysdep.h --mjc)
236
237 2009-06-15  Micah Cowan  <micah@cowan.name>
238
239         * ftp.c (getftp): If we can't accept the connection, return
240         CONERROR, not whatever the contents of err happens to be. Fixes
241         bug #25015.
242
243         * retr.c (fd_read_body): Make both args to progress_create
244         consistent, resulting in an accurate progress display. Fixes bug
245         #24948.
246
247 2009-06-14  Micah Cowan  <micah@cowan.name>
248
249         * Makefile.am (wget_SOURCES): css-tokens.h needs to ship with
250         dist, too.
251
252 2009-06-13  Micah Cowan  <micah@cowan.name>
253
254         * init.c: Rename setval_internal_wrapper to setval_internal_tilde,
255         ensure we don't "replace" the tilde unless it's actually
256         present. Clean up some minor GNU style issues.
257
258 2009-06-13  Julien Pichon  <julienpichon7@gmail.com>
259
260         * init.c: Handle tilde-expansion in wgetrc commands, without
261         resorting to setting/unsetting globals to change behavior in one
262         call location.
263
264 2009-06-12  Micah Cowan  <micah@cowan.name>
265
266         * host.c: Include <sys/types.h> before <sys/socket.h>. Not
267         required by POSIX any more, but some older systems (such as
268         FreeBSD 4.1) still need it, and it doesn't seem like it could
269         hurt...
270
271         * build_info.c (library): Handle "https" as a feature in its own
272         right, apart from "gnutls" and "openssl".
273
274         * host.c: Declare h_errno if no declaration is provided. Idea
275         thanks to Maciej W. Rozycki.
276
277 2009-06-11  Xin Zou  <zouxin2008@gmail.com>     
278         
279         * http.c (gethttp): Fix some memory leaks.
280         
281 2009-06-11  Micah Cowan  <micah@cowan.name>
282
283         * http.c (http_atotm): Handle potential for setlocale's return
284         value to be static storage. Thanks to Benjamin Wolsey
285         <bwy@benjaminwolsey.de>.
286
287         * sysdep.h: Need NAMESPACE_TWEAKS on non-Linux glibc-based
288         systems, too. Thanks to Robert Millan.
289
290 2009-05-28  Steven Schubiger  <stsc@member.fsf.org>
291
292         * ftp.c (ftp_get_listing): Update the "listing file" 
293         string after calling ftp_loop_internal().
294
295 2009-05-27  Steven Schubiger  <stsc@member.fsf.org>
296
297         * ftp.c (ftp_get_listing): Duplicate the "listing file"
298         string to avoid memory corruption when FOPEN_EXCL_ERR is
299         encountered.
300
301 2009-05-17  Steven Schubiger  <stsc@member.fsf.org>
302
303         * progress.c (eta_to_human_short): Fix the remaining hours
304         to be displayed. Spotted by Tadeu Martins (#26411).
305
306 2009-04-24  Micah Cowan  <micah@cowan.name>
307
308         * hash.c: Change stdint.h inclusion to use HAVE_STDINT_H, not C99
309         check.
310
311         * connect.c: stdint.h inclusion added.
312
313         Thanks to Markus Duft <mduft@gentoo.org> for a similar patch.
314         
315 2009-04-20  Micah Cowan  <micah@cowan.name>
316
317         * Makefile.am (version.c): Fix unportable use of "echo -n".
318
319 2009-04-13  Steven Schubiger  <stsc@member.fsf.org>
320
321         * ftp.c (ftp_retrieve_list): Move the duplicated code that
322         determines the local file to a function.
323         
324         * http.c (http_loop): Likewise.
325
326         * retr.c (set_local_file): New function.
327
328 2009-04-11  Steven Schubiger  <stsc@member.fsf.org>
329
330         * init.c (initialize): Run a custom SYSTEM_WGETRC when 
331         provided as an environment variable.
332
333 2009-02-27  Gisle Vanem  <gvanem@broadpark.no>
334
335         * main.c (main): "freopen (NULL,.." causes an assertion in MSVC
336         debug-mode.  I.e. NULL isn't legal. But the "CONOUT$" device works
337         fine.
338
339 2009-02-27  Steven Schubiger  <stsc@member.fsf.org>
340
341         * ftp.c (ftp_loop_internal): Don't claim for FTP retrievals
342         when writing to standard output either that the document
343         has been saved. Addresses bug #20520 again.
344
345 2009-02-21  Steven Schubiger  <stsc@member.fsf.org>
346
347         * http.c (http_loop): When a document is written to 
348         standard output, don't claim it has been saved to a file.
349         Addresses bug #20520.
350
351 2009-02-18  Steven Schubiger  <stsc@members.fsf.org>
352
353         * recur.h: Remove the dangling declaration for recursive_cleanup().
354
355 2009-02-01  Gerardo E. Gidoni  <gerel@gnu.org>
356
357         * main.c, recur.c, recur.h, res.c, retr.c, retr.h: restructured code to
358         avoid multiple 'url_parse' calls.
359
360 2008-11-13  Micah Cowan  <micah@cowan.name>
361
362         * http.c (gethttp): Don't do anything when content-length >= our
363         requested range.
364
365 2008-11-27  Saint Xavier  <wget@sxav.eu>
366
367         * http.c (gethttp): Move authentication code before filename
368         allocation avoiding fallbacking on default filename because
369         "Content-Disposition" header wasn't present before authentcation
370         has been completed. Fixes bug #24862.
371
372 2008-11-16  Steven Schubiger  <stsc@members.fsf.org>
373
374         * main.c: Declare and initialize the numurls counter.
375
376         * ftp.c, http.c: Make the counter visible here and use it.
377         
378         * options.h: Remove old declaration from options struct.
379
380 2008-11-15  Steven Schubiger  <stsc@members.fsf.org>
381
382         * init.c (defaults): Set default waitretry value.
383
384 2008-11-14  Steven Schubiger  <stsc@members.fsf.org>
385
386         * main.c (format_and_print_line): Use a custom format 
387         string for printing leading spaces.
388
389 2008-11-12  Micah Cowan  <micah@cowan.name>
390
391         * ftp-ls.c (ftp_index): HTML-escape dir name in title, h1, a:href.
392
393 2008-11-12  Alexander Belopolsky  <alexander.belopolsky@gmail.com>
394
395         * url.c, url.h (url_escape_unsafe_and_reserved): Added.
396
397         * ftp-ls.c (ftp_index): URL-escape, rather than HTML-escape, the
398         filename appearing in the link.
399
400 2008-11-12  Steven Schubiger  <stsc@members.fsf.org>
401
402         * main.c (print_version): Hand the relevant
403         xstrdup/xfree calls back to format_and_print_line().
404
405 2008-11-11  Steven Schubiger  <stsc@members.fsf.org>
406
407         * main.c (format_and_print_line): Move both the memory
408         allocating and freeing bits upwards to print_version().
409
410 2008-11-10  Saint Xavier  <wget@sxav.eu>
411
412         * http.c: Make --auth-no-challenge works with user:pass@ in URLs.
413
414 2008-11-05  Micah Cowan  <micah@cowan.name>
415
416         * ftp.c (print_length): Should print humanized "size remaining"
417         only when it's at least 1k.
418
419 2008-10-31  Micah Cowan  <micah@cowan.name>
420
421         * main.c (print_version): Add information about the mailing list.
422
423 2008-10-31  Alexander Drozdov  <dzal_mail@mtu-net.ru>
424
425         * retr.c (fd_read_hunk): Make assert deal with maxsize == 0.
426
427         * ftp-ls.c (clean_line): Prevent underflow on empty lines.
428
429 2008-10-26  Gisle Vanem  <gvanem@broadpark.no>
430
431         * main.c (format_and_print_line): Put variables on top of
432         blocks (not all compilers are C99). Add an extra '\n' if
433         SYSTEM_WGETRC isn't defined and printed.
434
435 2008-09-09  Gisle Vanem  <gvanem@broadpark.no>
436
437         * url.c (url_error): Use aprintf, not asprintf.
438         
439 2008-09-09  Micah Cowan  <micah@cowan.name>
440
441         * init.c (home_dir): Save the calculated value for home,
442         to avoid duplicated work on repeated calls.
443         (wgetrc_file_name) [WINDOWS]: Define and initialize home var.
444
445         * build_info.c, main.c: Remove unnecessary extern vars
446         system_wgetrc and locale_dir.
447
448         * main.c: Define program_name for lib/error.c.
449
450 2008-09-02  Gisle Vanem  <gvanem@broadpark.no>
451
452         * mswindows.h: Must ensure <stdio.h> is included before
453         we redefine ?vsnprintf().
454
455 2008-08-08  Steven Schubiger  <stsc@members.fsf.org>
456
457         * main.c, utils.h: Removed some dead conditional DEBUG_MALLOC code.
458
459 2008-08-03  Micah Cowan  <micah@cowan.name>
460
461         * main.c (print_help): Added --default-page.
462
463 2008-08-01  Joao Ferreira  <joao@joaoff.com>
464
465         * init.c, main.c, options.h, url.c: Added option --default-page
466         to support alternative default names for index.html
467
468 2008-08-03  Micah Cowan  <micah@cowan.name>
469
470         * build_info.c, css-url.c: #include wget.h, not config.h.
471
472 2008-08-03  Steven Schubiger  <stsc@members.fsf.org>
473
474         * url.c, url.h (url_error): Better messages for unsupported
475         schemes, especially https.
476
477         * html-url.c, recur.c, retr.c: Adjust to new url_error
478         invocation, and free result.
479
480 2008-07-17  Steven Schubiger  <stsc@members.fsf.org>
481
482         * retr.c (retrieve_from_file): When given an URL as input file,
483         use it as baseref if none was specified and treat the input file
484         as HTML if its content type is text/html.
485
486         * init.c (cleanup): Free the memory associated with the base
487         option (when DEBUG_MALLOC is defined).
488
489 2008-07-02  Xavier Saint  <wget@sxav.eu>
490
491         * iri.c, iri.h  : New function idn_decode() to decode ASCII
492         encoded hostname to the locale.
493
494         * host.c : Show hostname to be resolved both in locale and
495         ASCII encoded.
496
497 2008-06-28  Steven Schubiger  <stsc@members.fsf.org>
498
499         * retr.c (retrieve_from_file): Allow for reading the links from
500         an external file (HTTP/FTP).
501
502 2008-06-26  Xavier Saint  <wget@sxav.eu>
503
504         * iri.c, iri.h : New functions locale_to_utf8() and
505         idn_encode() adding basic capabilities of IRI/IDN.
506
507         * url.c : Convert URLs from locale to UTF-8 allowing a basic
508         support of IRI/IDN
509
510 2008-06-25  Steven Schubiger  <stsc@members.fsf.org>
511
512         * ftp.c (getftp): When spidering a FTP URL, emit a diagnostic
513         message if the remote file exists.
514
515 2008-06-24  Steven Schubiger  <stsc@members.fsf.org>
516
517         * http.c (http_loop): Replace escnonprint() occurence with
518         a quotearg_style() call.
519
520 2008-06-24  Micah Cowan  <micah@cowan.name>
521
522         * ftp-ls.c (ftp_index): Don't assume time_t* is compatible with
523         long*. Fixes crash on Windows, and probably other systems.
524
525 2008-06-22  Steven Schubiger  <stsc@members.fsf.org>
526
527         * http.c: Explicitly initialize and deallocate the message
528         string used by the -nv --spider functionality.
529
530 2008-06-22  Steven Schubiger  <schubiger@gmail.com>
531
532         * http.c: Make -nv --spider include the file's name when it
533         exists.
534
535 2008-06-22  Micah Cowan  <micah@cowan.name>
536
537         * Makefile.am (version.c): Fixed version string invocation so it
538         once again can't result in unterminated strings, made all the
539         string vars pointers-to-const, and moved line lengths
540         below 80 (in Makefile.am, not in version.c).
541
542 2008-06-19  Xavier Saint  <wget@sxav.eu>
543
544         * iri.c, iri.h : New function check_encoding_name() as
545         a preliminary encoding name check.
546
547         * main.c, iri.c : Make use of check_encoding_name().
548
549 2008-06-19  Xavier Saint  <wget@sxav.eu>
550
551         * iri.c : Include missing stringprep.h file and add a
552         cast.
553
554         * init.c : set a default initial value for opt.enable_iri,
555         opt.locale and opt.encoding_remote.
556
557 2008-06-19  Xavier Saint  <wget@sxav.eu>
558
559         * iri.c, iri.h : Add a new function find_locale() to find
560         out the local system encoding.
561
562         * main.c : Make use of find_locale().
563
564 2008-06-19  Xavier Saint  <wget@sxav.eu>
565
566         * html-url.c : Add "content-type" meta tag parsing for
567         retrieving page encoding.
568
569         * iri.h : Make no-op version of parse_charset() return
570         NULL.
571
572 2008-06-16  Micah Cowan  <micah@cowan.name>
573
574         * http.c (http_loop): When hstat.len is higher than the
575         successfully completed content's length, but it's because we
576         _set_ it that way, don't abort.
577
578 2008-06-14  Xavier Saint  <wget@sxav.eu>
579
580         * iri.c, iri.h : New files.
581
582         * Makefile.am : Add files iri.h and conditional iri.c.
583
584         * build_info.c : Add compiled feature "iri".
585
586         * http.c : include iri.h and parse charset from Content-Type
587         header.
588
589         * init.c, main.c, options.h : if an options isn't supported
590         at compiled time, don't get rid off it and show a dummy
591         message instead if they are used.
592
593 2008-06-13  Micah Cowan  <micah@cowan.name>
594
595         * build_info.c: ENABLE_NTLM, not HAVE_NTLM; distinguish OpenSSL
596         from "ssl".
597
598 2008-06-13  Madhusudan Hosaagrahara <com.gmail.hrmadhu>
599
600         * Makefile.am, main.c, init.c, init.h, build_info.c: Adds build
601         information to the --version command line option. Fixes bug
602         #20636.
603
604 2008-06-01  Micah Cowan  <micah@cowan.name>
605
606         * main.c [WINDOWS]: Reopen stdout in binary mode, when -O - is
607         given.
608
609 2008-05-31 Micah Cowan  <micah@cowan.name>
610
611         * html-url.c, http.c: Avoid casts in a couple spots.
612
613 2008-05-30 Henri Häkkinen  <henux@users.sourceforge.net>
614
615         * cookies.c, ftp-basic.c, hash.c, html-url.c, http-ntlm.c, http.c,
616         init.c, log.c, main.c, progress.c, ptimer.c, spider.c, url.c,
617         utils.c: Minor changes to silence warnings when using -Wall.
618
619 2008-05-26  Steven Schubiger  <schubiger@gmail.com>
620
621         * ftp.c (getftp): Replace last remaining invocation of escnonprint
622         with gnulib quote.
623
624 2008-05-19  Micah Cowan  <micah@cowan.name>
625
626         * main.c (main): Password prompt should be done only once (not
627         once per argument), and should be done prior to the background
628         fork.
629
630 2008-05-17  Steven Schubiger  <schubiger@gmail.com>
631
632         * init.c (defaults): Set the preferred IP family to `none' by
633         default.
634
635 2008-05-17  Kenny Parnell  <k.parnell@gmail.com>
636
637         (cmd_spec_prefer_family): Initialize prefer_family to prefer_none.
638
639 2008-05-17  Micah Cowan  <micah@cowan.name>
640
641         * main.c (main): Handle Ctrl-D on command-line.
642
643 2008-05-15  Steven Schubiger  <schubiger@gmail.com>
644
645         * ftp.c (getftp): Verify that the file actually exists in FTP, by
646         checking it against the listing.
647
648 2008-05-15  Micah Cowan  <micah@cowan.name>
649
650         * main.c (prompt_for_password): Use the quote module.
651
652 2008-05-14  Micah Cowan  <micah@cowan.name>
653
654         * ftp.c (ftp_retrieve_list): Symlinks and other filenames
655         should be fully quoted.
656
657 2008-05-12  Micah Cowan  <micah@cowan.name>
658
659         * main.c (main): Downgrade "-N with -O" to a warning, and switch
660         it off to avoid confusing messages.
661
662 2008-04-30  Micah Cowan  <micah@cowan.name>
663
664         * progress.c (create_image): Fix glitch where too many spaces are
665         printed on lines that don't display the ETA, in multibyte
666         locales.
667
668 2008-04-30  Steven Schubiger  <stsc@members.fsf.org>
669
670         * main.c (main): New code that handles prompting for passwords
671         when specified explicitly via command-line option (using gnulib's
672         getpass-gnu module).
673         (main): Include the getpass header.
674
675         * init.c: Add "ask-password" to the list of recognized commands.
676
677         * options.h: Add an according boolean member to the options
678         struct.
679
680         * sysdep.h: Comment the defines __EXTENSIONS__ and _GNU_SOURCE
681         out, because they're now defined independently by config.h.
682
683 2008-04-27  Rabin Vincent  <rabin@rab.in>
684
685         * http.c (http_loop): Fix return for the case where we don't
686         download a file because of -nc.
687
688 2008-04-27  Micah Cowan  <micah@cowan.name>
689
690         * url.c (path_simplify): Go back to allowing leading ".." in
691         paths, but only for FTP URLs.
692         (test_path_simplify): Add scheme-specificness to tests, adapt for
693         mu_run_test.
694
695         * test.c (all_tests): Add test_path_simplify.
696
697         * main.c (main): Downgrade -r, -p with -O to a warning rather than
698         an error; elaborate just a bit more for other -O combination
699         cases.
700
701 2008-04-26  Micah Cowan  <micah@cowan.name>
702
703         * http.c (gethttp): Move proxy CONNECT handling to below the
704         retry_with_auth label, to deal with properly reconnecting to
705         proxies when we need to authenticate.
706
707 2008-04-25  Micah Cowan  <micah@cowan.name>
708
709         * Makefile.am: -I foo -> -Ifoo.
710
711 2008-04-24  Micah Cowan  <micah@cowan.name>
712
713         * main.c: Revised usage description of --convert-links to apply
714         to CSS as well as to HTML.
715
716 2008-04-23  Micah Cowan  <micah@cowan.name>
717
718         * utils.c (test_dir_matches_p): Added a test for the case
719         described in issue #20518.
720
721 2008-04-22  Micah Cowan  <micah@cowan.name>
722
723         * Makefile.am, css.lex, css.l: Renamed css.lex to css.l.
724         * recur.c (retrieve_tree): Fix typo to allow text/css files to
725         be parsed.
726
727 2008-04-22  Ted Mielczarek  <ted.mielczarek@gmail.com>
728
729         * css.lex, css-url.c, css-url.h: Added to implement support for
730         parsing CSS in Wget.
731         * convert.c: Convert links in CSS files, too.
732         * convert.h (convert_options): Added for options link_css_p,
733         link_expect_css.
734         * convert.h: Added prototype for new register_css function.
735         * html-parse.c: Added support for parsing element content, in
736         addition to tag starts and ends.
737         * html-parse.h (taginfo): Added delimiter fields for element
738         content.
739         * html-url.h: Added.
740         * html-url.c (append_url): No longer internal-linkage only. Now
741         takes position and size as explicit parameters.
742         * html-url.c: Use new html-url.h header, add support for
743         handling of "style" HTML attributes. Mark URIs obtained from
744         link tags with rel="stylesheet" with link_expect_css. Adapt
745         uses of append_url to supply the newly-added parameters for
746         position and size.
747         * http.c: Add detection for when the content-type is text/css;
748         and ensure that such files have the ".css" filename extension,
749         when --convert-links is active.
750         * recur.h: Remove declarations for functions found in
751         html-url.c (moved to html-url.h).
752         * recur.c: Add support for culling links from CSS files, too,
753         and tracking for when we're expecting the file to be CSS (even
754         when its content type isn't text/css).
755         * retr.c (retrieve_url): Add registration of CSS files.
756         * wget.h: Added TEXTCSS to dt flags enum.
757         * Makefile.am: Added css.lex, css-url.c, css-url.h, html-url.h
758         to wget_SOURCES.
759
760 2008-04-22  Jim Paris  <jim@jtan.com>
761
762         * openssl.c (ssl_init): Enable combined certificate/key in
763         single file (apparent regression from ~1.9). Resolves issue
764         #22767.
765
766 2008-04-22  Steven Schubiger  <schubiger@gmail.com>
767
768         * http.c (print_response_line): Changed to make responses always
769         be logged, even in --quiet mode, if --server-response was
770         specified. This is to bring http.c's handling of the situation
771         in line with ftp.c's.
772
773 2008-04-22  Pranab Shenoy  <pranab.loosinit.shenoy@gmail.com>
774
775         * init.c: Added test_commands_sorted unit test to check is
776         commands are sorted.  Fixes bug #21245.
777
778         * test.c: Added test_commands_sorted to the test suite.
779
780 2008-04-22  Rabin Vincent  <rabin@rab.in>
781
782         * ftp.c (ftp_get_listing): Only remove .listing if it has been
783         created. 
784
785 2008-04-22  Alain Guibert  <alguibert+bts@free.fr>
786
787         * test.h (mu_run_test): Move declaration before statements, for
788         C90 conformance. Fixes bug #22789.
789
790 2008-04-22  Mike Frysinger  <vapier@gentoo.org>
791
792         * Makefile.am: Move @LIBS@ after other libraries, for better
793         static-linking support. Fixes bug #22143.
794
795 2008-04-16  Steven Schubiger  <schubiger@gmail.com>
796
797         * ftp.c: Use Gnulib's quote function for printing filenames and
798         such.
799         * connect.c: Likewise.
800         * convert.c: Likewise.
801         * cookies.c: Likewise.
802         * ftp-opie.c: Likewise.
803         * gnutls.c: Likewise.
804         * init.c: Likewise.
805         * log.c: Likewise.
806         * mswindows.c: Likewise.
807         * openssl.c: Likewise.
808         * progress.c: Likewise.
809         * recur.c: Likewise.
810         * res.c: Likewise.
811         * utils.c: Likewise.
812
813 2008-04-16  Steven Schubiger  <schubiger@gmail.com>
814
815         * sysdep.h: Comment the defines __EXTENSIONS__ and _GNU_SOURCE 
816         out, because they're now defined independently by config.h.
817
818 2008-04-14  Steven Schubiger  <schubiger@gmail.com>
819
820         * http.c: Use Gnulib's quote function for printing filenames and
821         such.
822         * wget.h: #include "quote.h".
823
824 2008-04-12  Rabin Vincent  <rabin@rab.in>
825
826         * mswindows.c (fake_fork_child): Don't create a logfile for
827         --background when --quiet is used, but not --server-response.
828         Fixes bug #20917.
829
830         * utils.c (fork_to_background): Likewise.
831
832 2008-04-12  Micah Cowan  <micah@cowan.name>
833
834         * utils.c (aprintf): Minor formatting changes to Alex's code (80-
835         column limit, concatenated string literals, avoiding nesting
836         levels), and removed invocation of free (since we're aborting
837         anyway).
838
839 2008-04-11  Alexander Dergachev  <cy6erbr4in@gmail.com>
840
841         * utils.c (aprintf): Now we are setting limits (1 Mb) for text
842         buffer when we use non-C99 vsnprintf.
843         
844 2008-04-11  Micah Cowan  <micah@cowan.name>
845
846         * ftp.c (getftp, ftp_loop_internal): Don't append to an existing
847         .listing when --continue is used.  Fixes bug #22825. Thanks to
848         Rabin Vincent <rabin@rab.in> for pointing the way with a
849         suggested fix!
850
851 2008-04-10  Alexander Dergachev  <cy6erbr4in@gmail.com>
852
853         * xmalloc.c, xmalloc.h (memfatal): Now exported; accepts an
854         "unknown" value for the attempted allocation size.
855         * utils.c (aprintf): Now calls memfatal, instead of aborting.
856
857 2008-03-19  Micah Cowan  <micah@cowan.name>
858
859         * utils.c (test_dir_matches_p): More tests related for
860         dir_matches_p.
861
862 2008-03-17  Micah Cowan  <micah@cowan.name>
863
864         * connect.c: Include sys/time.h to support use of the select
865         function on older systems.
866
867 2008-02-11  Benno Schulenberg  <bensberg@justemail.net>
868
869         * http.c: More accurate and descriptive messages for when a file
870         won't be retrieved during spider-mode.
871
872 2008-02-10  Micah Cowan  <micah@cowan.name>
873
874         * http.c: Added existence_checked member to the http_stat
875         struct.
876         (gethttp): Mark hs->existence_checked when we've checked whether
877         a file-to-download exists; so we don't check it again if the
878         connection gets lost (and potentially pick a new "unique" name).
879         This fixes bug 22251.
880         * progress.c (create_image): Add space for an extra column in
881         the "eta" portion of the progress bar image; to deal with
882         too-long Czech translation.
883         * main.c, http.c, init.c: Added --auth-no-challenge option, to
884         bring back 1.10.2 unsafe auth behavior when needed. This fixes
885         bug #22242.
886
887 2008-02-07  Micah Cowan  <micah@cowan.name>
888
889         * progress.c (create_image): Remove assertion on exceeding
890         screen width, which given the less-than-robust code there, can
891         be broken by a number of factors (such as large file downloads).
892
893 2008-02-06  Micah Cowan  <micah@cowan.name>
894
895         * progress.c (countcols): Use strlen() when mbtowc or wcwidth
896         not available (or not using NLS).
897         * utils.c: Ensure we use single-byte separators when not doing
898         NLS progress-bars.
899         * wget.h: Determine whether to use NLS for progress-bars, based
900         on whether wcwidth and mbtowc are available.
901
902 2008-02-03  Micah Cowan  <micah@cowan.name>
903
904         * progress.c (create_image): Use number of characters/columns
905         consumed, rather than number of bytes, to determine how much of
906         a line we've used. Fixes assertion errors and field alignment
907         bugs (#22161, #20481)
908         (get_eta, count_cols): Added to support the changes for
909         create_image.
910         * http.c (http_loop): Put no-clobber logic back into http_loop,
911         before starting to fetch, for when we're not doing
912         content-disposition.
913
914 2008-01-31  Micah Cowan  <micah@cowan.name>
915
916         * http.c (gethttp): Don't derive hs->contlen from possibly
917         invalid/missing Content-Length; instead, get the appropriate
918         value from the Content-Range header values.
919         (parse_content_range): Handle '*' instance-length field.
920
921 2008-01-25  Micah Cowan  <micah@cowan.name>
922
923         * main.c: Added notes to translators regarding (C), diacritics
924         in names.
925         * Makefile.am, cmpt.c, connect.c, connect.h, convert.c,
926         cookies.c, cookies.h, ftp-basic.c, ftp-ls.c, ftp-opie.c, ftp.c,
927         ftp.h, gen-md5.c, gen-md5.h, gnutls.c, hash.c, hash.h, host.c,
928         host.h, html-parse.c, html-parse.h, html-url.c, http-ntlm.c,
929         http-ntlm.h, http.c, http.h, init.c, init.h, log.c, log.h,
930         main.c, mswindows.c, mswindows.h, netrc.c, netrc.h, openssl.c,
931         options.h, progress.c, progress.h, ptimer.c, ptimer.h, recur.c,
932         recur.h, res.c, res.h, retr.c, retr.h, spider.c, spider.h,
933         ssl.h, sysdep.h, test.c, test.h, url.c, url.h, utils.c,
934         utils.h, wget.h, xmalloc.c, xmalloc.h: Updated copyright year.
935
936 2007-12-10  Micah Cowan  <micah@cowan.name>
937
938         * main.c: The option is --content-disposition, not
939         --no-content-disposition (at the moment).
940
941 2007-12-08  Hrvoje Niksic  <hniksic@xemacs.org>
942
943         * ftp.c (ftp_retrieve_glob): Print both arguments of fnmatch in
944         fnmatch error message.
945         (ftp_retrieve_glob): Don't match with fnmatch if we're only
946         supposed to get one file.
947
948 2007-12-07  Micah Cowan  <micah@cowan.name>
949
950         * Makefile.am: Plug in vars to include stuff from
951         $(top_srcdir)/md5 when appropriate.
952
953 2007-12-05  Micah Cowan  <micah@cowan.name>
954
955         * utils.c (subdir_p): Handle the case where d1 is "".
956         * convert.c (convert_all_links): Don't return without
957         deallocating timer.
958
959 2007-11-28  Micah Cowan  <micah@cowan.name>
960
961         * Makefile.am, cmpt.c, connect.c, connect.h, convert.c,
962         convert.h, cookies.c, cookies.h, ftp-basic.c, ftp-ls.c,
963         ftp-opie.c, ftp.c, ftp.h, gen-md5.c, gen-md5.h, gnutls.c,
964         hash.c, hash.h, host.c, host.h, html-parse.c, html-parse.h,
965         html-url.c, http-ntlm.c, http-ntlm.h, http.c, http.h, init.c,
966         init.h, log.c, log.h, main.c, mswindows.c, mswindows.h,
967         netrc.c, netrc.h, openssl.c, options.h, progress.c, progress.h,
968         ptimer.c, ptimer.h, recur.c, recur.h, res.c, res.h, retr.c,
969         retr.h, safe-ctype.c, safe-ctype.h, spider.c, spider.h, ssl.h,
970         sysdep.h, test.c, test.h, url.c, url.h, utils.c, utils.h,
971         wget.h, xmalloc.c, xmalloc.h: Updated license exception for
972         OpenSSL, per the SFLC.
973
974 2007-10-30  Micah Cowan  <micah@cowan.name>
975
976         * main.c (main): Declare argv parameter as char **argv, rather
977         than char *const *argv. This fixes usage of getopt_long,
978         regardless of whether getopt_long has a constified argv or not.
979
980 2007-10-22  Gisle Vanem  <gvanem@broadpark.no>
981
982         * mswindows.c: Move INHIBIT_WRAP macro definition up with wget.h
983         inclusion.
984
985 2007-10-18  Steven Schweda  <sms@antinode.org>
986
987         * sysdep.h: #include <stdint.h> as well as <inttypes.h>, to work
988         around a glitch on Tru64 systems.
989
990 2007-10-18  Micah Cowan  <micah@cowan.name>
991
992         * Makefile.am: version.c should not be distributed. Removed
993         config-post.h. Add version.c dependency and gnulib include path
994         for libunittest.a.
995         * sysdep.h: Got contents of config-post.h
996         * config-post.h: Removed.
997         * wget.h: #include "config.h".
998         * alloca.c, cmpt.c, connect.c, convert.c, cookies.c,
999         ftp-basic.c, ftp-ls.c, ftp-opie.c, ftp.c, gen-md5.c, gnutls.c,
1000         hash.c, host.c, html-parse.c, html-url.c, http-ntlm.c, http.c,
1001         init.c, log.c, main.c, mswindows.c, netrc.c, openssl.c,
1002         progress.c, ptimer.c, recur.c, res.c, retr.c, spider.c, url.c,
1003         utils.c, xmalloc.c: Use wget.h at very top, and instead of
1004         config.h.
1005
1006 2007-10-15  Micah Cowan  <micah@cowan.name>
1007
1008         * Makefile.am: Remove intermediary hg-id file generation, make
1009         version.c-generation more portable.
1010
1011 2007-10-14  Micah Cowan  <micah@cowan.name>
1012
1013         * cmpt.c, cookies.c, ftp-basic.c, ftp-ls.c, ftp.c, hash.c,
1014         host.c, html-parse.c, html-url.c, http-ntlm.c, http.c, init.c,
1015         log.c, main.c, netrc.c, openssl.c, res.c, url.c, utils.c,
1016         wget.h: Replace uses of ISSPACE, etc with c_isspace, etc.
1017         * gnu-md5.c, gnu-md5.h: Removed, in deference to gnulib.
1018         * Makefile.am: Removed gnu-md5.h from wget_SOURCES.
1019         * gen-md5.c: Changed #inclusion of gnu-md5.h to md5.h (gnulib's).
1020         * recur.c (download_child_p): Print error if unlink of
1021         robots.txt fails.
1022         * main.c (main): --spider or --delete-after now implies
1023         --no-directories (thanks, Josh Williams).
1024
1025 2007-10-14  Joshua David Williams  <yurimxpxman@gmail.com>
1026
1027         * recur.c (download_child_p): Remove robots.txt if
1028         --delete-after or --spider is on.
1029
1030 2007-10-13  Micah Cowan  <micah@cowan.name>
1031
1032         * Makefile.am: Make version.c depend on Wget dependencies (source
1033         files, plus such things as LIBOBJS so we get things like
1034         http-ntlm.c). Removed getopt.[ch], as we're now using gnulib for
1035         these.
1036
1037 2007-10-10  Micah Cowan  <micah@cowan.name>
1038
1039         * http-ntlm.c: Include openssl/opensslv.h explicitly, instead of
1040         hoping it'll be included by accident in openssl/des.h.
1041
1042 2007-10-09  Gisle Vanem  <gvanem@broadpark.no>
1043
1044         * mswindows.c: 'argc' and 'argv' in 'windows_main()' are no longer
1045         needed.  Hence simply the prototype. Free 'exec_name' at exit.
1046
1047 2007-10-09  Micah Cowan  <micah@cowan.name>
1048
1049         * gettext.h: Imported from /usr/share/gettext, fuller handling
1050         of --disable-nls.
1051         * wget.h: Remove logic for handling lack of NLS (now in
1052         gettext.h).
1053         * main.c: Use gettext's ENABLE_NLS rather than HAVE_NLS.
1054         * Makefile.am: added @LIBINTL@ to LIBS (though it probably
1055         belongs in LDADD, along with everything else currently assigned
1056         to LIBS).
1057
1058 2007-10-08  Micah Cowan  <micah@cowan.name>
1059
1060         * http.c (http_loop): Add send_head_first conditional back
1061         around code that needs it, but not around the last-modified
1062         header-parsing stuff this time. Removed no-longer-useful (was it
1063         ever?) restart_loop boolean, continuing unconditionally at end
1064         of send_head_first conditional block (if we haven't jumped out).
1065
1066 2007-10-04  Micah Cowan  <micah@cowan.name>
1067
1068         * http.c (http_loop): We've got_name if content_disposition
1069         support isn't on; make sure we continue properly in that case,
1070         even though we're not sending HEAD.
1071         * Makefile.in: Removed, replaced by Makefile.am.
1072         * Makefile.am: Converted from Makefile.in.
1073
1074 2007-10-02  Gisle Vanem  <gvanem@broadpark.no>
1075         
1076         * ftp.c: Use "_listing" for MSDOS (".listing" is illegal).
1077
1078         * url.c: Update comment for 'filechr_not_windows'.
1079
1080         * utils.c: Include <process.h> for 'getpid()' on Watcom.
1081
1082 2007-10-02  Micah Cowan  <micah@cowan.name>
1083
1084         * ftp.c (getftp, ftp_loop_internal), http.c (http_loop), main
1085         (main): Use datetime_str instead of time_str, for those who have
1086         potentially long-running sessions. Based on suggestions by Saso
1087         Tomat <miskox@hotmail.com> and Steven M. Schweda
1088         <sms@antinode.org>.
1089         * http.c (gethttp): Warn about host lookup failures. Adjusted
1090         from Stephen Gildea's patch.
1091
1092 2007-10-02  Stephen Gildea  <stepheng+wget@gildea.com>
1093
1094         * connect.c (connect_to_host): Warn about host lookup failures.
1095
1096 2007-09-25  Micah Cowan  <micah@cowan.name>
1097
1098         * Makefile.in: Use EXEEXT instead of exeext.
1099
1100 2007-09-24  Gisle Vanem  <giva@bgnett.no>
1101
1102         * connect.c, init.c, main.c, openssl.c, options.h, sysdep.h,
1103         url.c, utils.c: Added support for building on MS-DOS.
1104
1105 2007-09-24  Jochen Roderburg  <roderburg@uni-koeln.de>
1106
1107         * http.c (http_zero): Remove no-longer-used local_size variable.
1108         Fixes bug #21057.
1109
1110 2007-09-12  Micah Cowan  <micah@cowan.name>
1111
1112         * http.c (http_loop): Remove send_head_first from condition for
1113         parsing timestamp.
1114
1115 2007-08-29  Micah Cowan  <micah@cowan.name>
1116
1117         * openssl.c (ssl_init): Re un-const-ified the meth local
1118         variable, to match current versions of openssl.
1119         * spider.c: Removed visited_url function, as it may be very
1120         inefficient.
1121         (print_broken_links): Removed traversal of referrers, until such
1122         time as a more efficient implementation can be written.
1123         * spider.h: Replaced declaration of visited_url with an
1124         empty-bodied, function-like macro.
1125
1126 2007-08-27  Gisle Vanem  <giva@bgnett.no>
1127
1128         * mswindows.c (run_with_timeout): Ensure that the correct
1129         conversion specification is used for the return result of
1130         the GetLastError function.
1131         * getopt.c: Fix missing (but, accidentally, legal) comment
1132         delimiter after licensing text.
1133         * recur.c (retrieve_tree): Inserted missing cast for strip_auth.
1134         Includes adjustment by Ralf Wildenhues.
1135         * openssl.c (ssl_init): const-ified the meth local variable.
1136         * main.c: Include all the static function definitions in the
1137         "#ifndef TESTING" clause, leaving just the definitions for
1138         exec_name (not set), and opt.
1139         * utils.c (run_with_timeout): Now returns bool, to align with
1140         declaration in utils.h.
1141
1142 2007-08-27  Micah Cowan  <micah@cowan.name>
1143
1144         * wget.h: Added macro replacement for ngettext, for environs
1145         that lack NLS.
1146
1147 2007-08-26  Micah Cowan  <micah@cowan.name>
1148
1149         * spider.c (print_broken_links): Fixed incorrect plurals msgid
1150         usage, switched to use ngettext function.
1151
1152 2007-08-24  Micah Cowan  <micah@cowan.name>
1153
1154         * http.c (http_loop): Introduced time_came_from_head boolean
1155         flag, to help avoid parsing the same Last-Modified header twice.
1156         Replaced spidering returns of RETRUNNEEDED for some situations,
1157         to RETROK, as otherwise it will be interpreted as an error.
1158         RETRUNNEEDED appears never to be referenced outside of
1159         http.c (and wget.h), and, when returned by gethttp, is
1160         translated by http_loop to RETROK.
1161         * url.c (are_urls_equal): Don't call getchar_from_escaped_string
1162         if u2 is shorter than u1.
1163         (getchar_from_escaped_string): Don't decode reserved characters.
1164         Handle illegally appearing '%'s as literal '%'s. Ensure hex
1165         digits before attempting to decode.
1166         (test_are_urls_equal): Added tests to handle u2 shorter than u1,
1167         and %2f not treated the same as /.
1168         * spider.c (in_url_list_p): Don't call are_urls_equal if one of
1169         them is NULL.
1170
1171 2007-08-23  Joshua David Williams  <yurimxpxman@gmail.com>
1172
1173         * spider.c (in_url_list_p): Removed the bool verbose argument
1174
1175 2007-08-22  Mauro Tortonesi  <mauro@ferrara.linux.it>
1176
1177         * http.c (http_loop): Fall back to GET if HEAD fails with a 500 or 501
1178         error code.
1179
1180 2007-08-21  Mauro Tortonesi  <mauro@ferrara.linux.it>
1181         
1182         * http.c (http_loop): Send preliminary HEAD request if -N is given and
1183         the destination file exists already.
1184
1185 2007-08-10  Mauro Tortonesi  <mauro@ferrara.linux.it>
1186
1187         * http.c (http_loop): Fixed HTTP HEAD requests logic when --spider is
1188         given.
1189
1190 2007-08-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1191
1192         * url.c (append_uri_pathel): Do not assume dest string to be
1193         zero-terminated.
1194         (test_append_uri_pathel): Terminate string to fix test failure.
1195
1196 2007-08-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1197
1198         * url.c (url_string): Use comparison, not assignment, in
1199         check for auth_mode == URL_AUTH_HIDE_PASSWD.
1200
1201 2007-08-09  Micah Cowan  <micah@cowan.name>
1202
1203         * http.c (http_loop): If we got a HEAD and then a GET, and the
1204         GET had a timestamp, use that one, not any we may have gotten
1205         from the HEAD.
1206
1207 2007-08-08  Micah Cowan  <micah@cowan.name>
1208
1209         * init.c (defaults): Content disposition will not be default,
1210         since it currently results in extra round-trips.
1211
1212 2007-07-31  Micah Cowan  <micah@cowan.name>
1213
1214         * http.c (gethttp): Set contlen = -1 when we encounter a
1215         negative-valued Content-Length header, so we don't consider it
1216         an internal error later on and call abort().
1217
1218 2007-07-29  Micah Cowan  <micah@cowan.name>
1219
1220         * url.h, url.c (url_string): Replaced bool arg of the url_string
1221         function with enum url_auth_mode, with added option to
1222         completely remove user/pass auth information.
1223         * http.c, ftp.c, url.c, recur.c: Adapted call to url_string
1224         function to fit new usage.
1225         * recur.c (retrieve_tree): Remove auth info from Referer header.
1226
1227 2007-07-28  Micah Cowan  <micah@cowan.name>
1228
1229         * options.h, init.c, retr.c, main.c: renamed opt maxredirect
1230         field to max_redirect, for improved consistency.
1231         * init.c: changed max_redirect parser from cmd_number_inf to
1232         cmd_number, as infinite redirects may not be appropriate.
1233         Alternatively, if cmd_number_inf should be used, then
1234         opt.max_redirect's value should be checked a bit differently in
1235         retr.c, to allow for the "infinite" meaning of zero.
1236
1237 2007-07-25  Micah Cowan  <micah@cowan.name>
1238
1239         * http.c (create_authorization_line)
1240         (basic_authentication_encode, known_authentication_scheme_p)
1241         (load_cookies): Moved declarations up.
1242         (basic_authed_hosts): Added. Tracks what hosts have issued Basic
1243         challenge and been given the global username, password.
1244         (maybe_send_basic_creds): Added. Sends Basic creds for hosts that
1245         have issued Basic challenges.
1246         (register_basic_auth_host): Added. Instantiates
1247         basic_authed_hosts if necessary, then registers the host that
1248         has issued a challenge.
1249         (gethttp) <auth>: Only send authentication credentials after
1250         we've received a challenge from that host. This is a stop-gap
1251         fix until a proper fix can be implemented; still isn't quite
1252         right, as we should only be sending credentials automatically
1253         for authenticated paths and below, and not for the entire host.
1254
1255 2007-07-16  Joshua David Williams  <yurimxpxman@gmail.com>
1256
1257         * options.h: added maxredirect to options struct
1258         * init.c: added maxredirect to list of variables
1259         * retr.c (retrieve_url): replaced MAX_REDIRECTIONS with opt.maxredirect
1260         * main.c: added option --max-redirect
1261
1262 2007-07-16  Joshua David Williams  <yurimxpxman@gmail.com>
1263
1264         * test.h: tests made more verbose; now displays the name
1265         of each test run.
1266
1267 2007-07-10  Mauro Tortonesi  <mauro@ferrara.linux.it>
1268
1269         * http.c (http_loop): Fixed the HTTP requests logic. Now it skips the 
1270         preliminary HEAD request if either -O or --no-content-disposition are 
1271         given, and neither --spider and -N are given.
1272
1273 2007-07-05  Micah Cowan  <micah@cowan.name>
1274
1275         * cmpt.c, connect.c, connect.h, convert.c, convert.h:
1276         * cookies.c, cookies.h, ftp-basic.c, ftp.c, ftp.h, ftp-ls.c:
1277         * ftp-opie.c, gen-md5.c, gen-md5.h, getopt.c, getopt.h, gnu-md5.c:
1278         * gnu-md5.h, gnutls.c, hash.c, hash.h, host.c, host.h:
1279         * html-parse.c, html-parse.h, html-url.c, http.c, http.h:
1280         * http-ntlm.c, http-ntlm.h, init.c, init.h, log.c, log.h, main.c:
1281         * Makefile.in, mswindows.c, mswindows.h, netrc.c, netrc.h:
1282         * openssl.c, options.h, progress.c, progress.h, ptimer.c:
1283         * ptimer.h, recur.c, recur.h, res.c, res.h, retr.c, retr.h:
1284         * safe-ctype.c, safe-ctype.h, spider.c, spider.h, ssl.h, sysdep.h:
1285         * test.c, test.h, url.c, url.h, utils.c, utils.h, wget.h:
1286         * xmalloc.c, xmalloc.h:
1287         Updated GPL reference to version 3 or later, removed FSF
1288         address.
1289
1290 2007-07-04  Mauro Tortonesi  <mauro@ferrara.linux.it>
1291
1292         * http.c (http_loop): Skip HEAD request and start immediately with GET
1293         if -O is given.
1294
1295 2007-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
1296
1297         * http.c (print_server_response): Escape non-printable characters
1298         in server respone.
1299
1300 2007-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
1301
1302         * netrc.c: Don't make netrc_list static, as it prevents
1303         compilation with DEBUG_MALLOC.
1304
1305         * utils.c (aprintf): Don't use vasprintf when DEBUG_MALLOC is
1306         requested because, in that case, we want the calls to malloc to be
1307         coming from us.
1308
1309 2007-01-23  Hrvoje Niksic  <hniksic@xemacs.org>
1310
1311         * cookies.c (parse_set_cookie): Would erroneously discard cookies
1312         with unparsable expiry time.
1313
1314 2007-01-23  Hrvoje Niksic  <hniksic@xemacs.org>
1315
1316         * progress.c (create_image): Check for ETA overflow.
1317         (print_row_stats): Ditto.
1318
1319 2007-01-09  Mauro Tortonesi  <mauro@ferrara.linux.it>
1320
1321         * init.c (cmd_spec_prefer_family): Small fix to get rid of a gcc
1322         warning about strict-aliasing violation.
1323
1324 2007-01-09  Steven M. Schweda  <sms@antinode.org>
1325
1326         * ftp-basic.c (ftp_syst): Fixed segfault if response text is missing.
1327
1328 2006-12-29  Gisle Vanem  <giva@bgnett.no>
1329
1330         * mswindows.c: Avoid a warning if 'ws_hangup()' is unused.
1331
1332 2006-12-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
1333
1334         * http.c (parse_content_disposition): Consider directory prefix, if
1335         specified.
1336
1337 2006-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
1338
1339         * retr.c (retrieve_from_file): Ditto.
1340         (url_uses_proxy): New function.
1341
1342         * main.c (main): Don't check for opt.use_proxy when deciding
1343         whether to call retrieve_url or retrieve_tree; check whether the
1344         proxy would be used for *this* URL.
1345
1346 2006-10-17  Mike Grant  <mggr@pml.ac.uk>
1347
1348         * ftp.c (ftp_loop_internal): Would incorrectly skip changing
1349         working directory when retrying after a failed FTP attempt.
1350         Originally reported by Nate Eldredge.
1351
1352 2006-10-12  Mauro Tortonesi  <mauro@ferrara.linux.it>
1353
1354         * convert.c (downloaded_file): Fixed bug which used to break -E -k -K 
1355         mode.
1356
1357 2006-08-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
1358
1359         * http.c: #include'd spider.h to get rid of compiler warnings.
1360
1361         * main.c: Ditto.
1362
1363         * recur.c: Ditto.
1364
1365 2006-08-24  Mauro Tortonesi  <mauro@ferrara.linux.it>
1366
1367         * Makefile.in: Added spider.c to the list of files to compile and
1368         spider.h to the list of header files. Updated copyright information.
1369
1370         * http.c: Major changes to recursive spider mode. Now for every
1371         resource we are supposed to check, we send a HEAD request to find out
1372         if it exists. If the resource is a HTML file, we retrieve it and parse
1373         it to discover links to other resources.
1374
1375         * recur.c: Ditto.
1376
1377         * res.c (res_retrieve_file): Disable opt.timestamping and opt.spider
1378         when retrieving robots.txt. Updated copyright information.
1379
1380         * convert.c: Moved code tracking broken links to spider.c.
1381
1382         * convert.h: Ditto.
1383
1384         * spider.c: Created new file to keep track of visited URLs in spider
1385         mode.
1386
1387         * spider.h: Ditto.
1388
1389 2006-08-21  Mauro Tortonesi  <mauro@ferrara.linux.it>
1390
1391         * http.c: Fixed timestamping-related bug.
1392
1393 2006-08-16  Mauro Tortonesi  <mauro@ferrara.linux.it>
1394
1395         * http.c: Fixed bug which broke --continue feature. Now if -c is
1396         given, http_loop sends a HEAD request to find out the destination
1397         filename before resuming download.
1398
1399 2006-08-08  Hrvoje Niksic  <hniksic@xemacs.org>
1400
1401         * utils.c (datetime_str): Avoid code repetition with time_str.
1402
1403 2006-07-21  Hrvoje Niksic  <hniksic@xemacs.org>
1404
1405         * init.c (commands): Correctly place "contentdisposition".
1406
1407 2006-07-14  Mauro Tortonesi  <mauro@ferrara.linux.it>
1408         
1409         * sysdep.h: If intptr_t isn't defined, simply typedef it to long.
1410
1411         * http.c: Added explicit cast to int in logprintf call to remove
1412         compiler warnings on 64-bit platforms.
1413
1414         * connect.c: Added a few casts to intptr_t to remove compiler warnings
1415         on 64-bit platforms.
1416         
1417         * main.c: Disable -r, -p and -N when -O is used. Disable -k when -O is
1418         used and multiple URLs are given. Update maintainer information.
1419         
1420         * all: Update copyright information.
1421         
1422 2006-07-10  KJKHyperion  <hackbunny@reactos.com>
1423
1424         * url.c (filechr_table): Mark DEL (0x7f) as a control character
1425         and | as a character Windows can't handle.
1426
1427 2006-06-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
1428
1429         * res.c: Implemented is_robots_txt_url function for detection of
1430         robots.txt URLs and related test routine.
1431
1432         * res.h: Ditto.
1433
1434         * url.c: Implemented are_urls_equal function for URL comparison and
1435         related testing routine.
1436
1437         * url.h: Ditto.
1438
1439         * convert.c: Fixes for recursive spider mode: don't consider
1440         non-existing robots.txt as a broken link, and use are_urls_equal
1441         instead of strcasecmp for referrer URLs comparison.
1442
1443         * test.c: Call tests routines for are_urls_equal and 
1444         is_robots_txt_url.
1445
1446 2006-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
1447
1448         * wget.h (wgint): Typedef to any 64-bit (or larger) type we can
1449         find, not necessarily off_t or long.
1450
1451 2006-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
1452
1453         * cmpt.c (strtoll): Check for overflow and underflow without
1454         relying on (technically) undefined behavior.  Don't assume that
1455         strtoll_type is 64 bits wide.
1456
1457 2006-06-21  Hrvoje Niksic  <hniksic@xemacs.org>
1458
1459         * utils.c (base64_encode): Cast void pointer to char * before
1460         doing arithmetic.
1461
1462 2006-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
1463
1464         * utils.c (base64_encode): Made TBL const.
1465         (base64_decode): Made the base64_char_to_value table const.
1466
1467 2006-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
1468
1469         * utils.c (base64_encode): Made the DATA pointer void * so the
1470         callers can pass it any kind of pointer (including both signed and
1471         unsigned char pointers).
1472         (base64_decode): Ditto for DEST.
1473
1474 2006-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
1475
1476         * utils.c (base64_encode): Would read past end of STR.
1477         Reported by rick@eckle.org.
1478
1479 2006-06-13  Mauro Tortonesi  <mauro@ferrara.linux.it>
1480
1481         * options.h (struct options): Introduced member restrict_files_case to
1482         keep track of preferences on character case restrictions for
1483         filenames.
1484
1485         * init.c: Modified defaults and cmd_spec_restrict_file_names to
1486         support character case restrictions for filenames. Added
1487         test_cmd_spec_restrict_file_names unit test.
1488
1489         * url.c: Modified append_uri_pathel to support character case
1490         restrictions for filenames. Added test_append_uri_pathel unit test.
1491
1492         * test.c: Added test_cmd_spec_restrict_file_names and
1493         test_append_uri_pathel to the list of unit tests to run.
1494
1495 2006-06-12  Mauro Tortonesi  <mauro@ferrara.linux.it>
1496
1497         * retr.c (retrieve_from_file): Use retrieve_tree and automatically
1498         turn on opt.follow_ftp in case of recursive FTP retrieval through HTTP
1499         proxy.
1500
1501         * main.c: Automatically turn on opt.follow_ftp in case of recursive
1502         FTP retrieval through HTTP proxy.
1503
1504 2006-06-12  Tony Lewis  <tlewis@exelana.com>
1505
1506         * main.c: Improved CHEN Peng's patch by proposing a simpler logic.
1507
1508 2006-06-12  CHEN Peng  <chenpeng@alumni.nus.edu.sg>
1509
1510         * main.c: Use retrieve_tree in case of recursive FTP retrieval through
1511         HTTP proxy.
1512
1513 2006-05-25  Mauro Tortonesi  <mauro@ferrara.linux.it>
1514
1515         * convert.c: Added mechanisms to keep track broken links.
1516
1517         * convert.h: Ditto.
1518
1519         * wget.h: Reordered and enumerated uerr_t constants.
1520
1521         * recur.c: Fixes to support recursive spider mode.
1522
1523         * http.c: Ditto.
1524
1525         * main.c: Print broken links in case of recursive spider mode.
1526
1527         * retr.c: Changed interface of retrieve_url.
1528
1529         * retr.h: Ditto.
1530
1531         * ftp.c: Changed interface of ftp_loop.
1532
1533         * ftp.h: Ditto.
1534
1535         * res.c: Minor change to reflect changes in interface of retrieve_url.
1536
1537 2006-05-18  Lawrence Jones  <lawrence.jones@ugs.com>
1538
1539         * ftp-ls.c (ftp_parse_unix_ls): Correct size parsing, add size
1540         and filename debugging output.
1541
1542 2006-04-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
1543
1544         * http.c: If Content-Disposition header is present, allow unique
1545         filename generation unless -nc is given. Permit to disable parsing of
1546         Content-Disposition header.
1547
1548         * options.h: Added option --no-content-disposition to disable parsing
1549         of HTTP Content-Disposition header.
1550
1551         * init.c: Ditto.
1552         
1553         * main.c: Ditto.
1554
1555 2006-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
1556
1557         * hash.c (TOLOWER): Wrap macro arg in parentheses.
1558
1559 2006-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
1560
1561         * http.c (parse_content_disposition): Doc fix.
1562
1563 2006-03-15  Mauro Tortonesi  <mauro@ferrara.linux.it>
1564
1565         * utils.c: Restricted operational semantics of frontcmp and proclist
1566         from generic strings to directory names and them to subdir_p and
1567         dir_matches_p respectively.  Applied George Ogata's one line patch to
1568         restrict algorithm of subdir_p to full directory name matching.  Added
1569         testcases for subdir_p and dir_matches_p.
1570
1571         * utils.h: Changed all frontcmp occurrences to subdir_p.
1572         
1573         * recur.c: Ditto.
1574         
1575         * test.c: Changed type returned by test functions from char * to const
1576         char *.  Added test_subdir_p and test_dir_matches_p to the list of
1577         tests to run.
1578
1579         * http.c (test_parse_content_disposition): Changed return type from
1580         char * to const char *. 
1581
1582 2006-03-14  Mauro Tortonesi  <mauro@ferrara.linux.it>
1583
1584         * recur.c (struct queue_element): Changed type of html_allowed member
1585         to bool.
1586         
1587 2006-03-09  Mauro Tortonesi  <mauro@ferrara.linux.it>
1588
1589         * ftp.c (ftp_list): Try `LIST -a' command first and revert to `LIST'
1590         in case of failure.
1591
1592 2006-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
1593
1594         * hash.c (TOLOWER): Fix definition when STANDALONE.
1595         Reported by Beni Serfaty.
1596
1597 2006-03-02  Mauro Tortonesi  <mauro@ferrara.linux.it>
1598
1599         * http.c (http_loop): Fixed recursive HTTP retrieval.
1600
1601 2006-02-28  Hrvoje Niksic  <hniksic@xemacs.org>
1602
1603         * http.c (extract_param): Declare extern so it can be used from
1604         other files.
1605         (extract_param): Return error for empty name.
1606
1607 2006-02-28  Hrvoje Niksic  <hniksic@xemacs.org>
1608
1609         * url.c (find_last_char): Define in terms of memrchr.
1610
1611         * cmpt.c (memrchr): Define it on systems that don't have it.
1612
1613         * http.c (extract_param): New function for parsing header values
1614         with parameters.
1615         (parse_content_disposition): Use it.  Don't allow slashes and
1616         backslashes in the file name.
1617
1618 2006-02-27  Hrvoje Niksic  <hniksic@xemacs.org>
1619
1620         * url.c (path_simplify): Don't preserve ".." at beginning of path.
1621         Suggested by Frank McCown.
1622
1623 2006-02-25  Hrvoje Niksic  <hniksic@xemacs.org>
1624
1625         * http.c (gethttp): Only use FILE.N.html if FILE.html exists.
1626
1627 2006-02-09  Hrvoje Niksic  <hniksic@xemacs.org>
1628
1629         * mswindows.c (run_with_timeout): Made thread_hnd non-static.
1630
1631 2006-02-05  Hrvoje Niksic  <hniksic@xemacs.org>
1632
1633         * retr.c (sleep_between_retrievals): Sleep at a minimum of 1/2 of
1634         the specified wait period.
1635
1636 2006-02-03  Hrvoje Niksic  <hniksic@xemacs.org>
1637
1638         * utils.c (number_to_string): Don't use sprintf for printing
1639         WGINT_MIN; simply divide n by 10 and defer printing the last
1640         digit.
1641         (number_to_string): Removed the SPRINTF_WGINT macro.
1642
1643 2006-02-03  Mauro Tortonesi  <mauro@ferrara.linux.it>
1644
1645         * http.c: Fixed support for Content-Disposition header.
1646
1647         * test.c: Added test_parse_content_disposition to the list of unit
1648         tests to run.
1649
1650 2006-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
1651
1652         * hash.c: Don't define countof if it's already defined.
1653
1654         * hash.c: Obtain the definition of uintptr_t when standalone.
1655
1656 2006-01-30  Mauro Tortonesi  <mauro@ferrara.linux.it>
1657
1658         * http.c: Changed output format. Removed excessively verbose debugging
1659         output.
1660
1661 2005-12-07  Mauro Tortonesi  <mauro@ferrara.linux.it>
1662
1663         * http.c: Fixed pre-download verbose output which was broken by 
1664         HTTP code refactoring.
1665
1666 2005-11-23  Mauro Tortonesi  <mauro@ferrara.linux.it>
1667
1668         * http.c: Refactored HTTP code.  If -O is not used, the new code
1669         delays the choice of the file name where the downloaded resource
1670         will be saved until the HTTP headers have been retrieved.
1671         Added support for Content-Disposition header. 
1672
1673 2005-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
1674
1675         * hash.c (INVALID_PTR): Use uintptr_t instead of unsigned long.
1676         (hash_pointer): Don't assume a pointer fits in `unsigned long'.
1677
1678 2005-11-02  Mauro Tortonesi  <mauro@ferrara.linux.it>
1679
1680         * Makefile.in: Removed support for unit testing (now it is in
1681         tests/Makefile.in).
1682
1683 2005-10-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
1684
1685         * Makefile.in: Added basic support for unit testing.
1686
1687         * test.c: Ditto.
1688         
1689         * test.h: Ditto.
1690         
1691 2005-10-13  Daniel Stenberg  <daniel@haxx.se>
1692
1693         * http-ntlm.c (ntlm_output): Fixed buffer overflow vulnerability.
1694
1695 2005-10-09  Russ Allbery  <rra@stanford.edu>
1696
1697         * snprintf.c: Remove round to round_int and pow10 to pow10_int, to
1698         avoid warnings from GCC 4.0.
1699
1700 2005-10-05  Mauro Tortonesi  <mauro@ferrara.linux.it>
1701
1702         * retr.c: Changed semantics of no_proxy_match.
1703
1704 2005-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
1705
1706         * main.c (main): Don't print the summary if nothing has been downloaded.
1707
1708 2005-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
1709
1710         * retr.c (retr_rate): Rename parameter from MSECS to SECS since it
1711         no longer holds milliseconds.
1712
1713 2005-09-01  Hrvoje Niksic  <hniksic@xemacs.org>
1714
1715         * progress.c: Introduce symbolic constants for "magic" values of
1716         0.2 and 0.9, REFRESH_INTERVAL and ETA_REFRESH_INTERVAL.
1717
1718 2005-08-27  Hrvoje Niksic  <hniksic@xemacs.org>
1719
1720         * cmpt.c (strtoll): Correctly handle strtoll("0x", ptr, 0) and
1721         strtoll("0x<nonhexchar>", ptr, 0) -- in both cases *ptr must be
1722         set to the position of 'x', not after it.
1723
1724 2005-08-27  Hrvoje Niksic  <hniksic@xemacs.org>
1725
1726         * hash.c (hash_table_map): Rename to hash_table_for_each and
1727         update callers.
1728         Document the meaning of the callback's return value.
1729         (hash_table_iterate): New function.
1730         (hash_table_iter_next): Likewise.
1731         Update most places that used hash_table_for_each to use the
1732         iteration, which doesn't require a temporary function with
1733         explicit state management.
1734
1735 2005-08-26  Albert Chin  <wget@mlists.thewrittenword.com>
1736
1737         * Makefile.in: Use @datadir@.  Define localedir as $(datadir)/locale.
1738
1739 2005-08-26  Jeremy Shapiro  <jnshapiro@gmail.com>
1740
1741         * openssl.c (ssl_init): Set SSL_MODE_AUTO_RETRY.
1742
1743 2005-08-23  Hrvoje Niksic  <hniksic@xemacs.org>
1744
1745         * host.c (address_list_from_ipv4_addresses): Use IP_INADDR_DATA.
1746
1747 2005-08-12  Hrvoje Niksic  <hniksic@xemacs.org>
1748
1749         * wget.h: Renamed strtoll_return to strtoll_type.
1750
1751 2005-08-11  Hrvoje Niksic  <hniksic@xemacs.org>
1752
1753         * progress.c (eta_to_human_short): Switch to days when printing
1754         more than 48h rather than 100h.  (It's not immediately apparent
1755         how many days there are in 83h.)
1756
1757 2005-08-11  Hrvoje Niksic  <hniksic@xemacs.org>
1758
1759         * cmpt.c (strtoll): Define it if missing on the system and if Wget
1760         needs it.
1761
1762         * mswindows.c (str_to_int64): Move to cmpt.c and rename to strtoll.
1763
1764 2005-08-10  Hrvoje Niksic  <hniksic@xemacs.org>
1765
1766         * host.c (print_address): Always use inet_ntop when IPv6 is
1767         enabled.
1768
1769         * host.h (ip_address): Simplify the data union.
1770
1771 2005-08-09  Hrvoje Niksic  <hniksic@xemacs.org>
1772
1773         * mswindows.c (inet_ntop): Also handle IPv4 addresses for
1774         completeness.
1775
1776 2005-08-09  Hrvoje Niksic  <hniksic@xemacs.org>
1777
1778         * http.c (gethttp): Don't read more than the amount of data
1779         specified by the content-length header.
1780
1781 2005-08-09  Vasil Dimov  <vd@datamax.bg>
1782
1783         * ftp.c (getftp): Don't free RESPLINE if ftp_response returns a
1784         status other than FTPOK.
1785
1786 2005-08-04  Giuseppe Bonacci  <g.bonacci@libero.it>
1787
1788         * ftp-ls.c (ftp_parse_unix_ls): Remember the position of the
1789         previous token instead of backtracking back to it.
1790
1791 2005-07-08  Gisle Vanem  <giva@bgnett.no>
1792
1793         * mswindows.h: Include process.h to get getpid() declaration.
1794
1795 2005-07-08  Hrvoje Niksic  <hniksic@xemacs.org>
1796
1797         * utils.c (aprintf): Use vasprintf where available.
1798
1799 2005-07-08  Hrvoje Niksic  <hniksic@xemacs.org>
1800
1801         * url.c (rewrite_shorthand_url): Simplify code using aprintf and
1802         strspn.
1803
1804 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
1805
1806         * gnutls.c (ssl_check_certificate): Check for the validity of the
1807         presented X509 certificate.
1808
1809 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
1810
1811         * openssl.c (ssl_check_certificate): Print custom error messages
1812         for frequent X509 certificate problems.
1813
1814 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
1815
1816         * mswindows.h: Define an alias for stat and fstat, as requested by
1817         config-compiler.h.
1818         (gai_strerror): Define to windows_strerror if NEED_GAI_STRERROR is
1819         defined.
1820
1821 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
1822
1823         * mswindows.h: Use strtoll where available.
1824
1825 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
1826
1827         * sysdep.h: Add a full declaration of fnmatch.h.
1828
1829 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
1830
1831         * utils.c: Unconditionally include <setjmp.h>.
1832
1833 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
1834
1835         * utils.c (fnmatch_nocase): New function.
1836         (proclist): Use it instead of fnmatch when opt.ignore_case is
1837         requested.
1838         (in_acclist): Respect opt.ignore_case.
1839         (frontcmp): Respect opt.ignore_case.
1840
1841         * options.h (struct options): New flag opt.ignore_case.
1842
1843 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
1844
1845         * ptimer.c: Measure time in seconds rather than milliseconds.
1846         Adjusted all callers.
1847
1848 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
1849
1850         * http.c (gethttp): When freeing MESSAGE, take into account that
1851         it can be NULL.
1852
1853 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
1854
1855         * cmpt.c (timegm): Handle years after 2099.
1856
1857 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
1858
1859         * cmpt.c (timegm): Remove unused variable.
1860
1861 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
1862
1863         * cmpt.c (timegm): Don't call mktime; simply count the seconds
1864         between 1970-01-01 and the specified date.
1865
1866 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
1867
1868         * wget.h (or): Define HAVE_SSL when either HAVE_OPENSSL or
1869         HAVE_GNUTLS are defined.
1870
1871         * gnutls.c: New file.
1872
1873 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
1874
1875         * http.c (gethttp): Don't print the request write error message
1876         twice.
1877
1878 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
1879
1880         * openssl.c (openssl_errstr): Instead of always using a large
1881         static buffer, only allocate the error string when there is an
1882         actual error.
1883
1884 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
1885
1886         * xmalloc.c (debugging_free): Prefix hex pointer value with "0x"
1887         when printing.
1888
1889 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
1890
1891         * utils.c (NEXT_BASE64_CHAR): Rename to NEXT_CHAR and simplify to
1892         get the next non-whitespace character.
1893
1894 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
1895
1896         * utils.c (base64_decode): Don't silently tolerate non-base64
1897         non-white-space characters in the base64 stream.
1898
1899 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
1900
1901         * connect.c (LAZY_RETRIEVE_INFO): Make last_tick unsigned to match
1902         transport_map_modified_tick.
1903
1904 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
1905
1906         * config-post.h (alloca): Updated declaration to not enumerate all
1907         Windows compilers.
1908
1909 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
1910
1911         * openssl.c (openssl_errstr): Separate error messages with "; ".
1912
1913 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
1914
1915         * ftp.c (getftp): Ditto.
1916
1917         * http.c (gethttp): Use fd_errstr.
1918
1919         * connect.c (fd_register_transport): Restructure parameters to
1920         include only a single structure that describes transport
1921         implementation.
1922
1923         * openssl.c (openssl_errstr): New function: dump SSL error strings
1924         into a static buffer and return a pointer to the buffer.
1925
1926         * connect.c (fd_errstr): New function; returns transport-specific
1927         error message, or strerror(errno) if transport doesn't supply one.
1928
1929 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
1930
1931         * mswindows.h: Also wrap accept() and listen().
1932
1933 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
1934
1935         * url.c (path_end): Skip separators appropriate for the scheme.
1936         (strpbrk_or_eos): Remove gcc-specific version, as the optimization
1937         it tried to perform no longer applies.
1938
1939 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
1940
1941         * host.c: Don't include "connect.h" now that we no longer have
1942         socket_has_inet6.
1943
1944 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
1945
1946         * host.c: Remove extraneous definition of netdb.h.
1947
1948 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
1949
1950         * http.c (gethttp): Skip error message body in the keep-alive
1951         case.
1952
1953 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
1954
1955         * url.c (url_parse): Would crash when parsing fragments.  Support
1956         fragments for FTP URLs too.
1957
1958 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
1959
1960         * version.c: Don't use "cvs" in version name, since we're not
1961         using CVS anymore.
1962
1963 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
1964
1965         * progress.c (create_image): Ditto.
1966
1967         * retr.c (retr_rate): Display smaller rate numbers with greater
1968         precision.
1969
1970 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
1971
1972         * http.c (response_head_terminator): Minor optimization.
1973
1974         * retr.c (fd_read_hunk): Call terminator with pointer to the start
1975         of the data and the pointer to the current data.  Changed all
1976         callers.
1977
1978 2005-07-01  Hrvoje Niksic  <hniksic@xemacs.org>
1979
1980         * url.c (url_parse): Make sure u->params is not initialized for
1981         http/https URLs.
1982         (url_parse): Don't crash on garbage following []-delimited IPv6
1983         addresses.
1984
1985 2005-07-01  Hrvoje Niksic  <hniksic@xemacs.org>
1986
1987         * main.c (print_help): Don't refer to the non-existent -nr in
1988         description of --mirror.
1989
1990 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
1991
1992         * host.c (pretty_print_address): Renamed to just print_address.
1993         Clarify documentation.
1994
1995 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
1996
1997         * http.c (gethttp): Explicitly document the different cases when
1998         generating the Host header.
1999
2000 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
2001
2002         * host.c (pretty_print_address): Handle error result from
2003         inet_ntop.
2004
2005 2005-06-30  Gisle Vanem  <giva@bgnett.no>
2006
2007         * mswindows.c (inet_ntop): New function.  Print IPv6 addresses
2008         using WSAAddressToString.
2009
2010 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2011
2012         * progress.c (dot_update): Remove unused variable row_qty.
2013
2014 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2015
2016         * main.c: Check for both SIGHUP and SIGUSR1 before using them.
2017
2018 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2019
2020         * utils.c: Unconditionally include locale.h.
2021
2022 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2023
2024         * ptimer.c: Include sys/time.h to get struct timeval.
2025
2026 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2027
2028         * wget.h: Remove obsolete definition of with_thousand_seps_sum.
2029
2030 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2031
2032         * gnu-md5.h: Unconditionally include limits.h.
2033
2034 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2035
2036         * utils.c (random_number): Use lrand48 if available.
2037         (random_float): Use drand48 if available.
2038
2039 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2040
2041         * main.c (secs_to_human_time): Use print_decimal when printing
2042         total download time in seconds.
2043
2044         * progress.c (print_row_stats): Use it to print total download
2045         time at the end of the download.
2046         (create_image): Ditto.
2047
2048         * utils.c (print_decimal): New function; print small decimal
2049         numbers with more precision than large ones.
2050
2051         * progress.c (print_row_stats): New function.  Print ETA after the
2052         download rate at the end of each row.
2053
2054 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
2055
2056         * init.c (parse_line): Check for alphanumerics.
2057
2058 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
2059
2060         * (dot_create): Remove unnecessary casts.
2061
2062 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
2063
2064         * ftp.c (getftp): Delete trailing newlines from LIST output so
2065         lines don't come out with trailing \015\012 with -S.
2066
2067 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2068
2069         * mswindows.h: Remove superfluous includes.
2070
2071 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2072
2073         * config-post.h (alloca): Amend alloca declaration to take care of
2074         all Win32 compilers, not just MSVC and MinGW.
2075
2076 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2077
2078         * utils.c (get_grouping_data): Force separator to "." rather than
2079         " " when "," is taken.
2080
2081 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2082
2083         * wget.h (PTR_FORMAT): Cast the result of sizeof to int before
2084         passing it to printf's %*.
2085
2086         * retr.h: Declare output_stream and output_stream_regular.
2087
2088         * ftp.h: Declare ftp_last_respline.
2089
2090         * convert.h: Declare dl_url_file_map.
2091
2092         * http.h: New file.
2093
2094 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2095
2096         * cookies.c: Make cookies_now static.
2097
2098 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2099
2100         * utils.c (human_readable): Remove intermediary cast to long; MSVC
2101         has problems casting *unsigned* __int64 to double.
2102
2103 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2104
2105         * sysdep.h: Use the system-provided fnmatch by default.
2106
2107 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2108
2109         * http.c (mktime_from_utc): Renamed to timegm and moved to cmpt.c.
2110         Don't compile it if GNU timegm is available.
2111         (http_atotm): Use timegm.
2112
2113 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2114
2115         * http.c (http_atotm): Correctly query the old locale value.
2116
2117 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2118
2119         * config-post.h (alloca): Don't #define alloca under MinGW32,
2120         which defines it in malloc.h, included from mswindows.h.
2121
2122 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2123
2124         * utils.c (get_grouping_data): Force the use of separators in C
2125         locale.
2126
2127 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2128
2129         * main.c (i18n_initialize): Set all locale categories.
2130
2131         * http.c (http_atotm): Temporarily set locale to "C".
2132
2133 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2134
2135         * http.c (gethttp): Improve "POST data file missing" error
2136         message.
2137
2138 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2139
2140         * progress.c (set_progress_implementation): Type COLON as const
2141         char *.
2142
2143 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2144
2145         * utils.c (with_thousand_seps): Handle negative numbers.
2146
2147 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2148
2149         * progress.c (create_image): Mark the "eta" string for translation.
2150
2151 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2152
2153         * html-url.c (get_urls_file): Don't explicitly set entry->next to
2154         NULL since entry is already zeroed out.
2155
2156 2005-06-26  Gisle Vanem  <giva@bgnett.no>
2157
2158         * mswindows.h: Define gai_strerror under MinGW.
2159
2160 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2161
2162         * utils.c (with_thousand_seps): Correctly implement thousand seps
2163         consisting of more than one character.
2164
2165 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2166
2167         * main.c (secs_to_human_time): Ditto.
2168
2169         * progress.c (create_image): Print more exact duration of very
2170         short downloads.
2171
2172         * main.c (secs_to_human_time): Don't translate time suffixes "h",
2173         "m", and "s", which are not strictly SI, but are "accepted for use
2174         with SI".
2175         (secs_to_human_time): Print really small intervals as 0s, not
2176         0.00s.
2177
2178 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2179
2180         * config-post.h: Replace the alloca declaration with the one from
2181         the latest Autoconf manual.  This should remove a warning with GCC
2182         on AIX.
2183
2184 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2185
2186         * ftp.c (getftp): Always invoke SIZE, not only when continuing a
2187         download.
2188
2189         * main.c (main): Ditto here.
2190
2191         * progress.c (create_image): When the download is finished, print
2192         how long it took.
2193
2194 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2195
2196         * main.c (main): Print the downloaded and quota amounts with the
2197         "human_readable" function.
2198
2199         * ftp.c (print_length): Ditto.
2200
2201         * http.c (gethttp): Don't display thousand separators.
2202
2203         * utils.c (with_thousand_seps): Rewritten to respect locale
2204         settings and to be type size agnostic.
2205
2206 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2207
2208         * utils.c (human_readable): Divide with 1024 instead of shifting
2209         so the operation can work with non-integer N.
2210
2211 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2212
2213         * progress.c (eta_to_human): New logic for more human-readable
2214         ETA.
2215
2216 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2217
2218         * utils.c (with_thousand_seps_sum): Decrease buffer size so it
2219         cannot overrun add_thousand_seps's buffer.
2220
2221 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2222
2223         * utils.c (SPRINTF_WGINT): The correct format is %I64d, not just
2224         %I64.
2225
2226 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2227
2228         * http.c (http_loop): Don't warn about wildcards in HTTP URLs if
2229         globbing isn't requested in the first place.
2230
2231         * retr.c (retrieve_url): Temporarily turn off globbing when
2232         processing HTTP->FTP redirects.
2233
2234 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2235
2236         * utils.c (with_thousand_seps_sum): Now defined only if
2237         SUM_SIZE_INT is double.
2238
2239         * wget.h (SUM_SIZE_INT): Instead of bothering with long, long
2240         long, __int64, and friends, simply either use wgint or double, end
2241         of story.  Since we know how to print either, we no longer need
2242         LARGE_INT_FMT.
2243
2244         * sysdeps.h (LARGE_INT): Renamed to SUM_SIZE_INT to better reflect
2245         its intent, and moved to wget.h.
2246
2247 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2248
2249         * Makefile.in: No need to clean .libs.
2250
2251 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2252
2253         * cookies.c (parse_set_cookies): Cast pointer subtraction to int
2254         before using it with %d; AIX compiler warns on this.
2255         Reported by Jens Schleusener.
2256
2257 2005-06-24  Hrvoje Niksic  <hniksic@xemacs.org>
2258
2259         * http.c (gethttp): Don't prepend / here.
2260
2261         * cookies.c (cookie_handle_set_cookie): Prepend / to PATH.
2262         (cookie_header): Ditto.
2263
2264 2005-06-24  Hrvoje Niksic  <hniksic@xemacs.org>
2265
2266         * init.c: opt.verbose must be declared as int.
2267
2268 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
2269
2270         * cmpt.c (strpbrk): Removed.
2271         (mktime): Removed.
2272         Include <time.h>.
2273
2274 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
2275
2276         * utils.c (read_file): Ditto.
2277
2278         * main.c (main): Use struct_fstat.
2279
2280         * mswindows.h (struct_fstat): Define a struct_fstat to deal with
2281         the fact that Borland 5.5 has 64-bit stat, but not 64-bit fstat!
2282
2283 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
2284
2285         * sysdep.h: Remove code that deals with Watcom.
2286
2287 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2288
2289         * all: Use bool instead of int and false/true instead of 0/non-0
2290         for boolean variables and values.
2291
2292 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2293
2294         * sysdep.h: Include the stdbool.h/_Bool/bool blurb from Autoconf.
2295
2296 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2297
2298         * init.c (cmd_lockable_boolean): Removed.
2299
2300 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2301
2302         * cookies.c (struct cookie): Use 1-bit bitfields for booleans
2303         which makes the structure takes less space at no cost in
2304         complexity.
2305
2306 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2307
2308         * Makefile.in ($(OBJ)): Add the config.h dependency.
2309
2310 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2311
2312         * openssl.c, connect.c, host.c: Replace instances of #ifdef
2313         ENABLE_DEBUG if (opt.debug) {...} #endif with IF_DEBUG {...}.
2314
2315         * main.c: Rename the IF_DEBUG defined here to WHEN_DEBUG.
2316
2317         * wget.h (IF_DEBUG): New macro.
2318         (DEBUGP): Define in terms of IF_DEBUG.
2319
2320 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2321
2322         * http.c (gethttp): Only handle --set-cookies (and assert that
2323         cookie jar exists) if opt.cookies is true.  Failure to do so
2324         triggered the assert when --no-cookies was used and the server
2325         sent a Set-Cookie header.  Ouch!
2326
2327 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2328
2329         * connect.c (select_fd): Expect select() to exist.
2330
2331         * utils.c (xsleep): Always use select() as sleep fallback on
2332         non-Windows platforms.
2333
2334         * ptimer.c: Delete the implementation of PTIMER_TIME.
2335
2336         * main.c: Assume existence of signal(), test for different signal
2337         names instead.
2338
2339         * cmpt.c: Better document reasons why certain functions are
2340         included.
2341
2342 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2343
2344         * Makefile.in: Remove the manually maintained dependency list;
2345         make all object files depend on every header.
2346
2347 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
2348
2349         * hash.c: Rename "mapping" to "cell" to avoid confusion with the
2350         term "mapping" (or "map") sometimes being used for the entire hash
2351         table.  Also rename "non-empty" to "occupied" for easier reading
2352         of if (!NON_EMPTY (...)) ... .
2353
2354 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
2355
2356         * main.c, ptimer.c, sysdep.h, utils.c: Use #elif to simplify reading of
2357         chained if-else-else-else-... statements.
2358
2359 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
2360
2361         * all: Return type of signal handlers is `void'.  Include signal.h
2362         unconditionally.
2363
2364         * all: Don't explicitly cast values returned by malloc.  We no
2365         longer support ancient compilers that don't declare malloc, and we
2366         never supported C++ builds.
2367
2368 2005-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
2369
2370         * all: Don't declare errno.  Include both time.h and sys/time.h,
2371         as long as sys/time.h exists.  Don't dereference function pointers
2372         when invoking the functions they point to.
2373
2374         * cmpt.c (memmove): Remove function mandated by C89.
2375         (strerror): Ditto.
2376         (strstr): Ditto.
2377
2378         * all: Undo the K&R-ization changes from 2005-05-03.
2379
2380         * all: Remove support for K&R compilers: use C89 function
2381         declarations, remove definition of PARAMS, remove support for
2382         varargs, and remove ansi2knr.  Assume the presence of time.h,
2383         string.h, and other headers mandated by C89.
2384
2385 2005-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
2386
2387         * init.c (cmd_lockable_boolean): Don't recognize literal "2" and
2388         "-1" values; unlike 0 and 1, those should never be exposed to the
2389         user.  Update the error message to be more self-consistent, as
2390         proposed by Benno Schulenberg.
2391
2392 2005-06-18  Hrvoje Niksic  <hniksic@xemacs.org>
2393
2394         * http.c (gethttp): Don't free "head" before using it to save
2395         headers.
2396
2397 2005-06-18  Hrvoje Niksic  <hniksic@xemacs.org>
2398
2399         * http.c (gethttp): When -E is in use, check for file existence
2400         after appending ".html" to the name and modify the file name if
2401         necessary.
2402
2403 2005-06-17  Hrvoje Niksic  <hniksic@xemacs.org>
2404
2405         * connect.c (socket_has_inet6): Removed.
2406
2407         * host.c (lookup_host): Don't use the AI_ADDRCONFIG getaddrinfo
2408         hint.
2409
2410 2005-06-16  Hrvoje Niksic  <hniksic@xemacs.org>
2411
2412         * init.c (cmd_lockable_boolean): Improve the error message so it
2413         lists the more useful values first.
2414
2415 2005-06-15  Hrvoje Niksic  <hniksic@xemacs.org>
2416
2417         * http.c (gethttp): Also report the system error when the POST
2418         data file is missing.
2419
2420 2005-06-15  Benno Schulenberg  <benno@nietvergeten.nl>
2421
2422         * ftp.c, http.c, connect.c, cookies.c, html-url.c, init.c, res.c:
2423         Gettext-ize messages that were previously missed.
2424
2425 2005-06-15  Hrvoje Niksic  <hniksic@xemacs.org>
2426
2427         * host.h (ip_address): Remove the trailing comma from the type
2428         enum in the no-IPv6 case.
2429
2430         * main.c (struct cmdline_option): Remove the trailing comma from
2431         the enum.
2432
2433         Reported by Jens Schleusener.
2434
2435 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
2436
2437         * url.c (strpbrk_or_eos): Check for a recent GCC version before
2438         using the statement-as-expression extension.
2439
2440 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
2441
2442         * http.c (gethttp): Don't attempt to "skip short body" if we're
2443         issuing a HEAD request (in which case the response head is not
2444         followed by a body).
2445
2446 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
2447
2448         * init.c (cmd_spec_header): Don't split the string along the
2449         commas using cmd_vector; just append the new value using
2450         vec_append instead.
2451
2452         * utils.c (vec_append): New function.
2453
2454 2005-05-27  Andreas Beckmann  <debian@abeckmann.de>
2455
2456         * html-url.c (tag_handle_link): Mark the content from the <link
2457         src="..."> tag as expecting HTML.
2458
2459 2005-05-24  Hrvoje Niksic  <hniksic@xemacs.org>
2460
2461         * http.c (http_atotm): Document the origin of the "cookie date"
2462         format.
2463
2464 2005-05-21  Hrvoje Niksic  <hniksic@xemacs.org>
2465
2466         * init.c (setval_internal): Report exact command name alongside
2467         the "display name".
2468
2469 2005-05-18  Hrvoje Niksic  <hniksic@xemacs.org>
2470
2471         * cookies.c (update_cookie_field): Explicitly cast -1 to time_t to
2472         cope with systems where time_t is unsigned.
2473
2474         * cookies.c: Remove unnecessary casts to time_t from values
2475         already of that type.
2476
2477 2005-05-17  Hrvoje Niksic  <hniksic@xemacs.org>
2478
2479         * ftp.c (ftp_loop_internal): Same here.
2480
2481         * http.c (http_loop): Don't clobber the file when -c is specified
2482         and the first attempt to retrieve the file fails.
2483
2484 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
2485
2486         * openssl.c (ssl_check_certificate): Print all issues with a
2487         certificate.
2488
2489 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
2490
2491         * ftp-basic.c: Don't xfree() the line returned by ftp_response if
2492         the returned code is not FTPOK.
2493
2494 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
2495
2496         * init.c (cleanup): Don't free the non-existent opt.ftp_acc.  Free
2497         the SSL-related stuff.
2498
2499 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
2500
2501         * ftp.c (print_length): Consistently print \n at end of the
2502         "Length" line.
2503
2504 2005-05-14  Hrvoje Niksic  <hniksic@xemacs.org>
2505
2506         * openssl.c (ssl_connect): Announce the beginning and the end of
2507         the SSL handshake when in debug mode.
2508
2509         * wget.h (PTR_FORMAT): New macro for easier printing of pointer
2510         values.  Use %0*lx along with PTR_FORMAT instead of %p.
2511
2512 2005-05-14  Hrvoje Niksic  <hniksic@xemacs.org>
2513
2514         * http.c (gethttp): Would forget to close the connection when
2515         keep_alive was not used.
2516
2517 2005-05-13  Hrvoje Niksic  <hniksic@xemacs.org>
2518
2519         * openssl.c (pattern_match): Document the code that decides
2520         whether "*" matches ".".
2521
2522 2005-05-12  Hrvoje Niksic  <hniksic@xemacs.org>
2523
2524         * ftp-ls.c (ftp_index): Use %d to print the port number, which is
2525         now int.
2526         From Steven M. Schweda's VMS patches.
2527
2528 2005-05-12  Hrvoje Niksic  <hniksic@xemacs.org>
2529
2530         * url.c (rewrite_shorthand_url): Don't rewrite "https://host" to
2531         "ftp://https//host" when SSL is not used.
2532
2533 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
2534
2535         * openssl.c (ssl_check_server_identity): Renamed to
2536         ssl_check_certificate because it does more than just checking the
2537         server's identity.
2538         (ssl_check_certificate): Tell the user about
2539         --no-check-certificate.
2540
2541 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
2542
2543         * openssl.c (ssl_init): Always use SSL_VERIFY_NONE, so that the
2544         handshake finishes even if the certificate is invalid.  That way
2545         ssl_check_server_identity can provide better diagnostics on why
2546         the verification failed.
2547
2548 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
2549
2550         * openssl.c (pattern_match): New function.
2551         (ssl_check_server_identity): Treat peer certificate common name as
2552         wildcard.
2553
2554 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
2555
2556         * openssl.c (ssl_check_server_identity): Print certificate subject
2557         and issuer.
2558
2559 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
2560
2561         * res.c (res_register_specs): Correctly pass pointers to
2562         hash_table_get_pair.
2563
2564 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
2565
2566         * http.c (gethttp): Call ssl_check_server_identity.
2567
2568         * openssl.c (ssl_check_server_identity): New function, verifies
2569         that the host name in the certificate matches the actual host
2570         name.
2571         (verify_cert_callback): Removed, since it didn't do anything
2572         except returning the preverify_ok argument.
2573
2574         * connect.c (fd_transport_context): Allow retrieval of the context
2575         pointer registered with fd_register_transport.
2576
2577 2005-05-09  Hrvoje Niksic  <hniksic@xemacs.org>
2578
2579         * openssl.c (verify_cert_callback): Renamed from verify_callback.
2580         Always return the received "ok" value.  Print the X509 name in
2581         debug mode.
2582         (ssl_init): Enable partial writes in SSL context.
2583
2584 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
2585
2586         * http.c (http_loop): Check for wildcards in the URL path
2587         component, not in the whole URL.
2588
2589         * ftp.c (ftp_loop): Check for wildcards in URL path before
2590         unescaping, so the users can escape globbing metacharacters with %
2591         escapes.
2592
2593 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
2594
2595         * init.c (run_command): Correctly interpret the return value of
2596         parse_line.
2597         (commands): Re-alphabetize.
2598
2599 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
2600
2601         * netrc.c (parse_netrc): Explicitly check for assignment != NULL
2602         to silence warning from Borland C.
2603
2604         * url.c (sync_path): Don't unnecessarily increment p.
2605         (url_parse): Don't unnecessarily set url_encode to NULL just
2606         prior to return from the function.
2607
2608 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
2609
2610         * log.c (escnonprint_internal): Place variable declarations
2611         before other statements.
2612
2613 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
2614
2615         * html-url.c: Include recur.h.
2616
2617         * http.c (request_new): Define as accepting no args.
2618
2619 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
2620
2621         * url.c (strpbrk_or_eos): Made inline.  Use strchr(s, '\0') for
2622         finding the NUL char position.
2623
2624 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
2625
2626         * url.c (decide_copy_method): Renamed to char_needs_escaping.
2627         Since it now returns only two possible values, change it to return
2628         boolean (int).
2629
2630 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
2631
2632         * ftp-basic.c (ftp_request): Prevent newlines in VALUE causing
2633         inadvertent sending of multiple FTP commands.
2634
2635 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
2636
2637         * url.c (decide_copy_method): Never cause reencode_escapes to
2638         decode % escapes; it is too intrusive and breaks some servers.
2639
2640 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
2641
2642         * http.c (gethttp): When tunnelling SSL traffic over proxy with
2643         CONNECT, we're really talking to the remote server directly.
2644         Because of this, the request-line argument must be the URL path
2645         rather than the whole URL, as it would be when using regular
2646         proxies.
2647         Reported by Charles Lane.
2648
2649 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
2650
2651         * init.c (cmd_spec_useragent): Allow empty User-Agent.
2652
2653         * http.c (gethttp): Don't print "unknown authentication scheme"
2654         for failed Basic authentication.
2655         (SET_USER_AGENT): Don't set user-agent if opt.useragent is empty.
2656         (gethttp): Use alloca for allocation of www_authenticate.
2657
2658 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
2659
2660         * main.c (print_help): Fix wording of --secure-protocol help text.
2661
2662 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
2663
2664         * cmpt.c (strstr): Updated from glibc 2.3.5.
2665
2666 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2667
2668         * http.c (http_atotm): Zero out the whole struct tm being passed
2669         to strptime.
2670
2671 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2672
2673         * main.c (main): Propagate option name to setoptval.
2674
2675         * init.c (setoptval): Accept another argument, OPTNAME.  Propagate
2676         that argument as the option name independently of the actual
2677         command, determined by command_by_name(com).
2678
2679 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2680
2681         * init.c (parse_line): Make the return value indicate whether
2682         there was a syntax error or a setter failed.
2683         (run_wgetrc): Return an indication on whether an error has been
2684         encountered.
2685         (initialize): Abort if there have been errors running either
2686         .wgetrc file.
2687
2688 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2689
2690         * log.c (copy_and_escape): Slightly reduce code repetition between
2691         the two loops.
2692
2693 2005-05-05  Charles C.Fu  <ccwf@bacchus.com>
2694
2695         * utils.c (proclist): Strip leading slash when calling fnmatch
2696         too, otherwise wildcard comparisons always fail.
2697
2698 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2699
2700         * utils.c (touch): Set access time to current time.
2701
2702 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2703
2704         * url.c (url_unescape): Don't unescape %00, it effectively
2705         truncates the string.
2706
2707 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2708
2709         * log.c (copy_and_escape): Replace the FOR_URI argument with a
2710         slightly more general mechanism for specifying different kinds of
2711         escape.
2712
2713 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2714
2715         * ftp-basic.c (ftp_response): Fix printing FTP server response.
2716
2717 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2718
2719         * retr.c (limit_bandwidth_reset): Reset sleep_adjust.
2720         (limit_bandwidth): Don't allow huge "adjustment" values that
2721         result from being suspended for a while.
2722
2723 2005-05-04  Hrvoje Niksic  <hniksic@xemacs.org>
2724
2725         * wget.h: If gettext was found but libtintl.h wasn't, declare
2726         gettext's return type to avoid type mismatches.
2727
2728 2005-05-03  Hrvoje Niksic  <hniksic@xemacs.org>
2729
2730         * url.c (url_parse): Rename label `error' to avoid conflict with
2731         identifier.
2732
2733         * retr.c (fd_read_body): Rename label `out' to avoid conflict with
2734         identifier.
2735         (fd_read_hunk): Use explicit double constant.
2736         (retrieve_from_file): Don't use string concatenation.
2737         (sleep_between_retrievals): Make sure xsleep is called with a
2738         `double' argument.
2739         (no_proxy_match): Define as static, like it is declared.
2740
2741         * progress.c (bar_create): Use 0.0 instead of 0 because K&R
2742         compilers can't automatically promote it.
2743
2744         * http-ntlm.c (ntlm_output): Replace \xHH sequences with \OOO for
2745         the sake of old compilers.
2746
2747         * ftp.c (ftp_loop_internal): Don't use string concatenation.
2748
2749         * http.c (request_send): Use explicit double constants when
2750         calling fd_read and fd_write.
2751         (post_file): Ditto.
2752         (gethttp): Ditto.
2753         (skip_short_body): Ditto.
2754
2755         * ftp-basic.c: When calling fd_write, specify the last argument as
2756         a `double' constant for the sake of K&R compilers which don't see
2757         the prototype and therefore can't promote it to double
2758         automatically.
2759
2760         * cookies.c (cookie_jar_load): Rename abort label to abort_cookie
2761         to avoid name conflict in K&R compilers.
2762
2763 2005-04-29  Hrvoje Niksic  <hniksic@xemacs.org>
2764
2765         * ptimer.c (posix_init): Since we allow _POSIX_MONOTONIC_CLOCK==0,
2766         it is not enough to check for _POSIX_MONOTONIC_CLOCK-0, we must
2767         also check for defined(_POSIX_MONOTONIC_CLOCK).
2768
2769 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
2770
2771         * ftp.c, hash.c, connect.c, host.c, http.c: Remove unreached code,
2772         such as "break" following return or abort.
2773
2774 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
2775
2776         * init.c (commands): Wrap the use of opt.random_file in #ifdef
2777         HAVE_SSL.
2778
2779 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
2780
2781         * http.c (gethttp): Correctly set the user agent.
2782
2783 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
2784
2785         * init.c (cmd_spec_useragent): Free the old value of
2786         opt.useragent before setting the new one.
2787
2788 2005-04-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
2789
2790         * main.c: Map --ftp-password, --http-password and --proxy-password to
2791         the new ftppassword, httppassword and proxypassword commands
2792         respectively.  Document the --user and --password options in the help
2793         string.
2794         
2795 2005-04-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
2796
2797         * ftp.c: Add support for --user and --password.
2798         
2799         * http.c: Add support for --user and --password.
2800         
2801         * init.c: Deprecated ftppasswd, httppasswd, login, passwd and
2802         proxypasswd commands.  Added ftppassword, ftpuser, httppassword,
2803         password, proxypassword and user commands.
2804
2805         * main.c: Renamed --ftp-passwd to --ftp-password.  Added --ftp-user,
2806         --http-password, --password, --proxy-password and --user.  Deprecated
2807         --http-passwd and --proxy-passwd.  Added documentation for new options
2808         and removed documentation for deprecated options in the help string.
2809         
2810         * options.h (struct options): Added user and passwd members to handle
2811         --user and --password respectively.  Renamed ftp_acc and ftp_pass
2812         members to ftp_user and ftp_passwd for consistency.
2813
2814 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
2815
2816         * main.c (print_help): Advertise "DER", not "ASN1".
2817
2818 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
2819
2820         * openssl.c (init_prng): Disable the weak random seed by default.
2821
2822         * http.c (gethttp): Simplify SSL initialization; disable SSL when
2823         anything goes wrong with the initialization.
2824
2825         * options.h (struct options): New option opt.random_file.
2826
2827 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
2828
2829         * init.c: Wrap private key commands in IF_SSL.
2830
2831 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
2832
2833         * openssl.c (ssl_init): Ditto.
2834
2835         * options.h (struct options): Allow separate specification of key
2836         type and certificate type.
2837
2838         * init.c (cmd_spec_cert_type): Provide a "der" synonym for "asn1"
2839         certificate encoding.
2840
2841 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
2842
2843         * openssl.c: Renamed "gen_sslfunc.c" to "openssl.c" and
2844         "gen_sslfunc.h" to "openssl.h".  This reflects the intent of
2845         openssl.c encapsulating the OpenSSL-specific code.
2846
2847 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
2848
2849         * init.c: Renamed "closure" (a synonym for context in some
2850         cultures) to "place", which more accurately reflects the usage.
2851
2852 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
2853
2854         * gen_sslfunc.c (ssl_init): Use default locations for loading the
2855         certificate bundles.
2856         (ssl_init_prng): Disable the cryptographically weak PRNG
2857         initialization fallback.
2858
2859         * init.c: Renamed SSL command-line arguments and wgetrc commands.
2860         (defaults): Check the server certificate by default.
2861
2862 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
2863
2864         * cookies.c (cookie_handle_set_cookie): Delete the part of the
2865         path after the trailing slash.
2866
2867         * http.c (gethttp): Call cookie_handle_set_cookie with path that
2868         begins with '/'.
2869
2870 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
2871
2872         * http.c (gethttp): Call skip_short_body only if keep_alive is in
2873         use.
2874         (gethttp): Send the User-Agent header with the CONNECT request as
2875         well.
2876
2877 2005-04-25  Hrvoje Niksic  <hniksic@xemacs.org>
2878
2879         * main.c (option_data): Removed support for the undocumented flag
2880         --use-proxy.
2881
2882 2005-04-25  Hrvoje Niksic  <hniksic@xemacs.org>
2883
2884         * main.c (option_data): Don't treat -Y as a boolean switch; treat
2885         it as a value switch instead, so "-Y off" continues to work.
2886
2887 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
2888
2889         * utils.c (aprintf): Delete unreachable statement.
2890
2891 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
2892
2893         * host.c (cmp_prefer_ipv4): New function.
2894         (cmp_prefer_ipv6): New function.
2895         (lookup_host): Use the appropriate comparator according to
2896         opt.prefer_family.
2897
2898         * init.c: New option prefer_family.
2899
2900         * host.c (is_valid_ipv6_address): Spell NS_* constants in lower
2901         case to avoid clash with system headers.
2902         (lookup_host): Reorder the addresses so that IPv4 ones come first.
2903
2904         * utils.c (stable_sort): New function.
2905
2906 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
2907
2908         * connect.c (retryable_socket_connect_error): Return 0 for
2909         ENETUNREACH and EHOSTUNREACH.
2910
2911 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
2912
2913         * cmpt.c: Reenable the memmove implementation for systems that
2914         lack it.
2915
2916         * http.c (gethttp): Store the "authorized" state of the persistent
2917         connection.
2918         (request_remove_header): New function.
2919         (gethttp): Don't send the "Basic" authentication if the connection
2920         is already authorized.
2921
2922 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
2923
2924         * utils.c (base64_encode): Treat input as unsigned chars.
2925         Required for correct encoding of binary stuff.
2926
2927 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
2928
2929         * http-ntlm.c: Format the function definitions in an
2930         ansi2knr-friendly fashion.
2931
2932 2005-04-22  Hrvoje Niksic  <hniksic@xemacs.org>
2933
2934         * http.c (gethttp): Handle multiple WWW-Authentication headers,
2935         only one of which is recognized.  Those are sent by IIS with NTLM
2936         authorization.
2937         (create_authorization_line): Propagate information whether
2938         authorization is finished.
2939         (gethttp): Only stop authorization when it's really finished, not
2940         after fixed two steps.
2941
2942 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
2943
2944         * gen_sslfunc.c (ssl_init): Fix warning message text; mark the
2945         message as translatable.
2946
2947 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
2948
2949         * main.c (print_help): Print the EGD option outside the cluster of
2950         SSL options.
2951
2952 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
2953
2954         * http-ntlm.c (ntlm_output): Fix setting the domain.
2955         Suggested by Sami Krank.
2956
2957 2005-04-20  Mauro Tortonesi  <mauro@ferrara.linux.it>
2958
2959         * connect.c: Set IPV6_V6ONLY socket option when -6 switch is used.
2960
2961 2005-04-20  FUJISHIMA Satsuki  <sf@FreeBSD.org>
2962
2963         * http.c (request_set_header): Fix the check whether a new header
2964         needs to be allocated.
2965
2966 2005-04-18  Hrvoje Niksic  <hniksic@xemacs.org>
2967
2968         * utils.c (base64_encode): Use the parameter order that makes more
2969         sense.  Return the length of the base64 written.  Updated all
2970         callers.
2971
2972 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
2973
2974         * http.c (request_set_header): Free NAME when VALUE is NULL and
2975         freeing the header name is requested.
2976
2977 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
2978
2979         * snprintf.c (fmtstr): Declare VALUE as const char *.
2980         Based on patch by Russ Allbery.
2981
2982 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
2983
2984         * snprintf.c (fmtfp): More correct handling of significant digit
2985         count with %g -- 0.002 has one significant digit, not three.
2986
2987 2005-04-16  Hrvoje Niksic  <hniksic@xemacs.org>
2988
2989         * retr.c (fd_read_body): Respect read timeout with non-interactive
2990         or no progress gauge -- treat ETIMEDOUT specially only when
2991         progress_interactive.
2992         Reported by FUJISHIMA Satsuki.
2993
2994 2005-04-16  FUJISHIMA Satsuki  <sf@FreeBSD.org>
2995
2996         * http.c (gethttp): Don't use HTTP/1.0 persistent connections over
2997         proxy.
2998
2999 2005-04-16  Hrvoje Niksic  <hniksic@xemacs.org>
3000
3001         * snprintf.c: Use the PARAMS macro to handle prototypes.  Write
3002         function definitions in the ansi2knr-friendly way.
3003         (fmtstr): If string precision is specified, don't read VALUE past
3004         it.
3005         (dopr): Actually print %g and %e formats.
3006         (fmtfp): Fix a bug that caused 0.01 to be printed as 0.1.
3007         (fmtfp): Use LLONG in floating point conversions to be able to
3008         convert more digits.
3009         (fmtfp): Interpret precision as number of significant digits with
3010         %g.
3011         (fmtfp): Omit trailing decimal zeros with %g.
3012
3013         * snprintf.c: Don't include <ctype.h> because none of it is used.
3014         Include strings.h/string.h, as per Autoconf.
3015
3016 2005-04-15  Hrvoje Niksic  <hniksic@xemacs.org>
3017
3018         * ptimer.c: Use _POSIX_TIMERS - 0 > 0, which handles the case when
3019         _POSIX_TIMERS is defined but empty, as well as the case when it is
3020         undefined.  Do the same with the check for _POSIX_MONOTONIC_CLOCK.
3021         Suggested by Larry Jones.
3022
3023 2005-04-15  Hrvoje Niksic  <hniksic@xemacs.org>
3024
3025         * ptimer.c: Check that _POSIX_TIMERS is defined as well as > 0.
3026         Problem reported by Steven M. Schweda.
3027
3028 2005-04-14  Hrvoje Niksic  <hniksic@xemacs.org>
3029
3030         * http.c (skip_short_body): Print the skipped body data in debug
3031         mode.
3032         (skip_short_body): Don't skip more than 4k of body data.
3033         (skip_short_body): Return whether the skipping was successful.
3034         (gethttp): If skip_short_body failed, invalidate the connection.
3035
3036 2005-04-12  Gisle Vanem  <giva@bgnett.no>
3037
3038         * ftp.c (getftp): Ditto.
3039
3040         * http.c (gethttp): Open the output file in binary mode.
3041
3042 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3043
3044         * hash.c: Conditionalize including config.h on HAVE_CONFIG_H
3045         instead of on STANDALONE.
3046
3047 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3048
3049         * gen_sslfunc.c (ssl_print_errors): Made static.
3050         (ssl_print_errors): Eliminate potentially dangerous fixed-size
3051         error buffer.  Passing NULL to ERR_error_string causes it to use
3052         its own static buffer, which is fine for our purposes.
3053
3054         * gen_sslfunc.c: Include gen_sslfunc.h.  Make the declarations of
3055         ssl_init and ssl_conect match the actual definitions.
3056         (ssl_connect): Simply return a boolean, the SSL context is no
3057         longer useful as a return value.
3058
3059         * retr.c: Don't include SSL headers; we don't need them.
3060
3061 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3062
3063         * config-post.h: Don't define _VA_LIST under Solaris; it breaks
3064         compilation with GCC 3.4 under Solaris 10.  (It was defined to
3065         avoid a warning with previous versions of GCC.)
3066
3067 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3068
3069         * xmalloc.c (register_ptr): Warn the user to increase SZ prior to
3070         aborting.
3071
3072 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3073
3074         * convert.c (convert_cleanup): Free converted_files.
3075
3076 2005-04-10  Hrvoje Niksic  <hniksic@xemacs.org>
3077
3078         * wget.h (DEBUGP): Use __builtin_expect to give a hint to GCC that
3079         opt.debug is false in the vast majority of cases.
3080
3081 2005-04-10  Hrvoje Niksic  <hniksic@xemacs.org>
3082
3083         * config-post.h: Declare alloca as void *, not char *.
3084
3085 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
3086
3087         * recur.c (download_child_p): When -p is used, (temporarily)
3088         ignore accept/reject rules for HTMLs, even when they are at the
3089         maximum recursion depth.  That is because with -p we are, if
3090         necessary, overstepping the max. depth to get the requisites.
3091
3092 2004-06-12  Larry Jones <lawrence.jones@ugsplm.com>
3093
3094         * recur.c (download_child_p): Correct the logic in check number 6:
3095         test opt.reclevel (not DEPTH) against INFINITE_RECURSION.
3096
3097 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
3098
3099         * url.c: Use "static const" in preference to "const static".
3100         Sun's cc warns that "storage class after type is obsolescent".
3101
3102         * url.c (urlchr_table): Don't mark ~ as unsafe, too many broken
3103         web sites are confused when ~ is changed to %7E.  Their servers
3104         redirect /%7Efoo/ to /~foo/, which Wget again accesses using %7E,
3105         causing further redirections, therefore looping infinitely.  See
3106         Debian bug #301624 for an example.
3107
3108 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
3109
3110         * alloca.c: Include wget.h to be able to use xmalloc.  In addition
3111         to defining malloc to xmalloc, also define free to xfree.
3112
3113 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
3114
3115         * http-ntlm.c (ntlm_output): Use "char", not "unsigned char" for
3116         ntlmbuf.  Our base64 functions accept char anyway.
3117         (ntlm_output): Join up the format string, since we nominally
3118         support K&R compilers.
3119         (ntlm_output): Ditto.
3120
3121 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3122
3123         * ptimer.c: Use Windows timers under Cygwin, whose POSIX timer
3124         implementation is incomplete.
3125
3126 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3127
3128         * ptimer.c (struct ptimer): Remove the unused initialized field.
3129
3130         * ptimer.c: Renamed function parameters from WT (which used to
3131         stand for wget_timer or wtimer) to PT.
3132
3133 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3134
3135         * ptimer.c (posix_init): Be smarter about choosing clocks.  In
3136         decreasing order of preference, use CLOCK_MONOTONIC,
3137         CLOCK_HIGHRES, and CLOCK_REALTIME.
3138         (ptimer_allocate): Removed.
3139
3140         * ptimer.c: Refactor the code by cleanly separating the
3141         architecture-dependent code from the architecture-independent
3142         code.
3143
3144 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3145
3146         * ptimer.c (ptimer_init): Explicitly check that
3147         _POSIX_MONOTONIC_CLOCK is *both* defined and >=0.  (Undefined
3148         symbols are >=0.)
3149
3150 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3151
3152         * ptimer.c (ptimer_diff): Fix typo affecting Windows build.
3153
3154 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3155
3156         * ptimer.c (ptimer_init): In fact, _POSIX_MONOTONIC_CLOCK needs to
3157         be >= 0.
3158
3159         * ptimer.c (ptimer_init): Check whether _POSIX_MONOTONIC_CLOCK is
3160         defined instead of whether it's greater than 0.  glibc defines it
3161         to 0, but still makes it available via sysconf.
3162
3163 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3164
3165         * mswindows.c (str_to_int64): Rename OVERFLOW and UNDERFLOW to
3166         INT64_OVERFLOW and INT64_UNDERFLOW, since those names are used.
3167
3168 2005-04-07  Hrvoje Niksic  <hniksic@xemacs.org>
3169
3170         * ptimer.c: New file.  Move the "wtimer" functions from utils.c to
3171         this file and rename them to ptimer_.
3172
3173 2005-04-07  Hrvoje Niksic  <hniksic@xemacs.org>
3174
3175         * host.c (NO_ADDRESS): Define NO_ADDRESS only after the system
3176         headers have been included.
3177
3178 2005-04-06  Hrvoje Niksic  <hniksic@xemacs.org>
3179
3180         * http.c (pconn): Include NTLM data, which is per-connection.
3181         (known_authentication_scheme_p): Recognize NTLM authorization.
3182         (create_authorization_line): Call ntlm_input and ntlm_output.
3183
3184         * http-ntlm.c: New file, donated by Daniel Stenberg and originally
3185         written for curl, heavily modified for Wget.
3186
3187         * utils.c (base64_encode): Relocated from http.c, since it is now
3188         used by http-ntlm.c, and will possibly be used elsewhere.
3189         (base64_decode): New function, originally based on code from GNU
3190         recode.
3191
3192 2005-04-02  Hrvoje Niksic  <hniksic@xemacs.org>
3193
3194         * ftp.c (ftp_loop): Ditto.
3195
3196         * ftp-basic.c (ftp_pasv): Use the xzero shorthand for memset(0).
3197         (ftp_lpsv): Ditto.
3198
3199 2005-04-05  Mauro Tortonesi  <mauro@ferrara.linux.it>
3200
3201         * Makefile.in: removed string_t.c from list of source files.
3202
3203 2005-04-04  Mauro Tortonesi  <mauro@ferrara.linux.it>
3204
3205         * string_t.c: Removed.
3206         
3207         * string_t.h: Removed.
3208
3209 2005-04-02  Hrvoje Niksic  <hniksic@xemacs.org>
3210
3211         * url.c (rewrite_shorthand_url): Only accept recognized schemes.
3212         That way "foo:80" will correctly be rewritten to "http://foo:80"
3213         instead of left unchanged and ultimately rejected because of
3214         "unsupported scheme foo".
3215
3216 2005-03-31  Hrvoje Niksic  <hniksic@xemacs.org>
3217
3218         * utils.c (number_to_string): Avoid explicit 64-bit constants;
3219         construct them by multiplication at compile-time.
3220
3221         * utils.c, elsewhere: Don't append "L" to 32-bit integer
3222         constants; we aren't really compilable on 16-bit systems anyway.
3223
3224         * hash.c (prime_size): Remove primes larger than 2^31, but include
3225         2^31-1, which is prime.
3226
3227 2005-03-30  Hrvoje Niksic  <hniksic@xemacs.org>
3228
3229         * utils.c (string_set_to_array): New function.
3230
3231         * convert.c: Replace the use of "slists" with sets/hash-tables,
3232         which in fact suit the intended purpose much better.
3233         downloaded_html_list is removed altogether.
3234
3235 2005-03-29  Hrvoje Niksic  <hniksic@xemacs.org>
3236
3237         * ftp.h (enum): Rename GLOBALL, GETALL, and GETONE to
3238         GLOB_GLOBALL, GLOB_GETALL, and GLOB_GETONE to avoid conflict with
3239         Linux headers.
3240
3241 2005-03-29  Hrvoje Niksic  <hniksic@xemacs.org>
3242
3243         * utils.c (numdigit): More correct handling of negative numbers.
3244
3245 2005-03-21  Hrvoje Niksic  <hniksic@xemacs.org>
3246
3247         * http.c (gethttp): Print the human-readable size.
3248
3249         * ftp.c (getftp): Print the human-readable size of the file to be
3250         downloaded.
3251
3252         * utils.c (human_readable): New function.
3253
3254         * utils.c: Renamed "legible" to "with_thousand_seps",
3255         "legible_large_int" to "with_thousand_seps_large", and "legible_1"
3256         to "add_thousand_seps".
3257
3258 2005-03-21  Hrvoje Niksic  <hniksic@xemacs.org>
3259
3260         * http.c (gethttp): Inhibit persistent connections when talking to
3261         proxies, as mandated by RFC 2068.
3262
3263 2005-03-20  Hrvoje Niksic  <hniksic@xemacs.org>
3264
3265         * url.c (unescape_single_char): New function.
3266         (url_escape_dir): Use it to unescape slashes in directory
3267         components.
3268         (url_string): Escape unsafe chars in host name, except for the ':'
3269         charaters, which can appear in IPv6 addresses.
3270
3271         * main.c (main): Don't access the cookie jar directly.
3272
3273         * log.c (escnonprint_internal): Correctly calculate the needed
3274         string size.  Don't forget the buffer's new size after having
3275         reallocated it.
3276         (log_cleanup): New function.  Free the escnonprint ring data.
3277
3278         * init.c (cleanup): Don't free the cookie jar explicitly, it is
3279         now done by http_cleanup.
3280         (cleanup): opt.user_headers is now a vector, free it with
3281         free_vec.
3282
3283         * http.c (gethttp): Make sure to free the request data, the status
3284         message, and the response data before returning from the function.
3285         (save_cookies): New function.
3286         (http_cleanup): Free the cookie jar here.
3287
3288         * hash.c: Renamed string_hash to hash_string and ptrhash to
3289         hash_pointer.  Exported hash_pointer.
3290
3291         * xmalloc.c: Organized malloc_table (previously malloc_debug) as a
3292         simple EQ hash table.  register_ptr and unregister_ptr are now of
3293         O(1) complexity.
3294
3295         * xmalloc.c: Renamed "*_debug" to debugging_* and "*_real" to
3296         checking_*.
3297
3298 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
3299
3300         * utils.c (debug_test_md5): Moved to gen-md5.c.
3301
3302         * mswindows.h: Don't declare inet_ntop, since we don't use it.
3303
3304         * mswindows.h: For consistency, also wrap closesocket, it being
3305         a Winsock call.
3306
3307         * mswindows.h: Don't declare sleep and usleep; we're defining
3308         xsleep now.
3309
3310         * mswindows.h (mkdir): Don't special-case Borland C, _mkdir
3311         works there as well.
3312
3313         * host.c: Don't include winsock header files; the correct ones
3314         are already included by mswindows.h.
3315
3316         * mswindows.c (xsleep): Round toward the nearest millisecond
3317         in an attempt to avoid average short sleeps.
3318
3319         * utils.c (wtimer_granularity): Report correct values for
3320         Windows timers and for high-resolution timers.
3321
3322         * utils.c (wtimer_initialize_once): New function, called to
3323         initialize the timer frequency.
3324
3325         * utils.c: Replace the use of GetSystemTime with high-resolution
3326         counters under Windows.  When high-resolution counters are
3327         unavailable, use GetTickCount().
3328
3329 2005-03-15  Hrvoje Niksic  <hniksic@xemacs.org>
3330
3331         * retr.c (fd_read_body): Undo the 2004-11-18 change.  Instead,
3332         always be "exact".
3333
3334 2005-03-17  Hrvoje Niksic  <hniksic@xemacs.org>
3335
3336         * ftp-basic.c (ftp_login): Don't free the string if ftp_response
3337         returned an error status because the line didn't get allocated in
3338         the first place.
3339
3340 2005-03-15  Hrvoje Niksic  <hniksic@xemacs.org>
3341
3342         * http.c (read_http_response_head): Limit the response size to 64k
3343         bytes.
3344
3345         * retr.c (fd_read_hunk): Accept a MAXSIZE argument that limits the
3346         number of bytes the function is allowed to allocate.
3347         (fd_read_line): Limit the line to 4096 bytes.
3348
3349 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
3350
3351         * wget.h: Include options.h after wgint has been defined.
3352
3353         * options.h (struct options): Declare options processed with
3354         cmd_bytes as wgint, not long.
3355
3356 2005-03-18  Hrvoje Niksic  <hniksic@xemacs.org>
3357
3358         * init.c (cmd_file): Use concat_strings.
3359
3360         * http.c (basic_authentication_encode): Use concat_strings.
3361
3362         * ftp-ls.c (ftp_index): Use concat_strings.
3363
3364         * ftp-basic.c (ftp_request): Use concat_strings.
3365
3366         * utils.c (concat_strings): New function.
3367
3368 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
3369
3370         * init.c (simple_atof): Handle negative numbers; skip whitespace
3371         before the number.
3372         (simple_atoi): Ditto.  Also, check for overflow and underflow.
3373         (cmd_number): Bail out on negative numbers.
3374         (parse_bytes_helper): Ditto.
3375
3376 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3377
3378         * http.c (gethttp): Handle multiple Set-Cookie headers sent by
3379         remote server.
3380
3381 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3382
3383         * init.c (defaults): Use passive FTP by default.
3384
3385 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3386
3387         * mswindows.c: Provide wrappers to Winsock functions that set
3388         errno to WSAGetLastError() in case of failure.  Also provide a
3389         Windows-specific version of strerror.
3390
3391         * mswindows.h: Wrap calls to socket, bind, connect, recv, send,
3392         select, getsockname, getpeername, and setsockopt.
3393
3394 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3395
3396         * url.c (url_parse): Reject port numbers larger than 65535.  We
3397         also check for overflow while parsing port numbers.
3398
3399 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3400
3401         * utils.c (read_file): Don't use wgint for file size; LFS won't
3402         work since the file is mmap'ed as a whole.
3403
3404         * options.h: Don't include stdio.h.
3405
3406         * log.c: Ditto.
3407
3408         * init.c: Disambiguate assignment from non-zero test to avoid
3409         Borland C warning.
3410
3411         * http.c (response_new): Don't needlessly post-increment count.
3412
3413         * hash.c: Include stdio.h.
3414
3415         * gnu-md5.h: Don't include stdio.h.
3416
3417         * getopt.h (struct option): Always use const.
3418
3419         * ftp.c (getftp): Avoid unnecessary assignment to RES to avoid
3420         Borland C warning.
3421
3422         * ftp-ls.c: Disambiguate assignment from non-zero test to avoid
3423         Borland C warning.
3424
3425         * cmpt.c (strptime_internal): Don't initialize rp_backup when
3426         !_NL_CURRENT to avoid Borland C warning.
3427
3428 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3429
3430         * utils.c (fopen_excl): Fix parse error when O_BINARY is
3431         available.
3432
3433 2005-03-05  Hrvoje Niksic  <hniksic@xemacs.org>
3434
3435         * url.c (url_file_name): Don't allow hosts named ".." to be
3436         appended as path elements.
3437
3438 2005-03-03  Hrvoje Niksic  <hniksic@xemacs.org>
3439
3440         * retr.c (retrieve_url): Escape location header.
3441
3442         * http.c (print_server_response_1): Escape server response when
3443         printing it.
3444         (gethttp): Escape host name, status message, location header, and
3445         content type.
3446         (http_loop): Escape error message from server.
3447
3448         * host.c (lookup_host): Escape host name when printing it.
3449
3450         * ftp.c (getftp): Escape user name when printing it.
3451         (getftp): Escape remote file and directory for printing.
3452         (getftp): Escape server listing when printing it.
3453         (ftp_retrieve_list): Escape link name and file name.
3454         (ftp_retrieve_glob): Escape file name.
3455
3456         * ftp-basic.c (ftp_response): Escape server response when printing
3457         it.
3458
3459         * cookies.c (parse_set_cookies): Escape the cookie field when
3460         printing it.
3461         (parse_set_cookies): Escape contents of remote header.
3462         (cookie_handle_set_cookie): Escape host name and cookie domain.
3463
3464         * connect.c (connect_to_ip): Escape the host name.
3465
3466         * log.c (escnonprint): New function, used for printing strings
3467         coming from the server that possibly contain non-ASCII characters.
3468         (escnonprint_uri): Ditto.
3469
3470 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
3471
3472         * ftp.c (getftp): Ditto.
3473
3474         * http.c (gethttp): When we're not supposed to overwrite files,
3475         use fopen_excl to open the file and recompute the file name.
3476
3477         * log.c (redirect_output): Use unique_create to avoid a race
3478         condition.
3479
3480         * mswindows.c (fake_fork_child): Use unique_create.
3481
3482         * utils.c (fopen_excl): New function that opens a stdio stream
3483         with the O_EXCL flag (where available).
3484         (unique_create): New function, like unique_name, but also creating
3485         the file and returning a file pointer.
3486         (fork_to_background): Use unique_create to create the file
3487         immediately to avoid race condition with multiple instances of
3488         wget -b.
3489
3490 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
3491
3492         * host.c (lookup_host): Test for AI_ADDRCONFIG directly, instead
3493         of checking for HAVE_GETADDRINFO_AI_ADDRCONFIG.
3494
3495 2005-02-23  Hrvoje Niksic  <hniksic@xemacs.org>
3496
3497         * host.c (is_valid_ipv6_address): Move here from url.c.
3498         (lookup_host): If the address is numeric, don't print the
3499         "resolving..." line, don't set up DNS timeouts, and set the
3500         AI_NUMERICHOST hint, where available.
3501
3502 2005-02-26  Gisle Vanem  <giva@bgnett.no>
3503
3504         * utils.c: Use the nnnLL syntax under GCC.  Define struct_stat to
3505         struct _stati64 under __MINGW32__ as well as under MS VC.
3506
3507 2005-02-26  Hrvoje Niksic  <hniksic@xemacs.org>
3508
3509         * utils.c: Use the nnnI64 syntax for __int64 constants under all
3510         Windows compilers.
3511         (SPRINTF_WGINT): Use "%I64" under all Windows compilers.
3512
3513         * mswindows.h (WGINT_MAX): Use the nnnI64 syntax for
3514         __int64 constants under all Windows compilers.
3515         (struct_stat): Use `struct stati64' under Borland C.
3516         (fstat): Don't redefine to _fstati64 under Borland.
3517
3518         * mswindows.c: Define str_to_int64 under Borland C as well as
3519         under (older) Visual C.
3520
3521 2005-02-25  Hrvoje Niksic  <hniksic@xemacs.org>
3522
3523         * ftp.c (getftp): Initialize err to suppress compiler warning.
3524
3525 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
3526
3527         * ftp.c (ftp_expected_bytes): Fix bug that caused infloop because
3528         of not correctly skipping the '(' character.
3529
3530 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
3531
3532         * mswindows.c (wget_ftello): Removed.
3533
3534         * mswindows.h: Remove bogus definition of stat.
3535         (wget_ftello): Remove the leftover ftello replacement.
3536
3537 2005-02-20  Hrvoje Niksic  <hniksic@xemacs.org>
3538
3539         * mswindows.c (wget_ftello): Wget's replacement for ftello.
3540
3541         * utils.c (file_size): Use ftello where available.
3542
3543         * ftp-ls.c (ftp_parse_unix_ls): Use str_to_wgint to parse the file
3544         size.
3545         (ftp_parse_winnt_ls): Ditto.
3546
3547         * ftp-basic.c (ftp_size): Use str_to_wgint to convert number to
3548         wgint; pass 10 instead of 0 as the BASE argument.
3549
3550         * ftp.c (ftp_expected_bytes): Use str_to_wgint to parse the file
3551         size.
3552
3553         * sysdep.h (LARGE_INT_FMT): Use __int64 as LARGE_INT on
3554         MSVC/Windows; print it with "%I64".
3555
3556         * wget.h: Define a `wgint' type, normally aliased to (the possibly
3557         64-bit variant of) off_t.
3558
3559         * all: Use `wgint' instead of `long' for numeric variables that
3560         can hold file sizes.
3561
3562         * utils.c (number_to_string): Support printing of `wgint'
3563         argument.
3564         (number_to_static_string): New function.
3565
3566         * all: Replace printf("%ld", long_value) with printf("%s",
3567         number_to_static_string(wgint_value)).
3568
3569 2005-02-18  Mauro Tortonesi <mauro@ferrara.linux.it>
3570
3571         * main.c: Added the --ftp-passwd command line option.
3572
3573         * init.c: Renamed command passwd to ftppasswd.
3574
3575 2005-02-11  Mauro Tortonesi <mauro@ferrara.linux.it>
3576         
3577         * string_t.c: Fixed a bug in do_escape and triggered escape of
3578         backslashes in string_escape to avoid ambiguities in the result
3579         string.
3580         
3581 2005-02-10  Mauro Tortonesi <mauro@ferrara.linux.it>
3582
3583         * string.h: Renamed to string_t.h to fix a compilation conflict 
3584         with the string.h header in the standard C library.
3585         
3586         * string.c: Renamed to string_t.c for consistency with string.h.
3587         
3588         * string_t.c: Ditto.
3589
3590         * string_t.h: Ditto.
3591         
3592 2004-12-31  Mauro Tortonesi <mauro@ferrara.linux.it>
3593
3594         * string.c: New file.
3595
3596         * string.h: New file.
3597
3598         * Makefile.in: Added string.c to the list of modules to compile.
3599
3600         * main.c: Updated copyright.
3601
3602 2004-11-18  Ulf Harnhammar <ulf.harnhammar.9485@student.uu.se>
3603
3604         * ftp-ls.c: Fixed a problem in ftp_parse_winnt_ls that could allow a
3605         malicious remote FTP server to crash wget.
3606
3607 2004-11-18  Hans-Andreas Engel <engel@node.ch>
3608
3609         * http.c: Enable --convert-links (-k) when a single page is downloaded
3610         via --output-document (-O).
3611
3612 2004-11-18  Mauro Tortonesi <mauro@deepspace6.net>
3613
3614         * connect.c: Minor correction to the comment in front of fd_peek.
3615
3616 2004-11-18  Leonid Petrov <nouser@lpetrov.net>
3617
3618         * retr.c: Fix a timeout problem in fd_read_body when using http_proxy.
3619
3620 2004-11-15  YAMAZAKI Makoto <Yamazaki.Makoto@fujixerox.co.jp>
3621
3622         * netrc.c: Fix termination by assertion bug in netrc parsing.
3623
3624 2004-05-09  David Fritz  <zeroxdf@att.net>
3625
3626         * mswindows.c (fake_fork): Pass entire command line to the child
3627         process.
3628
3629 2004-03-31  Hrvoje Niksic  <hniksic@xemacs.org>
3630
3631         * http.c (gethttp): Fix typo: SCHEME_SSL -> SCHEME_HTTPS.
3632
3633 2004-03-30  Hrvoje Niksic  <hniksic@xemacs.org>
3634
3635         * http.c (gethttp): Send the Proxy-Authorization header over
3636         non-SSL connections too.
3637
3638 2004-03-25  David Fritz  <zeroxdf@att.net>
3639
3640         * mswindows.c (fake_fork_child): Ignore error code when
3641         OpenFileMapping() fails; assume it failed because the object does
3642         not exist.
3643
3644 2004-03-24  David Fritz  <zeroxdf@att.net>
3645
3646         * mswindows.c (fake_fork): New function.
3647
3648         * mswindows.c (fork_to_background): Use it.
3649
3650 2004-03-19  David Fritz  <zeroxdf@att.net>
3651
3652         * mswindows.c (ws_hangup): Incorporate old fork_to_background()
3653         code.  Add event name argument.
3654         (fork_to_backgorund): Now a simple wrapper around ws_hangup().
3655         (ws_handler): Correctly handle the case when neither CTRLC_BACKGND
3656         nor CTRLBREAK_BACKGND are defined.  Don't bother handling close,
3657         logoff, or shutdown events.  Call ws_hangup() with the correct
3658         event name; don't assume it was CTRL+Break.
3659
3660 2004-03-19  Hrvoje Niksic  <hniksic@xemacs.org>
3661
3662         * url.c (url_parse): Decode %HH sequences in host name.
3663
3664 2004-03-04  Hrvoje Niksic  <hniksic@xemacs.org>
3665
3666         * convert.c (local_quote_string): Quote "#" as "%23" and "%" as
3667         "%25" when creating links to local files.
3668
3669 2004-03-02  David Fritz  <zeroxdf@att.net>
3670
3671         * mswindows.c (ws_percenttitle): Guard against future changes by
3672         doing nothing if the proper variables have not been initialized.
3673         Clamp percentage value.
3674
3675 2004-03-04  Gisle Vanem  <giva@bgnett.no>
3676
3677         * retr.c (fd_read_body): Don't change console title if quiet.
3678
3679 2004-02-25  David Fritz  <zeroxdf@att.net>
3680
3681         * mswindows.c (set_sleep_mode): Remove argument and return value.
3682         Call GetModuleHandle() instead of LoadLibrary()/FreeLibrary() for
3683         kernel32.dll.  Use typedef for function-pointer.  Don't cast
3684         l-value.  Don't use dereference operator when calling through
3685         function-pointer.
3686         (ws_startup): Update call to set_sleep_mode().
3687         (ws_cleanup): Remove call to set_sleep_mode().
3688
3689 2004-02-23  David Fritz  <zeroxdf@att.net>
3690
3691         * http.c (http_loop): Ditto.
3692
3693         * ftp.c (ftp_loop_internal): Update call to ws_changetitle().
3694
3695         * main.c (main): Don't bother calling ws_changetitle().
3696
3697         * mswindows.h (ws_changetitle): Update prototype.
3698
3699         * mswindows.c (ws_changetitle): Remove second argument.  Use
3700         xfree_null().
3701         (ws_percenttitle): Only update title when percentage has changed.
3702
3703 2004-02-23  David Fritz  <zeroxdf@att.net>
3704
3705         * mswindows.h: Ditto.
3706
3707         * mswindows.c: Misc. formatting/comment tweaks throughout.
3708
3709 2004-02-20  David Fritz  <zeroxdf@att.net>
3710
3711         * main.c (print_help): Remove call to ws_help().
3712
3713         * mswindows.c (ws_help): Remove.
3714
3715         * mswindows.h (ws_help): Remove.
3716
3717 2004-02-16  David Fritz  <zeroxdf@att.net>
3718
3719         * init.c (home_dir): Use aprintf() instead of xmalloc()/sprintf().
3720         Under Windows, if $HOME is not defined, use the directory that
3721         contains the Wget binary instead of hard-coded `C:\'.
3722         (wgetrc_file_name): Under Windows, look for $HOME/.wgetrc then, if
3723         not found, look for wget.ini in the directory of the Wget binary.
3724
3725         * mswindows.c (ws_mypath): Employ slightly more robust methodology.
3726         Strip trailing path separator.
3727
3728 2004-02-06  Hrvoje Niksic  <hniksic@xemacs.org>
3729
3730         * http.c (gethttp): Respect --ignore-length.
3731         (gethttp): Inhibit keep-alive if --ignore-length is specified.
3732
3733 2004-02-06  Hrvoje Niksic  <hniksic@xemacs.org>
3734
3735         * connect.c (sockaddr_set_data): Zero out
3736         sockaddr_in/sockaddr_in6.  Apparently BSD-derived stacks need this
3737         when binding a socket to local address.
3738
3739 2004-02-04  Hrvoje Niksic  <hniksic@xemacs.org>
3740
3741         * hash.c: Make the file compilable outside Wget source tree when
3742         -DSTANDALONE is used.
3743
3744 2004-01-29  Hrvoje Niksic  <hniksic@xemacs.org>
3745
3746         * utils.c (determine_screen_width): Return 0 if not running on
3747         Windows or on a TIOCGWINSZ-capable system.
3748
3749 2004-01-28  David Fritz  <zeroxdf@att.net>
3750
3751         * utils.c (determine_screen_width): Correctly determine console
3752         width under Windows.
3753
3754 2004-01-28  Christian Biere  <christianbiere@gmx.de>
3755
3756         * progress.c (bar_set_params): Fixed syntax error when HAVE_ISATTY
3757         was undefined.
3758
3759         * ftp.c (ftp_loop_internal): Allocate a larger buffer in case
3760         "try" gets translated to something large.  Ditto in http_loop in
3761         http.c.
3762
3763         * http.c (response_header_copy): Don't write to buf[BUFSIZE].
3764
3765         * ftp-opie.c (skey_response): Eliminate unnecessary string
3766         concatenation; just call gen_md5_update twice.
3767
3768 2004-01-25  Hrvoje Niksic  <hniksic@xemacs.org>
3769
3770         * utils.c (xsleep): Don't call usleep with values larger than
3771         1,000,000.
3772
3773 2003-12-16  Hrvoje Niksic  <hniksic@xemacs.org>
3774
3775         * http.c (gethttp): Fix generation of `Content-Length'.
3776
3777 2003-12-15  Gisle Vanem  <giva@bgnett.no>
3778
3779         * url.c (url_skip_credentials): Fixed return value; 'url' if no
3780         credentials.
3781
3782 2003-12-14  Hrvoje Niksic  <hniksic@xemacs.org>
3783
3784         * url.c (url_skip_credentials): Return a pointer directly.
3785
3786 2003-12-14  Hrvoje Niksic  <hniksic@xemacs.org>
3787
3788         * url.c (url_file_name): Ditto.
3789         (parse_errors): Ditto.
3790
3791         * retr.c (retr_rate): Ditto.
3792
3793         * progress.c (create_image): Ditto.
3794
3795         * netrc.c (parse_netrc): Ditto.
3796
3797         * main.c (struct cmdline_option): Ditto.
3798         (redirect_output_signal): Ditto.
3799
3800         * init.c (commands): Ditto.
3801
3802         * ftp-ls.c (ftp_index): Ditto.
3803
3804         * cookies.c (check_domain_match): Declare the pointer to a literal
3805         string as `const'.
3806
3807 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
3808
3809         * retr.c (fd_read_body): Pass total size to progress_create, not
3810         the remaining amount.
3811
3812 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
3813
3814         * retr.c (fd_read_body): Don't fiddle with "interactive timeout"
3815         if read timeout is unset.
3816
3817 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
3818
3819         * connect.c (bind_local): Don't set the IPV6_V6ONLY option on the
3820         socket.
3821
3822 2003-12-06  Hrvoje Niksic  <hniksic@xemacs.org>
3823
3824         * url.c (url_file_name): Respect the setting of
3825         opt.protocol_directories.
3826
3827         * main.c (main): Only check for ret=='?' when longindex is unset.
3828         (option_data): New option --protocol-directories.
3829
3830 2003-12-06  Hrvoje Niksic  <hniksic@xemacs.org>
3831
3832         * ftp.c (getftp): Ditto.
3833
3834         * http.c (gethttp): Correctly calculate bandwidth as total data
3835         read divided with download time.
3836
3837         * retr.c (fd_read_body): Separate the return values for data
3838         written and read.
3839
3840 2003-12-05  Hrvoje Niksic  <hniksic@xemacs.org>
3841
3842         * http.c (H_REDIRECTED): Respect the HTTP/1.1 "303 See Other"
3843         response code.
3844         Suggested by Dan Razzell.
3845
3846 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
3847
3848         * retr.c (fd_read_body): Report the amount of data *written* as
3849         amount_read.  This is not entirely logical, but that's what the
3850         callers expect, and it's not easy to change.
3851
3852         * ftp.c (ftp_loop_internal): Ditto.
3853
3854         * http.c (http_loop): Be smarter about assigning restval; if we're
3855         in the nth pass of a download, simply use the information we have
3856         about how much data has been retrieved as restval.
3857
3858         * ftp.c (getftp): Ditto for FTP "REST" command.
3859
3860         * http.c (gethttp): When the server doesn't respect range, skip
3861         the first RESTVAL bytes of the read body.  Never truncate the
3862         output file.
3863
3864         * retr.c (fd_read_body): Support skipping initial STARTPOS octets.
3865
3866 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
3867
3868         * http.c (skip_short_body): Renamed skip_body to skip_short_body;
3869         don't bother calling fd_read_body.
3870
3871 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
3872
3873         * retr.c (fd_read_body): Sanitize arguments and document them
3874         better.  Make sure the timer is created and updated only if
3875         necessary.  Updated callers.
3876
3877 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
3878
3879         * http.c (skip_body): New function.
3880         (gethttp): Use it to skip the body of the responses we don't care
3881         to download.  That allows us to reuse the connection.
3882         (gethttp): Trust that the HEAD requests will not generate body
3883         data.
3884
3885         * retr.c (fd_read_body): Don't write to OUT if it's NULL.
3886
3887 2003-11-29  Hrvoje Niksic  <hniksic@xemacs.org>
3888
3889         * http.c (gethttp): Initialize SSL only the first time when SSL
3890         URL is downloaded.
3891
3892 2003-11-29  Hrvoje Niksic  <hniksic@xemacs.org>
3893
3894         * cookies.c (cookie_header): Only generate the contents of the
3895         header, not the leading "Cookie: " or the trailing "\r\n".
3896
3897         * http.c (gethttp): When adding headers specified with `--header',
3898         allow them to override the headers generated by Wget.
3899
3900         * init.c (cmd_spec_header): Made opt.user_headers a vector.
3901
3902         * http.c (request_new): New function.  Returns a request structure
3903         which can be modified in various ways, most notably by adding HTTP
3904         headers to the request.
3905         (request_set_header): New function for adding the header to the
3906         request.  If the header is already available, it gets replaced.
3907         (request_send): Construct and send the request.
3908         (gethttp): Use the request_* functions to generate the request.
3909
3910 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
3911
3912         * http.c (gethttp): Don't include the Proxy-Authorization header
3913         in the request tunneled through proxy.
3914
3915 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
3916
3917         * http.c (gethttp): Use the CONNECT handle to establish SSL
3918         passthrough through non-SSL proxies.
3919
3920 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
3921
3922         * init.c: Don't #include netinet/Winsock stuff.
3923
3924 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
3925
3926         * http.c: Deleted the old functions header_process,
3927         header_extract_number, header_exists, header_strdup,
3928         http_process_range, http_process_none, http_process_type, and
3929         http_process_connection.
3930
3931         * http.c (response_new): New function.
3932         (response_header_bounds): Ditto.
3933         (response_header_copy): Ditto.
3934         (response_header_strdup): Ditto.
3935         (response_status): Ditto.
3936         (gethttp): Use the new response_* functions to parse the response.
3937         Support HTTP/0.9 responses.
3938
3939 2003-11-27  Hrvoje Niksic  <hniksic@xemacs.org>
3940
3941         * progress.c (create_image): Don't calculate ETA if nothing has
3942         been downloaded yet, because it causes division by zero.
3943
3944 2003-11-27  Hrvoje Niksic  <hniksic@xemacs.org>
3945
3946         * connect.c (bind_local): Rename sa_len to addrlen because IRIX
3947         headers define sa_len as a macro.
3948
3949 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
3950
3951         * html-parse.c (convert_and_copy): Remove embedded newlines when
3952         AP_TRIM_BLANKS is specified.
3953
3954 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
3955
3956         * ftp.c: Set con->csock to -1 where rbuf_uninitialize was
3957         previously used.
3958
3959 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
3960
3961         * Makefile.in (http$o): Added the trailing backslash that was
3962         missing.
3963
3964 2003-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
3965
3966         * headers.c: Removed.  The file is no longer relevant, now that no
3967         special handling of headers is done by the rbuf code.  Moved
3968         portions to http.c.
3969
3970 2003-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
3971
3972         * rbuf.c: Removed.
3973
3974         * ftp-basic.c (ftp_response): Use fd_read_line.  No longer use
3975         struct rbuf.  Updated all callers.
3976
3977         * http.c (gethttp): Use fd_read_head to read all the headers in
3978         one go.
3979         (next_header): New function.
3980
3981         * retr.c (fd_read_line): New function: reads a line from FD,
3982         leaving the rest of the data unread.
3983         (fd_read_head): New function.
3984
3985         * connect.c (fd_peek): New function, implements peeking.
3986         (poll_internal): New function.
3987         (fd_read): Use it.
3988         (fd_write): Ditto.
3989         (fd_peek): Ditto.
3990         (fd_register_transport): Allow registering a "peeker" callback.
3991
3992 2003-11-20  Hrvoje Niksic  <hniksic@xemacs.org>
3993
3994         * connect.c: Renamed xread/xwrite/xclose to
3995         fd_read/fd_write/fd_close.  The "x" prefix is not appropriate
3996         because the semantics have diverged from read/write/close too
3997         significantly.  Updated all callers.
3998
3999 2003-11-20  Hrvoje Niksic  <hniksic@xemacs.org>
4000
4001         * connect.c (sock_write): It's not necessary to initialize RES.
4002
4003 2003-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
4004
4005         * main.c (main): Don't reference opt.ipv4_only and opt.ipv6_only
4006         if IPv6 is disabled.
4007
4008 2003-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
4009
4010         * connect.c (socket_has_inet6): Only compile it if IPv6 is enabled
4011         and AI_ADDRCONFIG is missing.
4012
4013 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
4014
4015         * gen_sslfunc.c (ssl_init_prng): Warn the user when using a weak
4016         random seed.
4017
4018 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
4019
4020         * host.c (address_list_contains): Renamed address_list_find to
4021         address_list_contains because its result is boolean.
4022
4023 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
4024
4025         * connect.c (select_fd): Return 1 if select is not available.
4026
4027 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
4028
4029         * connect.c (connect_to_host): Don't reference address list after
4030         releasing it.
4031
4032 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
4033
4034         * main.c (print_help): Fix alignment of FTP options output.
4035
4036 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
4037
4038         * host.c (lookup_host): Check for the ability to create IPv6
4039         sockets here.
4040
4041         * init.c (defaults): Don't auto-set --inet4-only on IPv6-less
4042         systems.
4043
4044 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
4045
4046         * main.c (print_help): Fix typo in `-O' help message.  Fix docs of
4047         -Y/--proxy.  Fix docs of `--cookies' and `--glob'.  Improve docs
4048         of --convert-links.  Fix docs of SSL options.
4049
4050 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
4051
4052         * ftp-basic.c: Don't include <arpa/inet.h> and others because
4053         they're no longer needed.
4054
4055 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
4056
4057         * main.c (main): Don't allow setting of both opt.ipv4_only and
4058         opt.ipv6_only.
4059
4060         * init.c (defaults): Mark opt.ipv4_only specially when set
4061         automatically.
4062
4063 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
4064
4065         * host.c (lookup_host): Use AI_ADDRCONFIG only if the family is
4066         unspecified.  This ensures that specifying `--no-inet4' on systems
4067         where IPv6 resolves, but doesn't work behaves the same regardless
4068         of the availability of AI_ADDRCONFIG.
4069
4070 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
4071
4072         * host.c: Don't refer to the now-removed function
4073         forget_host_lookup in the documentation of lookup_host.
4074
4075 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
4076
4077         * http.c (persistent_available_p): Correctly specify the endpoint
4078         argument to socket_ip_address.
4079         (gethttp): When printing the "reusing connection to..." message,
4080         specify the host name of the reused connection, not the current
4081         host name.  That makes more sense because it provides a useful
4082         piece of information -- we know to which host we're supposed to
4083         connect anyway!
4084
4085 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
4086
4087         * init.c: Make sure the options are in alphabetic order!
4088
4089         * host.c (lookup_host): Merge lookup_host_passive and lookup_host
4090         after all -- having both would result in some code duplication.
4091         (lookup_host): Set hints.ai_family to AF_INET if ipv4_only is
4092         requested.  Likewise, set it to AF_INET6 for ipv6_only.  Specify
4093         AI_ADDRCONFIG where available.
4094         (lookup_host): New flag LH_REFRESH that specifies that a cached
4095         entry for HOST should be refreshed.
4096         (cache_query): New function.
4097         (cache_store): Ditto.
4098         (cache_remove): Ditto.
4099         (forget_host_lookup): No longer necessary, replaced with static
4100         function cache_remove.
4101
4102 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
4103
4104         * main.c: Enable -4 and -6 only if IPv6 is enabled.
4105
4106 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
4107
4108         * connect.c (register_transport): Renamed from register_extended.
4109         Explain the intended usage.
4110
4111 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
4112
4113         * url.c (uri_merge): Merging "foo" and "bar" should result in
4114         "bar", not in "foo/bar".
4115         (path_simplify): Don't remove empty path elements; don't
4116         special-case leading slash.
4117         (path_simplify): Don't swallow ".."'s at the beginning of string.
4118         E.g. simplify "foo/../../bar" as "../bar", not as "bar".
4119         (append_uri_pathel): Defang ".." path element upon encountering
4120         it.
4121
4122 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4123
4124         * http.c (persistent_available_p): Don't attempt to talk to two
4125         different SSL sites over the same secure connection.
4126
4127 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4128
4129         * http.c (gethttp): Ditto.
4130
4131         * ftp.c (getftp): Use retryable_socket_connect_error instead of
4132         CONNECT_ERROR.
4133
4134         * wget.h (CONNECT_ERROR): Removed.
4135
4136         * connect.c (retryable_socket_connect_error): New function instead
4137         of unsupported_socket_family_error.
4138
4139 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4140
4141         * wget.h (CONNECT_ERROR): Use it.
4142
4143         * connect.c (unsupported_socket_family_error): New function.
4144
4145 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4146
4147         * connect.c (bind_local): Renamed bindport to bind_local; return
4148         the socket directly.  Updated callers.
4149         (accept_connection): Renamed acceptport to accept_connection;
4150         return the created socket directly.  Updated callers.
4151
4152 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4153
4154         * init.c (defaults): Turn on opt.ipv4_only if we're compiling with
4155         IPv6, and AI_ADDRINFO is not available, and AF_INET6 sockets can't
4156         be created.
4157
4158 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4159
4160         * host.c (lookup_host): Document the fact that the addresses are
4161         returned in order.
4162
4163 2003-11-12  Hrvoje Niksic  <hniksic@xemacs.org>
4164
4165         * utils.c: Use limits.h only where available.
4166
4167         * hash.c: Use INVALID_PTR and INVALID_PTR_BYTE.  Include limits.h.
4168
4169 2003-11-11  Hrvoje Niksic  <hniksic@xemacs.org>
4170
4171         * main.c: Added options --inet4-only and --inet6-only.
4172
4173 2003-11-11  Hrvoje Niksic  <hniksic@xemacs.org>
4174
4175         * host.c (host_errstr): Use the more standard message "Unknown
4176         host".
4177
4178 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
4179
4180         * connect.c (connect_to_host): Use that flag to decide whether to
4181         re-resolve the host name.
4182
4183         * host.c (struct address_list): Added a flag that maintains
4184         whether the connection worked at some point.
4185
4186 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
4187
4188         * host.c (lookup_host): Special-case the numeric addresses only in
4189         the non-IPv6 case.
4190
4191 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
4192
4193         * connect.c (resolve_bind_address): Call lookup_host_passive.
4194         Make sure that opt.bind_address is resolved only once.
4195
4196         * host.c (lookup_host_passive): New function, handles "passive"
4197         lookups.
4198         (lookup_host): Remove the passive flags.  Remove the
4199         family-related flags -- use ip_default_family instead.
4200
4201 2003-11-09  Hrvoje Niksic  <hniksic@xemacs.org>
4202
4203         * html-url.c: Get URLs from <object data="...">.
4204
4205 2003-11-09  Hrvoje Niksic  <hniksic@xemacs.org>
4206
4207         * main.c (option_data): Specify the command to use for --mirror.
4208
4209 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4210
4211         * cookies.c (cookie_handle_set_cookie): Specify exact match for
4212         unspecified domains.
4213
4214 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4215
4216         * main.c (main): Removed one-letter options `-C', `-g', `-G', and
4217         `-s'.
4218
4219 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4220
4221         * main.c (main): Add --dont-remove-listing for backward
4222         compatibility with previous versions.
4223         (print_help): Fix typo, spotted by Dennis Smit.
4224
4225 2003-11-08  Gisle Vanem  <giva@bgnett.no>
4226
4227         * ftp-basic.c: Support Windows-2000 ftp servers. Win-2000 *is*
4228         Win-NT 5.0 so calling it ST_WINNT is okay I guess.
4229
4230 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4231
4232         * progress.c (update_speed_ring): Clear the speed ring when the
4233         download stalls.
4234
4235         * retr.c (get_contents): Specify 0.95s read timeout, so that the
4236         progress gauge can be updated even when data arrives very slowly
4237         or stalls.
4238
4239 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4240
4241         * utils.c (wtimer_allocate): Bless the use of wtimer_read on a
4242         timer that has merely been allocated because get_contents() does
4243         that.
4244         (wtimer_update): Abort if the timer is not initialized.
4245
4246 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4247
4248         * retr.c (get_contents): Pass the timer to limit_bandwidth().
4249
4250         * utils.c (wtimer_update): New function instead of wget_elapsed;
4251         just update the timer, but don't return anything.
4252         (wtimer_read): Read and return the last known value of the timer.
4253
4254 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4255
4256         * http.c (persistent_available_p): Instead of matching all the
4257         addresses of HOST and last host, determine the peer's IP address
4258         with socket_ip_address and see if that address is one of those
4259         HOST resolves to.
4260
4261         * host.c (address_list_match_all): Removed.
4262         (address_list_find): New function, finds an IP address in the
4263         address list.
4264
4265         * ftp.c (ftp_do_pasv): Get the peer's address here, and pass it to
4266         ftp_epsv so it doesn't need to call getpeername.
4267
4268         * ftp-basic.c (ftp_port): Use socket_ip_address instead of
4269         getpeername.
4270         (ftp_lprt): Ditto.
4271
4272         * connect.c (socket_ip_address): Replaces conaddr, generalized to
4273         either get peer's or local address.
4274         (sockaddr_get_data): Made local to this file.
4275
4276 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4277
4278         * hash.c (HASH_POSITION): Explicitly accept the hash function.
4279         (grow_hash_table): Extract ht->hash_function outside the loop.
4280         (hash_table_remove): Ditto.
4281         (hash_table_clear): Fill entries with 0xff to clear them.
4282         (hash_table_remove): Mark entries as deleted with the correct
4283         marker.
4284
4285 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4286
4287         * http.c (persistent_available_p): No reason for the host lookup
4288         to be silent -- it's a lookup like any other.
4289
4290 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4291
4292         * connect.c (register_extended): Check that fd >= 0.
4293
4294 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
4295
4296         * connect.c (LAZY_RETRIEVE_INFO): Set LAST_INFO.
4297
4298 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
4299
4300         * hash.c (NON_EMPTY): Use the all-bit-set value as the marker that
4301         the field is empty.  This allows NULL pointer and 0 value to be
4302         used as keys, which is necessary for the connect.c code to work
4303         when fd==0.
4304         (hash_table_new): Fill mappings with 0xff.
4305         (grow_hash_table): Ditto.
4306
4307 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
4308
4309         * url.c (url_parse): Allow empty ports.
4310
4311 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
4312
4313         * main.c (print_help): Break the help string into multiple chunks.
4314         (cmdline_option): New option handler OPT_FUNCALL.  Generalized
4315         HANDLE_CMD to generic DATA.
4316         (option_data): Use the new OPT_FUNCALL feature.
4317
4318 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
4319
4320         * log.h: Declare log_init, log_close, and
4321         log_request_redirect_output here.
4322
4323 2003-11-05  Dennis Smit  <ds@nerds-incorporated.org>
4324
4325         * main.c: (main): added --preserve-permissions option.
4326
4327         * ftp.c (ftp_retrieve_list): added support for
4328         --preserve-permissions option.
4329
4330         * init.c: added support for --preserve-permission option.
4331
4332         * option.h: added support for --preserve-permission option.
4333
4334 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
4335
4336         * main.c (init_switches): New function.  Convert option_data to
4337         long_options and short_options, which can be fed to getopt_long.
4338         (main): Execute command-line options by consulting option_data.
4339
4340 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
4341
4342         * gen_sslfunc.c (ssl_read): Implement a more correct check for
4343         EINTR.
4344         (ssl_write): Ditto.
4345         (init_ssl): Use a global SSL context.
4346
4347 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
4348
4349         * connect.c (xclose): Free INFO even if it doesn't provide a
4350         closer.
4351
4352 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
4353
4354         * connect.c: Updated all callers of
4355         iread/ssl_iread/iwrite/ssl_iwrite to use xread and xwrite instead.
4356
4357         * rbuf.h (struct rbuf): Removed the SSL member because SSL is
4358         handled automatically by xread.
4359
4360         * hash.c (ptrhash): Made private.
4361         (ptrcmp): Ditto.
4362         (inthash): Removed.
4363
4364         * connect.c (select_fd): Don't set errno, leave it to the caller.
4365
4366         * gen_sslfunc.c (connect_ssl): Use register_extended to register
4367         SSL callbacks for communication with SSL-enabled endpoints.
4368         (ssl_read): New function.
4369         (ssl_write): Ditto.
4370         (ssl_poll): Ditto.
4371         (ssl_close): Ditto.
4372
4373         * connect.c (register_extended): New function -- register
4374         callbacks for basic socket operations.
4375         (xread): Ditto.
4376         (xwrite): Ditto.
4377         (xclose): Ditto.
4378         (sock_read): New function, default implementation for reading.
4379         (sock_write): Ditto for writing.
4380         (sock_poll): Ditto for polling.
4381         (sock_close): Ditto for closing.
4382
4383 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
4384
4385         * connect.c (bindport): Fix compilation under pre-C99 compilers.
4386
4387 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
4388
4389         * connect.c (connect_to_ip): More compact error checking.
4390         (bindport): Don't treat failed setsockopt as a fatal error.
4391
4392 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
4393
4394         * connect.c (resolve_bind_address): Use a more accurate error
4395         message -- we're not binding to ANY, we're disabling bind
4396         altogether.
4397
4398 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
4399
4400         * cookies.c (save_cookies_mapper): Respect the setting of
4401         keep-session-cookies.
4402         (cookie_jar_load): Import session cookies.
4403         Based on code submitted by Nicolas Schodet.
4404
4405         * utils.c (datetime_str): Use information in TM when it's
4406         non-NULL.
4407
4408         * main.c (main): New option `--keep-session-cookies'.
4409
4410 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
4411
4412         * Makefile.in (realclean): Delete config.h.in.
4413
4414 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
4415
4416         * config-post.h: New file, included from now autogenerated
4417         config.h.in.
4418
4419 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
4420
4421         * progress.c (progress_handle_sigwinch): Don't call
4422         determine_screen_width() from the signal handler.  Instead, just
4423         set a volatile variable.
4424         (bar_create): Check whether SIGWINCH was received.
4425         (bar_update): Ditto.
4426
4427         * sysdep.h: Define SYSTEM_FNMATCH only if HAVE_FNMATCH_H is true.
4428
4429 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4430
4431         * utils.c (xsleep): New function.  Uses nanosleep where available,
4432         resuming sleeps interrupted by signals.  Updated callers of sleep
4433         and usleep to use xsleep.
4434
4435 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4436
4437         * ftp-basic.c (ftp_login): Remove shadowing (and bogus)
4438         declaration of SEED.
4439
4440 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4441
4442         * log.c (logvprintf): Documented better.  Renamed to
4443         log_vprintf_internal to avoid confusion with the public API
4444         functions logprintf and logputs.
4445
4446 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4447
4448         * wget.h (N_): Don't parenthesize argument.
4449
4450 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4451
4452         * host.h (ADDRESS_IPV4_DATA): Don't take the address of in.s_addr
4453         because that doesn't work on machines that define it as bitfield.
4454
4455 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4456
4457         * connect.c (select_fd): Generalize the third argument into WAIT,
4458         so that the caller can request waiting for both read and write.
4459         Updated callers.
4460
4461 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
4462
4463         * html-url.c (cleanup_html_url): Destroy the hash tables, don't
4464         just call free on them.
4465         (init_interesting): Use hash_table_put instead of string_set_add
4466         because we don't need the strdup that the latter function
4467         performs.
4468
4469         * init.c (cleanup): Don't pass NULL to cookie_jar_delete.
4470
4471         * xmalloc.c (xfree_real): Abort when passed a NULL pointer.
4472         (xfree_debug): Print at the file and line of the offending call to
4473         free.
4474
4475 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
4476
4477         * wget.h: Retired the `boolean' type.  Moved the DEFAULT_LOGFILE
4478         define to log.h.  Moved the INFINITE_RECURSION define to recur.h.
4479
4480         * xmalloc.h: Renamed FREE_MAYBE to xfree_null and moved the
4481         definition from wget.h to xmalloc.h.
4482
4483 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
4484
4485         * html-parse.c (decode_entity): New function; split the decoding
4486         of entities here.
4487         (convert_and_copy): Use it to decode entities.
4488         (decode_entity): Handle the &apos entity.
4489         (decode_entity): Don't decode Latin 1 numeric entities.  Don't
4490         decode &#0.
4491
4492 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
4493
4494         * ftp-opie.c (calculate_skey_response): Use uint32_t instead of
4495         `unsigned long' for the cheksum array.  Document the function.
4496
4497 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
4498
4499         * connect.c (acceptport): Don't call select_fd when timeout is not
4500         requested.
4501
4502 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
4503
4504         * host.c: Removed the ip_default_family global variable.
4505
4506         * host.c (lookup_host): Document the function.  Fixed declaration
4507         of VEC.
4508
4509 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
4510
4511         * various: Use new macros xnew, xnew0, xnew_array, and xnew0_array
4512         in various places.
4513
4514 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
4515
4516         * wget.h: Move declarations of malloc and logging code to
4517         xmalloc.h and log.h respectively to unclutter this file.
4518         (STRDUP_ALLOCA): Made it side-effect free.
4519
4520         * xmalloc.h: New files.  Define macros xnew, xnew0, xnew_array,
4521         and xnew0_array.
4522
4523         * xmalloc.c: New file.  Move the xmalloc routines here.
4524
4525 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
4526
4527         * connect.c (sockaddr_set_data): Remove the broken code that
4528         checked for NULL address.
4529
4530 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
4531
4532         * host.c (address_list_from_single): Removed.
4533         (address_list_from_ipv4_addresses): Renamed from
4534         address_list_from_vector.
4535
4536 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
4537
4538         * sysdep.h (CLOSE): Don't call close on file descriptors less than
4539         0, i.e. on uncreated sockets.
4540
4541         * connect.c (resolve_bind_address): Work on struct sockaddr
4542         directly.
4543         (connect_to_host): Replacement for connect_to_many.  Resolve HOST
4544         and connect to any of its addresses.  If we can't connect and the
4545         host name lookup was cached, try to resolve it again.  This should
4546         fix problems with hosts behind dynamic DNS.  Updated all callers.
4547         (connect_to_ip): Replacement for connect_to_one.  Removed SILENT;
4548         added the argument PRINT instead.  Updated all callers.
4549         (set_connection_host_name): Removed.
4550
4551         * host.c (address_list_address_at): New function instead of
4552         address_list_copy_one. It returns a pointer to ip_address *, so
4553         it's not necessary to copy the data.
4554         (address_list_cached_p): New function.
4555         (forget_host_lookup): Ditto.
4556
4557         * connect.c: Got rid of the MSOCK global variable.  Made bindport
4558         return the local socket it creates.  Added a new argument to
4559         acceptport, the socket to call accept on.  Updated callers.
4560         (closeport): Removed.
4561
4562         * connect.c: Moved the sockaddr code from host.c to this file,
4563         because most of that stuff is used for connecting, and has nothing
4564         to do with host names anyway.
4565         (sockaddr_set_data, sockaddr_get_data): New functions, replace the
4566         old sockaddr_set_address, sockaddr_set_port, sockaddr_get_address,
4567         and sockaddr_get_port.
4568
4569 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
4570
4571         * sysdep.h: Use `S >= 8' rather than `S == 8' when looking for
4572         large integers.
4573
4574 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
4575
4576         * url.c (append_uri_pathel): New argument ESCAPED_P that says
4577         whether [B, E) is to be treated as URL-escaped or not.  If
4578         ESCAPED_P is false, don't unescape the region.
4579         (url_file_name): u->file is not URL-escaped.
4580
4581 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
4582
4583         * retr.c (retrieve_from_file): Use retrieve_tree for
4584         page-requisites.
4585
4586         * main.c (main): Don't define opt.recursive when -p is used.
4587         Instead, make sure that recursion is used for HTTP in that case.
4588
4589 2003-10-29  Hrvoje Niksic  <hniksic@xemacs.org>
4590
4591         * host.h: Defined accessors for elements of ip_address.  Updated
4592         all callers.
4593         (address_list_match_all): Use memcmp in the non-IPv6 case.
4594
4595         * wget.h (CONNECT_ERROR): Don't retry connecting if connect()
4596         returned EAFNOSUPPORT.
4597
4598 2003-10-27  Mauro Tortonesi <mauro@deepspace6.net>
4599
4600         * connect.h: changed bindport prototype and added the related
4601         BIND_ON_IPV4_ONLY and BIND_ON_IPV6_ONLY flags.
4602
4603         * connect.c: changed bindport and resolve_bind_address to allow
4604         protocol-version specific DNS resolution. modified conaddr,
4605         acceptport and connect_to_one to make use of struct
4606         sockaddr_storage and of the new ip_address structure.
4607
4608         * ftp-basic.c: added LPRT/LPSV (RFC1639) support, refactored
4609         PORT/PASV (RFC959) and EPRT/EPSV (RFC2428) support code.
4610
4611         * ftp.c: added the ftp_do_port and ftp_do_pasv functions to
4612         handle FTP over IPv6.
4613
4614         * ftp.h: changed prototype of ftp_epsv and added prototypes for
4615         ftp_lpsv, ftp_lprt and ftp_eprt.
4616
4617         * host.c: renamed the
4618         wget_sockaddr_set_address and wget_sockaddr_get_addr, and
4619         wget_sockaddr_{s,g}et_port couples to sockaddr_{s,g}et_address and
4620         sockaddr_{g,s}et_port respectively.  changed
4621         address_list_match_all, address_list_from_addrinfo sockaddr_len,
4622         pretty_print_address, lookup_host, sockaddr_{s,g}et_address and
4623         sockaddr_{g,s}et_port to make use of struct sockaddr_storage and
4624         of the new ip_address structure.  removed map_ipv4_to_ip and
4625         map_ip_to_ipv4.
4626
4627         * host.h: redefined structure ip_address and removed structure
4628         wget_sockaddr.
4629
4630 2003-10-26  Hrvoje Niksic  <hniksic@xemacs.org>
4631
4632         * sysdep.h: Include inttypes.h where available.
4633
4634         * host.c: Switch from u_int32_t to uint32_t.
4635
4636 2003-10-26  Hrvoje Niksic  <hniksic@xemacs.org>
4637
4638         * netrc.c (parse_netrc): Reset the QUOTE flag after the closing
4639         quote.
4640
4641 2003-10-25  Hrvoje Niksic  <hniksic@xemacs.org>
4642
4643         * url.c (is_valid_ipv6_address): Reformat to GNU coding style.
4644         Use enums for NS_IN* constants.  Use ISXDIGIT.
4645
4646         * convert.c (construct_relative): Document better how the function
4647         works.
4648
4649 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
4650
4651         * config.h.in: Deploy preprocessor magic to avoid Ultrix's
4652         <netdb.h> include <bitypes.h> which defines its own u_int32_t.
4653         Reported by Bernhard Simon.
4654
4655 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
4656
4657         * version.c: Bump version.
4658
4659 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
4660
4661         * url.c: Ditto.
4662
4663         * html-parse.c (advance_declaration): Don't use trailing comma in
4664         enum because older compilers don't support it.
4665
4666         * utils.c: Don't redefine HAVE_SIGSETJMP.
4667
4668 2003-10-16  Hrvoje Niksic  <hniksic@xemacs.org>
4669
4670         * convert.c (construct_relative): Don't handle absolute files
4671         specially -- for example, -P/tmp/foo shouldn't imply that
4672         converted files must refer to "/tmp/foo/..."!
4673
4674 2003-10-15  Hrvoje Niksic  <hniksic@xemacs.org>
4675
4676         * http.c: Consider status 307 a valid redirect.
4677
4678 2003-10-15  Philip Stadermann  <philip.stadermann@credativ.de>
4679
4680         * ftp.c (ftp_retrieve_glob): Correctly loop through the list whose
4681         elements might have been deleted.
4682
4683 2003-10-13  Hrvoje Niksic  <hniksic@xemacs.org>
4684
4685         * html-url.c (tag_handle_meta): Set the Refresh link to expect
4686         HTML.
4687         (append_one_url): Renamed to append_url.
4688
4689 2003-10-13  Hrvoje Niksic  <hniksic@xemacs.org>
4690
4691         * sysdep.h: Only define u_int32_t.
4692
4693 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
4694
4695         * utils.c (large_int_to_string): Use snprintf() to print the
4696         number.  This will work even on systems where libc doesn't
4697         understand %lld, but the compiler does, because it will use our
4698         snprintf replacement.
4699
4700         * init.c (parse_bytes_helper): New function.
4701         (cmd_bytes): Use it to parse bytes, but cast the result to long.
4702         (cmd_bytes_large): Ditto, but store the result to LARGE_INT.  Used
4703         for --quota so that --quota=10G works even on machines without
4704         long long.
4705
4706         * options.h (struct options): Declare quota as LARGE_INT.
4707
4708         * retr.c (downloaded_exceeds_quota): Removed.
4709         (downloaded_increase): Ditto.
4710         (total_downloaded_bytes): New variable, replaces opt.downloaded,
4711         which was the wrong place for it anyway.  Updated callers of
4712         downloaded_exceeds_quota and downloaded_increase to check this
4713         variable directly.
4714
4715         * sysdep.h: Get rid of VERY_LONG_TYPE.  Use LARGE_INT for the same
4716         purpose, defined as `long', `long long' or `double', depending on
4717         size of long and whether long long is available.
4718
4719 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
4720
4721         * sysdep.h: Also check size of short for int32_t.
4722
4723 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
4724
4725         * host.c (lookup_host): Use u_int32_t to store the result of
4726         inet_addr().  That removes the need for offset fiddling, caring
4727         about endian-ness, etc.
4728
4729         * sysdep.h: Define int32_t and u_int32_t if not available.
4730
4731 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
4732
4733         * ftp-basic.c (ftp_epsv): Use socklen_t * as the third argument to
4734         getpeername.
4735
4736         * config.h.in: Define socklen_t stub.
4737
4738         * host.c (sockaddr_len): Return socklen_t.
4739
4740         * connect.c (conaddr): Use socklen_t as the third argument to
4741         accept, getsockname, and connect.
4742
4743 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
4744
4745         * recur.c (retrieve_tree): Don't descend into documents that are
4746         not expected to contain HTML, regardless of their content-type.
4747
4748         * html-url.c (tag_url_attributes): Record which attributes are
4749         supposed to yield HTML links that can be followed.
4750         (tag_find_urls): Propagate that information to the caller through
4751         struct urlpos.
4752
4753 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
4754
4755         * hash.c (find_mapping): Return the next available mapping when
4756         the key is not found, not NULL.
4757         (hash_table_put): Use find_mapping to find the storage for the new
4758         data.
4759         (hash_table_put): Grow the table before exceeding maximum
4760         fullness, not afterwards.
4761
4762 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
4763
4764         * hash.c (hash_table_new): Slightly change the meaning of the
4765         first parameter.  Instead of being the minimum initial size, it is
4766         now the minimum number of items that the hash table can take
4767         without needing to resize.
4768
4769 2003-10-09  Hrvoje Niksic  <hniksic@xemacs.org>
4770
4771         * html-url.c (init_interesting): Initialize interesting_tags and
4772         interesting_attributes as hash tables.  This simplifies the code
4773         immensely because hash tables handle allocation and remove
4774         duplicates automatically.
4775         (find_tag): Removed.
4776         (collect_tags_mapper): Instead of calling find_tag, simply get the
4777         entry from interesting_tags hash table, which is both simpler and
4778         faster.
4779
4780 2003-10-09  Hrvoje Niksic  <hniksic@xemacs.org>
4781
4782         * hash.c (hash_table_get): Declare hash-table argument as const.
4783         (find_mapping): Ditto.
4784         (hash_table_get_pair): Ditto.
4785         (hash_table_contains): Ditto.
4786         (hash_table_count): Ditto.
4787
4788 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
4789
4790         * html-url.c (get_urls_html): Parse the appropriate flags to
4791         html-parse.c.
4792
4793         * html-parse.c (map_html_tags): Accept FLAGS from the caller
4794         instead of examining OPT.
4795
4796 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
4797
4798         * html-url.c (find_tag): Switch to binary search.
4799
4800 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
4801
4802         * main.c (print_help): Fix typo; stured -> stored.
4803
4804 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
4805
4806         * getopt.c: Add definitions of getopt_long and getopt_long_only.
4807
4808 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
4809
4810         * config.h.in: Renamed DEBUG to ENABLE_DEBUG.  ENABLE_DEBUG is, I
4811         think, a better name, because it implies that debugging output is
4812         merely possible, not "on by default", as might be construed from
4813         just DEBUG.
4814
4815 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
4816
4817         * ftp.c (has_insecure_name_p): Define it here.
4818
4819         * utils.c (has_wildcards_p): Define it here.
4820
4821         * sysdep.h: Declare fnmatch-related macros here, if not using
4822         system fnmatch().  Update .c files to not declare fnmatch.h
4823         directly.
4824
4825         * cmpt.c (fnmatch): Moved here.  Use it only under non-GNU libc.
4826
4827 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
4828
4829         * getopt.c: Newer version, imported from Free libit.
4830
4831 2003-10-07  Hrvoje Niksic  <hniksic@xemacs.org>
4832
4833         * cookies.c (struct cookie): Remove unused backpointer to cookie
4834         jar.
4835
4836 2003-10-07  Hrvoje Niksic  <hniksic@xemacs.org>
4837
4838         * cmpt.c (memmove): Comment out, since it's no longer used.
4839
4840         * cookies.c (cookie_jar_generate_cookie_header): Allocate room for
4841         chains in one pass.
4842         (find_chains_of_host): Assume that the caller has allocated DEST
4843         to be sufficiently large to take all the data.
4844         (eliminate_dups): Run through the array and eliminate dups on the
4845         fly instead of using memmove.
4846         (cookie_jar_process_set_cookie): Free cookie->domain before
4847         re-setting it.
4848
4849 2003-10-05  Gisle Vanem  <giva@bgnett.no>
4850
4851         * mswindows.c (set_sleep_mode): Fix type of
4852         _SetThreadExecutionState.
4853
4854 2003-10-05  Hrvoje Niksic  <hniksic@xemacs.org>
4855
4856         * utils.c (file_size): Return -1 if fopen() returns NULL.  Prior
4857         to this patch, wget --post-file=nosuchfile dumped core.
4858
4859 2003-10-04  Gisle Vanem  <giva@bgnett.no>
4860
4861         * mswindows.c (run_with_timeout): Use WaitForSingleObject to wait
4862         for thread termination.
4863
4864 2003-10-04  Hrvoje Niksic  <hniksic@xemacs.org>
4865
4866         * log.c: Use `...' in function definitions; ansi2knr will convert
4867         them to va_dcl.  This allowed removal of the ugly VA_START_1 and
4868         VA_START_2 macros.
4869
4870 2003-10-03  Gisle Vanem  <giva@bgnett.no>
4871
4872         * connect.c: And don't include them here.
4873
4874         * mswindows.h: Include winsock headers here.
4875
4876 2003-10-03  Hrvoje Niksic  <hniksic@xemacs.org>
4877
4878         * html-parse.c (convert_and_copy): Move variable declarations
4879         before statements.
4880
4881 2003-10-02  Gisle Vanem  <giva@bgnett.no>
4882         
4883         * mswindows.c (run_with_timeout): For Windows: Run the 'fun' in a
4884         thread via a helper function. Continually query the thread's
4885         exit-code until finished or timed out.
4886
4887 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
4888
4889         * wget.h (XMALLOC_ARRAY): Removed.
4890         (ALLOCA_ARRAY): Ditto.
4891
4892         * html-parse.c: Renamed alloca_p to resized.
4893         (GROW_ARRAY): Renamed DO_REALLOC_FROM_ALLOCA to GROW_ARRAY and
4894         returned it to html-parse.c, since nothing else was using it.
4895
4896 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
4897
4898         * retr.c (retrieve_url): Initialize DUMMY storage for DT.  Caught
4899         by valgrind.
4900
4901 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
4902
4903         * html-parse.c (convert_and_copy): Handle numeric entities in
4904         hexadecimal, &#xHH.
4905         (convert_and_copy): Copy the contents directly to the pool without
4906         a stack-allocated intermediary.
4907
4908 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
4909
4910         * utils.c (alarm_set): New function; use either setitimer or alarm
4911         to set up the alarm.
4912         (alarm_cancel): New function; cancel the alarm set up by
4913         alarm_set.
4914         (run_with_timeout): Use them.
4915
4916 2003-10-01  Hrvoje Niksic  <hniksic@xemacs.org>
4917
4918         * url.c (url_parse): Don't leak memory when a reencoded URL turns
4919         out to be invalid.
4920
4921         * url.c (parse_errors): Mark error messages for translation.
4922         (url_error): Translate error messages returned to the caller.
4923
4924 2003-10-01  Hrvoje Niksic  <hniksic@xemacs.org>
4925
4926         * ftp.c (ftp_loop_internal): Initialize TMRATE to NULL to shut up
4927         the compiler.
4928
4929 2003-09-26  Gisle Vanem  <giva@bgnett.no>
4930
4931         * src/mswindows.c: Added ws_percenttitle() showing progress in the
4932         window titlebar. Called from retr.c. Secured ws_mypath().
4933
4934         * windows/config.h.ms: alloca() prototype not needed.  Removed
4935         "#undef ENABLE_NLS"; should be in Makefile IMHO. Moved
4936         WGET_USE_STDARG from mswindows.h to config.ms.h because of #ifdef
4937         in log.c. (MSVC's vararg.h and stdarg.h are incompatible).
4938
4939 2003-09-29  Aaron Hawley <Aaron.Hawley@uvm.edu>
4940
4941         * ftp.c (getftp): --spider option should now work with FTP
4942         downloads.
4943         (ftp_loop_internal): quiet reports and calculations of downloads
4944         when --spider option set, nor try deleting when --delete-after
4945         also set.
4946         (ftp_loop): --spider will skip HTML-ification of .listing file.
4947
4948 2003-09-26  Gisle Vanem  <giva@bgnett.no>
4949
4950         * mswindows.c (read_registry): Removed.
4951         (set_sleep_mode): New function.
4952         (windows_main_junk): Call it.
4953
4954 2003-09-26  Gisle Vanem  <giva@bgnett.no>
4955
4956         * mswindows.c (read_registry): Fix invocation of registry
4957         functions.
4958
4959         * mswindows.c (read_registry): Condition definitions of sleep and
4960         usleep with not HAVE_SLEEP and HAVE_USLEEP respectively.  Define
4961         HAVE_SLEEP and HAVE_USLEEP under __DMC__.
4962
4963 2003-09-24  Hrvoje Niksic  <hniksic@xemacs.org>
4964
4965         * url.c (url_escape_1): Revert unintentional change to lowercase
4966         xdigit escapes.
4967         (url_escape_dir): Document that this function depends on the
4968         output of url_escape_1.
4969
4970 2003-09-23  Hrvoje Niksic  <hniksic@xemacs.org>
4971
4972         * progress.c (create_image): Print the current ETA if we're done
4973         with the download.
4974         (create_image): Change '-' display char to '+' in the progress bar.
4975
4976         * Makefile.in (clean): Remove .libs.
4977
4978 2003-09-23  Hrvoje Niksic  <hniksic@xemacs.org>
4979
4980         * cookies.c (struct cookie): New flag domain_exact.
4981         (update_cookie_field): Skip leading dot in domain.
4982         (find_matching_chains): Match numeric addresses exactly; don't
4983         needlessly copy HOST to the stack.
4984         (matching_cookie): Added argument HOST.  If cookie->domain_exact
4985         is set, check that HOST is equal to cookie->domain.
4986         (cookie_jar_load): Only use TAB as delimiter.  Document the
4987         meaning of DOMAIN-FLAG.  Skip leading dot in domain.
4988         (cookie_jar_load): Don't ignore DOMAIN-FLAG -- instead, set
4989         domain_exact to true if DOMAIN-FLAG is false.
4990         (save_cookies_mapper): If domain_exact is false, prepend the
4991         domain with dot, like Mozilla does.
4992
4993 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
4994
4995         * progress.c (create_image): Print the initial part of the
4996         download with '-' characters, analogous to how dot progress prints
4997         the initial part with ','.
4998
4999         * hash.c (ptrhash): New function.
5000         (ptrcmp): Ditto.
5001         (hash_table_new): Default to identity hash table.
5002
5003 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
5004
5005         * safe-ctype.h (_sch_test): The cast of BIT to unsigned char was
5006         broken -- _sch_istable bitmasks are 16-bit, not 8-bit!  Cast BIT
5007         to unsigned short instead.
5008
5009 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
5010
5011         * url.c (path_simplify): Instead of calls to memmove, handle "./"
5012         and "../" by advancing pointers.
5013
5014 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
5015
5016         * retr.c (getproxy): Moved from url.c.
5017
5018         * convert.c: Split off link conversion from url.c into separate
5019         file.  Also included the book-keeping stuff from recur.c.
5020
5021 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5022
5023         * init.c: Improved documentation of functions.
5024         (cmd_boolean): Attempt to make code that tries to avoid calling
5025         strcmp for "speed" a bit more readable.
5026
5027         * init.c (simple_atof): Report error on encountering non-digit,
5028         non-"." character.
5029         (simple_atoi): Replacement for myatoi(), calling interface
5030         compatible with simple_atof.  Updated myatoi's callers.
5031
5032 2003-09-21  Bertrand Demiddelaer  <bert@b3rt.org>
5033
5034         * url.c (path_simplify): Would read two bytes past the end of the
5035         string in the "./" case.
5036
5037 2003-09-21  Matthew J. Mellon  <mellon@tymenet.com>
5038
5039         * http.c (gethttp): Recognize content-type "application/xhtml+xml"
5040         as what Wget considers "text/html".
5041
5042 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5043
5044         * connect.c (connect_with_timeout): Made timeout type double.
5045
5046         * options.h (struct options): New members read_timeout,
5047         dns_timeout, and connect_timeout.
5048         Use them.
5049
5050 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5051
5052         * init.c (simple_atof): New function.
5053         (cmd_time): Use it.
5054         (cmd_bytes): Accept things like "1.5k" and such.  Use simple_atof
5055         to parse decimals.
5056
5057         * retr.c (limit_bandwidth): Adjust each sleep by the error of the
5058         previous one.
5059
5060 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5061
5062         * main.c (main): Use setoptval() for setting the options.  Use
5063         run_command for `-e'.
5064
5065         * init.c (parse_line): Rewritten to return COMIND right away.
5066         Changed linkage to static.
5067         (run_wgetrc): Use the available comind when calling setval, so it
5068         doesn't have to be computed twice.
5069         (setval_internal): New function, runs the command's action without
5070         any error checking.
5071         (setoptval): New function, does what setval used to do, but exits
5072         in case of error.
5073         (run_command): New function.
5074
5075 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5076
5077         * connect.c (select_fd): Change MAXTIME's type to double.  Handle
5078         its decimal part.
5079
5080         * retr.c (sleep_between_retrievals): In the random-wait case, use
5081         random_float() to wait between 0 and 2*opt.wait seconds.
5082
5083         * utils.c (run_with_timeout): Accept `double' timeouts.  Correctly
5084         handle timeout values in (0, 1) range.
5085         (random_float): New function.
5086
5087         * options.h (struct options): Change the types of wait, waitretry,
5088         and timeout to double.
5089
5090         * init.c (cmd_time): Accept floating point time.
5091
5092 2003-09-20  Hrvoje Niksic  <hniksic@xemacs.org>
5093
5094         * retr.c (get_contents): Cosmetic fixes.
5095
5096 2003-09-20  Hrvoje Niksic  <hniksic@xemacs.org>
5097
5098         * url.c (uri_merge): Get rid of uri_merge_1.
5099         (uri_merge): Merge "foo//", "bar" as "foo//bar", not "foo///bar",
5100         i.e. don't add an extra slash merely because BASE ends with two
5101         slashes.
5102         (parse_credentials): Renamed from parse_uname.  Rewrittern in
5103         standard [beg, end) calling style.
5104         (url_skip_credentials): Renamed from url_skip_uname.  Made static.
5105         (url_skip_credentials): Include # and ; as terminators.  Old code
5106         would mistakenly consider "http://foo.com#hniksic@iskon.hr" to
5107         contain a username.
5108         (url_skip_scheme): Removed because it was unused.
5109         (url_has_scheme): Require "scheme" to be at least one char long.
5110
5111 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
5112
5113         * url.c (url_file_name): Expect NULL dir_prefix.
5114
5115         * init.c (cmd_file): Use a macro to prevent multiple #ifdef
5116         WINDOWS.
5117         (defaults): Set dir_prefix to NULL by default.
5118
5119 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
5120
5121         * safe-ctype.h (_sch_test): Cast BIT to unsigned char, like latest
5122         gcc does.
5123
5124 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
5125
5126         * wget.h (BOUNDED_TO_ALLOCA): Evaluate PLACE only once.
5127         (ARRAY_SIZE): Renamed to countof.  All callers updated.
5128
5129 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
5130
5131         * main.c (main): New option --strict-comments.
5132
5133         * html-parse.c (find_comment_end): New function: simple BM search
5134         for "-->".
5135         (map_html_tags): Use it if looking at a comment and not in strict
5136         comments mode.
5137
5138 2003-09-17  Aurelien Marchand  <artaxerxes@users.sf.net>
5139
5140         * ftp.h: Added OS400 system in enum
5141         * ftp-basic.c: recognize OS400 systems
5142         * ftp.c: don't prepend the CWD if talking to OS400, since it
5143         breaks the change in library
5144
5145 2003-09-18  Hrvoje Niksic  <hniksic@xemacs.org>
5146
5147         * retr.c (get_contents): Pass the correct argument to ssl_iread.
5148
5149 2003-09-18  Hrvoje Niksic  <hniksic@xemacs.org>
5150
5151         * safe-ctype.h: Don't #define ctype.h macros to errors because
5152         that loses when someone #include's ctype.h after safe-ctype.h.
5153
5154 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
5155
5156         * url.c: Undef U, W, C after use.
5157
5158 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
5159
5160         * init.c (cmd_spec_restrict_file_names): Allow the OS setting to
5161         be augmented by ",nocontrol" which means don't escape the control
5162         characters, but otherwise keep OS settings.
5163
5164         * url.c (file_unsafe_char): Deleted.
5165         (append_uri_pathel): Query filechr_table directly.
5166         (filechr_table): Separated Unix, Windows, and control-unsafe
5167         characters.
5168
5169 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
5170
5171         * url.c (url_escape_1): New function.
5172         (url_escape): Use it.
5173         (sync_path): Handle pathological cases where u->file and u->dir
5174         contain really strange characters.
5175         (ENCODE): Deleted.
5176         (REENCODE): Deleted.
5177
5178 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
5179
5180         * url.c (url_file_name): Don't reallocate FNAME if the file
5181         doesn't exist, as is usually the case.
5182
5183         * utils.c (unique_name): New flag allow_passthrough.
5184
5185 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
5186
5187         * utils.c (wtimer_sys_diff): Convert the time difference to signed
5188         __int64, then to double.  This works around MS VC++ 6 which can't
5189         convert unsigned __int64 to double directly.
5190
5191 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
5192
5193         * Makefile.in (clean): Also remove the core.<number> files
5194         produced by recent Linux systems.
5195
5196 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
5197
5198         * http.c (post_file): Don't pad the file if it's not large
5199         enough.  Bail out instead.
5200
5201 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5202
5203         * retr.c (get_contents): Reduce the buffer size to the amount of
5204         data that may pass through for one second.  This prevents long
5205         sleeps when limiting bandwidth.
5206
5207         * connect.c (connect_to_one): Reduce the socket's RCVBUF when
5208         bandwidth limitation to small values is requested.
5209
5210 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5211
5212         * progress.c (update_speed_ring): Moved the speed ring update to a
5213         separate function and documented it better.
5214
5215         * progress.c: Use `double' for most timers to support granularity
5216         smaller than 1ms.
5217
5218 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5219
5220         * wget.h (XDIGIT_TO_XCHAR): Implement as index into a literal
5221         string.
5222         (XDIGIT_TO_xchar): Ditto.
5223
5224 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5225
5226         * utils.c: Change the type of timer-related functions from long to
5227         double, for better precision.  On machines supporting gettimeofday
5228         the timers now work with granularity of less than one millisecond.
5229
5230 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5231
5232         * cookies.c (parse_set_cookies): Fixed the parser to handle more
5233         edge conditions.
5234         (test_cookies): New function, contains a test suite for
5235         parse_set_cookies.
5236
5237 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5238
5239         * url.c (strpbrk_or_eos): Implement as a macro under Gcc.
5240
5241 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5242
5243         * cookies.c (parse_set_cookies): Allow trailing space in
5244         set-cookies header.  Also, allow any amount of whitespace, not
5245         only one character.  Allow empty set-cookies header without
5246         spewing an error.
5247
5248 2003-09-14  Hrvoje Niksic  <hniksic@xemacs.org>
5249
5250         * url.c (append_uri_pathel): Use opt.restrict_file_names when
5251         calling file_unsafe_char.
5252
5253         * init.c: New command restrict_file_names.
5254
5255         * main.c (main): New option --restrict-file-names[=windows,unix].
5256
5257         * url.c (url_file_name): Renamed from url_filename.
5258         (url_file_name): Add directory and hostdir prefix here, not in
5259         mkstruct.
5260         (append_dir_structure): New function, does part of the work that
5261         used to be in mkstruct.  Iterates over path elements in u->path,
5262         calling append_uri_pathel on each one to append it to the file
5263         name.
5264         (append_uri_pathel): URL-unescape a path element and reencode it
5265         with a different set of rules, more appropriate for handling of
5266         files.
5267         (file_unsafe_char): New function, uses a lookup table to decide
5268         whether a character should be escaped for use in file name.
5269         (append_string): New utility function.
5270         (append_char): Ditto.
5271         (file_unsafe_char): New argument restrict_for_windows, decide
5272         whether Windows file names should be escaped in run-time.
5273
5274         * connect.c: Include <stdlib.h> to get prototype for abort().
5275
5276 2003-09-14  Hrvoje Niksic  <hniksic@xemacs.org>
5277
5278         * utils.c (wtimer_sys_set): Extracted the code that sets the
5279         current time here.
5280         (wtimer_reset): Call it.
5281         (wtimer_sys_diff): Extracted the code that calculates the
5282         difference between two system times here.
5283         (wtimer_elapsed): Call it.
5284         (wtimer_elapsed): Don't return a value smaller than the previous
5285         one, which could previously happen when system time is set back.
5286         Instead, reset start time to current time and note the elapsed
5287         offset for future calculations.  The returned times are now
5288         guaranteed to be monotonically nondecreasing.
5289
5290 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
5291
5292         * host.c (lookup_host): Print the result of the DNS lookup.
5293
5294 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
5295
5296         * init.c (cmd_boolean): Accept yes/no along with on/off.
5297         (cmd_lockable_boolean): Ditto.
5298
5299 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
5300
5301         * init.c: New command dns_cache.
5302
5303         * main.c (main): New option --dns-cache[=off].
5304
5305 2003-09-09  Hrvoje Niksic  <hniksic@xemacs.org>
5306
5307         * config.h.in: Initialize HAVE_GETADDRINFO and ENABLE_IPV6.
5308
5309         * all: Use #ifdef ENABLE_IPV6 instead of the older INET6.  Use
5310         HAVE_GETADDRINFO for getaddrinfo-related stuff.
5311
5312 2003-09-09  Hrvoje Niksic  <hniksic@xemacs.org>
5313
5314         * url.c (url_parse): Return an error if the URL contains a [...]
5315         IPv6 numeric address and we don't support IPv6.
5316
5317 2003-09-05  Hrvoje Niksic  <hniksic@xemacs.org>
5318
5319         * url.c (is_valid_ipv6_address): Modified to not require
5320         zero-terminated strings.
5321         (is_valid_ipv4_address): Ditto.
5322
5323 2003-09-05  Mauro Tortonesi <mauro@deepspace6.net>
5324
5325         src/url.c: added RFC 2732 compliance for URL parsing. The
5326         functions is_*_address valid are a modified version of
5327         glibc 2.3.2 inet_pton's code.
5328
5329 2003-09-03  Ahmon Dancy  <dancy@dancysoft.com>
5330
5331         * main.c init.c options.h: Added --retry-connrefused option so
5332         that Connection Refused failures are treated as non-fatal (when
5333         trying to retrieve from busy servers).
5334
5335         * wget.h: New CONNECT_ERROR macro for encapsulating this
5336         modification.
5337
5338         * ftp.c http.c : Use CONNECT_ERROR macro in places where
5339         ECONNREFUSED was checked.
5340
5341 2003-01-11  Ian Abbott  <abbotti@mev.co.uk>
5342
5343         * ftp.c (ftp_retrieve_glob): Reject insecure filenames as determined
5344         by calling new function has_insecure_name_p.  This is based on a
5345         patch by Red Hat.
5346
5347         * fnmatch.c (has_insecure_name_p): New function: returns non-zero
5348         if filename starts with `/' or contains `../' and is therefore
5349         considered insecure.
5350
5351         * fnmatch.h: Declare has_insecure_name_p().
5352
5353 2002-08-03  Hrvoje Niksic  <hniksic@xemacs.org>
5354
5355         * init.c (cmd_file): Allocate RESULT correctly.
5356
5357 2002-07-24  Hrvoje Niksic  <hniksic@xemacs.org>
5358
5359         * recur.c (retrieve_tree): Check whether downloaded_html_set is
5360         non-NULL before using it.
5361
5362 2002-05-27  Hrvoje Niksic  <hniksic@arsdigita.com>
5363
5364         * html-parse.c (NAME_CHAR_P): Allow almost any character here.
5365
5366 2002-05-24  Hrvoje Niksic  <hniksic@arsdigita.com>
5367
5368         * progress.c (bar_set_params): Fall back to dot progress if the
5369         terminal type is "emacs".
5370
5371 2002-05-20  Hrvoje Niksic  <hniksic@arsdigita.com>
5372
5373         * log.c: Don't #undef WGET_USE_STDARG.
5374
5375 2002-05-16  Hrvoje Niksic  <hniksic@arsdigita.com>
5376
5377         * hash.c (prime_size): Store the offset of the prime number in the
5378         prime table.  When searching, start with the given offset.
5379         (hash_table_new): Pass the pointer to ht->prime_offset to
5380         prime_size.
5381         (grow_hash_table): Ditto.
5382         (prime_size): Make 13 the first prime to make empty hash tables
5383         slightly smaller.
5384
5385 2002-05-16  Ian Abbott  <abbotti@mev.co.uk>
5386
5387         * recur.c (download_child_p): Minor optimization to avoid an
5388         unnecessary additional call to schemes_are_similar_p function.
5389
5390 2002-05-16  Ian Abbott  <abbotti@mev.co.uk>
5391
5392         * url.c (schemes_are_similar_p): New function to test enumerated
5393         scheme codes for similarity.
5394
5395         * url.h: Declare it.
5396
5397         * recur.c (download_child_p): Use it to compare schemes.  This
5398         also fixes a bug that allows hosts to be spanned (without the
5399         -H option) when the parent scheme is https and the child's is
5400         http or vice versa.
5401
5402 2002-05-14  Bill Richardson  <bill@riverstonenet.com>
5403
5404         * ftp.c (getftp): Don't ftruncate stdout.
5405
5406         * http.c (gethttp): Don't ftruncate stdout.
5407
5408 2002-05-09  Ian Abbott  <abbotti@mev.co.uk>
5409
5410         * cmpt.c (strptime_internal): Synched with glibc-2.1.3.
5411         (get_number): Ditto.
5412         (get_alt_number): Ditto.
5413         (__isleap): New function-like macro used by strptime.
5414         (day_of_the_week): New function used by strptime.
5415         (day_of_the_year): Ditto.
5416         (__mon_yday): Now shared by mktime and strptime implementations.
5417
5418 2002-05-08  Hrvoje Niksic  <hniksic@arsdigita.com>
5419
5420         * cookies.c (check_domain_match): Use match_tail in case
5421         insensitive mode.
5422
5423         * utils.c (match_tail): Allow the caller to specify case
5424         insensitive mode.
5425
5426         * cookies.c (store_cookie): When expiry_time is 0, print it as
5427         undefined, not indefinite.
5428
5429 2002-05-07  Ian Abbott  <abbotti@mev.co.uk>
5430
5431         * cookies.c (cookie_jar_process_set_cookie): Do not store
5432         discarded cookie.
5433
5434 2002-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
5435
5436         * cookies.c (check_domain_match): Allow cookies to be set for
5437         subdomains of unknown top-level domains under some circumstances.
5438
5439 2002-04-21  Thomas Lussnig  <thomas.lussnig@bewegungsmelder.de>
5440
5441         * gen_ssl.c:
5442         - allow checking of server cert
5443         - allow defining client cert type
5444         - allow limit of ssl protocol
5445         - check more return values
5446         - added debug message on break
5447
5448 2002-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
5449
5450         * recur.c (download_child_p): Revert order of items in check
5451         number 6 for clarity.
5452
5453 2002-04-20  Hrvoje Niksic  <hniksic@arsdigita.com>
5454
5455         * init.c: Ditto.
5456
5457         * main.c: Ditto.
5458
5459         * http.c: Use the new interface.
5460
5461         * cookies.c: Provide an OO-style "cookie jar" interface to enable
5462         separate cookie jars.
5463
5464         * http.c (http_atotm): Declare argument as const.
5465
5466 2002-04-20  Hrvoje Niksic  <hniksic@arsdigita.com>
5467
5468         * cookies.c (cookie_new): Default to PORT_ANY.
5469         (find_cookie_chain_exact): Only search by DOMAIN.
5470         (find_matching_cookie): Also check that PORT matches.
5471         (store_cookie): Only match the domain.
5472         (set_cookie_header_cb): When a cookie "fakes" a domain, assume it
5473         is valid for that host rather than discarding it completely.
5474         (find_matching_chains): Don't search by PORT.
5475         (matching_cookie): Also match PORT.
5476         (load_cookies): Set the port if specified, otherwise leave it as
5477         ANY.
5478         (save_cookies_mapper): Save the port if specified, otherwise leave
5479         it empty.
5480
5481 2002-04-19  Thomas Lussnig  <thomas.lussnig@bewegungsmelder.de>
5482
5483         * init.c: The option `egdfile' was not in sort order.
5484
5485 2002-04-16  Hrvoje Niksic  <hniksic@arsdigita.com>
5486
5487         * ftp.c (getftp): Treat directories that begin with <letter>: as
5488         absolute.
5489         (getftp): Strip trailing slashes from con->id before merging it
5490         with TARGET.
5491
5492 2002-04-16  Hrvoje Niksic  <hniksic@arsdigita.com>
5493
5494         * http.c (gethttp): If Content-Type is not given, assume
5495         text/html.
5496
5497 2002-04-15  Hrvoje Niksic  <hniksic@arsdigita.com>
5498
5499         * recur.c (download_child_p): Don't ignore rejection of HTML
5500         documents that are themselves leaves of recursion.
5501
5502 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
5503
5504         Makefile.in: Updated several dependencies for object files to take
5505         account of nested include files.
5506
5507 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
5508
5509         Makefile.in: The target `connect$o' (connect.o) now depends on
5510         `utils.h'
5511
5512 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
5513
5514         * host.c (SET_H_ERRNO): New function-like macro to set `h_errno'.
5515         (gethostbyname_with_timeout): Use it.
5516
5517         * utils.c: Don't define `SETJMP()', `run_with_timeout_env' or
5518         `abort_run_with_timeout()' when `USE_SIGNAL_TIMEOUT' is undefined.
5519
5520 2002-04-15  Hrvoje Niksic  <hniksic@arsdigita.com>
5521
5522         * host.c (getaddrinfo_with_timeout): New function.
5523         (gethostbyname_with_timeout): Ditto.
5524         (lookup_host): Use them.
5525
5526 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5527
5528         * utils.c (number_to_string): Handle the case when n < -INT_MAX.
5529
5530 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5531
5532         * init.c (comind): Use a marginally faster implementation of
5533         binary search.  To quote Martin Buchholz, "a nanosecond saved is a
5534         nanosecond earned."
5535
5536 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5537
5538         * main.c (print_help): Document `--post-data' and `--post-file'.
5539
5540 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5541
5542         * http.c (gethttp): Ditto.
5543
5544         * retr.c (retrieve_url): Initialize variables to appease the
5545         compiler.
5546
5547         * gen_sslfunc.c (ssl_iread): Don't handle EINTR when calling
5548         select_fd.
5549         (ssl_iwrite): Ditto.
5550
5551         * connect.c (select_fd): Rewrite to handle EINTR.  Set errno to
5552         ETIMEDOUT in case of timeout.
5553         (iread): No need to handle EINTR when calling select_fd.
5554         (iwrite): Ditto.
5555
5556 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5557
5558         * retr.c (retrieve_url): Make sure that POST is not honored for
5559         redirections.
5560
5561         * http.c (gethttp): Send the POST data when requested.
5562         (post_file): New function.
5563         (gethttp): Use it.
5564
5565         * main.c (main): Ditto.
5566
5567         * init.c: Add new options.
5568
5569         * options.h (struct options): New options post_data and
5570         post_file_name.
5571
5572 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5573
5574         * connect.c (connect_with_timeout): Firing SIGALRM can result in
5575         connect() exiting with EINTR.  Treat EINTR the same as ETIMEDOUT.
5576
5577 2002-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
5578
5579         * connect.c (connect_with_timeout): Use it.
5580
5581         * utils.c (run_with_timeout): New function.
5582
5583 2002-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
5584
5585         * url.c (getproxy): Accept a struct url argument.  This obviates
5586         the need for USE_PROXY_P.
5587
5588         * retr.c (retrieve_url): Allow proxy to be a non-FTP URL.
5589
5590         * ftp.c (getftp): Recognize FWTK-style proxy.
5591
5592 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
5593
5594         * config.h.in: Only define _VA_LIST when compiled with gcc.
5595
5596 2002-04012  Ian Abbott  <abbotti@mev.co.uk>
5597
5598         * http.c (http_loop): Compensate for MS Windows two-second
5599         granularity of file modification time when comparing timestamps.
5600
5601         * ftp.c (ftp_retrieve_list): Ditto.
5602
5603 2002-04-12  Ian Abbott  <abbotti@mev.co.uk>
5604
5605         * utils.c (has_html_suffix_p): New function to test filename for
5606         common html extensions.
5607
5608         * utils.h: Declare it.
5609
5610         * http.c (http_loop): Use it instead of previous test.
5611
5612         * retr.c (retrieve_url): Ditto.
5613
5614         * recur.c (download_child_p): Ditto.
5615
5616 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
5617
5618         * config.h.in: Define _VA_LIST on Solaris to prevent stdio.h from
5619         declaring va_list.
5620         From Kevin Rodgers <kevinr@ihs.com>.
5621
5622 2002-04-12  Ian Abbott  <abbotti@mev.co.uk>
5623
5624         * Makefile.in: Specify libtool mode explicitly when linking.
5625
5626 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
5627
5628         * connect.c (connect_with_timeout): New function.
5629         (connect_to_one): Use it.
5630
5631         * config.h.in: Add stubs for HAVE_SIGSETJMP, HAVE_SIGBLOCK, and
5632         HAVE_SETJMP_H.
5633
5634 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5635
5636         * log.c: Set WGET_USE_STDARG if __STDC__ is defined and stdarg.h
5637         is present.
5638
5639 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5640
5641         * progress.c (bar_create): If INITIAL is larger than TOTAL, fix
5642         TOTAL.
5643         (bar_finish): Likewise.
5644
5645 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5646
5647         * html-url.c (tag_handle_form): New function.  Pick up form
5648         actions and mark them for conversion only.
5649
5650 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5651
5652         * progress.c (struct progress_implementation): Use PARAMS when
5653         declaring the parameters of *create, *update, *finish, and
5654         *set_params.
5655
5656         * netrc.c: Ditto.
5657
5658         * http.c: Reformat some function definitions so that ansi2knr can
5659         read them.
5660
5661         * hash.c (struct hash_table): Use the PARAMS macro around
5662         parameters in the declaration of hash_function and test_function.
5663         (prime_size): Spell 2580823717UL and 3355070839UL as (unsigned
5664         long)0x99d43ea5 and (unsigned long)0xc7fa5177 respectively, so
5665         that pre-ANSI compilers can read them.
5666         (find_mapping): Use PARAMS when declaring EQUALS.
5667         (hash_table_put): Ditto.
5668
5669         * ftp.h: Wrap the parameters of ftp_index declaration in PARAMS.
5670
5671         * cookies.c (cookie_new): Use (unsigned long)0 instead of 0UL,
5672         which was unsupported by pre-ANSI compilers.
5673
5674         From Nelson H. F. Beebe <beebe@math.utah.edu>, for the most part.
5675
5676 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5677
5678         * url.c (url_filename): Use compose_file_name regardless of
5679         whether opt.dirstruct is set.
5680         (mkstruct): Don't handle the query and the reencoding of DIR; that
5681         is done in compose_file_name.
5682
5683 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
5684
5685         * wget.h: Ditto for extern char *exec_name.
5686
5687         * options.h: Don't guard against OPTIONS_DEFINED_HERE -- it is
5688         perfectly legal to follow an `extern' with a non-`extern' ones,
5689         provided the types match.
5690
5691         * main.c: Don't define OPTIONS_DEFINED_HERE.
5692
5693 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
5694
5695         * progress.c (create_image): Revert to calculating ETA based on
5696         average download speed.
5697         (create_image): Don't print ETA until the download has been active
5698         for at least 3 seconds.
5699         (create_image): When ETA is not available, don't print anything.
5700         The previous version would print --:--.
5701
5702 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
5703
5704         * progress.c (bar_update): Keep updating a subinterval until it
5705         reaches or exceeds a watermark.  That way the measurement will be
5706         guaranteed to span a configurable minimum of time.  The current
5707         default is 3s in 30 100ms intervals.
5708
5709 2002-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
5710
5711         * progress.c (bar_update): Maintain an array of the time it took
5712         to perform previous 30 network reads.
5713         (create_image): Calculate the download speed and ETA based on the
5714         last 30 reads, not the entire download.
5715         (create_image): Make sure that the ETA is not changed more than
5716         once per second.
5717
5718 2002-04-09  Ian Abbott  <abbotti@mev.co.uk>
5719
5720         * mswindows.c (borland_utime): New function conditionally defined
5721         when `HACK_BCC_UTIME_BUG' is defined.  A reimplementation of
5722         `utime()' as Borland's `utime()' function is broken on Windows 9x
5723         systems.  (Original patch by Chin-yuan Kuo <sr1111111@yahoo.com.tw>.)
5724
5725 2002-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
5726
5727         * ftp.c (ftp_loop): Propagate the result of ftp_retrieve_glob.
5728
5729 2002-03-26  Ian Abbott  <abbotti@mev.co.uk>
5730
5731         * Makefile.in: Updated several dependencies for object files.
5732
5733 2002-03-20  Ian Abbott  <abbotti@mev.co.uk>
5734
5735         * mswindows.c: Include "utils.h".
5736
5737 2002-03-18  Ian Abbott  <abbotti@mev.co.uk>
5738
5739         * host.h: Don't include netdb.h on windows.
5740
5741 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
5742
5743         * recur.c (retrieve_tree): Handle the case when start_url doesn't
5744         parse.
5745
5746 2002-02-19  Andreas Damm  <andreas-sourceforge@radab.org>
5747
5748         * wget.h (DO_REALLOC_FROM_ALLOCA): Multiply with sizeof(type) when
5749         calling xmalloc and memcpy.
5750
5751 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
5752
5753         * host.h: Include Unix-specific includes #ifndef WINDOWS.
5754         Patch originally provided by Christian Lackas.
5755
5756 2002-02-11  Christian Lackas  <delta@lackas.net>
5757
5758         * recur.c: recurive downloading for https fixed.
5759
5760 2002-02-19  Alan Eldridge  <alane@geeksrus.net>
5761
5762         * host.h: Also include <netinet/in.h> and <sys/socket.h>.
5763
5764         * ftp-basic.c: Also include <netinet/in.h>.
5765
5766 2002-02-05  Ian Abbott  <abbotti@mev.co.uk>
5767
5768         * http.c (gethttp): when -c used, mark already fully retrieved
5769         file as successfully retrieved.
5770
5771 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
5772
5773         * url.c (url_parse): Don't treat '?' as query string separator
5774         when parsing FTP URLs.
5775
5776 2002-02-01  Hrvoje Niksic  <hniksic@arsdigita.com>
5777
5778         * html-url.c (tag_handle_meta): Don't crash on <meta
5779         http-equiv=refresh> where content is missing.
5780
5781 2002-01-31  Herold Heiko  <Heiko.Herold@previnet.it>
5782
5783         * ftp-basic.c, host.c: don't include sys/socket.h, arpa/inet.h,
5784         netdb.h on windows.
5785
5786 2002-01-30  Hrvoje Niksic  <hniksic@arsdigita.com>
5787
5788         * retr.c (retrieve_url): Remove redirection cycle detection.  This
5789         is because some sites legitimately redirect the user back to the
5790         same location, e.g. after an authorization check performed by
5791         another page.  MAX_REDIRECTIONS is still used to prevent infinite
5792         redirection loops.
5793
5794 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
5795
5796         * http.c (gethttp): Wrap host name in square brackets if it
5797         contains a colon.
5798
5799 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
5800
5801         * url.c (url_parse): Allow all hex digits, not only decimal ones,
5802         to form an IP address.
5803
5804 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
5805
5806         * url.c (urlchr_table): Make square braces reserved, so we can
5807         parse http://[::1]/.
5808         (url_parse): Handle host in braces.
5809         (url_string): If url->host contains colons, wrap it in braces.
5810
5811 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
5812
5813         * connect.c (resolve_bind_address): New function.
5814         (connect_to_one): Use it.
5815         (bindport): Ditto.
5816
5817         * init.c: Don't resolve bind-address here.
5818
5819         * host.c (wget_sockaddr_set_address): Would bug out with ADDR == NULL.
5820
5821 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
5822
5823         * host.c (lookup_host): Use sizeof(ip4_address) to calculate the
5824         offset.
5825         (address_list_new): Use map_ipv4_to_ip.
5826         (wget_sockaddr_set_address): Convert ADDR to IPv4 before using it
5827         in IPv4 context.
5828
5829 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
5830
5831         * source: Integrated IPv6 support.
5832         Written by Thomas Lussnig <thomas.lussnig@bewegungsmelder.de>.
5833
5834 2002-01-15  Ian Abbott  <abbotti@mev.co.uk>
5835
5836         * init.c (cmd_file): Change `\' to `/' for Windows (yes, really!)
5837         (cmd_directory): New function. Like cmd_file(), but strips
5838         trailing directory separators.
5839         (commands): Change action for "dirprefix" from `cmd_file' to
5840         `cmd_directory'.
5841
5842         * utils.c (make_directory): Allow intermediate `mkdir' calls to
5843         fail, as not all path components that do not exist should be
5844         directory components, especially under Windows.
5845
5846 2002-01-17  Hrvoje Niksic  <hniksic@arsdigita.com>
5847
5848         * netrc.c (parse_netrc): Skip leading whitespace before testing
5849         whether the line is empty.  Empty lines still contain the line
5850         terminator.
5851
5852 2002-01-15  Hrvoje Niksic  <hniksic@arsdigita.com>
5853
5854         * gen_sslfunc.c (ssl_iread): Call select on the file descriptor
5855         only if no data is pending in SSL buffers.
5856         From tony@bluetail.com.
5857
5858 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5859
5860         * headers.c (header_get): Strip trailing whitespace from the
5861         header.
5862
5863 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5864
5865         * url.c (parse_uname): URL-decode *USER and *PASSWD.
5866
5867 2002-01-07  Ian Abbott <abbotti@mev.co.uk>
5868
5869         * url.c (uri_merge_1): Deal with "net path" relative URL (one that
5870         starts with "//").
5871
5872 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5873
5874         * http.c (gethttp): Invalidate SOCK if get_contents encountered an
5875         error.
5876
5877 2001-12-24  Hrvoje Niksic  <hniksic@arsdigita.com>
5878
5879         * version.c: Wget 1.8.1 is released.
5880
5881 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
5882
5883         * version.c: Wget 1.8.1-pre3 is released.
5884
5885 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
5886
5887         * recur.c (retrieve_tree): Enqueue the canonical representation of
5888         start_url, so that the test against dl_url_file_map works.
5889
5890 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
5891
5892         * log.c (logputs): Check for requested verbosity before printing
5893         anything.
5894
5895 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
5896
5897         * html-url.c (tag_handle_link): Treat the "shortcut icon" link as
5898         inline.
5899
5900 2001-12-18  Hrvoje Niksic  <hniksic@arsdigita.com>
5901
5902         * recur.c (retrieve_tree): Make a copy of file obtained from
5903         dl_url_file_map because the code calls xfree(file) later.
5904
5905 2001-12-18  Hrvoje Niksic  <hniksic@arsdigita.com>
5906
5907         * recur.c (register_html): Maintain a hash table of HTML files
5908         along with the list.  Disallow duplicates.
5909         (retrieve_tree): Use downloaded_html_set to check whether the file
5910         found in dl_url_file_map is an HTML file, and descend into it if
5911         so.
5912         (convert_all_links): Don't guard against duplicates in
5913         downloaded_html_list, since they are no longer possible.
5914
5915 2001-12-18  Ian Abbott  <abbotti@mev.co.uk>
5916
5917         * recur.c (retrieve_tree): Pass on referring URL when retrieving
5918         recursed URL.
5919
5920 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
5921
5922         * version.c: Wget 1.8.1-pre2 is released.
5923
5924 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
5925
5926         * retr.c (sleep_between_retrievals): Simplify indentation.
5927
5928 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
5929
5930         * gen_sslfunc.c (ssl_init_prng): Use random_number to get a byte
5931         of "randomness" at a time.
5932         (ssl_init_prng): Don't seed the PRNG; random_number will do that.
5933
5934         * retr.c (sleep_between_retrievals): Use it.  Make sure that the
5935         random amount averages in opt.wait.
5936         (sleep_between_retrievals): Don't seed the PRNG; random_number
5937         will do that.
5938
5939         * utils.c (random_number): New function.
5940
5941 2001-12-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5942
5943         * url.c (path_simplify): Move here from utils.c, and make static.
5944
5945 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
5946
5947         * init.c (wgetrc_file_name): Print correct message when loading
5948         getenv("WGETRC") fails.
5949
5950 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
5951
5952         * recur.c (register_download): Don't abort when one URL references
5953         two different files.
5954
5955 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
5956
5957         * http.c (gethttp): Check for conn->scheme, not u->scheme, before
5958         calling ssl_iwrite.
5959
5960 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
5961
5962         * version.c: Wget 1.8.1-pre1 is released.
5963
5964 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
5965
5966         * res.c (matches): Fix broken URL in the docstring.
5967
5968 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
5969
5970         * html-url.c (tag_url_attributes): Mark <embed href=...> as
5971         external.
5972
5973 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
5974
5975         * url.c (get_urls_file): Cosmetic changes.
5976
5977 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
5978
5979         * html-url.c (append_one_url): Resurrect warning when unable to
5980         resolve a relative link.
5981
5982 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
5983
5984         * html-url.c (collect_tags_mapper): Break into several functions.
5985         (tag_url_attributes): Collect <embed href=...>.
5986
5987 2001-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5988
5989         * host.c: New type ipv4_address.  Use it consistently instead of
5990         `unsigned char[4]' and `unsigned char *'.
5991         (pretty_print_address): Accept a `const void *', to require even
5992         less casting.
5993
5994 2001-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5995
5996         * ftp-ls.c (ftp_parse_vms_ls): Fix obvious memory leaks.
5997
5998 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
5999
6000         * main.c (main): Initialize progress after fork_to_background, so
6001         that it knows when to use dots.
6002
6003         * mswindows.c (ws_hangup): Call log_request_redirect_output.
6004
6005         * utils.c (fork_to_background): Print the PID of the child
6006         process.
6007
6008         * log.c (log_request_redirect_output): Set a flag that output
6009         redirection has been requested.  Doing anything else in a signal
6010         handler is unsafe.
6011         (check_redirect_output): New function: check whether redirection
6012         has been requested and, if so, call redirect_output().
6013         (logputs): Call check_redirect_output.
6014         (logprintf): Ditto.
6015         (debug_logprintf): Ditto.
6016         (redirect_output): Print clearer messages.
6017
6018         * main.c (redirect_output_signal): Don't call
6019         redirect_output_signal directly.  Instead, call
6020         log_request_redirect_output.
6021
6022         * utils.c (memfatal): Ditto.
6023
6024         * progress.c (display_image): Use it.
6025
6026         * log.c (log_set_save_context): New function: allow the caller to
6027         turn off saving log context lines.
6028
6029 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6030
6031         * host.c (address_list_set_faulty): Uncomment a sanity check.
6032
6033 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6034
6035         * utils.c (long_to_string): Return a pointer after where the
6036         number ends.
6037         (long_to_string): Rename to number_to_string.
6038
6039 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6040
6041         * utils.c (path_simplify): Correctly handle the unlikely case that
6042         b starts out as path + 1.
6043
6044 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6045
6046         * utils.c (path_simplify): Rewrite, with better comments, and
6047         without the use of strcpy to move overlapping blocks.
6048
6049 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6050
6051         * init.c (cmd_spec_progress): Resurrect.  Check whether VAL is a
6052         valid progress type before setting it.
6053
6054 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6055
6056         * main.c (main): Remove stray debugging message.
6057
6058 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6059
6060         * progress.c (create_image): Fix ETA padding when hours are prined.
6061
6062 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6063
6064         * version.c: Wget 1.8 is released.
6065
6066 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6067
6068         * url.c (reencode_string): Declare static.
6069
6070         * res.c (registered_specs): Declare static.
6071
6072         * progress.c (current_impl_locked): Declare static.
6073
6074         * log.c (flush_log_p): Declare static.
6075         (needs_flushing): Ditto.
6076
6077         * http.c (digest_authentication_encode): Declare static.
6078
6079         * html-url.c (init_interesting): Declare static.
6080
6081         * host.c (host_name_addresses_map): Declare static.
6082
6083         * cookies.c (find_matching_chains): Declare static.
6084
6085         * ftp-ls.c (ftp_parse_vms_ls): Warn about the memory leak
6086         indicated by lint.
6087
6088         * utils.c (path_simplify): Remove unused variable STUB_CHAR.
6089
6090         * host.c (address_list_set_faulty): Document that INDEX is
6091         currently unused.
6092
6093         * url.c (rewrite_shorthand_url): Remove unused variable PATH.
6094
6095 2001-12-08  Hrvoje Niksic  <hniksic@arsdigita.com>
6096
6097         * version.c: Wget 1.8-pre2 is released.
6098
6099 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6100
6101         * progress.c (progress_handle_sigwinch): Set up the signal again.
6102
6103         * utils.c: Include <sys/termios.h>, where Solaris defines
6104         TIOCGWINSZ.
6105
6106         * progress.c (bar_create): Don't use the last column on the screen.
6107         (create_image): Pad ETA to constant size.  Pad SIZE to nine digits
6108         only until it exceeded them.
6109
6110 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6111
6112         * version.c: Wget 1.8-pre1 is released.
6113
6114 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6115
6116         * progress.c (progress_create): Make sure that, when the output is
6117         redirected, the progress implementation gets changed to the
6118         fallback one.
6119         (bar_set_params): Set current_impl_locked to 1 when "force" is
6120         specified.
6121         (progress_create): Don't change the progress implementation if
6122         current_impl_locked is non-zero.
6123
6124         * main.c (redirect_output_signal): Call
6125         progress_schedule_redirect.
6126
6127         * progress.c (progress_schedule_redirect): New function.
6128
6129 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6130
6131         * log.c (logvprintf): Restructure to allow being called multiple
6132         times.
6133         (logprintf): Call logvprintf in a loop.
6134         (debug_logprintf): Ditto.
6135
6136 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6137
6138         * gen_sslfunc.c (ssl_init_prng): Allow the user to disable EGD by
6139         setting egd_file it to empty string.
6140
6141         * main.c (main): Change the option name from --sslegdsock to
6142         --egd-file.
6143
6144 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6145
6146         * gen_sslfunc.c (ssl_init_prng): Make the printed message
6147         translatable.
6148
6149 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6150
6151         * url.c (scheme_disable): New function.
6152
6153         * main.c (main): Call ssl_init_prng from here rather than from
6154         init_ssl, so that it has a chance to disable support for https
6155         before a URL has been resolved.
6156
6157         * gen_sslfunc.c (ssl_init_prng): Seed with rand() if all else
6158         failed.
6159         (ssl_init_prng): Disable support for https if seeding the PRNG
6160         fails.
6161
6162 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6163
6164         * utils.c (read_whole_line): Handle lines beginning with \0.
6165
6166 2001-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
6167
6168         * recur.c (convert_all_links): Guard against duplicates in
6169         downloaded_html_files.
6170         (register_download): Don't invalidate similar-looking URLs.
6171         (match_except_index): New function.
6172
6173 2001-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
6174
6175         * utils.c (path_simplify): Document with test cases.
6176
6177 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
6178
6179         * gen_sslfunc.c: Ditto.
6180
6181         * rbuf.c: Include <string.h>.
6182
6183 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
6184
6185         * recur.c (retrieve_tree): Check whether the URL was already
6186         downloaded before downloading it again.
6187         (descend_child_p): Renamed to download_child_p.
6188         (register_download): When one URL is downloaded to a file already
6189         "owned" by another URL, delete all references that map any URL to
6190         that file.
6191         (register_delete_file): New function.
6192         (retrieve_tree): Use it after deleting a file.
6193
6194         * url.c (url_parse): Re-canonicalize the URL also if the path is
6195         empty, so that e.g. "http://www.server.com" ->
6196         "http://www.server.com/".
6197         (lowercase_str): Use ISUPPER instead of !ISLOWER.
6198
6199         * retr.c (retrieve_url): Use the canonical URL form when calling
6200         register_download().
6201
6202 2001-12-04  Ian Abbott <abbotti@mev.co.uk>
6203
6204         * snprintf.c (dopr): Use `unsigned int' as the second argument to
6205         va_arg when casting to `unsigned short' is intended.
6206
6207 2001-12-04  Herold Heiko  <Heiko.Herold@previnet.it>
6208
6209         * gen_sslfunc.c: on windows provide ssl crypto random 
6210           initialization through RAND_screen(); could possibly
6211           be not enough for strong ssl communication (see the 
6212           relevant manual page from the openssl package).
6213
6214 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
6215
6216         * url.c (local_quote_string): Reenable quoting of question marks,
6217         but only when `--html-extension' is used.
6218
6219 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
6220
6221         * version.c: Wget 1.8-beta3 is released.
6222
6223 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
6224
6225         * snprintf.c (dopr): Cast the result of va_arg to short int and
6226         short unsigned int where these types are expected to be used.
6227
6228 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
6229
6230         * snprintf.c (dopr): Replace `short int' and `unsigned short int'
6231         with `int' when using it as the second argument to `va_arg'.
6232
6233 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
6234
6235         * host.c (address_list_new_one): New function.
6236         (lookup_host): Use it.
6237
6238 2001-12-03  Andre Majorel  <amajorel@teaser.fr>
6239
6240         * host.c (lookup_host): Don't initialize TMPSTORE directly because
6241         it's not legal C.
6242
6243 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
6244
6245         * ftp-basic.c (ftp_port): Don't return HOSTERR if we fail getting
6246         the socket data.
6247
6248         * ftp.c: Ditto.
6249
6250         * http.c: No need to declare h_errno.
6251
6252         * host.c: Declare h_errno.
6253
6254 2001-12-02  Hrvoje Niksic  <hniksic@arsdigita.com>
6255
6256         * utils.c (file_merge): If BASE doesn't contain a slash, just
6257         return a copy of FILE.
6258
6259 2001-12-02  Hrvoje Niksic  <hniksic@arsdigita.com>
6260
6261         * version.c: Wget 1.8-beta2 is released.
6262
6263 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6264
6265         * ftp.c (getftp): When PWD fails, assume "/".
6266
6267         * ftp-basic.c (ftp_syst): Fix indentation.
6268
6269 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6270
6271         * url.c (get_urls_file): If opt.base_href is specified, merge each
6272         URL with the base.
6273
6274 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6275
6276         * main.c (print_help): Don't document the removed `-nh'.
6277
6278 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6279
6280         * url.c (url_full_path): Document better.
6281
6282         * http.c (gethttp): Use the full path when creating digest
6283         authorization.
6284
6285 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6286
6287         * cookies.c (path_matches): Return 0 if PREFIX doesn't begin with
6288         '/'.
6289
6290 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6291
6292         * cookies.c (path_matches): FULL_PATH doesn't begin with '/', but
6293         PREFIX does.
6294
6295 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6296
6297         * cookies.c (check_domain_match): Reimplement to match Netscape's
6298         "preliminary specification" for cookies.
6299
6300 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6301
6302         * url.c (replace_attr_refresh_hack): New function.
6303         (convert_links): Call replace_attr_refresh_hack for Refresh
6304         links.  It will add the "TMOUT; URL=" junk before the link.
6305
6306         * html-url.c (collect_tags_mapper): Set ID to the ID of the
6307         "content" attribute, not "http-equiv".
6308         (collect_tags_mapper): Don't use OFFSET to hack the raw_* values;
6309         instead, store the information that this entry belongs to a
6310         "refresh" link.
6311
6312 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6313
6314         * version.c: Wget 1.8-beta1 is released.
6315
6316 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6317
6318         * recur.c (retrieve_tree): Allow -p retrievals to exceed maximum
6319         depth by more than one.
6320
6321 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
6322
6323         * retr.c (retrieve_url): Don't allow more than 20 redirections.
6324
6325 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
6326
6327         * recur.c (retrieve_tree): Skip the non-inline entries when
6328         enqueuing the children of a leaf HTML node in -p mode.
6329         (descend_url_p): Ignore opt.no_parent when in -p mode and UPOS is
6330         "inline".
6331
6332         * html-url.c (get_urls_html): Don't accept dash_p_leaf_HTML.
6333         (collect_tags_mapper): When an entry is "inline", mark it as such.
6334
6335         * recur.c (descend_url_p): Fix test when checking for
6336         acceptance/rejection rules.
6337
6338 2001-10-31 Daniel BODEA <dali@dali-designs.com>
6339
6340         * netrc.c (search_netrc): When slack_default is 0, still look for
6341         an account with matching password, just not the "default account".
6342         HTTP Authorization using .netrc should now work as expected.
6343
6344 2001-11-30  T. Bharath  <TBharath@responsenetworks.com>
6345
6346         * http.c (persistent_available_p): Call SHUTDOWN_SSL if
6347         test_socket_open fails.
6348
6349 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
6350
6351         * progress.c (display_image): Just print one CR to reset the
6352         cursor position.
6353
6354 2001-11-30  Christian Fraenkel  <c.fraenkel@gmx.net>
6355
6356         * init.c: New command `ssl_egd_sock'.
6357
6358         * main.c (main): New option `--sslegdsock'.
6359
6360         * gen_sslfunc.c (ssl_init_prng): Seed the RNG using EGD.
6361
6362 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6363
6364         * cmpt.c (memmove): Include a simple memmove implementation.
6365
6366 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6367
6368         * headers: Guard against header files being included twice.
6369
6370 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6371
6372         * gen-md5.c: Use unsigned char * as the buffer argument to
6373         gen_md5_update.
6374
6375 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6376
6377         * connect.h: Declare select_fd.
6378
6379 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6380
6381         * recur.c (descend_url_p): When resolving no_parent, compare with
6382         start_url, not parent url.  Otherwise link from /a/b/ to /a/c/
6383         wouldn't be followed, although the download started from /a/.
6384
6385 2001-01-23  Herold Heiko  <Heiko.Herold@previnet.it>
6386
6387         * config.h.ms, mswindows.h: defined HAVE_ISATTY, use _isatty for
6388         MS VC; somebody with Borland compiler please check and provide
6389         patch if possible;
6390
6391         * cmpt.c: provided a usleep emulation.
6392
6393 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6394
6395         * host.c (address_list_new): Initialize al->faulty.
6396
6397 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6398
6399         * http.c (http_process_range): Accept the broken output of
6400         "JavaWebServer/1.1.1".
6401
6402 2001-11-28  Hrvoje Niksic  <hniksic@arsdigita.com>
6403
6404         * progress.c (dot_set_params): If PARAMS is unspecified, use
6405         dot_style, if available.
6406
6407         * init.c: Ditto.
6408
6409         * main.c (main): Resurect --dot-style.
6410
6411         * progress.c (dot_finish): Print the quantity if we're left at the
6412         beginning of a row.
6413
6414 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6415
6416         * cmpt.c (random): Removed.
6417
6418         * retr.c (sleep_between_retrievals): Use the more portable rand()
6419         instead of random().
6420
6421 2001-11-27  Ian Abbott <abbotti@mev.co.uk>
6422
6423         * retr.c (retrieve_from_file): Initialize `new_file' to NULL to
6424         prevent seg fault.
6425
6426 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6427
6428         * connect.c (connect_to_many): Use address_list_set_faulty to
6429         prevent the faulty address from being reused.
6430
6431         * host.c (address_list_set_faulty): New function.
6432         (address_list_get_bounds): New function, instead of
6433         address_list_count.
6434
6435 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6436
6437         * url.c (convert_links): Don't translate %d-%d.
6438
6439         * main.c (print_help): Remove stray HAVE_RANDOM code.
6440
6441 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6442
6443         * ftp.c (getftp): Improve output after sending PASV.  Don't
6444         attempt to "look up" the IP address we already know; call
6445         connect_to_one directly.
6446
6447 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6448
6449         * progress.c: Change the default progress implementation to "bar".
6450
6451 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6452
6453         * progress.c (bar_create): Print two newlines.
6454
6455 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6456
6457         * cmpt.c (random): New function, a simple-minded replacement for
6458         random() on systems that don't have it.
6459
6460 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6461
6462         * config.h.in: Put a HAVE_USLEEP stub.
6463
6464         * cmpt.c (usleep): Replacement implementation of usleep using
6465         select.
6466
6467         * init.c: New option init_rate.
6468
6469         * main.c (main): New option --limit-rate.
6470
6471         * retr.c (limit_bandwidth): New function.
6472         (get_contents): Call it to limit the bandwidth used when
6473         downloading.
6474
6475         * progress.c (dot_update): Would print the wrong download speed on
6476         rows other than the first one when the download was continued.
6477         (dot_finish): Ditto.
6478
6479 2001-11-26  Ian Abbott <abbotti@mev.co.uk>
6480
6481         * http.c (gethttp): fix undeclared variable 'err' when compiled
6482         with HAVE_SSL.
6483
6484 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6485
6486         * progress.c: Don't allocate new timers; use the timing data
6487         propagated from the caller.
6488
6489         * retr.c (get_contents): Allocate and use a timer.
6490
6491 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6492
6493         * http.c (last_host_ip): Made into an address_list.
6494         (invalidate_persistent): Release pc_last_host_ip.
6495         (register_persistent): Use lookup_host.
6496         (persistent_available_p): Check for equality of hosts using
6497         address_list_match_all.  Call address_list_release.
6498         (http_cleanup): New function.
6499
6500         * ftp.c (getftp): Use lookup_host and connect_to_many.
6501
6502         * http.c (gethttp): Use lookup_host and connect_to_many.
6503
6504         * connect.c (make_connection): Removed.
6505         (connect_to_one): New function.
6506         (connect_to_many): Ditto.
6507         (set_connection_host_name): Ditto.
6508
6509         * host.c (lookup_host): New function; new return type.
6510         (address_list_new): New function.
6511         (address_list_count): Ditto.
6512         (address_list_copy_one): Ditto.
6513         (address_list_delete): Ditto.
6514         (address_list_release): Ditto.
6515         (pretty_print_address): Ditto.
6516
6517 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6518
6519         * recur.c (retrieve_tree): In case of followed redirection,
6520         blacklist the pre-redirection URL.
6521
6522 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6523
6524         * recur.c (descend_redirect_p): New function.
6525         (retrieve_tree): Make sure redirections are not blindly followed.
6526
6527 2001-11-04  Alan Eldridge  <alane@geeksrus.net>
6528
6529         * config.h.in: added HAVE_RANDOM.
6530
6531         * options.h: added random_wait to struct options.
6532
6533         * main.c (print_help [HAVE_RANDOM], main): added arg parsing, help
6534         for --random-wait.
6535
6536         * retr.c (sleep_between_retrievals) [HAVE_RANDOM]: added
6537         implementation of random wait times.
6538
6539         * init.c (commands): added "randomwait" keyword.
6540
6541 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6542
6543         * recur.c (descend_url_p): Be more conservative with blacklisting
6544         URLs.
6545         (convert_all_links): Print how many files have been converted, and
6546         how long it took.
6547
6548         * progress.c (create_image): Place the number of downloaded bytes
6549         right after the progress bar.
6550
6551         * utils.c (suffix): Return a pointer into the string.
6552
6553 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6554
6555         * url.c (convert_links): Handle CO_NULLIFY_BASE.
6556
6557         * recur.c (retrieve_tree): Ignore download-ignorable children.
6558         (convert_all_links): Specify CO_NULLIFY_BASE when link_base_p.
6559
6560         * html-url.c (handle_link): Return the newly created urlpos.
6561         (collect_tags_mapper): When dealing with BASE, store the base
6562         reference and mark it as download-ignorable.
6563
6564 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6565
6566         * url.c (convert_links): Attempt to quote '?' as "%3F" when
6567         linking to local files.  Given up on the attempt, as it breaks
6568         local browsing.
6569
6570 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6571
6572         * main.c (private_initialize): Removed.
6573         (main): Don't call private_initialize.
6574
6575         * http.c: Call lookup_host.
6576
6577         * host.c (host_init): Removed.
6578         (add_host_to_cache): Initialize host_name_address_map here, on
6579         demand.
6580         (ngethostbyname): Commented out.
6581
6582         * connect.c (make_connection): Remove dead code; use lookup_host.
6583
6584         * host.c (store_hostaddress): Renamed to lookup_host and reversed
6585         the args.
6586         Removed host_address_name_map and host_slave_master_map.
6587
6588 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6589
6590         * progress.c (dot_create): Align the "[ skipping ... ]" string
6591         with the dots.
6592
6593         * retr.c (rate): Split into two functions: calc_rate and
6594         retr_rate.
6595
6596         * progress.c (create_image): Draw a dummy progress bar even when
6597         total size is unknown.
6598         (display_image): Place the text cursor at the end of the "image".
6599
6600 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6601
6602         * url.c (reencode_string): Use unsigned char, not char --
6603         otherwise the hex digits come out wrong for 8-bit chars such as
6604         nbsp.
6605         (lowercase_str): New function.
6606         (url_parse): Canonicalize u->url if needed.
6607         (get_urls_file): Parse each URL, and return only the valid ones.
6608         (free_urlpos): Call url_free.
6609         (mkstruct): Add :port if the port is non-standard.
6610         (mkstruct): Append the query string to the file name, if any.
6611         (urlpath_length): Use strpbrk_or_eos.
6612         (uri_merge_1): Handle the cases where LINK is an empty string,
6613         where LINK consists only of query, and where LINK consists only of
6614         fragment.
6615         (convert_links): Count and report both kinds of conversion.
6616         (downloaded_file): Use a hash table, not a list.
6617         (downloaded_files_free): Free the hash table.
6618
6619         * retr.c (retrieve_from_file): Ditto.
6620
6621         * main.c (main): Call either retrieve_url or retrieve_tree
6622         for each URL, not both.
6623
6624         * retr.c (register_all_redirections): New function.
6625         (register_redirections_mapper): Ditto.
6626         (retrieve_url): Register the redirections.
6627         (retrieve_url): Make the string "Error parsing proxy ..." 
6628         translatable.
6629
6630         * res.c (add_path): Strip leading slash from robots.txt paths so
6631         that the path representations are "compatible".
6632         (free_specs): Free each individual path, too.
6633         (res_cleanup): New function.
6634         (cleanup_hash_table_mapper): Ditto.
6635
6636         * recur.c (url_queue_new): New function.
6637         (url_queue_delete): Ditto.
6638         (url_enqueue): Ditto.
6639         (url_dequeue): Ditto.
6640         (retrieve_tree): New function, replacement for recursive_retrieve.
6641         (descend_url_p): New function.
6642         (register_redirection): New function.
6643
6644         * progress.c (create_image): Cosmetic changes.
6645
6646         * init.c (cleanup): Do all those complex cleanups only if
6647         DEBUG_MALLOC is defined.
6648
6649         * main.c: Removed --simple-check and the corresponding
6650         simple_host_check in init.c.
6651
6652         * html-url.c (handle_link): Parse the URL here, and propagate the
6653         parsed URL to the caller, who would otherwise have to parse it
6654         again.
6655
6656         * host.c (xstrdup_lower): Moved to utils.c.
6657         (realhost): Removed.
6658         (same_host): Ditto.
6659
6660 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6661
6662         * utils.c (path_simplify): Preserver the (non-)existence of
6663         leading slash.  Return non-zero if changes were made.
6664
6665 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6666
6667         * progress.c (bar_update): Don't modify bp->total_length if it is
6668         zero.
6669
6670 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6671
6672         * retr.c (retrieve_url): When the redirection URL doesn't parse,
6673         print the correct error message rather than "UNKNOWN".
6674
6675 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6676
6677         * progress.c (bar_finish): If the timer didn't record any time
6678         since the download beginning, fake 1ms.
6679
6680 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6681
6682         * recur.c (recursive_retrieve): Fix typo.
6683
6684 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
6685
6686         * progress.c (create_image): Don't translate "%ld ".
6687
6688 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
6689
6690         * progress.c (bar_set_params): Allow the user to force the use of
6691         the bar.
6692
6693 2001-11-23  Lemble Gregory  <gregory.lemble@st.com>
6694
6695         * gen_sslfunc.c (ssl_init_prng): New function; seed the SSL RNG.
6696
6697 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
6698
6699         * progress.c: Renamed dp_* functions to dot_* for greater clarity
6700         and consistency with bar_*.
6701         (print_download_speed): Get rid of the unneeded '@' character.
6702         (create_image): Fix download rate geometry.
6703
6704         * progress.c (print_elapsed): Remove spurious space.
6705         (print_elapsed): Renamed to print_download_speed, since that's
6706         what it does.
6707
6708 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
6709
6710         * progress.c (bar_update): If the downloaded amount becomes larger
6711         than the expected amount, adjust the expected amount accordingly.
6712
6713 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
6714
6715         * utils.c (determine_screen_width): New function.
6716
6717         * main.c (main): New option `--progress=TYPE'.
6718         (main): Implement compatibility with the old option `--dot-style'.
6719
6720         * init.c: Removed cmd_spec_dotstyle -- that logic is now in
6721         dp_set_params.
6722         (cmd_spec_progress): New function.
6723
6724         * retr.c (get_contents): Use the progress_* functions instead of
6725         the old show_progress().
6726         (show_progress): Removed.
6727         (rate): Print "xxxx.xx K/s" instead of "KB/s".  Ditto for MB/s,
6728         etc.
6729
6730         * progress.c (set_progress_implementation): New function.
6731         (valid_progress_implementation_p): Ditto.
6732         (progress_create): Ditto.
6733         (progress_update): Ditto.
6734         (progress_finish): Ditto.
6735         (dp_create): Ditto.
6736         (dp_update): Ditto.
6737         (dp_finish): Ditto.
6738         (dp_set_params): Ditto.
6739         (print_elapsed): Ditto.
6740
6741 2001-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
6742
6743         * retr.c (show_progress): Use it.
6744
6745         * log.c (log_set_flush): New function.
6746
6747 2001-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
6748
6749         * utils.c (path_simplify): Don't remove trailing slashes.
6750
6751         * ftp.c (ftp_get_listing): Use it.
6752
6753         * utils.c (file_merge): New function.
6754
6755         * url.c (opt_url): Removed.
6756
6757         * recur.c (recursive_retrieve): Inline "opt_url" logic.
6758
6759         * main.c (main): Use xfree(), not free().
6760
6761         * url.c (rewrite_url_maybe): Renamed to rewrite_shorthand_url.
6762
6763         * ftp.c (ccon): Move `ccon' typedef here, since it's only used
6764         internally.
6765
6766         * config.h.in: Include a stub for HAVE_STRPBRK.
6767
6768         * cmpt.c (strpbrk): Include a replacement for systems without
6769         strpbrk().
6770
6771         * ftp.c: Use url_set_dir and url_set_file when modifying the URL.
6772
6773         * url.c (url_set_dir): New function.
6774         (url_set_file): Ditto.
6775
6776         * ftp-basic.c (ftp_process_type): Process FTP type here; the URL
6777         parser makes the URL "params" available, so we can do that in this
6778         function.
6779
6780         * retr.c: Ditto.
6781
6782         * ftp.c: Ditto; pass the local file information in `ccon'.
6783
6784         * http.c: Get rid of the ugly kludge that had URL being replaced
6785         with the proxy URL when proxy retrieval was requested.  Use a
6786         separate parameter to http_loop and gethttp for the proxy URL.
6787
6788         * http.c: Changed to reflect the fact that local file, proxy, and
6789         referer information are no longer stored in struct url.  The local
6790         file information is passed in `struct hstat' now.
6791
6792         * url.c: Reworked URL parsing to be more regular.  Reencode the
6793         URL using reencode_string.
6794         Removed non-URL-related information from struct url.  This
6795         includes fields `proxy', `local', and `referer'.
6796
6797 2001-11-22  Jochen Hein  <jochen@jochen.org>
6798
6799         * main.c (main): Split the copyright notice for easier
6800         translation.
6801
6802 2001-08-21  Dave Turner <dct25@hermes.cam.ac.uk>
6803
6804         * ftp-basic.c (ftp_size): New function to send non-standard SIZE
6805           command to server to request file size.
6806         * ftp.h (ftp_size): Export it.
6807         * ftp.c (getftp): Use new ftp_size function if restoring
6808           transfer of a file with unknown size.
6809
6810 2001-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
6811
6812         * url.c (parseurl): Don't depend on the now-obsolete TYPE.
6813
6814 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6815
6816         * url.c (getproxy): Handle URL shorthands.
6817
6818 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6819
6820         * main.c: Remove --wait / --waitretry backwards compatibility
6821         code.
6822         
6823 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6824
6825         * main.c (main): Use it.
6826
6827         * url.c (rewrite_url_maybe): New function.
6828
6829 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6830
6831         * url.c: Clean up handling of URL schemes.
6832
6833 2001-05-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6834
6835         * url.c: Get rid of `protostrings'.
6836         (skip_proto): Don't use protostrings.
6837         (has_proto): Ditto.
6838
6839 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
6840
6841         * Makefile.in: Conditionally compile getopt.o.
6842
6843 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
6844
6845         * md5.h: Renamed to gnu-md5.h.
6846
6847         * md5.c: Renamed to gnu-md5.c.
6848
6849         * http.c: Ditto.
6850
6851         * ftp-opie.c: Use the new macros.
6852
6853         * sysdep.h: Define md5-related macros.
6854
6855         * config.h.in: Define HAVE_SOLARIS_MD5 or HAVE_BUILTIN_MD5
6856         depending on which md5 implementation is used.
6857
6858 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
6859
6860         * res.c (res_register_specs): Initialize OLD and HP_OLD to appease
6861         the compiler.
6862
6863 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
6864
6865         * http.c (gethttp): Print the whole response line when printing
6866         headers is requested.
6867
6868 2001-05-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6869
6870         * res.c: New file.  Implement all RES-related code here.
6871
6872 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
6873
6874         * version.c: Wget 1.7.1 is released.
6875
6876 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
6877
6878         * headers.c (header_extract_number): Ignore trailing whitespace.
6879
6880 2001-08-24  Ian Abbott  <abbotti@mev.co.uk>
6881
6882         * html-url.c (collect_tags_mapper): Fix bug converting links
6883         with -k option for tags with multiple link attributes by
6884         handling links in the order they appear.
6885
6886 2001-08-15  Ian Abbott  <abbotti@mev.co.uk>
6887
6888         * ftp.c (ftp_loop_internal): Avoid a potential buffer overflow in
6889           the call to the 'rate' function by moving it past the error
6890           checking for the 'getftp' function return value.
6891
6892 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
6893
6894         * html-parse.c (advance_declaration): Use 0x22 instead of '"' or
6895         '\"'.  Different compilers' assert macros are broken in different
6896         ways.
6897
6898 2001-09-29  Christian Fraenkel  <c.fraenkel@gmx.net>
6899
6900         * http.c (gethttp): print debug output for errors occuring during
6901         the ssl handshake.
6902
6903 2001-11-16  Chris Seawood  <cls@seawood.org>
6904
6905         * init.c: Ditto.
6906
6907         * host.c: Ditto.
6908
6909         * connect.c: Ditto.
6910
6911         * sysdep.h: Support compilation under BEOS.
6912
6913 2001-06-08  Edward J. Sabol  <sabol@alderaan.gsfc.nasa.gov>
6914
6915         * url.c (url_equal): Fix a memory leak when parseurl returns an
6916         error on the second URL. Also, since url_equal is not used at the
6917         moment, do not compile it.
6918
6919         * url.h: Ditto for the prototype of url_equal.
6920
6921 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
6922
6923         * html-parse.c (map_html_tags): Support XML-style empty tags.
6924
6925 2001-06-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6926
6927         * wget.h (DO_REALLOC_FROM_ALLOCA): Check for do_realloc_newsize in
6928         loop condition because we're no longer setting SIZEVAR here.
6929
6930 2001-06-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6931
6932         * wget.h (DO_REALLOC_FROM_ALLOCA): Set SIZEVAR after the memcpy()
6933         call because it needs the old value.
6934
6935 2001-06-18  Hrvoje Niksic  <hniksic@arsdigita.com>
6936
6937         * cookies.c (ATTR_NAME_CHAR): Allow almost any character to be in
6938         an attribute name.
6939
6940 2001-06-18  Hrvoje Niksic  <hniksic@arsdigita.com>
6941
6942         * url.c (url_filename): Make sure that slashes that sneak in to
6943         u->file via query string get protected.
6944         (file_name_protect_query_string): New function.
6945
6946 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6947
6948         * recur.c (recursive_retrieve): Also check undesirable_urls with
6949         canonicalized URL.
6950
6951 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6952
6953         * http.c (gethttp): Search `.netrc' with real host, not the proxy
6954         one.
6955
6956 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6957
6958         * sysdep.h (MAP_FAILED): Provide MAP_FAILED for systems that don't
6959         define it.
6960
6961 2001-06-09  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
6962
6963         * ftp.h: Provide correct prototype for ftp_parse_ls().
6964
6965 2001-06-04  Hrvoje Niksic  <hniksic@arsdigita.com>
6966
6967         * version.c: Wget 1.7 is released.
6968
6969 2001-06-03  Karl Eichwalder  <ke@suse.de>
6970
6971         * ftp-ls.c (ftp_parse_ls): Fix typo.
6972
6973 2001-05-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6974
6975         * all: Update copyright information.
6976
6977 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6978
6979         * http.c (gethttp): Indicate that the continued download failed
6980         for *this* file.
6981
6982 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6983
6984         * version.c: Wget 1.7-pre1 is released.
6985
6986 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6987
6988         * version.c: Updated version to 1.7-pre1.
6989
6990 2001-05-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6991
6992         * gen_sslfunc.c: Don't include <sys/time.h> directly.
6993
6994 2001-05-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6995
6996         * http.c (gethttp): Use real URL data for cookies, not the proxy
6997         stuff.
6998
6999 2001-05-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7000
7001         * main.c (print_help): Document `--no-http-keep-alive'.
7002
7003         * utils.c (numdigit): Handle negative numbers *correctly*.
7004
7005         * hash.c (make_nocase_string_hash_table): Use term "nocase" rather
7006         than the confusing "unsigned".
7007
7008         * utils.c (string_set_contains): Renamed from string_set_exists.
7009
7010         * hash.c (hash_table_contains): Renamed from hash_table_exists.
7011
7012         * cookies.c: Move case-insensitive hash tables to hash.c.
7013
7014 2001-05-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7015
7016         * http.c (gethttp): Before concluding that the file is already
7017         fully retrieved, make sure that the file existed and `Range' was
7018         actually requested.
7019
7020 2001-05-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7021
7022         * cookies.c (eliminate_dups): New function.
7023         (build_cookies_request): Use it.
7024         (build_cookies_request): Set chain_store_size after reallocating
7025         all_chains.
7026         (check_domain_match): Annotated for easier future debugging.
7027         (store_cookie): In the debug message, print whether the cookie is
7028         permanent.
7029
7030 2001-05-08  Hrvoje Niksic  <hniksic@arsdigita.com>
7031
7032         * http.c (http_loop): Reset no_truncate before deciding whether to
7033         set it.
7034         (gethttp): Further clarify "-c conflicts with existing file" error
7035         message, based on input from Herold Heiko.
7036
7037 2001-05-07  Hrvoje Niksic  <hniksic@arsdigita.com>
7038
7039         * http.c (http_loop): If restval is set, set no_truncate to 1
7040         unconditionally.
7041
7042 2001-05-02  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7043
7044         * ftp-ls.c (ftp_parse_winnt_ls): Assure months are being correctly
7045         converted. Pointed out by <Stefan.Weil@de.heidelberg.com>.
7046         (ftp_parse_vms_ls): Ditto.
7047
7048 2001-04-30  Hrvoje Niksic  <hniksic@arsdigita.com>
7049
7050         * init.c (cmd_address): Zero SIN before using it; apparently
7051         needed on *BSD.
7052
7053 2001-04-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7054
7055         * ftp.c (ftp_loop_internal): Don't set NO_TRUNCATE if the file is
7056         empty.
7057
7058 2001-04-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7059
7060         * main.c (main): Make `--cookies' respect its argument.
7061
7062 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
7063
7064         * main.c (main): Removed undocumented option `--email-address'.
7065
7066         * netrc.c: Use the latest read_whole_line.
7067
7068         * init.c (defaults): Set opt.ftp_pass to "-wget@".
7069
7070         * mswindows.c (pwd_cuserid): Ditto.
7071
7072         * utils.c (pwd_cuserid): Removed.
7073
7074         * host.c (ftp_getaddress): Removed.
7075
7076 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
7077
7078         (http_loop): Allocate space for filename_plus_orig_suffix with
7079         alloca; this is more efficient and removes the need to free it
7080         before each and every return.
7081
7082 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
7083
7084         * http.c (gethttp): Return RETRUNNEEDED when the retrieval is
7085         unneeded because the file is already there and fully downloaded,
7086         and -c is specified.
7087         (http_loop): Handle RETRUNNEEDED.
7088
7089         * wget.h (uerr_t): New value RETRUNNEEDED.
7090
7091         * http.c (http_loop): Set no_truncate for files that both exist
7092         and are non-empty.
7093         (gethttp): Consider the download finished when restval >= contlen,
7094         not only when restval==contlen.
7095         (gethttp): Handle redirection before giving up due to -c.
7096         (gethttp): Clarify error message which explains that -c will not
7097         truncate the file.
7098         (gethttp): When returning CONTNOTSUPPORTED, don't forget to free
7099         the stuff that needs freeing and release the socket.
7100
7101 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7102
7103         * main.c (print_help): Wget booleans accept "off", not "no".
7104
7105 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7106
7107         * http.c (http_loop): If allow_cache is zero, always disable
7108         caching, not only when retrieving through proxy.
7109
7110         * init.c: Ditto.
7111
7112         * options.h (struct options): Rename proxy_cache to allow_cache.
7113
7114 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7115
7116         * http.c (mktime_from_utc): Improve documentation.
7117         (http_atotm): Put format strings into a separate array.
7118
7119 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7120
7121         * safe-ctype.h: Instead of throwing #error when isalpha is
7122         defined, redefine it to something that will throw a compile-time
7123         error if actually *used*.  Do the same for the rest of the
7124         standard C macros.
7125
7126 2001-04-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7127
7128         * url.c (getproxy): Ignore empty proxy vars.
7129
7130 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7131
7132         * http.c (http_loop): Would load cookies every time.
7133
7134         * cookies.c (load_cookies): Handle cookies whose values contain
7135         embedded spaces.
7136
7137 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7138
7139         * utils.c: Define each DIGITS_* in one line.
7140
7141 2001-04-25  Roger L. Beeman  <beeman@cisco.com>
7142
7143         * http.c (http_atotm): Initialize t.tm_isdst to 0.
7144         (mktime_from_utc): Prevent mktime() from having discontinuities at
7145         DST transition points.
7146
7147 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7148
7149         * html-url.c (get_urls_html): Fix documentation.
7150
7151 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7152
7153         * url.c (UNSAFE_CHAR): Reimplement using a static table.
7154         (url_init): Removed.
7155         (init_unsafe_char_table): Removed.
7156
7157 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7158
7159         * snprintf.c (dopr): Replace ISDIGIT with '0' <= ch && ch <= '9'.
7160
7161 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7162
7163         * utils.c: Document timer functions.
7164
7165         * retr.c (rate): Use it.
7166         (rate): Print in GB/s if transfer rate exceeds 1 GB/s.
7167
7168         * utils.c (wtimer_granularity): New function.
7169
7170 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7171
7172         * retr.c (show_progress): Ditto.
7173
7174         * ftp.c (getftp): Ditto.
7175
7176         * http.c (gethttp): Use new timer functions.
7177
7178         * utils.c (wtimer_allocate): New function.
7179         (wtimer_new): Ditto.
7180         (wtimer_delete): Ditto.
7181         (wtimer_reset): Ditto.
7182         (wtimer_elapsed): Ditto.
7183
7184 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7185
7186         * utils.c (long_to_string): New, faster version.  Favors smaller
7187         numbers; much of the calculation is now done at compile-time.
7188
7189 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7190
7191         * utils.c (numdigit): Handle negative numbers.
7192
7193 2001-04-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7194
7195         * retr.c (show_progress): Print the download rate even when the
7196         percentages are not available.
7197
7198 2001-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
7199
7200         * ftp.c (getftp): Adjust expected_bytes if the length is
7201         authoritative.
7202
7203 2001-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7204
7205         * url.c: Don't declare `construct'.
7206
7207         * hash.c (grow_hash_table): Speed up rehashing; inline storing of
7208         mappings to new locations.
7209         (hash_table_new): Make resize_threshold a field in the hash table,
7210         so we don't have to recalculate it in each hash_table_put.
7211         (grow_hash_table): Update resize_threshold.
7212         (MAX): Remove unused macro.
7213         (prime_size): Made static.
7214
7215 2001-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7216
7217         * retr.c (retrieve_url): Call uri_merge, not url_concat.
7218
7219         * html-url.c (collect_tags_mapper): Call uri_merge, not
7220         url_concat.
7221
7222         * url.c (mkstruct): Use encode_string instead of xstrdup followed
7223         by URL_CLEANSE.
7224         (path_simplify_with_kludge): Deleted.
7225         (contains_unsafe): Deleted.
7226         (construct): Renamed to uri_merge_1.
7227         (url_concat): Renamed to uri_merge.
7228
7229 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7230
7231         * url.c (str_url): Use encode_string instead of the unnecessary
7232         CLEANDUP.
7233         (encode_string_maybe): New function, returns input string if no
7234         encoding is needed.
7235         (encode_string): Call encode_string_maybe to do the dirty work,
7236         xstrdup if no work needed.
7237
7238 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7239
7240         * wget.h (XDIGIT_TO_xchar): Define here.
7241
7242         * url.c (decode_string): Use new name.
7243         (encode_string): Ditto.
7244
7245         * http.c (XDIGIT_TO_xchar): Rename HEXD2asc to XDIGIT_TO_xchar.
7246         (dump_hash): Use new name.
7247
7248         * wget.h: Rename ASC2HEXD and HEXD2ASC to XCHAR_TO_XDIGIT and
7249         XDIGIT_TO_XCHAR respectively.
7250
7251 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7252
7253         * init.c: Include cookies.h.
7254
7255         * cookies.h: Declare cookies_cleanup.
7256
7257         * cookies.c (check_domain_match): Remove unused variable.
7258         (save_cookies): Remove extraneous argument from debug statement.
7259
7260         * host.c (same_host): Don't call skip_url.
7261
7262         * url.c (skip_url): Removed.  Removed its calls from various
7263         functions in url.c.
7264
7265 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7266
7267         * cookies.c (unsigned_string_hash): Use the new code in
7268         string_hash as reference.
7269
7270         * hash.c (hash_table_map): Allow deletion and change of the
7271         element processed by MAPFUN.
7272         (string_hash): Use the function from glib.
7273
7274 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7275
7276         * config.h.in: Include #undef stub.
7277
7278         * hash.c (hash_table_remove): Rewrite to actually clear deleted
7279         entries instead of just marking them as deleted.
7280
7281 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7282
7283         * hash.h: Declare hash_table_get_pair and hash_table_count.
7284
7285 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7286
7287         * cookies.c: Declare http_atotm.
7288
7289 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7290
7291         * ftp-ls.c (ftp_parse_unix_ls): Use octal constants for
7292         permissions.  A compiler that doesn't accept octal constants is
7293         seriously broken and shouldn't be used -- octal constants were
7294         present in K&R C!
7295
7296 2001-01-20  Karl Eichwalder  <ke@suse.de>
7297
7298         * Makefile.in: Provide and use DESTDIR according to the Coding
7299         Standards.
7300
7301 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7302
7303         * ftp-ls.c (ftp_parse_vms_ls): Make seconds optional in time
7304         specification.
7305
7306 2001-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7307
7308         * url.c (parseurl): Don't strip trailing slash when u->dir is "/"
7309         because that strips the *leading* slash, thus forcing relative
7310         FTP retrieval.
7311
7312 2001-04-10  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7313
7314         * ftp.c (getftp): Convert initial FTP directory from VMS to UNIX
7315         notation for VMS servers. 
7316         (ftp_retrieve_dirs): Do not prepend '/' to f->name when
7317         odir is an empty string.
7318
7319 2001-04-10  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7320
7321         * ftp-ls.c (ftp_parse_winnt_ls): Made the fix for AM/PM more
7322         effective. Suggested by Edward J. Sabol.
7323
7324 2001-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
7325
7326         * cookies.c (build_cookies_request): Use and sort cookies from all
7327         matching domains.
7328         (build_cookies_request): Check for duplicates before generating
7329         the `Cookies' header.
7330
7331         * main.c (main): Don't load cookies here.
7332         (main): Make loadcookies and savecookies call the correct command.
7333
7334         * http.c (http_loop): Load cookies on-demand.
7335
7336 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7337
7338         * http.c (gethttp): Fix indentation of SSL ifdef.
7339
7340 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7341
7342         * ftp.c (ftp_retrieve_dirs): Don't forcibly prepend "/" to u->dir;
7343         that hack is no longer necessary.
7344         (getftp): Prepend initial directory to *non*-absolute u->dir's.
7345
7346 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7347
7348         * init.c (cmd_file): New function.
7349         (enable_tilde_expansion): New variable.
7350         (run_wgetrc): Use it.
7351         (cmd_file): Use it.
7352
7353 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
7354
7355         * init.c: Include cookie-related options.
7356
7357         * main.c (main): Include cookie-specific options.
7358         (main): Load cookies before download is finished.
7359         (main): Save cookies when done.
7360
7361         * http.c (gethttp): Process the `Set-Cookie' header.
7362         (gethttp): Include cookies in the response.
7363
7364         * cookies.c: New file.
7365
7366 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
7367
7368         * utils.c (datetime_str): New function.
7369
7370 2001-04-08  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7371
7372         * ftp-ls.c (ftp_parse_winnt_ls): The AM/PM change did assume
7373         12:01PM == 00:01, which was obviously wrong. Taken care of this
7374         anomaly.
7375
7376         * ChangeLog: Removed an excess conflict marker. Reformatted the
7377         entry by Philipp Thomas from 2001-03-09.
7378
7379         * ftp-ls.c (ftp_parse_winnt_ls): Ensure that adjusted PM hours lay
7380         between 0 and 23. Elminate unused variable `sec'.
7381
7382 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
7383
7384         * hash.c (hash_table_count): New function.
7385
7386 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7387
7388         * utils.c (read_file): Cast MAP_FAILED to char *.  Enforced by
7389         Digital Unix cc.
7390
7391 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7392
7393         * config.h.in: Oops, do the namespace tweaks only on systems we
7394         know about.
7395
7396 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7397
7398         * hash.c: Include <string.h>.
7399
7400 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7401
7402         * config.h.in: Define "compilation environment" options that work
7403         under Linux and Solaris.  To be reviewed on other OS'es.
7404
7405 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7406
7407         * http.c (gethttp): Prepend literal newline with `\n\'.
7408
7409 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7410
7411         * sysdep.h: Don't define VERY_LONG_FORMAT.
7412
7413         * utils.c (very_long_to_string): New function.
7414         (legible_very_long): Use it; don't use VERY_LONG_FORMAT.
7415
7416 2001-04-04  Christian Fraenkel  <christian.fraenkel@gmx.net>
7417
7418         * url.c (parse_uname): Would run past the end of the string if the
7419         username was present, but the URL did not contain a slash, e.g.
7420         http://foo:bar@myhost.
7421
7422 2001-04-03  KOJIMA Hajime  <kjm@rins.ryukoku.ac.jp>
7423
7424         * http.c (http_atotm): Use %A instead of %a to match full
7425         weekday.  (On most systems there is no difference.)
7426
7427 2001-04-03  Paul Bludov  <paul@ozero.net>
7428
7429         * mswindows.c (sleep): Use SleepEx() instead of Sleep().
7430         (ws_changetitle): Use alloca() instead of malloc() to avoid memory
7431         leak.
7432         (ws_mypath): Use GetModuleFileName instead of argv[0].
7433         (ws_startup): Use data.wVersion for comparison.
7434
7435 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7436
7437         * http.c (http_loop): Ditto.
7438
7439         * ftp.c (ftp_loop_internal): Made the check whether to continue
7440         retrieval `-O'-friendly.
7441
7442 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7443
7444         * netrc.c (parse_netrc): Don't trim the line endings explicitly;
7445         they will be handled as whitespace.
7446         (parse_netrc): Correctly handle lines that end with whitespace.
7447
7448 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7449
7450         * retr.c (retrieve_url): New variable global_download_count used
7451         to identify first retrieval.
7452
7453         * ftp.c (getftp): Ditto.
7454
7455         * http.c (gethttp): Rewind opt.dfp only on first retrieval.
7456
7457 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7458
7459         * init.c (cmd_address): Heap-allocate the address that gets stored
7460         to CLOSURE.  Old code would simply assign an address on the stack.
7461
7462 2001-04-01  Nicolas Lichtmaier <nick@debian.org>
7463
7464         * ftp.c (ftp_get_listing): Propagate error status.
7465         (ftp_retrieve_glob): Use it.
7466         (ftp_loop): Ditto.
7467
7468 2001-04-01  Nicolas Lichtmaier <nick@debian.org>
7469
7470         * main.c (main): Add -C to the string that is the third arg to
7471         getopt_long().
7472
7473 2001-04-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7474
7475         * ftp.c (getftp): Don't start the download from scratch if `-c'
7476         was specified, but the file is already fully downloaded.
7477
7478         * http.c (gethttp): Don't truncate a pre-existing file if `-c' was
7479         specified and the server doesn't support continued download.
7480         (gethttp): Don't start the download from scratch if `-c' was
7481         specified, but the file is already fully downloaded.
7482
7483 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7484
7485         (recursive_retrieve): Don't clear the hash tables at this point at
7486         all; it interferes with the normal operation of register_download.
7487
7488 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7489
7490         * recur.c (recursive_retrieve): Clear the hash tables only when
7491         they are defined.
7492
7493 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7494
7495         * http.c (gethttp): Make sure the socket is closed with
7496         CLOSE_INVALIDATE before we have drained the body.
7497
7498 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7499
7500         * retr.c (retrieve_url): Call register_download() for downloaded
7501         files and register_html() for downloaded HTML files.
7502
7503         * recur.c (register_download): New function; register here that a
7504         file has been downloaded, rather than in recursive_retrieve().
7505         (register_html): New function; enqueue the location of HTML files
7506         here rather than in recursive_retrieve().
7507
7508 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7509
7510         * main.c (print_help): Use multiple fputs instead of a single ugly
7511         printf().
7512         (main): Consistently assign numbers >128 to options without a
7513         corresponding character.
7514
7515 2001-03-09  Philipp Thomas  <pthomas@suse.de>
7516
7517         * safe-ctype.h: New file. Locale independent ctype.h replacement
7518         taken from libiberty.
7519
7520         * safe-ctype.c: New file. Tables for above.
7521
7522         * Makefile.in: Add safe-ctype$o to OBJS.  Add dependencies for
7523         safe-ctype$o.
7524
7525         * cmpt.c: Remove include of ctype.h. Use ISSPACE instead of
7526         isspace.
7527
7528         * ftp-basic.c: Don't include ctype.h.
7529
7530         * ftp-ls.c: Likewise.
7531
7532         * ftp.c: Likewise.
7533
7534         * headers.c: Likewise.
7535
7536         * host.c: Likewise.
7537
7538         * html-parse.c: Likewise.
7539
7540         * html-url.c: Likewise.
7541
7542         * http.c: Likewise.
7543
7544         * init.c: Likewise.
7545
7546         * main.c: Likewise. Set LC_CTYPE along with LC_MESSAGES.
7547
7548         * netrc.c: Likewise.
7549
7550         * recur.c: Likewise.
7551
7552         * retr.c: Likewise.
7553
7554         * snprintf.c: Replace ctype.h with safe-ctype.h. Use ISDIGIT
7555         instead of isdigit.
7556
7557         * sysdep.h: Remove defines of ctype macros as they aren't needed
7558         for safe-ctype-h.
7559
7560         * url.c: Don't include ctype.h.
7561
7562         * utils.c: Likewise.
7563
7564         * wget.h: Include safe-ctype.h.
7565
7566 2001-03-27  Dan Harkless  <wget@harkless.org>
7567
7568         * Makefile.in: Moved top_builddir out of "User configuration
7569         section" of top Makefile and analogous spot in this one.
7570
7571 2001-03-17  Dan Harkless  <wget@harkless.org>
7572
7573         * Makefile.in: Include @SSL_INCLUDES@ substition in INCLUDES.
7574         Define top_builddir.  Link wget with libtool so the user doesn't
7575         have to supply a bunch of custom environment variables to 
7576         correctly link with the OpenSSL shared libraries.
7577
7578 2001-03-06  Hack Kampbjorn  <hack@hackdata.com>
7579
7580         * http.c (gethttp): skip :port in host header if it is the
7581         DEFAULT_HTTPS_PORT when using SSL.
7582
7583         * url.c: move the #define of DEFAULT_HTTP_PORT, DEFAULT_FTP_PORT
7584         and DEFAULT_HTTPS_PORT to the header file so it can be use in the
7585         rest of the code. 
7586         * url.h: Ditto
7587
7588 2001-03-01  Jonas Jensen  <bones@huleboer.dk>
7589
7590         * retr.c (show_progress): Correctly calculate the number of bytes
7591         in the first line of the download that have been actually
7592         downloaded in this run.
7593
7594 2001-02-23  Dan Harkless  <wget@harkless.org>
7595
7596         * main.c (print_help): --help documentation for -N said it would
7597         re-download files if they had the _same_ timestamp on server.
7598         (print_help): -nr belongs in "FTP options" section of --help
7599         output, not "Recursive retrieval" section.  Alphabetized FTP
7600         options by long option name.
7601
7602 2001-02-16  Dan Harkless  <wget@harkless.org>
7603
7604         * init.c (commands): Hack Kampbjørn <hack@hackdata.com> discovered
7605         that "httpsproxy" had been inserted into commands[] out of
7606         alphabetical order, causing "BUG: unknown command `httpuser'".
7607
7608 2001-02-13  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7609
7610         * ftp-ls.c (ftp_parse_ls): Added support of ST_MACOS (Unix-like
7611         listing without correct permissons).
7612
7613         * ftp.h (stype): Added ST_MACOS to identify the NetPresenz MacOS
7614         FTP server. 
7615
7616         * ftp.c (ftp_retrieve_list): New mirroring logic: A remote file
7617         shall be donwloaded only when it's newer than the local copy or
7618         when it has the same timeestamp but its size is different. ST_VMS
7619         and ST_MACOS as special cases that lie about file size. 
7620
7621         * ftp-ls.c (ftp_parse_ls): Support for ST_MACOS.
7622
7623         * Makefile.in: Removed dependency on ftpparse library due to unclear
7624         copyright issues and absence of any feedback to our queries. 
7625
7626         * ftp-ls.c: Removed dependency on ftpparse library due to unclear
7627         copyright issues and absence of any feedback to our queries.   
7628         (ftp_parse_ls): Added a warning message when remote server system
7629         does not seem to be suported by wget. 
7630         (ftp_parse_vms_ls): New function for parsing VMS ftp
7631         server listing output.
7632         (clean_line): New function responsible for removing
7633         end-of-line characters from FTP listing texts.
7634
7635         * ftp.c (getftp): Global variables pwd and host_type are now
7636         member of the ccon structure under names ccon.id and ccon.rs. 
7637
7638         * ftp.h (struct ccon): Added formed global variables from ftp.c,
7639         enum stype rs (remote system identification) and char *id (initial
7640         working directory), as suggested by Hrvoje.
7641
7642         * url.c (parse_uname): Added support for passwords containing '@'
7643         characters.
7644         (skip_uname): Ditto.
7645
7646 2001-02-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7647
7648         * ftp.c (ftp_loop): Reset con.
7649
7650 2001-01-06  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7651
7652         * url.c (parse_uname): Added support for passwords containing '@'
7653         characters.
7654         (skip_uname): Ditto.
7655
7656 2001-02-11  Hack Kampbjørn  <hack@hackdata.com>
7657
7658         * url.c (parseurl): Debug-print u->ftp_type.
7659
7660 2001-02-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7661
7662         * ftp.c (ftp_loop_internal): Disable padding.
7663         (getftp): Ditto.
7664
7665         * http.c (http_loop): Disable padding.
7666
7667         * retr.c (show_progress): Use it to enable padding.
7668
7669         * retr.c (rate): Optional parameter PAD for padding the rate.
7670
7671 2001-02-10  Hrvoje Niksic  <hniksic@arsdigita.com>
7672
7673         * retr.c (show_progress): Make sure that the last output line
7674         includes progress.
7675
7676 2001-02-10  Jonas Jensen  <bones@huleboer.dk>
7677
7678         * retr.c (show_progress): Print the download rate along with the
7679         percentages.
7680         Along with Anders Thorsby <anders@thorsby.dk>.
7681
7682 2001-02-10  Tim Mooney  <mooney@dogbert.cc.ndsu.NoDak.edu>
7683
7684         * ftp.h: Rename enums `command' to `wget_ftp_command' and
7685         `fstatus' to `wget_ftp_status' because old names clash with Tru64
7686         net/if.h.
7687
7688 2001-02-08  Christian Fraenkel <christian.fraenkel@gmx.net>
7689
7690         * gen_sslfunc.c: verify_callback is now static
7691
7692         * gen_sslfunc.c (init_ssl): load certificate if specified
7693
7694         * gen_sslfunc.c (ssl_printerr): new function
7695
7696         * init.c: added new --sslcertfile and --sslcertkey switches
7697
7698         * main.c: ditto
7699
7700         * options.h: ditto
7701
7702         * http.c (gethttp): abort when init_ssl fails
7703
7704 2001-01-23  Herold Heiko  <Heiko.Herold@previnet.it>
7705
7706         * mswindows.h: Include <malloc.h>; it's needed for alloca().
7707
7708 2001-01-10  Dan Harkless  <wget@harkless.org>
7709
7710         * url.c (str_url): Clarified this function's comment header after
7711         Hrvoje answered my question on the list as to when hide != 1.
7712         Also Hrvoje pointed out I need to use xstrdup() on the string literal.
7713
7714 2001-01-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7715
7716         * connect.c (bindport): Declare addrlen as int.  Diagnosed by
7717         Drazen Kacar <dave@arsdigita.com>.
7718         (conaddr): Ditto.
7719
7720 2001-01-09  Dan Harkless  <wget@harkless.org>
7721
7722         * html-url.c: A bunch of fixup of `--page-requisites'-related
7723         comments to reflect Hrvoje's changes to my code when transplanting
7724         it into this new file, to fix spelling mistakes, to clarify, etc.
7725
7726         * url.c (write_backup_file): Clarified a comment.
7727         (str_url): Henrik van Ginhoven pointed out on the list that we
7728         shouldn't give away the number of characters in the password by
7729         replacing each character with a 'x'.  Use "<password>" instead.
7730
7731         * ftp.c (ftp_retrieve_dirs): The bug where recursion into FTP
7732         directories didn't work if logging in put you in a directory other
7733         than "/" is fixed now.  Removed the comment here warning of the bug.
7734
7735         * main.c (print_help): --continue's description was misleading.
7736         We don't "restart", we "resume".  Also, better to say
7737         "partially-downloaded file" rather than just "existing file".
7738
7739 2001-01-06  Dan Harkless  <wget@harkless.org>
7740
7741         * ChangeLog: The '[Not in 1.6 branch.]'s were decided not to be
7742         the best way to go about my aim.  Removed them in favor of:
7743
7744         * ChangeLog-branches/1.6_branch.ChangeLog: New file.
7745
7746 2001-01-04  Hrvoje Niksic  <hniksic@arsdigita.com>
7747
7748         * url.c (replace_attr): New function, to be used by both
7749         TO_COMPLETE and TO_RELATIVE case in convert_links.
7750         (find_fragment): New function for finding URL fragments.
7751         (replace_attr): Better handle the case where the original string
7752         is not quoted.  Use find_fragment.
7753         (convert_links): Use replace_attr().
7754
7755 2000-12-31  Dan Harkless  <wget@harkless.org>
7756
7757         * ChangeLog: Since this flat file doesn't have multiple branches,
7758         looking at the dates would make you think that things went into
7759         1.6 that actually just went into the 1.7-dev branch.  Added "[Not
7760         in 1.6 branch.]" where appropriate to clarify.
7761         
7762 2000-12-30  Dan Harkless  <wget@harkless.org>
7763
7764         * ftp.c, http.c:  Applied Hack Kampbjørn <hack@hackdata.com>'s
7765         patch to deal with h_errno not being defined in netdb.h under Cygwin.
7766
7767 2000-12-18  Csaba Raduly  <csaba.raduly@sophos.com>
7768
7769         * sysdep.h: Include <malloc.h> and <io.h> under Watcom.
7770
7771 2000-12-17  Igor Khristophorov  <igor@atdot.org>
7772
7773         * http.c (check_end): Fix test for '+' or '-'.
7774
7775 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
7776
7777         * url.c (parseurl): Rename inner loop var from i to ind to avoid
7778         clash with the function top-level-declared variable i.
7779         (str_url): Likewise, rename inner-loop i to j.
7780
7781         * recur.c (parse_robots): Don't declare LEN at top of function.
7782         (robots_match): Renamed parameter FORBIDDEN to avoid hiding of
7783         global variable.
7784
7785         * main.c (main): Change erroneous use of bitwise and to logical.
7786
7787         * init.c (cmd_address): Don't heap-allocate `sin'; it can be on
7788         the stack because it will be copied to closure.
7789
7790         Thanks to Csaba Raduly's run of PC-LINT over the sources.
7791
7792 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
7793
7794         * http.c (basic_authentication_encode): Use xmalloc(), not
7795         malloc().  Thanks to Csaba Raduly's run of PC-LINT over the
7796         sources.
7797
7798 2000-12-17  Csaba Raduly  <csaba.raduly@sophos.com>
7799
7800         * sysdep.h: Test for __EMX__ rather than for EMXOS2 for OS/2
7801         compilation.
7802
7803 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
7804
7805         * mswindows.c: Include <errno.h>.
7806
7807         * gen_sslfunc.c: Include <errno.h>.
7808
7809         * ftp-basic.c: Don't attempt to declare errno or h_errno because
7810         they're not used.
7811
7812         * main.c: Include <errno.h> because errno is used.
7813
7814         * ftp.c: Ditto.
7815
7816         * http.c: Include <netdb.h> for h_errno.
7817
7818 2000-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7819
7820         * html-parse.c (advance_declaration): MSVC assert() chokes on
7821         '\"'.  Use '"' instead.
7822
7823 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7824
7825         * utils.c (xfree_real): Removed.
7826         (xfree_debug): Just call free().
7827
7828         * wget.h (xfree): Make it an alias for free.
7829
7830 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7831
7832         * http.c (http_loop): Furthermore, touch output_document only if
7833         it is known to be an existing regular file.
7834
7835 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7836
7837         * ftp.c (ftp_retrieve_list): Ditto.
7838
7839         * http.c (http_loop): Touch output_document if that is used for
7840         output.
7841
7842 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7843
7844         * http.c: Include gen_sslfunc.h after including Wget's headers.
7845         (persistent_available_p): Needed coma before `int ssl'.
7846
7847 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7848
7849         * ftp.c (ftp_loop_internal): Ditto.
7850
7851         * http.c (http_loop): Use it.
7852
7853         * retr.c (sleep_between_retrievals): New function that handles the
7854         logic of opt.wait and opt.waitretry.
7855
7856 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7857
7858         * rbuf.h: Implement only a single version of RBUF_READCHAR, using
7859         rbuf_read_bufferful when the buffer is depleted.
7860
7861         * rbuf.c (rbuf_read_bufferful): New function.
7862
7863 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7864
7865         * gen_sslfunc.h: Use ansi2knr style function declarations.
7866
7867         * gen_sslfunc.c: Reformat according to the GNU coding standards.
7868         More should be done.
7869
7870         * http.c (persistent_available_p): Place the cheap SSL test nearer
7871         the top of the function.
7872         (CLOSE_FINISH, CLOSE_INVALIDATE): Define only one version of each.
7873
7874 2000-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
7875
7876         * url.c (init_unsafe_char_table): Reinstate space as an unsafe
7877         char.
7878
7879 2000-12-03  Christian Fraenkel <christian.fraenkel@gmx.net>
7880
7881         * Makefile.in: added gen_sslfunc object
7882         * config.h.in: added HAVE_SSL define
7883         * connect.c: changed select_fd from static int to int
7884         * connect.h: ditto
7885         * gen_sslfunc.h: New file
7886         * gen_sslfunc.c: ditto
7887         * http.c: added HTTPS fuctionality
7888         * retrc.c: ditto
7889         * url.c: ditto
7890         * init.c: added opt.httpsproxy
7891         * options.h: ditto
7892         * rbuf.h: added alternate rbuf struct
7893         * wget.h: added CONSSLERR
7894         * rbuf.c: ditto
7895
7896         * http.c: Added HTTPS fuctionality.
7897
7898         * retrc.c: Ditto.
7899
7900         * url.c: Ditto.
7901
7902         * init.c: Added opt.httpsproxy.
7903
7904         * options.h: Ditto.
7905
7906         * rbuf.h: Added alternate rbuf struct.
7907
7908         * wget.h: Added CONSSLERR.
7909
7910         * rbuf.c: Ditto.
7911
7912 2000-11-30  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7913
7914         * ftp-ls.c (ftp_parse_unix_ls): Added second parameter
7915         "ignore_perms" to ignore file and directory permissions for
7916         Windows NT FTP server listings.
7917         (ftp_parse_winnt_ls): New function.
7918         (ftp_parse_ls): Parses UNIX and Windows NT listings
7919         separately. Simple heuristics for distinguishing between UNIX and
7920         MS-DOS-like FTP listing provided by Windows NT FTP service.
7921
7922 2000-11-18  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7923
7924         * ftpparse.c, ftpparse.h: New files.
7925
7926         * ftp-ls.c (ftp_parse_ls): Use ftp_parse_unix_ls for UNIX servers
7927         only. Use ftp_parse_nonunix_ls otherwise.
7928         (ftp_parse_nonunix_ls): Stub to the ftpparse library handling all
7929         exotic FTP servers.
7930
7931         * ftp.h (stype): New enum, distinguishes UNIX, VMS, and "other"
7932         FTP servers.
7933
7934         * ftp.c: New static wariables host_type, pwd, and pwd_len. 
7935         (getftp): Support for VMS. Support for FTP servers that do not
7936         place you in the root directory after login.
7937         (ftp_retrieve_list): VMS is silent about the real file size, issue
7938         a more appropriate message.
7939         (ftp_get_listing): Pass host_type to ftp_parse_ls.
7940
7941         * ftp-basic.c (ftp_pwd, ftp_syst): New functions.
7942
7943 2000-11-30  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7944
7945         * ftp-ls.c (ftp_parse_unix_ls): Added second parameter
7946         "ignore_perms" to ignore file and directory permissions for
7947         Windows NT FTP server listings.
7948         (ftp_parse_winnt_ls): New function.
7949         (ftp_parse_ls): Parses UNIX and Windows NT listings
7950         separately. Simple heuristics for distinguishing between UNIX
7951         and MS-DOS-like FTP listing provided by Windows NT FTP service.
7952
7953 2000-11-29  John Summerfield  <summer@OS2.ami.com.au>
7954
7955         * netrc.c (parse_netrc): Get rid of line ending.
7956
7957 2000-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7958
7959         * ftp.c (ftp_retrieve_list): Undo typo "fix" until resolution by
7960         Dan.
7961
7962 2000-11-24  Karl Eichwalder  <ke@suse.de>
7963
7964         * main.c (print_help): Untabify.
7965
7966 2000-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7967
7968         * utils.c (xrealloc_debug): Do the unregister/register thing only
7969         if the pointer has actually changed.
7970         (xmalloc_real): Declare `static' in DEBUG_MALLOC builds.
7971         (xfree_real): Ditto.
7972         (xrealloc_real): Ditto.
7973         (xstrdup_real): Ditto.
7974
7975 2000-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
7976
7977         * ftp.c (getftp): ftp_getaddress() returns a malloc'ed copy of the
7978         string; no need to strdup() it.
7979         (getftp): Make pwd_len a local variable.
7980         (ftp_loop): Free PWD before returning.
7981
7982         * init.c (cleanup): Free opt.ftp_pass only if it's non-NULL.
7983
7984 2000-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
7985
7986         * all: Use xfree() instead of free.
7987
7988         * utils.c (xfree): New function.
7989
7990 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
7991
7992         * url.c (convert_links): HTML-quote the converted string.
7993
7994         * utils.c (html_quote_string): Move here from ftp-ls.c
7995         (html_quote_string): Make non-static; declare in utils.h.
7996         (html_quote_string): Convert SP to &#32;.
7997
7998 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
7999
8000         * ftp.c (getftp): Reformat Jan's code according to GNU coding
8001         standards; remove (debugging?) printf's; use '\0' for the ASCII
8002         zero character.  Use alloca() instead of malloc() for
8003         inter-function temporary allocations.
8004
8005 2000-11-18  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8006
8007         * ftpparse.c, ftpparse.h: New files.
8008
8009         * ftp-ls.c (ftp_parse_ls): Use ftp_parse_unix_ls for UNIX servers
8010         only. Use ftp_parse_nonunix_ls otherwise.
8011         (ftp_parse_nonunix_ls): Stub to the ftpparse library handling all
8012         exotic FTP servers.
8013
8014         * ftp.h (stype): New enum, distinguishes UNIX, VMS, and "other"
8015         FTP servers.
8016
8017         * ftp.c: New static wariables host_type, pwd, and pwd_len. 
8018         (getftp): Support for VMS. Support for FTP servers that do not
8019         place you in the root directory after login.
8020         (ftp_retrieve_list): VMS is silent about the real file size, issue
8021         a more appropriate message.
8022         (ftp_get_listing): Pass host_type to ftp_parse_ls.
8023
8024         * ftp-basic.c (ftp_pwd, ftp_syst): New functions.
8025
8026 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
8027
8028         * hash.c (hash_table_put): Don't overwrite deleted mappings.
8029
8030 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
8031
8032         * hash.c (find_mapping): New function.
8033         (hash_table_get): Use it.
8034         (hash_table_get_pair): Ditto.
8035         (hash_table_exists): Ditto.
8036         (hash_table_remove): Ditto.
8037         (hash_table_remove): Really delete the entry if the mapping
8038         following LOCATION is empty.
8039
8040         * utils.c (string_set_add): Check whether the element has existed
8041         before.
8042
8043         * hash.c (hash_table_get_pair): New function.
8044
8045 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8046
8047         * http.c (http_process_type): Ignore trailing whitespace; use
8048         strdupdelim().
8049
8050         * recur.c (recursive_retrieve): Use the new `convert' field.
8051         (convert_all_links): Ditto.
8052         (convert_all_links): Don't respect meta_disallow_follow.
8053
8054         * html-url.c (handle_link): Fill out link_relative_p and
8055         link_complete_p.
8056
8057         * url.h (struct _urlpos): Make elements more readable.
8058
8059         * recur.c (recursive_retrieve): Call slist_prepend instead of
8060         slist_append.
8061         (convert_all_links): Call slist_nreverse before iterating through
8062         urls_html.
8063
8064         * utils.c (slist_prepend): New function.
8065         (slist_nreverse): Ditto.
8066
8067 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8068
8069         * http.c (check_end): Constify.
8070
8071 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8072
8073         * http.c (http_loop): If username and password are known, try the
8074         `Basic' authentication scheme by default.
8075
8076         * connect.h: Declare test_socket_open.
8077
8078 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8079
8080         * version.c: Bump version from 1.5.3+dev to 1.7-dev.
8081
8082 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8083
8084         * http.c (gethttp): Don't use the return value of sprintf().
8085         (gethttp): Inhibit keep-alive if opt.http_keep_alive is 0.
8086
8087 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8088
8089         * recur.c (recursive_retrieve): Print the "so we don't load"
8090         debugging message only if we really don't load.
8091
8092         * http.c (gethttp): Inhibit keep-alive if proxy is being used.
8093         (gethttp): Don't request keep-alive if keep-alive is inhibited.
8094
8095 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8096
8097         * http.c (gethttp): Make the HTTP persistent connections more
8098         robust.
8099
8100 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8101
8102         * retr.c (get_contents): If use_expected, make sure that the
8103         appropriate amount of data is being read.
8104
8105         * http.c (gethttp): Check for both `Keep-Alive: ...' and
8106         `Connection: Keep-Alive'.
8107
8108         * wget.h (DEBUGP): Call debug_logprintf only if opt.debug is
8109         turned on.
8110
8111 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8112
8113         * http.c (connection_available_p): Use it.
8114
8115         * connect.c (test_socket_open): New function.
8116
8117         * http.c (gethttp): Support persistent connections.  Based on the
8118         ideas, and partly on code, by Sam Horrocks <sam@daemoninc.com>.
8119         (register_persistent): New function.
8120         (connection_available_p): Ditto.
8121         (invalidate_connection): Ditto.
8122
8123 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8124
8125         * url.c (convert_links): Handle UREL2ABS case.
8126
8127         * recur.c (recursive_retrieve): Instead of the list
8128         urls_downloaded, use hash tables dl_file_url_map and
8129         dl_url_file_map.
8130         (convert_all_links): Use them to retrieve data.
8131
8132         * host.c (clean_hosts): Free the hash tables.
8133
8134         * main.c (private_initialize): Call host_init().
8135
8136         * host.c (store_hostaddress): Use a saner, hash table-based data
8137         model.
8138         (realhost): Ditto.
8139         (host_init): Initialize the hash tables.
8140
8141 2000-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
8142
8143         * utils.c (slist_append): Eviscerate NOSORT.  Hash tables are now
8144         used for what the sorted slists used to be used for.
8145         (slist_contains): Don't rely on the list being sorted.
8146         (slist_append): Simplify the code.
8147
8148         * recur.c (recursive_cleanup): Use free_string_set.
8149
8150         * utils.c (string_set_add, string_set_exists, string_set_free):
8151         New functions for easier freeing of hash tables whose keys are
8152         strdup'ed strings.
8153
8154         * recur.c (recursive_retrieve): Use the hash table functions for
8155         storing undesirable URLs.
8156
8157         * hash.c: New file.
8158
8159 2000-11-17  Hrvoje Niksic  <hniksic@arsdigita.com>
8160
8161         * main.c (private_initialize): Call url_init.
8162         (main): Call private_initialize.
8163
8164         * url.c (unsafe_char_table): New table.
8165         (UNSAFE_CHAR): Use it.
8166         (init_unsafe_char_table): New function.
8167         (url_init): New function; call init_unsafe_char_table.
8168
8169 2000-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
8170
8171         * mswindows.h: Define snprintf and vsnprintf to _snprintf and
8172         _vsnprintf respectively.
8173
8174 2000-11-15  Hrvoje Niksic  <hniksic@arsdigita.com>
8175
8176         * config.h.in: Do the _XOPEN_SOURCE and _SVID_SOURCE things only
8177         on Linux.
8178
8179 2000-11-15  Hrvoje Niksic  <hniksic@arsdigita.com>
8180
8181         * html-url.c (handle_link): Handle HTML fragment identifiers.
8182
8183         * recur.c (recursive_retrieve): If norobot info is respected and
8184         the file is specified not to be followed by robots, respect that.
8185
8186         * html-url.c (collect_tags_mapper): Handle <meta name=robots
8187         content=X>.  For us the important cases are where X is NONE or
8188         where X contains NOFOLLOW.
8189         (get_urls_html): Propagate that information to the caller.
8190
8191 2000-11-13  Hrvoje Niksic  <hniksic@arsdigita.com>
8192
8193         * url.c (convert_links): Unlink the file we might be reading from
8194         before writing to it.
8195         (convert_links): Use alloca instead of malloc for
8196         filename_plus_orig_suffix.
8197
8198 2000-11-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8199
8200         * host.c (realhost): Add HOST to the list with quality==0 only if
8201         it wasn't already there.
8202         Based on analysis by Lu Guohan <feng@public.bjnet.edu.cn>.
8203
8204 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8205
8206         * url.c (get_urls_file): Ditto.
8207         (convert_links): Ditto.
8208
8209         * html-url.c (get_urls_html): Use read_file() instead of
8210         load_file().
8211
8212         * utils.c (read_file): New function, instead of the old
8213         load_file().
8214         (read_file_free): Ditto.
8215
8216         * url.c (findurl): Search only for the supported protocols.
8217         (convert_links): Use fwrite() when writing out a region of
8218         characters.
8219
8220 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8221
8222         * ftp-ls.c: Move html_quote_string and ftp_index here.
8223
8224         * url.c: Remove get_urls_html, since that's now in html-url.c.
8225
8226         * html-url.c: New file.
8227
8228         * html-parse.c: New file.
8229
8230 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8231
8232         * init.c (run_wgetrc): Don't bother killing off '\r' since
8233         pars_line() skips whitespace at end of line anyway.
8234         (parse_line): Oops, it didn't.  Now it does.
8235
8236         * recur.c (parse_robots): Ditto here.
8237
8238         * ftp-ls.c (ftp_parse_unix_ls): Kill off the newline character
8239         manually because read_whole_line no longer does.
8240
8241         * utils.c (read_whole_line): Rewrite to: a) use less memory
8242         (reallocates to needed size after work), b) work faster -->
8243         fgets() instead of getc, c) be more correct --> doesn't kill the
8244         newline character at the end of line.
8245
8246 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8247
8248         * init.c (comind): Initialize MAX to array size - 1.
8249
8250 2000-11-08  Hrvoje Niksic  <hniksic@arsdigita.com>
8251
8252         * url.c (construct): Changed last_slash[-1] to *(last_slash - 1).
8253         Suggested by Edward J. Sabol.
8254
8255 2000-11-08  Hrvoje Niksic  <hniksic@arsdigita.com>
8256
8257         * url.c (construct): Handle the case where host name is not
8258         followed by a slash.
8259
8260 2000-11-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8261
8262         * init.c: commands[] need to be sorted!  ("base" wasn't.)
8263
8264 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
8265
8266         * wget.h (DO_REALLOC_FROM_ALLOCA): Use braces to disambiguate
8267         `if'.
8268
8269 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
8270
8271         * url.c (construct): Insert unneeded initialization for the
8272         compiler to shut up.
8273
8274         * config.h.in: Define _XOPEN_SOURCE to 500 to get the prototype
8275         for strptime() (*duh*).  Define _SVID_SOURCE to get S_IFLNK which
8276         otherwise gets lost when you define _XOPEN_SOURCE.
8277
8278         * utils.c (touch): Include the file name in the error message.
8279         From Debian.
8280
8281 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
8282
8283         * log.c (logvprintf): Use vsnprintf() in all cases.  If necessary,
8284         resize the buffer to fit the formated message.  That way, messages
8285         of arbitrary size may be printed.
8286         (logvprintf): Use saved_append() to optionally log the last
8287         several lines of output.
8288         (logputs): Ditto.
8289         (log_close): Adapt to new data structures.
8290         (log_dump): Ditto.
8291         (redirect_output): Print messages to stderr, not to stdout.
8292
8293         * log.c (saved_append_1): New function.  Replaces the old logging
8294         system ("log all output until 10M characters") with a new, much
8295         more reasonable one ("log last screenful of text").
8296         (saved_append): New function; call saved_append_1.
8297         (free_log_line): New function.
8298
8299 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
8300
8301         * url.c (construct): Fix comment.
8302         (find_last_char): Document.
8303
8304 2000-11-04  Hrvoje Niksic  <hniksic@arsdigita.com>
8305
8306         * snprintf.c: New file.
8307
8308 2000-11-03  Hrvoje Niksic  <hniksic@arsdigita.com>
8309
8310         * wget.h: If HAVE_STDARG_H is not defined, don't declare argument
8311         types to logprintf() and debug_logprintf().
8312
8313 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8314
8315         * ftp.c (ftp_loop_internal): Hide the password from the URL when
8316         printing non-verbose.  Problem spotted by Dariusz Mlynarczyk
8317         <darekm@bydg.lomac.com.pl>.
8318
8319 2000-11-02  Junio Hamano  <junio@twinsun.com>
8320
8321         * ftp-basic.c (ftp_login): Make comparison case-insensitive.
8322
8323 2000-11-02  Tyler Riddle  <triddle@liquidmarket.com>
8324
8325         * http.c (known_authentication_scheme_p): Recognize NTML
8326         authentication.
8327         (create_authorization_line): Treat NTML the same as `Basic'.
8328
8329 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8330
8331         * retr.c (retrieve_url): Free url before returning.
8332         (retrieve_url): Free mynewloc before returning.
8333         Spotted by Mark A. Mankins <Mankins_Mark@prc.com>.
8334
8335 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8336
8337         * url.c (parseurl): Remove possible reading past the end of
8338         sup_protos[].  Spotted by Mark A. Mankins <Mankins_Mark@prc.com>.
8339
8340 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8341
8342         * main.c (main): In case of opt.downloaded overflowing, print
8343         <overflow> instead of a totally bogus random value.
8344
8345         * retr.c (retrieve_from_file): Ditto.
8346
8347         * recur.c (recursive_retrieve): Ditto.
8348
8349         * main.c (main): Ditto.
8350
8351         * http.c (http_loop): Ditto.
8352
8353         * ftp.c (ftp_loop_internal): Use downloaded_increase() instead of
8354         `+=', and downloaded_exceeds_quota() instead of the simple-minded
8355         check.
8356         (ftp_retrieve_list): Ditto.
8357         (ftp_retrieve_dirs): Ditto.
8358         (ftp_retrieve_glob): Ditto.
8359
8360         * retr.c (downloaded_increase): New function.  Notice overflows of
8361         opt.downloaded.
8362         (downloaded_exceeds_quota): Make sure that opt.downloaded is not
8363         used if it overflowed.
8364
8365         * options.h (struct options): New member downloaded_overflow.
8366
8367 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8368
8369         * wget.h (enum): Remove extra space after last enumeration.
8370
8371 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8372
8373         * main.c (main): Use legible_very_long() for printing
8374         opt.downloaded.
8375
8376         * utils.c (legible_1): New function that operates on strings and
8377         does the brunt of legible()'s work.
8378         (legible): Use legible_1().
8379         (legible_very_long): New function; dump the argument with
8380         sprintf(), and call legible_1().
8381
8382         * options.h (struct options): Use VERY_LONG_TYPE for
8383         opt.downloaded.
8384
8385         * sysdep.h (VERY_LONG_TYPE): Define it to have a 64-bit or greater
8386         type.
8387
8388         * config.h.in: Make sure that SIZEOF_LONG and SIZEOF_LONG_LONG get
8389         defined.  Define HAVE_LONG_LONG if long long is available.
8390
8391 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8392
8393         * utils.c (long_to_string): Update with a later, better version.
8394
8395 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8396
8397         * url.c (path_simplify_with_kludge): New function.
8398         (path_simplify_with_kludge): Disable it.  Instead...
8399         (parse_dir): ...make sure that at this point the right thing is
8400         done, i.e. that "query" part of the URL (?...) is always assigned
8401         to the file, never to the directory portion of the path.
8402
8403 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8404
8405         * retr.c (retrieve_url): Detect redirection cycles.
8406
8407 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8408
8409         * url.c (get_urls_html): Decode HTML entities using
8410         html_decode_entities.
8411
8412         * html.c (htmlfindurl): Don't count the `#' in numeric entities
8413         (&#NNN;) as an HTML fragemnt.
8414         (html_decode_entities): New function.
8415
8416 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8417
8418         * html.c (htmlfindurl): Fix recognition of # HTML fragments.
8419
8420 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8421
8422         * url.c (construct): Rewritten for clarity.  Avoids the
8423         unnecessary copying and stack-allocation the old version
8424         performed.
8425
8426 2000-10-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8427
8428         * ftp.c (getftp): Ditto.
8429
8430         * http.c (gethttp): Rewind the stream when retrying from scratch.
8431
8432 2000-10-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8433
8434         * retr.c (retrieve_url): Use url_concat() to handle relative
8435         redirections instead of /ad hoc/ code.
8436
8437         * url.c (url_concat): New function encapsulating weird
8438         construct().
8439         (urllen_http_hack): New function.
8440         (construct): When constructing new URLs, recognize that `?' does
8441         not form part of the file name in HTTP.
8442
8443 2000-10-13  Adrian Aichner  <adrian@xemacs.org>
8444
8445         * retr.c: Add msec timing support for WINDOWS.
8446         * retr.c (reset_timer): GetSystemTime() on WINDOWS.
8447         * retr.c (elapsed_time): Calculate delta time to msec on WINDOWS.
8448
8449 2000-10-27  Dan Harkless  <wget@harkless.org>
8450
8451         * retr.c (retrieve_url): Manually applied T. Bharath
8452         <TBharath@responsenetworks.com>'s patch to get wget to grok
8453         illegal relative URL redirects.  Reformatted and re-commented it.
8454
8455 2000-10-23  Dan Harkless  <wget@harkless.org>
8456
8457         * connect.c (make_connection and bindport): Manually applied Rob
8458         Mayoff <mayoff@dqd.com>'s 1.5.3 patch to add --bind-address,
8459         changing coding style to GNU's.
8460
8461         * ftp.c (ftp_loop_internal): --delete-after wasn't implemented for
8462         files downloaded via FTP.  Per a comment, .listing files were not
8463         counted towards number of bytes and files downloaded because they're 
8464         deleted anyway.  Well, they aren't under -nr, so count them then.
8465
8466         * init.c: Manually applied Rob Mayoff's 1.5.3 patch to add
8467         --bind-address, alphabetizing, changing coding style to GNU's,
8468         commenting, and renaming cmd_ip_address() to cmd_address() to
8469         imply hostnames also okay.
8470                 
8471         * main.c (main): --delete-after didn't delete the root of the
8472         tree.  Ignore --convert-links if --delete-after was specified.
8473         Manually applied Rob Mayoff's 1.5.3 patch to add --bind-address,
8474         fixing duplicate use of added-since-1.5.3 case value.
8475         (print_help): Clarified that --delete-after deletes local files.
8476         Rob forgot to add a line for his new --bind-address option.
8477                 
8478         * options.h (struct options): Manually applied Rob Mayoff's patch
8479         to add --bind-address (bind_address structure member).
8480                 
8481         * recur.c (recursive_retrieve): Improved comment; added DEBUGP().
8482         Ignore --convert-links if --delete-after was specified.
8483                 
8484         * retr.c (retrieve_from_file): Just added a DEBUGP().
8485                 
8486 2000-10-19  Dan Harkless  <wget@harkless.org>
8487
8488         * ftp.c (ftp_loop_internal): downloaded_file() enumerators changed.
8489         (getftp): Applied Piotr Sulecki <Piotr.Sulecki@ios.krakow.pl>'s
8490         patch to work around FTP servers that incorrectly respond to the
8491         "REST" command with the remaining size rather than the total file size.
8492                 
8493         * http.c (gethttp): Improved a comment and added code to tack on
8494         ".html" to text/html files without that extension when -E specified.
8495         (http_loop): Use new downloaded_file() enumerators and deal with
8496         the case of gethttp() called xrealloc() on u->local.
8497
8498         * init.c (commands): Added new "htmlextension" command.
8499         Also renamed John Daily's cmd_quad() to the more descriptive
8500         cmd_lockable_boolean(), alpha-sorted the CMD_DECLARE()s and
8501         removed duplicate cmd_boolean() declaration.
8502
8503         * main.c (print_help): Added my new -E / --html-extension option.
8504         (main): Undocumented --email-address option previously used -E synonym.
8505         Stole it away for the much more deserving --html-extension's use.
8506
8507         * options.h (struct options): Added html_extension field.
8508
8509         * url.c (convert_links): URL X that we saved as X.html locally due
8510         to -E needs to be backed up as X.orig, not X.html.orig.  Added comments.
8511         (downloaded_file): Now remembers if we added .html extension to a file.
8512
8513         * url.h (downloaded_file_t): Added extra enumerators to support above.
8514         (downloaded_file): Now takes and returns a downloaded_file_t.
8515
8516         * wget.h (unnamed "dt" enum): Added ADDED_HTML_EXTENSION enumerator.
8517         
8518 2000-10-09  Dan Harkless  <wget@harkless.org>
8519
8520         * html.c (htmlfindurl): Added unneeded initialization to quiet warning.
8521                 
8522         * main.c (print_help): Clarified what --retr-symlinks does.
8523         
8524 2000-09-15  John Daily  <jdaily@cyberdude.com>
8525
8526         * init.c: Add support for "always" and "never" values to allow
8527         .wgetrc to override commandline (useful e.g. with .pm files
8528         calling `wget --passive-ftp' when your firewall doesn't allow that).
8529
8530         * ftp.c (getftp): passive_ftp is first option to support always/never.
8531
8532 2000-08-30  Dan Harkless  <wget@harkless.org>
8533
8534         * ftp.c (ftp_retrieve_list): Use new INFINITE_RECURSION #define.
8535         
8536         * html.c: htmlfindurl() now takes final `dash_p_leaf_HTML' parameter.
8537         Wrapped some > 80-column lines.  When -p is specified and we're at a 
8538         leaf node, do not traverse <A>, <AREA>, or <LINK> tags other than 
8539         <LINK REL="stylesheet">.
8540         
8541         * html.h (htmlfindurl): Now takes final `dash_p_leaf_HTML' parameter.
8542         
8543         * init.c: Added new -p / --page-requisites / page_requisites option.
8544
8545         * main.c (print_help): Clarified that -l inf and -l 0 both allow
8546         infinite recursion.  Changed the unhelpful --mirrior description
8547         to simply give the options it's equivalent to.  Added new -p option.
8548         (main): Added some comments; handle new -p / --page-requisites.
8549         
8550         * options.h (struct options): Added new page_requisites field.
8551
8552         * recur.c: Changed "URL-s" to "URLs" and "HTML-s" to "HTMLs".
8553         Calculate and pass down new `dash_p_leaf_HTML' parameter to
8554         get_urls_html().  Use new INFINITE_RECURSION #define.
8555
8556         * retr.c: Changed "URL-s" to "URLs".  get_urls_html() now takes
8557         final `dash_p_leaf_HTML' parameter.
8558
8559         * url.c: get_urls_html() and htmlfindurl() now take final
8560         `dash_p_leaf_HTML' parameter.
8561
8562         * url.h (get_urls_html): Now takes final `dash_p_leaf_HTML' parameter.
8563
8564         * wget.h: Added some comments and new INFINITE_RECURSION #define.
8565         
8566 2000-08-23  Dan Harkless  <wget@harkless.org>
8567
8568         * main.c (print_help): -B / --base was not mentioned.
8569
8570 2000-08-22  Dan Harkless  <wget@harkless.org>
8571
8572         * main.c (print_help): Modified -nc description to mention that it
8573         also prevents the creation of multiple versions of the same file
8574         with ".<number>" suffixes.
8575
8576 2000-07-14  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8577
8578         * retr.c (retrieve_url): Consistently strdup opt.referer when
8579         setting u->referer.
8580
8581 2000-06-09  Dan Harkless  <wget@harkless.org>
8582
8583         * main.c (print_help): --help output for --waitretry was over 80 cols.
8584
8585 2000-06-09  Hrvoje Niksic  <hniksic@iskon.hr>
8586
8587         * url.c (encode_string): Fix comment.
8588         Suggested by Herold Heiko <Heiko.Herold@previnet.it>.
8589
8590 2000-06-01  Const Kaplinsky  <const@ce.cctpu.edu.ru>
8591
8592         * ftp.c (ftp_retrieve_list): Change permissions only on plain
8593         files.
8594
8595 2000-06-01  Hrvoje Niksic  <hniksic@iskon.hr>
8596
8597         * url.c (str_url): Print the port number only if it's different
8598         from the default port number for that protocol.
8599
8600 2000-05-22  Dan Harkless  <wget@harkless.org>
8601
8602         * main.c (print_help): Added --help line for Damir Dzeko
8603         <ddzeko@zesoi.fer.hr>'s until-now-undocumented --referer option.
8604         Removed comments that --referer and --waitretry were undocumented.
8605         Changed "`.wgetrc' command" to "`.wgetrc'-style command" on --help
8606         line for --execute.
8607
8608 2000-05-18  Hrvoje Niksic  <hniksic@iskon.hr>
8609
8610         * ftp.c (getftp): Ditto.
8611
8612         * http.c (gethttp): Check for return value of fclose/fflush.
8613
8614 2000-04-12  Hrvoje Niksic  <hniksic@iskon.hr>
8615
8616         * host.c (store_hostaddress): Instead of shifting ADDR, start
8617         copying from the correct address.
8618
8619 2000-04-12  Hrvoje Niksic  <hniksic@iskon.hr>
8620
8621         * http.c (gethttp): Don't free REQUEST -- it was allocated with
8622         alloca().
8623         Pointed out by Gisle Vanem <gvanem@eunet.no>.
8624
8625 2000-04-04  Dan Harkless  <wget@harkless.org>
8626
8627         * host.c (store_hostaddress): R. K. Owen's patch introduces a
8628         "left shift count >= width of type" warning on 32-bit
8629         architectures.  Got rid of it by tricking the compiler w/ a variable.
8630         
8631         * url.c (UNSAFE_CHAR): The macro didn't include all the illegal
8632         characters per RFC1738, namely everything above '~'.  It also
8633         generated a warning on OSes where char =~ unsigned char.  Fixed.
8634         
8635 1998-10-17  Hrvoje Niksic  <hniksic@srce.hr>
8636
8637         * http.c (http_process_type): Removed needless strdup(), a memory
8638         leak.
8639
8640 1998-09-25  Hrvoje Niksic  <hniksic@srce.hr>
8641
8642         * html.c (htmlfindurl): Set PH to the first occurrence of `#'.
8643
8644 1998-09-25  Simon Munton  <simonm@m4data.co.uk>
8645
8646         * init.c (wgetrc_file_name): Don't free HOME under Windows.
8647
8648 1998-12-01  "R. K. Owen"  <rkowen@Nersc.GOV>
8649
8650         * host.c (store_hostaddress): Fix for big endian 64-bit machines.
8651
8652 1998-12-01  Hrvoje Niksic  <hniksic@srce.hr>
8653
8654         * url.c (UNSAFE_CHAR): New macro.
8655         (contains_unsafe): Use it.
8656         (encode_string): Ditto.
8657
8658 1998-12-01  Hrvoje Niksic  <hniksic@srce.hr>
8659
8660         * main.c (i18n_initialize): Use LC_MESSAGES only if available.
8661
8662 2000-03-31  Hrvoje Niksic  <hniksic@srce.hr>
8663
8664         * Use TOUPPER/TOLOWER.
8665
8666 1998-12-22  Alexander V. Lukyanov  <lav@yars.free.net>
8667
8668         * ftp-opie.c (btoe): Zero-terminate OSTORE.
8669
8670 2000-03-21  Hrvoje Niksic  <hniksic@iskon.hr>
8671
8672         * wget.h (DO_REALLOC_FROM_ALLOCA): Ditto.
8673
8674         * sysdep.h (ISALNUM): New macro.
8675         (TOLOWER): Ditto.
8676         (TOUPPER): Ditto.
8677
8678 2000-03-10  Dan Harkless  <wget@harkless.org>
8679
8680         * html.c (idmatch): Implemented checking of my new --follow-tags
8681         and --ignore-tags options.
8682         
8683         * init.c (commands): Added comment reminding people adding new
8684         entries doing allocation to add corresponding freeing in cleanup().
8685         (commands): Added new followtags and ignoretags commands.
8686         (cleanup): Free storage for new followtags and ignoretags.
8687         
8688         * main.c: Use of "comma-separated list" was random -- normalized
8689         it.  Did some alphabetization.  Added comments pointing out
8690         "Options without arguments" and "Options accepting an argument"
8691         sections of long_options[].  Added new options --follow-tags and
8692         -G / --ignore-tags.  Added comment that Damir's --referer is
8693         currently undocumented.  Added comment that Heiko's --waitretry is
8694         partially undocumented (mentioned in --help but not in
8695         wget.texi).  Moved improperly sorted 24, 129, and 'G' cases.
8696         
8697         * options.h (struct options): Added new fields follow_tags and
8698         ignore_tags. 
8699         
8700         * wget.h: Added "#define EQ 0" so we can say "strcmp(a, b) == EQ".
8701         
8702 2000-03-02  Dan Harkless  <wget@harkless.org>
8703
8704         * ftp.c (ftp_loop_internal): Heiko introduced "suggest explicit
8705         braces to avoid ambiguous `else'" warnings.  Eliminated them.
8706         
8707         * http.c (gethttp): Dan Berger's query string patch is totally
8708         bogus.  If you have two different URLs, gen_page.cgi?page1 and
8709         get_page.cgi?page2, they'll both be saved as get_page.cgi and the
8710         second will overwrite the first.  Also, parameters to implicit
8711         CGIs, like "http://www.host.com/db/?2000-03-02" cause the URLs to
8712         be printed with trailing garbage characters, and could seg fault.
8713         Backing out the patch, which Dan B. informed me by email was just
8714         a kludge to download StarOffice from Sun made necessary due to
8715         wget's unconditional escaping of certain characters (room for an
8716         option there?).
8717         (http_loop): Heiko introduced "suggest explicit braces to avoid
8718         ambiguous `else'" warnings.  Eliminated them.
8719         
8720         * main.c: Heiko's --wait / --waitretry backwards compatibility
8721         code looks to have been totally untested -- automatic variable
8722         'wr' was used without being initialized, and a long int was passed
8723         into setval()'s char* val parameter.
8724         
8725         * recur.c (parse_robots): Applied Edward J. Sabol
8726         <sabol@alderaan.gsfc.nasa.gov>'s patch for Guan Yang's reported
8727         problem with "User-agent:<space>*<space>" lines in robots.txt.
8728         
8729         * url.c (parseurl, str_url): Removing Dan Berger's code (see
8730         http.c above for explanation).
8731         
8732 1999-08-25  Heiko Herold  <Heiko.Herold@previnet.it>
8733
8734         * ftp.c: Respect new option waitretry.
8735
8736 2000-01-30  Damir Dzeko  <ddzeko@zesoi.fer.hr>
8737
8738         * http.c (gethttp): Send custom Referer, if required.
8739
8740 1999-09-24  Charles G Waldman  <cgw@fnal.gov>
8741
8742         * netrc.c (parse_netrc): Allow passwords to contain spaces.
8743
8744         * netrc.c (parse_netrc): New function.
8745
8746 1999-09-17  Dan Berger  <dberger@ix.netcom.com>
8747
8748         * http.c (gethttp): Send it.
8749
8750         * url.c (parseurl): Detect query string in HTTP URL-s.
8751         (str_url): Print it.
8752
8753 2000-03-02  HIROSE Masaaki  <hirose31@t3.rim.or.jp>
8754
8755         * html.c (html_allow): Add <link href=...> and <script src=...>.
8756
8757 1999-05-02  andrew deryabin  <djsf@softhome.net>
8758
8759         * http.c (gethttp): Specify port in `Host' header only if it's
8760         different from 80.
8761
8762 1998-11-03  Edward J. Sabol  <sabol@alderaan.gsfc.nasa.gov>
8763
8764         * recur.c (recursive_retrieve): If a finite maximum depth is
8765         specified, and we're are already at that depth, don't download the
8766         HTML file for parsing.
8767
8768 2000-03-01  Dan Harkless  <wget@harkless.org>
8769
8770         * ftp.c (ftp_loop_internal): Call new downloaded_file() function,
8771         even though we don't do conversion on HTML files retrieved via
8772         FTP, so _current_ usage of downloaded_file() makes this call unneeded. 
8773         (ftp_retrieve_list): Added a comment saying where we need to
8774         stat() a .orig file if FTP'd HTML file conversion is ever implemented.
8775         (ftp_retrieve_list): "Local file '%s' is more recent," is sometimes
8776         a lie -- reworded as "Server file no newer than local file '%s' --".
8777         
8778         * http.c (http_loop): Fixed a typo and clarified a comment.
8779         (http_loop): When -K and -N are specified together, compare size
8780         and timestamp of server file X against local file X.orig (if
8781         extant) rather than converted local file X.
8782         (http_loop): "Local file '%s' is more recent," is sometimes a lie
8783         -- reworded as "Server file no newer than local file '%s' --".
8784         (http_loop): Call new downloaded_file() function to prevent
8785         wrongful overwriting of .orig file when -N is specified.
8786         
8787         * url.c (convert_links): When -K specified, only rename X to
8788         X.orig if downloaded_file() returns TRUE.  Otherwise when we skip
8789         file X due to -N, we clobber an X.orig from a previous invocation.
8790         (convert_links): Call the failsafe xstrdup(), not the real strdup().
8791         (convert_links): Added a note asking anyone who understands how
8792         multiple URLs can correspond to a single file to comment it.
8793         (downloaded_file): Added this new function.
8794         
8795         * url.h (downloaded_file): Added prototype for this new function
8796         as well as its downloaded_file_t enum type.
8797
8798         * wget.h (boolean): Added this new typedef and TRUE and FALSE #defines.
8799
8800 2000-02-29  Dan Harkless  <wget@harkless.org>
8801
8802         * version.c: Upped version to developer-only "1.5.3+dev".
8803
8804 2000-02-18  Dan Harkless  <wget@harkless.org>
8805
8806         * init.c (backup_converted): Added this new option.
8807
8808         * main.c (-K / --backup-converted): Added this new option.
8809
8810         * options.h (backup_converted): Added this new option.
8811
8812         * url.c (convert_links): When backup_converted is specified, save
8813         file X as X.orig before converting.
8814
8815         * url.h (urlpos): Fixed typo -- said "Rekative" instead of "Relative".
8816
8817 1998-09-21  Hrvoje Niksic  <hniksic@srce.hr>
8818
8819         * version.c: Wget 1.5.3 is released.
8820
8821 1998-09-21  Hrvoje Niksic  <hniksic@srce.hr>
8822
8823         * host.c (ftp_getaddress): Don't warn when reverse-lookup of local 
8824         address doesn't yield FQDN.
8825
8826 1998-09-21  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
8827
8828         * cmpt.c (strerror): Fix declaration of sys_errlist.
8829
8830 1998-09-11  Hrvoje Niksic  <hniksic@srce.hr>
8831
8832         * main.c (main): Don't use an array subscript as the first
8833         argument to STRDUP_ALLOCA.
8834         From Kaveh R. Ghazi.
8835
8836 1998-09-11  Szakacsits Szabolcs  <szaka@sienet.hu>
8837
8838         * html.c (htmlfindurl): Download table background.
8839
8840 1998-09-11  Hans Grobler  <grobh@conde.ee.sun.ac.za>
8841
8842         * init.c (parse_line): Would free *com before allocating it.
8843         (parse_line): Would free com instead of *com.
8844
8845 1998-09-10  Howard Gayle  <howard@fjst.com>
8846
8847         * url.c (get_urls_html): Would drop the last character of the
8848         link.
8849
8850 1998-09-10  Hrvoje Niksic  <hniksic@srce.hr>
8851
8852         * http.c (http_loop): Don't print status code if quiet.
8853
8854 1998-09-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8855
8856         * log.c: Use <stdarg.h> only when __STDC__.
8857
8858 1998-09-10  Adam D. Moss  <adam@foxbox.org>
8859
8860         * html.c (htmlfindurl): Download <layer src=...>.
8861
8862 1998-09-10  Howard Gayle  <howard@fjst.com>
8863
8864         * ftp.c (ftp_retrieve_list): Don't update the time stamp of a file 
8865         not retrieved.
8866
8867 1998-06-27  Hrvoje Niksic  <hniksic@srce.hr>
8868
8869         * utils.c: Include <libc.h> on NeXT.
8870
8871 1998-06-26  Heinz Salzmann  <heinz.salzmann@intermetall.de>
8872
8873         * url.c (get_urls_html): Fix calculation of URL position.
8874
8875 1998-06-23  Hrvoje Niksic  <hniksic@srce.hr>
8876
8877         * version.c: Wget 1.5.2 is released.
8878
8879 1998-06-23  Dave Love  <d.love@dl.ac.uk>
8880
8881         * ftp.c, init.c, netrc.c: Include errno.h.
8882
8883         * http.c: Include errno.h and time header.
8884
8885         * Makefile.in (exext): Define.
8886         (install.bin, uninstall.bin): Use it.
8887
8888 1998-06-21  Hrvoje Niksic  <hniksic@srce.hr>
8889
8890         * http.c (http_loop): Don't attempt to compare local and remote
8891         sizes if the remote size is unknown.
8892
8893 1998-06-16  Hrvoje Niksic  <hniksic@srce.hr>
8894
8895         * url.c (get_urls_html): Use malloc() instead of alloca in the
8896         loop.
8897
8898 1998-06-13  Hrvoje Niksic  <hniksic@srce.hr>
8899
8900         * version.c: Wget 1.5.2-b4 is released.
8901
8902 1998-06-13  Hrvoje Niksic  <hniksic@srce.hr>
8903
8904         * url.c (get_urls_html): Ignore spaces before and after the URI.
8905
8906 1998-06-08  Wanderlei Antonio Cavassin  <cavassin@conectiva.com.br>
8907
8908         * ftp.c (getftp): Translate `done'.
8909
8910 1998-06-06  Hrvoje Niksic  <hniksic@srce.hr>
8911
8912         * version.c: Wget 1.5.2-b3 is released.
8913
8914 1998-06-06  Alexander Kourakos  <awk@bnt.com>
8915
8916         * init.c (cleanup): Close dfp, don't free it.
8917
8918 1998-06-06  Hrvoje Niksic  <hniksic@srce.hr>
8919
8920         * utils.c (make_directory): Twiddle.
8921
8922         * config.h.in: Added template for access().
8923
8924 1998-06-05  Mathieu Guillaume  <mat@cythere.com>
8925
8926         * html.c (htmlfindurl): Download <input src=...>
8927
8928 1998-06-03  Hrvoje Niksic  <hniksic@srce.hr>
8929
8930         * utils.c (file_exists_p): Use access() with two arguments.
8931
8932 1998-05-27  Martin Kraemer  <Martin.Kraemer@mch.sni.de>
8933
8934         * netrc.c (parse_netrc): Correct logic.
8935
8936 1998-05-27  Hrvoje Niksic  <hniksic@srce.hr>
8937
8938         * ftp.c (getftp): Added `break'; suggested by Lin Zhe Min
8939         <ljm@ljm.wownet.net>.
8940
8941 1998-05-24  Hrvoje Niksic  <hniksic@srce.hr>
8942
8943         * version.c: Wget 1.5.2-b2 is released.
8944
8945 1998-05-18  Juan Jose Rodriguez  <jcnsoft@jal1.telmex.net.mx>
8946
8947         * mswindows.h: Don't translate mkdir to _mkdir under Borland.
8948
8949 1998-05-17  Hrvoje Niksic  <hniksic@srce.hr>
8950
8951         * retr.c (elapsed_time): Return correct value when
8952         HAVE_GETTIMEOFDAY is undefined.
8953
8954 1998-05-13  Hrvoje Niksic  <hniksic@srce.hr>
8955
8956         * version.c: Wget 1.5.2-b1 is released.
8957
8958 1998-05-08  Hrvoje Niksic  <hniksic@srce.hr>
8959
8960         * getopt.c (_getopt_internal): Use exec_name instead of argv[0].
8961         (_getopt_internal): Don't translate `#if 0'-ed strings.
8962
8963 1998-05-06  Douglas E. Wegscheid  <wegscd@whirlpool.com>
8964
8965         * mswindows.c (ws_handler): Use fork_to_background().
8966
8967 1998-05-05  Hrvoje Niksic  <hniksic@srce.hr>
8968
8969         * version.c: Wget 1.5.1 is released.
8970
8971 1998-05-05  Hrvoje Niksic  <hniksic@srce.hr>
8972
8973         * http.c (parse_http_status_line): Avoid `minor' and `major'
8974         names.
8975
8976 1998-05-02  Hrvoje Niksic  <hniksic@srce.hr>
8977
8978         * utils.c (mkdirhier): Renamed to make_directory.
8979
8980 1998-05-01  Hrvoje Niksic  <hniksic@srce.hr>
8981
8982         * mswindows.c (fork_to_background): Define under Windows.
8983
8984         * utils.c (fork_to_background): New function.
8985
8986         * html.c (htmlfindurl): Removed rerdundant casts.
8987
8988 1998-05-01  Douglas E. Wegscheid  <wegscd@whirlpool.com>
8989
8990         * mswindows.c (ws_mypath): Cache the path.
8991
8992 1998-04-30  Douglas E. Wegscheid  <wegscd@whirlpool.com>
8993
8994         * ftp.h: Prefix enum ftype members with FT_.
8995
8996         * ftp-ls.c, ftp.c, html.h: Adjust accordingly.
8997
8998         * mswindows.h: Use stat under Borland, _stat under MSVC.
8999
9000 1998-04-28  Hrvoje Niksic  <hniksic@srce.hr>
9001
9002         * http.c (known_authentication_scheme_p): New function.
9003         (gethttp): Handle authorization more correctly.
9004
9005         * ftp-basic.h: Removed.
9006
9007         * cmpt.h: Removed.
9008
9009         * utils.c: Include <unistd.h> before <pwd.h>; needed under SunOS
9010         with gcc 2.8.
9011         (numdigit): Use `while' loop.
9012
9013         * http.c (create_authorization_line): Detect authentication
9014         schemes case-insensitively.
9015
9016         * http.c (extract_header_attr): Use strdupdelim().
9017         (digest_authentication_encode): Move declaration of local
9018         variables to smaller scope.
9019         (digest_authentication_encode): Reset REALM, OPAQUE and NONCE.
9020         (create_authorization_line): Detect authentication schemes
9021         case-insensitively.
9022
9023         * utils.c (touch): Constify.
9024
9025         * http.c (gethttp): Report a nicer error when no data is received.
9026
9027         * rbuf.h (RBUF_READCHAR): Ditto.
9028
9029         * ftp-basic.c (ftp_response): Use sizeof.
9030
9031 1998-04-27  Hrvoje Niksic  <hniksic@srce.hr>
9032
9033         * retr.c (print_percentage): EXPECTED is long, not int.
9034         (print_percentage): Use floating-point arithmetic to avoid
9035         overflow with large files' sizes multiplied with 100.
9036
9037 1998-04-27  Gregor Hoffleit  <flight@mathi.uni-heidelberg.de>
9038
9039         * config.h.in: Added pid_t stub.
9040
9041         * sysdep.h (S_ISREG): Moved here from mswindows.h (NeXT doesn't
9042         define it).
9043
9044 1998-04-20  Hrvoje Niksic  <hniksic@srce.hr>
9045
9046         * version.c: Wget 1.5.0 is released.
9047
9048 1998-04-18  Hrvoje Niksic  <hniksic@srce.hr>
9049
9050         * url.c (str_url): Ditto.
9051
9052         * ftp-basic.c (ftp_rest): Use new name.
9053
9054         * utils.c (long_to_string): Renamed from prnum().
9055
9056 1998-04-16  Hrvoje Niksic  <hniksic@srce.hr>
9057
9058         * version.c: Wget 1.5-b17 is released.
9059
9060 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
9061
9062         * headers.c (header_get): New argument FLAGS.
9063
9064         * http.c (gethttp): If request is malformed, bail out of the
9065         header loop.
9066         (gethttp): Check for empty header *after* the status line checks.
9067         (gethttp): Disallow continuations for status line.
9068
9069 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
9070
9071         * version.c: Wget 1.5-b16 is released.
9072
9073 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
9074
9075         * init.c (commands): Renamed `always_rest' to `continue'.
9076
9077 1998-04-05  Hrvoje Niksic  <hniksic@srce.hr>
9078
9079         * all: Use it.
9080
9081         * log.c (logputs): New argument.
9082         (logvprintf): Ditto.
9083         (logprintf): Ditto.
9084
9085 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
9086
9087         * http.c (http_atotm): Update comment.
9088
9089         * main.c (i18n_initialize): Set LC_MESSAGES, not LC_ALL.
9090
9091         * wget.h: Renamed ENABLED_NLS to HAVE_NLS.
9092
9093         * main.c (i18n_initialize): New function.
9094         (main): Use it.
9095
9096         * log.c: Include <unistd.h>.
9097
9098         * retr.c (show_progress): Cast alloca to char *.
9099
9100 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
9101
9102         * version.c: Wget 1.5-b15 is released.
9103
9104 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
9105
9106         * utils.h: Declare file_non_directory_p().
9107
9108 1998-04-03  Hrvoje Niksic  <hniksic@srce.hr>
9109
9110         * main.c (main): It's `tries', not `numtries' now.
9111
9112 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
9113
9114         * init.c (getperms): Removed.
9115
9116 1998-04-01  Tim Charron  <tcharron@interlog.com>
9117
9118         * log.c (logvprintf): Don't use ARGS twice.
9119
9120 1998-04-01  John  <john@futuresguide.com>
9121
9122         * mswindows.c: Cleaned up.
9123
9124 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
9125
9126         * version.c: Wget 1.5-b14 is released.
9127
9128 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
9129
9130         * ftp-opie.c (STRLEN4): New macro.
9131         (btoe): Use it.
9132
9133 1998-04-01  Junio Hamano  <junio@twinsun.com>
9134
9135         * http.c: Document all the Digest functions.
9136
9137 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
9138
9139         * utils.c (file_non_directory_p): Renamed from isfile().
9140
9141         * mswindows.h (S_ISREG): New macro, suggested by Tim Adam.
9142
9143 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
9144
9145         * utils.c (mkdirhier): Use 0777 instead of opt.dirmode.
9146
9147         * init.c (cmd_spec_dotstyle): Use 48 dots per line for binary
9148         style.
9149         (cmd_permissions): Removed.
9150
9151         * config.h.in: Add template for WORDS_BIGENDIAN.
9152
9153 1998-03-31  Junio Hamano  <junio@twinsun.com>
9154
9155         * http.c (HEXD2asc): New macro.
9156         (dump_hash): Use it.
9157
9158 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
9159
9160         * version.c: Wget 1.5-b13 is released.
9161
9162 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
9163
9164         * main.c (main): Don't try to use `com'.
9165
9166 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
9167
9168         * init.c (cmd_permissions): New function.
9169
9170 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
9171
9172         * version.c: Wget 1.5-b12 is released.
9173
9174 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
9175
9176         * init.c (commands): Renamed `numtries' to `tries'.
9177         (cmd_spec_debug): Removed.
9178         (home_dir): Under Windows, return `C:\' if HOME is undefined.
9179
9180 1998-03-29  Hrvoje Niksic  <hniksic@srce.hr>
9181
9182         * config.h.in: Define _XOPEN_SOURCE.
9183
9184         * init.c (check_user_specified_header): New function.
9185         (cmd_spec_header): Use it.
9186         (cmd_spec_useragent): New function.
9187
9188 1998-03-29  Hrvoje Niksic  <hniksic@srce.hr>
9189
9190         * version.c: Wget 1.5-b11 is released.
9191
9192 1998-03-28  Hrvoje Niksic  <hniksic@srce.hr>
9193
9194         * wget.h: Include <libintl.h> only if NLS is enabled.
9195
9196 1998-03-26  Hrvoje Niksic  <hniksic@srce.hr>
9197
9198         * options.h (struct options): Made `wait' a long.
9199         (struct options): Ditto for `timeout'.
9200
9201 1998-03-19  Hrvoje Niksic  <hniksic@srce.hr>
9202
9203         * utils.c (exists): Renamed to file_exists_p.
9204         (file_exists_p): Use access() if available.
9205
9206 1998-03-17  Hrvoje Niksic  <hniksic@srce.hr>
9207
9208         * utils.c (memfatal): Set save_log_p to 0 to avoid potential
9209         infloop.
9210
9211         * log.c: do_logging -> save_log_p.
9212
9213         * config.h.in: Added template for HAVE_VSNPRINTF.
9214
9215 1998-03-16  Hrvoje Niksic  <hniksic@srce.hr>
9216
9217         * init.c: Ditto.
9218
9219         * http.c: Protect declaration against non-ANSI compiler.
9220
9221         * log.c (logvprintf): Use vsnprintf() if available.
9222
9223         * getopt.c (main): Don't translate test stuff.
9224
9225 1998-03-16  Hrvoje Niksic  <hniksic@srce.hr>
9226
9227         * version.c: Wget 1.5-b10 is released.
9228
9229 1998-03-11  Hrvoje Niksic  <hniksic@srce.hr>
9230
9231         * ftp.c (getftp): Don't translate "CWD %s".
9232
9233         * wget.h (GCC_FORMAT_ATTR): Renamed from FORMAT_ATTR.
9234
9235 1998-03-07  Hrvoje Niksic  <hniksic@srce.hr>
9236
9237         * ftp-opie.c (btoe): Use memcpy() instead of strncat().
9238
9239         * log.c (logputs): New function.
9240         (logvprintf): Renamed from vlogmsg; use logputs().
9241
9242         * retr.c (show_progress): Print `[100%]' when the retrieval is
9243         finished.
9244
9245         * init.c (run_wgetrc): Use FILE, not PATH.
9246         (wgetrc_file_name): Ditto.
9247
9248 1998-03-07  Tim Adam  <tma@osa.com.au>
9249
9250         * recur.c (parse_robots): Correctly reset `entries' on empty
9251         disallow.
9252
9253 1998-03-07  Hrvoje Niksic  <hniksic@srce.hr>
9254
9255         * init.c (cmd_spec_debug): Use cmd_boolean().
9256
9257 1998-02-23  Hrvoje Niksic  <hniksic@srce.hr>
9258
9259         * http.c (gethttp): Create proxy-authorization correctly.
9260
9261 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
9262
9263         * md5.c: Ditto.
9264
9265         * getopt.c: Use ANSI function definitions.
9266
9267         * ftp-opie.c: New file.
9268
9269         * options.h: Don't redefine EXTERN.
9270
9271         * init.c: Sort it correctly.
9272
9273 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
9274
9275         * version.c: Wget 1.5-b9 is released.
9276
9277 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
9278
9279         * recur.c (recursive_retrieve): Reset `first_time'.
9280
9281         * ftp.c (getftp): Added `default' clause to switches of uerr_t.
9282
9283         * rbuf.c (rbuf_peek): Simplified.
9284         (rbuf_flush): Use MINVAL.
9285
9286         * wget.h (MINVAL): Moved from url.h.
9287
9288         * rbuf.h (RBUF_FD): New macro.
9289
9290         * url.c (add_url): Add to the head of the list.
9291
9292         * ftp.c (ftp_retrieve_list): Set the permissions to downloaded
9293         file.
9294         (getftp): Set the default permissions to 0600.
9295
9296 1998-02-21  Hrvoje Niksic  <hniksic@srce.hr>
9297
9298         * url.c (get_urls_html): Ditto.
9299         (convert_links): Ditto.
9300
9301         * recur.c (parse_robots): Ditto.
9302
9303         * html.c (ftp_index): Ditto.
9304
9305         * ftp-ls.c (ftp_parse_unix_ls): Open file as binary.
9306
9307         * init.c (defaults): Initialize `opt' to zero via memset.
9308
9309         * http.c (digest_authentication_encode): goto considered harmful.
9310
9311 1998-02-19  Hrvoje Niksic  <hniksic@srce.hr>
9312
9313         * ftp.c (delelement): Simplify and fix leak.
9314
9315 1998-02-18  Hrvoje Niksic  <hniksic@srce.hr>
9316
9317         * http.c (dump_hash): Use HEXD2ASC instead of home-grown stuff.
9318
9319         * url.h (HEXD2ASC): Removed warning.
9320
9321         * init.c (comind): Use binary search.
9322         (commands): Reorganized.
9323         (setval): Ditto.
9324         (cmd_boolean): New function.
9325         (cmd_number): Ditto.
9326         (cmd_number_inf): Ditto.
9327         (cmd_string): Ditto.
9328         (cmd_vector): Ditto.
9329         (cmd_directory_vector): Ditto.
9330         (cmd_bytes): Ditto.
9331         (cmd_time): Ditto.
9332         (cmd_spec_debug): Ditto.
9333         (cmd_spec_dirmode): Ditto.
9334         (cmd_spec_dirstruct): Ditto.
9335         (cmd_spec_dotstyle): Ditto.
9336         (cmd_spec_header): Ditto.
9337         (cmd_spec_htmlify): Ditto.
9338         (cmd_spec_mirror): Ditto.
9339         (cmd_spec_outputdocument): Ditto.
9340         (cmd_spec_recursive): Ditto.
9341         (settime): Merged with cmd_time().
9342         (setbytes): Merged with cmd_bytes().
9343         (setonoff): Merged with cmd_boolean().
9344         (onoff): Ditto.
9345
9346 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
9347
9348         * Makefile.in (distclean): Remove `config.h'.
9349
9350 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
9351
9352         * version.c: Wget 1.5-b8 is released.
9353
9354 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
9355
9356         * http.c (digest_authentication_encode): New function.
9357         (create_authorization_line): Use it.
9358         (dump_hash): New function.
9359         (digest_authentication_encode): Use it.
9360
9361         * fnmatch.c: Renamed from `mtch.c'.
9362
9363 1998-02-15  Karl Eichwalder  <ke@suse.de>
9364
9365         * main.c (main): Tag "Written by..." string as translatable.
9366
9367 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
9368
9369         * wget.h (FREE_MAYBE): New macro.
9370
9371         * http.c (create_authorization_line): Don't use ANSI C string
9372         concatenation feature.
9373         (basic_authentication_encode): Use alloca() for temporary
9374         variables.
9375
9376         * recur.h: Ditto.
9377
9378         * http.c: Ditto.
9379
9380         * headers.h: Ditto.
9381
9382         * ftp-basic.c: Protect declaration against non-ANSI compiler.
9383
9384         * http.c (create_authorization_line): Cast `unsigned char *' to
9385         `char *' for sprintf, to shut up the noisy Digital Unix cc.
9386
9387 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
9388
9389         * version.c: Wget 1.5-b7 is released.
9390
9391 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
9392
9393         * cmpt.c (strstr): Synched with glibc-2.0.6.
9394
9395         * ftp-basic.c (calculate_skey_response): Ditto.
9396         (calculate_skey_response): Use alloca().
9397
9398         * http.c (create_authorization_line): Work with FSF's version of
9399         md5.c.
9400
9401         * md5.c: New file, from GNU libc.
9402
9403 1998-02-14  Hrvoje Niksic  <hniksic@srce.hr>
9404
9405         * url.h (URL_CLEANSE): Name the temporary variable more carefully.
9406
9407 1998-02-13  Hrvoje Niksic  <hniksic@srce.hr>
9408
9409         * http.c (basic_authentication_encode): New function, instead of
9410         the macro.
9411
9412 1998-02-13  Junio Hamano  <junio@twinsun.com>
9413
9414         * http.c: Add HTTP-DA support.
9415         * ftp-basic.c: Add Opie/S-key support.
9416         * config.h.in, Makefile.in: Add HTTP-DA and Opie/S-key support.
9417         * md5.c, md5.h: New files.
9418
9419 1998-02-13  Hrvoje Niksic  <hniksic@srce.hr>
9420
9421         * http.c (http_process_range): Renamed from hprocrange().
9422         (http_process_range): Parse the whole header.
9423
9424         * headers.c: New file.
9425         (header_process): New function.
9426         (header_get): Renamed from fetch_next_header.
9427
9428         * all: Include utils.h only where necessary.
9429
9430         * wget.h: Declare xmalloc(), xrealloc() and xstrdup() here.
9431
9432         * wget.h: Add provisions for dmalloc.
9433
9434 1998-02-12  Hrvoje Niksic  <hniksic@srce.hr>
9435
9436         * version.c: Wget 1.5-b6 is released.
9437
9438 1998-02-12  Hrvoje Niksic  <hniksic@srce.hr>
9439
9440         * ftp.c (ftp_loop): Determine `filename' more precisely.
9441
9442         * init.c (setval): Don't set `opt.quiet' if output-document is
9443         `-'.
9444
9445         * log.c (log_init): Print to STDERR instead of STDOUT.
9446         (vlogmsg): Use STDERR by default.
9447         (logflush): Ditto.
9448
9449 1998-02-11  Simon Josefsson  <jas@pdc.kth.se>
9450
9451         * host.c: Use addr_in again.
9452
9453 1998-02-08  Karl Eichwalder  <karl@suse.de>
9454
9455         * http.c (gethttp): Fixed typo.
9456
9457 1998-02-08  Hrvoje Niksic  <hniksic@srce.hr>
9458
9459         * version.c: Wget 1.5-b5 is released.
9460
9461 1998-02-08  Hrvoje Niksic  <hniksic@srce.hr>
9462
9463         * retr.c (show_progress): Use it.
9464
9465         * log.c (logflush): New function.
9466
9467         * wget.h: Utilize __attribute__ if on gcc.
9468
9469 1998-02-07  Hrvoje Niksic  <hniksic@srce.hr>
9470
9471         * http.c (base64_encode_line): New argument LENGTH.
9472         (BASIC_AUTHENTICATION_ENCODE): Use it.
9473         (BASIC_AUTHENTICATION_ENCODE): Take length of HEADER into account.
9474
9475         * main.c (main): Fixed fprintf() format mismatch.
9476
9477 1998-02-06  Hrvoje Niksic  <hniksic@srce.hr>
9478
9479         * version.c: Wget 1.5-b4 is released.
9480
9481 1998-02-03  Simon Josefsson  <jas@pdc.kth.se>
9482
9483         * host.c: use sockaddr_in instead of addr_in.
9484
9485 1998-02-04  Hrvoje Niksic  <hniksic@srce.hr>
9486
9487         * init.c (cleanup): Use it.
9488
9489         * recur.c (recursive_cleanup): New function.
9490
9491         * retr.c (retrieve_from_file): Ditto.
9492
9493         * main.c (main): Use it.
9494
9495         * recur.c (recursive_reset): New function.
9496
9497         * retr.c (retrieve_from_file): Ditto.
9498
9499         * main.c (main): Simplify call to recursive_retrieve().
9500
9501         * recur.c (recursive_retrieve): Removed FLAGS argument.
9502
9503         * http.c (gethttp): Changed call to iwrite().
9504
9505 1998-02-03  Hrvoje Niksic  <hniksic@srce.hr>
9506
9507         * url.c (get_urls_html): Ditto.
9508         (free_urlpos): Ditto.
9509         (mkstruct): Ditto.
9510         (construct): Ditto.
9511
9512         * retr.c (retrieve_url): Move declaration of local variables to
9513         smaller scope.
9514
9515         * url.c (urlproto): Use it.
9516         (parseurl): Ditto.
9517         (str_url): Ditto.
9518         (get_urls_html): Ditto.
9519
9520         * utils.h (ARRAY_SIZE): New macro.
9521
9522         * url.c (proto): Moved from url.h.
9523
9524         * url.h (URL_CLEANSE): Reformatted.
9525         (USE_PROXY_P): Renamed from USE_PROXY.
9526
9527         * ftp-basic.c: Adjust to the new interface of iwrite().
9528
9529         * ftp-basic.c (ftp_port): Use alloca().
9530
9531 1998-02-03  Hrvoje Niksic  <hniksic@srce.hr>
9532
9533         * version.c: Wget 1.5-b3 is released.
9534
9535         * host.c (ftp_getaddress): Don't print to stderr directly.
9536
9537         * init.c (setbytes): Support `g' for gigabytes.
9538         (cmdtype): New specification CTIME.
9539         (setval): Use it with settime().
9540         (commands): Use it for WAIT and TIMEOUT.
9541
9542 1998-02-02  Hrvoje Niksic  <hniksic@srce.hr>
9543
9544         * http.c (BASIC_AUTHENTICATION_ENCODE): New macro.
9545         (gethttp): Use it.
9546
9547         * utils.c (unique_name_1): Moved from url.c.
9548         (unique_name): Ditto.
9549
9550         * url.c (url_filename): Ditto.
9551
9552         * log.c (redirect_output): Changed call to unique_name().
9553
9554         * url.c (unique_name_1): Renamed from unique_name().
9555         (unique_name): Changed interface.
9556
9557         * init.c (enum cmdid): Moved from init.h.
9558         (cmdtype): Ditto.
9559         (struct cmd): Ditto.
9560
9561         * main.c (main): Use it.
9562         (main): Moved `--backups' to not have a short option.
9563
9564         * options.h (struct options): New member BACKGROUND.
9565
9566         * main.c (print_help): Rearranged.
9567         (main): New long options for -n* short options: --no-directories,
9568         --no-host-directories, --non-verbose, --no-host-lookup and
9569         --dont-remove-listing.
9570
9571 1998-02-01  Hrvoje Niksic  <hniksic@srce.hr>
9572
9573         * main.c (main): Use log_close().
9574
9575         * log.c: New variable LOGFP.
9576         (vlogmsg): Use it.
9577         (redirect_output): Don't open /dev/null; set LOGFP to stdin
9578         instead.
9579         (log_close): New function.
9580
9581         * options.h (struct options): Removed LFILE.
9582
9583         * log.c (log_enable): Removed.
9584
9585         * main.c (main): Use it.
9586
9587         * log.c (log_init): New function.
9588
9589         * url.c (get_urls_html): Removed needless assignment to BASE.
9590
9591         * host.c (add_hlist): Don't set CMP needlessly.
9592
9593         * utils.c (match_backwards): Ditto.
9594         (in_acclist): Ditto.
9595
9596         * url.c (findurl): Ditto.
9597
9598         * netrc.c (parse_netrc): Ditto.
9599
9600         * log.c (log_dump): Ditto.
9601
9602         * html.c (html_quote_string): Ditto.
9603
9604         * ftp-basic.c (ftp_request): Made static.
9605
9606         * connect.c: Made global variables static.
9607
9608         * url.c (construct): Ditto.
9609
9610         * init.c (init_path): Avoid assignment inside `if'-condition.
9611
9612         * ftp.c: Don't include in.h or winsock.h.
9613
9614         * ftp.c (ftp_loop): Use SZ.
9615
9616         * connect.c (bindport): Cast &addrlen to int *.
9617         (conaddr): Ditto.
9618
9619         * init.c (initialize): Don't use SYSTEM_WGETRC unconditionally.
9620
9621 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
9622
9623         * ftp.c (getftp): Initialize opt.ftp_pass here.
9624         (ftp_retrieve_dirs): Use alloca().
9625
9626         * init.c (defaults): Don't initialize opt.ftp_pass.
9627
9628         * sysdep.h (S_ISLNK): Declare for OS/2; ditto for lstat.
9629         From Ivan F. Martinez <ivanfm@ecodigit.com.br>.
9630
9631 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
9632
9633         * recur.c (parse_robots): Check for comments more correctly.
9634
9635         * host.c (ftp_getaddress): Use STRDUP_ALLOCA.
9636         (ftp_getaddress): Add diagnostics when reverse-lookup yields only
9637         hostname.
9638
9639 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
9640
9641         * version.c: Wget 1.5-b2 is released.
9642
9643         * netrc.c (NETRC_FILE_NAME): Moved from netrc.h.
9644
9645         * utils.c (proclist): Pass FNM_PATHNAME to fnmatch().
9646
9647         * ftp-basic.c (ftp_pasv): Avoid unnecessary casting to unsigned
9648         char.
9649
9650         * log.c: Don't attempt to hide arguments from ansi2knr.
9651
9652         * cmpt.c: Synched strptime() and mktime() with glibc-2.0.6.
9653
9654         * ansi2knr.c: Use a later version, from fileutils-3.16l alpha.
9655
9656         * ftp.c (getftp): Ditto.
9657
9658         * http.c (gethttp): Use it.
9659
9660         * retr.c (get_contents): New argument EXPECTED; pass it to
9661         show_progress().
9662         (show_progress): New argument EXPECTED; use it to display
9663         percentages.
9664
9665         * init.c (setval): Ditto.
9666
9667         * http.c (gethttp): Ditto.
9668         (http_loop): Ditto.
9669
9670         * ftp.c (getftp): Ditto.
9671         (ftp_loop_internal): Ditto.
9672
9673         * ftp-ls.c (ftp_parse_unix_ls): Use abort() instead of assert(0).
9674
9675         * sysdep.h (CLOSE): Simplify; use DEBUGP.
9676
9677         * netrc.c (search_netrc): Use alloca().
9678
9679         * init.c (defaults): Initialize no_flush.
9680
9681         * log.c (vlogmsg): Don't flush if no_flush.
9682
9683         * options.h (struct options): New variable no_flush.
9684
9685         * main.c (main): Don't play games with buffering.
9686
9687         * log.c (vlogmsg): Flush the output after every message.
9688
9689 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
9690
9691         * init.c (parse_line): Ditto.
9692
9693         * url.c (get_urls_html): Ditto.
9694
9695         * main.c (main): Don't cast to unsigned char.
9696
9697         * init.c (run_wgetrc): Don't cast to unsigned char.
9698         (parse_line): Accept char instead of unsigned char.
9699
9700         * html.c (htmlfindurl): Use char instead of unsigned char.
9701
9702         * all: Use them.
9703
9704         * sysdep.h: Add wrappers to ctype macros to make them
9705         eight-bit-clean:
9706
9707 1998-01-30  Hrvoje Niksic  <hniksic@srce.hr>
9708
9709         * html.c (htmlfindurl): Download <img lowsrc=...>
9710
9711         * main.c (main): Ignore SIGPIPE.
9712
9713         * connect.c (select_fd): New argument WRITEP.
9714         (iwrite): Call select_fd().
9715
9716 1997-02-27  Fila Kolodny <fila@ibi.com>
9717
9718         * ftp.c (ftp_retrieve_list): If retrieving symlink and the proper
9719         one already exists, just skip it.
9720
9721 1998-01-30  Hrvoje Niksic  <hniksic@srce.hr>
9722
9723         * http.c (gethttp): Cosmetic changes.
9724
9725         * http.c (check_end): Allow `+D...' instead of `GMT'.
9726         From Fabrizio Pollastri <pollastri@cstv.to.cnr.it>.
9727
9728         * url.c (process_ftp_type): New function.
9729         (parseurl): Use it.
9730
9731         * connect.c (iwrite): Allow writing in a few chunks.
9732         (bindport): Made SRV static, so addr can point to it.
9733         (select_fd): Removed HPUX kludge.
9734
9735         * host.c (free_hlist): Incorporated into clean_hosts().
9736
9737 1998-01-29  Hrvoje Niksic  <hniksic@srce.hr>
9738
9739         * host.c (hlist): Made static.
9740         (search_address): Cosmetic change.
9741
9742 1998-01-29  Hrvoje Niksic  <hniksic@srce.hr>
9743
9744         * version.c: Wget v1.5-b1 is released.
9745
9746         * http.c (hgetlen): Use sizeof() to get the header length.
9747         (hgetrange): Ditto.
9748         (hgettype): Ditto.
9749         (hgetlocation): Ditto.
9750         (hgetmodified): Ditto.
9751         (haccepts_none): Ditto.
9752
9753         * main.c (main): Updated `--version' and `--help' output, as per
9754         Francois Pinard's suggestions.
9755
9756         * main.c: Include locale.h; call setlocale(), bindtextdomain() and 
9757         textdomain().
9758
9759         * config.h.in: Define stubs for I18N3.
9760
9761         * wget.h: Include libintl.h.
9762
9763 1998-01-28  Hrvoje Niksic  <hniksic@srce.hr>
9764
9765         * url.c (mkstruct): Check for opt.cut_dirs.
9766         (mkstruct): alloca()-te more, xmalloc() less.
9767
9768         * utils.c (load_file): Check for ferror().
9769
9770         * url.c (get_urls_file): Close only the files we opened.
9771         (get_urls_html): Ditto.
9772         (count_slashes): New function.
9773
9774         * http.h: Removed.
9775
9776         * http.c (gethttp): Respect username and password provided by
9777         proxy URL.
9778         (base64_encode_line): Write into an existing buffer instead of
9779         malloc-ing a new one.
9780         (struct http_stat): Moved from http.h
9781
9782         * retr.c (retrieve_url): Free SUF.
9783
9784         * all: Removed lots of unnecessary .h dependencies.
9785
9786         * html.c (global_state): Made static.
9787
9788         * utils.h (ALLOCA_ARRAY): New macro.
9789
9790         * main.c (main): New option `--cut-dirs'.
9791
9792         * url.c (construct): Use alloca() for T.
9793
9794         * utils.c (mkdirhier): Use STRDUP_ALLOCA.
9795
9796         * host.c (_host_t): Moved from host.h.
9797         (struct host): Renamed from _host_t.
9798         (store_hostaddress): Use STRDUP_ALLOCA for INET_S.
9799         (realhost): Ditto.
9800
9801         * host.h: Don't include url.h.
9802
9803         * ftp.c (LIST_FILENAME): Moved from ftp.h.
9804
9805         * init.c (DEFAULT_FTP_ACCT): Moved from ftp.h.
9806
9807         * main.c (main): Enable log if the output goes to a TTY.
9808
9809         * connect.h: Removed unused constant `BACKLOG'.
9810
9811         * config.h.in: Check for isatty().
9812
9813         * Makefile.in (LINK): Use CFLAGS when linking.
9814
9815 1998-01-27  Hrvoje Niksic  <hniksic@srce.hr>
9816
9817         * mswindows.c (ws_hangup): Use redirect_output().
9818
9819         * main.c (redirect_output_signal): New function; use
9820         redirect_output().
9821
9822         * log.c (redirect_output): New function, based on hangup(), which
9823         is deleted.
9824
9825         * log.c (vlogmsg): New function.
9826
9827         * wget.h (DEBUGP): Use debug_logmsg().
9828
9829         * main.c (hangup): Use it.
9830
9831         * log.c (log_dump): New function.
9832
9833         * utils.h (DO_REALLOC): Use `long' for various sizes.
9834
9835         * http.c (hskip_lws): Use `while', for clarity.
9836         (HTTP_DYNAMIC_LINE_BUFFER): New constant.
9837         (fetch_next_header): Use it instead of DYNAMIC_LINE_BUFFER.
9838
9839         * ftp-basic.c (FTP_DYNAMIC_LINE_BUFFER): New constant.
9840         (ftp_response): Use it instead of DYNAMIC_LINE_BUFFER.
9841
9842         * utils.c (DYNAMIC_LINE_BUFFER): Moved from utils.c.
9843         (LEGIBLE_SEPARATOR): Ditto.
9844         (FILE_BUFFER_SIZE): Ditto.
9845
9846         * retr.c (BUFFER_SIZE): Moved from retr.h.
9847
9848         * log.c: New file.
9849         (logmsg): Moved from utils.c.
9850         (debug_logmsg): New function.
9851
9852         * mswindows.h: Include it here.
9853
9854         * init.c: Ditto.
9855
9856         * utils.c: Don't include <windows.h>.
9857
9858 1998-01-25  Hrvoje Niksic  <hniksic@srce.hr>
9859
9860         * host.c (ftp_getaddress): Ditto.
9861
9862         * main.c (main): Use it.
9863
9864         * utils.h (STRDUP_ALLOCA): New macro.
9865
9866         * init.c: Prepend `wget: ' to error messages printed on stderr.
9867
9868         * utils.c (mkdirhier): Renamed from mymkdir.
9869         (touch): Renamed from my_touch.
9870         (pwd_cuserid): Renamed from my_cuserid().
9871
9872 1998-01-24  Andy Eskilsson  <andy.eskilsson@telelogic.se>
9873
9874         * utils.c (accdir): Process wildcards.
9875         (proclist): New function.
9876         (accdir): Use it to avoid code repetition.
9877
9878 1998-01-24  Hrvoje Niksic  <hniksic@srce.hr>
9879
9880         * recur.c (parse_robots): Respect opt.useragent; use alloca().
9881
9882         * http.c (gethttp): Construct useragent accordingly.
9883
9884         * version.c: Changed version string to numbers-only.
9885
9886         * main.c (print_help): List all the options.
9887
9888         * mswindows.c (windows_main_junk): Initialize argv0 here.
9889
9890 1998-01-24  Karl Heuer  <kwzh@gnu.org>
9891
9892         * netrc.c (search_netrc): Initialize `l' only after processing
9893         netrc.
9894
9895         * main.c (main): Don't trap SIGHUP if it's being ignored.
9896
9897 1998-01-24  Hrvoje Niksic  <hniksic@srce.hr>
9898
9899         * all: Use logmsg().
9900
9901         * utils.c (time_str): Moved from retr.c.
9902         (logmsg): New function.
9903         (logmsg_noflush): Ditto.
9904
9905         * rbuf.c: New file, moved buf_* functions here.
9906
9907         * ftp.c (ftp_expected_bytes): Moved from ftp-basic.c.
9908
9909         * ftp-basic.c (ftp_rest): Use prnum().
9910
9911         * ftp-basic.c: Ditto.
9912
9913         * ftp.c: Use the new reading functions and macros.
9914
9915         * retr.c (buf_initialize): New function.
9916         (buf_initialized_p): Ditto.
9917         (buf_uninitialize): Ditto.
9918         (buf_fd): Ditto.
9919
9920         * http.c (fetch_next_header): Use the BUF_READCHAR macro for
9921         efficiency.
9922         (gethttp): Use alloca() where appropriate.
9923
9924         * retr.c (buf_readchar): Use it.
9925         (buf_peek): Use rstreams.
9926
9927         * retr.h (BUF_READCHAR): New macro.
9928
9929         * init.c (home_dir): Rewritten for clarity.
9930         (init_path): Ditto.
9931
9932         * mswindows.c (ws_backgnd): Made static.
9933         (read_registry): Ditto.
9934         (ws_cleanup): Ditto.
9935         (ws_handler): Ditto.
9936
9937 1998-01-23  Hrvoje Niksic  <hniksic@srce.hr>
9938
9939         * alloca.c: New file.
9940
9941         * Makefile.in (ALLOCA): Define.
9942
9943         * mswindows.c (ws_help): Constify.
9944         (ws_help): Use alloca.
9945
9946         * mswindows.c: Reformat.
9947
9948         * all: Added _(...) annotations for I18N snarfing and translation.
9949
9950         * host.c (ftp_getaddress): Nuke SYSINFO.
9951         (ftp_getaddress): Don't use getdomainname().
9952         (ftp_getaddress): Use uname(), where available.
9953
9954         * http.c (gethttp): Protect a stray fprintf().
9955
9956         * init.c (settime): New function.
9957         (setval): Treat WAIT specially, allowing suffixes like `m' for
9958         minutes, etc.
9959
9960 1998-01-21  Hrvoje Niksic  <hniksic@srce.hr>
9961
9962         * url.c (get_urls_html): Use alloca() for TEMP.
9963
9964 1998-01-21  Jordan Mendelson  <jordy@wserv.com>
9965
9966         * url.c (rotate_backups): New function.
9967
9968         * http.c (gethttp): Ditto.
9969
9970         * ftp.c (getftp): Rotate backups.
9971
9972 1997-12-18  Hrvoje Niksic  <hniksic@srce.hr>
9973
9974         * all: Renamed nmalloc(), nrealloc() and nstrdup() to xmalloc(),
9975         xrealloc() and xstrdup().  Use the new functions.
9976
9977         * url.c (decode_string): Made static.
9978         (has_proto): Ditto.
9979         (parse_dir): Ditto.
9980         (parse_uname): Ditto.
9981         (mkstruct): Ditto.
9982         (construct): Ditto.
9983         (construct_relative): Ditto.
9984
9985         * retr.c (show_progress): Made static.
9986
9987         * recur.c (robots_url): Made static.
9988         (retrieve_robots): Ditto.
9989         (parse_robots): Ditto.
9990         (robots_match): Ditto.
9991
9992         * main.h: Removed.
9993
9994         * main.c (printhelp): Made static.
9995         (hangup): Ditto.
9996
9997         * init.c (comind): Made static.
9998         (defaults): Ditto.
9999         (init_path): Ditto.
10000         (run_wgetrc): Ditto.
10001         (onoff): Ditto.
10002         (setonoff): Ditto.
10003         (setnum): Ditto.
10004         (myatoi): Ditto.
10005         (getperms): Ditto.
10006         (setbytes): Ditto.
10007
10008         * http.c (fetch_next_header): Made static.
10009         (hparsestatline): Ditto.
10010         (hskip_lws): Ditto.
10011         (hgetlen): Ditto.
10012         (hgetrange): Ditto.
10013         (hgettype): Ditto.
10014         (hgetlocation): Ditto.
10015         (hgetmodified): Ditto.
10016         (haccepts_none): Ditto.
10017         (gethttp): Ditto.
10018         (base64_encode_line): Ditto.
10019         (mktime_from_utc): Ditto.
10020         (http_atotm): Ditto.
10021
10022         * html.c (idmatch): Made static.
10023
10024         * host.c (search_host): Made static.
10025         (search_address): Ditto.
10026         (free_hlist): Ditto.
10027
10028         * ftp.c (getftp): Made static.
10029         (ftp_loop_internal): Ditto.
10030         (ftp_get_listing): Ditto.
10031         (ftp_retrieve_list): Ditto.
10032         (ftp_retrieve_dirs): Ditto.
10033         (ftp_retrieve_glob): Ditto.
10034         (freefileinfo): Ditto.
10035         (delelement): Ditto.
10036
10037         * ftp-ls.c (symperms): Made static.
10038         (ftp_parse_unix_ls): Ditto.
10039
10040         * connect.c (select_fd): Made static.
10041
10042         * utils.c (xmalloc): Renamed from nmalloc.
10043         (xrealloc): Renamed from nrealloc.
10044         (xstrdup): Renamed from nstrdup.
10045
10046         * getopt.c (exchange): Use alloca.
10047
10048         * mswindows.c (mycuserid): Use strncpy.
10049
10050         * New files mswindows.c, mswindows.h, sysdep.h.  winjunk.c,
10051         systhings.h, windecl.h and winjunk.h removed.
10052
10053         * mswindows.c (sleep): New function.
10054
10055         * utils.c: Include <windows.h> under Windows.
10056
10057 1997-06-12  Darko Budor  <dbudor@zesoi.fer.hr>
10058
10059         * url.h (URL_UNSAFE): Change default under Windows.
10060
10061         * retr.c (retrieve_from_file): Respect opt.delete_after.
10062
10063         * main.c (main): Call ws_help on Windows.
10064
10065         * winjunk.c (windows_main_junk): New function.
10066
10067         * main.c (main): Junk-process argv[0].
10068
10069         * http.c (mktime_from_utc): Return -1 if mktime failed.
10070
10071         * http.c (http_loop): Ditto.
10072
10073         * ftp.c (ftp_loop_internal): Change title on Windows when using a
10074         new URL.
10075
10076         * winjunk.c (getdomainname): Lots of functions.
10077
10078 1997-06-12  Hrvoje Niksic  <hniksic@srce.hr>
10079
10080         * cmpt.c (strptime_internal): Handle years more correctly for
10081         `%y'.
10082
10083 1997-06-09  Mike Thomas <mthomas@reality.ctron.com>
10084
10085         * http.c (gethttp): Allocate enough space for
10086         `Proxy-Authorization' header.
10087
10088 1997-05-10  Hrvoje Niksic  <hniksic@srce.hr>
10089
10090         * version.c: Wget/1.4.5 is released.
10091
10092 1997-05-10  Hrvoje Niksic  <hniksic@srce.hr>
10093
10094         * retr.c (get_contents): Check return value of fwrite more
10095         carefully.
10096
10097 1997-03-30  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
10098
10099         * cmpt.c (strptime_internal) [case 'Y']: Always subtract 1900 from
10100         year, regardless of century.
10101
10102 1997-03-30  Hrvoje Niksic  <hniksic@srce.hr>
10103
10104         * utils.c (isfile): Use `lstat' instead of `stat'.
10105
10106 1997-03-29  Hrvoje Niksic  <hniksic@srce.hr>
10107
10108         * utils.c (numdigit): Use explicit test.
10109
10110 1997-03-21  Hrvoje Niksic  <hniksic@srce.hr>
10111
10112         * http.c (http_loop): Always use `url_filename' to get u->local.
10113
10114 1997-03-20  Hrvoje Niksic  <hniksic@srce.hr>
10115
10116         * url.c: Recognize https.
10117
10118 1997-03-13  Hrvoje Niksic  <hniksic@srce.hr>
10119
10120         * recur.c (recursive_retrieve): Lowercase just the host name.
10121
10122 1997-03-09  Hrvoje Niksic  <hniksic@srce.hr>
10123
10124         * url.c (get_urls_file): Use the correct test.
10125         (get_urls_html): Ditto.
10126
10127 1997-03-07  Hrvoje Niksic  <hniksic@srce.hr>
10128
10129         * connect.c: Reverted addrlen to int.
10130
10131         * init.c (parse_line): Check for -1 instead of NONE.
10132
10133         * version.c: Changed version to 1.4.5.
10134
10135 1997-02-17  Hrvoje Niksic  <hniksic@srce.hr>
10136
10137         * init.c: New option netrc.
10138         (initialize): Don't parse .netrc.
10139
10140         * cmpt.c (recursive): Return rp.
10141         (strptime_internal): Match the long strings first, the abbreviated
10142         second.
10143
10144 1997-02-16  Hrvoje Niksic  <hniksic@srce.hr>
10145
10146         * http.c (check_end): New function.
10147         (http_atotm): Use it.
10148
10149 1997-02-13  gilles Cedoc  <gilles@cedocar.fr>
10150
10151         * http.c (gethttp): Use them.
10152
10153         * init.c: New options proxy_user and proxy_passwd.
10154
10155 1997-02-14  Hrvoje Niksic  <hniksic@srce.hr>
10156
10157         * ftp.c (ftp_retrieve_list): Create links even if not relative.
10158
10159 1997-02-10  Hrvoje Niksic  <hniksic@srce.hr>
10160
10161         * recur.c (recursive_retrieve): Lowercase the host name, if the
10162         URL is not "optimized".
10163
10164         * host.c (realhost): Return l->hostname, even if it matches with
10165         host.
10166
10167 1997-02-10  Marin Purgar  <pmc@asgard.hr>
10168
10169         * connect.c: Make addrlen size_t instead of int.
10170         (conaddr): Ditto.
10171
10172 1997-02-09  Gregor Hoffleit  <flight@mathi.uni-heidelberg.DE>
10173
10174         * systhings.h: Define S_ISLNK on NeXT too.
10175
10176 1997-02-09  Hrvoje Niksic  <hniksic@srce.hr>
10177
10178         * version.c: Released 1.4.3.
10179
10180         * url.c: Futher update to list of protostrings.
10181         (skip_proto): Skip `//' correctly for FTP and HTTP.
10182
10183         * url.c (get_urls_html): Handle bogus `http:' things a little
10184         different.
10185
10186         * main.c (main): Removed `follow-ftp' from `f'.
10187         (main): Dumped the `prefix-files' and `file-prefix' options and
10188         features; old and bogus.
10189         (main): Exit on failed setval() in `-e'.
10190
10191         * http.c (fetch_next_header): Use it to detect header continuation
10192         correctly.
10193
10194         * retr.c (buf_peek): New function.
10195
10196 1997-02-08  Hrvoje Niksic  <hniksic@srce.hr>
10197
10198         * wget.h: Include time.h and stuff.
10199
10200 1997-02-08  Roger Beeman  <beeman@cisco.com>
10201
10202         * ftp.c: Include <time.h>
10203
10204 1997-02-07  Hrvoje Niksic  <hniksic@srce.hr>
10205
10206         * url.c (findurl): Would read over buffer limits.
10207
10208 1997-02-06  Hrvoje Niksic  <hniksic@srce.hr>
10209
10210         * ftp-ls.c (ftp_parse_unix_ls): Allow spaces in file names.
10211
10212 1997-02-05  Hrvoje Niksic  <hniksic@srce.hr>
10213
10214         * http.c (http_atotm): Initialize tm.is_dst.
10215
10216 1997-02-02  Hrvoje Niksic  <hniksic@srce.hr>
10217
10218         * http.c (gethttp): Don't print the number of retrieved headers.
10219
10220         * main.c (main): New option `--no-clobber', alias for `-nc'.
10221
10222         * url.c: Recognize `https://'.
10223
10224 1997-02-01  Hrvoje Niksic  <hniksic@srce.hr>
10225
10226         * host.c (herrmsg): Don't use h_errno.
10227
10228 1997-01-30  Hrvoje Niksic  <hniksic@srce.hr>
10229
10230         * host.c (accept_domain): Use it.
10231
10232         * main.c (main): New option `--exclude-domains'.
10233
10234         * retr.c (retrieve_url): Use it.
10235         (retrieve_url): Bail out when an URL is redirecting to itself.
10236
10237         * url.c (url_equal): New function.
10238
10239 1997-01-29  Hrvoje Niksic  <hniksic@srce.hr>
10240
10241         * connect.c: Include arpa/inet.h instead of arpa/nameser.h.
10242
10243         * http.c (mk_utc_time): New function.
10244         (http_atotm): Use it; handle time zones correctly.
10245
10246 1997-01-28  Hrvoje Niksic  <hniksic@srce.hr>
10247
10248         * http.c: Ditto.
10249
10250         * ftp-basic.c: Use it instead of WRITE.
10251
10252         * connect.c (iwrite): New function.
10253
10254 1997-01-27  Hrvoje Niksic  <hniksic@srce.hr>
10255
10256         * cmpt.c (mktime): New function.
10257
10258         * netrc.c: Include <sys/types.h>.
10259
10260         * main.c (main): Wouldn't recognize --spider.
10261
10262         * retr.c (rate): Use `B', `KB' and `MB'.
10263         (reset_timer,elapsed_time): Moved from utils.c.
10264
10265         * ftp.c (ftp_retrieve_list): Ditto.
10266
10267         * http.c (http_loop): Don't touch the file if opt.dfp.
10268
10269 1997-01-24  Hrvoje Niksic  <hniksic@srce.hr>
10270
10271         * cmpt.c: New file.
10272
10273         * ftp.c (ftp_retrieve_glob): New argument semantics.
10274         (ftp_retrieve_dirs): Use it.
10275         (ftp_loop): Ditto.
10276
10277         * html.c (htmlfindurl): Recognize `'' as the quote char.
10278
10279 1997-01-23  Hrvoje Niksic  <hniksic@srce.hr>
10280
10281         * ftp.c (ftp_loop_internal): Use it.
10282
10283         * utils.c (remove_link): New function.
10284
10285 1997-01-22  Hrvoje Niksic  <hniksic@srce.hr>
10286
10287         * retr.c (retrieve_url): Require STRICT redirection URL.
10288
10289         * url.c (parseurl): New argument STRICT.
10290
10291         * http.c (hparsestatline): Be a little-bit less strict about
10292         status line format.
10293
10294 1997-01-21  Hrvoje Niksic  <hniksic@srce.hr>
10295
10296         * http.c (gethttp): Use it.
10297
10298         * main.c (main): Don't use '<digit>' as options.
10299
10300         * init.c: New option ignore_length.
10301
10302         * http.c (gethttp): Ditto.
10303         (http_loop): Check for redirection without Location:.
10304         (gethttp): Don't print Length unless RETROKF.
10305
10306         * ftp.c (getftp): Use it.
10307
10308         * url.c (mkalldirs): New function.
10309
10310         * utils.c (mymkdir): Don't check for existing non-directory.
10311
10312         * url.c (mkstruct): Don't create the directory.
10313
10314 1997-01-20  Hrvoje Niksic  <hniksic@srce.hr>
10315
10316         * init.c (setval): Removed NO_RECURSION checks.
10317
10318 1997-01-19  Hrvoje Niksic  <hniksic@srce.hr>
10319
10320         * version.c: "Released" 1.4.3-pre2.
10321
10322         * recur.c (recursive_retrieve): Bypass host checking only if URL
10323         is ftp AND parent URL is not ftp.
10324
10325         * ftp-basic.c (ftp_request): Print out Turtle Power.
10326
10327         * ftp.c (ftp_loop): Call ftp_retrieve_glob with 0 if there's no
10328         wildcard.
10329         (ftp_retrieve_glob): Call ftp_loop_internal even on empty list, if
10330         not glob.
10331
10332         * http.c (gethttp): Be a little bit smarter about status codes.
10333
10334         * recur.c (recursive_retrieve): Always reset opt.recursive when
10335         dealing with FTP.
10336
10337 1997-01-18  Hrvoje Niksic  <hniksic@srce.hr>
10338
10339         * retr.c (retrieve_url): New variable location_changed; use it for
10340         tests instead of mynewloc.
10341         (retrieve_url): Allow heuristic adding of html.
10342
10343         * url.c (url_filename): Don't use the `%' in Windows file names.
10344
10345         * http.c (http_loop): Always time-stamp the local file.
10346
10347         * http.c (http_loop): Ditto.
10348
10349         * ftp.c (ftp_retrieve_list): Use it.
10350
10351         * utils.c (my_touch): New function.
10352
10353         * ftp.c (ftp_retrieve_list): Use #ifdef HAVE_STRUCT_UTIMBUF
10354         instead of #ifndef NeXT.
10355
10356         * utils.c (strptime): New version, by Ulrich Drepper.
10357
10358 1997-01-17  Hrvoje Niksic  <hniksic@srce.hr>
10359
10360         * http.c (haccepts_none): Renamed from `haccepts_bytes'.
10361         (gethttp): If haccepts_none(), disable ACCEPTRANGES.
10362         (http_loop): Would remove ACCEPTRANGES.
10363
10364         * ftp.c (getftp): Call ftp_list with NULL.
10365
10366 1997-01-15  Hrvoje Niksic  <hniksic@srce.hr>
10367
10368         * html.c (ftp_index): Don't print minutes and seconds if we don't
10369         know them; beautify the output.
10370
10371         * ftp.c (getftp): Don't close the socket on FTPNSFOD.
10372
10373 1997-01-14  Hrvoje Niksic  <hniksic@srce.hr>
10374
10375         * utils.c (strptime): New function.
10376         (strptime): Don't use get_alt_number.
10377         (strptime): Don't use locale.
10378         (match_string): Made it a function.
10379
10380 1997-01-12  Hrvoje Niksic  <hniksic@srce.hr>
10381
10382         * http.c (http_atotm): New function.
10383         (http_loop): Use it.
10384
10385         * atotm.c: Removed from the distribution.
10386
10387         * http.c (base64_encode_line): Rewrite.
10388
10389 1997-01-09  Hrvoje Niksic  <hniksic@srce.hr>
10390
10391         * ftp.c (getftp): Use ftp_expected_bytes; print size.
10392
10393         * ftp-basic.c (ftp_response): Use ftp_last_respline.
10394         (ftp_expected_bytes): New function.
10395
10396         * ftp.c (getftp): Print the unauthoritative file length.
10397
10398         * ftp-ls.c: Renamed from ftp-unix.c.
10399         (ftp_parse_ls): Moved from ftp.c.
10400         (ftp_parse_unix_ls): Recognize seconds in time spec.
10401         (ftp_parse_unix_ls): Recognize year-less dates of the previous
10402         year.
10403
10404 1997-01-08  Hrvoje Niksic  <hniksic@srce.hr>
10405
10406         * ftp-basic.c: Don't declare errno if #defined.
10407
10408         * host.c (ftp_getaddress): Check for sysinfo legally.
10409
10410 1997-01-08  Darko Budor  <dbudor@diana.zems.fer.hr>
10411
10412         * connect.c (iread): Use READ.
10413
10414 1996-12-23  Hrvoje Niksic  <hniksic@srce.hr>
10415
10416         * url.c: Recognize finger, rlogin, tn3270, mid and cid as valid
10417         schemes.
10418
10419 1996-12-22  Hrvoje Niksic  <hniksic@srce.hr>
10420
10421         * host.c (ftp_getaddress): Allow `.' in hostname.
10422
10423 1996-12-26  Darko Budor <dbudor@zems.fer.hr>
10424
10425         * wget.h: READ and WRITE macros for use instead of read and write
10426         on sockets, grep READ *.c, grep WRITE *.c
10427
10428         * wsstartup.c: new file - startup for winsock
10429
10430         * wsstartup.h: new file
10431
10432         * win32decl.h: new file - fixup for <errno.h> and winsock trouble
10433
10434         * configure.bat: Configure utility for MSVC
10435
10436         * src/Makefile.ms,config.h.ms: new files for use with MSVC 4.x
10437
10438 1996-12-22  Hrvoje Niksic  <hniksic@srce.hr>
10439
10440         * version.c: Released 1.4.3-pre.
10441
10442         * utils.c (prnum): Accept long.
10443         (legible): Use prnum().
10444
10445         * connect.c (make_connection): Accept port as short.
10446         (bindport): Ditto.
10447
10448         * http.c (gethttp): Use search_netrc.
10449
10450 1996-12-21  Hrvoje Niksic  <hniksic@srce.hr>
10451
10452         * ftp.c (getftp): Use search_netrc.
10453
10454         * netrc.c (free_netrc): New function.
10455
10456         * init.c (home_dir): New function.
10457
10458         * url.c (convert_links): Allow REL2ABS changes.
10459
10460 1996-12-21  Gordon Matzigkeit  <gord@gnu.ai.mit.edu>
10461
10462         * netrc.c: New file.
10463         (parse_netrc, maybe_add_to_list): New functions.
10464
10465 1996-12-17  Hrvoje Niksic  <hniksic@srce.hr>
10466
10467         * retr.c (retrieve_url): Reset opt.recursion before calling
10468         ftp_loop if it is reached through newloc.
10469
10470         * init.c (run_wgetrc): Print the wgetrc path too, when reporting
10471         error; don't use "Syntax error", since we don't know if it is
10472         really a syntax error.
10473
10474 1996-12-16  Hrvoje Niksic  <hniksic@srce.hr>
10475
10476         * utils.c (acceptable): Extract the filename part of the path.
10477
10478         * recur.c (recursive_retrieve): Call acceptable() with the right
10479         argument; would bug out on wildcards.
10480
10481         * init.c (parse_line): Likewise.
10482
10483         * html.c (htmlfindurl): Cast to char * when calling stuff.
10484
10485 1996-12-15  Hrvoje Niksic  <hniksic@srce.hr>
10486
10487         * ftp.c (getftp): Use ftp_pasv.
10488
10489         * ftp-basic.c (ftp_request): Accept NULL value.
10490         (ftp_pasv): New function.
10491
10492         * options.h (struct options): Add passive FTP option.
10493
10494 1996-12-15  Hrvoje Niksic  <hniksic@srce.hr>
10495
10496         * url.c (parseurl): Debug output.
10497
10498         * utils.c (path_simplify): New one, adapted from bash's
10499         canonicalize_pathname().
10500
10501 1996-12-14  Hrvoje Niksic  <hniksic@srce.hr>
10502
10503         * ftp.c (getftp): Don't discard the buffer.
10504
10505         * retr.c (get_contents): New parameter nobuf.
10506
10507 1996-12-13  Shawn McHorse  <riffraff@txdirect.net>
10508
10509         * html.c (htmlfindurl): Recognize <meta contents="d; URL=...".
10510
10511         * init.c (setval): Strip the trailing slashes on CVECDIR.
10512
10513 1996-12-13  Hrvoje Niksic  <hniksic@srce.hr>
10514
10515         * init.c: Make excludes and includes under CVECDIR instead of
10516         CVEC.
10517
10518 1996-12-13  Shawn McHorse  <riffraff@txdirect.net>
10519
10520         * url.c (get_urls_html): Skip "http:".
10521
10522 1996-12-13  Hrvoje Niksic  <hniksic@srce.hr>
10523
10524         * utils.c (strcasecmp): From glibc.
10525         (strncasecmp): Also.
10526         (strstr): Also.
10527
10528         * url.c: Added javascript: to the list of URLs prefixes.
10529
10530 1996-12-12  Shawn McHorse  <riffraff@txdirect.net>
10531
10532         * recur.c (retrieve_robots): Print the warning message only if
10533         verbose.
10534
10535 1996-12-12  Gregor Hoffleit  <flight@mathi.uni-heidelberg.DE>
10536
10537         * ftp.c (ftp_retrieve_list): Use NeXT old utime interface.
10538
10539 1996-12-12  Hrvoje Niksic  <hniksic@srce.hr>
10540
10541         * systhings.h: New file.
10542
10543         * ../configure.in: Check for utime.h
10544
10545         * ftp.c: Check whether we have unistd.h.
10546
10547 1996-11-27  Hrvoje Niksic  <hniksic@srce.hr>
10548
10549         * recur.c (recursive_retrieve): Send the canonical URL as referer.
10550         (recursive_retrieve): Call get_urls_html with the canonical URL.
10551
10552 1996-12-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10553
10554         * (configure.in, config.h.in, src/Makefile.in, src/*.[ch]): Add
10555         ansi2knr support for compilers which don't support ANSI style
10556         function prototypes and signatures.
10557
10558         * (aclocal.m4, src/ansi2knr.c, src/ansi2knr.1): New files.
10559
10560 1996-11-26  Hrvoje Niksic  <hniksic@srce.hr>
10561
10562         * url.c: Use it; Recognize paths ending with "." and ".." as
10563         directories.
10564         (url_filename): Append .n whenever file exists and could be a
10565         directory.
10566
10567         * url.h (ISDDOT): New macro.
10568
10569         * init.c (parse_line): Use unsigned char.
10570
10571         * url.c (get_urls_html): Cast to unsigned char * when calling
10572         htmlfindurl.
10573
10574         * html.c (htmlfindurl): Use unsigned char.
10575
10576         * version.c: Changed version to 1.4.3.
10577
10578 1996-11-25  Hrvoje Niksic  <hniksic@srce.hr>
10579
10580         * version.c: Released 1.4.2.
10581
10582         * ftp.c (getftp): Simplified assertion.
10583         (ftp_loop_internal): Remove symlink before downloading.
10584         (ftp_retrieve_list): Unlink the symlink name before attempting to
10585         create a symlink!
10586
10587         * options.h (struct options): Renamed print_server_response to
10588         server_response.
10589
10590         * ftp.c (rel_constr): Removed.
10591         (ftp_retrieve_list): Don't use it.
10592         (ftp_retrieve_list): Use opt.retr_symlinks.
10593
10594 1996-11-24  Hrvoje Niksic  <hniksic@srce.hr>
10595
10596         * main.c (main): New option retr_symlinks.
10597
10598         * url.c (convert_links): Print verbose message.
10599
10600 1996-11-24  Hrvoje Niksic  <hniksic@srce.hr>
10601
10602         * http.c (http_loop): Reset newloc in the beginning of function;
10603         would cause FMR in retrieve_url.
10604
10605 1996-11-23  Hrvoje Niksic  <hniksic@srce.hr>
10606
10607         * recur.c (convert_all_links): Find the URL of each HTML document,
10608         and feed it to get_urls_html; would bug out.
10609         (convert_all_links): Check for l2 instead of dl; removed dl.
10610
10611         * url.c (convert_links): Don't refer to freed newname.
10612
10613         * recur.c (recursive_retrieve): Add this_url to urls_downloaded.
10614
10615         * main.c (main): Print the OS_TYPE in the debug output, too.
10616
10617         * recur.c (recursive_retrieve): Check for opt.delete_after.
10618
10619         * main.c (main): New option delete-after.
10620
10621         * init.c (setval): Cleaned up.
10622
10623 1996-11-21  Hrvoje Niksic  <hniksic@srce.hr>
10624
10625         * Makefile.in (wget): Make `wget' the default target.
10626
10627         * ftp.c (ftp_loop_internal): Move noclobber checking out of the
10628         loop.
10629         (ftp_retrieve_list): Warn about non-matching sizes.
10630
10631         * http.c (http_loop): Made -nc non-dependent on opt.recursive.
10632
10633         * init.c (setnum): Renamed from setnuminf; New argument flags.
10634         (setval): Use it.
10635
10636         * main.c (main): Sorted the options.
10637         (main): New option --wait.
10638
10639 1996-11-21  Shawn McHorse  <riffraff@txdirect.net>
10640
10641         * html.c (htmlfindurl): Reset s->in_quote after getting out of
10642         quotes.
10643
10644 1996-11-20  Hrvoje Niksic  <hniksic@srce.hr>
10645
10646         * version.c: Changed version to 1.4.2.
10647
10648 1996-11-20  Hrvoje Niksic  <hniksic@srce.hr>
10649
10650         * version.c: Released 1.4.1.
10651
10652         * html.c (html_quote_string): New function.
10653         (ftp_index): Use it.
10654         (htmlfindurl): A more gentle ending debug message.
10655
10656         * ftp.c (ftp_loop): Check for opt.htmlify.
10657
10658         * init.c: New command htmlify.
10659
10660         * ftp.c (getftp): Nicer error messages, with `'-encapsulated
10661         strings.
10662         (ftp_loop): Print size of index.html.
10663
10664         * init.c (setval): Implement "styles".
10665
10666         * main.c (main): New option dotstyle.
10667
10668 1996-11-19  Hrvoje Niksic  <hniksic@srce.hr>
10669
10670         * ftp.c (getftp): Close the master socket in case of errors, after
10671         bindport().
10672
10673         * connect.c (bindport): Initialize msock to -1.
10674
10675         * ftp.c (getftp): Initialize dtsock to -1.
10676
10677         * connect.c (closeport): Don't close sock if sock == -1.
10678
10679 1996-11-18  Hrvoje Niksic  <hniksic@srce.hr>
10680
10681         * init.c (setnuminf): Nuked default value -- just leave unchanged.
10682         (setval): Don't send default values.
10683         (defaults): Use DEFAULT_TIMEOUT -- aaargh.
10684
10685         * options.h (struct options): Use long for dot_bytes.
10686
10687         * init.c (setquota): Renamed to setbytes.
10688         (setval): Use setbytes on DOTBYTES.
10689
10690 1996-11-17  Hrvoje Niksic  <hniksic@srce.hr>
10691
10692         * ftp.c (getftp): Initialize con->dltime.
10693
10694         * recur.c (recursive_retrieve): Use same_host instead of
10695         try_robots; simply load robots_txt whenever the host is changed.
10696         (recursive_retrieve): Free forbidden before calling parse_robots.
10697
10698 1996-11-16  Hrvoje Niksic  <hniksic@srce.hr>
10699
10700         * retr.c (show_progress): Use them.
10701
10702         * options.h (struct options): New options dot_bytes, dots_on_line
10703         and dot_spacing.
10704
10705 1996-11-16  Mark Boyns  <boyns@sdsu.edu>
10706
10707         * recur.c (recursive_retrieve): Retrieve directories regardless of
10708         acc/rej rules; check for empty u->file.
10709
10710 1996-11-14  Hrvoje Niksic  <hniksic@srce.hr>
10711
10712         * init.c (setval): Use it.
10713
10714         * utils.c (merge_vecs): New function.
10715
10716         * init.c (setval): Reset the list-type functions when encountering
10717         "".
10718
10719 1996-11-14  Shawn McHorse  <riffraff@txdirect.net>
10720
10721         * recur.c (recursive_retrieve): Use base_url instead of this_url
10722         for no_parent.
10723
10724 1996-11-14  Shawn McHorse  <riffraff@txdirect.net>
10725
10726         * html.c (htmlfindurl): Reset s->in_quote after exiting the quote.
10727
10728 1996-11-13  Hrvoje Niksic  <hniksic@srce.hr>
10729
10730         * utils.c (sepstring): Rewrote; don't use strtok.
10731
10732         * recur.c (recursive_retrieve): Enter assorted this_url to slist
10733         when running the first time.
10734         (retrieve_robots): Warn to ignore errors when robots are loaded.
10735
10736         * utils.c (load_file): Moved from url.c.
10737
10738         * http.c: Made static variables const too in h* functions.
10739
10740         * main.c (main): Renamed --continue-ftp to --continue.
10741
10742         * recur.c (recursive_retrieve): Use it.
10743
10744         * utils.c (frontcmp): New function.
10745
10746         * url.c (accdir): New function.
10747
10748         * html.c (htmlfindurl): Recognize <area href=...>.
10749
10750         * ftp.c (ftp_retrieve_dirs): Implemented opt.includes.
10751
10752         * init.c (setval): Free the existing opt.excludes and
10753         opt.includes, if available.
10754
10755         * main.c (main): New option -I.
10756
10757 1996-11-12  Hrvoje Niksic  <hniksic@srce.hr>
10758
10759         * ftp.c (ftp_retrieve_glob): Do not weed out directories.
10760
10761         * version.c: Changed version to 1.4.1.
10762
10763 1996-11-11  Hrvoje Niksic  <hniksic@srce.hr>
10764
10765         * version.c: Released 1.4.0.
10766
10767 1996-11-10  Hrvoje Niksic  <hniksic@srce.hr>
10768
10769         * main.c (main): Free com and val after parse_line.
10770         (printhelp): Reorder the listing.
10771
10772         * http.c: More robust header parsing.
10773
10774         * http.c: Allow any number of spaces, or no spaces, precede ':'.
10775         (hskip_lws): New function.
10776         (haccepts_bytes): New function.
10777         (gethttp): Use it.
10778
10779         * init.c (setval): Check header sanity.
10780         (setval): Allow resetting of headers.
10781
10782 1996-11-10  Hrvoje Niksic  <hniksic@srce.hr>
10783
10784         * http.c (http_loop): Don't use has_wildcards.
10785
10786         * http.c (gethttp): Free all_headers -- would leak.
10787
10788         * recur.c (recursive_retrieve): Initialize depth to 1 instead of
10789         0 -- this fixes a long-standing bug in -rl.
10790
10791 1996-11-09  Hrvoje Niksic  <hniksic@srce.hr>
10792
10793         * ftp.c: Use -1 as "impossible" value for con->fd.
10794
10795         * url.h (URL_SEPARATOR): Don't treat `*' and `+' as separators.
10796
10797         * init.c (parse_line): Use isalpha.
10798
10799         * ftp-unix.c: Use HAVE_UNISTD_H.
10800
10801         * mtch.c (has_wildcards): Don't match \.
10802
10803         * http.c (http_loop): Warn on HTTP wildcard usage.
10804
10805 1996-11-08  Hrvoje Niksic  <hniksic@srce.hr>
10806
10807         * url.c (url_filename): Do not create numbered suffixes if
10808         opt.noclobber -- would bug out on -nc.
10809
10810 1996-11-07  Hrvoje Niksic  <hniksic@srce.hr>
10811
10812         * recur.c (parse_robots): Don't chuck out the commands without
10813         arguments (`Disallow:<empty>' didn't work).
10814         (parse_robots): Compare versions lowercase.
10815         (parse_robots): Match on base_version, not version_string!
10816         (parse_robots): Handle comments properly.
10817         (parse_robots): Match versions in a sane way.
10818
10819         * init.c: Print nicer error messages.
10820
10821         * version.c: Changed version to 1.4.0.
10822
10823 1996-11-06  Hrvoje Niksic  <hniksic@srce.hr>
10824
10825         * version.c: Released 1.4.0-test2.
10826
10827         * init.c (run_wgetrc): Close fp.
10828
10829         * ftp.c (ftp_retrieve_dirs): Allocate the correct length for
10830         u->dir.
10831
10832 1996-11-06  Hrvoje Niksic  <hniksic@srce.hr>
10833
10834         * init.c (setquota): Allow inf as quota specification.
10835
10836 1996-11-05  Hrvoje Niksic  <hniksic@srce.hr>
10837
10838         * ftp.c (ftp_retrieve_dirs): Return QUOTEXC if quota exceeded.
10839         (ftp_retrieve_glob): Return QUOTEXC on quota exceeded.
10840
10841         * main.c (main): Check for quota by comparison with downloaded
10842         stuff, not from status.
10843
10844         * connect.c (select_fd): Should compile on HPUX without warnings now.
10845
10846         * ftp.c (ftp_get_listing): Check whether ftp_loop_internal
10847         returned RETROK.
10848
10849 1996-11-04  Hrvoje Niksic  <hniksic@srce.hr>
10850
10851         * ftp.c (ftp_retrieve_glob): Print the pattern nicely.
10852         (getftp): Return FTPRETRINT on control connection error.
10853
10854         * html.c (htmlfindurl): Recognize <embed src=...> and
10855         <bgsound src=...>.
10856         (ftp_index): Handle username and password correctly.
10857
10858         * main.c (main): Made `-np' a synonim for --no-parent.
10859
10860 1996-11-02  Hrvoje Niksic  <hniksic@srce.hr>
10861
10862         * ftp.c (ftp_loop): Check for opt.ftp_glob too before calling
10863         ftp_retrieve_glob.
10864
10865         * version.c: Changed version to 1.4.0-test2.
10866
10867 1996-11-02  Hrvoje Niksic  <hniksic@srce.hr>
10868
10869         * version.c: Released 1.4.0-test1.
10870
10871         * url.c (str_url): Don't use sprintf when creating %2F-prefixed
10872         directory.
10873         (convert_links): Removed definition of make_backup.
10874
10875         * http.h: Removed definition of MAX_ERROR_LENGTH.
10876
10877         * host.c (ftp_getaddress): Check for "(none)" domains.
10878
10879         * ftp.c (ftp_retrieve_dirs): Docfix.
10880
10881         * http.c (gethttp): Use ou->referer instead of u->referer.
10882
10883         * retr.c (retrieve_url): Reset u to avoid freeing pointers twice;
10884         this was known to cause coredumps on Linux.
10885
10886         * html.c (ftp_index): Cast the argument to local_time to time_t *.
10887
10888 1996-11-01  Hrvoje Niksic  <hniksic@srce.hr>
10889
10890         * connect.c (select_fd): Use exceptfds -- once and for all.
10891
10892         * retr.c (retrieve_from_file): Free filename after
10893         recursive_retrieve.
10894         (retrieve_from_file): Send RFIRST_TIME to recursive_retrieve on
10895         first-time retrieval.
10896         (retrieve_from_file): Return uerr_t; new argument, count.
10897         (retrieve_from_file): Break on QUOTEXC.
10898
10899         * init.c (setquota): Fixed a bug that caused rejection of
10900         non-postfixed values..
10901
10902 1996-10-30  Hrvoje Niksic  <hniksic@srce.hr>
10903
10904         * version.c: Changed name to wget.
10905
10906         * connect.c (iread): Smarter use of select.
10907         (select_fd): Set errno on timeout.  If not timeout, return 1
10908         instead of 0.
10909
10910 1996-10-29  Hrvoje Niksic  <hniksic@srce.hr>
10911
10912         * ftp.c (ftp_loop_internal): Don't use con->cmd before
10913         establishing it.
10914
10915 1996-10-26  Hrvoje Niksic  <hniksic@srce.hr>
10916
10917         * http.c (gethttp): Send correct referer when using proxy.
10918         (gethttp): Use struct urlinfo ou to access the relevant data; send
10919         correct authorization in all cases.
10920
10921         * host.c (same_host): Use skip_uname to skip username and
10922         password.
10923
10924         * url.c (skip_uname): New function.
10925         (parseurl): Use it.
10926
10927         * host.c (same_host): Do not assume HTTP -- same_host should now
10928         be totally foolproof.
10929
10930         * url.c (skip_proto): New function.
10931         (parse_uname): Use it.
10932
10933         * http.c (gethttp): Create local user and passwd from what is
10934         given.
10935
10936         * url.c (parseurl): Check for HTTP username and password too.
10937
10938 1996-10-25  Hrvoje Niksic  <hniksic@srce.hr>
10939
10940         * config.h.in: Removed #define gethostbyname R...
10941
10942 1996-10-22  Hrvoje Niksic  <hniksic@srce.hr>
10943
10944         * version.c: Changed version to 1.4.0-test1.
10945
10946 1996-10-21  Hrvoje Niksic  <hniksic@srce.hr>
10947
10948         * version.c: "Released" 1.4b29.
10949
10950         * recur.c (recursive_retrieve): Check for no_parent.
10951
10952         * init.c (setval): Option update.
10953
10954         * main.c (main): New option no-parent.
10955
10956         * options.h (struct options): New variable no_parent.
10957
10958         * recur.c (recursive_retrieve): Only files are checked for
10959         opt.accepts and opt.rejects.
10960         (recursive_retrieve): Check directories for opt.excludes.
10961         (recursive_retrieve): Make the dir absolute when checking
10962         opt.excludes.
10963
10964         * html.c (htmlfindurl): Recognize <applet code=...> and <script
10965         src=...>
10966
10967 1996-10-18  Hrvoje Niksic  <hniksic@srce.hr>
10968
10969         * ftp.c (getftp): Do not line-break assert entries at all.
10970         (ftp_retrieve_dirs): docfix.
10971
10972         * connect.c (select_fd): Use fd + 1 as nfds.
10973
10974         * version.c: Changed version to 1.4b29.
10975
10976 1996-10-18  Hrvoje Niksic  <hniksic@srce.hr>
10977
10978         * version.c: "Released" 1.4b28.
10979
10980         * ftp.c (ftp_loop_internal): Check whether f->size == len and
10981         don't continue the loop if it is.
10982         (ftp_get_listing): Remove list_filename on unsuccesful loop.
10983
10984 1996-10-17  Hrvoje Niksic  <hniksic@srce.hr>
10985
10986         * ftp.c (ftp_loop_internal): Use strcpy to initialize tmp.
10987         (getftp): Do not use multiline assert.
10988
10989         * http.c (hparsestatline): Use mjr and mnr instead of major and
10990         minor, which don't compile on Ultrix.
10991         (http_loop): Use strcpy() to initialize tmp.
10992
10993         * all: Geturl -> Fetch
10994
10995 1996-10-17  Hrvoje Niksic  <hniksic@srce.hr>
10996
10997         * recur.c (parse_robots): Fixed an off-by-one bug when looking for
10998         ':'.
10999
11000         * html.c (htmlfindurl): Fixed several possible off-by-one bugs by
11001         moving `bufsize &&' to the beginning of each check in for-loops.
11002
11003         * recur.c (parse_robots): Close fp on exit.
11004
11005         * url.c (mymkdir): Check for each directory before creating.
11006
11007 1996-10-16  Hrvoje Niksic  <hniksic@srce.hr>
11008
11009         * version.c: Changed version to 1.4b28.
11010
11011 1996-10-16  Hrvoje Niksic  <hniksic@srce.hr>
11012
11013         * version.c: "Released" 1.4b27.
11014
11015         * init.c (parse_line): Use isspace.
11016         (parse_line): Free *com on all errors.
11017
11018         * ftp.c (ftp_loop): Change FTPOK to RETROK before exiting.
11019         (delelement): Use next instead of f->next and prev instead of
11020         f->prev.
11021         (delelement): Free the members of the deleted element.
11022
11023         * http.c (http_loop): Do not return RETROK on code != 20x.
11024
11025         * init.c (cleanup): Free opt.user_header.
11026         (cleanup): Free opt.domains.
11027
11028         * url.c (freelists): Moved to cleanup().
11029
11030         * http.c (hparsestatline): Docfix.
11031
11032         * main.c (main): Return with error status on unsuccesful
11033         retrieval.
11034
11035         * init.c (setval): Do not remove listing when mirroring.
11036
11037         * url.c (url_filename): Use opt.fileprefix.
11038
11039         * ftp.c (ftp_get_listing): Use url_filename to get filename for
11040         .listing.
11041
11042         * main.c (main): New option: -rn.
11043
11044 1996-10-15  Hrvoje Niksic  <hniksic@srce.hr>
11045
11046         * Makefile.in (RM): Added RM = rm -f.
11047
11048         * host.c (clean_hosts): New function.
11049         (free_hlist): Just free the list, no reset.
11050
11051         * version.c: Changed version to 1.4b27.
11052
11053 1996-10-13  Hrvoje Niksic  <hniksic@srce.hr>
11054
11055         * version.c: "Released" 1.4b26.
11056
11057         * retr.c (retrieve_from_file): If call get_urls_html with
11058         opt.spider to make it silent in spider mode.
11059
11060         * url.c (str_url): Use CLEANDUP instead of URL_CLEANSE.
11061
11062         * url.h (CLEANDUP): New macro.
11063
11064         * http.c (gethttp): Fixed a bug that freed location only when it
11065         was NULL.
11066
11067         * retr.c (retrieve_url): Free url if it will not be stored,
11068         i.e. newloc is NULL.
11069
11070         * html.c (htmlfindurl): Handle exiting from quotes correctly; the
11071         old version would bug out on <a href="x#a"href="y">.
11072
11073         * html.h (state_t): New member in_quote.
11074
11075         * html.c (htmlfindurl): Free s->attr at the beginning of
11076         attr-loop.
11077
11078         * recur.c (recursive_retrieve): Recognize RCLEANUP.
11079         (tried_robots): Make hosts a global variable.
11080         (recursive_retrieve): Free constr after URL host optimization.
11081         (tried_robots): Free urlinfo before exiting.
11082
11083         * utils.c (free_slist): New function.
11084
11085         * recur.c (recursive_retrieve): Use flags to add cleanup
11086         possibility.
11087
11088         * main.c (main): Free filename after recursive_retrieve.
11089
11090         * http.c (gethttp): Store successful responses too.
11091
11092 1996-10-12  Hrvoje Niksic  <hniksic@srce.hr>
11093
11094         * all: Constified the whole source.  This required some minor
11095         changes in many functions in url.c, possibly introducing bugs -- I
11096         hope not.
11097
11098         * ftp-basic.c: Removed last_respline.
11099
11100         * http.c (gethttp): Free type.
11101
11102         * host.c (same_host): Free real1 and real2.
11103
11104         * main.c (main): New option --spider.
11105
11106         * retr.c (get_contents): Don't reset errno.
11107
11108         * main.c (main): Sorted the options.
11109
11110         * connect.c (iread): Set errno to ETIMEDOUT only if it was left
11111         uninitialized by select().
11112
11113         * http.c (http_loop): Print the time when the connection is
11114         closed.
11115         (gethttp): Debug-print the HTTP request.
11116
11117 1996-10-11  Hrvoje Niksic  <hniksic@srce.hr>
11118
11119         * connect.c (iread): Do not try reading after timeout.
11120
11121         * main.c (main): Would bug out on -T.
11122
11123         * connect.c (select_fd): Do not use exceptfds.
11124         (iread): Set ETIMEDOUT on select_fd <= 0.
11125
11126         * version.c: Changed version to 1.4b26.
11127
11128 1996-10-10  Hrvoje Niksic  <hniksic@srce.hr>
11129
11130         * version.c: "Released" 1.4b25.
11131
11132         * ftp-unix.c (ftp_parse_unix_ls): Ignore lines without file name
11133         or link name.
11134
11135         * http.c (gethttp): Add errcode to struct hstat.
11136         (http_loop): Use it.
11137
11138         * url.c (no_proxy_match): Simplify using char** for no_proxy.
11139
11140         * options.h (struct options): Make opt.no_proxy a vector.
11141
11142         * utils.c (sepstring): Use !*s instead of !strlen(s).
11143
11144         * init.c (setval): Set opt.maxreclevel to 0 on --mirror.
11145         (getperms): Use ISODIGIT instead of isdigit.
11146
11147         * ftp.c (getftp): Print time.
11148
11149         * main.c (main): Use legible output of downloaded quantity.
11150
11151         * ftp.c (getftp): Use elapsed_time().
11152         (ftp_loop_internal): Use rate().
11153
11154         * http.c (http_loop): Add download ratio output; Use rate().
11155
11156         * utils.c (rate): New function.
11157
11158 1996-10-09  Hrvoje Niksic  <hniksic@srce.hr>
11159
11160         * http.c (http_loop): Use timer.
11161
11162         * ftp.c: Split to ftp-basic.c and ftp.c
11163
11164         * utils.c (reset_timer): New function.
11165         (elapsed_time): New function.
11166
11167         * retr.c (show_progress): Make bytes_in_line and offs long; should
11168         work on 16-bit machines.
11169
11170 1996-10-08  Hrvoje Niksic  <hniksic@srce.hr>
11171
11172         * url.c (in_acclist): New argument backward.
11173
11174         * ftp.c (ftp_retrieve_glob): Use acceptable() to determine whether
11175         a file should be retrieved according to suffix.
11176         (ftp_get_listing): Check the return value of unlink; Do not call
11177         ftp_retrieve_dirs if depth reached maxreclevel.
11178         (ftp_retrieve_dirs): Check whether the directory is in
11179         exclude-list.
11180
11181         * main.c (main): Print the version number at the beginning of
11182         DEBUG output.
11183         (main): Use strrchr when creating exec_name.
11184
11185         * ftp.c (ftp_retrieve_glob): Do not close control connection.
11186
11187         * version.c: Changed version to 1.4b25.
11188
11189 1996-10-07  Hrvoje Niksic  <hniksic@srce.hr>
11190
11191         * version.c: "Released" 1.4b24.
11192
11193         * Makefile.in: Rewrite.
11194
11195         * ftp.c (ftp_loop_internal): Likewise.
11196
11197         * retr.c (time_str): Check for failed time().
11198
11199         * html.c (htmlfindurl): Recognize <fig src> and <overlay src> from
11200         HTML3.0.
11201
11202         * retr.c (time_str): Return time_t *.
11203
11204         * connect.c (bindport): Close msock on unsuccesful bind.
11205         (bindport): The same for getsockname and listen.
11206
11207         * retr.c (retrieve_url): Allow any number of retries on
11208         proxy.
11209
11210         * http.c (gethttp): Do not treat errno == 0 as timeout.
11211         (http_loop): Likewise.
11212         (http_loop): Cosmetic changes.
11213
11214         * connect.c (iread): Set errno to ETIMEDOUT in case of timeout.
11215
11216         * retr.c (get_contents): Reset errno.
11217
11218         * ftp.c (getftp): Minor fixes.
11219
11220 1996-10-06  Hrvoje Niksic  <hniksic@srce.hr>
11221
11222         * http.c: Do not use backups.
11223
11224         * geturl.1 (WARNING): Warn that man-page could be obsolete.
11225
11226         * getopt.c (getopt_long): Moved to getopt.c
11227
11228         * geturl.texi: Enhanced.
11229
11230         * main.c (main): Use it.
11231
11232         * recur.c (convert_all_links): New function.
11233
11234         * utils.c (add_slist): New argument flags.
11235
11236         * recur.c (recursive_retrieve): Update a list of downloaded URLs.
11237         (parse_robots): Do not chuck out empty value fields.
11238         (parse_robots): Make yourself welcome on empty Disallow.
11239
11240         * version.c: Changed version to 1.4b24.
11241
11242 1996-10-06  Hrvoje Niksic  <hniksic@srce.hr>
11243
11244         * version.c: "Released" 1.4b23.
11245
11246         * ftp.c (ftp_loop_internal): Get the time after getftp.
11247
11248         * Makefile.in (install.info): New target.
11249         (install): Use it.
11250
11251         * http.c (http_loop): Fix output when doing -O.
11252
11253 1996-10-05  Hrvoje Niksic  <hniksic@srce.hr>
11254
11255         * geturl.texi: New file.
11256
11257         * main.c (main): Do not print the warnings and download summary if
11258         opt.quiet is set.
11259
11260         * version.c: Changed version to 1.4b23.
11261
11262 1996-10-05  Hrvoje Niksic  <hniksic@srce.hr>
11263
11264         * "Released" 1.4b22.
11265
11266         * atotm.c (atotm): Use True and False instead of TRUE and FALSE,
11267         to avoid redefinition warnings.
11268
11269         * host.c (store_hostaddress): Use memcpy() to copy the address
11270         returned by inet_addr.
11271
11272         * version.c: Changed version to 1.4b22.
11273
11274 1996-10-04  Hrvoje Niksic  <hniksic@srce.hr>
11275
11276         * version.c: "Released" 1.4b21.
11277
11278         * ftp-unix.c (ftp_parse_ls): Renamed to ftp_parse_unix_ls.
11279
11280         * ftp.c (ftp_port): Use conaddr.
11281         (getftp): Print the file length.
11282         (ftp_retrieve_list): Check the stamps of plain files only.
11283
11284         * connect.c (closeport): Do not call shutdown().
11285         (conaddr): New function.
11286
11287         * html.c (ftp_index): Made it dfp-aware.
11288
11289         * init.c (cleanup): New name of freemem. Close opt.dfp.
11290
11291         * ftp.c (getftp): Use opt.dfp if it is set.
11292
11293         * ftp-unix.c (ftp_parse_ls): Recognize time in h:mm format.
11294
11295         * ftp.c (ftp_retrieve_dirs): Fixed a bug that caused incorrect
11296         CWDs to be sent with recursive FTP retrievals.
11297
11298 1996-10-03  Hrvoje Niksic  <hniksic@srce.hr>
11299
11300         * recur.c (parse_robots): Made it more compliant with "official"
11301         specifications.
11302
11303         * http.c: New function.
11304
11305         * ftp-unix.c (ftp_parse_ls): Added better debug output.
11306
11307         * ftp.c (getftp): Print out the LIST in case of
11308         opt.print_server_response.
11309
11310         * version.c: Changed version to 1.4b21.
11311
11312 1996-10-01  Hrvoje Niksic  <hniksic@srce.hr>
11313
11314         * version.c: "Released" 1.4b20.
11315
11316         * README: Update.
11317
11318         * http.c (gethttp): Preset lengths of various headers instead of
11319         calculating them dynamically.
11320         (gethttp): Check for 206 partial contents.
11321
11322 1996-09-30  Hrvoje Niksic  <hniksic@srce.hr>
11323
11324         * configure.in: Set SYSTEM_GETURLRC to $libdir/geturlrc
11325
11326         * http.c (gethttp): Send the port number in the Host: header.
11327
11328 1996-09-29  Hrvoje Niksic  <hniksic@srce.hr>
11329
11330         * http.c (gethttp): Send host: header.
11331         (gethttp): Add the possibility of user-defined headers.
11332         (gethttp): Move decision about pragma: no-cache to http_loop,
11333         where it belongs.
11334         (gethttp): Pass a struct instead of enormous argument list.
11335         (http_loop): Use a new, fancier display format.
11336         (ftp_loop): Likewise.
11337
11338         * main.c: (hangup): Turn off buffering of the new log file.
11339
11340         * install-sh: Likewise.
11341
11342         * config.sub: Replace with the one in autoconf-2.10
11343
11344         * geturl.1: Update.
11345
11346         * init.c: New options httpuser and httppasswd.
11347
11348         * http.c: (base64_encode_line): New function.
11349         (gethttp): Send authentication.
11350
11351         * connect.c (make_connection): Use store_hostaddress.
11352
11353 1996-09-28  Hrvoje Niksic  <hniksic@srce.hr>
11354
11355         * host.c (store_hostaddress): New function.
11356
11357         * NEWS: Update.
11358
11359         * http.c (hgetrange): New function.
11360         (gethttp): Use ranges.
11361
11362         * utils.c (numdigit): Accept long instead of int.
11363
11364         * http.c (http_loop): Add restart capabilities.
11365
11366         * ftp.c (ftp_retrieve_glob): Fixed a bug that could cause matchres
11367         being used uninitialized.
11368         (ftp_retrieve_list): Similar fix.
11369
11370         * host.c (add_hlist): Fixed a bug that could cause cmp being used
11371         uninitialized.
11372
11373         * url.c (construct_relative): New function.
11374
11375         * recur.c (recursive_retrieve): Use it.
11376
11377         * retr.c (convert_links): New function.
11378
11379 1996-09-27  Hrvoje Niksic  <hniksic@srce.hr>
11380
11381         * url.c (free_urlpos): New function.
11382
11383         * recur.c (recursive_retrieve): Adapt.
11384
11385         * url.c (get_urls_html): Return a linked list instead of a vector.
11386
11387         * url.c (get_urls_file): Return a linked list instead of a vector.
11388
11389         * geturl.1: Update.
11390
11391         * http.c (gethttp): Implement it.
11392
11393         * init.c (setval): New option: SAVEHEADERS
11394
11395         * ftp.c (ftp_loop_internal): Do not set restval if listing is to
11396         be retrieved. Lack of this test caused bugs when the connection
11397         was lost during listing.
11398
11399         * retr.c (retrieve_url): Fixed a bug that caused
11400         coredumps. *newloc is now reset by default.
11401         (retrieve_url): Lift the twenty-tries limit on proxies.
11402
11403         * version.c: Changed version to 1.4b20.
11404
11405 1996-09-20  Hrvoje Niksic  <hniksic@srce.hr>
11406
11407         * version.c: "Released" 1.4b19.
11408
11409 1996-09-19  Hrvoje Niksic  <hniksic@srce.hr>
11410
11411         * ftp.c (ftp_loop_internal): Renamed from ftp_1fl_loop.
11412         (getftp): Changed prototype to accept ccon *.
11413
11414 1996-09-17  Hrvoje Niksic  <hniksic@srce.hr>
11415
11416         * ftp.c (ftp_retrieve_list): Fixed a bug that caused setting
11417         incorrect values to files pointed to by symbolic links.
11418         (ftp_1fl_loop): Do not count listings among the downloaded URL-s.
11419
11420 1996-09-16  Hrvoje Niksic  <hniksic@srce.hr>
11421
11422         * url.c (mkstruct): Do not prepend "./" in front of a pathname.
11423
11424         * main.c (main): New option: --user-agent.
11425
11426         * geturl.1: Ditto.
11427
11428         * init.h: Ditto.
11429
11430         * init.c (setval): Ditto.
11431
11432         * main.c (main): Rename "server-headers" to "server-response".
11433
11434         * ftp-unix.c (ftp_parse_ls): Check for asterisks at the end of
11435         executables in 'ls -F' listings.
11436
11437 1996-09-15  Hrvoje Niksic  <hniksic@srce.hr>
11438
11439         * url.c (parseurl): Remove realloc() and sprintf().
11440         (str_url): Get rid of sprintf().
11441
11442         * recur.c (recursive_retrieve): Enable FTP recursion through proxy
11443         servers.
11444
11445         * url.h (URL_CLEANSE): Made it else-resistant.
11446         (USE_PROXY): New macro.
11447
11448 1996-09-14  Hrvoje Niksic  <hniksic@srce.hr>
11449
11450         * NEWS: Update.
11451
11452         * version.c: Changed version to 1.4b19.
11453
11454 1996-09-14  Hrvoje Niksic  <hniksic@srce.hr>
11455
11456         * version.c: "Released" 1.4b18.
11457
11458         * url.c: Made it reallocate space exponentially.
11459
11460 1996-09-14  Drazen Kacar  <dave@fly.cc.fer.hr>
11461
11462         * html.c (htmlfindurl): Added <frame src> and <iframe src> among
11463         the list of stuff to fetch.
11464
11465 1996-09-13  Hrvoje Niksic  <hniksic@srce.hr>
11466
11467         * url.c (get_urls_html): Fixed a bug that caused SIGSEGV's with
11468         -Fi.
11469
11470         * html.c (htmlfindurl): Rewrite.
11471
11472         * http.c (gethttp): Use opt.proxy_cache.
11473
11474         * main.c (main): Added --cache option.
11475
11476         * ftp.c (ftp_response): Print server response if opt.print_server
11477         response is set.
11478         (getftp): Print newlines after each request if the server response
11479         is to be printed.
11480         (ftp_response): Copy the last response line to last_respline.
11481
11482         * http.c (gethttp): Add Pragma: nocache for retried
11483         proxy-retrievals.
11484
11485         * ftp.c (getftp): Use it.
11486
11487         * retr.c (buf_discard): New function.
11488
11489         * ftp.c (ftp_response): Use buf_readchar().
11490         (getftp): Flush the control connection buffer before calling
11491         get_contents().
11492
11493         * retr.c (buf_readchar): New function.
11494         (buf_flush): New function.
11495         (get_contents): Use buf_readchar() instead of read(x, x, 1).
11496         (get_contents): Use buf_flush.
11497
11498 1996-09-12  Hrvoje Niksic  <hniksic@srce.hr>
11499
11500         * ftp.c: Incorporate changes to ftp_response.
11501
11502         * ftp.c (ftp_response): Allocate the server response dynamically,
11503         as in read_whole_line and fetch_next_header.
11504
11505         * utils.c (read_whole_line): Fixed a bug that prevented reading
11506         the last line if it is not \n-terminated. Also fixed a possible
11507         memory overflow.
11508
11509         * http.c (fetch_next_header): Return malloc-ed string as large as
11510         needed.
11511         (gethttp): Use new fetch_next_header.
11512
11513 1996-09-12  Hrvoje Niksic  <hniksic@srce.hr>
11514
11515         * http.c (hgetlen): Compute the header length the first time only.
11516         (hgettype): Ditto.
11517         (hgetlocation): Ditto.
11518         (hgetmodified): Ditto.
11519
11520 1996-09-11  Hrvoje Niksic  <hniksic@srce.hr>
11521
11522         * sample.geturlrc: Update.
11523
11524 1996-09-10  Hrvoje Niksic  <hniksic@srce.hr>
11525
11526         * http.c (http_loop): Ditto.
11527
11528         * ftp.c (getftp): Open the output file as binary.
11529
11530         * version.c: Changed version to 1.4b18.
11531
11532 1996-09-10  Hrvoje Niksic  <hniksic@srce.hr>
11533
11534         * version.c: "Released" 1.4b17.
11535
11536         * ftp-unix.c (ftp_parse_ls): If unable to open file, return NULL
11537         instead of failed assertion.
11538
11539 1996-09-09  Hrvoje Niksic  <hniksic@srce.hr>
11540
11541         * ftp.c (ftp_get_listing): Add a numbered suffix to LIST_FILENAME
11542         if a file of that name already exists.
11543
11544 1996-09-05  Hrvoje Niksic  <hniksic@srce.hr>
11545
11546         * ftp.c (ftp_1fl_loop): Handler FTPPORTERR and FOPENERR correctly.
11547
11548         * config.h.in: Define gethostbyname as Rgethostbyname when using
11549         Socks.
11550
11551         * configure.in: Check for -lresolv if using Socks.
11552
11553         * version.c: Changed version to 1.4b17.
11554
11555 1996-07-15  Hrvoje Niksic  <hniksic@srce.hr>
11556
11557         * version.c: "Released" 1.4b16.
11558
11559         * http.c (gethttp): More intelligent check for first line of HTTP
11560         response.
11561         (gethttp): Would bug out on time-stamping.
11562
11563         * version.c: Changed version to 1.4b16.
11564
11565 1996-07-11  Hrvoje Niksic  <hniksic@srce.hr>
11566
11567         * version.c: Released 1.4b15.
11568
11569         * http.c (http_loop): Print \n after the loop entry, not before.
11570
11571         * url.c (url_filename): Use ISDOT.
11572
11573         * url.h (ISDOT): New macro.
11574
11575         * recur.c (recursive_retrieve): Change only opt.recursive for
11576         following FTP.
11577
11578 1996-07-11  Antonio Rosella <antonio.rosella@agip.it>
11579
11580         * socks/geturl.cgi: Fixed version No.
11581
11582         * socks/download-netscape.html: Ditto.
11583
11584         * socks/download.html: Changed socks.html to download.html.
11585
11586 1996-07-11  Hrvoje Niksic  <hniksic@srce.hr>
11587
11588         * url.c (url_filename): Check for opt.dirstruct instead for
11589         opt.recursive && opt.dirstruct.
11590
11591         * init.c (defaults): Ditto.
11592         (defaults): Reset dirstruct by default.
11593         (setval): Set opt.dirstruct whenever setting recursive.
11594
11595         * init.h: Removed FORCEDIRHIER.
11596
11597         * INSTALL: Added -L to socks-description.
11598
11599         * version.c: Changed version to 1.4b15.
11600
11601 1996-07-10  Hrvoje Niksic  <hniksic@srce.hr>
11602
11603         * version.c: "Released" 1.4b14.
11604
11605         * geturl.1: Update AUTHOR to include Rosella as contributor.
11606
11607         * NEWS: Update.
11608
11609         * socks/geturl.cgi: Simplified command creation, nuked <blink>.
11610
11611         * socks/geturl.cgi: Wrap nutscape extensions within if $netscape.
11612         (cal_time): Fix == to eq.
11613
11614         * socks/geturl.cgi: GPL-ized with permission of A. Rosella.
11615
11616         * geturl.1 (hostname): Moved URL CONVENTIONS to the beginning.
11617
11618         * Makefile.in: Use @VERSION@.
11619
11620         * configure.in: Check version from version.c.
11621
11622         * socks/geturl.cgi: Changed /pub/bin/perl to /usr/bin/perl.
11623
11624         * socks/download.html: Created from download-netscape.html, made
11625         HTML-2.0 compliant.
11626
11627         * recur.c (recursive_retrieve): Set opt.force_dir_hier when
11628         following FTP links from recursions.
11629
11630 1996-07-09  Hrvoje Niksic  <hniksic@srce.hr>
11631
11632         * url.c (mymkdir): Fixed a bug that prevented mymkdir() to create
11633         absolute directories correctly.
11634
11635         * version.c: Changed version to 1.4b14.
11636
11637 1996-07-09  Hrvoje Niksic  <hniksic@srce.hr>
11638
11639         * version.c: "Released" 1.4b13.
11640
11641         * url.c (make_backup): New function.
11642
11643         * http.c (http_loop): Make a backup copy of the local file (using
11644         rename(2)) before opening it.
11645
11646         * main.c (main): Added --backups.
11647
11648         * host.c (ftp_getaddress): Bail out on failed mycuserid().
11649         (ftp_getaddress): Check for leading dot on MY_DOMAIN.
11650         (ftp_getaddress): Check for empty, null or (null) domain.
11651
11652         * url.c (get_urls_html): If this_url is NULL, the base must have a
11653         protocol.
11654         (parseurl): Use has_proto.
11655
11656         * retr.c (retrieve_url): Warn when proxy is used with more than 20
11657         retries.
11658
11659         * url.c (mkstruct): Create the directory (calling mymkdir()) only
11660         if it is not already there.
11661         (has_proto): New function.
11662         (get_urls_html): Eliminate the remaining call to findurl -- use
11663         has_proto.
11664
11665         * geturl.1: Ditto.
11666
11667         * main.c: Change -X to -x.
11668
11669         * url.c (url_filename): Simplify creation of filename if
11670         prefix_files is set.
11671         (url_filename): Simplify everything. And I do mean *everything*.
11672         (mkstruct): Add dir_prefix before hostname.
11673         (path_simplify): Fixed a bug that caused writing outside the path
11674         string in case of "." and ".." path strings.
11675
11676 1996-07-06  Hrvoje Niksic  <hniksic@srce.hr>
11677
11678         * init.c: Added --mirror.
11679
11680         * main.c (main): Added -X to force saving of directory hierarchy.
11681
11682         * ftp.c (ftp_retrieve_list): Added recursion depth counter.
11683         (ftp_retrieve_list): Check whether quota is exceeded.
11684
11685         * url.c (get_urls_html): Skip leading blanks for absolute URIs.
11686
11687         * http.c (gethttp): Use referer if present.
11688
11689         * recur.c (recursive_retrieve): Set u->referer before calling
11690         retrieve_url.
11691
11692         * url.c (newurl): Use memset to nullify the struct members.
11693         (freeurl): Free the referer field too.
11694
11695         * url.h: Added referer to urlinfo.
11696
11697         * geturl.1: Updated the manual to document some of the new features.
11698
11699         * utils.c (numdigit): Moved from url.c.
11700
11701         * README: Rewritten.
11702
11703         * config.h.in: Add the support for socks.
11704
11705         * configure.in: Add the support for socks.
11706
11707         * url.c (url_filename): If the dir_prefix is ".", work with just
11708         the file name.
11709         (url_filename): Do not look for .n extensions if timestamping if
11710         turned on.
11711
11712         * retr.c (show_progress): Skip the over-abundant restval data, and
11713         print the rest of it with ',' instead of '.'.
11714
11715 1996-07-05  Hrvoje Niksic  <hniksic@srce.hr>
11716
11717         * retr.c (show_progress): Changed second arg. to long (as it
11718         should be).
11719         (show_progress): Moved to retr.c.
11720         (get_contents): Moved to retr.c.
11721
11722         * version.c: Change version to 1.4b13.
11723
11724 1996-07-05  Hrvoje Lacko <hlacko@fly.cc.fer.hr>
11725
11726         * url.c (in_acclist): Would return after the first suffix.
11727
11728 1996-07-04  Hrvoje Niksic  <hniksic@srce.hr>
11729
11730         * version.c: "Released" 1.4b12.
11731
11732         * url.c (path_simplify): More kludgifications.
11733         (get_urls_html): Use new parameters for htmlfindurl.
11734
11735         * html.c: Removed memorizing "parser states", since the new
11736         organization does not require them.
11737
11738         * init.c (run_geturlrc): Use read_whole_line.
11739
11740         * ftp-unix.c (ftp_parse_ls): Use read_whole_line.
11741
11742         * recur.c (parse_robots): Use read_whole_line.
11743
11744         * utils.c (read_whole_line): New function.
11745
11746         * recur.c (tried_robots): Use add_slist/in_slist, *much* cleaner.
11747
11748         * host.c (ngethostbyname): Call inet_addr just once. Yet to be
11749         tested on OSF and Ultrix.
11750         (add_hlist): New function.
11751         (free_hlist): New function.
11752         (search_host): New function.
11753         (search_address): New function.
11754         (realhost): Use search_host, search_address and add_hlist.
11755         (same_host): Replaced realloc() with strdupdelim(), made
11756         case-insensitive, fixed a memory leak.
11757
11758         * html.c (ftp_index): Fixed tm_min and tm_sec to be tm_hour and
11759         tm_min, like intended.
11760
11761         * version.c: Change user agent information to
11762         Geturl/version.
11763
11764 1996-07-03  Hrvoje Niksic  <hniksic@srce.hr>
11765
11766         * utils.c: Renamed nmalloc.c to utils.c, .h likewise.
11767
11768         * url.c (acceptable): Always accept directories.
11769
11770         * ftp-unix.c (ftp_parse_ls): Support brain-damaged "ls -F"-loving
11771         servers by stripping trailing @ from symlinks and trailing / from
11772         directories.
11773
11774         * ftp.c (ftp_loop): Debugged the "enhanced" heuristics. :-)
11775
11776         * url.c (skip_url): Use toupper instead of UCASE.
11777
11778         * host.c (sufmatch): Made it case-insensitive.
11779
11780         * url.c (match_backwards_or_pattern): Fixed i == -1 to j == -1.
11781         (match_backwards): New function, instead of
11782         match_backwards_or_pattern.
11783
11784         * recur.c (recursive_retrieve): Increased performance by
11785         introducing inl, which reduces number of calls to in_slist to only
11786         one.
11787
11788         * ftp.c (ftp_loop): Enhanced the heuristics that decides which
11789         routine to use.
11790
11791         * main.c (printhelp): Removed the warranty stuff.
11792
11793 1996-07-02  Hrvoje Niksic  <hniksic@srce.hr>
11794
11795         * url.c (add_slist): Simplify.
11796         (match_backwards_or_pattern): New function.
11797         (in_acclist): Use match_backwards_or_pattern.
11798         (matches): Remove.
11799
11800 1996-06-30  Hrvoje Niksic  <hniksic@srce.hr>
11801
11802         * ftp.c (ftp_loop): Call ftp_index on empty file names, if not
11803         recursive.
11804
11805         * html.c (ftp_index): Fixed to work. Beautified the output.
11806
11807         * ftp.c (ftp_retrieve_glob): Another argument to control whether
11808         globbing is to be used.
11809         (ftp_retrieve_list): Compare the time-stamps of local and remote
11810         files to determine whether to download.
11811
11812 1996-06-29  Hrvoje Niksic  <hniksic@srce.hr>
11813
11814         * ftp.c (rel_constr): New function.
11815
11816         * retr.c (retrieve_from_file): Check for text/html before
11817         retrieving recursively.
11818
11819         * main.c (main): Check whether the file is HTML before going into
11820         recursive HTML retrieving.
11821
11822         * ftp.c (ftp_retrieve_list): Manage directories.
11823         (ftp_retrieve_glob): Pass all the file-types to ftp_retrieve_list.
11824         (ftp_1fl_loop): Fixed a bug that caused con->com to be incorrectly
11825         initialized, causing bugchecks in getftp to fail.
11826
11827         * configure.in: Check for symlink.
11828
11829         * ftp.c (ftp_retrieve_list): Added support for symlinks.
11830
11831         * version.c: "Released" 1.4b10.
11832
11833         * atotm.c (atotm): Redeclared as time_t.
11834
11835         * init.c: New variable "timestamping".
11836
11837         * main.c (main): New option 'N'.
11838
11839         * http.c (hgetlocation): Case-insensitive match.
11840         (hgetmodified): New function.
11841         (http_loop): Implement time-stamping.
11842
11843 1996-06-28  Hrvoje Niksic  <hniksic@srce.hr>
11844
11845         * version.c: Changed version to 1.4b10
11846
11847         * atotm.c: New file, from phttpd.
11848
11849         * options.h (struct options): New parameter timestamping.
11850
11851         * version.c: 1.4b9 "released".
11852
11853         * recur.c (recursive_retrieve): Used linked list (ulist) for
11854         faster storing of URLs.
11855
11856         * url.c (get_urls_html): Removed the old kludge with comparing the
11857         outputs of htmlfindurl and findurl.
11858         (get_urls_html): Added better protocol support here.
11859         (create_hash): Removed, as well as add_hash and in_hash.
11860         (addslist): New function.
11861         (in_slist): ditto
11862
11863         * version.c: Released 1.4b8, changed version to b9.
11864
11865 1996-06-27  Hrvoje Niksic  <hniksic@srce.hr>
11866
11867         * ftp.c (freefileinfo): New function.
11868         (delelement): New function.
11869
11870         * everywhere: GPL!
11871
11872         * ftp.c (ftp_loop): Use ccon.
11873         (ftp_retrieve_glob): Likewise.
11874
11875         * ftp.h: Define ccon, to define status of control connection.
11876
11877         * ftp.c (ftp_get_listing): New function.
11878         (ftp_retrieve_more): New function.
11879         (ftp_retrieve_glob): New function.
11880
11881 1996-06-25  Hrvoje Niksic  <hniksic@srce.hr>
11882
11883         * configure.in: Removed the search for cuserid().
11884
11885         * init.c (getmode): Renamed to getperms.
11886
11887 1996-06-24  Hrvoje Niksic  <hniksic@srce.hr>
11888
11889         * version.c: New version.
11890
11891         * main.c (hangup): New function, that handles hangup. Hangup
11892         signal now causes geturl to stop writing on stdout, and to write
11893         to a log file.
11894
11895         * ftp.c (getftp): "Released" 1.4b7.
11896
11897         * html.c (htmlfindurl): Ignore everything inside <head>...</head>.
11898         (ftp_index): Use fileinfo/urlinfo.
11899
11900         * ftp-unix.c (ftp_parse_ls): New function.
11901         (symperms): New function.
11902
11903         * ftp.c (ftp_1fl_loop): New function, to handle 1-file loops.
11904
11905         * retr.c (retrieve_url): Added FTP support.
11906
11907 1996-06-23  Hrvoje Niksic  <hniksic@srce.hr>
11908
11909         * geturl.h: Removed NOTFTP2HTML enum.
11910         Added DO_LOGIN, DO_CWD and DO_LIST. LIST_ONLY is obsolete.
11911
11912         * ftp.c (getftp): Resynched with urlinfo.
11913         (getftp): Removed HMTL-ization of index.html from getftp.
11914
11915         * version.c: 1.4b6 "released".
11916
11917         * options.h (options): New struct, to keep options in.
11918
11919         * http.c (http_loop,gethttp): Synched with proxy.
11920
11921         * retr.c (retrieve_url): Implemented proxy retrieval.
11922
11923         * main.c (main): Use retrieve_from_file.
11924
11925 1996-06-22  Hrvoje Niksic  <hniksic@srce.hr>
11926
11927         * retr.c (retrieve_from_file): New function.
11928
11929         * url.c (parseurl): Modified to return URLOK if all OK. Protocol
11930         can be found in u->proto.
11931
11932         * ftp.c (ftp_response): Fixed to accept multi-line responses as
11933         per RFC 959.
11934
11935         * recr.c (recursive_retrieve): Take newloc from retrieve_url.
11936
11937         * url.c (mymkdir): Removed the file of the same name, if one
11938         exists.
11939         (isfile): New function.
11940         (mkstruct): Fixed the '/' glitches.
11941         (path_simplify): Hacked to treat something/.. correctly.
11942
11943 1996-06-21  Hrvoje Niksic  <hniksic@srce.hr>
11944
11945         * http.c (gethttp): Close the socket after error in headers.
11946         (http_loop): HEOF no longer a fatal header.
11947
11948         * loop.c (retrieve_url): When dt is NULL, do not modify it. This
11949         simplifies the syntax of calling retrieve_url.
11950
11951         * recr.c (recursive_retrieve): Modified to use get_urls_html.
11952
11953         * url.c (get_urls_file): New function.
11954         (get_urls_html): New function.
11955
11956         * recr.c (recursive_retrieve): Patched up to conform to the
11957         standards.
11958
11959         * http.c (gethttp): Synched with the rest...
11960         (gethttp): Treat only CONREFUSED specially, with connection
11961         errors.
11962
11963         * init.c,geturl.1,http.c (http_loop): Removed kill_error.
11964
11965 1996-06-20  Hrvoje Niksic  <hniksic@srce.hr>
11966
11967         * http.c (http_loop): New function.
11968
11969         * loop.c: Removed *lots* of stuff from retrieve_url.
11970
11971         * url.c (parseurl): Changed to work with urlinfo. Integrated
11972         username finding and path parsing.
11973         (newurl): New function.
11974         (freeurl): New function.
11975         (mkstruct): Removed the old bogosities, made it urlinfo-compliant.
11976         (url_filename): Likewise.
11977         (path_simplify): Accept relative paths too.
11978         (opt_url): Made urlinfo-compliant, removed bogosities.
11979         (path_simplify): Expanded to accept relative paths.
11980         (str_url): A replacement for hide_url
11981         (decode_string): Fixed a bug that caused malfunctioning when
11982         encountering an illegal %.. combination.
11983         (opt_url): Removed the argument. Dot-optimizations are now default.
11984
11985         * nmalloc.c (strdupdelim): New function.
11986
11987         * url.h: Added the urlinfo structure
11988
11989 1996-06-19  Hrvoje Niksic  <hniksic@srce.hr>
11990
11991         * url.c (hide_url): Thrown out the protocol assertion. Do not
11992         change the URL if the protocol if not recognized.
11993         (findurl): Put continue instead of break.
11994
11995 1996-06-18  Hrvoje Niksic  <hniksic@srce.hr>
11996
11997         * sample.geturlrc: Changed the defaults to be commented out and
11998         harmless (previous defaults caused pains if copied to
11999         ~/.geturlrc).
12000
12001         * http.c (gethttp): Print the HTTP request in debug mode.
12002
12003         * connect.c (iread): Added EINTR check loop to select-ing
12004         too. EINTR is now correctly handled with select().
12005
12006         * TODO: new file
12007
12008 1996-05-07  Hrvoje Niksic  <hniksic@srce.hr>
12009
12010         * host.c (same_host): Made the function a little bit more
12011         intelligent regarding diversified URL syntaxes.
12012
12013         * url.c (skip_url): Spaces are now skipped after URL:
12014
12015         * Released 1.3.1 with the patch to prevent crashing when sending
12016         NULL to robot* functions and the patch to compile "out of the box"
12017         on AIX.
12018
12019         * recr.c (recursive_retrieve): Added checking whether this_url is
12020         NULL when calling the robot functions.
12021
12022         * ChangeLog: New file.