]> sjero.net Git - wget/blob - src/ChangeLog
Generate build_info.c automatically.
[wget] / src / ChangeLog
1 2009-07-01  Steven Schubiger  <stsc@member.fsf.org>
2
3         * Makefile.am: Add a rule to generate build_info.c and list
4         the build_info.c.in file in EXTRA_DIST. Adjust elsewhere
5         where needed.
6         
7         * build_info.c: Remove this static source file.
8         
9         * build_info.c.in: Data for generation of build_info.c.
10
11 2009-06-29  Micah Cowan  <micah@cowan.name>
12
13         * html-url.c (append_url): Quote some more arguments that might
14         contain characters that are inappropriate to display for the
15         current locale.
16
17         * retr.c (retrieve_from_file): Be sure to pass iri information
18         when parsing an input-fle url, and be sure to hand a clean iri
19         struct, off to retrieve_tree and retrieve_url.
20
21         * iri.c, iri.h (iri_dup): Added.
22
23         * retr.c (retrieve_url): Re-parse for IRI fallback.
24
25         * main.c (main): Set up iri before the url_parse invocation (so we
26         can use it).
27
28 2009-06-20  Jay Krell  <jay.krell@cornell.edu>
29
30         * sysdep.h (_ALL_SOURCE): (small change) Define the _ALL_SOURCE
31         macro on INTERIX systems. (I switched the location from ftp.c to
32         sysdep.h --mjc)
33
34 2009-06-15  Micah Cowan  <micah@cowan.name>
35
36         * ftp.c (getftp): If we can't accept the connection, return
37         CONERROR, not whatever the contents of err happens to be. Fixes
38         bug #25015.
39
40         * retr.c (fd_read_body): Make both args to progress_create
41         consistent, resulting in an accurate progress display. Fixes bug
42         #24948.
43
44 2009-06-14  Micah Cowan  <micah@cowan.name>
45
46         * Makefile.am (wget_SOURCES): css-tokens.h needs to ship with
47         dist, too.
48
49 2009-06-13  Micah Cowan  <micah@cowan.name>
50
51         * init.c: Rename setval_internal_wrapper to setval_internal_tilde,
52         ensure we don't "replace" the tilde unless it's actually
53         present. Clean up some minor GNU style issues.
54
55 2009-06-13  Julien Pichon  <julienpichon7@gmail.com>
56
57         * init.c: Handle tilde-expansion in wgetrc commands, without
58         resorting to setting/unsetting globals to change behavior in one
59         call location.
60
61 2009-06-12  Micah Cowan  <micah@cowan.name>
62
63         * host.c: Include <sys/types.h> before <sys/socket.h>. Not
64         required by POSIX any more, but some older systems (such as
65         FreeBSD 4.1) still need it, and it doesn't seem like it could
66         hurt...
67
68         * build_info.c (library): Handle "https" as a feature in its own
69         right, apart from "gnutls" and "openssl".
70
71         * host.c: Declare h_errno if no declaration is provided. Idea
72         thanks to Maciej W. Rozycki.
73
74 2009-06-11  Xin Zou  <zouxin2008@gmail.com>     
75         
76         * http.c (gethttp): Fix some memory leaks.
77         
78 2009-06-11  Micah Cowan  <micah@cowan.name>
79
80         * http.c (http_atotm): Handle potential for setlocale's return
81         value to be static storage. Thanks to Benjamin Wolsey
82         <bwy@benjaminwolsey.de>.
83
84         * sysdep.h: Need NAMESPACE_TWEAKS on non-Linux glibc-based
85         systems, too. Thanks to Robert Millan.
86
87 2009-05-28  Steven Schubiger  <stsc@member.fsf.org>
88
89         * ftp.c (ftp_get_listing): Update the "listing file" 
90         string after calling ftp_loop_internal().
91
92 2009-05-27  Steven Schubiger  <stsc@member.fsf.org>
93
94         * ftp.c (ftp_get_listing): Duplicate the "listing file"
95         string to avoid memory corruption when FOPEN_EXCL_ERR is
96         encountered.
97
98 2009-05-17  Steven Schubiger  <stsc@member.fsf.org>
99
100         * progress.c (eta_to_human_short): Fix the remaining hours
101         to be displayed. Spotted by Tadeu Martins (#26411).
102
103 2009-04-24  Micah Cowan  <micah@cowan.name>
104
105         * hash.c: Change stdint.h inclusion to use HAVE_STDINT_H, not C99
106         check.
107
108         * connect.c: stdint.h inclusion added.
109
110         Thanks to Markus Duft <mduft@gentoo.org> for a similar patch.
111         
112 2009-04-20  Micah Cowan  <micah@cowan.name>
113
114         * Makefile.am (version.c): Fix unportable use of "echo -n".
115
116 2009-04-13  Steven Schubiger  <stsc@member.fsf.org>
117
118         * ftp.c (ftp_retrieve_list): Move the duplicated code that
119         determines the local file to a function.
120         
121         * http.c (http_loop): Likewise.
122
123         * retr.c (set_local_file): New function.
124
125 2009-04-11  Steven Schubiger  <stsc@member.fsf.org>
126
127         * init.c (initialize): Run a custom SYSTEM_WGETRC when 
128         provided as an environment variable.
129
130 2009-02-27  Gisle Vanem  <gvanem@broadpark.no>
131
132         * main.c (main): "freopen (NULL,.." causes an assertion in MSVC
133         debug-mode.  I.e. NULL isn't legal. But the "CONOUT$" device works
134         fine.
135
136 2009-02-27  Steven Schubiger  <stsc@member.fsf.org>
137
138         * ftp.c (ftp_loop_internal): Don't claim for FTP retrievals
139         when writing to standard output either that the document
140         has been saved. Addresses bug #20520 again.
141
142 2009-02-21  Steven Schubiger  <stsc@member.fsf.org>
143
144         * http.c (http_loop): When a document is written to 
145         standard output, don't claim it has been saved to a file.
146         Addresses bug #20520.
147
148 2009-02-18  Steven Schubiger  <stsc@members.fsf.org>
149
150         * recur.h: Remove the dangling declaration for recursive_cleanup().
151
152 2009-02-01  Gerardo E. Gidoni  <gerel@gnu.org>
153
154         * main.c, recur.c, recur.h, res.c, retr.c, retr.h: restructured code to
155         avoid multiple 'url_parse' calls.
156
157 2008-11-13  Micah Cowan  <micah@cowan.name>
158
159         * http.c (gethttp): Don't do anything when content-length >= our
160         requested range.
161
162 2008-11-27  Saint Xavier  <wget@sxav.eu>
163
164         * http.c (gethttp): Move authentication code before filename
165         allocation avoiding fallbacking on default filename because
166         "Content-Disposition" header wasn't present before authentcation
167         has been completed. Fixes bug #24862.
168
169 2008-11-16  Steven Schubiger  <stsc@members.fsf.org>
170
171         * main.c: Declare and initialize the numurls counter.
172
173         * ftp.c, http.c: Make the counter visible here and use it.
174         
175         * options.h: Remove old declaration from options struct.
176
177 2008-11-15  Steven Schubiger  <stsc@members.fsf.org>
178
179         * init.c (defaults): Set default waitretry value.
180
181 2008-11-14  Steven Schubiger  <stsc@members.fsf.org>
182
183         * main.c (format_and_print_line): Use a custom format 
184         string for printing leading spaces.
185
186 2008-11-12  Micah Cowan  <micah@cowan.name>
187
188         * ftp-ls.c (ftp_index): HTML-escape dir name in title, h1, a:href.
189
190 2008-11-12  Alexander Belopolsky  <alexander.belopolsky@gmail.com>
191
192         * url.c, url.h (url_escape_unsafe_and_reserved): Added.
193
194         * ftp-ls.c (ftp_index): URL-escape, rather than HTML-escape, the
195         filename appearing in the link.
196
197 2008-11-12  Steven Schubiger  <stsc@members.fsf.org>
198
199         * main.c (print_version): Hand the relevant
200         xstrdup/xfree calls back to format_and_print_line().
201
202 2008-11-11  Steven Schubiger  <stsc@members.fsf.org>
203
204         * main.c (format_and_print_line): Move both the memory
205         allocating and freeing bits upwards to print_version().
206
207 2008-11-10  Saint Xavier  <wget@sxav.eu>
208
209         * http.c: Make --auth-no-challenge works with user:pass@ in URLs.
210
211 2008-11-05  Micah Cowan  <micah@cowan.name>
212
213         * ftp.c (print_length): Should print humanized "size remaining"
214         only when it's at least 1k.
215
216 2008-10-31  Micah Cowan  <micah@cowan.name>
217
218         * main.c (print_version): Add information about the mailing list.
219
220 2008-10-31  Alexander Drozdov  <dzal_mail@mtu-net.ru>
221
222         * retr.c (fd_read_hunk): Make assert deal with maxsize == 0.
223
224         * ftp-ls.c (clean_line): Prevent underflow on empty lines.
225
226 2008-10-26  Gisle Vanem  <gvanem@broadpark.no>
227
228         * main.c (format_and_print_line): Put variables on top of
229         blocks (not all compilers are C99). Add an extra '\n' if
230         SYSTEM_WGETRC isn't defined and printed.
231
232 2008-09-09  Gisle Vanem  <gvanem@broadpark.no>
233
234         * url.c (url_error): Use aprintf, not asprintf.
235         
236 2008-09-09  Micah Cowan  <micah@cowan.name>
237
238         * init.c (home_dir): Save the calculated value for home,
239         to avoid duplicated work on repeated calls.
240         (wgetrc_file_name) [WINDOWS]: Define and initialize home var.
241
242         * build_info.c, main.c: Remove unnecessary extern vars
243         system_wgetrc and locale_dir.
244
245         * main.c: Define program_name for lib/error.c.
246
247 2008-09-02  Gisle Vanem  <gvanem@broadpark.no>
248
249         * mswindows.h: Must ensure <stdio.h> is included before
250         we redefine ?vsnprintf().
251
252 2008-08-08  Steven Schubiger  <stsc@members.fsf.org>
253
254         * main.c, utils.h: Removed some dead conditional DEBUG_MALLOC code.
255
256 2008-08-03  Micah Cowan  <micah@cowan.name>
257
258         * main.c (print_help): Added --default-page.
259
260 2008-08-01  Joao Ferreira  <joao@joaoff.com>
261
262         * init.c, main.c, options.h, url.c: Added option --default-page
263         to support alternative default names for index.html
264
265 2008-08-03  Micah Cowan  <micah@cowan.name>
266
267         * build_info.c, css-url.c: #include wget.h, not config.h.
268
269 2008-08-03  Steven Schubiger  <stsc@members.fsf.org>
270
271         * url.c, url.h (url_error): Better messages for unsupported
272         schemes, especially https.
273
274         * html-url.c, recur.c, retr.c: Adjust to new url_error
275         invocation, and free result.
276
277 2008-07-17  Steven Schubiger  <stsc@members.fsf.org>
278
279         * retr.c (retrieve_from_file): When given an URL as input file,
280         use it as baseref if none was specified and treat the input file
281         as HTML if its content type is text/html.
282
283         * init.c (cleanup): Free the memory associated with the base
284         option (when DEBUG_MALLOC is defined).
285
286 2008-07-02  Xavier Saint  <wget@sxav.eu>
287
288         * iri.c, iri.h  : New function idn_decode() to decode ASCII
289         encoded hostname to the locale.
290
291         * host.c : Show hostname to be resolved both in locale and
292         ASCII encoded.
293
294 2008-06-28  Steven Schubiger  <stsc@members.fsf.org>
295
296         * retr.c (retrieve_from_file): Allow for reading the links from
297         an external file (HTTP/FTP).
298
299 2008-06-26  Xavier Saint  <wget@sxav.eu>
300
301         * iri.c, iri.h : New functions locale_to_utf8() and
302         idn_encode() adding basic capabilities of IRI/IDN.
303
304         * url.c : Convert URLs from locale to UTF-8 allowing a basic
305         support of IRI/IDN
306
307 2008-06-25  Steven Schubiger  <stsc@members.fsf.org>
308
309         * ftp.c (getftp): When spidering a FTP URL, emit a diagnostic
310         message if the remote file exists.
311
312 2008-06-24  Steven Schubiger  <stsc@members.fsf.org>
313
314         * http.c (http_loop): Replace escnonprint() occurence with
315         a quotearg_style() call.
316
317 2008-06-24  Micah Cowan  <micah@cowan.name>
318
319         * ftp-ls.c (ftp_index): Don't assume time_t* is compatible with
320         long*. Fixes crash on Windows, and probably other systems.
321
322 2008-06-22  Steven Schubiger  <stsc@members.fsf.org>
323
324         * http.c: Explicitly initialize and deallocate the message
325         string used by the -nv --spider functionality.
326
327 2008-06-22  Steven Schubiger  <schubiger@gmail.com>
328
329         * http.c: Make -nv --spider include the file's name when it
330         exists.
331
332 2008-06-22  Micah Cowan  <micah@cowan.name>
333
334         * Makefile.am (version.c): Fixed version string invocation so it
335         once again can't result in unterminated strings, made all the
336         string vars pointers-to-const, and moved line lengths
337         below 80 (in Makefile.am, not in version.c).
338
339 2008-06-19  Xavier Saint  <wget@sxav.eu>
340
341         * iri.c, iri.h : New function check_encoding_name() as
342         a preliminary encoding name check.
343
344         * main.c, iri.c : Make use of check_encoding_name().
345
346 2008-06-19  Xavier Saint  <wget@sxav.eu>
347
348         * iri.c : Include missing stringprep.h file and add a
349         cast.
350
351         * init.c : set a default initial value for opt.enable_iri,
352         opt.locale and opt.encoding_remote.
353
354 2008-06-19  Xavier Saint  <wget@sxav.eu>
355
356         * iri.c, iri.h : Add a new function find_locale() to find
357         out the local system encoding.
358
359         * main.c : Make use of find_locale().
360
361 2008-06-19  Xavier Saint  <wget@sxav.eu>
362
363         * html-url.c : Add "content-type" meta tag parsing for
364         retrieving page encoding.
365
366         * iri.h : Make no-op version of parse_charset() return
367         NULL.
368
369 2008-06-16  Micah Cowan  <micah@cowan.name>
370
371         * http.c (http_loop): When hstat.len is higher than the
372         successfully completed content's length, but it's because we
373         _set_ it that way, don't abort.
374
375 2008-06-14  Xavier Saint  <wget@sxav.eu>
376
377         * iri.c, iri.h : New files.
378
379         * Makefile.am : Add files iri.h and conditional iri.c.
380
381         * build_info.c : Add compiled feature "iri".
382
383         * http.c : include iri.h and parse charset from Content-Type
384         header.
385
386         * init.c, main.c, options.h : if an options isn't supported
387         at compiled time, don't get rid off it and show a dummy
388         message instead if they are used.
389
390 2008-06-13  Micah Cowan  <micah@cowan.name>
391
392         * build_info.c: ENABLE_NTLM, not HAVE_NTLM; distinguish OpenSSL
393         from "ssl".
394
395 2008-06-13  Madhusudan Hosaagrahara <com.gmail.hrmadhu>
396
397         * Makefile.am, main.c, init.c, init.h, build_info.c: Adds build
398         information to the --version command line option. Fixes bug
399         #20636.
400
401 2008-06-01  Micah Cowan  <micah@cowan.name>
402
403         * main.c [WINDOWS]: Reopen stdout in binary mode, when -O - is
404         given.
405
406 2008-05-31 Micah Cowan  <micah@cowan.name>
407
408         * html-url.c, http.c: Avoid casts in a couple spots.
409
410 2008-05-30 Henri Häkkinen  <henux@users.sourceforge.net>
411
412         * cookies.c, ftp-basic.c, hash.c, html-url.c, http-ntlm.c, http.c,
413         init.c, log.c, main.c, progress.c, ptimer.c, spider.c, url.c,
414         utils.c: Minor changes to silence warnings when using -Wall.
415
416 2008-05-26  Steven Schubiger  <schubiger@gmail.com>
417
418         * ftp.c (getftp): Replace last remaining invocation of escnonprint
419         with gnulib quote.
420
421 2008-05-19  Micah Cowan  <micah@cowan.name>
422
423         * main.c (main): Password prompt should be done only once (not
424         once per argument), and should be done prior to the background
425         fork.
426
427 2008-05-17  Steven Schubiger  <schubiger@gmail.com>
428
429         * init.c (defaults): Set the preferred IP family to `none' by
430         default.
431
432 2008-05-17  Kenny Parnell  <k.parnell@gmail.com>
433
434         (cmd_spec_prefer_family): Initialize prefer_family to prefer_none.
435
436 2008-05-17  Micah Cowan  <micah@cowan.name>
437
438         * main.c (main): Handle Ctrl-D on command-line.
439
440 2008-05-15  Steven Schubiger  <schubiger@gmail.com>
441
442         * ftp.c (getftp): Verify that the file actually exists in FTP, by
443         checking it against the listing.
444
445 2008-05-15  Micah Cowan  <micah@cowan.name>
446
447         * main.c (prompt_for_password): Use the quote module.
448
449 2008-05-14  Micah Cowan  <micah@cowan.name>
450
451         * ftp.c (ftp_retrieve_list): Symlinks and other filenames
452         should be fully quoted.
453
454 2008-05-12  Micah Cowan  <micah@cowan.name>
455
456         * main.c (main): Downgrade "-N with -O" to a warning, and switch
457         it off to avoid confusing messages.
458
459 2008-04-30  Micah Cowan  <micah@cowan.name>
460
461         * progress.c (create_image): Fix glitch where too many spaces are
462         printed on lines that don't display the ETA, in multibyte
463         locales.
464
465 2008-04-30  Steven Schubiger  <stsc@members.fsf.org>
466
467         * main.c (main): New code that handles prompting for passwords
468         when specified explicitly via command-line option (using gnulib's
469         getpass-gnu module).
470         (main): Include the getpass header.
471
472         * init.c: Add "ask-password" to the list of recognized commands.
473
474         * options.h: Add an according boolean member to the options
475         struct.
476
477         * sysdep.h: Comment the defines __EXTENSIONS__ and _GNU_SOURCE
478         out, because they're now defined independently by config.h.
479
480 2008-04-27  Rabin Vincent  <rabin@rab.in>
481
482         * http.c (http_loop): Fix return for the case where we don't
483         download a file because of -nc.
484
485 2008-04-27  Micah Cowan  <micah@cowan.name>
486
487         * url.c (path_simplify): Go back to allowing leading ".." in
488         paths, but only for FTP URLs.
489         (test_path_simplify): Add scheme-specificness to tests, adapt for
490         mu_run_test.
491
492         * test.c (all_tests): Add test_path_simplify.
493
494         * main.c (main): Downgrade -r, -p with -O to a warning rather than
495         an error; elaborate just a bit more for other -O combination
496         cases.
497
498 2008-04-26  Micah Cowan  <micah@cowan.name>
499
500         * http.c (gethttp): Move proxy CONNECT handling to below the
501         retry_with_auth label, to deal with properly reconnecting to
502         proxies when we need to authenticate.
503
504 2008-04-25  Micah Cowan  <micah@cowan.name>
505
506         * Makefile.am: -I foo -> -Ifoo.
507
508 2008-04-24  Micah Cowan  <micah@cowan.name>
509
510         * main.c: Revised usage description of --convert-links to apply
511         to CSS as well as to HTML.
512
513 2008-04-23  Micah Cowan  <micah@cowan.name>
514
515         * utils.c (test_dir_matches_p): Added a test for the case
516         described in issue #20518.
517
518 2008-04-22  Micah Cowan  <micah@cowan.name>
519
520         * Makefile.am, css.lex, css.l: Renamed css.lex to css.l.
521         * recur.c (retrieve_tree): Fix typo to allow text/css files to
522         be parsed.
523
524 2008-04-22  Ted Mielczarek  <ted.mielczarek@gmail.com>
525
526         * css.lex, css-url.c, css-url.h: Added to implement support for
527         parsing CSS in Wget.
528         * convert.c: Convert links in CSS files, too.
529         * convert.h (convert_options): Added for options link_css_p,
530         link_expect_css.
531         * convert.h: Added prototype for new register_css function.
532         * html-parse.c: Added support for parsing element content, in
533         addition to tag starts and ends.
534         * html-parse.h (taginfo): Added delimiter fields for element
535         content.
536         * html-url.h: Added.
537         * html-url.c (append_url): No longer internal-linkage only. Now
538         takes position and size as explicit parameters.
539         * html-url.c: Use new html-url.h header, add support for
540         handling of "style" HTML attributes. Mark URIs obtained from
541         link tags with rel="stylesheet" with link_expect_css. Adapt
542         uses of append_url to supply the newly-added parameters for
543         position and size.
544         * http.c: Add detection for when the content-type is text/css;
545         and ensure that such files have the ".css" filename extension,
546         when --convert-links is active.
547         * recur.h: Remove declarations for functions found in
548         html-url.c (moved to html-url.h).
549         * recur.c: Add support for culling links from CSS files, too,
550         and tracking for when we're expecting the file to be CSS (even
551         when its content type isn't text/css).
552         * retr.c (retrieve_url): Add registration of CSS files.
553         * wget.h: Added TEXTCSS to dt flags enum.
554         * Makefile.am: Added css.lex, css-url.c, css-url.h, html-url.h
555         to wget_SOURCES.
556
557 2008-04-22  Jim Paris  <jim@jtan.com>
558
559         * openssl.c (ssl_init): Enable combined certificate/key in
560         single file (apparent regression from ~1.9). Resolves issue
561         #22767.
562
563 2008-04-22  Steven Schubiger  <schubiger@gmail.com>
564
565         * http.c (print_response_line): Changed to make responses always
566         be logged, even in --quiet mode, if --server-response was
567         specified. This is to bring http.c's handling of the situation
568         in line with ftp.c's.
569
570 2008-04-22  Pranab Shenoy  <pranab.loosinit.shenoy@gmail.com>
571
572         * init.c: Added test_commands_sorted unit test to check is
573         commands are sorted.  Fixes bug #21245.
574
575         * test.c: Added test_commands_sorted to the test suite.
576
577 2008-04-22  Rabin Vincent  <rabin@rab.in>
578
579         * ftp.c (ftp_get_listing): Only remove .listing if it has been
580         created. 
581
582 2008-04-22  Alain Guibert  <alguibert+bts@free.fr>
583
584         * test.h (mu_run_test): Move declaration before statements, for
585         C90 conformance. Fixes bug #22789.
586
587 2008-04-22  Mike Frysinger  <vapier@gentoo.org>
588
589         * Makefile.am: Move @LIBS@ after other libraries, for better
590         static-linking support. Fixes bug #22143.
591
592 2008-04-16  Steven Schubiger  <schubiger@gmail.com>
593
594         * ftp.c: Use Gnulib's quote function for printing filenames and
595         such.
596         * connect.c: Likewise.
597         * convert.c: Likewise.
598         * cookies.c: Likewise.
599         * ftp-opie.c: Likewise.
600         * gnutls.c: Likewise.
601         * init.c: Likewise.
602         * log.c: Likewise.
603         * mswindows.c: Likewise.
604         * openssl.c: Likewise.
605         * progress.c: Likewise.
606         * recur.c: Likewise.
607         * res.c: Likewise.
608         * utils.c: Likewise.
609
610 2008-04-16  Steven Schubiger  <schubiger@gmail.com>
611
612         * sysdep.h: Comment the defines __EXTENSIONS__ and _GNU_SOURCE 
613         out, because they're now defined independently by config.h.
614
615 2008-04-14  Steven Schubiger  <schubiger@gmail.com>
616
617         * http.c: Use Gnulib's quote function for printing filenames and
618         such.
619         * wget.h: #include "quote.h".
620
621 2008-04-12  Rabin Vincent  <rabin@rab.in>
622
623         * mswindows.c (fake_fork_child): Don't create a logfile for
624         --background when --quiet is used, but not --server-response.
625         Fixes bug #20917.
626
627         * utils.c (fork_to_background): Likewise.
628
629 2008-04-12  Micah Cowan  <micah@cowan.name>
630
631         * utils.c (aprintf): Minor formatting changes to Alex's code (80-
632         column limit, concatenated string literals, avoiding nesting
633         levels), and removed invocation of free (since we're aborting
634         anyway).
635
636 2008-04-11  Alexander Dergachev  <cy6erbr4in@gmail.com>
637
638         * utils.c (aprintf): Now we are setting limits (1 Mb) for text
639         buffer when we use non-C99 vsnprintf.
640         
641 2008-04-11  Micah Cowan  <micah@cowan.name>
642
643         * ftp.c (getftp, ftp_loop_internal): Don't append to an existing
644         .listing when --continue is used.  Fixes bug #22825. Thanks to
645         Rabin Vincent <rabin@rab.in> for pointing the way with a
646         suggested fix!
647
648 2008-04-10  Alexander Dergachev  <cy6erbr4in@gmail.com>
649
650         * xmalloc.c, xmalloc.h (memfatal): Now exported; accepts an
651         "unknown" value for the attempted allocation size.
652         * utils.c (aprintf): Now calls memfatal, instead of aborting.
653
654 2008-03-19  Micah Cowan  <micah@cowan.name>
655
656         * utils.c (test_dir_matches_p): More tests related for
657         dir_matches_p.
658
659 2008-03-17  Micah Cowan  <micah@cowan.name>
660
661         * connect.c: Include sys/time.h to support use of the select
662         function on older systems.
663
664 2008-02-11  Benno Schulenberg  <bensberg@justemail.net>
665
666         * http.c: More accurate and descriptive messages for when a file
667         won't be retrieved during spider-mode.
668
669 2008-02-10  Micah Cowan  <micah@cowan.name>
670
671         * http.c: Added existence_checked member to the http_stat
672         struct.
673         (gethttp): Mark hs->existence_checked when we've checked whether
674         a file-to-download exists; so we don't check it again if the
675         connection gets lost (and potentially pick a new "unique" name).
676         This fixes bug 22251.
677         * progress.c (create_image): Add space for an extra column in
678         the "eta" portion of the progress bar image; to deal with
679         too-long Czech translation.
680         * main.c, http.c, init.c: Added --auth-no-challenge option, to
681         bring back 1.10.2 unsafe auth behavior when needed. This fixes
682         bug #22242.
683
684 2008-02-07  Micah Cowan  <micah@cowan.name>
685
686         * progress.c (create_image): Remove assertion on exceeding
687         screen width, which given the less-than-robust code there, can
688         be broken by a number of factors (such as large file downloads).
689
690 2008-02-06  Micah Cowan  <micah@cowan.name>
691
692         * progress.c (countcols): Use strlen() when mbtowc or wcwidth
693         not available (or not using NLS).
694         * utils.c: Ensure we use single-byte separators when not doing
695         NLS progress-bars.
696         * wget.h: Determine whether to use NLS for progress-bars, based
697         on whether wcwidth and mbtowc are available.
698
699 2008-02-03  Micah Cowan  <micah@cowan.name>
700
701         * progress.c (create_image): Use number of characters/columns
702         consumed, rather than number of bytes, to determine how much of
703         a line we've used. Fixes assertion errors and field alignment
704         bugs (#22161, #20481)
705         (get_eta, count_cols): Added to support the changes for
706         create_image.
707         * http.c (http_loop): Put no-clobber logic back into http_loop,
708         before starting to fetch, for when we're not doing
709         content-disposition.
710
711 2008-01-31  Micah Cowan  <micah@cowan.name>
712
713         * http.c (gethttp): Don't derive hs->contlen from possibly
714         invalid/missing Content-Length; instead, get the appropriate
715         value from the Content-Range header values.
716         (parse_content_range): Handle '*' instance-length field.
717
718 2008-01-25  Micah Cowan  <micah@cowan.name>
719
720         * main.c: Added notes to translators regarding (C), diacritics
721         in names.
722         * Makefile.am, cmpt.c, connect.c, connect.h, convert.c,
723         cookies.c, cookies.h, ftp-basic.c, ftp-ls.c, ftp-opie.c, ftp.c,
724         ftp.h, gen-md5.c, gen-md5.h, gnutls.c, hash.c, hash.h, host.c,
725         host.h, html-parse.c, html-parse.h, html-url.c, http-ntlm.c,
726         http-ntlm.h, http.c, http.h, init.c, init.h, log.c, log.h,
727         main.c, mswindows.c, mswindows.h, netrc.c, netrc.h, openssl.c,
728         options.h, progress.c, progress.h, ptimer.c, ptimer.h, recur.c,
729         recur.h, res.c, res.h, retr.c, retr.h, spider.c, spider.h,
730         ssl.h, sysdep.h, test.c, test.h, url.c, url.h, utils.c,
731         utils.h, wget.h, xmalloc.c, xmalloc.h: Updated copyright year.
732
733 2007-12-10  Micah Cowan  <micah@cowan.name>
734
735         * main.c: The option is --content-disposition, not
736         --no-content-disposition (at the moment).
737
738 2007-12-08  Hrvoje Niksic  <hniksic@xemacs.org>
739
740         * ftp.c (ftp_retrieve_glob): Print both arguments of fnmatch in
741         fnmatch error message.
742         (ftp_retrieve_glob): Don't match with fnmatch if we're only
743         supposed to get one file.
744
745 2007-12-07  Micah Cowan  <micah@cowan.name>
746
747         * Makefile.am: Plug in vars to include stuff from
748         $(top_srcdir)/md5 when appropriate.
749
750 2007-12-05  Micah Cowan  <micah@cowan.name>
751
752         * utils.c (subdir_p): Handle the case where d1 is "".
753         * convert.c (convert_all_links): Don't return without
754         deallocating timer.
755
756 2007-11-28  Micah Cowan  <micah@cowan.name>
757
758         * Makefile.am, cmpt.c, connect.c, connect.h, convert.c,
759         convert.h, cookies.c, cookies.h, ftp-basic.c, ftp-ls.c,
760         ftp-opie.c, ftp.c, ftp.h, gen-md5.c, gen-md5.h, gnutls.c,
761         hash.c, hash.h, host.c, host.h, html-parse.c, html-parse.h,
762         html-url.c, http-ntlm.c, http-ntlm.h, http.c, http.h, init.c,
763         init.h, log.c, log.h, main.c, mswindows.c, mswindows.h,
764         netrc.c, netrc.h, openssl.c, options.h, progress.c, progress.h,
765         ptimer.c, ptimer.h, recur.c, recur.h, res.c, res.h, retr.c,
766         retr.h, safe-ctype.c, safe-ctype.h, spider.c, spider.h, ssl.h,
767         sysdep.h, test.c, test.h, url.c, url.h, utils.c, utils.h,
768         wget.h, xmalloc.c, xmalloc.h: Updated license exception for
769         OpenSSL, per the SFLC.
770
771 2007-10-30  Micah Cowan  <micah@cowan.name>
772
773         * main.c (main): Declare argv parameter as char **argv, rather
774         than char *const *argv. This fixes usage of getopt_long,
775         regardless of whether getopt_long has a constified argv or not.
776
777 2007-10-22  Gisle Vanem  <gvanem@broadpark.no>
778
779         * mswindows.c: Move INHIBIT_WRAP macro definition up with wget.h
780         inclusion.
781
782 2007-10-18  Steven Schweda  <sms@antinode.org>
783
784         * sysdep.h: #include <stdint.h> as well as <inttypes.h>, to work
785         around a glitch on Tru64 systems.
786
787 2007-10-18  Micah Cowan  <micah@cowan.name>
788
789         * Makefile.am: version.c should not be distributed. Removed
790         config-post.h. Add version.c dependency and gnulib include path
791         for libunittest.a.
792         * sysdep.h: Got contents of config-post.h
793         * config-post.h: Removed.
794         * wget.h: #include "config.h".
795         * alloca.c, cmpt.c, connect.c, convert.c, cookies.c,
796         ftp-basic.c, ftp-ls.c, ftp-opie.c, ftp.c, gen-md5.c, gnutls.c,
797         hash.c, host.c, html-parse.c, html-url.c, http-ntlm.c, http.c,
798         init.c, log.c, main.c, mswindows.c, netrc.c, openssl.c,
799         progress.c, ptimer.c, recur.c, res.c, retr.c, spider.c, url.c,
800         utils.c, xmalloc.c: Use wget.h at very top, and instead of
801         config.h.
802
803 2007-10-15  Micah Cowan  <micah@cowan.name>
804
805         * Makefile.am: Remove intermediary hg-id file generation, make
806         version.c-generation more portable.
807
808 2007-10-14  Micah Cowan  <micah@cowan.name>
809
810         * cmpt.c, cookies.c, ftp-basic.c, ftp-ls.c, ftp.c, hash.c,
811         host.c, html-parse.c, html-url.c, http-ntlm.c, http.c, init.c,
812         log.c, main.c, netrc.c, openssl.c, res.c, url.c, utils.c,
813         wget.h: Replace uses of ISSPACE, etc with c_isspace, etc.
814         * gnu-md5.c, gnu-md5.h: Removed, in deference to gnulib.
815         * Makefile.am: Removed gnu-md5.h from wget_SOURCES.
816         * gen-md5.c: Changed #inclusion of gnu-md5.h to md5.h (gnulib's).
817         * recur.c (download_child_p): Print error if unlink of
818         robots.txt fails.
819         * main.c (main): --spider or --delete-after now implies
820         --no-directories (thanks, Josh Williams).
821
822 2007-10-14  Joshua David Williams  <yurimxpxman@gmail.com>
823
824         * recur.c (download_child_p): Remove robots.txt if
825         --delete-after or --spider is on.
826
827 2007-10-13  Micah Cowan  <micah@cowan.name>
828
829         * Makefile.am: Make version.c depend on Wget dependencies (source
830         files, plus such things as LIBOBJS so we get things like
831         http-ntlm.c). Removed getopt.[ch], as we're now using gnulib for
832         these.
833
834 2007-10-10  Micah Cowan  <micah@cowan.name>
835
836         * http-ntlm.c: Include openssl/opensslv.h explicitly, instead of
837         hoping it'll be included by accident in openssl/des.h.
838
839 2007-10-09  Gisle Vanem  <gvanem@broadpark.no>
840
841         * mswindows.c: 'argc' and 'argv' in 'windows_main()' are no longer
842         needed.  Hence simply the prototype. Free 'exec_name' at exit.
843
844 2007-10-09  Micah Cowan  <micah@cowan.name>
845
846         * gettext.h: Imported from /usr/share/gettext, fuller handling
847         of --disable-nls.
848         * wget.h: Remove logic for handling lack of NLS (now in
849         gettext.h).
850         * main.c: Use gettext's ENABLE_NLS rather than HAVE_NLS.
851         * Makefile.am: added @LIBINTL@ to LIBS (though it probably
852         belongs in LDADD, along with everything else currently assigned
853         to LIBS).
854
855 2007-10-08  Micah Cowan  <micah@cowan.name>
856
857         * http.c (http_loop): Add send_head_first conditional back
858         around code that needs it, but not around the last-modified
859         header-parsing stuff this time. Removed no-longer-useful (was it
860         ever?) restart_loop boolean, continuing unconditionally at end
861         of send_head_first conditional block (if we haven't jumped out).
862
863 2007-10-04  Micah Cowan  <micah@cowan.name>
864
865         * http.c (http_loop): We've got_name if content_disposition
866         support isn't on; make sure we continue properly in that case,
867         even though we're not sending HEAD.
868         * Makefile.in: Removed, replaced by Makefile.am.
869         * Makefile.am: Converted from Makefile.in.
870
871 2007-10-02  Gisle Vanem  <gvanem@broadpark.no>
872         
873         * ftp.c: Use "_listing" for MSDOS (".listing" is illegal).
874
875         * url.c: Update comment for 'filechr_not_windows'.
876
877         * utils.c: Include <process.h> for 'getpid()' on Watcom.
878
879 2007-10-02  Micah Cowan  <micah@cowan.name>
880
881         * ftp.c (getftp, ftp_loop_internal), http.c (http_loop), main
882         (main): Use datetime_str instead of time_str, for those who have
883         potentially long-running sessions. Based on suggestions by Saso
884         Tomat <miskox@hotmail.com> and Steven M. Schweda
885         <sms@antinode.org>.
886         * http.c (gethttp): Warn about host lookup failures. Adjusted
887         from Stephen Gildea's patch.
888
889 2007-10-02  Stephen Gildea  <stepheng+wget@gildea.com>
890
891         * connect.c (connect_to_host): Warn about host lookup failures.
892
893 2007-09-25  Micah Cowan  <micah@cowan.name>
894
895         * Makefile.in: Use EXEEXT instead of exeext.
896
897 2007-09-24  Gisle Vanem  <giva@bgnett.no>
898
899         * connect.c, init.c, main.c, openssl.c, options.h, sysdep.h,
900         url.c, utils.c: Added support for building on MS-DOS.
901
902 2007-09-24  Jochen Roderburg  <roderburg@uni-koeln.de>
903
904         * http.c (http_zero): Remove no-longer-used local_size variable.
905         Fixes bug #21057.
906
907 2007-09-12  Micah Cowan  <micah@cowan.name>
908
909         * http.c (http_loop): Remove send_head_first from condition for
910         parsing timestamp.
911
912 2007-08-29  Micah Cowan  <micah@cowan.name>
913
914         * openssl.c (ssl_init): Re un-const-ified the meth local
915         variable, to match current versions of openssl.
916         * spider.c: Removed visited_url function, as it may be very
917         inefficient.
918         (print_broken_links): Removed traversal of referrers, until such
919         time as a more efficient implementation can be written.
920         * spider.h: Replaced declaration of visited_url with an
921         empty-bodied, function-like macro.
922
923 2007-08-27  Gisle Vanem  <giva@bgnett.no>
924
925         * mswindows.c (run_with_timeout): Ensure that the correct
926         conversion specification is used for the return result of
927         the GetLastError function.
928         * getopt.c: Fix missing (but, accidentally, legal) comment
929         delimiter after licensing text.
930         * recur.c (retrieve_tree): Inserted missing cast for strip_auth.
931         Includes adjustment by Ralf Wildenhues.
932         * openssl.c (ssl_init): const-ified the meth local variable.
933         * main.c: Include all the static function definitions in the
934         "#ifndef TESTING" clause, leaving just the definitions for
935         exec_name (not set), and opt.
936         * utils.c (run_with_timeout): Now returns bool, to align with
937         declaration in utils.h.
938
939 2007-08-27  Micah Cowan  <micah@cowan.name>
940
941         * wget.h: Added macro replacement for ngettext, for environs
942         that lack NLS.
943
944 2007-08-26  Micah Cowan  <micah@cowan.name>
945
946         * spider.c (print_broken_links): Fixed incorrect plurals msgid
947         usage, switched to use ngettext function.
948
949 2007-08-24  Micah Cowan  <micah@cowan.name>
950
951         * http.c (http_loop): Introduced time_came_from_head boolean
952         flag, to help avoid parsing the same Last-Modified header twice.
953         Replaced spidering returns of RETRUNNEEDED for some situations,
954         to RETROK, as otherwise it will be interpreted as an error.
955         RETRUNNEEDED appears never to be referenced outside of
956         http.c (and wget.h), and, when returned by gethttp, is
957         translated by http_loop to RETROK.
958         * url.c (are_urls_equal): Don't call getchar_from_escaped_string
959         if u2 is shorter than u1.
960         (getchar_from_escaped_string): Don't decode reserved characters.
961         Handle illegally appearing '%'s as literal '%'s. Ensure hex
962         digits before attempting to decode.
963         (test_are_urls_equal): Added tests to handle u2 shorter than u1,
964         and %2f not treated the same as /.
965         * spider.c (in_url_list_p): Don't call are_urls_equal if one of
966         them is NULL.
967
968 2007-08-23  Joshua David Williams  <yurimxpxman@gmail.com>
969
970         * spider.c (in_url_list_p): Removed the bool verbose argument
971
972 2007-08-22  Mauro Tortonesi  <mauro@ferrara.linux.it>
973
974         * http.c (http_loop): Fall back to GET if HEAD fails with a 500 or 501
975         error code.
976
977 2007-08-21  Mauro Tortonesi  <mauro@ferrara.linux.it>
978         
979         * http.c (http_loop): Send preliminary HEAD request if -N is given and
980         the destination file exists already.
981
982 2007-08-10  Mauro Tortonesi  <mauro@ferrara.linux.it>
983
984         * http.c (http_loop): Fixed HTTP HEAD requests logic when --spider is
985         given.
986
987 2007-08-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
988
989         * url.c (append_uri_pathel): Do not assume dest string to be
990         zero-terminated.
991         (test_append_uri_pathel): Terminate string to fix test failure.
992
993 2007-08-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
994
995         * url.c (url_string): Use comparison, not assignment, in
996         check for auth_mode == URL_AUTH_HIDE_PASSWD.
997
998 2007-08-09  Micah Cowan  <micah@cowan.name>
999
1000         * http.c (http_loop): If we got a HEAD and then a GET, and the
1001         GET had a timestamp, use that one, not any we may have gotten
1002         from the HEAD.
1003
1004 2007-08-08  Micah Cowan  <micah@cowan.name>
1005
1006         * init.c (defaults): Content disposition will not be default,
1007         since it currently results in extra round-trips.
1008
1009 2007-07-31  Micah Cowan  <micah@cowan.name>
1010
1011         * http.c (gethttp): Set contlen = -1 when we encounter a
1012         negative-valued Content-Length header, so we don't consider it
1013         an internal error later on and call abort().
1014
1015 2007-07-29  Micah Cowan  <micah@cowan.name>
1016
1017         * url.h, url.c (url_string): Replaced bool arg of the url_string
1018         function with enum url_auth_mode, with added option to
1019         completely remove user/pass auth information.
1020         * http.c, ftp.c, url.c, recur.c: Adapted call to url_string
1021         function to fit new usage.
1022         * recur.c (retrieve_tree): Remove auth info from Referer header.
1023
1024 2007-07-28  Micah Cowan  <micah@cowan.name>
1025
1026         * options.h, init.c, retr.c, main.c: renamed opt maxredirect
1027         field to max_redirect, for improved consistency.
1028         * init.c: changed max_redirect parser from cmd_number_inf to
1029         cmd_number, as infinite redirects may not be appropriate.
1030         Alternatively, if cmd_number_inf should be used, then
1031         opt.max_redirect's value should be checked a bit differently in
1032         retr.c, to allow for the "infinite" meaning of zero.
1033
1034 2007-07-25  Micah Cowan  <micah@cowan.name>
1035
1036         * http.c (create_authorization_line)
1037         (basic_authentication_encode, known_authentication_scheme_p)
1038         (load_cookies): Moved declarations up.
1039         (basic_authed_hosts): Added. Tracks what hosts have issued Basic
1040         challenge and been given the global username, password.
1041         (maybe_send_basic_creds): Added. Sends Basic creds for hosts that
1042         have issued Basic challenges.
1043         (register_basic_auth_host): Added. Instantiates
1044         basic_authed_hosts if necessary, then registers the host that
1045         has issued a challenge.
1046         (gethttp) <auth>: Only send authentication credentials after
1047         we've received a challenge from that host. This is a stop-gap
1048         fix until a proper fix can be implemented; still isn't quite
1049         right, as we should only be sending credentials automatically
1050         for authenticated paths and below, and not for the entire host.
1051
1052 2007-07-16  Joshua David Williams  <yurimxpxman@gmail.com>
1053
1054         * options.h: added maxredirect to options struct
1055         * init.c: added maxredirect to list of variables
1056         * retr.c (retrieve_url): replaced MAX_REDIRECTIONS with opt.maxredirect
1057         * main.c: added option --max-redirect
1058
1059 2007-07-16  Joshua David Williams  <yurimxpxman@gmail.com>
1060
1061         * test.h: tests made more verbose; now displays the name
1062         of each test run.
1063
1064 2007-07-10  Mauro Tortonesi  <mauro@ferrara.linux.it>
1065
1066         * http.c (http_loop): Fixed the HTTP requests logic. Now it skips the 
1067         preliminary HEAD request if either -O or --no-content-disposition are 
1068         given, and neither --spider and -N are given.
1069
1070 2007-07-05  Micah Cowan  <micah@cowan.name>
1071
1072         * cmpt.c, connect.c, connect.h, convert.c, convert.h:
1073         * cookies.c, cookies.h, ftp-basic.c, ftp.c, ftp.h, ftp-ls.c:
1074         * ftp-opie.c, gen-md5.c, gen-md5.h, getopt.c, getopt.h, gnu-md5.c:
1075         * gnu-md5.h, gnutls.c, hash.c, hash.h, host.c, host.h:
1076         * html-parse.c, html-parse.h, html-url.c, http.c, http.h:
1077         * http-ntlm.c, http-ntlm.h, init.c, init.h, log.c, log.h, main.c:
1078         * Makefile.in, mswindows.c, mswindows.h, netrc.c, netrc.h:
1079         * openssl.c, options.h, progress.c, progress.h, ptimer.c:
1080         * ptimer.h, recur.c, recur.h, res.c, res.h, retr.c, retr.h:
1081         * safe-ctype.c, safe-ctype.h, spider.c, spider.h, ssl.h, sysdep.h:
1082         * test.c, test.h, url.c, url.h, utils.c, utils.h, wget.h:
1083         * xmalloc.c, xmalloc.h:
1084         Updated GPL reference to version 3 or later, removed FSF
1085         address.
1086
1087 2007-07-04  Mauro Tortonesi  <mauro@ferrara.linux.it>
1088
1089         * http.c (http_loop): Skip HEAD request and start immediately with GET
1090         if -O is given.
1091
1092 2007-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
1093
1094         * http.c (print_server_response): Escape non-printable characters
1095         in server respone.
1096
1097 2007-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
1098
1099         * netrc.c: Don't make netrc_list static, as it prevents
1100         compilation with DEBUG_MALLOC.
1101
1102         * utils.c (aprintf): Don't use vasprintf when DEBUG_MALLOC is
1103         requested because, in that case, we want the calls to malloc to be
1104         coming from us.
1105
1106 2007-01-23  Hrvoje Niksic  <hniksic@xemacs.org>
1107
1108         * cookies.c (parse_set_cookie): Would erroneously discard cookies
1109         with unparsable expiry time.
1110
1111 2007-01-23  Hrvoje Niksic  <hniksic@xemacs.org>
1112
1113         * progress.c (create_image): Check for ETA overflow.
1114         (print_row_stats): Ditto.
1115
1116 2007-01-09  Mauro Tortonesi  <mauro@ferrara.linux.it>
1117
1118         * init.c (cmd_spec_prefer_family): Small fix to get rid of a gcc
1119         warning about strict-aliasing violation.
1120
1121 2007-01-09  Steven M. Schweda  <sms@antinode.org>
1122
1123         * ftp-basic.c (ftp_syst): Fixed segfault if response text is missing.
1124
1125 2006-12-29  Gisle Vanem  <giva@bgnett.no>
1126
1127         * mswindows.c: Avoid a warning if 'ws_hangup()' is unused.
1128
1129 2006-12-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
1130
1131         * http.c (parse_content_disposition): Consider directory prefix, if
1132         specified.
1133
1134 2006-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
1135
1136         * retr.c (retrieve_from_file): Ditto.
1137         (url_uses_proxy): New function.
1138
1139         * main.c (main): Don't check for opt.use_proxy when deciding
1140         whether to call retrieve_url or retrieve_tree; check whether the
1141         proxy would be used for *this* URL.
1142
1143 2006-10-17  Mike Grant  <mggr@pml.ac.uk>
1144
1145         * ftp.c (ftp_loop_internal): Would incorrectly skip changing
1146         working directory when retrying after a failed FTP attempt.
1147         Originally reported by Nate Eldredge.
1148
1149 2006-10-12  Mauro Tortonesi  <mauro@ferrara.linux.it>
1150
1151         * convert.c (downloaded_file): Fixed bug which used to break -E -k -K 
1152         mode.
1153
1154 2006-08-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
1155
1156         * http.c: #include'd spider.h to get rid of compiler warnings.
1157
1158         * main.c: Ditto.
1159
1160         * recur.c: Ditto.
1161
1162 2006-08-24  Mauro Tortonesi  <mauro@ferrara.linux.it>
1163
1164         * Makefile.in: Added spider.c to the list of files to compile and
1165         spider.h to the list of header files. Updated copyright information.
1166
1167         * http.c: Major changes to recursive spider mode. Now for every
1168         resource we are supposed to check, we send a HEAD request to find out
1169         if it exists. If the resource is a HTML file, we retrieve it and parse
1170         it to discover links to other resources.
1171
1172         * recur.c: Ditto.
1173
1174         * res.c (res_retrieve_file): Disable opt.timestamping and opt.spider
1175         when retrieving robots.txt. Updated copyright information.
1176
1177         * convert.c: Moved code tracking broken links to spider.c.
1178
1179         * convert.h: Ditto.
1180
1181         * spider.c: Created new file to keep track of visited URLs in spider
1182         mode.
1183
1184         * spider.h: Ditto.
1185
1186 2006-08-21  Mauro Tortonesi  <mauro@ferrara.linux.it>
1187
1188         * http.c: Fixed timestamping-related bug.
1189
1190 2006-08-16  Mauro Tortonesi  <mauro@ferrara.linux.it>
1191
1192         * http.c: Fixed bug which broke --continue feature. Now if -c is
1193         given, http_loop sends a HEAD request to find out the destination
1194         filename before resuming download.
1195
1196 2006-08-08  Hrvoje Niksic  <hniksic@xemacs.org>
1197
1198         * utils.c (datetime_str): Avoid code repetition with time_str.
1199
1200 2006-07-21  Hrvoje Niksic  <hniksic@xemacs.org>
1201
1202         * init.c (commands): Correctly place "contentdisposition".
1203
1204 2006-07-14  Mauro Tortonesi  <mauro@ferrara.linux.it>
1205         
1206         * sysdep.h: If intptr_t isn't defined, simply typedef it to long.
1207
1208         * http.c: Added explicit cast to int in logprintf call to remove
1209         compiler warnings on 64-bit platforms.
1210
1211         * connect.c: Added a few casts to intptr_t to remove compiler warnings
1212         on 64-bit platforms.
1213         
1214         * main.c: Disable -r, -p and -N when -O is used. Disable -k when -O is
1215         used and multiple URLs are given. Update maintainer information.
1216         
1217         * all: Update copyright information.
1218         
1219 2006-07-10  KJKHyperion  <hackbunny@reactos.com>
1220
1221         * url.c (filechr_table): Mark DEL (0x7f) as a control character
1222         and | as a character Windows can't handle.
1223
1224 2006-06-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
1225
1226         * res.c: Implemented is_robots_txt_url function for detection of
1227         robots.txt URLs and related test routine.
1228
1229         * res.h: Ditto.
1230
1231         * url.c: Implemented are_urls_equal function for URL comparison and
1232         related testing routine.
1233
1234         * url.h: Ditto.
1235
1236         * convert.c: Fixes for recursive spider mode: don't consider
1237         non-existing robots.txt as a broken link, and use are_urls_equal
1238         instead of strcasecmp for referrer URLs comparison.
1239
1240         * test.c: Call tests routines for are_urls_equal and 
1241         is_robots_txt_url.
1242
1243 2006-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
1244
1245         * wget.h (wgint): Typedef to any 64-bit (or larger) type we can
1246         find, not necessarily off_t or long.
1247
1248 2006-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
1249
1250         * cmpt.c (strtoll): Check for overflow and underflow without
1251         relying on (technically) undefined behavior.  Don't assume that
1252         strtoll_type is 64 bits wide.
1253
1254 2006-06-21  Hrvoje Niksic  <hniksic@xemacs.org>
1255
1256         * utils.c (base64_encode): Cast void pointer to char * before
1257         doing arithmetic.
1258
1259 2006-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
1260
1261         * utils.c (base64_encode): Made TBL const.
1262         (base64_decode): Made the base64_char_to_value table const.
1263
1264 2006-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
1265
1266         * utils.c (base64_encode): Made the DATA pointer void * so the
1267         callers can pass it any kind of pointer (including both signed and
1268         unsigned char pointers).
1269         (base64_decode): Ditto for DEST.
1270
1271 2006-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
1272
1273         * utils.c (base64_encode): Would read past end of STR.
1274         Reported by rick@eckle.org.
1275
1276 2006-06-13  Mauro Tortonesi  <mauro@ferrara.linux.it>
1277
1278         * options.h (struct options): Introduced member restrict_files_case to
1279         keep track of preferences on character case restrictions for
1280         filenames.
1281
1282         * init.c: Modified defaults and cmd_spec_restrict_file_names to
1283         support character case restrictions for filenames. Added
1284         test_cmd_spec_restrict_file_names unit test.
1285
1286         * url.c: Modified append_uri_pathel to support character case
1287         restrictions for filenames. Added test_append_uri_pathel unit test.
1288
1289         * test.c: Added test_cmd_spec_restrict_file_names and
1290         test_append_uri_pathel to the list of unit tests to run.
1291
1292 2006-06-12  Mauro Tortonesi  <mauro@ferrara.linux.it>
1293
1294         * retr.c (retrieve_from_file): Use retrieve_tree and automatically
1295         turn on opt.follow_ftp in case of recursive FTP retrieval through HTTP
1296         proxy.
1297
1298         * main.c: Automatically turn on opt.follow_ftp in case of recursive
1299         FTP retrieval through HTTP proxy.
1300
1301 2006-06-12  Tony Lewis  <tlewis@exelana.com>
1302
1303         * main.c: Improved CHEN Peng's patch by proposing a simpler logic.
1304
1305 2006-06-12  CHEN Peng  <chenpeng@alumni.nus.edu.sg>
1306
1307         * main.c: Use retrieve_tree in case of recursive FTP retrieval through
1308         HTTP proxy.
1309
1310 2006-05-25  Mauro Tortonesi  <mauro@ferrara.linux.it>
1311
1312         * convert.c: Added mechanisms to keep track broken links.
1313
1314         * convert.h: Ditto.
1315
1316         * wget.h: Reordered and enumerated uerr_t constants.
1317
1318         * recur.c: Fixes to support recursive spider mode.
1319
1320         * http.c: Ditto.
1321
1322         * main.c: Print broken links in case of recursive spider mode.
1323
1324         * retr.c: Changed interface of retrieve_url.
1325
1326         * retr.h: Ditto.
1327
1328         * ftp.c: Changed interface of ftp_loop.
1329
1330         * ftp.h: Ditto.
1331
1332         * res.c: Minor change to reflect changes in interface of retrieve_url.
1333
1334 2006-05-18  Lawrence Jones  <lawrence.jones@ugs.com>
1335
1336         * ftp-ls.c (ftp_parse_unix_ls): Correct size parsing, add size
1337         and filename debugging output.
1338
1339 2006-04-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
1340
1341         * http.c: If Content-Disposition header is present, allow unique
1342         filename generation unless -nc is given. Permit to disable parsing of
1343         Content-Disposition header.
1344
1345         * options.h: Added option --no-content-disposition to disable parsing
1346         of HTTP Content-Disposition header.
1347
1348         * init.c: Ditto.
1349         
1350         * main.c: Ditto.
1351
1352 2006-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
1353
1354         * hash.c (TOLOWER): Wrap macro arg in parentheses.
1355
1356 2006-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
1357
1358         * http.c (parse_content_disposition): Doc fix.
1359
1360 2006-03-15  Mauro Tortonesi  <mauro@ferrara.linux.it>
1361
1362         * utils.c: Restricted operational semantics of frontcmp and proclist
1363         from generic strings to directory names and them to subdir_p and
1364         dir_matches_p respectively.  Applied George Ogata's one line patch to
1365         restrict algorithm of subdir_p to full directory name matching.  Added
1366         testcases for subdir_p and dir_matches_p.
1367
1368         * utils.h: Changed all frontcmp occurrences to subdir_p.
1369         
1370         * recur.c: Ditto.
1371         
1372         * test.c: Changed type returned by test functions from char * to const
1373         char *.  Added test_subdir_p and test_dir_matches_p to the list of
1374         tests to run.
1375
1376         * http.c (test_parse_content_disposition): Changed return type from
1377         char * to const char *. 
1378
1379 2006-03-14  Mauro Tortonesi  <mauro@ferrara.linux.it>
1380
1381         * recur.c (struct queue_element): Changed type of html_allowed member
1382         to bool.
1383         
1384 2006-03-09  Mauro Tortonesi  <mauro@ferrara.linux.it>
1385
1386         * ftp.c (ftp_list): Try `LIST -a' command first and revert to `LIST'
1387         in case of failure.
1388
1389 2006-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
1390
1391         * hash.c (TOLOWER): Fix definition when STANDALONE.
1392         Reported by Beni Serfaty.
1393
1394 2006-03-02  Mauro Tortonesi  <mauro@ferrara.linux.it>
1395
1396         * http.c (http_loop): Fixed recursive HTTP retrieval.
1397
1398 2006-02-28  Hrvoje Niksic  <hniksic@xemacs.org>
1399
1400         * http.c (extract_param): Declare extern so it can be used from
1401         other files.
1402         (extract_param): Return error for empty name.
1403
1404 2006-02-28  Hrvoje Niksic  <hniksic@xemacs.org>
1405
1406         * url.c (find_last_char): Define in terms of memrchr.
1407
1408         * cmpt.c (memrchr): Define it on systems that don't have it.
1409
1410         * http.c (extract_param): New function for parsing header values
1411         with parameters.
1412         (parse_content_disposition): Use it.  Don't allow slashes and
1413         backslashes in the file name.
1414
1415 2006-02-27  Hrvoje Niksic  <hniksic@xemacs.org>
1416
1417         * url.c (path_simplify): Don't preserve ".." at beginning of path.
1418         Suggested by Frank McCown.
1419
1420 2006-02-25  Hrvoje Niksic  <hniksic@xemacs.org>
1421
1422         * http.c (gethttp): Only use FILE.N.html if FILE.html exists.
1423
1424 2006-02-09  Hrvoje Niksic  <hniksic@xemacs.org>
1425
1426         * mswindows.c (run_with_timeout): Made thread_hnd non-static.
1427
1428 2006-02-05  Hrvoje Niksic  <hniksic@xemacs.org>
1429
1430         * retr.c (sleep_between_retrievals): Sleep at a minimum of 1/2 of
1431         the specified wait period.
1432
1433 2006-02-03  Hrvoje Niksic  <hniksic@xemacs.org>
1434
1435         * utils.c (number_to_string): Don't use sprintf for printing
1436         WGINT_MIN; simply divide n by 10 and defer printing the last
1437         digit.
1438         (number_to_string): Removed the SPRINTF_WGINT macro.
1439
1440 2006-02-03  Mauro Tortonesi  <mauro@ferrara.linux.it>
1441
1442         * http.c: Fixed support for Content-Disposition header.
1443
1444         * test.c: Added test_parse_content_disposition to the list of unit
1445         tests to run.
1446
1447 2006-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
1448
1449         * hash.c: Don't define countof if it's already defined.
1450
1451         * hash.c: Obtain the definition of uintptr_t when standalone.
1452
1453 2006-01-30  Mauro Tortonesi  <mauro@ferrara.linux.it>
1454
1455         * http.c: Changed output format. Removed excessively verbose debugging
1456         output.
1457
1458 2005-12-07  Mauro Tortonesi  <mauro@ferrara.linux.it>
1459
1460         * http.c: Fixed pre-download verbose output which was broken by 
1461         HTTP code refactoring.
1462
1463 2005-11-23  Mauro Tortonesi  <mauro@ferrara.linux.it>
1464
1465         * http.c: Refactored HTTP code.  If -O is not used, the new code
1466         delays the choice of the file name where the downloaded resource
1467         will be saved until the HTTP headers have been retrieved.
1468         Added support for Content-Disposition header. 
1469
1470 2005-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
1471
1472         * hash.c (INVALID_PTR): Use uintptr_t instead of unsigned long.
1473         (hash_pointer): Don't assume a pointer fits in `unsigned long'.
1474
1475 2005-11-02  Mauro Tortonesi  <mauro@ferrara.linux.it>
1476
1477         * Makefile.in: Removed support for unit testing (now it is in
1478         tests/Makefile.in).
1479
1480 2005-10-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
1481
1482         * Makefile.in: Added basic support for unit testing.
1483
1484         * test.c: Ditto.
1485         
1486         * test.h: Ditto.
1487         
1488 2005-10-13  Daniel Stenberg  <daniel@haxx.se>
1489
1490         * http-ntlm.c (ntlm_output): Fixed buffer overflow vulnerability.
1491
1492 2005-10-09  Russ Allbery  <rra@stanford.edu>
1493
1494         * snprintf.c: Remove round to round_int and pow10 to pow10_int, to
1495         avoid warnings from GCC 4.0.
1496
1497 2005-10-05  Mauro Tortonesi  <mauro@ferrara.linux.it>
1498
1499         * retr.c: Changed semantics of no_proxy_match.
1500
1501 2005-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
1502
1503         * main.c (main): Don't print the summary if nothing has been downloaded.
1504
1505 2005-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
1506
1507         * retr.c (retr_rate): Rename parameter from MSECS to SECS since it
1508         no longer holds milliseconds.
1509
1510 2005-09-01  Hrvoje Niksic  <hniksic@xemacs.org>
1511
1512         * progress.c: Introduce symbolic constants for "magic" values of
1513         0.2 and 0.9, REFRESH_INTERVAL and ETA_REFRESH_INTERVAL.
1514
1515 2005-08-27  Hrvoje Niksic  <hniksic@xemacs.org>
1516
1517         * cmpt.c (strtoll): Correctly handle strtoll("0x", ptr, 0) and
1518         strtoll("0x<nonhexchar>", ptr, 0) -- in both cases *ptr must be
1519         set to the position of 'x', not after it.
1520
1521 2005-08-27  Hrvoje Niksic  <hniksic@xemacs.org>
1522
1523         * hash.c (hash_table_map): Rename to hash_table_for_each and
1524         update callers.
1525         Document the meaning of the callback's return value.
1526         (hash_table_iterate): New function.
1527         (hash_table_iter_next): Likewise.
1528         Update most places that used hash_table_for_each to use the
1529         iteration, which doesn't require a temporary function with
1530         explicit state management.
1531
1532 2005-08-26  Albert Chin  <wget@mlists.thewrittenword.com>
1533
1534         * Makefile.in: Use @datadir@.  Define localedir as $(datadir)/locale.
1535
1536 2005-08-26  Jeremy Shapiro  <jnshapiro@gmail.com>
1537
1538         * openssl.c (ssl_init): Set SSL_MODE_AUTO_RETRY.
1539
1540 2005-08-23  Hrvoje Niksic  <hniksic@xemacs.org>
1541
1542         * host.c (address_list_from_ipv4_addresses): Use IP_INADDR_DATA.
1543
1544 2005-08-12  Hrvoje Niksic  <hniksic@xemacs.org>
1545
1546         * wget.h: Renamed strtoll_return to strtoll_type.
1547
1548 2005-08-11  Hrvoje Niksic  <hniksic@xemacs.org>
1549
1550         * progress.c (eta_to_human_short): Switch to days when printing
1551         more than 48h rather than 100h.  (It's not immediately apparent
1552         how many days there are in 83h.)
1553
1554 2005-08-11  Hrvoje Niksic  <hniksic@xemacs.org>
1555
1556         * cmpt.c (strtoll): Define it if missing on the system and if Wget
1557         needs it.
1558
1559         * mswindows.c (str_to_int64): Move to cmpt.c and rename to strtoll.
1560
1561 2005-08-10  Hrvoje Niksic  <hniksic@xemacs.org>
1562
1563         * host.c (print_address): Always use inet_ntop when IPv6 is
1564         enabled.
1565
1566         * host.h (ip_address): Simplify the data union.
1567
1568 2005-08-09  Hrvoje Niksic  <hniksic@xemacs.org>
1569
1570         * mswindows.c (inet_ntop): Also handle IPv4 addresses for
1571         completeness.
1572
1573 2005-08-09  Hrvoje Niksic  <hniksic@xemacs.org>
1574
1575         * http.c (gethttp): Don't read more than the amount of data
1576         specified by the content-length header.
1577
1578 2005-08-09  Vasil Dimov  <vd@datamax.bg>
1579
1580         * ftp.c (getftp): Don't free RESPLINE if ftp_response returns a
1581         status other than FTPOK.
1582
1583 2005-08-04  Giuseppe Bonacci  <g.bonacci@libero.it>
1584
1585         * ftp-ls.c (ftp_parse_unix_ls): Remember the position of the
1586         previous token instead of backtracking back to it.
1587
1588 2005-07-08  Gisle Vanem  <giva@bgnett.no>
1589
1590         * mswindows.h: Include process.h to get getpid() declaration.
1591
1592 2005-07-08  Hrvoje Niksic  <hniksic@xemacs.org>
1593
1594         * utils.c (aprintf): Use vasprintf where available.
1595
1596 2005-07-08  Hrvoje Niksic  <hniksic@xemacs.org>
1597
1598         * url.c (rewrite_shorthand_url): Simplify code using aprintf and
1599         strspn.
1600
1601 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
1602
1603         * gnutls.c (ssl_check_certificate): Check for the validity of the
1604         presented X509 certificate.
1605
1606 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
1607
1608         * openssl.c (ssl_check_certificate): Print custom error messages
1609         for frequent X509 certificate problems.
1610
1611 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
1612
1613         * mswindows.h: Define an alias for stat and fstat, as requested by
1614         config-compiler.h.
1615         (gai_strerror): Define to windows_strerror if NEED_GAI_STRERROR is
1616         defined.
1617
1618 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
1619
1620         * mswindows.h: Use strtoll where available.
1621
1622 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
1623
1624         * sysdep.h: Add a full declaration of fnmatch.h.
1625
1626 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
1627
1628         * utils.c: Unconditionally include <setjmp.h>.
1629
1630 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
1631
1632         * utils.c (fnmatch_nocase): New function.
1633         (proclist): Use it instead of fnmatch when opt.ignore_case is
1634         requested.
1635         (in_acclist): Respect opt.ignore_case.
1636         (frontcmp): Respect opt.ignore_case.
1637
1638         * options.h (struct options): New flag opt.ignore_case.
1639
1640 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
1641
1642         * ptimer.c: Measure time in seconds rather than milliseconds.
1643         Adjusted all callers.
1644
1645 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
1646
1647         * http.c (gethttp): When freeing MESSAGE, take into account that
1648         it can be NULL.
1649
1650 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
1651
1652         * cmpt.c (timegm): Handle years after 2099.
1653
1654 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
1655
1656         * cmpt.c (timegm): Remove unused variable.
1657
1658 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
1659
1660         * cmpt.c (timegm): Don't call mktime; simply count the seconds
1661         between 1970-01-01 and the specified date.
1662
1663 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
1664
1665         * wget.h (or): Define HAVE_SSL when either HAVE_OPENSSL or
1666         HAVE_GNUTLS are defined.
1667
1668         * gnutls.c: New file.
1669
1670 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
1671
1672         * http.c (gethttp): Don't print the request write error message
1673         twice.
1674
1675 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
1676
1677         * openssl.c (openssl_errstr): Instead of always using a large
1678         static buffer, only allocate the error string when there is an
1679         actual error.
1680
1681 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
1682
1683         * xmalloc.c (debugging_free): Prefix hex pointer value with "0x"
1684         when printing.
1685
1686 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
1687
1688         * utils.c (NEXT_BASE64_CHAR): Rename to NEXT_CHAR and simplify to
1689         get the next non-whitespace character.
1690
1691 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
1692
1693         * utils.c (base64_decode): Don't silently tolerate non-base64
1694         non-white-space characters in the base64 stream.
1695
1696 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
1697
1698         * connect.c (LAZY_RETRIEVE_INFO): Make last_tick unsigned to match
1699         transport_map_modified_tick.
1700
1701 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
1702
1703         * config-post.h (alloca): Updated declaration to not enumerate all
1704         Windows compilers.
1705
1706 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
1707
1708         * openssl.c (openssl_errstr): Separate error messages with "; ".
1709
1710 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
1711
1712         * ftp.c (getftp): Ditto.
1713
1714         * http.c (gethttp): Use fd_errstr.
1715
1716         * connect.c (fd_register_transport): Restructure parameters to
1717         include only a single structure that describes transport
1718         implementation.
1719
1720         * openssl.c (openssl_errstr): New function: dump SSL error strings
1721         into a static buffer and return a pointer to the buffer.
1722
1723         * connect.c (fd_errstr): New function; returns transport-specific
1724         error message, or strerror(errno) if transport doesn't supply one.
1725
1726 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
1727
1728         * mswindows.h: Also wrap accept() and listen().
1729
1730 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
1731
1732         * url.c (path_end): Skip separators appropriate for the scheme.
1733         (strpbrk_or_eos): Remove gcc-specific version, as the optimization
1734         it tried to perform no longer applies.
1735
1736 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
1737
1738         * host.c: Don't include "connect.h" now that we no longer have
1739         socket_has_inet6.
1740
1741 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
1742
1743         * host.c: Remove extraneous definition of netdb.h.
1744
1745 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
1746
1747         * http.c (gethttp): Skip error message body in the keep-alive
1748         case.
1749
1750 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
1751
1752         * url.c (url_parse): Would crash when parsing fragments.  Support
1753         fragments for FTP URLs too.
1754
1755 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
1756
1757         * version.c: Don't use "cvs" in version name, since we're not
1758         using CVS anymore.
1759
1760 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
1761
1762         * progress.c (create_image): Ditto.
1763
1764         * retr.c (retr_rate): Display smaller rate numbers with greater
1765         precision.
1766
1767 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
1768
1769         * http.c (response_head_terminator): Minor optimization.
1770
1771         * retr.c (fd_read_hunk): Call terminator with pointer to the start
1772         of the data and the pointer to the current data.  Changed all
1773         callers.
1774
1775 2005-07-01  Hrvoje Niksic  <hniksic@xemacs.org>
1776
1777         * url.c (url_parse): Make sure u->params is not initialized for
1778         http/https URLs.
1779         (url_parse): Don't crash on garbage following []-delimited IPv6
1780         addresses.
1781
1782 2005-07-01  Hrvoje Niksic  <hniksic@xemacs.org>
1783
1784         * main.c (print_help): Don't refer to the non-existent -nr in
1785         description of --mirror.
1786
1787 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
1788
1789         * host.c (pretty_print_address): Renamed to just print_address.
1790         Clarify documentation.
1791
1792 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
1793
1794         * http.c (gethttp): Explicitly document the different cases when
1795         generating the Host header.
1796
1797 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
1798
1799         * host.c (pretty_print_address): Handle error result from
1800         inet_ntop.
1801
1802 2005-06-30  Gisle Vanem  <giva@bgnett.no>
1803
1804         * mswindows.c (inet_ntop): New function.  Print IPv6 addresses
1805         using WSAAddressToString.
1806
1807 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
1808
1809         * progress.c (dot_update): Remove unused variable row_qty.
1810
1811 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
1812
1813         * main.c: Check for both SIGHUP and SIGUSR1 before using them.
1814
1815 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
1816
1817         * utils.c: Unconditionally include locale.h.
1818
1819 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
1820
1821         * ptimer.c: Include sys/time.h to get struct timeval.
1822
1823 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
1824
1825         * wget.h: Remove obsolete definition of with_thousand_seps_sum.
1826
1827 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
1828
1829         * gnu-md5.h: Unconditionally include limits.h.
1830
1831 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
1832
1833         * utils.c (random_number): Use lrand48 if available.
1834         (random_float): Use drand48 if available.
1835
1836 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
1837
1838         * main.c (secs_to_human_time): Use print_decimal when printing
1839         total download time in seconds.
1840
1841         * progress.c (print_row_stats): Use it to print total download
1842         time at the end of the download.
1843         (create_image): Ditto.
1844
1845         * utils.c (print_decimal): New function; print small decimal
1846         numbers with more precision than large ones.
1847
1848         * progress.c (print_row_stats): New function.  Print ETA after the
1849         download rate at the end of each row.
1850
1851 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
1852
1853         * init.c (parse_line): Check for alphanumerics.
1854
1855 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
1856
1857         * (dot_create): Remove unnecessary casts.
1858
1859 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
1860
1861         * ftp.c (getftp): Delete trailing newlines from LIST output so
1862         lines don't come out with trailing \015\012 with -S.
1863
1864 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
1865
1866         * mswindows.h: Remove superfluous includes.
1867
1868 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
1869
1870         * config-post.h (alloca): Amend alloca declaration to take care of
1871         all Win32 compilers, not just MSVC and MinGW.
1872
1873 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
1874
1875         * utils.c (get_grouping_data): Force separator to "." rather than
1876         " " when "," is taken.
1877
1878 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
1879
1880         * wget.h (PTR_FORMAT): Cast the result of sizeof to int before
1881         passing it to printf's %*.
1882
1883         * retr.h: Declare output_stream and output_stream_regular.
1884
1885         * ftp.h: Declare ftp_last_respline.
1886
1887         * convert.h: Declare dl_url_file_map.
1888
1889         * http.h: New file.
1890
1891 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
1892
1893         * cookies.c: Make cookies_now static.
1894
1895 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
1896
1897         * utils.c (human_readable): Remove intermediary cast to long; MSVC
1898         has problems casting *unsigned* __int64 to double.
1899
1900 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
1901
1902         * sysdep.h: Use the system-provided fnmatch by default.
1903
1904 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
1905
1906         * http.c (mktime_from_utc): Renamed to timegm and moved to cmpt.c.
1907         Don't compile it if GNU timegm is available.
1908         (http_atotm): Use timegm.
1909
1910 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
1911
1912         * http.c (http_atotm): Correctly query the old locale value.
1913
1914 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
1915
1916         * config-post.h (alloca): Don't #define alloca under MinGW32,
1917         which defines it in malloc.h, included from mswindows.h.
1918
1919 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
1920
1921         * utils.c (get_grouping_data): Force the use of separators in C
1922         locale.
1923
1924 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
1925
1926         * main.c (i18n_initialize): Set all locale categories.
1927
1928         * http.c (http_atotm): Temporarily set locale to "C".
1929
1930 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
1931
1932         * http.c (gethttp): Improve "POST data file missing" error
1933         message.
1934
1935 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
1936
1937         * progress.c (set_progress_implementation): Type COLON as const
1938         char *.
1939
1940 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
1941
1942         * utils.c (with_thousand_seps): Handle negative numbers.
1943
1944 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
1945
1946         * progress.c (create_image): Mark the "eta" string for translation.
1947
1948 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
1949
1950         * html-url.c (get_urls_file): Don't explicitly set entry->next to
1951         NULL since entry is already zeroed out.
1952
1953 2005-06-26  Gisle Vanem  <giva@bgnett.no>
1954
1955         * mswindows.h: Define gai_strerror under MinGW.
1956
1957 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
1958
1959         * utils.c (with_thousand_seps): Correctly implement thousand seps
1960         consisting of more than one character.
1961
1962 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
1963
1964         * main.c (secs_to_human_time): Ditto.
1965
1966         * progress.c (create_image): Print more exact duration of very
1967         short downloads.
1968
1969         * main.c (secs_to_human_time): Don't translate time suffixes "h",
1970         "m", and "s", which are not strictly SI, but are "accepted for use
1971         with SI".
1972         (secs_to_human_time): Print really small intervals as 0s, not
1973         0.00s.
1974
1975 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
1976
1977         * config-post.h: Replace the alloca declaration with the one from
1978         the latest Autoconf manual.  This should remove a warning with GCC
1979         on AIX.
1980
1981 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
1982
1983         * ftp.c (getftp): Always invoke SIZE, not only when continuing a
1984         download.
1985
1986         * main.c (main): Ditto here.
1987
1988         * progress.c (create_image): When the download is finished, print
1989         how long it took.
1990
1991 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
1992
1993         * main.c (main): Print the downloaded and quota amounts with the
1994         "human_readable" function.
1995
1996         * ftp.c (print_length): Ditto.
1997
1998         * http.c (gethttp): Don't display thousand separators.
1999
2000         * utils.c (with_thousand_seps): Rewritten to respect locale
2001         settings and to be type size agnostic.
2002
2003 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2004
2005         * utils.c (human_readable): Divide with 1024 instead of shifting
2006         so the operation can work with non-integer N.
2007
2008 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2009
2010         * progress.c (eta_to_human): New logic for more human-readable
2011         ETA.
2012
2013 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2014
2015         * utils.c (with_thousand_seps_sum): Decrease buffer size so it
2016         cannot overrun add_thousand_seps's buffer.
2017
2018 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2019
2020         * utils.c (SPRINTF_WGINT): The correct format is %I64d, not just
2021         %I64.
2022
2023 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2024
2025         * http.c (http_loop): Don't warn about wildcards in HTTP URLs if
2026         globbing isn't requested in the first place.
2027
2028         * retr.c (retrieve_url): Temporarily turn off globbing when
2029         processing HTTP->FTP redirects.
2030
2031 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2032
2033         * utils.c (with_thousand_seps_sum): Now defined only if
2034         SUM_SIZE_INT is double.
2035
2036         * wget.h (SUM_SIZE_INT): Instead of bothering with long, long
2037         long, __int64, and friends, simply either use wgint or double, end
2038         of story.  Since we know how to print either, we no longer need
2039         LARGE_INT_FMT.
2040
2041         * sysdeps.h (LARGE_INT): Renamed to SUM_SIZE_INT to better reflect
2042         its intent, and moved to wget.h.
2043
2044 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2045
2046         * Makefile.in: No need to clean .libs.
2047
2048 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2049
2050         * cookies.c (parse_set_cookies): Cast pointer subtraction to int
2051         before using it with %d; AIX compiler warns on this.
2052         Reported by Jens Schleusener.
2053
2054 2005-06-24  Hrvoje Niksic  <hniksic@xemacs.org>
2055
2056         * http.c (gethttp): Don't prepend / here.
2057
2058         * cookies.c (cookie_handle_set_cookie): Prepend / to PATH.
2059         (cookie_header): Ditto.
2060
2061 2005-06-24  Hrvoje Niksic  <hniksic@xemacs.org>
2062
2063         * init.c: opt.verbose must be declared as int.
2064
2065 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
2066
2067         * cmpt.c (strpbrk): Removed.
2068         (mktime): Removed.
2069         Include <time.h>.
2070
2071 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
2072
2073         * utils.c (read_file): Ditto.
2074
2075         * main.c (main): Use struct_fstat.
2076
2077         * mswindows.h (struct_fstat): Define a struct_fstat to deal with
2078         the fact that Borland 5.5 has 64-bit stat, but not 64-bit fstat!
2079
2080 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
2081
2082         * sysdep.h: Remove code that deals with Watcom.
2083
2084 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2085
2086         * all: Use bool instead of int and false/true instead of 0/non-0
2087         for boolean variables and values.
2088
2089 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2090
2091         * sysdep.h: Include the stdbool.h/_Bool/bool blurb from Autoconf.
2092
2093 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2094
2095         * init.c (cmd_lockable_boolean): Removed.
2096
2097 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2098
2099         * cookies.c (struct cookie): Use 1-bit bitfields for booleans
2100         which makes the structure takes less space at no cost in
2101         complexity.
2102
2103 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2104
2105         * Makefile.in ($(OBJ)): Add the config.h dependency.
2106
2107 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2108
2109         * openssl.c, connect.c, host.c: Replace instances of #ifdef
2110         ENABLE_DEBUG if (opt.debug) {...} #endif with IF_DEBUG {...}.
2111
2112         * main.c: Rename the IF_DEBUG defined here to WHEN_DEBUG.
2113
2114         * wget.h (IF_DEBUG): New macro.
2115         (DEBUGP): Define in terms of IF_DEBUG.
2116
2117 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2118
2119         * http.c (gethttp): Only handle --set-cookies (and assert that
2120         cookie jar exists) if opt.cookies is true.  Failure to do so
2121         triggered the assert when --no-cookies was used and the server
2122         sent a Set-Cookie header.  Ouch!
2123
2124 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2125
2126         * connect.c (select_fd): Expect select() to exist.
2127
2128         * utils.c (xsleep): Always use select() as sleep fallback on
2129         non-Windows platforms.
2130
2131         * ptimer.c: Delete the implementation of PTIMER_TIME.
2132
2133         * main.c: Assume existence of signal(), test for different signal
2134         names instead.
2135
2136         * cmpt.c: Better document reasons why certain functions are
2137         included.
2138
2139 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2140
2141         * Makefile.in: Remove the manually maintained dependency list;
2142         make all object files depend on every header.
2143
2144 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
2145
2146         * hash.c: Rename "mapping" to "cell" to avoid confusion with the
2147         term "mapping" (or "map") sometimes being used for the entire hash
2148         table.  Also rename "non-empty" to "occupied" for easier reading
2149         of if (!NON_EMPTY (...)) ... .
2150
2151 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
2152
2153         * main.c, ptimer.c, sysdep.h, utils.c: Use #elif to simplify reading of
2154         chained if-else-else-else-... statements.
2155
2156 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
2157
2158         * all: Return type of signal handlers is `void'.  Include signal.h
2159         unconditionally.
2160
2161         * all: Don't explicitly cast values returned by malloc.  We no
2162         longer support ancient compilers that don't declare malloc, and we
2163         never supported C++ builds.
2164
2165 2005-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
2166
2167         * all: Don't declare errno.  Include both time.h and sys/time.h,
2168         as long as sys/time.h exists.  Don't dereference function pointers
2169         when invoking the functions they point to.
2170
2171         * cmpt.c (memmove): Remove function mandated by C89.
2172         (strerror): Ditto.
2173         (strstr): Ditto.
2174
2175         * all: Undo the K&R-ization changes from 2005-05-03.
2176
2177         * all: Remove support for K&R compilers: use C89 function
2178         declarations, remove definition of PARAMS, remove support for
2179         varargs, and remove ansi2knr.  Assume the presence of time.h,
2180         string.h, and other headers mandated by C89.
2181
2182 2005-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
2183
2184         * init.c (cmd_lockable_boolean): Don't recognize literal "2" and
2185         "-1" values; unlike 0 and 1, those should never be exposed to the
2186         user.  Update the error message to be more self-consistent, as
2187         proposed by Benno Schulenberg.
2188
2189 2005-06-18  Hrvoje Niksic  <hniksic@xemacs.org>
2190
2191         * http.c (gethttp): Don't free "head" before using it to save
2192         headers.
2193
2194 2005-06-18  Hrvoje Niksic  <hniksic@xemacs.org>
2195
2196         * http.c (gethttp): When -E is in use, check for file existence
2197         after appending ".html" to the name and modify the file name if
2198         necessary.
2199
2200 2005-06-17  Hrvoje Niksic  <hniksic@xemacs.org>
2201
2202         * connect.c (socket_has_inet6): Removed.
2203
2204         * host.c (lookup_host): Don't use the AI_ADDRCONFIG getaddrinfo
2205         hint.
2206
2207 2005-06-16  Hrvoje Niksic  <hniksic@xemacs.org>
2208
2209         * init.c (cmd_lockable_boolean): Improve the error message so it
2210         lists the more useful values first.
2211
2212 2005-06-15  Hrvoje Niksic  <hniksic@xemacs.org>
2213
2214         * http.c (gethttp): Also report the system error when the POST
2215         data file is missing.
2216
2217 2005-06-15  Benno Schulenberg  <benno@nietvergeten.nl>
2218
2219         * ftp.c, http.c, connect.c, cookies.c, html-url.c, init.c, res.c:
2220         Gettext-ize messages that were previously missed.
2221
2222 2005-06-15  Hrvoje Niksic  <hniksic@xemacs.org>
2223
2224         * host.h (ip_address): Remove the trailing comma from the type
2225         enum in the no-IPv6 case.
2226
2227         * main.c (struct cmdline_option): Remove the trailing comma from
2228         the enum.
2229
2230         Reported by Jens Schleusener.
2231
2232 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
2233
2234         * url.c (strpbrk_or_eos): Check for a recent GCC version before
2235         using the statement-as-expression extension.
2236
2237 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
2238
2239         * http.c (gethttp): Don't attempt to "skip short body" if we're
2240         issuing a HEAD request (in which case the response head is not
2241         followed by a body).
2242
2243 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
2244
2245         * init.c (cmd_spec_header): Don't split the string along the
2246         commas using cmd_vector; just append the new value using
2247         vec_append instead.
2248
2249         * utils.c (vec_append): New function.
2250
2251 2005-05-27  Andreas Beckmann  <debian@abeckmann.de>
2252
2253         * html-url.c (tag_handle_link): Mark the content from the <link
2254         src="..."> tag as expecting HTML.
2255
2256 2005-05-24  Hrvoje Niksic  <hniksic@xemacs.org>
2257
2258         * http.c (http_atotm): Document the origin of the "cookie date"
2259         format.
2260
2261 2005-05-21  Hrvoje Niksic  <hniksic@xemacs.org>
2262
2263         * init.c (setval_internal): Report exact command name alongside
2264         the "display name".
2265
2266 2005-05-18  Hrvoje Niksic  <hniksic@xemacs.org>
2267
2268         * cookies.c (update_cookie_field): Explicitly cast -1 to time_t to
2269         cope with systems where time_t is unsigned.
2270
2271         * cookies.c: Remove unnecessary casts to time_t from values
2272         already of that type.
2273
2274 2005-05-17  Hrvoje Niksic  <hniksic@xemacs.org>
2275
2276         * ftp.c (ftp_loop_internal): Same here.
2277
2278         * http.c (http_loop): Don't clobber the file when -c is specified
2279         and the first attempt to retrieve the file fails.
2280
2281 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
2282
2283         * openssl.c (ssl_check_certificate): Print all issues with a
2284         certificate.
2285
2286 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
2287
2288         * ftp-basic.c: Don't xfree() the line returned by ftp_response if
2289         the returned code is not FTPOK.
2290
2291 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
2292
2293         * init.c (cleanup): Don't free the non-existent opt.ftp_acc.  Free
2294         the SSL-related stuff.
2295
2296 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
2297
2298         * ftp.c (print_length): Consistently print \n at end of the
2299         "Length" line.
2300
2301 2005-05-14  Hrvoje Niksic  <hniksic@xemacs.org>
2302
2303         * openssl.c (ssl_connect): Announce the beginning and the end of
2304         the SSL handshake when in debug mode.
2305
2306         * wget.h (PTR_FORMAT): New macro for easier printing of pointer
2307         values.  Use %0*lx along with PTR_FORMAT instead of %p.
2308
2309 2005-05-14  Hrvoje Niksic  <hniksic@xemacs.org>
2310
2311         * http.c (gethttp): Would forget to close the connection when
2312         keep_alive was not used.
2313
2314 2005-05-13  Hrvoje Niksic  <hniksic@xemacs.org>
2315
2316         * openssl.c (pattern_match): Document the code that decides
2317         whether "*" matches ".".
2318
2319 2005-05-12  Hrvoje Niksic  <hniksic@xemacs.org>
2320
2321         * ftp-ls.c (ftp_index): Use %d to print the port number, which is
2322         now int.
2323         From Steven M. Schweda's VMS patches.
2324
2325 2005-05-12  Hrvoje Niksic  <hniksic@xemacs.org>
2326
2327         * url.c (rewrite_shorthand_url): Don't rewrite "https://host" to
2328         "ftp://https//host" when SSL is not used.
2329
2330 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
2331
2332         * openssl.c (ssl_check_server_identity): Renamed to
2333         ssl_check_certificate because it does more than just checking the
2334         server's identity.
2335         (ssl_check_certificate): Tell the user about
2336         --no-check-certificate.
2337
2338 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
2339
2340         * openssl.c (ssl_init): Always use SSL_VERIFY_NONE, so that the
2341         handshake finishes even if the certificate is invalid.  That way
2342         ssl_check_server_identity can provide better diagnostics on why
2343         the verification failed.
2344
2345 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
2346
2347         * openssl.c (pattern_match): New function.
2348         (ssl_check_server_identity): Treat peer certificate common name as
2349         wildcard.
2350
2351 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
2352
2353         * openssl.c (ssl_check_server_identity): Print certificate subject
2354         and issuer.
2355
2356 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
2357
2358         * res.c (res_register_specs): Correctly pass pointers to
2359         hash_table_get_pair.
2360
2361 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
2362
2363         * http.c (gethttp): Call ssl_check_server_identity.
2364
2365         * openssl.c (ssl_check_server_identity): New function, verifies
2366         that the host name in the certificate matches the actual host
2367         name.
2368         (verify_cert_callback): Removed, since it didn't do anything
2369         except returning the preverify_ok argument.
2370
2371         * connect.c (fd_transport_context): Allow retrieval of the context
2372         pointer registered with fd_register_transport.
2373
2374 2005-05-09  Hrvoje Niksic  <hniksic@xemacs.org>
2375
2376         * openssl.c (verify_cert_callback): Renamed from verify_callback.
2377         Always return the received "ok" value.  Print the X509 name in
2378         debug mode.
2379         (ssl_init): Enable partial writes in SSL context.
2380
2381 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
2382
2383         * http.c (http_loop): Check for wildcards in the URL path
2384         component, not in the whole URL.
2385
2386         * ftp.c (ftp_loop): Check for wildcards in URL path before
2387         unescaping, so the users can escape globbing metacharacters with %
2388         escapes.
2389
2390 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
2391
2392         * init.c (run_command): Correctly interpret the return value of
2393         parse_line.
2394         (commands): Re-alphabetize.
2395
2396 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
2397
2398         * netrc.c (parse_netrc): Explicitly check for assignment != NULL
2399         to silence warning from Borland C.
2400
2401         * url.c (sync_path): Don't unnecessarily increment p.
2402         (url_parse): Don't unnecessarily set url_encode to NULL just
2403         prior to return from the function.
2404
2405 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
2406
2407         * log.c (escnonprint_internal): Place variable declarations
2408         before other statements.
2409
2410 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
2411
2412         * html-url.c: Include recur.h.
2413
2414         * http.c (request_new): Define as accepting no args.
2415
2416 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
2417
2418         * url.c (strpbrk_or_eos): Made inline.  Use strchr(s, '\0') for
2419         finding the NUL char position.
2420
2421 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
2422
2423         * url.c (decide_copy_method): Renamed to char_needs_escaping.
2424         Since it now returns only two possible values, change it to return
2425         boolean (int).
2426
2427 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
2428
2429         * ftp-basic.c (ftp_request): Prevent newlines in VALUE causing
2430         inadvertent sending of multiple FTP commands.
2431
2432 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
2433
2434         * url.c (decide_copy_method): Never cause reencode_escapes to
2435         decode % escapes; it is too intrusive and breaks some servers.
2436
2437 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
2438
2439         * http.c (gethttp): When tunnelling SSL traffic over proxy with
2440         CONNECT, we're really talking to the remote server directly.
2441         Because of this, the request-line argument must be the URL path
2442         rather than the whole URL, as it would be when using regular
2443         proxies.
2444         Reported by Charles Lane.
2445
2446 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
2447
2448         * init.c (cmd_spec_useragent): Allow empty User-Agent.
2449
2450         * http.c (gethttp): Don't print "unknown authentication scheme"
2451         for failed Basic authentication.
2452         (SET_USER_AGENT): Don't set user-agent if opt.useragent is empty.
2453         (gethttp): Use alloca for allocation of www_authenticate.
2454
2455 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
2456
2457         * main.c (print_help): Fix wording of --secure-protocol help text.
2458
2459 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
2460
2461         * cmpt.c (strstr): Updated from glibc 2.3.5.
2462
2463 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2464
2465         * http.c (http_atotm): Zero out the whole struct tm being passed
2466         to strptime.
2467
2468 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2469
2470         * main.c (main): Propagate option name to setoptval.
2471
2472         * init.c (setoptval): Accept another argument, OPTNAME.  Propagate
2473         that argument as the option name independently of the actual
2474         command, determined by command_by_name(com).
2475
2476 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2477
2478         * init.c (parse_line): Make the return value indicate whether
2479         there was a syntax error or a setter failed.
2480         (run_wgetrc): Return an indication on whether an error has been
2481         encountered.
2482         (initialize): Abort if there have been errors running either
2483         .wgetrc file.
2484
2485 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2486
2487         * log.c (copy_and_escape): Slightly reduce code repetition between
2488         the two loops.
2489
2490 2005-05-05  Charles C.Fu  <ccwf@bacchus.com>
2491
2492         * utils.c (proclist): Strip leading slash when calling fnmatch
2493         too, otherwise wildcard comparisons always fail.
2494
2495 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2496
2497         * utils.c (touch): Set access time to current time.
2498
2499 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2500
2501         * url.c (url_unescape): Don't unescape %00, it effectively
2502         truncates the string.
2503
2504 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2505
2506         * log.c (copy_and_escape): Replace the FOR_URI argument with a
2507         slightly more general mechanism for specifying different kinds of
2508         escape.
2509
2510 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2511
2512         * ftp-basic.c (ftp_response): Fix printing FTP server response.
2513
2514 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2515
2516         * retr.c (limit_bandwidth_reset): Reset sleep_adjust.
2517         (limit_bandwidth): Don't allow huge "adjustment" values that
2518         result from being suspended for a while.
2519
2520 2005-05-04  Hrvoje Niksic  <hniksic@xemacs.org>
2521
2522         * wget.h: If gettext was found but libtintl.h wasn't, declare
2523         gettext's return type to avoid type mismatches.
2524
2525 2005-05-03  Hrvoje Niksic  <hniksic@xemacs.org>
2526
2527         * url.c (url_parse): Rename label `error' to avoid conflict with
2528         identifier.
2529
2530         * retr.c (fd_read_body): Rename label `out' to avoid conflict with
2531         identifier.
2532         (fd_read_hunk): Use explicit double constant.
2533         (retrieve_from_file): Don't use string concatenation.
2534         (sleep_between_retrievals): Make sure xsleep is called with a
2535         `double' argument.
2536         (no_proxy_match): Define as static, like it is declared.
2537
2538         * progress.c (bar_create): Use 0.0 instead of 0 because K&R
2539         compilers can't automatically promote it.
2540
2541         * http-ntlm.c (ntlm_output): Replace \xHH sequences with \OOO for
2542         the sake of old compilers.
2543
2544         * ftp.c (ftp_loop_internal): Don't use string concatenation.
2545
2546         * http.c (request_send): Use explicit double constants when
2547         calling fd_read and fd_write.
2548         (post_file): Ditto.
2549         (gethttp): Ditto.
2550         (skip_short_body): Ditto.
2551
2552         * ftp-basic.c: When calling fd_write, specify the last argument as
2553         a `double' constant for the sake of K&R compilers which don't see
2554         the prototype and therefore can't promote it to double
2555         automatically.
2556
2557         * cookies.c (cookie_jar_load): Rename abort label to abort_cookie
2558         to avoid name conflict in K&R compilers.
2559
2560 2005-04-29  Hrvoje Niksic  <hniksic@xemacs.org>
2561
2562         * ptimer.c (posix_init): Since we allow _POSIX_MONOTONIC_CLOCK==0,
2563         it is not enough to check for _POSIX_MONOTONIC_CLOCK-0, we must
2564         also check for defined(_POSIX_MONOTONIC_CLOCK).
2565
2566 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
2567
2568         * ftp.c, hash.c, connect.c, host.c, http.c: Remove unreached code,
2569         such as "break" following return or abort.
2570
2571 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
2572
2573         * init.c (commands): Wrap the use of opt.random_file in #ifdef
2574         HAVE_SSL.
2575
2576 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
2577
2578         * http.c (gethttp): Correctly set the user agent.
2579
2580 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
2581
2582         * init.c (cmd_spec_useragent): Free the old value of
2583         opt.useragent before setting the new one.
2584
2585 2005-04-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
2586
2587         * main.c: Map --ftp-password, --http-password and --proxy-password to
2588         the new ftppassword, httppassword and proxypassword commands
2589         respectively.  Document the --user and --password options in the help
2590         string.
2591         
2592 2005-04-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
2593
2594         * ftp.c: Add support for --user and --password.
2595         
2596         * http.c: Add support for --user and --password.
2597         
2598         * init.c: Deprecated ftppasswd, httppasswd, login, passwd and
2599         proxypasswd commands.  Added ftppassword, ftpuser, httppassword,
2600         password, proxypassword and user commands.
2601
2602         * main.c: Renamed --ftp-passwd to --ftp-password.  Added --ftp-user,
2603         --http-password, --password, --proxy-password and --user.  Deprecated
2604         --http-passwd and --proxy-passwd.  Added documentation for new options
2605         and removed documentation for deprecated options in the help string.
2606         
2607         * options.h (struct options): Added user and passwd members to handle
2608         --user and --password respectively.  Renamed ftp_acc and ftp_pass
2609         members to ftp_user and ftp_passwd for consistency.
2610
2611 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
2612
2613         * main.c (print_help): Advertise "DER", not "ASN1".
2614
2615 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
2616
2617         * openssl.c (init_prng): Disable the weak random seed by default.
2618
2619         * http.c (gethttp): Simplify SSL initialization; disable SSL when
2620         anything goes wrong with the initialization.
2621
2622         * options.h (struct options): New option opt.random_file.
2623
2624 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
2625
2626         * init.c: Wrap private key commands in IF_SSL.
2627
2628 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
2629
2630         * openssl.c (ssl_init): Ditto.
2631
2632         * options.h (struct options): Allow separate specification of key
2633         type and certificate type.
2634
2635         * init.c (cmd_spec_cert_type): Provide a "der" synonym for "asn1"
2636         certificate encoding.
2637
2638 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
2639
2640         * openssl.c: Renamed "gen_sslfunc.c" to "openssl.c" and
2641         "gen_sslfunc.h" to "openssl.h".  This reflects the intent of
2642         openssl.c encapsulating the OpenSSL-specific code.
2643
2644 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
2645
2646         * init.c: Renamed "closure" (a synonym for context in some
2647         cultures) to "place", which more accurately reflects the usage.
2648
2649 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
2650
2651         * gen_sslfunc.c (ssl_init): Use default locations for loading the
2652         certificate bundles.
2653         (ssl_init_prng): Disable the cryptographically weak PRNG
2654         initialization fallback.
2655
2656         * init.c: Renamed SSL command-line arguments and wgetrc commands.
2657         (defaults): Check the server certificate by default.
2658
2659 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
2660
2661         * cookies.c (cookie_handle_set_cookie): Delete the part of the
2662         path after the trailing slash.
2663
2664         * http.c (gethttp): Call cookie_handle_set_cookie with path that
2665         begins with '/'.
2666
2667 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
2668
2669         * http.c (gethttp): Call skip_short_body only if keep_alive is in
2670         use.
2671         (gethttp): Send the User-Agent header with the CONNECT request as
2672         well.
2673
2674 2005-04-25  Hrvoje Niksic  <hniksic@xemacs.org>
2675
2676         * main.c (option_data): Removed support for the undocumented flag
2677         --use-proxy.
2678
2679 2005-04-25  Hrvoje Niksic  <hniksic@xemacs.org>
2680
2681         * main.c (option_data): Don't treat -Y as a boolean switch; treat
2682         it as a value switch instead, so "-Y off" continues to work.
2683
2684 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
2685
2686         * utils.c (aprintf): Delete unreachable statement.
2687
2688 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
2689
2690         * host.c (cmp_prefer_ipv4): New function.
2691         (cmp_prefer_ipv6): New function.
2692         (lookup_host): Use the appropriate comparator according to
2693         opt.prefer_family.
2694
2695         * init.c: New option prefer_family.
2696
2697         * host.c (is_valid_ipv6_address): Spell NS_* constants in lower
2698         case to avoid clash with system headers.
2699         (lookup_host): Reorder the addresses so that IPv4 ones come first.
2700
2701         * utils.c (stable_sort): New function.
2702
2703 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
2704
2705         * connect.c (retryable_socket_connect_error): Return 0 for
2706         ENETUNREACH and EHOSTUNREACH.
2707
2708 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
2709
2710         * cmpt.c: Reenable the memmove implementation for systems that
2711         lack it.
2712
2713         * http.c (gethttp): Store the "authorized" state of the persistent
2714         connection.
2715         (request_remove_header): New function.
2716         (gethttp): Don't send the "Basic" authentication if the connection
2717         is already authorized.
2718
2719 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
2720
2721         * utils.c (base64_encode): Treat input as unsigned chars.
2722         Required for correct encoding of binary stuff.
2723
2724 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
2725
2726         * http-ntlm.c: Format the function definitions in an
2727         ansi2knr-friendly fashion.
2728
2729 2005-04-22  Hrvoje Niksic  <hniksic@xemacs.org>
2730
2731         * http.c (gethttp): Handle multiple WWW-Authentication headers,
2732         only one of which is recognized.  Those are sent by IIS with NTLM
2733         authorization.
2734         (create_authorization_line): Propagate information whether
2735         authorization is finished.
2736         (gethttp): Only stop authorization when it's really finished, not
2737         after fixed two steps.
2738
2739 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
2740
2741         * gen_sslfunc.c (ssl_init): Fix warning message text; mark the
2742         message as translatable.
2743
2744 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
2745
2746         * main.c (print_help): Print the EGD option outside the cluster of
2747         SSL options.
2748
2749 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
2750
2751         * http-ntlm.c (ntlm_output): Fix setting the domain.
2752         Suggested by Sami Krank.
2753
2754 2005-04-20  Mauro Tortonesi  <mauro@ferrara.linux.it>
2755
2756         * connect.c: Set IPV6_V6ONLY socket option when -6 switch is used.
2757
2758 2005-04-20  FUJISHIMA Satsuki  <sf@FreeBSD.org>
2759
2760         * http.c (request_set_header): Fix the check whether a new header
2761         needs to be allocated.
2762
2763 2005-04-18  Hrvoje Niksic  <hniksic@xemacs.org>
2764
2765         * utils.c (base64_encode): Use the parameter order that makes more
2766         sense.  Return the length of the base64 written.  Updated all
2767         callers.
2768
2769 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
2770
2771         * http.c (request_set_header): Free NAME when VALUE is NULL and
2772         freeing the header name is requested.
2773
2774 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
2775
2776         * snprintf.c (fmtstr): Declare VALUE as const char *.
2777         Based on patch by Russ Allbery.
2778
2779 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
2780
2781         * snprintf.c (fmtfp): More correct handling of significant digit
2782         count with %g -- 0.002 has one significant digit, not three.
2783
2784 2005-04-16  Hrvoje Niksic  <hniksic@xemacs.org>
2785
2786         * retr.c (fd_read_body): Respect read timeout with non-interactive
2787         or no progress gauge -- treat ETIMEDOUT specially only when
2788         progress_interactive.
2789         Reported by FUJISHIMA Satsuki.
2790
2791 2005-04-16  FUJISHIMA Satsuki  <sf@FreeBSD.org>
2792
2793         * http.c (gethttp): Don't use HTTP/1.0 persistent connections over
2794         proxy.
2795
2796 2005-04-16  Hrvoje Niksic  <hniksic@xemacs.org>
2797
2798         * snprintf.c: Use the PARAMS macro to handle prototypes.  Write
2799         function definitions in the ansi2knr-friendly way.
2800         (fmtstr): If string precision is specified, don't read VALUE past
2801         it.
2802         (dopr): Actually print %g and %e formats.
2803         (fmtfp): Fix a bug that caused 0.01 to be printed as 0.1.
2804         (fmtfp): Use LLONG in floating point conversions to be able to
2805         convert more digits.
2806         (fmtfp): Interpret precision as number of significant digits with
2807         %g.
2808         (fmtfp): Omit trailing decimal zeros with %g.
2809
2810         * snprintf.c: Don't include <ctype.h> because none of it is used.
2811         Include strings.h/string.h, as per Autoconf.
2812
2813 2005-04-15  Hrvoje Niksic  <hniksic@xemacs.org>
2814
2815         * ptimer.c: Use _POSIX_TIMERS - 0 > 0, which handles the case when
2816         _POSIX_TIMERS is defined but empty, as well as the case when it is
2817         undefined.  Do the same with the check for _POSIX_MONOTONIC_CLOCK.
2818         Suggested by Larry Jones.
2819
2820 2005-04-15  Hrvoje Niksic  <hniksic@xemacs.org>
2821
2822         * ptimer.c: Check that _POSIX_TIMERS is defined as well as > 0.
2823         Problem reported by Steven M. Schweda.
2824
2825 2005-04-14  Hrvoje Niksic  <hniksic@xemacs.org>
2826
2827         * http.c (skip_short_body): Print the skipped body data in debug
2828         mode.
2829         (skip_short_body): Don't skip more than 4k of body data.
2830         (skip_short_body): Return whether the skipping was successful.
2831         (gethttp): If skip_short_body failed, invalidate the connection.
2832
2833 2005-04-12  Gisle Vanem  <giva@bgnett.no>
2834
2835         * ftp.c (getftp): Ditto.
2836
2837         * http.c (gethttp): Open the output file in binary mode.
2838
2839 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
2840
2841         * hash.c: Conditionalize including config.h on HAVE_CONFIG_H
2842         instead of on STANDALONE.
2843
2844 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
2845
2846         * gen_sslfunc.c (ssl_print_errors): Made static.
2847         (ssl_print_errors): Eliminate potentially dangerous fixed-size
2848         error buffer.  Passing NULL to ERR_error_string causes it to use
2849         its own static buffer, which is fine for our purposes.
2850
2851         * gen_sslfunc.c: Include gen_sslfunc.h.  Make the declarations of
2852         ssl_init and ssl_conect match the actual definitions.
2853         (ssl_connect): Simply return a boolean, the SSL context is no
2854         longer useful as a return value.
2855
2856         * retr.c: Don't include SSL headers; we don't need them.
2857
2858 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
2859
2860         * config-post.h: Don't define _VA_LIST under Solaris; it breaks
2861         compilation with GCC 3.4 under Solaris 10.  (It was defined to
2862         avoid a warning with previous versions of GCC.)
2863
2864 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
2865
2866         * xmalloc.c (register_ptr): Warn the user to increase SZ prior to
2867         aborting.
2868
2869 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
2870
2871         * convert.c (convert_cleanup): Free converted_files.
2872
2873 2005-04-10  Hrvoje Niksic  <hniksic@xemacs.org>
2874
2875         * wget.h (DEBUGP): Use __builtin_expect to give a hint to GCC that
2876         opt.debug is false in the vast majority of cases.
2877
2878 2005-04-10  Hrvoje Niksic  <hniksic@xemacs.org>
2879
2880         * config-post.h: Declare alloca as void *, not char *.
2881
2882 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
2883
2884         * recur.c (download_child_p): When -p is used, (temporarily)
2885         ignore accept/reject rules for HTMLs, even when they are at the
2886         maximum recursion depth.  That is because with -p we are, if
2887         necessary, overstepping the max. depth to get the requisites.
2888
2889 2004-06-12  Larry Jones <lawrence.jones@ugsplm.com>
2890
2891         * recur.c (download_child_p): Correct the logic in check number 6:
2892         test opt.reclevel (not DEPTH) against INFINITE_RECURSION.
2893
2894 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
2895
2896         * url.c: Use "static const" in preference to "const static".
2897         Sun's cc warns that "storage class after type is obsolescent".
2898
2899         * url.c (urlchr_table): Don't mark ~ as unsafe, too many broken
2900         web sites are confused when ~ is changed to %7E.  Their servers
2901         redirect /%7Efoo/ to /~foo/, which Wget again accesses using %7E,
2902         causing further redirections, therefore looping infinitely.  See
2903         Debian bug #301624 for an example.
2904
2905 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
2906
2907         * alloca.c: Include wget.h to be able to use xmalloc.  In addition
2908         to defining malloc to xmalloc, also define free to xfree.
2909
2910 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
2911
2912         * http-ntlm.c (ntlm_output): Use "char", not "unsigned char" for
2913         ntlmbuf.  Our base64 functions accept char anyway.
2914         (ntlm_output): Join up the format string, since we nominally
2915         support K&R compilers.
2916         (ntlm_output): Ditto.
2917
2918 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
2919
2920         * ptimer.c: Use Windows timers under Cygwin, whose POSIX timer
2921         implementation is incomplete.
2922
2923 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
2924
2925         * ptimer.c (struct ptimer): Remove the unused initialized field.
2926
2927         * ptimer.c: Renamed function parameters from WT (which used to
2928         stand for wget_timer or wtimer) to PT.
2929
2930 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
2931
2932         * ptimer.c (posix_init): Be smarter about choosing clocks.  In
2933         decreasing order of preference, use CLOCK_MONOTONIC,
2934         CLOCK_HIGHRES, and CLOCK_REALTIME.
2935         (ptimer_allocate): Removed.
2936
2937         * ptimer.c: Refactor the code by cleanly separating the
2938         architecture-dependent code from the architecture-independent
2939         code.
2940
2941 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
2942
2943         * ptimer.c (ptimer_init): Explicitly check that
2944         _POSIX_MONOTONIC_CLOCK is *both* defined and >=0.  (Undefined
2945         symbols are >=0.)
2946
2947 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
2948
2949         * ptimer.c (ptimer_diff): Fix typo affecting Windows build.
2950
2951 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
2952
2953         * ptimer.c (ptimer_init): In fact, _POSIX_MONOTONIC_CLOCK needs to
2954         be >= 0.
2955
2956         * ptimer.c (ptimer_init): Check whether _POSIX_MONOTONIC_CLOCK is
2957         defined instead of whether it's greater than 0.  glibc defines it
2958         to 0, but still makes it available via sysconf.
2959
2960 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
2961
2962         * mswindows.c (str_to_int64): Rename OVERFLOW and UNDERFLOW to
2963         INT64_OVERFLOW and INT64_UNDERFLOW, since those names are used.
2964
2965 2005-04-07  Hrvoje Niksic  <hniksic@xemacs.org>
2966
2967         * ptimer.c: New file.  Move the "wtimer" functions from utils.c to
2968         this file and rename them to ptimer_.
2969
2970 2005-04-07  Hrvoje Niksic  <hniksic@xemacs.org>
2971
2972         * host.c (NO_ADDRESS): Define NO_ADDRESS only after the system
2973         headers have been included.
2974
2975 2005-04-06  Hrvoje Niksic  <hniksic@xemacs.org>
2976
2977         * http.c (pconn): Include NTLM data, which is per-connection.
2978         (known_authentication_scheme_p): Recognize NTLM authorization.
2979         (create_authorization_line): Call ntlm_input and ntlm_output.
2980
2981         * http-ntlm.c: New file, donated by Daniel Stenberg and originally
2982         written for curl, heavily modified for Wget.
2983
2984         * utils.c (base64_encode): Relocated from http.c, since it is now
2985         used by http-ntlm.c, and will possibly be used elsewhere.
2986         (base64_decode): New function, originally based on code from GNU
2987         recode.
2988
2989 2005-04-02  Hrvoje Niksic  <hniksic@xemacs.org>
2990
2991         * ftp.c (ftp_loop): Ditto.
2992
2993         * ftp-basic.c (ftp_pasv): Use the xzero shorthand for memset(0).
2994         (ftp_lpsv): Ditto.
2995
2996 2005-04-05  Mauro Tortonesi  <mauro@ferrara.linux.it>
2997
2998         * Makefile.in: removed string_t.c from list of source files.
2999
3000 2005-04-04  Mauro Tortonesi  <mauro@ferrara.linux.it>
3001
3002         * string_t.c: Removed.
3003         
3004         * string_t.h: Removed.
3005
3006 2005-04-02  Hrvoje Niksic  <hniksic@xemacs.org>
3007
3008         * url.c (rewrite_shorthand_url): Only accept recognized schemes.
3009         That way "foo:80" will correctly be rewritten to "http://foo:80"
3010         instead of left unchanged and ultimately rejected because of
3011         "unsupported scheme foo".
3012
3013 2005-03-31  Hrvoje Niksic  <hniksic@xemacs.org>
3014
3015         * utils.c (number_to_string): Avoid explicit 64-bit constants;
3016         construct them by multiplication at compile-time.
3017
3018         * utils.c, elsewhere: Don't append "L" to 32-bit integer
3019         constants; we aren't really compilable on 16-bit systems anyway.
3020
3021         * hash.c (prime_size): Remove primes larger than 2^31, but include
3022         2^31-1, which is prime.
3023
3024 2005-03-30  Hrvoje Niksic  <hniksic@xemacs.org>
3025
3026         * utils.c (string_set_to_array): New function.
3027
3028         * convert.c: Replace the use of "slists" with sets/hash-tables,
3029         which in fact suit the intended purpose much better.
3030         downloaded_html_list is removed altogether.
3031
3032 2005-03-29  Hrvoje Niksic  <hniksic@xemacs.org>
3033
3034         * ftp.h (enum): Rename GLOBALL, GETALL, and GETONE to
3035         GLOB_GLOBALL, GLOB_GETALL, and GLOB_GETONE to avoid conflict with
3036         Linux headers.
3037
3038 2005-03-29  Hrvoje Niksic  <hniksic@xemacs.org>
3039
3040         * utils.c (numdigit): More correct handling of negative numbers.
3041
3042 2005-03-21  Hrvoje Niksic  <hniksic@xemacs.org>
3043
3044         * http.c (gethttp): Print the human-readable size.
3045
3046         * ftp.c (getftp): Print the human-readable size of the file to be
3047         downloaded.
3048
3049         * utils.c (human_readable): New function.
3050
3051         * utils.c: Renamed "legible" to "with_thousand_seps",
3052         "legible_large_int" to "with_thousand_seps_large", and "legible_1"
3053         to "add_thousand_seps".
3054
3055 2005-03-21  Hrvoje Niksic  <hniksic@xemacs.org>
3056
3057         * http.c (gethttp): Inhibit persistent connections when talking to
3058         proxies, as mandated by RFC 2068.
3059
3060 2005-03-20  Hrvoje Niksic  <hniksic@xemacs.org>
3061
3062         * url.c (unescape_single_char): New function.
3063         (url_escape_dir): Use it to unescape slashes in directory
3064         components.
3065         (url_string): Escape unsafe chars in host name, except for the ':'
3066         charaters, which can appear in IPv6 addresses.
3067
3068         * main.c (main): Don't access the cookie jar directly.
3069
3070         * log.c (escnonprint_internal): Correctly calculate the needed
3071         string size.  Don't forget the buffer's new size after having
3072         reallocated it.
3073         (log_cleanup): New function.  Free the escnonprint ring data.
3074
3075         * init.c (cleanup): Don't free the cookie jar explicitly, it is
3076         now done by http_cleanup.
3077         (cleanup): opt.user_headers is now a vector, free it with
3078         free_vec.
3079
3080         * http.c (gethttp): Make sure to free the request data, the status
3081         message, and the response data before returning from the function.
3082         (save_cookies): New function.
3083         (http_cleanup): Free the cookie jar here.
3084
3085         * hash.c: Renamed string_hash to hash_string and ptrhash to
3086         hash_pointer.  Exported hash_pointer.
3087
3088         * xmalloc.c: Organized malloc_table (previously malloc_debug) as a
3089         simple EQ hash table.  register_ptr and unregister_ptr are now of
3090         O(1) complexity.
3091
3092         * xmalloc.c: Renamed "*_debug" to debugging_* and "*_real" to
3093         checking_*.
3094
3095 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
3096
3097         * utils.c (debug_test_md5): Moved to gen-md5.c.
3098
3099         * mswindows.h: Don't declare inet_ntop, since we don't use it.
3100
3101         * mswindows.h: For consistency, also wrap closesocket, it being
3102         a Winsock call.
3103
3104         * mswindows.h: Don't declare sleep and usleep; we're defining
3105         xsleep now.
3106
3107         * mswindows.h (mkdir): Don't special-case Borland C, _mkdir
3108         works there as well.
3109
3110         * host.c: Don't include winsock header files; the correct ones
3111         are already included by mswindows.h.
3112
3113         * mswindows.c (xsleep): Round toward the nearest millisecond
3114         in an attempt to avoid average short sleeps.
3115
3116         * utils.c (wtimer_granularity): Report correct values for
3117         Windows timers and for high-resolution timers.
3118
3119         * utils.c (wtimer_initialize_once): New function, called to
3120         initialize the timer frequency.
3121
3122         * utils.c: Replace the use of GetSystemTime with high-resolution
3123         counters under Windows.  When high-resolution counters are
3124         unavailable, use GetTickCount().
3125
3126 2005-03-15  Hrvoje Niksic  <hniksic@xemacs.org>
3127
3128         * retr.c (fd_read_body): Undo the 2004-11-18 change.  Instead,
3129         always be "exact".
3130
3131 2005-03-17  Hrvoje Niksic  <hniksic@xemacs.org>
3132
3133         * ftp-basic.c (ftp_login): Don't free the string if ftp_response
3134         returned an error status because the line didn't get allocated in
3135         the first place.
3136
3137 2005-03-15  Hrvoje Niksic  <hniksic@xemacs.org>
3138
3139         * http.c (read_http_response_head): Limit the response size to 64k
3140         bytes.
3141
3142         * retr.c (fd_read_hunk): Accept a MAXSIZE argument that limits the
3143         number of bytes the function is allowed to allocate.
3144         (fd_read_line): Limit the line to 4096 bytes.
3145
3146 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
3147
3148         * wget.h: Include options.h after wgint has been defined.
3149
3150         * options.h (struct options): Declare options processed with
3151         cmd_bytes as wgint, not long.
3152
3153 2005-03-18  Hrvoje Niksic  <hniksic@xemacs.org>
3154
3155         * init.c (cmd_file): Use concat_strings.
3156
3157         * http.c (basic_authentication_encode): Use concat_strings.
3158
3159         * ftp-ls.c (ftp_index): Use concat_strings.
3160
3161         * ftp-basic.c (ftp_request): Use concat_strings.
3162
3163         * utils.c (concat_strings): New function.
3164
3165 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
3166
3167         * init.c (simple_atof): Handle negative numbers; skip whitespace
3168         before the number.
3169         (simple_atoi): Ditto.  Also, check for overflow and underflow.
3170         (cmd_number): Bail out on negative numbers.
3171         (parse_bytes_helper): Ditto.
3172
3173 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3174
3175         * http.c (gethttp): Handle multiple Set-Cookie headers sent by
3176         remote server.
3177
3178 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3179
3180         * init.c (defaults): Use passive FTP by default.
3181
3182 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3183
3184         * mswindows.c: Provide wrappers to Winsock functions that set
3185         errno to WSAGetLastError() in case of failure.  Also provide a
3186         Windows-specific version of strerror.
3187
3188         * mswindows.h: Wrap calls to socket, bind, connect, recv, send,
3189         select, getsockname, getpeername, and setsockopt.
3190
3191 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3192
3193         * url.c (url_parse): Reject port numbers larger than 65535.  We
3194         also check for overflow while parsing port numbers.
3195
3196 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3197
3198         * utils.c (read_file): Don't use wgint for file size; LFS won't
3199         work since the file is mmap'ed as a whole.
3200
3201         * options.h: Don't include stdio.h.
3202
3203         * log.c: Ditto.
3204
3205         * init.c: Disambiguate assignment from non-zero test to avoid
3206         Borland C warning.
3207
3208         * http.c (response_new): Don't needlessly post-increment count.
3209
3210         * hash.c: Include stdio.h.
3211
3212         * gnu-md5.h: Don't include stdio.h.
3213
3214         * getopt.h (struct option): Always use const.
3215
3216         * ftp.c (getftp): Avoid unnecessary assignment to RES to avoid
3217         Borland C warning.
3218
3219         * ftp-ls.c: Disambiguate assignment from non-zero test to avoid
3220         Borland C warning.
3221
3222         * cmpt.c (strptime_internal): Don't initialize rp_backup when
3223         !_NL_CURRENT to avoid Borland C warning.
3224
3225 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3226
3227         * utils.c (fopen_excl): Fix parse error when O_BINARY is
3228         available.
3229
3230 2005-03-05  Hrvoje Niksic  <hniksic@xemacs.org>
3231
3232         * url.c (url_file_name): Don't allow hosts named ".." to be
3233         appended as path elements.
3234
3235 2005-03-03  Hrvoje Niksic  <hniksic@xemacs.org>
3236
3237         * retr.c (retrieve_url): Escape location header.
3238
3239         * http.c (print_server_response_1): Escape server response when
3240         printing it.
3241         (gethttp): Escape host name, status message, location header, and
3242         content type.
3243         (http_loop): Escape error message from server.
3244
3245         * host.c (lookup_host): Escape host name when printing it.
3246
3247         * ftp.c (getftp): Escape user name when printing it.
3248         (getftp): Escape remote file and directory for printing.
3249         (getftp): Escape server listing when printing it.
3250         (ftp_retrieve_list): Escape link name and file name.
3251         (ftp_retrieve_glob): Escape file name.
3252
3253         * ftp-basic.c (ftp_response): Escape server response when printing
3254         it.
3255
3256         * cookies.c (parse_set_cookies): Escape the cookie field when
3257         printing it.
3258         (parse_set_cookies): Escape contents of remote header.
3259         (cookie_handle_set_cookie): Escape host name and cookie domain.
3260
3261         * connect.c (connect_to_ip): Escape the host name.
3262
3263         * log.c (escnonprint): New function, used for printing strings
3264         coming from the server that possibly contain non-ASCII characters.
3265         (escnonprint_uri): Ditto.
3266
3267 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
3268
3269         * ftp.c (getftp): Ditto.
3270
3271         * http.c (gethttp): When we're not supposed to overwrite files,
3272         use fopen_excl to open the file and recompute the file name.
3273
3274         * log.c (redirect_output): Use unique_create to avoid a race
3275         condition.
3276
3277         * mswindows.c (fake_fork_child): Use unique_create.
3278
3279         * utils.c (fopen_excl): New function that opens a stdio stream
3280         with the O_EXCL flag (where available).
3281         (unique_create): New function, like unique_name, but also creating
3282         the file and returning a file pointer.
3283         (fork_to_background): Use unique_create to create the file
3284         immediately to avoid race condition with multiple instances of
3285         wget -b.
3286
3287 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
3288
3289         * host.c (lookup_host): Test for AI_ADDRCONFIG directly, instead
3290         of checking for HAVE_GETADDRINFO_AI_ADDRCONFIG.
3291
3292 2005-02-23  Hrvoje Niksic  <hniksic@xemacs.org>
3293
3294         * host.c (is_valid_ipv6_address): Move here from url.c.
3295         (lookup_host): If the address is numeric, don't print the
3296         "resolving..." line, don't set up DNS timeouts, and set the
3297         AI_NUMERICHOST hint, where available.
3298
3299 2005-02-26  Gisle Vanem  <giva@bgnett.no>
3300
3301         * utils.c: Use the nnnLL syntax under GCC.  Define struct_stat to
3302         struct _stati64 under __MINGW32__ as well as under MS VC.
3303
3304 2005-02-26  Hrvoje Niksic  <hniksic@xemacs.org>
3305
3306         * utils.c: Use the nnnI64 syntax for __int64 constants under all
3307         Windows compilers.
3308         (SPRINTF_WGINT): Use "%I64" under all Windows compilers.
3309
3310         * mswindows.h (WGINT_MAX): Use the nnnI64 syntax for
3311         __int64 constants under all Windows compilers.
3312         (struct_stat): Use `struct stati64' under Borland C.
3313         (fstat): Don't redefine to _fstati64 under Borland.
3314
3315         * mswindows.c: Define str_to_int64 under Borland C as well as
3316         under (older) Visual C.
3317
3318 2005-02-25  Hrvoje Niksic  <hniksic@xemacs.org>
3319
3320         * ftp.c (getftp): Initialize err to suppress compiler warning.
3321
3322 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
3323
3324         * ftp.c (ftp_expected_bytes): Fix bug that caused infloop because
3325         of not correctly skipping the '(' character.
3326
3327 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
3328
3329         * mswindows.c (wget_ftello): Removed.
3330
3331         * mswindows.h: Remove bogus definition of stat.
3332         (wget_ftello): Remove the leftover ftello replacement.
3333
3334 2005-02-20  Hrvoje Niksic  <hniksic@xemacs.org>
3335
3336         * mswindows.c (wget_ftello): Wget's replacement for ftello.
3337
3338         * utils.c (file_size): Use ftello where available.
3339
3340         * ftp-ls.c (ftp_parse_unix_ls): Use str_to_wgint to parse the file
3341         size.
3342         (ftp_parse_winnt_ls): Ditto.
3343
3344         * ftp-basic.c (ftp_size): Use str_to_wgint to convert number to
3345         wgint; pass 10 instead of 0 as the BASE argument.
3346
3347         * ftp.c (ftp_expected_bytes): Use str_to_wgint to parse the file
3348         size.
3349
3350         * sysdep.h (LARGE_INT_FMT): Use __int64 as LARGE_INT on
3351         MSVC/Windows; print it with "%I64".
3352
3353         * wget.h: Define a `wgint' type, normally aliased to (the possibly
3354         64-bit variant of) off_t.
3355
3356         * all: Use `wgint' instead of `long' for numeric variables that
3357         can hold file sizes.
3358
3359         * utils.c (number_to_string): Support printing of `wgint'
3360         argument.
3361         (number_to_static_string): New function.
3362
3363         * all: Replace printf("%ld", long_value) with printf("%s",
3364         number_to_static_string(wgint_value)).
3365
3366 2005-02-18  Mauro Tortonesi <mauro@ferrara.linux.it>
3367
3368         * main.c: Added the --ftp-passwd command line option.
3369
3370         * init.c: Renamed command passwd to ftppasswd.
3371
3372 2005-02-11  Mauro Tortonesi <mauro@ferrara.linux.it>
3373         
3374         * string_t.c: Fixed a bug in do_escape and triggered escape of
3375         backslashes in string_escape to avoid ambiguities in the result
3376         string.
3377         
3378 2005-02-10  Mauro Tortonesi <mauro@ferrara.linux.it>
3379
3380         * string.h: Renamed to string_t.h to fix a compilation conflict 
3381         with the string.h header in the standard C library.
3382         
3383         * string.c: Renamed to string_t.c for consistency with string.h.
3384         
3385         * string_t.c: Ditto.
3386
3387         * string_t.h: Ditto.
3388         
3389 2004-12-31  Mauro Tortonesi <mauro@ferrara.linux.it>
3390
3391         * string.c: New file.
3392
3393         * string.h: New file.
3394
3395         * Makefile.in: Added string.c to the list of modules to compile.
3396
3397         * main.c: Updated copyright.
3398
3399 2004-11-18  Ulf Harnhammar <ulf.harnhammar.9485@student.uu.se>
3400
3401         * ftp-ls.c: Fixed a problem in ftp_parse_winnt_ls that could allow a
3402         malicious remote FTP server to crash wget.
3403
3404 2004-11-18  Hans-Andreas Engel <engel@node.ch>
3405
3406         * http.c: Enable --convert-links (-k) when a single page is downloaded
3407         via --output-document (-O).
3408
3409 2004-11-18  Mauro Tortonesi <mauro@deepspace6.net>
3410
3411         * connect.c: Minor correction to the comment in front of fd_peek.
3412
3413 2004-11-18  Leonid Petrov <nouser@lpetrov.net>
3414
3415         * retr.c: Fix a timeout problem in fd_read_body when using http_proxy.
3416
3417 2004-11-15  YAMAZAKI Makoto <Yamazaki.Makoto@fujixerox.co.jp>
3418
3419         * netrc.c: Fix termination by assertion bug in netrc parsing.
3420
3421 2004-05-09  David Fritz  <zeroxdf@att.net>
3422
3423         * mswindows.c (fake_fork): Pass entire command line to the child
3424         process.
3425
3426 2004-03-31  Hrvoje Niksic  <hniksic@xemacs.org>
3427
3428         * http.c (gethttp): Fix typo: SCHEME_SSL -> SCHEME_HTTPS.
3429
3430 2004-03-30  Hrvoje Niksic  <hniksic@xemacs.org>
3431
3432         * http.c (gethttp): Send the Proxy-Authorization header over
3433         non-SSL connections too.
3434
3435 2004-03-25  David Fritz  <zeroxdf@att.net>
3436
3437         * mswindows.c (fake_fork_child): Ignore error code when
3438         OpenFileMapping() fails; assume it failed because the object does
3439         not exist.
3440
3441 2004-03-24  David Fritz  <zeroxdf@att.net>
3442
3443         * mswindows.c (fake_fork): New function.
3444
3445         * mswindows.c (fork_to_background): Use it.
3446
3447 2004-03-19  David Fritz  <zeroxdf@att.net>
3448
3449         * mswindows.c (ws_hangup): Incorporate old fork_to_background()
3450         code.  Add event name argument.
3451         (fork_to_backgorund): Now a simple wrapper around ws_hangup().
3452         (ws_handler): Correctly handle the case when neither CTRLC_BACKGND
3453         nor CTRLBREAK_BACKGND are defined.  Don't bother handling close,
3454         logoff, or shutdown events.  Call ws_hangup() with the correct
3455         event name; don't assume it was CTRL+Break.
3456
3457 2004-03-19  Hrvoje Niksic  <hniksic@xemacs.org>
3458
3459         * url.c (url_parse): Decode %HH sequences in host name.
3460
3461 2004-03-04  Hrvoje Niksic  <hniksic@xemacs.org>
3462
3463         * convert.c (local_quote_string): Quote "#" as "%23" and "%" as
3464         "%25" when creating links to local files.
3465
3466 2004-03-02  David Fritz  <zeroxdf@att.net>
3467
3468         * mswindows.c (ws_percenttitle): Guard against future changes by
3469         doing nothing if the proper variables have not been initialized.
3470         Clamp percentage value.
3471
3472 2004-03-04  Gisle Vanem  <giva@bgnett.no>
3473
3474         * retr.c (fd_read_body): Don't change console title if quiet.
3475
3476 2004-02-25  David Fritz  <zeroxdf@att.net>
3477
3478         * mswindows.c (set_sleep_mode): Remove argument and return value.
3479         Call GetModuleHandle() instead of LoadLibrary()/FreeLibrary() for
3480         kernel32.dll.  Use typedef for function-pointer.  Don't cast
3481         l-value.  Don't use dereference operator when calling through
3482         function-pointer.
3483         (ws_startup): Update call to set_sleep_mode().
3484         (ws_cleanup): Remove call to set_sleep_mode().
3485
3486 2004-02-23  David Fritz  <zeroxdf@att.net>
3487
3488         * http.c (http_loop): Ditto.
3489
3490         * ftp.c (ftp_loop_internal): Update call to ws_changetitle().
3491
3492         * main.c (main): Don't bother calling ws_changetitle().
3493
3494         * mswindows.h (ws_changetitle): Update prototype.
3495
3496         * mswindows.c (ws_changetitle): Remove second argument.  Use
3497         xfree_null().
3498         (ws_percenttitle): Only update title when percentage has changed.
3499
3500 2004-02-23  David Fritz  <zeroxdf@att.net>
3501
3502         * mswindows.h: Ditto.
3503
3504         * mswindows.c: Misc. formatting/comment tweaks throughout.
3505
3506 2004-02-20  David Fritz  <zeroxdf@att.net>
3507
3508         * main.c (print_help): Remove call to ws_help().
3509
3510         * mswindows.c (ws_help): Remove.
3511
3512         * mswindows.h (ws_help): Remove.
3513
3514 2004-02-16  David Fritz  <zeroxdf@att.net>
3515
3516         * init.c (home_dir): Use aprintf() instead of xmalloc()/sprintf().
3517         Under Windows, if $HOME is not defined, use the directory that
3518         contains the Wget binary instead of hard-coded `C:\'.
3519         (wgetrc_file_name): Under Windows, look for $HOME/.wgetrc then, if
3520         not found, look for wget.ini in the directory of the Wget binary.
3521
3522         * mswindows.c (ws_mypath): Employ slightly more robust methodology.
3523         Strip trailing path separator.
3524
3525 2004-02-06  Hrvoje Niksic  <hniksic@xemacs.org>
3526
3527         * http.c (gethttp): Respect --ignore-length.
3528         (gethttp): Inhibit keep-alive if --ignore-length is specified.
3529
3530 2004-02-06  Hrvoje Niksic  <hniksic@xemacs.org>
3531
3532         * connect.c (sockaddr_set_data): Zero out
3533         sockaddr_in/sockaddr_in6.  Apparently BSD-derived stacks need this
3534         when binding a socket to local address.
3535
3536 2004-02-04  Hrvoje Niksic  <hniksic@xemacs.org>
3537
3538         * hash.c: Make the file compilable outside Wget source tree when
3539         -DSTANDALONE is used.
3540
3541 2004-01-29  Hrvoje Niksic  <hniksic@xemacs.org>
3542
3543         * utils.c (determine_screen_width): Return 0 if not running on
3544         Windows or on a TIOCGWINSZ-capable system.
3545
3546 2004-01-28  David Fritz  <zeroxdf@att.net>
3547
3548         * utils.c (determine_screen_width): Correctly determine console
3549         width under Windows.
3550
3551 2004-01-28  Christian Biere  <christianbiere@gmx.de>
3552
3553         * progress.c (bar_set_params): Fixed syntax error when HAVE_ISATTY
3554         was undefined.
3555
3556         * ftp.c (ftp_loop_internal): Allocate a larger buffer in case
3557         "try" gets translated to something large.  Ditto in http_loop in
3558         http.c.
3559
3560         * http.c (response_header_copy): Don't write to buf[BUFSIZE].
3561
3562         * ftp-opie.c (skey_response): Eliminate unnecessary string
3563         concatenation; just call gen_md5_update twice.
3564
3565 2004-01-25  Hrvoje Niksic  <hniksic@xemacs.org>
3566
3567         * utils.c (xsleep): Don't call usleep with values larger than
3568         1,000,000.
3569
3570 2003-12-16  Hrvoje Niksic  <hniksic@xemacs.org>
3571
3572         * http.c (gethttp): Fix generation of `Content-Length'.
3573
3574 2003-12-15  Gisle Vanem  <giva@bgnett.no>
3575
3576         * url.c (url_skip_credentials): Fixed return value; 'url' if no
3577         credentials.
3578
3579 2003-12-14  Hrvoje Niksic  <hniksic@xemacs.org>
3580
3581         * url.c (url_skip_credentials): Return a pointer directly.
3582
3583 2003-12-14  Hrvoje Niksic  <hniksic@xemacs.org>
3584
3585         * url.c (url_file_name): Ditto.
3586         (parse_errors): Ditto.
3587
3588         * retr.c (retr_rate): Ditto.
3589
3590         * progress.c (create_image): Ditto.
3591
3592         * netrc.c (parse_netrc): Ditto.
3593
3594         * main.c (struct cmdline_option): Ditto.
3595         (redirect_output_signal): Ditto.
3596
3597         * init.c (commands): Ditto.
3598
3599         * ftp-ls.c (ftp_index): Ditto.
3600
3601         * cookies.c (check_domain_match): Declare the pointer to a literal
3602         string as `const'.
3603
3604 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
3605
3606         * retr.c (fd_read_body): Pass total size to progress_create, not
3607         the remaining amount.
3608
3609 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
3610
3611         * retr.c (fd_read_body): Don't fiddle with "interactive timeout"
3612         if read timeout is unset.
3613
3614 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
3615
3616         * connect.c (bind_local): Don't set the IPV6_V6ONLY option on the
3617         socket.
3618
3619 2003-12-06  Hrvoje Niksic  <hniksic@xemacs.org>
3620
3621         * url.c (url_file_name): Respect the setting of
3622         opt.protocol_directories.
3623
3624         * main.c (main): Only check for ret=='?' when longindex is unset.
3625         (option_data): New option --protocol-directories.
3626
3627 2003-12-06  Hrvoje Niksic  <hniksic@xemacs.org>
3628
3629         * ftp.c (getftp): Ditto.
3630
3631         * http.c (gethttp): Correctly calculate bandwidth as total data
3632         read divided with download time.
3633
3634         * retr.c (fd_read_body): Separate the return values for data
3635         written and read.
3636
3637 2003-12-05  Hrvoje Niksic  <hniksic@xemacs.org>
3638
3639         * http.c (H_REDIRECTED): Respect the HTTP/1.1 "303 See Other"
3640         response code.
3641         Suggested by Dan Razzell.
3642
3643 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
3644
3645         * retr.c (fd_read_body): Report the amount of data *written* as
3646         amount_read.  This is not entirely logical, but that's what the
3647         callers expect, and it's not easy to change.
3648
3649         * ftp.c (ftp_loop_internal): Ditto.
3650
3651         * http.c (http_loop): Be smarter about assigning restval; if we're
3652         in the nth pass of a download, simply use the information we have
3653         about how much data has been retrieved as restval.
3654
3655         * ftp.c (getftp): Ditto for FTP "REST" command.
3656
3657         * http.c (gethttp): When the server doesn't respect range, skip
3658         the first RESTVAL bytes of the read body.  Never truncate the
3659         output file.
3660
3661         * retr.c (fd_read_body): Support skipping initial STARTPOS octets.
3662
3663 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
3664
3665         * http.c (skip_short_body): Renamed skip_body to skip_short_body;
3666         don't bother calling fd_read_body.
3667
3668 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
3669
3670         * retr.c (fd_read_body): Sanitize arguments and document them
3671         better.  Make sure the timer is created and updated only if
3672         necessary.  Updated callers.
3673
3674 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
3675
3676         * http.c (skip_body): New function.
3677         (gethttp): Use it to skip the body of the responses we don't care
3678         to download.  That allows us to reuse the connection.
3679         (gethttp): Trust that the HEAD requests will not generate body
3680         data.
3681
3682         * retr.c (fd_read_body): Don't write to OUT if it's NULL.
3683
3684 2003-11-29  Hrvoje Niksic  <hniksic@xemacs.org>
3685
3686         * http.c (gethttp): Initialize SSL only the first time when SSL
3687         URL is downloaded.
3688
3689 2003-11-29  Hrvoje Niksic  <hniksic@xemacs.org>
3690
3691         * cookies.c (cookie_header): Only generate the contents of the
3692         header, not the leading "Cookie: " or the trailing "\r\n".
3693
3694         * http.c (gethttp): When adding headers specified with `--header',
3695         allow them to override the headers generated by Wget.
3696
3697         * init.c (cmd_spec_header): Made opt.user_headers a vector.
3698
3699         * http.c (request_new): New function.  Returns a request structure
3700         which can be modified in various ways, most notably by adding HTTP
3701         headers to the request.
3702         (request_set_header): New function for adding the header to the
3703         request.  If the header is already available, it gets replaced.
3704         (request_send): Construct and send the request.
3705         (gethttp): Use the request_* functions to generate the request.
3706
3707 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
3708
3709         * http.c (gethttp): Don't include the Proxy-Authorization header
3710         in the request tunneled through proxy.
3711
3712 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
3713
3714         * http.c (gethttp): Use the CONNECT handle to establish SSL
3715         passthrough through non-SSL proxies.
3716
3717 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
3718
3719         * init.c: Don't #include netinet/Winsock stuff.
3720
3721 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
3722
3723         * http.c: Deleted the old functions header_process,
3724         header_extract_number, header_exists, header_strdup,
3725         http_process_range, http_process_none, http_process_type, and
3726         http_process_connection.
3727
3728         * http.c (response_new): New function.
3729         (response_header_bounds): Ditto.
3730         (response_header_copy): Ditto.
3731         (response_header_strdup): Ditto.
3732         (response_status): Ditto.
3733         (gethttp): Use the new response_* functions to parse the response.
3734         Support HTTP/0.9 responses.
3735
3736 2003-11-27  Hrvoje Niksic  <hniksic@xemacs.org>
3737
3738         * progress.c (create_image): Don't calculate ETA if nothing has
3739         been downloaded yet, because it causes division by zero.
3740
3741 2003-11-27  Hrvoje Niksic  <hniksic@xemacs.org>
3742
3743         * connect.c (bind_local): Rename sa_len to addrlen because IRIX
3744         headers define sa_len as a macro.
3745
3746 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
3747
3748         * html-parse.c (convert_and_copy): Remove embedded newlines when
3749         AP_TRIM_BLANKS is specified.
3750
3751 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
3752
3753         * ftp.c: Set con->csock to -1 where rbuf_uninitialize was
3754         previously used.
3755
3756 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
3757
3758         * Makefile.in (http$o): Added the trailing backslash that was
3759         missing.
3760
3761 2003-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
3762
3763         * headers.c: Removed.  The file is no longer relevant, now that no
3764         special handling of headers is done by the rbuf code.  Moved
3765         portions to http.c.
3766
3767 2003-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
3768
3769         * rbuf.c: Removed.
3770
3771         * ftp-basic.c (ftp_response): Use fd_read_line.  No longer use
3772         struct rbuf.  Updated all callers.
3773
3774         * http.c (gethttp): Use fd_read_head to read all the headers in
3775         one go.
3776         (next_header): New function.
3777
3778         * retr.c (fd_read_line): New function: reads a line from FD,
3779         leaving the rest of the data unread.
3780         (fd_read_head): New function.
3781
3782         * connect.c (fd_peek): New function, implements peeking.
3783         (poll_internal): New function.
3784         (fd_read): Use it.
3785         (fd_write): Ditto.
3786         (fd_peek): Ditto.
3787         (fd_register_transport): Allow registering a "peeker" callback.
3788
3789 2003-11-20  Hrvoje Niksic  <hniksic@xemacs.org>
3790
3791         * connect.c: Renamed xread/xwrite/xclose to
3792         fd_read/fd_write/fd_close.  The "x" prefix is not appropriate
3793         because the semantics have diverged from read/write/close too
3794         significantly.  Updated all callers.
3795
3796 2003-11-20  Hrvoje Niksic  <hniksic@xemacs.org>
3797
3798         * connect.c (sock_write): It's not necessary to initialize RES.
3799
3800 2003-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
3801
3802         * main.c (main): Don't reference opt.ipv4_only and opt.ipv6_only
3803         if IPv6 is disabled.
3804
3805 2003-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
3806
3807         * connect.c (socket_has_inet6): Only compile it if IPv6 is enabled
3808         and AI_ADDRCONFIG is missing.
3809
3810 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
3811
3812         * gen_sslfunc.c (ssl_init_prng): Warn the user when using a weak
3813         random seed.
3814
3815 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
3816
3817         * host.c (address_list_contains): Renamed address_list_find to
3818         address_list_contains because its result is boolean.
3819
3820 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
3821
3822         * connect.c (select_fd): Return 1 if select is not available.
3823
3824 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
3825
3826         * connect.c (connect_to_host): Don't reference address list after
3827         releasing it.
3828
3829 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
3830
3831         * main.c (print_help): Fix alignment of FTP options output.
3832
3833 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
3834
3835         * host.c (lookup_host): Check for the ability to create IPv6
3836         sockets here.
3837
3838         * init.c (defaults): Don't auto-set --inet4-only on IPv6-less
3839         systems.
3840
3841 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
3842
3843         * main.c (print_help): Fix typo in `-O' help message.  Fix docs of
3844         -Y/--proxy.  Fix docs of `--cookies' and `--glob'.  Improve docs
3845         of --convert-links.  Fix docs of SSL options.
3846
3847 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
3848
3849         * ftp-basic.c: Don't include <arpa/inet.h> and others because
3850         they're no longer needed.
3851
3852 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
3853
3854         * main.c (main): Don't allow setting of both opt.ipv4_only and
3855         opt.ipv6_only.
3856
3857         * init.c (defaults): Mark opt.ipv4_only specially when set
3858         automatically.
3859
3860 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
3861
3862         * host.c (lookup_host): Use AI_ADDRCONFIG only if the family is
3863         unspecified.  This ensures that specifying `--no-inet4' on systems
3864         where IPv6 resolves, but doesn't work behaves the same regardless
3865         of the availability of AI_ADDRCONFIG.
3866
3867 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
3868
3869         * host.c: Don't refer to the now-removed function
3870         forget_host_lookup in the documentation of lookup_host.
3871
3872 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
3873
3874         * http.c (persistent_available_p): Correctly specify the endpoint
3875         argument to socket_ip_address.
3876         (gethttp): When printing the "reusing connection to..." message,
3877         specify the host name of the reused connection, not the current
3878         host name.  That makes more sense because it provides a useful
3879         piece of information -- we know to which host we're supposed to
3880         connect anyway!
3881
3882 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
3883
3884         * init.c: Make sure the options are in alphabetic order!
3885
3886         * host.c (lookup_host): Merge lookup_host_passive and lookup_host
3887         after all -- having both would result in some code duplication.
3888         (lookup_host): Set hints.ai_family to AF_INET if ipv4_only is
3889         requested.  Likewise, set it to AF_INET6 for ipv6_only.  Specify
3890         AI_ADDRCONFIG where available.
3891         (lookup_host): New flag LH_REFRESH that specifies that a cached
3892         entry for HOST should be refreshed.
3893         (cache_query): New function.
3894         (cache_store): Ditto.
3895         (cache_remove): Ditto.
3896         (forget_host_lookup): No longer necessary, replaced with static
3897         function cache_remove.
3898
3899 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
3900
3901         * main.c: Enable -4 and -6 only if IPv6 is enabled.
3902
3903 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
3904
3905         * connect.c (register_transport): Renamed from register_extended.
3906         Explain the intended usage.
3907
3908 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
3909
3910         * url.c (uri_merge): Merging "foo" and "bar" should result in
3911         "bar", not in "foo/bar".
3912         (path_simplify): Don't remove empty path elements; don't
3913         special-case leading slash.
3914         (path_simplify): Don't swallow ".."'s at the beginning of string.
3915         E.g. simplify "foo/../../bar" as "../bar", not as "bar".
3916         (append_uri_pathel): Defang ".." path element upon encountering
3917         it.
3918
3919 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
3920
3921         * http.c (persistent_available_p): Don't attempt to talk to two
3922         different SSL sites over the same secure connection.
3923
3924 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
3925
3926         * http.c (gethttp): Ditto.
3927
3928         * ftp.c (getftp): Use retryable_socket_connect_error instead of
3929         CONNECT_ERROR.
3930
3931         * wget.h (CONNECT_ERROR): Removed.
3932
3933         * connect.c (retryable_socket_connect_error): New function instead
3934         of unsupported_socket_family_error.
3935
3936 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
3937
3938         * wget.h (CONNECT_ERROR): Use it.
3939
3940         * connect.c (unsupported_socket_family_error): New function.
3941
3942 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
3943
3944         * connect.c (bind_local): Renamed bindport to bind_local; return
3945         the socket directly.  Updated callers.
3946         (accept_connection): Renamed acceptport to accept_connection;
3947         return the created socket directly.  Updated callers.
3948
3949 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
3950
3951         * init.c (defaults): Turn on opt.ipv4_only if we're compiling with
3952         IPv6, and AI_ADDRINFO is not available, and AF_INET6 sockets can't
3953         be created.
3954
3955 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
3956
3957         * host.c (lookup_host): Document the fact that the addresses are
3958         returned in order.
3959
3960 2003-11-12  Hrvoje Niksic  <hniksic@xemacs.org>
3961
3962         * utils.c: Use limits.h only where available.
3963
3964         * hash.c: Use INVALID_PTR and INVALID_PTR_BYTE.  Include limits.h.
3965
3966 2003-11-11  Hrvoje Niksic  <hniksic@xemacs.org>
3967
3968         * main.c: Added options --inet4-only and --inet6-only.
3969
3970 2003-11-11  Hrvoje Niksic  <hniksic@xemacs.org>
3971
3972         * host.c (host_errstr): Use the more standard message "Unknown
3973         host".
3974
3975 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
3976
3977         * connect.c (connect_to_host): Use that flag to decide whether to
3978         re-resolve the host name.
3979
3980         * host.c (struct address_list): Added a flag that maintains
3981         whether the connection worked at some point.
3982
3983 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
3984
3985         * host.c (lookup_host): Special-case the numeric addresses only in
3986         the non-IPv6 case.
3987
3988 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
3989
3990         * connect.c (resolve_bind_address): Call lookup_host_passive.
3991         Make sure that opt.bind_address is resolved only once.
3992
3993         * host.c (lookup_host_passive): New function, handles "passive"
3994         lookups.
3995         (lookup_host): Remove the passive flags.  Remove the
3996         family-related flags -- use ip_default_family instead.
3997
3998 2003-11-09  Hrvoje Niksic  <hniksic@xemacs.org>
3999
4000         * html-url.c: Get URLs from <object data="...">.
4001
4002 2003-11-09  Hrvoje Niksic  <hniksic@xemacs.org>
4003
4004         * main.c (option_data): Specify the command to use for --mirror.
4005
4006 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4007
4008         * cookies.c (cookie_handle_set_cookie): Specify exact match for
4009         unspecified domains.
4010
4011 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4012
4013         * main.c (main): Removed one-letter options `-C', `-g', `-G', and
4014         `-s'.
4015
4016 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4017
4018         * main.c (main): Add --dont-remove-listing for backward
4019         compatibility with previous versions.
4020         (print_help): Fix typo, spotted by Dennis Smit.
4021
4022 2003-11-08  Gisle Vanem  <giva@bgnett.no>
4023
4024         * ftp-basic.c: Support Windows-2000 ftp servers. Win-2000 *is*
4025         Win-NT 5.0 so calling it ST_WINNT is okay I guess.
4026
4027 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4028
4029         * progress.c (update_speed_ring): Clear the speed ring when the
4030         download stalls.
4031
4032         * retr.c (get_contents): Specify 0.95s read timeout, so that the
4033         progress gauge can be updated even when data arrives very slowly
4034         or stalls.
4035
4036 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4037
4038         * utils.c (wtimer_allocate): Bless the use of wtimer_read on a
4039         timer that has merely been allocated because get_contents() does
4040         that.
4041         (wtimer_update): Abort if the timer is not initialized.
4042
4043 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4044
4045         * retr.c (get_contents): Pass the timer to limit_bandwidth().
4046
4047         * utils.c (wtimer_update): New function instead of wget_elapsed;
4048         just update the timer, but don't return anything.
4049         (wtimer_read): Read and return the last known value of the timer.
4050
4051 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4052
4053         * http.c (persistent_available_p): Instead of matching all the
4054         addresses of HOST and last host, determine the peer's IP address
4055         with socket_ip_address and see if that address is one of those
4056         HOST resolves to.
4057
4058         * host.c (address_list_match_all): Removed.
4059         (address_list_find): New function, finds an IP address in the
4060         address list.
4061
4062         * ftp.c (ftp_do_pasv): Get the peer's address here, and pass it to
4063         ftp_epsv so it doesn't need to call getpeername.
4064
4065         * ftp-basic.c (ftp_port): Use socket_ip_address instead of
4066         getpeername.
4067         (ftp_lprt): Ditto.
4068
4069         * connect.c (socket_ip_address): Replaces conaddr, generalized to
4070         either get peer's or local address.
4071         (sockaddr_get_data): Made local to this file.
4072
4073 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4074
4075         * hash.c (HASH_POSITION): Explicitly accept the hash function.
4076         (grow_hash_table): Extract ht->hash_function outside the loop.
4077         (hash_table_remove): Ditto.
4078         (hash_table_clear): Fill entries with 0xff to clear them.
4079         (hash_table_remove): Mark entries as deleted with the correct
4080         marker.
4081
4082 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4083
4084         * http.c (persistent_available_p): No reason for the host lookup
4085         to be silent -- it's a lookup like any other.
4086
4087 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4088
4089         * connect.c (register_extended): Check that fd >= 0.
4090
4091 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
4092
4093         * connect.c (LAZY_RETRIEVE_INFO): Set LAST_INFO.
4094
4095 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
4096
4097         * hash.c (NON_EMPTY): Use the all-bit-set value as the marker that
4098         the field is empty.  This allows NULL pointer and 0 value to be
4099         used as keys, which is necessary for the connect.c code to work
4100         when fd==0.
4101         (hash_table_new): Fill mappings with 0xff.
4102         (grow_hash_table): Ditto.
4103
4104 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
4105
4106         * url.c (url_parse): Allow empty ports.
4107
4108 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
4109
4110         * main.c (print_help): Break the help string into multiple chunks.
4111         (cmdline_option): New option handler OPT_FUNCALL.  Generalized
4112         HANDLE_CMD to generic DATA.
4113         (option_data): Use the new OPT_FUNCALL feature.
4114
4115 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
4116
4117         * log.h: Declare log_init, log_close, and
4118         log_request_redirect_output here.
4119
4120 2003-11-05  Dennis Smit  <ds@nerds-incorporated.org>
4121
4122         * main.c: (main): added --preserve-permissions option.
4123
4124         * ftp.c (ftp_retrieve_list): added support for
4125         --preserve-permissions option.
4126
4127         * init.c: added support for --preserve-permission option.
4128
4129         * option.h: added support for --preserve-permission option.
4130
4131 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
4132
4133         * main.c (init_switches): New function.  Convert option_data to
4134         long_options and short_options, which can be fed to getopt_long.
4135         (main): Execute command-line options by consulting option_data.
4136
4137 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
4138
4139         * gen_sslfunc.c (ssl_read): Implement a more correct check for
4140         EINTR.
4141         (ssl_write): Ditto.
4142         (init_ssl): Use a global SSL context.
4143
4144 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
4145
4146         * connect.c (xclose): Free INFO even if it doesn't provide a
4147         closer.
4148
4149 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
4150
4151         * connect.c: Updated all callers of
4152         iread/ssl_iread/iwrite/ssl_iwrite to use xread and xwrite instead.
4153
4154         * rbuf.h (struct rbuf): Removed the SSL member because SSL is
4155         handled automatically by xread.
4156
4157         * hash.c (ptrhash): Made private.
4158         (ptrcmp): Ditto.
4159         (inthash): Removed.
4160
4161         * connect.c (select_fd): Don't set errno, leave it to the caller.
4162
4163         * gen_sslfunc.c (connect_ssl): Use register_extended to register
4164         SSL callbacks for communication with SSL-enabled endpoints.
4165         (ssl_read): New function.
4166         (ssl_write): Ditto.
4167         (ssl_poll): Ditto.
4168         (ssl_close): Ditto.
4169
4170         * connect.c (register_extended): New function -- register
4171         callbacks for basic socket operations.
4172         (xread): Ditto.
4173         (xwrite): Ditto.
4174         (xclose): Ditto.
4175         (sock_read): New function, default implementation for reading.
4176         (sock_write): Ditto for writing.
4177         (sock_poll): Ditto for polling.
4178         (sock_close): Ditto for closing.
4179
4180 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
4181
4182         * connect.c (bindport): Fix compilation under pre-C99 compilers.
4183
4184 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
4185
4186         * connect.c (connect_to_ip): More compact error checking.
4187         (bindport): Don't treat failed setsockopt as a fatal error.
4188
4189 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
4190
4191         * connect.c (resolve_bind_address): Use a more accurate error
4192         message -- we're not binding to ANY, we're disabling bind
4193         altogether.
4194
4195 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
4196
4197         * cookies.c (save_cookies_mapper): Respect the setting of
4198         keep-session-cookies.
4199         (cookie_jar_load): Import session cookies.
4200         Based on code submitted by Nicolas Schodet.
4201
4202         * utils.c (datetime_str): Use information in TM when it's
4203         non-NULL.
4204
4205         * main.c (main): New option `--keep-session-cookies'.
4206
4207 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
4208
4209         * Makefile.in (realclean): Delete config.h.in.
4210
4211 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
4212
4213         * config-post.h: New file, included from now autogenerated
4214         config.h.in.
4215
4216 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
4217
4218         * progress.c (progress_handle_sigwinch): Don't call
4219         determine_screen_width() from the signal handler.  Instead, just
4220         set a volatile variable.
4221         (bar_create): Check whether SIGWINCH was received.
4222         (bar_update): Ditto.
4223
4224         * sysdep.h: Define SYSTEM_FNMATCH only if HAVE_FNMATCH_H is true.
4225
4226 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4227
4228         * utils.c (xsleep): New function.  Uses nanosleep where available,
4229         resuming sleeps interrupted by signals.  Updated callers of sleep
4230         and usleep to use xsleep.
4231
4232 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4233
4234         * ftp-basic.c (ftp_login): Remove shadowing (and bogus)
4235         declaration of SEED.
4236
4237 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4238
4239         * log.c (logvprintf): Documented better.  Renamed to
4240         log_vprintf_internal to avoid confusion with the public API
4241         functions logprintf and logputs.
4242
4243 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4244
4245         * wget.h (N_): Don't parenthesize argument.
4246
4247 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4248
4249         * host.h (ADDRESS_IPV4_DATA): Don't take the address of in.s_addr
4250         because that doesn't work on machines that define it as bitfield.
4251
4252 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4253
4254         * connect.c (select_fd): Generalize the third argument into WAIT,
4255         so that the caller can request waiting for both read and write.
4256         Updated callers.
4257
4258 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
4259
4260         * html-url.c (cleanup_html_url): Destroy the hash tables, don't
4261         just call free on them.
4262         (init_interesting): Use hash_table_put instead of string_set_add
4263         because we don't need the strdup that the latter function
4264         performs.
4265
4266         * init.c (cleanup): Don't pass NULL to cookie_jar_delete.
4267
4268         * xmalloc.c (xfree_real): Abort when passed a NULL pointer.
4269         (xfree_debug): Print at the file and line of the offending call to
4270         free.
4271
4272 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
4273
4274         * wget.h: Retired the `boolean' type.  Moved the DEFAULT_LOGFILE
4275         define to log.h.  Moved the INFINITE_RECURSION define to recur.h.
4276
4277         * xmalloc.h: Renamed FREE_MAYBE to xfree_null and moved the
4278         definition from wget.h to xmalloc.h.
4279
4280 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
4281
4282         * html-parse.c (decode_entity): New function; split the decoding
4283         of entities here.
4284         (convert_and_copy): Use it to decode entities.
4285         (decode_entity): Handle the &apos entity.
4286         (decode_entity): Don't decode Latin 1 numeric entities.  Don't
4287         decode &#0.
4288
4289 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
4290
4291         * ftp-opie.c (calculate_skey_response): Use uint32_t instead of
4292         `unsigned long' for the cheksum array.  Document the function.
4293
4294 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
4295
4296         * connect.c (acceptport): Don't call select_fd when timeout is not
4297         requested.
4298
4299 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
4300
4301         * host.c: Removed the ip_default_family global variable.
4302
4303         * host.c (lookup_host): Document the function.  Fixed declaration
4304         of VEC.
4305
4306 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
4307
4308         * various: Use new macros xnew, xnew0, xnew_array, and xnew0_array
4309         in various places.
4310
4311 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
4312
4313         * wget.h: Move declarations of malloc and logging code to
4314         xmalloc.h and log.h respectively to unclutter this file.
4315         (STRDUP_ALLOCA): Made it side-effect free.
4316
4317         * xmalloc.h: New files.  Define macros xnew, xnew0, xnew_array,
4318         and xnew0_array.
4319
4320         * xmalloc.c: New file.  Move the xmalloc routines here.
4321
4322 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
4323
4324         * connect.c (sockaddr_set_data): Remove the broken code that
4325         checked for NULL address.
4326
4327 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
4328
4329         * host.c (address_list_from_single): Removed.
4330         (address_list_from_ipv4_addresses): Renamed from
4331         address_list_from_vector.
4332
4333 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
4334
4335         * sysdep.h (CLOSE): Don't call close on file descriptors less than
4336         0, i.e. on uncreated sockets.
4337
4338         * connect.c (resolve_bind_address): Work on struct sockaddr
4339         directly.
4340         (connect_to_host): Replacement for connect_to_many.  Resolve HOST
4341         and connect to any of its addresses.  If we can't connect and the
4342         host name lookup was cached, try to resolve it again.  This should
4343         fix problems with hosts behind dynamic DNS.  Updated all callers.
4344         (connect_to_ip): Replacement for connect_to_one.  Removed SILENT;
4345         added the argument PRINT instead.  Updated all callers.
4346         (set_connection_host_name): Removed.
4347
4348         * host.c (address_list_address_at): New function instead of
4349         address_list_copy_one. It returns a pointer to ip_address *, so
4350         it's not necessary to copy the data.
4351         (address_list_cached_p): New function.
4352         (forget_host_lookup): Ditto.
4353
4354         * connect.c: Got rid of the MSOCK global variable.  Made bindport
4355         return the local socket it creates.  Added a new argument to
4356         acceptport, the socket to call accept on.  Updated callers.
4357         (closeport): Removed.
4358
4359         * connect.c: Moved the sockaddr code from host.c to this file,
4360         because most of that stuff is used for connecting, and has nothing
4361         to do with host names anyway.
4362         (sockaddr_set_data, sockaddr_get_data): New functions, replace the
4363         old sockaddr_set_address, sockaddr_set_port, sockaddr_get_address,
4364         and sockaddr_get_port.
4365
4366 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
4367
4368         * sysdep.h: Use `S >= 8' rather than `S == 8' when looking for
4369         large integers.
4370
4371 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
4372
4373         * url.c (append_uri_pathel): New argument ESCAPED_P that says
4374         whether [B, E) is to be treated as URL-escaped or not.  If
4375         ESCAPED_P is false, don't unescape the region.
4376         (url_file_name): u->file is not URL-escaped.
4377
4378 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
4379
4380         * retr.c (retrieve_from_file): Use retrieve_tree for
4381         page-requisites.
4382
4383         * main.c (main): Don't define opt.recursive when -p is used.
4384         Instead, make sure that recursion is used for HTTP in that case.
4385
4386 2003-10-29  Hrvoje Niksic  <hniksic@xemacs.org>
4387
4388         * host.h: Defined accessors for elements of ip_address.  Updated
4389         all callers.
4390         (address_list_match_all): Use memcmp in the non-IPv6 case.
4391
4392         * wget.h (CONNECT_ERROR): Don't retry connecting if connect()
4393         returned EAFNOSUPPORT.
4394
4395 2003-10-27  Mauro Tortonesi <mauro@deepspace6.net>
4396
4397         * connect.h: changed bindport prototype and added the related
4398         BIND_ON_IPV4_ONLY and BIND_ON_IPV6_ONLY flags.
4399
4400         * connect.c: changed bindport and resolve_bind_address to allow
4401         protocol-version specific DNS resolution. modified conaddr,
4402         acceptport and connect_to_one to make use of struct
4403         sockaddr_storage and of the new ip_address structure.
4404
4405         * ftp-basic.c: added LPRT/LPSV (RFC1639) support, refactored
4406         PORT/PASV (RFC959) and EPRT/EPSV (RFC2428) support code.
4407
4408         * ftp.c: added the ftp_do_port and ftp_do_pasv functions to
4409         handle FTP over IPv6.
4410
4411         * ftp.h: changed prototype of ftp_epsv and added prototypes for
4412         ftp_lpsv, ftp_lprt and ftp_eprt.
4413
4414         * host.c: renamed the
4415         wget_sockaddr_set_address and wget_sockaddr_get_addr, and
4416         wget_sockaddr_{s,g}et_port couples to sockaddr_{s,g}et_address and
4417         sockaddr_{g,s}et_port respectively.  changed
4418         address_list_match_all, address_list_from_addrinfo sockaddr_len,
4419         pretty_print_address, lookup_host, sockaddr_{s,g}et_address and
4420         sockaddr_{g,s}et_port to make use of struct sockaddr_storage and
4421         of the new ip_address structure.  removed map_ipv4_to_ip and
4422         map_ip_to_ipv4.
4423
4424         * host.h: redefined structure ip_address and removed structure
4425         wget_sockaddr.
4426
4427 2003-10-26  Hrvoje Niksic  <hniksic@xemacs.org>
4428
4429         * sysdep.h: Include inttypes.h where available.
4430
4431         * host.c: Switch from u_int32_t to uint32_t.
4432
4433 2003-10-26  Hrvoje Niksic  <hniksic@xemacs.org>
4434
4435         * netrc.c (parse_netrc): Reset the QUOTE flag after the closing
4436         quote.
4437
4438 2003-10-25  Hrvoje Niksic  <hniksic@xemacs.org>
4439
4440         * url.c (is_valid_ipv6_address): Reformat to GNU coding style.
4441         Use enums for NS_IN* constants.  Use ISXDIGIT.
4442
4443         * convert.c (construct_relative): Document better how the function
4444         works.
4445
4446 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
4447
4448         * config.h.in: Deploy preprocessor magic to avoid Ultrix's
4449         <netdb.h> include <bitypes.h> which defines its own u_int32_t.
4450         Reported by Bernhard Simon.
4451
4452 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
4453
4454         * version.c: Bump version.
4455
4456 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
4457
4458         * url.c: Ditto.
4459
4460         * html-parse.c (advance_declaration): Don't use trailing comma in
4461         enum because older compilers don't support it.
4462
4463         * utils.c: Don't redefine HAVE_SIGSETJMP.
4464
4465 2003-10-16  Hrvoje Niksic  <hniksic@xemacs.org>
4466
4467         * convert.c (construct_relative): Don't handle absolute files
4468         specially -- for example, -P/tmp/foo shouldn't imply that
4469         converted files must refer to "/tmp/foo/..."!
4470
4471 2003-10-15  Hrvoje Niksic  <hniksic@xemacs.org>
4472
4473         * http.c: Consider status 307 a valid redirect.
4474
4475 2003-10-15  Philip Stadermann  <philip.stadermann@credativ.de>
4476
4477         * ftp.c (ftp_retrieve_glob): Correctly loop through the list whose
4478         elements might have been deleted.
4479
4480 2003-10-13  Hrvoje Niksic  <hniksic@xemacs.org>
4481
4482         * html-url.c (tag_handle_meta): Set the Refresh link to expect
4483         HTML.
4484         (append_one_url): Renamed to append_url.
4485
4486 2003-10-13  Hrvoje Niksic  <hniksic@xemacs.org>
4487
4488         * sysdep.h: Only define u_int32_t.
4489
4490 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
4491
4492         * utils.c (large_int_to_string): Use snprintf() to print the
4493         number.  This will work even on systems where libc doesn't
4494         understand %lld, but the compiler does, because it will use our
4495         snprintf replacement.
4496
4497         * init.c (parse_bytes_helper): New function.
4498         (cmd_bytes): Use it to parse bytes, but cast the result to long.
4499         (cmd_bytes_large): Ditto, but store the result to LARGE_INT.  Used
4500         for --quota so that --quota=10G works even on machines without
4501         long long.
4502
4503         * options.h (struct options): Declare quota as LARGE_INT.
4504
4505         * retr.c (downloaded_exceeds_quota): Removed.
4506         (downloaded_increase): Ditto.
4507         (total_downloaded_bytes): New variable, replaces opt.downloaded,
4508         which was the wrong place for it anyway.  Updated callers of
4509         downloaded_exceeds_quota and downloaded_increase to check this
4510         variable directly.
4511
4512         * sysdep.h: Get rid of VERY_LONG_TYPE.  Use LARGE_INT for the same
4513         purpose, defined as `long', `long long' or `double', depending on
4514         size of long and whether long long is available.
4515
4516 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
4517
4518         * sysdep.h: Also check size of short for int32_t.
4519
4520 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
4521
4522         * host.c (lookup_host): Use u_int32_t to store the result of
4523         inet_addr().  That removes the need for offset fiddling, caring
4524         about endian-ness, etc.
4525
4526         * sysdep.h: Define int32_t and u_int32_t if not available.
4527
4528 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
4529
4530         * ftp-basic.c (ftp_epsv): Use socklen_t * as the third argument to
4531         getpeername.
4532
4533         * config.h.in: Define socklen_t stub.
4534
4535         * host.c (sockaddr_len): Return socklen_t.
4536
4537         * connect.c (conaddr): Use socklen_t as the third argument to
4538         accept, getsockname, and connect.
4539
4540 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
4541
4542         * recur.c (retrieve_tree): Don't descend into documents that are
4543         not expected to contain HTML, regardless of their content-type.
4544
4545         * html-url.c (tag_url_attributes): Record which attributes are
4546         supposed to yield HTML links that can be followed.
4547         (tag_find_urls): Propagate that information to the caller through
4548         struct urlpos.
4549
4550 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
4551
4552         * hash.c (find_mapping): Return the next available mapping when
4553         the key is not found, not NULL.
4554         (hash_table_put): Use find_mapping to find the storage for the new
4555         data.
4556         (hash_table_put): Grow the table before exceeding maximum
4557         fullness, not afterwards.
4558
4559 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
4560
4561         * hash.c (hash_table_new): Slightly change the meaning of the
4562         first parameter.  Instead of being the minimum initial size, it is
4563         now the minimum number of items that the hash table can take
4564         without needing to resize.
4565
4566 2003-10-09  Hrvoje Niksic  <hniksic@xemacs.org>
4567
4568         * html-url.c (init_interesting): Initialize interesting_tags and
4569         interesting_attributes as hash tables.  This simplifies the code
4570         immensely because hash tables handle allocation and remove
4571         duplicates automatically.
4572         (find_tag): Removed.
4573         (collect_tags_mapper): Instead of calling find_tag, simply get the
4574         entry from interesting_tags hash table, which is both simpler and
4575         faster.
4576
4577 2003-10-09  Hrvoje Niksic  <hniksic@xemacs.org>
4578
4579         * hash.c (hash_table_get): Declare hash-table argument as const.
4580         (find_mapping): Ditto.
4581         (hash_table_get_pair): Ditto.
4582         (hash_table_contains): Ditto.
4583         (hash_table_count): Ditto.
4584
4585 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
4586
4587         * html-url.c (get_urls_html): Parse the appropriate flags to
4588         html-parse.c.
4589
4590         * html-parse.c (map_html_tags): Accept FLAGS from the caller
4591         instead of examining OPT.
4592
4593 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
4594
4595         * html-url.c (find_tag): Switch to binary search.
4596
4597 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
4598
4599         * main.c (print_help): Fix typo; stured -> stored.
4600
4601 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
4602
4603         * getopt.c: Add definitions of getopt_long and getopt_long_only.
4604
4605 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
4606
4607         * config.h.in: Renamed DEBUG to ENABLE_DEBUG.  ENABLE_DEBUG is, I
4608         think, a better name, because it implies that debugging output is
4609         merely possible, not "on by default", as might be construed from
4610         just DEBUG.
4611
4612 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
4613
4614         * ftp.c (has_insecure_name_p): Define it here.
4615
4616         * utils.c (has_wildcards_p): Define it here.
4617
4618         * sysdep.h: Declare fnmatch-related macros here, if not using
4619         system fnmatch().  Update .c files to not declare fnmatch.h
4620         directly.
4621
4622         * cmpt.c (fnmatch): Moved here.  Use it only under non-GNU libc.
4623
4624 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
4625
4626         * getopt.c: Newer version, imported from Free libit.
4627
4628 2003-10-07  Hrvoje Niksic  <hniksic@xemacs.org>
4629
4630         * cookies.c (struct cookie): Remove unused backpointer to cookie
4631         jar.
4632
4633 2003-10-07  Hrvoje Niksic  <hniksic@xemacs.org>
4634
4635         * cmpt.c (memmove): Comment out, since it's no longer used.
4636
4637         * cookies.c (cookie_jar_generate_cookie_header): Allocate room for
4638         chains in one pass.
4639         (find_chains_of_host): Assume that the caller has allocated DEST
4640         to be sufficiently large to take all the data.
4641         (eliminate_dups): Run through the array and eliminate dups on the
4642         fly instead of using memmove.
4643         (cookie_jar_process_set_cookie): Free cookie->domain before
4644         re-setting it.
4645
4646 2003-10-05  Gisle Vanem  <giva@bgnett.no>
4647
4648         * mswindows.c (set_sleep_mode): Fix type of
4649         _SetThreadExecutionState.
4650
4651 2003-10-05  Hrvoje Niksic  <hniksic@xemacs.org>
4652
4653         * utils.c (file_size): Return -1 if fopen() returns NULL.  Prior
4654         to this patch, wget --post-file=nosuchfile dumped core.
4655
4656 2003-10-04  Gisle Vanem  <giva@bgnett.no>
4657
4658         * mswindows.c (run_with_timeout): Use WaitForSingleObject to wait
4659         for thread termination.
4660
4661 2003-10-04  Hrvoje Niksic  <hniksic@xemacs.org>
4662
4663         * log.c: Use `...' in function definitions; ansi2knr will convert
4664         them to va_dcl.  This allowed removal of the ugly VA_START_1 and
4665         VA_START_2 macros.
4666
4667 2003-10-03  Gisle Vanem  <giva@bgnett.no>
4668
4669         * connect.c: And don't include them here.
4670
4671         * mswindows.h: Include winsock headers here.
4672
4673 2003-10-03  Hrvoje Niksic  <hniksic@xemacs.org>
4674
4675         * html-parse.c (convert_and_copy): Move variable declarations
4676         before statements.
4677
4678 2003-10-02  Gisle Vanem  <giva@bgnett.no>
4679         
4680         * mswindows.c (run_with_timeout): For Windows: Run the 'fun' in a
4681         thread via a helper function. Continually query the thread's
4682         exit-code until finished or timed out.
4683
4684 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
4685
4686         * wget.h (XMALLOC_ARRAY): Removed.
4687         (ALLOCA_ARRAY): Ditto.
4688
4689         * html-parse.c: Renamed alloca_p to resized.
4690         (GROW_ARRAY): Renamed DO_REALLOC_FROM_ALLOCA to GROW_ARRAY and
4691         returned it to html-parse.c, since nothing else was using it.
4692
4693 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
4694
4695         * retr.c (retrieve_url): Initialize DUMMY storage for DT.  Caught
4696         by valgrind.
4697
4698 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
4699
4700         * html-parse.c (convert_and_copy): Handle numeric entities in
4701         hexadecimal, &#xHH.
4702         (convert_and_copy): Copy the contents directly to the pool without
4703         a stack-allocated intermediary.
4704
4705 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
4706
4707         * utils.c (alarm_set): New function; use either setitimer or alarm
4708         to set up the alarm.
4709         (alarm_cancel): New function; cancel the alarm set up by
4710         alarm_set.
4711         (run_with_timeout): Use them.
4712
4713 2003-10-01  Hrvoje Niksic  <hniksic@xemacs.org>
4714
4715         * url.c (url_parse): Don't leak memory when a reencoded URL turns
4716         out to be invalid.
4717
4718         * url.c (parse_errors): Mark error messages for translation.
4719         (url_error): Translate error messages returned to the caller.
4720
4721 2003-10-01  Hrvoje Niksic  <hniksic@xemacs.org>
4722
4723         * ftp.c (ftp_loop_internal): Initialize TMRATE to NULL to shut up
4724         the compiler.
4725
4726 2003-09-26  Gisle Vanem  <giva@bgnett.no>
4727
4728         * src/mswindows.c: Added ws_percenttitle() showing progress in the
4729         window titlebar. Called from retr.c. Secured ws_mypath().
4730
4731         * windows/config.h.ms: alloca() prototype not needed.  Removed
4732         "#undef ENABLE_NLS"; should be in Makefile IMHO. Moved
4733         WGET_USE_STDARG from mswindows.h to config.ms.h because of #ifdef
4734         in log.c. (MSVC's vararg.h and stdarg.h are incompatible).
4735
4736 2003-09-29  Aaron Hawley <Aaron.Hawley@uvm.edu>
4737
4738         * ftp.c (getftp): --spider option should now work with FTP
4739         downloads.
4740         (ftp_loop_internal): quiet reports and calculations of downloads
4741         when --spider option set, nor try deleting when --delete-after
4742         also set.
4743         (ftp_loop): --spider will skip HTML-ification of .listing file.
4744
4745 2003-09-26  Gisle Vanem  <giva@bgnett.no>
4746
4747         * mswindows.c (read_registry): Removed.
4748         (set_sleep_mode): New function.
4749         (windows_main_junk): Call it.
4750
4751 2003-09-26  Gisle Vanem  <giva@bgnett.no>
4752
4753         * mswindows.c (read_registry): Fix invocation of registry
4754         functions.
4755
4756         * mswindows.c (read_registry): Condition definitions of sleep and
4757         usleep with not HAVE_SLEEP and HAVE_USLEEP respectively.  Define
4758         HAVE_SLEEP and HAVE_USLEEP under __DMC__.
4759
4760 2003-09-24  Hrvoje Niksic  <hniksic@xemacs.org>
4761
4762         * url.c (url_escape_1): Revert unintentional change to lowercase
4763         xdigit escapes.
4764         (url_escape_dir): Document that this function depends on the
4765         output of url_escape_1.
4766
4767 2003-09-23  Hrvoje Niksic  <hniksic@xemacs.org>
4768
4769         * progress.c (create_image): Print the current ETA if we're done
4770         with the download.
4771         (create_image): Change '-' display char to '+' in the progress bar.
4772
4773         * Makefile.in (clean): Remove .libs.
4774
4775 2003-09-23  Hrvoje Niksic  <hniksic@xemacs.org>
4776
4777         * cookies.c (struct cookie): New flag domain_exact.
4778         (update_cookie_field): Skip leading dot in domain.
4779         (find_matching_chains): Match numeric addresses exactly; don't
4780         needlessly copy HOST to the stack.
4781         (matching_cookie): Added argument HOST.  If cookie->domain_exact
4782         is set, check that HOST is equal to cookie->domain.
4783         (cookie_jar_load): Only use TAB as delimiter.  Document the
4784         meaning of DOMAIN-FLAG.  Skip leading dot in domain.
4785         (cookie_jar_load): Don't ignore DOMAIN-FLAG -- instead, set
4786         domain_exact to true if DOMAIN-FLAG is false.
4787         (save_cookies_mapper): If domain_exact is false, prepend the
4788         domain with dot, like Mozilla does.
4789
4790 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
4791
4792         * progress.c (create_image): Print the initial part of the
4793         download with '-' characters, analogous to how dot progress prints
4794         the initial part with ','.
4795
4796         * hash.c (ptrhash): New function.
4797         (ptrcmp): Ditto.
4798         (hash_table_new): Default to identity hash table.
4799
4800 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
4801
4802         * safe-ctype.h (_sch_test): The cast of BIT to unsigned char was
4803         broken -- _sch_istable bitmasks are 16-bit, not 8-bit!  Cast BIT
4804         to unsigned short instead.
4805
4806 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
4807
4808         * url.c (path_simplify): Instead of calls to memmove, handle "./"
4809         and "../" by advancing pointers.
4810
4811 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
4812
4813         * retr.c (getproxy): Moved from url.c.
4814
4815         * convert.c: Split off link conversion from url.c into separate
4816         file.  Also included the book-keeping stuff from recur.c.
4817
4818 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
4819
4820         * init.c: Improved documentation of functions.
4821         (cmd_boolean): Attempt to make code that tries to avoid calling
4822         strcmp for "speed" a bit more readable.
4823
4824         * init.c (simple_atof): Report error on encountering non-digit,
4825         non-"." character.
4826         (simple_atoi): Replacement for myatoi(), calling interface
4827         compatible with simple_atof.  Updated myatoi's callers.
4828
4829 2003-09-21  Bertrand Demiddelaer  <bert@b3rt.org>
4830
4831         * url.c (path_simplify): Would read two bytes past the end of the
4832         string in the "./" case.
4833
4834 2003-09-21  Matthew J. Mellon  <mellon@tymenet.com>
4835
4836         * http.c (gethttp): Recognize content-type "application/xhtml+xml"
4837         as what Wget considers "text/html".
4838
4839 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
4840
4841         * connect.c (connect_with_timeout): Made timeout type double.
4842
4843         * options.h (struct options): New members read_timeout,
4844         dns_timeout, and connect_timeout.
4845         Use them.
4846
4847 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
4848
4849         * init.c (simple_atof): New function.
4850         (cmd_time): Use it.
4851         (cmd_bytes): Accept things like "1.5k" and such.  Use simple_atof
4852         to parse decimals.
4853
4854         * retr.c (limit_bandwidth): Adjust each sleep by the error of the
4855         previous one.
4856
4857 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
4858
4859         * main.c (main): Use setoptval() for setting the options.  Use
4860         run_command for `-e'.
4861
4862         * init.c (parse_line): Rewritten to return COMIND right away.
4863         Changed linkage to static.
4864         (run_wgetrc): Use the available comind when calling setval, so it
4865         doesn't have to be computed twice.
4866         (setval_internal): New function, runs the command's action without
4867         any error checking.
4868         (setoptval): New function, does what setval used to do, but exits
4869         in case of error.
4870         (run_command): New function.
4871
4872 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
4873
4874         * connect.c (select_fd): Change MAXTIME's type to double.  Handle
4875         its decimal part.
4876
4877         * retr.c (sleep_between_retrievals): In the random-wait case, use
4878         random_float() to wait between 0 and 2*opt.wait seconds.
4879
4880         * utils.c (run_with_timeout): Accept `double' timeouts.  Correctly
4881         handle timeout values in (0, 1) range.
4882         (random_float): New function.
4883
4884         * options.h (struct options): Change the types of wait, waitretry,
4885         and timeout to double.
4886
4887         * init.c (cmd_time): Accept floating point time.
4888
4889 2003-09-20  Hrvoje Niksic  <hniksic@xemacs.org>
4890
4891         * retr.c (get_contents): Cosmetic fixes.
4892
4893 2003-09-20  Hrvoje Niksic  <hniksic@xemacs.org>
4894
4895         * url.c (uri_merge): Get rid of uri_merge_1.
4896         (uri_merge): Merge "foo//", "bar" as "foo//bar", not "foo///bar",
4897         i.e. don't add an extra slash merely because BASE ends with two
4898         slashes.
4899         (parse_credentials): Renamed from parse_uname.  Rewrittern in
4900         standard [beg, end) calling style.
4901         (url_skip_credentials): Renamed from url_skip_uname.  Made static.
4902         (url_skip_credentials): Include # and ; as terminators.  Old code
4903         would mistakenly consider "http://foo.com#hniksic@iskon.hr" to
4904         contain a username.
4905         (url_skip_scheme): Removed because it was unused.
4906         (url_has_scheme): Require "scheme" to be at least one char long.
4907
4908 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
4909
4910         * url.c (url_file_name): Expect NULL dir_prefix.
4911
4912         * init.c (cmd_file): Use a macro to prevent multiple #ifdef
4913         WINDOWS.
4914         (defaults): Set dir_prefix to NULL by default.
4915
4916 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
4917
4918         * safe-ctype.h (_sch_test): Cast BIT to unsigned char, like latest
4919         gcc does.
4920
4921 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
4922
4923         * wget.h (BOUNDED_TO_ALLOCA): Evaluate PLACE only once.
4924         (ARRAY_SIZE): Renamed to countof.  All callers updated.
4925
4926 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
4927
4928         * main.c (main): New option --strict-comments.
4929
4930         * html-parse.c (find_comment_end): New function: simple BM search
4931         for "-->".
4932         (map_html_tags): Use it if looking at a comment and not in strict
4933         comments mode.
4934
4935 2003-09-17  Aurelien Marchand  <artaxerxes@users.sf.net>
4936
4937         * ftp.h: Added OS400 system in enum
4938         * ftp-basic.c: recognize OS400 systems
4939         * ftp.c: don't prepend the CWD if talking to OS400, since it
4940         breaks the change in library
4941
4942 2003-09-18  Hrvoje Niksic  <hniksic@xemacs.org>
4943
4944         * retr.c (get_contents): Pass the correct argument to ssl_iread.
4945
4946 2003-09-18  Hrvoje Niksic  <hniksic@xemacs.org>
4947
4948         * safe-ctype.h: Don't #define ctype.h macros to errors because
4949         that loses when someone #include's ctype.h after safe-ctype.h.
4950
4951 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
4952
4953         * url.c: Undef U, W, C after use.
4954
4955 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
4956
4957         * init.c (cmd_spec_restrict_file_names): Allow the OS setting to
4958         be augmented by ",nocontrol" which means don't escape the control
4959         characters, but otherwise keep OS settings.
4960
4961         * url.c (file_unsafe_char): Deleted.
4962         (append_uri_pathel): Query filechr_table directly.
4963         (filechr_table): Separated Unix, Windows, and control-unsafe
4964         characters.
4965
4966 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
4967
4968         * url.c (url_escape_1): New function.
4969         (url_escape): Use it.
4970         (sync_path): Handle pathological cases where u->file and u->dir
4971         contain really strange characters.
4972         (ENCODE): Deleted.
4973         (REENCODE): Deleted.
4974
4975 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
4976
4977         * url.c (url_file_name): Don't reallocate FNAME if the file
4978         doesn't exist, as is usually the case.
4979
4980         * utils.c (unique_name): New flag allow_passthrough.
4981
4982 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
4983
4984         * utils.c (wtimer_sys_diff): Convert the time difference to signed
4985         __int64, then to double.  This works around MS VC++ 6 which can't
4986         convert unsigned __int64 to double directly.
4987
4988 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
4989
4990         * Makefile.in (clean): Also remove the core.<number> files
4991         produced by recent Linux systems.
4992
4993 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
4994
4995         * http.c (post_file): Don't pad the file if it's not large
4996         enough.  Bail out instead.
4997
4998 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
4999
5000         * retr.c (get_contents): Reduce the buffer size to the amount of
5001         data that may pass through for one second.  This prevents long
5002         sleeps when limiting bandwidth.
5003
5004         * connect.c (connect_to_one): Reduce the socket's RCVBUF when
5005         bandwidth limitation to small values is requested.
5006
5007 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5008
5009         * progress.c (update_speed_ring): Moved the speed ring update to a
5010         separate function and documented it better.
5011
5012         * progress.c: Use `double' for most timers to support granularity
5013         smaller than 1ms.
5014
5015 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5016
5017         * wget.h (XDIGIT_TO_XCHAR): Implement as index into a literal
5018         string.
5019         (XDIGIT_TO_xchar): Ditto.
5020
5021 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5022
5023         * utils.c: Change the type of timer-related functions from long to
5024         double, for better precision.  On machines supporting gettimeofday
5025         the timers now work with granularity of less than one millisecond.
5026
5027 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5028
5029         * cookies.c (parse_set_cookies): Fixed the parser to handle more
5030         edge conditions.
5031         (test_cookies): New function, contains a test suite for
5032         parse_set_cookies.
5033
5034 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5035
5036         * url.c (strpbrk_or_eos): Implement as a macro under Gcc.
5037
5038 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5039
5040         * cookies.c (parse_set_cookies): Allow trailing space in
5041         set-cookies header.  Also, allow any amount of whitespace, not
5042         only one character.  Allow empty set-cookies header without
5043         spewing an error.
5044
5045 2003-09-14  Hrvoje Niksic  <hniksic@xemacs.org>
5046
5047         * url.c (append_uri_pathel): Use opt.restrict_file_names when
5048         calling file_unsafe_char.
5049
5050         * init.c: New command restrict_file_names.
5051
5052         * main.c (main): New option --restrict-file-names[=windows,unix].
5053
5054         * url.c (url_file_name): Renamed from url_filename.
5055         (url_file_name): Add directory and hostdir prefix here, not in
5056         mkstruct.
5057         (append_dir_structure): New function, does part of the work that
5058         used to be in mkstruct.  Iterates over path elements in u->path,
5059         calling append_uri_pathel on each one to append it to the file
5060         name.
5061         (append_uri_pathel): URL-unescape a path element and reencode it
5062         with a different set of rules, more appropriate for handling of
5063         files.
5064         (file_unsafe_char): New function, uses a lookup table to decide
5065         whether a character should be escaped for use in file name.
5066         (append_string): New utility function.
5067         (append_char): Ditto.
5068         (file_unsafe_char): New argument restrict_for_windows, decide
5069         whether Windows file names should be escaped in run-time.
5070
5071         * connect.c: Include <stdlib.h> to get prototype for abort().
5072
5073 2003-09-14  Hrvoje Niksic  <hniksic@xemacs.org>
5074
5075         * utils.c (wtimer_sys_set): Extracted the code that sets the
5076         current time here.
5077         (wtimer_reset): Call it.
5078         (wtimer_sys_diff): Extracted the code that calculates the
5079         difference between two system times here.
5080         (wtimer_elapsed): Call it.
5081         (wtimer_elapsed): Don't return a value smaller than the previous
5082         one, which could previously happen when system time is set back.
5083         Instead, reset start time to current time and note the elapsed
5084         offset for future calculations.  The returned times are now
5085         guaranteed to be monotonically nondecreasing.
5086
5087 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
5088
5089         * host.c (lookup_host): Print the result of the DNS lookup.
5090
5091 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
5092
5093         * init.c (cmd_boolean): Accept yes/no along with on/off.
5094         (cmd_lockable_boolean): Ditto.
5095
5096 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
5097
5098         * init.c: New command dns_cache.
5099
5100         * main.c (main): New option --dns-cache[=off].
5101
5102 2003-09-09  Hrvoje Niksic  <hniksic@xemacs.org>
5103
5104         * config.h.in: Initialize HAVE_GETADDRINFO and ENABLE_IPV6.
5105
5106         * all: Use #ifdef ENABLE_IPV6 instead of the older INET6.  Use
5107         HAVE_GETADDRINFO for getaddrinfo-related stuff.
5108
5109 2003-09-09  Hrvoje Niksic  <hniksic@xemacs.org>
5110
5111         * url.c (url_parse): Return an error if the URL contains a [...]
5112         IPv6 numeric address and we don't support IPv6.
5113
5114 2003-09-05  Hrvoje Niksic  <hniksic@xemacs.org>
5115
5116         * url.c (is_valid_ipv6_address): Modified to not require
5117         zero-terminated strings.
5118         (is_valid_ipv4_address): Ditto.
5119
5120 2003-09-05  Mauro Tortonesi <mauro@deepspace6.net>
5121
5122         src/url.c: added RFC 2732 compliance for URL parsing. The
5123         functions is_*_address valid are a modified version of
5124         glibc 2.3.2 inet_pton's code.
5125
5126 2003-09-03  Ahmon Dancy  <dancy@dancysoft.com>
5127
5128         * main.c init.c options.h: Added --retry-connrefused option so
5129         that Connection Refused failures are treated as non-fatal (when
5130         trying to retrieve from busy servers).
5131
5132         * wget.h: New CONNECT_ERROR macro for encapsulating this
5133         modification.
5134
5135         * ftp.c http.c : Use CONNECT_ERROR macro in places where
5136         ECONNREFUSED was checked.
5137
5138 2003-01-11  Ian Abbott  <abbotti@mev.co.uk>
5139
5140         * ftp.c (ftp_retrieve_glob): Reject insecure filenames as determined
5141         by calling new function has_insecure_name_p.  This is based on a
5142         patch by Red Hat.
5143
5144         * fnmatch.c (has_insecure_name_p): New function: returns non-zero
5145         if filename starts with `/' or contains `../' and is therefore
5146         considered insecure.
5147
5148         * fnmatch.h: Declare has_insecure_name_p().
5149
5150 2002-08-03  Hrvoje Niksic  <hniksic@xemacs.org>
5151
5152         * init.c (cmd_file): Allocate RESULT correctly.
5153
5154 2002-07-24  Hrvoje Niksic  <hniksic@xemacs.org>
5155
5156         * recur.c (retrieve_tree): Check whether downloaded_html_set is
5157         non-NULL before using it.
5158
5159 2002-05-27  Hrvoje Niksic  <hniksic@arsdigita.com>
5160
5161         * html-parse.c (NAME_CHAR_P): Allow almost any character here.
5162
5163 2002-05-24  Hrvoje Niksic  <hniksic@arsdigita.com>
5164
5165         * progress.c (bar_set_params): Fall back to dot progress if the
5166         terminal type is "emacs".
5167
5168 2002-05-20  Hrvoje Niksic  <hniksic@arsdigita.com>
5169
5170         * log.c: Don't #undef WGET_USE_STDARG.
5171
5172 2002-05-16  Hrvoje Niksic  <hniksic@arsdigita.com>
5173
5174         * hash.c (prime_size): Store the offset of the prime number in the
5175         prime table.  When searching, start with the given offset.
5176         (hash_table_new): Pass the pointer to ht->prime_offset to
5177         prime_size.
5178         (grow_hash_table): Ditto.
5179         (prime_size): Make 13 the first prime to make empty hash tables
5180         slightly smaller.
5181
5182 2002-05-16  Ian Abbott  <abbotti@mev.co.uk>
5183
5184         * recur.c (download_child_p): Minor optimization to avoid an
5185         unnecessary additional call to schemes_are_similar_p function.
5186
5187 2002-05-16  Ian Abbott  <abbotti@mev.co.uk>
5188
5189         * url.c (schemes_are_similar_p): New function to test enumerated
5190         scheme codes for similarity.
5191
5192         * url.h: Declare it.
5193
5194         * recur.c (download_child_p): Use it to compare schemes.  This
5195         also fixes a bug that allows hosts to be spanned (without the
5196         -H option) when the parent scheme is https and the child's is
5197         http or vice versa.
5198
5199 2002-05-14  Bill Richardson  <bill@riverstonenet.com>
5200
5201         * ftp.c (getftp): Don't ftruncate stdout.
5202
5203         * http.c (gethttp): Don't ftruncate stdout.
5204
5205 2002-05-09  Ian Abbott  <abbotti@mev.co.uk>
5206
5207         * cmpt.c (strptime_internal): Synched with glibc-2.1.3.
5208         (get_number): Ditto.
5209         (get_alt_number): Ditto.
5210         (__isleap): New function-like macro used by strptime.
5211         (day_of_the_week): New function used by strptime.
5212         (day_of_the_year): Ditto.
5213         (__mon_yday): Now shared by mktime and strptime implementations.
5214
5215 2002-05-08  Hrvoje Niksic  <hniksic@arsdigita.com>
5216
5217         * cookies.c (check_domain_match): Use match_tail in case
5218         insensitive mode.
5219
5220         * utils.c (match_tail): Allow the caller to specify case
5221         insensitive mode.
5222
5223         * cookies.c (store_cookie): When expiry_time is 0, print it as
5224         undefined, not indefinite.
5225
5226 2002-05-07  Ian Abbott  <abbotti@mev.co.uk>
5227
5228         * cookies.c (cookie_jar_process_set_cookie): Do not store
5229         discarded cookie.
5230
5231 2002-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
5232
5233         * cookies.c (check_domain_match): Allow cookies to be set for
5234         subdomains of unknown top-level domains under some circumstances.
5235
5236 2002-04-21  Thomas Lussnig  <thomas.lussnig@bewegungsmelder.de>
5237
5238         * gen_ssl.c:
5239         - allow checking of server cert
5240         - allow defining client cert type
5241         - allow limit of ssl protocol
5242         - check more return values
5243         - added debug message on break
5244
5245 2002-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
5246
5247         * recur.c (download_child_p): Revert order of items in check
5248         number 6 for clarity.
5249
5250 2002-04-20  Hrvoje Niksic  <hniksic@arsdigita.com>
5251
5252         * init.c: Ditto.
5253
5254         * main.c: Ditto.
5255
5256         * http.c: Use the new interface.
5257
5258         * cookies.c: Provide an OO-style "cookie jar" interface to enable
5259         separate cookie jars.
5260
5261         * http.c (http_atotm): Declare argument as const.
5262
5263 2002-04-20  Hrvoje Niksic  <hniksic@arsdigita.com>
5264
5265         * cookies.c (cookie_new): Default to PORT_ANY.
5266         (find_cookie_chain_exact): Only search by DOMAIN.
5267         (find_matching_cookie): Also check that PORT matches.
5268         (store_cookie): Only match the domain.
5269         (set_cookie_header_cb): When a cookie "fakes" a domain, assume it
5270         is valid for that host rather than discarding it completely.
5271         (find_matching_chains): Don't search by PORT.
5272         (matching_cookie): Also match PORT.
5273         (load_cookies): Set the port if specified, otherwise leave it as
5274         ANY.
5275         (save_cookies_mapper): Save the port if specified, otherwise leave
5276         it empty.
5277
5278 2002-04-19  Thomas Lussnig  <thomas.lussnig@bewegungsmelder.de>
5279
5280         * init.c: The option `egdfile' was not in sort order.
5281
5282 2002-04-16  Hrvoje Niksic  <hniksic@arsdigita.com>
5283
5284         * ftp.c (getftp): Treat directories that begin with <letter>: as
5285         absolute.
5286         (getftp): Strip trailing slashes from con->id before merging it
5287         with TARGET.
5288
5289 2002-04-16  Hrvoje Niksic  <hniksic@arsdigita.com>
5290
5291         * http.c (gethttp): If Content-Type is not given, assume
5292         text/html.
5293
5294 2002-04-15  Hrvoje Niksic  <hniksic@arsdigita.com>
5295
5296         * recur.c (download_child_p): Don't ignore rejection of HTML
5297         documents that are themselves leaves of recursion.
5298
5299 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
5300
5301         Makefile.in: Updated several dependencies for object files to take
5302         account of nested include files.
5303
5304 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
5305
5306         Makefile.in: The target `connect$o' (connect.o) now depends on
5307         `utils.h'
5308
5309 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
5310
5311         * host.c (SET_H_ERRNO): New function-like macro to set `h_errno'.
5312         (gethostbyname_with_timeout): Use it.
5313
5314         * utils.c: Don't define `SETJMP()', `run_with_timeout_env' or
5315         `abort_run_with_timeout()' when `USE_SIGNAL_TIMEOUT' is undefined.
5316
5317 2002-04-15  Hrvoje Niksic  <hniksic@arsdigita.com>
5318
5319         * host.c (getaddrinfo_with_timeout): New function.
5320         (gethostbyname_with_timeout): Ditto.
5321         (lookup_host): Use them.
5322
5323 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5324
5325         * utils.c (number_to_string): Handle the case when n < -INT_MAX.
5326
5327 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5328
5329         * init.c (comind): Use a marginally faster implementation of
5330         binary search.  To quote Martin Buchholz, "a nanosecond saved is a
5331         nanosecond earned."
5332
5333 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5334
5335         * main.c (print_help): Document `--post-data' and `--post-file'.
5336
5337 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5338
5339         * http.c (gethttp): Ditto.
5340
5341         * retr.c (retrieve_url): Initialize variables to appease the
5342         compiler.
5343
5344         * gen_sslfunc.c (ssl_iread): Don't handle EINTR when calling
5345         select_fd.
5346         (ssl_iwrite): Ditto.
5347
5348         * connect.c (select_fd): Rewrite to handle EINTR.  Set errno to
5349         ETIMEDOUT in case of timeout.
5350         (iread): No need to handle EINTR when calling select_fd.
5351         (iwrite): Ditto.
5352
5353 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5354
5355         * retr.c (retrieve_url): Make sure that POST is not honored for
5356         redirections.
5357
5358         * http.c (gethttp): Send the POST data when requested.
5359         (post_file): New function.
5360         (gethttp): Use it.
5361
5362         * main.c (main): Ditto.
5363
5364         * init.c: Add new options.
5365
5366         * options.h (struct options): New options post_data and
5367         post_file_name.
5368
5369 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5370
5371         * connect.c (connect_with_timeout): Firing SIGALRM can result in
5372         connect() exiting with EINTR.  Treat EINTR the same as ETIMEDOUT.
5373
5374 2002-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
5375
5376         * connect.c (connect_with_timeout): Use it.
5377
5378         * utils.c (run_with_timeout): New function.
5379
5380 2002-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
5381
5382         * url.c (getproxy): Accept a struct url argument.  This obviates
5383         the need for USE_PROXY_P.
5384
5385         * retr.c (retrieve_url): Allow proxy to be a non-FTP URL.
5386
5387         * ftp.c (getftp): Recognize FWTK-style proxy.
5388
5389 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
5390
5391         * config.h.in: Only define _VA_LIST when compiled with gcc.
5392
5393 2002-04012  Ian Abbott  <abbotti@mev.co.uk>
5394
5395         * http.c (http_loop): Compensate for MS Windows two-second
5396         granularity of file modification time when comparing timestamps.
5397
5398         * ftp.c (ftp_retrieve_list): Ditto.
5399
5400 2002-04-12  Ian Abbott  <abbotti@mev.co.uk>
5401
5402         * utils.c (has_html_suffix_p): New function to test filename for
5403         common html extensions.
5404
5405         * utils.h: Declare it.
5406
5407         * http.c (http_loop): Use it instead of previous test.
5408
5409         * retr.c (retrieve_url): Ditto.
5410
5411         * recur.c (download_child_p): Ditto.
5412
5413 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
5414
5415         * config.h.in: Define _VA_LIST on Solaris to prevent stdio.h from
5416         declaring va_list.
5417         From Kevin Rodgers <kevinr@ihs.com>.
5418
5419 2002-04-12  Ian Abbott  <abbotti@mev.co.uk>
5420
5421         * Makefile.in: Specify libtool mode explicitly when linking.
5422
5423 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
5424
5425         * connect.c (connect_with_timeout): New function.
5426         (connect_to_one): Use it.
5427
5428         * config.h.in: Add stubs for HAVE_SIGSETJMP, HAVE_SIGBLOCK, and
5429         HAVE_SETJMP_H.
5430
5431 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5432
5433         * log.c: Set WGET_USE_STDARG if __STDC__ is defined and stdarg.h
5434         is present.
5435
5436 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5437
5438         * progress.c (bar_create): If INITIAL is larger than TOTAL, fix
5439         TOTAL.
5440         (bar_finish): Likewise.
5441
5442 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5443
5444         * html-url.c (tag_handle_form): New function.  Pick up form
5445         actions and mark them for conversion only.
5446
5447 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5448
5449         * progress.c (struct progress_implementation): Use PARAMS when
5450         declaring the parameters of *create, *update, *finish, and
5451         *set_params.
5452
5453         * netrc.c: Ditto.
5454
5455         * http.c: Reformat some function definitions so that ansi2knr can
5456         read them.
5457
5458         * hash.c (struct hash_table): Use the PARAMS macro around
5459         parameters in the declaration of hash_function and test_function.
5460         (prime_size): Spell 2580823717UL and 3355070839UL as (unsigned
5461         long)0x99d43ea5 and (unsigned long)0xc7fa5177 respectively, so
5462         that pre-ANSI compilers can read them.
5463         (find_mapping): Use PARAMS when declaring EQUALS.
5464         (hash_table_put): Ditto.
5465
5466         * ftp.h: Wrap the parameters of ftp_index declaration in PARAMS.
5467
5468         * cookies.c (cookie_new): Use (unsigned long)0 instead of 0UL,
5469         which was unsupported by pre-ANSI compilers.
5470
5471         From Nelson H. F. Beebe <beebe@math.utah.edu>, for the most part.
5472
5473 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5474
5475         * url.c (url_filename): Use compose_file_name regardless of
5476         whether opt.dirstruct is set.
5477         (mkstruct): Don't handle the query and the reencoding of DIR; that
5478         is done in compose_file_name.
5479
5480 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
5481
5482         * wget.h: Ditto for extern char *exec_name.
5483
5484         * options.h: Don't guard against OPTIONS_DEFINED_HERE -- it is
5485         perfectly legal to follow an `extern' with a non-`extern' ones,
5486         provided the types match.
5487
5488         * main.c: Don't define OPTIONS_DEFINED_HERE.
5489
5490 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
5491
5492         * progress.c (create_image): Revert to calculating ETA based on
5493         average download speed.
5494         (create_image): Don't print ETA until the download has been active
5495         for at least 3 seconds.
5496         (create_image): When ETA is not available, don't print anything.
5497         The previous version would print --:--.
5498
5499 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
5500
5501         * progress.c (bar_update): Keep updating a subinterval until it
5502         reaches or exceeds a watermark.  That way the measurement will be
5503         guaranteed to span a configurable minimum of time.  The current
5504         default is 3s in 30 100ms intervals.
5505
5506 2002-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
5507
5508         * progress.c (bar_update): Maintain an array of the time it took
5509         to perform previous 30 network reads.
5510         (create_image): Calculate the download speed and ETA based on the
5511         last 30 reads, not the entire download.
5512         (create_image): Make sure that the ETA is not changed more than
5513         once per second.
5514
5515 2002-04-09  Ian Abbott  <abbotti@mev.co.uk>
5516
5517         * mswindows.c (borland_utime): New function conditionally defined
5518         when `HACK_BCC_UTIME_BUG' is defined.  A reimplementation of
5519         `utime()' as Borland's `utime()' function is broken on Windows 9x
5520         systems.  (Original patch by Chin-yuan Kuo <sr1111111@yahoo.com.tw>.)
5521
5522 2002-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
5523
5524         * ftp.c (ftp_loop): Propagate the result of ftp_retrieve_glob.
5525
5526 2002-03-26  Ian Abbott  <abbotti@mev.co.uk>
5527
5528         * Makefile.in: Updated several dependencies for object files.
5529
5530 2002-03-20  Ian Abbott  <abbotti@mev.co.uk>
5531
5532         * mswindows.c: Include "utils.h".
5533
5534 2002-03-18  Ian Abbott  <abbotti@mev.co.uk>
5535
5536         * host.h: Don't include netdb.h on windows.
5537
5538 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
5539
5540         * recur.c (retrieve_tree): Handle the case when start_url doesn't
5541         parse.
5542
5543 2002-02-19  Andreas Damm  <andreas-sourceforge@radab.org>
5544
5545         * wget.h (DO_REALLOC_FROM_ALLOCA): Multiply with sizeof(type) when
5546         calling xmalloc and memcpy.
5547
5548 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
5549
5550         * host.h: Include Unix-specific includes #ifndef WINDOWS.
5551         Patch originally provided by Christian Lackas.
5552
5553 2002-02-11  Christian Lackas  <delta@lackas.net>
5554
5555         * recur.c: recurive downloading for https fixed.
5556
5557 2002-02-19  Alan Eldridge  <alane@geeksrus.net>
5558
5559         * host.h: Also include <netinet/in.h> and <sys/socket.h>.
5560
5561         * ftp-basic.c: Also include <netinet/in.h>.
5562
5563 2002-02-05  Ian Abbott  <abbotti@mev.co.uk>
5564
5565         * http.c (gethttp): when -c used, mark already fully retrieved
5566         file as successfully retrieved.
5567
5568 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
5569
5570         * url.c (url_parse): Don't treat '?' as query string separator
5571         when parsing FTP URLs.
5572
5573 2002-02-01  Hrvoje Niksic  <hniksic@arsdigita.com>
5574
5575         * html-url.c (tag_handle_meta): Don't crash on <meta
5576         http-equiv=refresh> where content is missing.
5577
5578 2002-01-31  Herold Heiko  <Heiko.Herold@previnet.it>
5579
5580         * ftp-basic.c, host.c: don't include sys/socket.h, arpa/inet.h,
5581         netdb.h on windows.
5582
5583 2002-01-30  Hrvoje Niksic  <hniksic@arsdigita.com>
5584
5585         * retr.c (retrieve_url): Remove redirection cycle detection.  This
5586         is because some sites legitimately redirect the user back to the
5587         same location, e.g. after an authorization check performed by
5588         another page.  MAX_REDIRECTIONS is still used to prevent infinite
5589         redirection loops.
5590
5591 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
5592
5593         * http.c (gethttp): Wrap host name in square brackets if it
5594         contains a colon.
5595
5596 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
5597
5598         * url.c (url_parse): Allow all hex digits, not only decimal ones,
5599         to form an IP address.
5600
5601 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
5602
5603         * url.c (urlchr_table): Make square braces reserved, so we can
5604         parse http://[::1]/.
5605         (url_parse): Handle host in braces.
5606         (url_string): If url->host contains colons, wrap it in braces.
5607
5608 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
5609
5610         * connect.c (resolve_bind_address): New function.
5611         (connect_to_one): Use it.
5612         (bindport): Ditto.
5613
5614         * init.c: Don't resolve bind-address here.
5615
5616         * host.c (wget_sockaddr_set_address): Would bug out with ADDR == NULL.
5617
5618 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
5619
5620         * host.c (lookup_host): Use sizeof(ip4_address) to calculate the
5621         offset.
5622         (address_list_new): Use map_ipv4_to_ip.
5623         (wget_sockaddr_set_address): Convert ADDR to IPv4 before using it
5624         in IPv4 context.
5625
5626 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
5627
5628         * source: Integrated IPv6 support.
5629         Written by Thomas Lussnig <thomas.lussnig@bewegungsmelder.de>.
5630
5631 2002-01-15  Ian Abbott  <abbotti@mev.co.uk>
5632
5633         * init.c (cmd_file): Change `\' to `/' for Windows (yes, really!)
5634         (cmd_directory): New function. Like cmd_file(), but strips
5635         trailing directory separators.
5636         (commands): Change action for "dirprefix" from `cmd_file' to
5637         `cmd_directory'.
5638
5639         * utils.c (make_directory): Allow intermediate `mkdir' calls to
5640         fail, as not all path components that do not exist should be
5641         directory components, especially under Windows.
5642
5643 2002-01-17  Hrvoje Niksic  <hniksic@arsdigita.com>
5644
5645         * netrc.c (parse_netrc): Skip leading whitespace before testing
5646         whether the line is empty.  Empty lines still contain the line
5647         terminator.
5648
5649 2002-01-15  Hrvoje Niksic  <hniksic@arsdigita.com>
5650
5651         * gen_sslfunc.c (ssl_iread): Call select on the file descriptor
5652         only if no data is pending in SSL buffers.
5653         From tony@bluetail.com.
5654
5655 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5656
5657         * headers.c (header_get): Strip trailing whitespace from the
5658         header.
5659
5660 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5661
5662         * url.c (parse_uname): URL-decode *USER and *PASSWD.
5663
5664 2002-01-07  Ian Abbott <abbotti@mev.co.uk>
5665
5666         * url.c (uri_merge_1): Deal with "net path" relative URL (one that
5667         starts with "//").
5668
5669 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5670
5671         * http.c (gethttp): Invalidate SOCK if get_contents encountered an
5672         error.
5673
5674 2001-12-24  Hrvoje Niksic  <hniksic@arsdigita.com>
5675
5676         * version.c: Wget 1.8.1 is released.
5677
5678 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
5679
5680         * version.c: Wget 1.8.1-pre3 is released.
5681
5682 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
5683
5684         * recur.c (retrieve_tree): Enqueue the canonical representation of
5685         start_url, so that the test against dl_url_file_map works.
5686
5687 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
5688
5689         * log.c (logputs): Check for requested verbosity before printing
5690         anything.
5691
5692 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
5693
5694         * html-url.c (tag_handle_link): Treat the "shortcut icon" link as
5695         inline.
5696
5697 2001-12-18  Hrvoje Niksic  <hniksic@arsdigita.com>
5698
5699         * recur.c (retrieve_tree): Make a copy of file obtained from
5700         dl_url_file_map because the code calls xfree(file) later.
5701
5702 2001-12-18  Hrvoje Niksic  <hniksic@arsdigita.com>
5703
5704         * recur.c (register_html): Maintain a hash table of HTML files
5705         along with the list.  Disallow duplicates.
5706         (retrieve_tree): Use downloaded_html_set to check whether the file
5707         found in dl_url_file_map is an HTML file, and descend into it if
5708         so.
5709         (convert_all_links): Don't guard against duplicates in
5710         downloaded_html_list, since they are no longer possible.
5711
5712 2001-12-18  Ian Abbott  <abbotti@mev.co.uk>
5713
5714         * recur.c (retrieve_tree): Pass on referring URL when retrieving
5715         recursed URL.
5716
5717 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
5718
5719         * version.c: Wget 1.8.1-pre2 is released.
5720
5721 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
5722
5723         * retr.c (sleep_between_retrievals): Simplify indentation.
5724
5725 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
5726
5727         * gen_sslfunc.c (ssl_init_prng): Use random_number to get a byte
5728         of "randomness" at a time.
5729         (ssl_init_prng): Don't seed the PRNG; random_number will do that.
5730
5731         * retr.c (sleep_between_retrievals): Use it.  Make sure that the
5732         random amount averages in opt.wait.
5733         (sleep_between_retrievals): Don't seed the PRNG; random_number
5734         will do that.
5735
5736         * utils.c (random_number): New function.
5737
5738 2001-12-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5739
5740         * url.c (path_simplify): Move here from utils.c, and make static.
5741
5742 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
5743
5744         * init.c (wgetrc_file_name): Print correct message when loading
5745         getenv("WGETRC") fails.
5746
5747 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
5748
5749         * recur.c (register_download): Don't abort when one URL references
5750         two different files.
5751
5752 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
5753
5754         * http.c (gethttp): Check for conn->scheme, not u->scheme, before
5755         calling ssl_iwrite.
5756
5757 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
5758
5759         * version.c: Wget 1.8.1-pre1 is released.
5760
5761 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
5762
5763         * res.c (matches): Fix broken URL in the docstring.
5764
5765 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
5766
5767         * html-url.c (tag_url_attributes): Mark <embed href=...> as
5768         external.
5769
5770 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
5771
5772         * url.c (get_urls_file): Cosmetic changes.
5773
5774 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
5775
5776         * html-url.c (append_one_url): Resurrect warning when unable to
5777         resolve a relative link.
5778
5779 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
5780
5781         * html-url.c (collect_tags_mapper): Break into several functions.
5782         (tag_url_attributes): Collect <embed href=...>.
5783
5784 2001-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5785
5786         * host.c: New type ipv4_address.  Use it consistently instead of
5787         `unsigned char[4]' and `unsigned char *'.
5788         (pretty_print_address): Accept a `const void *', to require even
5789         less casting.
5790
5791 2001-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5792
5793         * ftp-ls.c (ftp_parse_vms_ls): Fix obvious memory leaks.
5794
5795 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
5796
5797         * main.c (main): Initialize progress after fork_to_background, so
5798         that it knows when to use dots.
5799
5800         * mswindows.c (ws_hangup): Call log_request_redirect_output.
5801
5802         * utils.c (fork_to_background): Print the PID of the child
5803         process.
5804
5805         * log.c (log_request_redirect_output): Set a flag that output
5806         redirection has been requested.  Doing anything else in a signal
5807         handler is unsafe.
5808         (check_redirect_output): New function: check whether redirection
5809         has been requested and, if so, call redirect_output().
5810         (logputs): Call check_redirect_output.
5811         (logprintf): Ditto.
5812         (debug_logprintf): Ditto.
5813         (redirect_output): Print clearer messages.
5814
5815         * main.c (redirect_output_signal): Don't call
5816         redirect_output_signal directly.  Instead, call
5817         log_request_redirect_output.
5818
5819         * utils.c (memfatal): Ditto.
5820
5821         * progress.c (display_image): Use it.
5822
5823         * log.c (log_set_save_context): New function: allow the caller to
5824         turn off saving log context lines.
5825
5826 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
5827
5828         * host.c (address_list_set_faulty): Uncomment a sanity check.
5829
5830 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
5831
5832         * utils.c (long_to_string): Return a pointer after where the
5833         number ends.
5834         (long_to_string): Rename to number_to_string.
5835
5836 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
5837
5838         * utils.c (path_simplify): Correctly handle the unlikely case that
5839         b starts out as path + 1.
5840
5841 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
5842
5843         * utils.c (path_simplify): Rewrite, with better comments, and
5844         without the use of strcpy to move overlapping blocks.
5845
5846 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
5847
5848         * init.c (cmd_spec_progress): Resurrect.  Check whether VAL is a
5849         valid progress type before setting it.
5850
5851 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
5852
5853         * main.c (main): Remove stray debugging message.
5854
5855 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
5856
5857         * progress.c (create_image): Fix ETA padding when hours are prined.
5858
5859 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
5860
5861         * version.c: Wget 1.8 is released.
5862
5863 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
5864
5865         * url.c (reencode_string): Declare static.
5866
5867         * res.c (registered_specs): Declare static.
5868
5869         * progress.c (current_impl_locked): Declare static.
5870
5871         * log.c (flush_log_p): Declare static.
5872         (needs_flushing): Ditto.
5873
5874         * http.c (digest_authentication_encode): Declare static.
5875
5876         * html-url.c (init_interesting): Declare static.
5877
5878         * host.c (host_name_addresses_map): Declare static.
5879
5880         * cookies.c (find_matching_chains): Declare static.
5881
5882         * ftp-ls.c (ftp_parse_vms_ls): Warn about the memory leak
5883         indicated by lint.
5884
5885         * utils.c (path_simplify): Remove unused variable STUB_CHAR.
5886
5887         * host.c (address_list_set_faulty): Document that INDEX is
5888         currently unused.
5889
5890         * url.c (rewrite_shorthand_url): Remove unused variable PATH.
5891
5892 2001-12-08  Hrvoje Niksic  <hniksic@arsdigita.com>
5893
5894         * version.c: Wget 1.8-pre2 is released.
5895
5896 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
5897
5898         * progress.c (progress_handle_sigwinch): Set up the signal again.
5899
5900         * utils.c: Include <sys/termios.h>, where Solaris defines
5901         TIOCGWINSZ.
5902
5903         * progress.c (bar_create): Don't use the last column on the screen.
5904         (create_image): Pad ETA to constant size.  Pad SIZE to nine digits
5905         only until it exceeded them.
5906
5907 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
5908
5909         * version.c: Wget 1.8-pre1 is released.
5910
5911 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
5912
5913         * progress.c (progress_create): Make sure that, when the output is
5914         redirected, the progress implementation gets changed to the
5915         fallback one.
5916         (bar_set_params): Set current_impl_locked to 1 when "force" is
5917         specified.
5918         (progress_create): Don't change the progress implementation if
5919         current_impl_locked is non-zero.
5920
5921         * main.c (redirect_output_signal): Call
5922         progress_schedule_redirect.
5923
5924         * progress.c (progress_schedule_redirect): New function.
5925
5926 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
5927
5928         * log.c (logvprintf): Restructure to allow being called multiple
5929         times.
5930         (logprintf): Call logvprintf in a loop.
5931         (debug_logprintf): Ditto.
5932
5933 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
5934
5935         * gen_sslfunc.c (ssl_init_prng): Allow the user to disable EGD by
5936         setting egd_file it to empty string.
5937
5938         * main.c (main): Change the option name from --sslegdsock to
5939         --egd-file.
5940
5941 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
5942
5943         * gen_sslfunc.c (ssl_init_prng): Make the printed message
5944         translatable.
5945
5946 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
5947
5948         * url.c (scheme_disable): New function.
5949
5950         * main.c (main): Call ssl_init_prng from here rather than from
5951         init_ssl, so that it has a chance to disable support for https
5952         before a URL has been resolved.
5953
5954         * gen_sslfunc.c (ssl_init_prng): Seed with rand() if all else
5955         failed.
5956         (ssl_init_prng): Disable support for https if seeding the PRNG
5957         fails.
5958
5959 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
5960
5961         * utils.c (read_whole_line): Handle lines beginning with \0.
5962
5963 2001-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
5964
5965         * recur.c (convert_all_links): Guard against duplicates in
5966         downloaded_html_files.
5967         (register_download): Don't invalidate similar-looking URLs.
5968         (match_except_index): New function.
5969
5970 2001-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
5971
5972         * utils.c (path_simplify): Document with test cases.
5973
5974 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
5975
5976         * gen_sslfunc.c: Ditto.
5977
5978         * rbuf.c: Include <string.h>.
5979
5980 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
5981
5982         * recur.c (retrieve_tree): Check whether the URL was already
5983         downloaded before downloading it again.
5984         (descend_child_p): Renamed to download_child_p.
5985         (register_download): When one URL is downloaded to a file already
5986         "owned" by another URL, delete all references that map any URL to
5987         that file.
5988         (register_delete_file): New function.
5989         (retrieve_tree): Use it after deleting a file.
5990
5991         * url.c (url_parse): Re-canonicalize the URL also if the path is
5992         empty, so that e.g. "http://www.server.com" ->
5993         "http://www.server.com/".
5994         (lowercase_str): Use ISUPPER instead of !ISLOWER.
5995
5996         * retr.c (retrieve_url): Use the canonical URL form when calling
5997         register_download().
5998
5999 2001-12-04  Ian Abbott <abbotti@mev.co.uk>
6000
6001         * snprintf.c (dopr): Use `unsigned int' as the second argument to
6002         va_arg when casting to `unsigned short' is intended.
6003
6004 2001-12-04  Herold Heiko  <Heiko.Herold@previnet.it>
6005
6006         * gen_sslfunc.c: on windows provide ssl crypto random 
6007           initialization through RAND_screen(); could possibly
6008           be not enough for strong ssl communication (see the 
6009           relevant manual page from the openssl package).
6010
6011 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
6012
6013         * url.c (local_quote_string): Reenable quoting of question marks,
6014         but only when `--html-extension' is used.
6015
6016 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
6017
6018         * version.c: Wget 1.8-beta3 is released.
6019
6020 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
6021
6022         * snprintf.c (dopr): Cast the result of va_arg to short int and
6023         short unsigned int where these types are expected to be used.
6024
6025 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
6026
6027         * snprintf.c (dopr): Replace `short int' and `unsigned short int'
6028         with `int' when using it as the second argument to `va_arg'.
6029
6030 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
6031
6032         * host.c (address_list_new_one): New function.
6033         (lookup_host): Use it.
6034
6035 2001-12-03  Andre Majorel  <amajorel@teaser.fr>
6036
6037         * host.c (lookup_host): Don't initialize TMPSTORE directly because
6038         it's not legal C.
6039
6040 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
6041
6042         * ftp-basic.c (ftp_port): Don't return HOSTERR if we fail getting
6043         the socket data.
6044
6045         * ftp.c: Ditto.
6046
6047         * http.c: No need to declare h_errno.
6048
6049         * host.c: Declare h_errno.
6050
6051 2001-12-02  Hrvoje Niksic  <hniksic@arsdigita.com>
6052
6053         * utils.c (file_merge): If BASE doesn't contain a slash, just
6054         return a copy of FILE.
6055
6056 2001-12-02  Hrvoje Niksic  <hniksic@arsdigita.com>
6057
6058         * version.c: Wget 1.8-beta2 is released.
6059
6060 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6061
6062         * ftp.c (getftp): When PWD fails, assume "/".
6063
6064         * ftp-basic.c (ftp_syst): Fix indentation.
6065
6066 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6067
6068         * url.c (get_urls_file): If opt.base_href is specified, merge each
6069         URL with the base.
6070
6071 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6072
6073         * main.c (print_help): Don't document the removed `-nh'.
6074
6075 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6076
6077         * url.c (url_full_path): Document better.
6078
6079         * http.c (gethttp): Use the full path when creating digest
6080         authorization.
6081
6082 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6083
6084         * cookies.c (path_matches): Return 0 if PREFIX doesn't begin with
6085         '/'.
6086
6087 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6088
6089         * cookies.c (path_matches): FULL_PATH doesn't begin with '/', but
6090         PREFIX does.
6091
6092 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6093
6094         * cookies.c (check_domain_match): Reimplement to match Netscape's
6095         "preliminary specification" for cookies.
6096
6097 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6098
6099         * url.c (replace_attr_refresh_hack): New function.
6100         (convert_links): Call replace_attr_refresh_hack for Refresh
6101         links.  It will add the "TMOUT; URL=" junk before the link.
6102
6103         * html-url.c (collect_tags_mapper): Set ID to the ID of the
6104         "content" attribute, not "http-equiv".
6105         (collect_tags_mapper): Don't use OFFSET to hack the raw_* values;
6106         instead, store the information that this entry belongs to a
6107         "refresh" link.
6108
6109 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6110
6111         * version.c: Wget 1.8-beta1 is released.
6112
6113 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6114
6115         * recur.c (retrieve_tree): Allow -p retrievals to exceed maximum
6116         depth by more than one.
6117
6118 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
6119
6120         * retr.c (retrieve_url): Don't allow more than 20 redirections.
6121
6122 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
6123
6124         * recur.c (retrieve_tree): Skip the non-inline entries when
6125         enqueuing the children of a leaf HTML node in -p mode.
6126         (descend_url_p): Ignore opt.no_parent when in -p mode and UPOS is
6127         "inline".
6128
6129         * html-url.c (get_urls_html): Don't accept dash_p_leaf_HTML.
6130         (collect_tags_mapper): When an entry is "inline", mark it as such.
6131
6132         * recur.c (descend_url_p): Fix test when checking for
6133         acceptance/rejection rules.
6134
6135 2001-10-31 Daniel BODEA <dali@dali-designs.com>
6136
6137         * netrc.c (search_netrc): When slack_default is 0, still look for
6138         an account with matching password, just not the "default account".
6139         HTTP Authorization using .netrc should now work as expected.
6140
6141 2001-11-30  T. Bharath  <TBharath@responsenetworks.com>
6142
6143         * http.c (persistent_available_p): Call SHUTDOWN_SSL if
6144         test_socket_open fails.
6145
6146 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
6147
6148         * progress.c (display_image): Just print one CR to reset the
6149         cursor position.
6150
6151 2001-11-30  Christian Fraenkel  <c.fraenkel@gmx.net>
6152
6153         * init.c: New command `ssl_egd_sock'.
6154
6155         * main.c (main): New option `--sslegdsock'.
6156
6157         * gen_sslfunc.c (ssl_init_prng): Seed the RNG using EGD.
6158
6159 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6160
6161         * cmpt.c (memmove): Include a simple memmove implementation.
6162
6163 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6164
6165         * headers: Guard against header files being included twice.
6166
6167 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6168
6169         * gen-md5.c: Use unsigned char * as the buffer argument to
6170         gen_md5_update.
6171
6172 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6173
6174         * connect.h: Declare select_fd.
6175
6176 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6177
6178         * recur.c (descend_url_p): When resolving no_parent, compare with
6179         start_url, not parent url.  Otherwise link from /a/b/ to /a/c/
6180         wouldn't be followed, although the download started from /a/.
6181
6182 2001-01-23  Herold Heiko  <Heiko.Herold@previnet.it>
6183
6184         * config.h.ms, mswindows.h: defined HAVE_ISATTY, use _isatty for
6185         MS VC; somebody with Borland compiler please check and provide
6186         patch if possible;
6187
6188         * cmpt.c: provided a usleep emulation.
6189
6190 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6191
6192         * host.c (address_list_new): Initialize al->faulty.
6193
6194 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6195
6196         * http.c (http_process_range): Accept the broken output of
6197         "JavaWebServer/1.1.1".
6198
6199 2001-11-28  Hrvoje Niksic  <hniksic@arsdigita.com>
6200
6201         * progress.c (dot_set_params): If PARAMS is unspecified, use
6202         dot_style, if available.
6203
6204         * init.c: Ditto.
6205
6206         * main.c (main): Resurect --dot-style.
6207
6208         * progress.c (dot_finish): Print the quantity if we're left at the
6209         beginning of a row.
6210
6211 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6212
6213         * cmpt.c (random): Removed.
6214
6215         * retr.c (sleep_between_retrievals): Use the more portable rand()
6216         instead of random().
6217
6218 2001-11-27  Ian Abbott <abbotti@mev.co.uk>
6219
6220         * retr.c (retrieve_from_file): Initialize `new_file' to NULL to
6221         prevent seg fault.
6222
6223 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6224
6225         * connect.c (connect_to_many): Use address_list_set_faulty to
6226         prevent the faulty address from being reused.
6227
6228         * host.c (address_list_set_faulty): New function.
6229         (address_list_get_bounds): New function, instead of
6230         address_list_count.
6231
6232 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6233
6234         * url.c (convert_links): Don't translate %d-%d.
6235
6236         * main.c (print_help): Remove stray HAVE_RANDOM code.
6237
6238 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6239
6240         * ftp.c (getftp): Improve output after sending PASV.  Don't
6241         attempt to "look up" the IP address we already know; call
6242         connect_to_one directly.
6243
6244 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6245
6246         * progress.c: Change the default progress implementation to "bar".
6247
6248 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6249
6250         * progress.c (bar_create): Print two newlines.
6251
6252 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6253
6254         * cmpt.c (random): New function, a simple-minded replacement for
6255         random() on systems that don't have it.
6256
6257 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6258
6259         * config.h.in: Put a HAVE_USLEEP stub.
6260
6261         * cmpt.c (usleep): Replacement implementation of usleep using
6262         select.
6263
6264         * init.c: New option init_rate.
6265
6266         * main.c (main): New option --limit-rate.
6267
6268         * retr.c (limit_bandwidth): New function.
6269         (get_contents): Call it to limit the bandwidth used when
6270         downloading.
6271
6272         * progress.c (dot_update): Would print the wrong download speed on
6273         rows other than the first one when the download was continued.
6274         (dot_finish): Ditto.
6275
6276 2001-11-26  Ian Abbott <abbotti@mev.co.uk>
6277
6278         * http.c (gethttp): fix undeclared variable 'err' when compiled
6279         with HAVE_SSL.
6280
6281 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6282
6283         * progress.c: Don't allocate new timers; use the timing data
6284         propagated from the caller.
6285
6286         * retr.c (get_contents): Allocate and use a timer.
6287
6288 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6289
6290         * http.c (last_host_ip): Made into an address_list.
6291         (invalidate_persistent): Release pc_last_host_ip.
6292         (register_persistent): Use lookup_host.
6293         (persistent_available_p): Check for equality of hosts using
6294         address_list_match_all.  Call address_list_release.
6295         (http_cleanup): New function.
6296
6297         * ftp.c (getftp): Use lookup_host and connect_to_many.
6298
6299         * http.c (gethttp): Use lookup_host and connect_to_many.
6300
6301         * connect.c (make_connection): Removed.
6302         (connect_to_one): New function.
6303         (connect_to_many): Ditto.
6304         (set_connection_host_name): Ditto.
6305
6306         * host.c (lookup_host): New function; new return type.
6307         (address_list_new): New function.
6308         (address_list_count): Ditto.
6309         (address_list_copy_one): Ditto.
6310         (address_list_delete): Ditto.
6311         (address_list_release): Ditto.
6312         (pretty_print_address): Ditto.
6313
6314 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6315
6316         * recur.c (retrieve_tree): In case of followed redirection,
6317         blacklist the pre-redirection URL.
6318
6319 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6320
6321         * recur.c (descend_redirect_p): New function.
6322         (retrieve_tree): Make sure redirections are not blindly followed.
6323
6324 2001-11-04  Alan Eldridge  <alane@geeksrus.net>
6325
6326         * config.h.in: added HAVE_RANDOM.
6327
6328         * options.h: added random_wait to struct options.
6329
6330         * main.c (print_help [HAVE_RANDOM], main): added arg parsing, help
6331         for --random-wait.
6332
6333         * retr.c (sleep_between_retrievals) [HAVE_RANDOM]: added
6334         implementation of random wait times.
6335
6336         * init.c (commands): added "randomwait" keyword.
6337
6338 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6339
6340         * recur.c (descend_url_p): Be more conservative with blacklisting
6341         URLs.
6342         (convert_all_links): Print how many files have been converted, and
6343         how long it took.
6344
6345         * progress.c (create_image): Place the number of downloaded bytes
6346         right after the progress bar.
6347
6348         * utils.c (suffix): Return a pointer into the string.
6349
6350 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6351
6352         * url.c (convert_links): Handle CO_NULLIFY_BASE.
6353
6354         * recur.c (retrieve_tree): Ignore download-ignorable children.
6355         (convert_all_links): Specify CO_NULLIFY_BASE when link_base_p.
6356
6357         * html-url.c (handle_link): Return the newly created urlpos.
6358         (collect_tags_mapper): When dealing with BASE, store the base
6359         reference and mark it as download-ignorable.
6360
6361 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6362
6363         * url.c (convert_links): Attempt to quote '?' as "%3F" when
6364         linking to local files.  Given up on the attempt, as it breaks
6365         local browsing.
6366
6367 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6368
6369         * main.c (private_initialize): Removed.
6370         (main): Don't call private_initialize.
6371
6372         * http.c: Call lookup_host.
6373
6374         * host.c (host_init): Removed.
6375         (add_host_to_cache): Initialize host_name_address_map here, on
6376         demand.
6377         (ngethostbyname): Commented out.
6378
6379         * connect.c (make_connection): Remove dead code; use lookup_host.
6380
6381         * host.c (store_hostaddress): Renamed to lookup_host and reversed
6382         the args.
6383         Removed host_address_name_map and host_slave_master_map.
6384
6385 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6386
6387         * progress.c (dot_create): Align the "[ skipping ... ]" string
6388         with the dots.
6389
6390         * retr.c (rate): Split into two functions: calc_rate and
6391         retr_rate.
6392
6393         * progress.c (create_image): Draw a dummy progress bar even when
6394         total size is unknown.
6395         (display_image): Place the text cursor at the end of the "image".
6396
6397 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6398
6399         * url.c (reencode_string): Use unsigned char, not char --
6400         otherwise the hex digits come out wrong for 8-bit chars such as
6401         nbsp.
6402         (lowercase_str): New function.
6403         (url_parse): Canonicalize u->url if needed.
6404         (get_urls_file): Parse each URL, and return only the valid ones.
6405         (free_urlpos): Call url_free.
6406         (mkstruct): Add :port if the port is non-standard.
6407         (mkstruct): Append the query string to the file name, if any.
6408         (urlpath_length): Use strpbrk_or_eos.
6409         (uri_merge_1): Handle the cases where LINK is an empty string,
6410         where LINK consists only of query, and where LINK consists only of
6411         fragment.
6412         (convert_links): Count and report both kinds of conversion.
6413         (downloaded_file): Use a hash table, not a list.
6414         (downloaded_files_free): Free the hash table.
6415
6416         * retr.c (retrieve_from_file): Ditto.
6417
6418         * main.c (main): Call either retrieve_url or retrieve_tree
6419         for each URL, not both.
6420
6421         * retr.c (register_all_redirections): New function.
6422         (register_redirections_mapper): Ditto.
6423         (retrieve_url): Register the redirections.
6424         (retrieve_url): Make the string "Error parsing proxy ..." 
6425         translatable.
6426
6427         * res.c (add_path): Strip leading slash from robots.txt paths so
6428         that the path representations are "compatible".
6429         (free_specs): Free each individual path, too.
6430         (res_cleanup): New function.
6431         (cleanup_hash_table_mapper): Ditto.
6432
6433         * recur.c (url_queue_new): New function.
6434         (url_queue_delete): Ditto.
6435         (url_enqueue): Ditto.
6436         (url_dequeue): Ditto.
6437         (retrieve_tree): New function, replacement for recursive_retrieve.
6438         (descend_url_p): New function.
6439         (register_redirection): New function.
6440
6441         * progress.c (create_image): Cosmetic changes.
6442
6443         * init.c (cleanup): Do all those complex cleanups only if
6444         DEBUG_MALLOC is defined.
6445
6446         * main.c: Removed --simple-check and the corresponding
6447         simple_host_check in init.c.
6448
6449         * html-url.c (handle_link): Parse the URL here, and propagate the
6450         parsed URL to the caller, who would otherwise have to parse it
6451         again.
6452
6453         * host.c (xstrdup_lower): Moved to utils.c.
6454         (realhost): Removed.
6455         (same_host): Ditto.
6456
6457 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6458
6459         * utils.c (path_simplify): Preserver the (non-)existence of
6460         leading slash.  Return non-zero if changes were made.
6461
6462 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6463
6464         * progress.c (bar_update): Don't modify bp->total_length if it is
6465         zero.
6466
6467 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6468
6469         * retr.c (retrieve_url): When the redirection URL doesn't parse,
6470         print the correct error message rather than "UNKNOWN".
6471
6472 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6473
6474         * progress.c (bar_finish): If the timer didn't record any time
6475         since the download beginning, fake 1ms.
6476
6477 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6478
6479         * recur.c (recursive_retrieve): Fix typo.
6480
6481 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
6482
6483         * progress.c (create_image): Don't translate "%ld ".
6484
6485 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
6486
6487         * progress.c (bar_set_params): Allow the user to force the use of
6488         the bar.
6489
6490 2001-11-23  Lemble Gregory  <gregory.lemble@st.com>
6491
6492         * gen_sslfunc.c (ssl_init_prng): New function; seed the SSL RNG.
6493
6494 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
6495
6496         * progress.c: Renamed dp_* functions to dot_* for greater clarity
6497         and consistency with bar_*.
6498         (print_download_speed): Get rid of the unneeded '@' character.
6499         (create_image): Fix download rate geometry.
6500
6501         * progress.c (print_elapsed): Remove spurious space.
6502         (print_elapsed): Renamed to print_download_speed, since that's
6503         what it does.
6504
6505 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
6506
6507         * progress.c (bar_update): If the downloaded amount becomes larger
6508         than the expected amount, adjust the expected amount accordingly.
6509
6510 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
6511
6512         * utils.c (determine_screen_width): New function.
6513
6514         * main.c (main): New option `--progress=TYPE'.
6515         (main): Implement compatibility with the old option `--dot-style'.
6516
6517         * init.c: Removed cmd_spec_dotstyle -- that logic is now in
6518         dp_set_params.
6519         (cmd_spec_progress): New function.
6520
6521         * retr.c (get_contents): Use the progress_* functions instead of
6522         the old show_progress().
6523         (show_progress): Removed.
6524         (rate): Print "xxxx.xx K/s" instead of "KB/s".  Ditto for MB/s,
6525         etc.
6526
6527         * progress.c (set_progress_implementation): New function.
6528         (valid_progress_implementation_p): Ditto.
6529         (progress_create): Ditto.
6530         (progress_update): Ditto.
6531         (progress_finish): Ditto.
6532         (dp_create): Ditto.
6533         (dp_update): Ditto.
6534         (dp_finish): Ditto.
6535         (dp_set_params): Ditto.
6536         (print_elapsed): Ditto.
6537
6538 2001-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
6539
6540         * retr.c (show_progress): Use it.
6541
6542         * log.c (log_set_flush): New function.
6543
6544 2001-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
6545
6546         * utils.c (path_simplify): Don't remove trailing slashes.
6547
6548         * ftp.c (ftp_get_listing): Use it.
6549
6550         * utils.c (file_merge): New function.
6551
6552         * url.c (opt_url): Removed.
6553
6554         * recur.c (recursive_retrieve): Inline "opt_url" logic.
6555
6556         * main.c (main): Use xfree(), not free().
6557
6558         * url.c (rewrite_url_maybe): Renamed to rewrite_shorthand_url.
6559
6560         * ftp.c (ccon): Move `ccon' typedef here, since it's only used
6561         internally.
6562
6563         * config.h.in: Include a stub for HAVE_STRPBRK.
6564
6565         * cmpt.c (strpbrk): Include a replacement for systems without
6566         strpbrk().
6567
6568         * ftp.c: Use url_set_dir and url_set_file when modifying the URL.
6569
6570         * url.c (url_set_dir): New function.
6571         (url_set_file): Ditto.
6572
6573         * ftp-basic.c (ftp_process_type): Process FTP type here; the URL
6574         parser makes the URL "params" available, so we can do that in this
6575         function.
6576
6577         * retr.c: Ditto.
6578
6579         * ftp.c: Ditto; pass the local file information in `ccon'.
6580
6581         * http.c: Get rid of the ugly kludge that had URL being replaced
6582         with the proxy URL when proxy retrieval was requested.  Use a
6583         separate parameter to http_loop and gethttp for the proxy URL.
6584
6585         * http.c: Changed to reflect the fact that local file, proxy, and
6586         referer information are no longer stored in struct url.  The local
6587         file information is passed in `struct hstat' now.
6588
6589         * url.c: Reworked URL parsing to be more regular.  Reencode the
6590         URL using reencode_string.
6591         Removed non-URL-related information from struct url.  This
6592         includes fields `proxy', `local', and `referer'.
6593
6594 2001-11-22  Jochen Hein  <jochen@jochen.org>
6595
6596         * main.c (main): Split the copyright notice for easier
6597         translation.
6598
6599 2001-08-21  Dave Turner <dct25@hermes.cam.ac.uk>
6600
6601         * ftp-basic.c (ftp_size): New function to send non-standard SIZE
6602           command to server to request file size.
6603         * ftp.h (ftp_size): Export it.
6604         * ftp.c (getftp): Use new ftp_size function if restoring
6605           transfer of a file with unknown size.
6606
6607 2001-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
6608
6609         * url.c (parseurl): Don't depend on the now-obsolete TYPE.
6610
6611 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6612
6613         * url.c (getproxy): Handle URL shorthands.
6614
6615 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6616
6617         * main.c: Remove --wait / --waitretry backwards compatibility
6618         code.
6619         
6620 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6621
6622         * main.c (main): Use it.
6623
6624         * url.c (rewrite_url_maybe): New function.
6625
6626 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6627
6628         * url.c: Clean up handling of URL schemes.
6629
6630 2001-05-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6631
6632         * url.c: Get rid of `protostrings'.
6633         (skip_proto): Don't use protostrings.
6634         (has_proto): Ditto.
6635
6636 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
6637
6638         * Makefile.in: Conditionally compile getopt.o.
6639
6640 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
6641
6642         * md5.h: Renamed to gnu-md5.h.
6643
6644         * md5.c: Renamed to gnu-md5.c.
6645
6646         * http.c: Ditto.
6647
6648         * ftp-opie.c: Use the new macros.
6649
6650         * sysdep.h: Define md5-related macros.
6651
6652         * config.h.in: Define HAVE_SOLARIS_MD5 or HAVE_BUILTIN_MD5
6653         depending on which md5 implementation is used.
6654
6655 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
6656
6657         * res.c (res_register_specs): Initialize OLD and HP_OLD to appease
6658         the compiler.
6659
6660 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
6661
6662         * http.c (gethttp): Print the whole response line when printing
6663         headers is requested.
6664
6665 2001-05-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6666
6667         * res.c: New file.  Implement all RES-related code here.
6668
6669 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
6670
6671         * version.c: Wget 1.7.1 is released.
6672
6673 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
6674
6675         * headers.c (header_extract_number): Ignore trailing whitespace.
6676
6677 2001-08-24  Ian Abbott  <abbotti@mev.co.uk>
6678
6679         * html-url.c (collect_tags_mapper): Fix bug converting links
6680         with -k option for tags with multiple link attributes by
6681         handling links in the order they appear.
6682
6683 2001-08-15  Ian Abbott  <abbotti@mev.co.uk>
6684
6685         * ftp.c (ftp_loop_internal): Avoid a potential buffer overflow in
6686           the call to the 'rate' function by moving it past the error
6687           checking for the 'getftp' function return value.
6688
6689 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
6690
6691         * html-parse.c (advance_declaration): Use 0x22 instead of '"' or
6692         '\"'.  Different compilers' assert macros are broken in different
6693         ways.
6694
6695 2001-09-29  Christian Fraenkel  <c.fraenkel@gmx.net>
6696
6697         * http.c (gethttp): print debug output for errors occuring during
6698         the ssl handshake.
6699
6700 2001-11-16  Chris Seawood  <cls@seawood.org>
6701
6702         * init.c: Ditto.
6703
6704         * host.c: Ditto.
6705
6706         * connect.c: Ditto.
6707
6708         * sysdep.h: Support compilation under BEOS.
6709
6710 2001-06-08  Edward J. Sabol  <sabol@alderaan.gsfc.nasa.gov>
6711
6712         * url.c (url_equal): Fix a memory leak when parseurl returns an
6713         error on the second URL. Also, since url_equal is not used at the
6714         moment, do not compile it.
6715
6716         * url.h: Ditto for the prototype of url_equal.
6717
6718 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
6719
6720         * html-parse.c (map_html_tags): Support XML-style empty tags.
6721
6722 2001-06-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6723
6724         * wget.h (DO_REALLOC_FROM_ALLOCA): Check for do_realloc_newsize in
6725         loop condition because we're no longer setting SIZEVAR here.
6726
6727 2001-06-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6728
6729         * wget.h (DO_REALLOC_FROM_ALLOCA): Set SIZEVAR after the memcpy()
6730         call because it needs the old value.
6731
6732 2001-06-18  Hrvoje Niksic  <hniksic@arsdigita.com>
6733
6734         * cookies.c (ATTR_NAME_CHAR): Allow almost any character to be in
6735         an attribute name.
6736
6737 2001-06-18  Hrvoje Niksic  <hniksic@arsdigita.com>
6738
6739         * url.c (url_filename): Make sure that slashes that sneak in to
6740         u->file via query string get protected.
6741         (file_name_protect_query_string): New function.
6742
6743 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6744
6745         * recur.c (recursive_retrieve): Also check undesirable_urls with
6746         canonicalized URL.
6747
6748 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6749
6750         * http.c (gethttp): Search `.netrc' with real host, not the proxy
6751         one.
6752
6753 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6754
6755         * sysdep.h (MAP_FAILED): Provide MAP_FAILED for systems that don't
6756         define it.
6757
6758 2001-06-09  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
6759
6760         * ftp.h: Provide correct prototype for ftp_parse_ls().
6761
6762 2001-06-04  Hrvoje Niksic  <hniksic@arsdigita.com>
6763
6764         * version.c: Wget 1.7 is released.
6765
6766 2001-06-03  Karl Eichwalder  <ke@suse.de>
6767
6768         * ftp-ls.c (ftp_parse_ls): Fix typo.
6769
6770 2001-05-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6771
6772         * all: Update copyright information.
6773
6774 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6775
6776         * http.c (gethttp): Indicate that the continued download failed
6777         for *this* file.
6778
6779 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6780
6781         * version.c: Wget 1.7-pre1 is released.
6782
6783 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6784
6785         * version.c: Updated version to 1.7-pre1.
6786
6787 2001-05-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6788
6789         * gen_sslfunc.c: Don't include <sys/time.h> directly.
6790
6791 2001-05-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6792
6793         * http.c (gethttp): Use real URL data for cookies, not the proxy
6794         stuff.
6795
6796 2001-05-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6797
6798         * main.c (print_help): Document `--no-http-keep-alive'.
6799
6800         * utils.c (numdigit): Handle negative numbers *correctly*.
6801
6802         * hash.c (make_nocase_string_hash_table): Use term "nocase" rather
6803         than the confusing "unsigned".
6804
6805         * utils.c (string_set_contains): Renamed from string_set_exists.
6806
6807         * hash.c (hash_table_contains): Renamed from hash_table_exists.
6808
6809         * cookies.c: Move case-insensitive hash tables to hash.c.
6810
6811 2001-05-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6812
6813         * http.c (gethttp): Before concluding that the file is already
6814         fully retrieved, make sure that the file existed and `Range' was
6815         actually requested.
6816
6817 2001-05-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6818
6819         * cookies.c (eliminate_dups): New function.
6820         (build_cookies_request): Use it.
6821         (build_cookies_request): Set chain_store_size after reallocating
6822         all_chains.
6823         (check_domain_match): Annotated for easier future debugging.
6824         (store_cookie): In the debug message, print whether the cookie is
6825         permanent.
6826
6827 2001-05-08  Hrvoje Niksic  <hniksic@arsdigita.com>
6828
6829         * http.c (http_loop): Reset no_truncate before deciding whether to
6830         set it.
6831         (gethttp): Further clarify "-c conflicts with existing file" error
6832         message, based on input from Herold Heiko.
6833
6834 2001-05-07  Hrvoje Niksic  <hniksic@arsdigita.com>
6835
6836         * http.c (http_loop): If restval is set, set no_truncate to 1
6837         unconditionally.
6838
6839 2001-05-02  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
6840
6841         * ftp-ls.c (ftp_parse_winnt_ls): Assure months are being correctly
6842         converted. Pointed out by <Stefan.Weil@de.heidelberg.com>.
6843         (ftp_parse_vms_ls): Ditto.
6844
6845 2001-04-30  Hrvoje Niksic  <hniksic@arsdigita.com>
6846
6847         * init.c (cmd_address): Zero SIN before using it; apparently
6848         needed on *BSD.
6849
6850 2001-04-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6851
6852         * ftp.c (ftp_loop_internal): Don't set NO_TRUNCATE if the file is
6853         empty.
6854
6855 2001-04-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6856
6857         * main.c (main): Make `--cookies' respect its argument.
6858
6859 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
6860
6861         * main.c (main): Removed undocumented option `--email-address'.
6862
6863         * netrc.c: Use the latest read_whole_line.
6864
6865         * init.c (defaults): Set opt.ftp_pass to "-wget@".
6866
6867         * mswindows.c (pwd_cuserid): Ditto.
6868
6869         * utils.c (pwd_cuserid): Removed.
6870
6871         * host.c (ftp_getaddress): Removed.
6872
6873 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
6874
6875         (http_loop): Allocate space for filename_plus_orig_suffix with
6876         alloca; this is more efficient and removes the need to free it
6877         before each and every return.
6878
6879 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
6880
6881         * http.c (gethttp): Return RETRUNNEEDED when the retrieval is
6882         unneeded because the file is already there and fully downloaded,
6883         and -c is specified.
6884         (http_loop): Handle RETRUNNEEDED.
6885
6886         * wget.h (uerr_t): New value RETRUNNEEDED.
6887
6888         * http.c (http_loop): Set no_truncate for files that both exist
6889         and are non-empty.
6890         (gethttp): Consider the download finished when restval >= contlen,
6891         not only when restval==contlen.
6892         (gethttp): Handle redirection before giving up due to -c.
6893         (gethttp): Clarify error message which explains that -c will not
6894         truncate the file.
6895         (gethttp): When returning CONTNOTSUPPORTED, don't forget to free
6896         the stuff that needs freeing and release the socket.
6897
6898 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6899
6900         * main.c (print_help): Wget booleans accept "off", not "no".
6901
6902 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6903
6904         * http.c (http_loop): If allow_cache is zero, always disable
6905         caching, not only when retrieving through proxy.
6906
6907         * init.c: Ditto.
6908
6909         * options.h (struct options): Rename proxy_cache to allow_cache.
6910
6911 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6912
6913         * http.c (mktime_from_utc): Improve documentation.
6914         (http_atotm): Put format strings into a separate array.
6915
6916 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6917
6918         * safe-ctype.h: Instead of throwing #error when isalpha is
6919         defined, redefine it to something that will throw a compile-time
6920         error if actually *used*.  Do the same for the rest of the
6921         standard C macros.
6922
6923 2001-04-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6924
6925         * url.c (getproxy): Ignore empty proxy vars.
6926
6927 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6928
6929         * http.c (http_loop): Would load cookies every time.
6930
6931         * cookies.c (load_cookies): Handle cookies whose values contain
6932         embedded spaces.
6933
6934 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6935
6936         * utils.c: Define each DIGITS_* in one line.
6937
6938 2001-04-25  Roger L. Beeman  <beeman@cisco.com>
6939
6940         * http.c (http_atotm): Initialize t.tm_isdst to 0.
6941         (mktime_from_utc): Prevent mktime() from having discontinuities at
6942         DST transition points.
6943
6944 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6945
6946         * html-url.c (get_urls_html): Fix documentation.
6947
6948 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6949
6950         * url.c (UNSAFE_CHAR): Reimplement using a static table.
6951         (url_init): Removed.
6952         (init_unsafe_char_table): Removed.
6953
6954 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6955
6956         * snprintf.c (dopr): Replace ISDIGIT with '0' <= ch && ch <= '9'.
6957
6958 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6959
6960         * utils.c: Document timer functions.
6961
6962         * retr.c (rate): Use it.
6963         (rate): Print in GB/s if transfer rate exceeds 1 GB/s.
6964
6965         * utils.c (wtimer_granularity): New function.
6966
6967 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6968
6969         * retr.c (show_progress): Ditto.
6970
6971         * ftp.c (getftp): Ditto.
6972
6973         * http.c (gethttp): Use new timer functions.
6974
6975         * utils.c (wtimer_allocate): New function.
6976         (wtimer_new): Ditto.
6977         (wtimer_delete): Ditto.
6978         (wtimer_reset): Ditto.
6979         (wtimer_elapsed): Ditto.
6980
6981 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6982
6983         * utils.c (long_to_string): New, faster version.  Favors smaller
6984         numbers; much of the calculation is now done at compile-time.
6985
6986 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6987
6988         * utils.c (numdigit): Handle negative numbers.
6989
6990 2001-04-23  Hrvoje Niksic  <hniksic@arsdigita.com>
6991
6992         * retr.c (show_progress): Print the download rate even when the
6993         percentages are not available.
6994
6995 2001-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
6996
6997         * ftp.c (getftp): Adjust expected_bytes if the length is
6998         authoritative.
6999
7000 2001-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7001
7002         * url.c: Don't declare `construct'.
7003
7004         * hash.c (grow_hash_table): Speed up rehashing; inline storing of
7005         mappings to new locations.
7006         (hash_table_new): Make resize_threshold a field in the hash table,
7007         so we don't have to recalculate it in each hash_table_put.
7008         (grow_hash_table): Update resize_threshold.
7009         (MAX): Remove unused macro.
7010         (prime_size): Made static.
7011
7012 2001-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7013
7014         * retr.c (retrieve_url): Call uri_merge, not url_concat.
7015
7016         * html-url.c (collect_tags_mapper): Call uri_merge, not
7017         url_concat.
7018
7019         * url.c (mkstruct): Use encode_string instead of xstrdup followed
7020         by URL_CLEANSE.
7021         (path_simplify_with_kludge): Deleted.
7022         (contains_unsafe): Deleted.
7023         (construct): Renamed to uri_merge_1.
7024         (url_concat): Renamed to uri_merge.
7025
7026 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7027
7028         * url.c (str_url): Use encode_string instead of the unnecessary
7029         CLEANDUP.
7030         (encode_string_maybe): New function, returns input string if no
7031         encoding is needed.
7032         (encode_string): Call encode_string_maybe to do the dirty work,
7033         xstrdup if no work needed.
7034
7035 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7036
7037         * wget.h (XDIGIT_TO_xchar): Define here.
7038
7039         * url.c (decode_string): Use new name.
7040         (encode_string): Ditto.
7041
7042         * http.c (XDIGIT_TO_xchar): Rename HEXD2asc to XDIGIT_TO_xchar.
7043         (dump_hash): Use new name.
7044
7045         * wget.h: Rename ASC2HEXD and HEXD2ASC to XCHAR_TO_XDIGIT and
7046         XDIGIT_TO_XCHAR respectively.
7047
7048 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7049
7050         * init.c: Include cookies.h.
7051
7052         * cookies.h: Declare cookies_cleanup.
7053
7054         * cookies.c (check_domain_match): Remove unused variable.
7055         (save_cookies): Remove extraneous argument from debug statement.
7056
7057         * host.c (same_host): Don't call skip_url.
7058
7059         * url.c (skip_url): Removed.  Removed its calls from various
7060         functions in url.c.
7061
7062 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7063
7064         * cookies.c (unsigned_string_hash): Use the new code in
7065         string_hash as reference.
7066
7067         * hash.c (hash_table_map): Allow deletion and change of the
7068         element processed by MAPFUN.
7069         (string_hash): Use the function from glib.
7070
7071 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7072
7073         * config.h.in: Include #undef stub.
7074
7075         * hash.c (hash_table_remove): Rewrite to actually clear deleted
7076         entries instead of just marking them as deleted.
7077
7078 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7079
7080         * hash.h: Declare hash_table_get_pair and hash_table_count.
7081
7082 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7083
7084         * cookies.c: Declare http_atotm.
7085
7086 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7087
7088         * ftp-ls.c (ftp_parse_unix_ls): Use octal constants for
7089         permissions.  A compiler that doesn't accept octal constants is
7090         seriously broken and shouldn't be used -- octal constants were
7091         present in K&R C!
7092
7093 2001-01-20  Karl Eichwalder  <ke@suse.de>
7094
7095         * Makefile.in: Provide and use DESTDIR according to the Coding
7096         Standards.
7097
7098 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7099
7100         * ftp-ls.c (ftp_parse_vms_ls): Make seconds optional in time
7101         specification.
7102
7103 2001-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7104
7105         * url.c (parseurl): Don't strip trailing slash when u->dir is "/"
7106         because that strips the *leading* slash, thus forcing relative
7107         FTP retrieval.
7108
7109 2001-04-10  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7110
7111         * ftp.c (getftp): Convert initial FTP directory from VMS to UNIX
7112         notation for VMS servers. 
7113         (ftp_retrieve_dirs): Do not prepend '/' to f->name when
7114         odir is an empty string.
7115
7116 2001-04-10  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7117
7118         * ftp-ls.c (ftp_parse_winnt_ls): Made the fix for AM/PM more
7119         effective. Suggested by Edward J. Sabol.
7120
7121 2001-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
7122
7123         * cookies.c (build_cookies_request): Use and sort cookies from all
7124         matching domains.
7125         (build_cookies_request): Check for duplicates before generating
7126         the `Cookies' header.
7127
7128         * main.c (main): Don't load cookies here.
7129         (main): Make loadcookies and savecookies call the correct command.
7130
7131         * http.c (http_loop): Load cookies on-demand.
7132
7133 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7134
7135         * http.c (gethttp): Fix indentation of SSL ifdef.
7136
7137 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7138
7139         * ftp.c (ftp_retrieve_dirs): Don't forcibly prepend "/" to u->dir;
7140         that hack is no longer necessary.
7141         (getftp): Prepend initial directory to *non*-absolute u->dir's.
7142
7143 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7144
7145         * init.c (cmd_file): New function.
7146         (enable_tilde_expansion): New variable.
7147         (run_wgetrc): Use it.
7148         (cmd_file): Use it.
7149
7150 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
7151
7152         * init.c: Include cookie-related options.
7153
7154         * main.c (main): Include cookie-specific options.
7155         (main): Load cookies before download is finished.
7156         (main): Save cookies when done.
7157
7158         * http.c (gethttp): Process the `Set-Cookie' header.
7159         (gethttp): Include cookies in the response.
7160
7161         * cookies.c: New file.
7162
7163 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
7164
7165         * utils.c (datetime_str): New function.
7166
7167 2001-04-08  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7168
7169         * ftp-ls.c (ftp_parse_winnt_ls): The AM/PM change did assume
7170         12:01PM == 00:01, which was obviously wrong. Taken care of this
7171         anomaly.
7172
7173         * ChangeLog: Removed an excess conflict marker. Reformatted the
7174         entry by Philipp Thomas from 2001-03-09.
7175
7176         * ftp-ls.c (ftp_parse_winnt_ls): Ensure that adjusted PM hours lay
7177         between 0 and 23. Elminate unused variable `sec'.
7178
7179 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
7180
7181         * hash.c (hash_table_count): New function.
7182
7183 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7184
7185         * utils.c (read_file): Cast MAP_FAILED to char *.  Enforced by
7186         Digital Unix cc.
7187
7188 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7189
7190         * config.h.in: Oops, do the namespace tweaks only on systems we
7191         know about.
7192
7193 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7194
7195         * hash.c: Include <string.h>.
7196
7197 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7198
7199         * config.h.in: Define "compilation environment" options that work
7200         under Linux and Solaris.  To be reviewed on other OS'es.
7201
7202 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7203
7204         * http.c (gethttp): Prepend literal newline with `\n\'.
7205
7206 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7207
7208         * sysdep.h: Don't define VERY_LONG_FORMAT.
7209
7210         * utils.c (very_long_to_string): New function.
7211         (legible_very_long): Use it; don't use VERY_LONG_FORMAT.
7212
7213 2001-04-04  Christian Fraenkel  <christian.fraenkel@gmx.net>
7214
7215         * url.c (parse_uname): Would run past the end of the string if the
7216         username was present, but the URL did not contain a slash, e.g.
7217         http://foo:bar@myhost.
7218
7219 2001-04-03  KOJIMA Hajime  <kjm@rins.ryukoku.ac.jp>
7220
7221         * http.c (http_atotm): Use %A instead of %a to match full
7222         weekday.  (On most systems there is no difference.)
7223
7224 2001-04-03  Paul Bludov  <paul@ozero.net>
7225
7226         * mswindows.c (sleep): Use SleepEx() instead of Sleep().
7227         (ws_changetitle): Use alloca() instead of malloc() to avoid memory
7228         leak.
7229         (ws_mypath): Use GetModuleFileName instead of argv[0].
7230         (ws_startup): Use data.wVersion for comparison.
7231
7232 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7233
7234         * http.c (http_loop): Ditto.
7235
7236         * ftp.c (ftp_loop_internal): Made the check whether to continue
7237         retrieval `-O'-friendly.
7238
7239 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7240
7241         * netrc.c (parse_netrc): Don't trim the line endings explicitly;
7242         they will be handled as whitespace.
7243         (parse_netrc): Correctly handle lines that end with whitespace.
7244
7245 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7246
7247         * retr.c (retrieve_url): New variable global_download_count used
7248         to identify first retrieval.
7249
7250         * ftp.c (getftp): Ditto.
7251
7252         * http.c (gethttp): Rewind opt.dfp only on first retrieval.
7253
7254 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7255
7256         * init.c (cmd_address): Heap-allocate the address that gets stored
7257         to CLOSURE.  Old code would simply assign an address on the stack.
7258
7259 2001-04-01  Nicolas Lichtmaier <nick@debian.org>
7260
7261         * ftp.c (ftp_get_listing): Propagate error status.
7262         (ftp_retrieve_glob): Use it.
7263         (ftp_loop): Ditto.
7264
7265 2001-04-01  Nicolas Lichtmaier <nick@debian.org>
7266
7267         * main.c (main): Add -C to the string that is the third arg to
7268         getopt_long().
7269
7270 2001-04-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7271
7272         * ftp.c (getftp): Don't start the download from scratch if `-c'
7273         was specified, but the file is already fully downloaded.
7274
7275         * http.c (gethttp): Don't truncate a pre-existing file if `-c' was
7276         specified and the server doesn't support continued download.
7277         (gethttp): Don't start the download from scratch if `-c' was
7278         specified, but the file is already fully downloaded.
7279
7280 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7281
7282         (recursive_retrieve): Don't clear the hash tables at this point at
7283         all; it interferes with the normal operation of register_download.
7284
7285 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7286
7287         * recur.c (recursive_retrieve): Clear the hash tables only when
7288         they are defined.
7289
7290 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7291
7292         * http.c (gethttp): Make sure the socket is closed with
7293         CLOSE_INVALIDATE before we have drained the body.
7294
7295 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7296
7297         * retr.c (retrieve_url): Call register_download() for downloaded
7298         files and register_html() for downloaded HTML files.
7299
7300         * recur.c (register_download): New function; register here that a
7301         file has been downloaded, rather than in recursive_retrieve().
7302         (register_html): New function; enqueue the location of HTML files
7303         here rather than in recursive_retrieve().
7304
7305 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7306
7307         * main.c (print_help): Use multiple fputs instead of a single ugly
7308         printf().
7309         (main): Consistently assign numbers >128 to options without a
7310         corresponding character.
7311
7312 2001-03-09  Philipp Thomas  <pthomas@suse.de>
7313
7314         * safe-ctype.h: New file. Locale independent ctype.h replacement
7315         taken from libiberty.
7316
7317         * safe-ctype.c: New file. Tables for above.
7318
7319         * Makefile.in: Add safe-ctype$o to OBJS.  Add dependencies for
7320         safe-ctype$o.
7321
7322         * cmpt.c: Remove include of ctype.h. Use ISSPACE instead of
7323         isspace.
7324
7325         * ftp-basic.c: Don't include ctype.h.
7326
7327         * ftp-ls.c: Likewise.
7328
7329         * ftp.c: Likewise.
7330
7331         * headers.c: Likewise.
7332
7333         * host.c: Likewise.
7334
7335         * html-parse.c: Likewise.
7336
7337         * html-url.c: Likewise.
7338
7339         * http.c: Likewise.
7340
7341         * init.c: Likewise.
7342
7343         * main.c: Likewise. Set LC_CTYPE along with LC_MESSAGES.
7344
7345         * netrc.c: Likewise.
7346
7347         * recur.c: Likewise.
7348
7349         * retr.c: Likewise.
7350
7351         * snprintf.c: Replace ctype.h with safe-ctype.h. Use ISDIGIT
7352         instead of isdigit.
7353
7354         * sysdep.h: Remove defines of ctype macros as they aren't needed
7355         for safe-ctype-h.
7356
7357         * url.c: Don't include ctype.h.
7358
7359         * utils.c: Likewise.
7360
7361         * wget.h: Include safe-ctype.h.
7362
7363 2001-03-27  Dan Harkless  <wget@harkless.org>
7364
7365         * Makefile.in: Moved top_builddir out of "User configuration
7366         section" of top Makefile and analogous spot in this one.
7367
7368 2001-03-17  Dan Harkless  <wget@harkless.org>
7369
7370         * Makefile.in: Include @SSL_INCLUDES@ substition in INCLUDES.
7371         Define top_builddir.  Link wget with libtool so the user doesn't
7372         have to supply a bunch of custom environment variables to 
7373         correctly link with the OpenSSL shared libraries.
7374
7375 2001-03-06  Hack Kampbjorn  <hack@hackdata.com>
7376
7377         * http.c (gethttp): skip :port in host header if it is the
7378         DEFAULT_HTTPS_PORT when using SSL.
7379
7380         * url.c: move the #define of DEFAULT_HTTP_PORT, DEFAULT_FTP_PORT
7381         and DEFAULT_HTTPS_PORT to the header file so it can be use in the
7382         rest of the code. 
7383         * url.h: Ditto
7384
7385 2001-03-01  Jonas Jensen  <bones@huleboer.dk>
7386
7387         * retr.c (show_progress): Correctly calculate the number of bytes
7388         in the first line of the download that have been actually
7389         downloaded in this run.
7390
7391 2001-02-23  Dan Harkless  <wget@harkless.org>
7392
7393         * main.c (print_help): --help documentation for -N said it would
7394         re-download files if they had the _same_ timestamp on server.
7395         (print_help): -nr belongs in "FTP options" section of --help
7396         output, not "Recursive retrieval" section.  Alphabetized FTP
7397         options by long option name.
7398
7399 2001-02-16  Dan Harkless  <wget@harkless.org>
7400
7401         * init.c (commands): Hack Kampbjørn <hack@hackdata.com> discovered
7402         that "httpsproxy" had been inserted into commands[] out of
7403         alphabetical order, causing "BUG: unknown command `httpuser'".
7404
7405 2001-02-13  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7406
7407         * ftp-ls.c (ftp_parse_ls): Added support of ST_MACOS (Unix-like
7408         listing without correct permissons).
7409
7410         * ftp.h (stype): Added ST_MACOS to identify the NetPresenz MacOS
7411         FTP server. 
7412
7413         * ftp.c (ftp_retrieve_list): New mirroring logic: A remote file
7414         shall be donwloaded only when it's newer than the local copy or
7415         when it has the same timeestamp but its size is different. ST_VMS
7416         and ST_MACOS as special cases that lie about file size. 
7417
7418         * ftp-ls.c (ftp_parse_ls): Support for ST_MACOS.
7419
7420         * Makefile.in: Removed dependency on ftpparse library due to unclear
7421         copyright issues and absence of any feedback to our queries. 
7422
7423         * ftp-ls.c: Removed dependency on ftpparse library due to unclear
7424         copyright issues and absence of any feedback to our queries.   
7425         (ftp_parse_ls): Added a warning message when remote server system
7426         does not seem to be suported by wget. 
7427         (ftp_parse_vms_ls): New function for parsing VMS ftp
7428         server listing output.
7429         (clean_line): New function responsible for removing
7430         end-of-line characters from FTP listing texts.
7431
7432         * ftp.c (getftp): Global variables pwd and host_type are now
7433         member of the ccon structure under names ccon.id and ccon.rs. 
7434
7435         * ftp.h (struct ccon): Added formed global variables from ftp.c,
7436         enum stype rs (remote system identification) and char *id (initial
7437         working directory), as suggested by Hrvoje.
7438
7439         * url.c (parse_uname): Added support for passwords containing '@'
7440         characters.
7441         (skip_uname): Ditto.
7442
7443 2001-02-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7444
7445         * ftp.c (ftp_loop): Reset con.
7446
7447 2001-01-06  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7448
7449         * url.c (parse_uname): Added support for passwords containing '@'
7450         characters.
7451         (skip_uname): Ditto.
7452
7453 2001-02-11  Hack Kampbjørn  <hack@hackdata.com>
7454
7455         * url.c (parseurl): Debug-print u->ftp_type.
7456
7457 2001-02-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7458
7459         * ftp.c (ftp_loop_internal): Disable padding.
7460         (getftp): Ditto.
7461
7462         * http.c (http_loop): Disable padding.
7463
7464         * retr.c (show_progress): Use it to enable padding.
7465
7466         * retr.c (rate): Optional parameter PAD for padding the rate.
7467
7468 2001-02-10  Hrvoje Niksic  <hniksic@arsdigita.com>
7469
7470         * retr.c (show_progress): Make sure that the last output line
7471         includes progress.
7472
7473 2001-02-10  Jonas Jensen  <bones@huleboer.dk>
7474
7475         * retr.c (show_progress): Print the download rate along with the
7476         percentages.
7477         Along with Anders Thorsby <anders@thorsby.dk>.
7478
7479 2001-02-10  Tim Mooney  <mooney@dogbert.cc.ndsu.NoDak.edu>
7480
7481         * ftp.h: Rename enums `command' to `wget_ftp_command' and
7482         `fstatus' to `wget_ftp_status' because old names clash with Tru64
7483         net/if.h.
7484
7485 2001-02-08  Christian Fraenkel <christian.fraenkel@gmx.net>
7486
7487         * gen_sslfunc.c: verify_callback is now static
7488
7489         * gen_sslfunc.c (init_ssl): load certificate if specified
7490
7491         * gen_sslfunc.c (ssl_printerr): new function
7492
7493         * init.c: added new --sslcertfile and --sslcertkey switches
7494
7495         * main.c: ditto
7496
7497         * options.h: ditto
7498
7499         * http.c (gethttp): abort when init_ssl fails
7500
7501 2001-01-23  Herold Heiko  <Heiko.Herold@previnet.it>
7502
7503         * mswindows.h: Include <malloc.h>; it's needed for alloca().
7504
7505 2001-01-10  Dan Harkless  <wget@harkless.org>
7506
7507         * url.c (str_url): Clarified this function's comment header after
7508         Hrvoje answered my question on the list as to when hide != 1.
7509         Also Hrvoje pointed out I need to use xstrdup() on the string literal.
7510
7511 2001-01-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7512
7513         * connect.c (bindport): Declare addrlen as int.  Diagnosed by
7514         Drazen Kacar <dave@arsdigita.com>.
7515         (conaddr): Ditto.
7516
7517 2001-01-09  Dan Harkless  <wget@harkless.org>
7518
7519         * html-url.c: A bunch of fixup of `--page-requisites'-related
7520         comments to reflect Hrvoje's changes to my code when transplanting
7521         it into this new file, to fix spelling mistakes, to clarify, etc.
7522
7523         * url.c (write_backup_file): Clarified a comment.
7524         (str_url): Henrik van Ginhoven pointed out on the list that we
7525         shouldn't give away the number of characters in the password by
7526         replacing each character with a 'x'.  Use "<password>" instead.
7527
7528         * ftp.c (ftp_retrieve_dirs): The bug where recursion into FTP
7529         directories didn't work if logging in put you in a directory other
7530         than "/" is fixed now.  Removed the comment here warning of the bug.
7531
7532         * main.c (print_help): --continue's description was misleading.
7533         We don't "restart", we "resume".  Also, better to say
7534         "partially-downloaded file" rather than just "existing file".
7535
7536 2001-01-06  Dan Harkless  <wget@harkless.org>
7537
7538         * ChangeLog: The '[Not in 1.6 branch.]'s were decided not to be
7539         the best way to go about my aim.  Removed them in favor of:
7540
7541         * ChangeLog-branches/1.6_branch.ChangeLog: New file.
7542
7543 2001-01-04  Hrvoje Niksic  <hniksic@arsdigita.com>
7544
7545         * url.c (replace_attr): New function, to be used by both
7546         TO_COMPLETE and TO_RELATIVE case in convert_links.
7547         (find_fragment): New function for finding URL fragments.
7548         (replace_attr): Better handle the case where the original string
7549         is not quoted.  Use find_fragment.
7550         (convert_links): Use replace_attr().
7551
7552 2000-12-31  Dan Harkless  <wget@harkless.org>
7553
7554         * ChangeLog: Since this flat file doesn't have multiple branches,
7555         looking at the dates would make you think that things went into
7556         1.6 that actually just went into the 1.7-dev branch.  Added "[Not
7557         in 1.6 branch.]" where appropriate to clarify.
7558         
7559 2000-12-30  Dan Harkless  <wget@harkless.org>
7560
7561         * ftp.c, http.c:  Applied Hack Kampbjørn <hack@hackdata.com>'s
7562         patch to deal with h_errno not being defined in netdb.h under Cygwin.
7563
7564 2000-12-18  Csaba Raduly  <csaba.raduly@sophos.com>
7565
7566         * sysdep.h: Include <malloc.h> and <io.h> under Watcom.
7567
7568 2000-12-17  Igor Khristophorov  <igor@atdot.org>
7569
7570         * http.c (check_end): Fix test for '+' or '-'.
7571
7572 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
7573
7574         * url.c (parseurl): Rename inner loop var from i to ind to avoid
7575         clash with the function top-level-declared variable i.
7576         (str_url): Likewise, rename inner-loop i to j.
7577
7578         * recur.c (parse_robots): Don't declare LEN at top of function.
7579         (robots_match): Renamed parameter FORBIDDEN to avoid hiding of
7580         global variable.
7581
7582         * main.c (main): Change erroneous use of bitwise and to logical.
7583
7584         * init.c (cmd_address): Don't heap-allocate `sin'; it can be on
7585         the stack because it will be copied to closure.
7586
7587         Thanks to Csaba Raduly's run of PC-LINT over the sources.
7588
7589 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
7590
7591         * http.c (basic_authentication_encode): Use xmalloc(), not
7592         malloc().  Thanks to Csaba Raduly's run of PC-LINT over the
7593         sources.
7594
7595 2000-12-17  Csaba Raduly  <csaba.raduly@sophos.com>
7596
7597         * sysdep.h: Test for __EMX__ rather than for EMXOS2 for OS/2
7598         compilation.
7599
7600 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
7601
7602         * mswindows.c: Include <errno.h>.
7603
7604         * gen_sslfunc.c: Include <errno.h>.
7605
7606         * ftp-basic.c: Don't attempt to declare errno or h_errno because
7607         they're not used.
7608
7609         * main.c: Include <errno.h> because errno is used.
7610
7611         * ftp.c: Ditto.
7612
7613         * http.c: Include <netdb.h> for h_errno.
7614
7615 2000-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7616
7617         * html-parse.c (advance_declaration): MSVC assert() chokes on
7618         '\"'.  Use '"' instead.
7619
7620 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7621
7622         * utils.c (xfree_real): Removed.
7623         (xfree_debug): Just call free().
7624
7625         * wget.h (xfree): Make it an alias for free.
7626
7627 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7628
7629         * http.c (http_loop): Furthermore, touch output_document only if
7630         it is known to be an existing regular file.
7631
7632 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7633
7634         * ftp.c (ftp_retrieve_list): Ditto.
7635
7636         * http.c (http_loop): Touch output_document if that is used for
7637         output.
7638
7639 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7640
7641         * http.c: Include gen_sslfunc.h after including Wget's headers.
7642         (persistent_available_p): Needed coma before `int ssl'.
7643
7644 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7645
7646         * ftp.c (ftp_loop_internal): Ditto.
7647
7648         * http.c (http_loop): Use it.
7649
7650         * retr.c (sleep_between_retrievals): New function that handles the
7651         logic of opt.wait and opt.waitretry.
7652
7653 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7654
7655         * rbuf.h: Implement only a single version of RBUF_READCHAR, using
7656         rbuf_read_bufferful when the buffer is depleted.
7657
7658         * rbuf.c (rbuf_read_bufferful): New function.
7659
7660 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7661
7662         * gen_sslfunc.h: Use ansi2knr style function declarations.
7663
7664         * gen_sslfunc.c: Reformat according to the GNU coding standards.
7665         More should be done.
7666
7667         * http.c (persistent_available_p): Place the cheap SSL test nearer
7668         the top of the function.
7669         (CLOSE_FINISH, CLOSE_INVALIDATE): Define only one version of each.
7670
7671 2000-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
7672
7673         * url.c (init_unsafe_char_table): Reinstate space as an unsafe
7674         char.
7675
7676 2000-12-03  Christian Fraenkel <christian.fraenkel@gmx.net>
7677
7678         * Makefile.in: added gen_sslfunc object
7679         * config.h.in: added HAVE_SSL define
7680         * connect.c: changed select_fd from static int to int
7681         * connect.h: ditto
7682         * gen_sslfunc.h: New file
7683         * gen_sslfunc.c: ditto
7684         * http.c: added HTTPS fuctionality
7685         * retrc.c: ditto
7686         * url.c: ditto
7687         * init.c: added opt.httpsproxy
7688         * options.h: ditto
7689         * rbuf.h: added alternate rbuf struct
7690         * wget.h: added CONSSLERR
7691         * rbuf.c: ditto
7692
7693         * http.c: Added HTTPS fuctionality.
7694
7695         * retrc.c: Ditto.
7696
7697         * url.c: Ditto.
7698
7699         * init.c: Added opt.httpsproxy.
7700
7701         * options.h: Ditto.
7702
7703         * rbuf.h: Added alternate rbuf struct.
7704
7705         * wget.h: Added CONSSLERR.
7706
7707         * rbuf.c: Ditto.
7708
7709 2000-11-30  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7710
7711         * ftp-ls.c (ftp_parse_unix_ls): Added second parameter
7712         "ignore_perms" to ignore file and directory permissions for
7713         Windows NT FTP server listings.
7714         (ftp_parse_winnt_ls): New function.
7715         (ftp_parse_ls): Parses UNIX and Windows NT listings
7716         separately. Simple heuristics for distinguishing between UNIX and
7717         MS-DOS-like FTP listing provided by Windows NT FTP service.
7718
7719 2000-11-18  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7720
7721         * ftpparse.c, ftpparse.h: New files.
7722
7723         * ftp-ls.c (ftp_parse_ls): Use ftp_parse_unix_ls for UNIX servers
7724         only. Use ftp_parse_nonunix_ls otherwise.
7725         (ftp_parse_nonunix_ls): Stub to the ftpparse library handling all
7726         exotic FTP servers.
7727
7728         * ftp.h (stype): New enum, distinguishes UNIX, VMS, and "other"
7729         FTP servers.
7730
7731         * ftp.c: New static wariables host_type, pwd, and pwd_len. 
7732         (getftp): Support for VMS. Support for FTP servers that do not
7733         place you in the root directory after login.
7734         (ftp_retrieve_list): VMS is silent about the real file size, issue
7735         a more appropriate message.
7736         (ftp_get_listing): Pass host_type to ftp_parse_ls.
7737
7738         * ftp-basic.c (ftp_pwd, ftp_syst): New functions.
7739
7740 2000-11-30  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7741
7742         * ftp-ls.c (ftp_parse_unix_ls): Added second parameter
7743         "ignore_perms" to ignore file and directory permissions for
7744         Windows NT FTP server listings.
7745         (ftp_parse_winnt_ls): New function.
7746         (ftp_parse_ls): Parses UNIX and Windows NT listings
7747         separately. Simple heuristics for distinguishing between UNIX
7748         and MS-DOS-like FTP listing provided by Windows NT FTP service.
7749
7750 2000-11-29  John Summerfield  <summer@OS2.ami.com.au>
7751
7752         * netrc.c (parse_netrc): Get rid of line ending.
7753
7754 2000-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7755
7756         * ftp.c (ftp_retrieve_list): Undo typo "fix" until resolution by
7757         Dan.
7758
7759 2000-11-24  Karl Eichwalder  <ke@suse.de>
7760
7761         * main.c (print_help): Untabify.
7762
7763 2000-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7764
7765         * utils.c (xrealloc_debug): Do the unregister/register thing only
7766         if the pointer has actually changed.
7767         (xmalloc_real): Declare `static' in DEBUG_MALLOC builds.
7768         (xfree_real): Ditto.
7769         (xrealloc_real): Ditto.
7770         (xstrdup_real): Ditto.
7771
7772 2000-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
7773
7774         * ftp.c (getftp): ftp_getaddress() returns a malloc'ed copy of the
7775         string; no need to strdup() it.
7776         (getftp): Make pwd_len a local variable.
7777         (ftp_loop): Free PWD before returning.
7778
7779         * init.c (cleanup): Free opt.ftp_pass only if it's non-NULL.
7780
7781 2000-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
7782
7783         * all: Use xfree() instead of free.
7784
7785         * utils.c (xfree): New function.
7786
7787 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
7788
7789         * url.c (convert_links): HTML-quote the converted string.
7790
7791         * utils.c (html_quote_string): Move here from ftp-ls.c
7792         (html_quote_string): Make non-static; declare in utils.h.
7793         (html_quote_string): Convert SP to &#32;.
7794
7795 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
7796
7797         * ftp.c (getftp): Reformat Jan's code according to GNU coding
7798         standards; remove (debugging?) printf's; use '\0' for the ASCII
7799         zero character.  Use alloca() instead of malloc() for
7800         inter-function temporary allocations.
7801
7802 2000-11-18  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7803
7804         * ftpparse.c, ftpparse.h: New files.
7805
7806         * ftp-ls.c (ftp_parse_ls): Use ftp_parse_unix_ls for UNIX servers
7807         only. Use ftp_parse_nonunix_ls otherwise.
7808         (ftp_parse_nonunix_ls): Stub to the ftpparse library handling all
7809         exotic FTP servers.
7810
7811         * ftp.h (stype): New enum, distinguishes UNIX, VMS, and "other"
7812         FTP servers.
7813
7814         * ftp.c: New static wariables host_type, pwd, and pwd_len. 
7815         (getftp): Support for VMS. Support for FTP servers that do not
7816         place you in the root directory after login.
7817         (ftp_retrieve_list): VMS is silent about the real file size, issue
7818         a more appropriate message.
7819         (ftp_get_listing): Pass host_type to ftp_parse_ls.
7820
7821         * ftp-basic.c (ftp_pwd, ftp_syst): New functions.
7822
7823 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
7824
7825         * hash.c (hash_table_put): Don't overwrite deleted mappings.
7826
7827 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
7828
7829         * hash.c (find_mapping): New function.
7830         (hash_table_get): Use it.
7831         (hash_table_get_pair): Ditto.
7832         (hash_table_exists): Ditto.
7833         (hash_table_remove): Ditto.
7834         (hash_table_remove): Really delete the entry if the mapping
7835         following LOCATION is empty.
7836
7837         * utils.c (string_set_add): Check whether the element has existed
7838         before.
7839
7840         * hash.c (hash_table_get_pair): New function.
7841
7842 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
7843
7844         * http.c (http_process_type): Ignore trailing whitespace; use
7845         strdupdelim().
7846
7847         * recur.c (recursive_retrieve): Use the new `convert' field.
7848         (convert_all_links): Ditto.
7849         (convert_all_links): Don't respect meta_disallow_follow.
7850
7851         * html-url.c (handle_link): Fill out link_relative_p and
7852         link_complete_p.
7853
7854         * url.h (struct _urlpos): Make elements more readable.
7855
7856         * recur.c (recursive_retrieve): Call slist_prepend instead of
7857         slist_append.
7858         (convert_all_links): Call slist_nreverse before iterating through
7859         urls_html.
7860
7861         * utils.c (slist_prepend): New function.
7862         (slist_nreverse): Ditto.
7863
7864 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
7865
7866         * http.c (check_end): Constify.
7867
7868 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
7869
7870         * http.c (http_loop): If username and password are known, try the
7871         `Basic' authentication scheme by default.
7872
7873         * connect.h: Declare test_socket_open.
7874
7875 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
7876
7877         * version.c: Bump version from 1.5.3+dev to 1.7-dev.
7878
7879 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
7880
7881         * http.c (gethttp): Don't use the return value of sprintf().
7882         (gethttp): Inhibit keep-alive if opt.http_keep_alive is 0.
7883
7884 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
7885
7886         * recur.c (recursive_retrieve): Print the "so we don't load"
7887         debugging message only if we really don't load.
7888
7889         * http.c (gethttp): Inhibit keep-alive if proxy is being used.
7890         (gethttp): Don't request keep-alive if keep-alive is inhibited.
7891
7892 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7893
7894         * http.c (gethttp): Make the HTTP persistent connections more
7895         robust.
7896
7897 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7898
7899         * retr.c (get_contents): If use_expected, make sure that the
7900         appropriate amount of data is being read.
7901
7902         * http.c (gethttp): Check for both `Keep-Alive: ...' and
7903         `Connection: Keep-Alive'.
7904
7905         * wget.h (DEBUGP): Call debug_logprintf only if opt.debug is
7906         turned on.
7907
7908 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7909
7910         * http.c (connection_available_p): Use it.
7911
7912         * connect.c (test_socket_open): New function.
7913
7914         * http.c (gethttp): Support persistent connections.  Based on the
7915         ideas, and partly on code, by Sam Horrocks <sam@daemoninc.com>.
7916         (register_persistent): New function.
7917         (connection_available_p): Ditto.
7918         (invalidate_connection): Ditto.
7919
7920 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7921
7922         * url.c (convert_links): Handle UREL2ABS case.
7923
7924         * recur.c (recursive_retrieve): Instead of the list
7925         urls_downloaded, use hash tables dl_file_url_map and
7926         dl_url_file_map.
7927         (convert_all_links): Use them to retrieve data.
7928
7929         * host.c (clean_hosts): Free the hash tables.
7930
7931         * main.c (private_initialize): Call host_init().
7932
7933         * host.c (store_hostaddress): Use a saner, hash table-based data
7934         model.
7935         (realhost): Ditto.
7936         (host_init): Initialize the hash tables.
7937
7938 2000-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7939
7940         * utils.c (slist_append): Eviscerate NOSORT.  Hash tables are now
7941         used for what the sorted slists used to be used for.
7942         (slist_contains): Don't rely on the list being sorted.
7943         (slist_append): Simplify the code.
7944
7945         * recur.c (recursive_cleanup): Use free_string_set.
7946
7947         * utils.c (string_set_add, string_set_exists, string_set_free):
7948         New functions for easier freeing of hash tables whose keys are
7949         strdup'ed strings.
7950
7951         * recur.c (recursive_retrieve): Use the hash table functions for
7952         storing undesirable URLs.
7953
7954         * hash.c: New file.
7955
7956 2000-11-17  Hrvoje Niksic  <hniksic@arsdigita.com>
7957
7958         * main.c (private_initialize): Call url_init.
7959         (main): Call private_initialize.
7960
7961         * url.c (unsafe_char_table): New table.
7962         (UNSAFE_CHAR): Use it.
7963         (init_unsafe_char_table): New function.
7964         (url_init): New function; call init_unsafe_char_table.
7965
7966 2000-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
7967
7968         * mswindows.h: Define snprintf and vsnprintf to _snprintf and
7969         _vsnprintf respectively.
7970
7971 2000-11-15  Hrvoje Niksic  <hniksic@arsdigita.com>
7972
7973         * config.h.in: Do the _XOPEN_SOURCE and _SVID_SOURCE things only
7974         on Linux.
7975
7976 2000-11-15  Hrvoje Niksic  <hniksic@arsdigita.com>
7977
7978         * html-url.c (handle_link): Handle HTML fragment identifiers.
7979
7980         * recur.c (recursive_retrieve): If norobot info is respected and
7981         the file is specified not to be followed by robots, respect that.
7982
7983         * html-url.c (collect_tags_mapper): Handle <meta name=robots
7984         content=X>.  For us the important cases are where X is NONE or
7985         where X contains NOFOLLOW.
7986         (get_urls_html): Propagate that information to the caller.
7987
7988 2000-11-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7989
7990         * url.c (convert_links): Unlink the file we might be reading from
7991         before writing to it.
7992         (convert_links): Use alloca instead of malloc for
7993         filename_plus_orig_suffix.
7994
7995 2000-11-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7996
7997         * host.c (realhost): Add HOST to the list with quality==0 only if
7998         it wasn't already there.
7999         Based on analysis by Lu Guohan <feng@public.bjnet.edu.cn>.
8000
8001 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8002
8003         * url.c (get_urls_file): Ditto.
8004         (convert_links): Ditto.
8005
8006         * html-url.c (get_urls_html): Use read_file() instead of
8007         load_file().
8008
8009         * utils.c (read_file): New function, instead of the old
8010         load_file().
8011         (read_file_free): Ditto.
8012
8013         * url.c (findurl): Search only for the supported protocols.
8014         (convert_links): Use fwrite() when writing out a region of
8015         characters.
8016
8017 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8018
8019         * ftp-ls.c: Move html_quote_string and ftp_index here.
8020
8021         * url.c: Remove get_urls_html, since that's now in html-url.c.
8022
8023         * html-url.c: New file.
8024
8025         * html-parse.c: New file.
8026
8027 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8028
8029         * init.c (run_wgetrc): Don't bother killing off '\r' since
8030         pars_line() skips whitespace at end of line anyway.
8031         (parse_line): Oops, it didn't.  Now it does.
8032
8033         * recur.c (parse_robots): Ditto here.
8034
8035         * ftp-ls.c (ftp_parse_unix_ls): Kill off the newline character
8036         manually because read_whole_line no longer does.
8037
8038         * utils.c (read_whole_line): Rewrite to: a) use less memory
8039         (reallocates to needed size after work), b) work faster -->
8040         fgets() instead of getc, c) be more correct --> doesn't kill the
8041         newline character at the end of line.
8042
8043 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8044
8045         * init.c (comind): Initialize MAX to array size - 1.
8046
8047 2000-11-08  Hrvoje Niksic  <hniksic@arsdigita.com>
8048
8049         * url.c (construct): Changed last_slash[-1] to *(last_slash - 1).
8050         Suggested by Edward J. Sabol.
8051
8052 2000-11-08  Hrvoje Niksic  <hniksic@arsdigita.com>
8053
8054         * url.c (construct): Handle the case where host name is not
8055         followed by a slash.
8056
8057 2000-11-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8058
8059         * init.c: commands[] need to be sorted!  ("base" wasn't.)
8060
8061 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
8062
8063         * wget.h (DO_REALLOC_FROM_ALLOCA): Use braces to disambiguate
8064         `if'.
8065
8066 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
8067
8068         * url.c (construct): Insert unneeded initialization for the
8069         compiler to shut up.
8070
8071         * config.h.in: Define _XOPEN_SOURCE to 500 to get the prototype
8072         for strptime() (*duh*).  Define _SVID_SOURCE to get S_IFLNK which
8073         otherwise gets lost when you define _XOPEN_SOURCE.
8074
8075         * utils.c (touch): Include the file name in the error message.
8076         From Debian.
8077
8078 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
8079
8080         * log.c (logvprintf): Use vsnprintf() in all cases.  If necessary,
8081         resize the buffer to fit the formated message.  That way, messages
8082         of arbitrary size may be printed.
8083         (logvprintf): Use saved_append() to optionally log the last
8084         several lines of output.
8085         (logputs): Ditto.
8086         (log_close): Adapt to new data structures.
8087         (log_dump): Ditto.
8088         (redirect_output): Print messages to stderr, not to stdout.
8089
8090         * log.c (saved_append_1): New function.  Replaces the old logging
8091         system ("log all output until 10M characters") with a new, much
8092         more reasonable one ("log last screenful of text").
8093         (saved_append): New function; call saved_append_1.
8094         (free_log_line): New function.
8095
8096 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
8097
8098         * url.c (construct): Fix comment.
8099         (find_last_char): Document.
8100
8101 2000-11-04  Hrvoje Niksic  <hniksic@arsdigita.com>
8102
8103         * snprintf.c: New file.
8104
8105 2000-11-03  Hrvoje Niksic  <hniksic@arsdigita.com>
8106
8107         * wget.h: If HAVE_STDARG_H is not defined, don't declare argument
8108         types to logprintf() and debug_logprintf().
8109
8110 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8111
8112         * ftp.c (ftp_loop_internal): Hide the password from the URL when
8113         printing non-verbose.  Problem spotted by Dariusz Mlynarczyk
8114         <darekm@bydg.lomac.com.pl>.
8115
8116 2000-11-02  Junio Hamano  <junio@twinsun.com>
8117
8118         * ftp-basic.c (ftp_login): Make comparison case-insensitive.
8119
8120 2000-11-02  Tyler Riddle  <triddle@liquidmarket.com>
8121
8122         * http.c (known_authentication_scheme_p): Recognize NTML
8123         authentication.
8124         (create_authorization_line): Treat NTML the same as `Basic'.
8125
8126 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8127
8128         * retr.c (retrieve_url): Free url before returning.
8129         (retrieve_url): Free mynewloc before returning.
8130         Spotted by Mark A. Mankins <Mankins_Mark@prc.com>.
8131
8132 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8133
8134         * url.c (parseurl): Remove possible reading past the end of
8135         sup_protos[].  Spotted by Mark A. Mankins <Mankins_Mark@prc.com>.
8136
8137 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8138
8139         * main.c (main): In case of opt.downloaded overflowing, print
8140         <overflow> instead of a totally bogus random value.
8141
8142         * retr.c (retrieve_from_file): Ditto.
8143
8144         * recur.c (recursive_retrieve): Ditto.
8145
8146         * main.c (main): Ditto.
8147
8148         * http.c (http_loop): Ditto.
8149
8150         * ftp.c (ftp_loop_internal): Use downloaded_increase() instead of
8151         `+=', and downloaded_exceeds_quota() instead of the simple-minded
8152         check.
8153         (ftp_retrieve_list): Ditto.
8154         (ftp_retrieve_dirs): Ditto.
8155         (ftp_retrieve_glob): Ditto.
8156
8157         * retr.c (downloaded_increase): New function.  Notice overflows of
8158         opt.downloaded.
8159         (downloaded_exceeds_quota): Make sure that opt.downloaded is not
8160         used if it overflowed.
8161
8162         * options.h (struct options): New member downloaded_overflow.
8163
8164 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8165
8166         * wget.h (enum): Remove extra space after last enumeration.
8167
8168 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8169
8170         * main.c (main): Use legible_very_long() for printing
8171         opt.downloaded.
8172
8173         * utils.c (legible_1): New function that operates on strings and
8174         does the brunt of legible()'s work.
8175         (legible): Use legible_1().
8176         (legible_very_long): New function; dump the argument with
8177         sprintf(), and call legible_1().
8178
8179         * options.h (struct options): Use VERY_LONG_TYPE for
8180         opt.downloaded.
8181
8182         * sysdep.h (VERY_LONG_TYPE): Define it to have a 64-bit or greater
8183         type.
8184
8185         * config.h.in: Make sure that SIZEOF_LONG and SIZEOF_LONG_LONG get
8186         defined.  Define HAVE_LONG_LONG if long long is available.
8187
8188 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8189
8190         * utils.c (long_to_string): Update with a later, better version.
8191
8192 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8193
8194         * url.c (path_simplify_with_kludge): New function.
8195         (path_simplify_with_kludge): Disable it.  Instead...
8196         (parse_dir): ...make sure that at this point the right thing is
8197         done, i.e. that "query" part of the URL (?...) is always assigned
8198         to the file, never to the directory portion of the path.
8199
8200 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8201
8202         * retr.c (retrieve_url): Detect redirection cycles.
8203
8204 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8205
8206         * url.c (get_urls_html): Decode HTML entities using
8207         html_decode_entities.
8208
8209         * html.c (htmlfindurl): Don't count the `#' in numeric entities
8210         (&#NNN;) as an HTML fragemnt.
8211         (html_decode_entities): New function.
8212
8213 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8214
8215         * html.c (htmlfindurl): Fix recognition of # HTML fragments.
8216
8217 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8218
8219         * url.c (construct): Rewritten for clarity.  Avoids the
8220         unnecessary copying and stack-allocation the old version
8221         performed.
8222
8223 2000-10-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8224
8225         * ftp.c (getftp): Ditto.
8226
8227         * http.c (gethttp): Rewind the stream when retrying from scratch.
8228
8229 2000-10-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8230
8231         * retr.c (retrieve_url): Use url_concat() to handle relative
8232         redirections instead of /ad hoc/ code.
8233
8234         * url.c (url_concat): New function encapsulating weird
8235         construct().
8236         (urllen_http_hack): New function.
8237         (construct): When constructing new URLs, recognize that `?' does
8238         not form part of the file name in HTTP.
8239
8240 2000-10-13  Adrian Aichner  <adrian@xemacs.org>
8241
8242         * retr.c: Add msec timing support for WINDOWS.
8243         * retr.c (reset_timer): GetSystemTime() on WINDOWS.
8244         * retr.c (elapsed_time): Calculate delta time to msec on WINDOWS.
8245
8246 2000-10-27  Dan Harkless  <wget@harkless.org>
8247
8248         * retr.c (retrieve_url): Manually applied T. Bharath
8249         <TBharath@responsenetworks.com>'s patch to get wget to grok
8250         illegal relative URL redirects.  Reformatted and re-commented it.
8251
8252 2000-10-23  Dan Harkless  <wget@harkless.org>
8253
8254         * connect.c (make_connection and bindport): Manually applied Rob
8255         Mayoff <mayoff@dqd.com>'s 1.5.3 patch to add --bind-address,
8256         changing coding style to GNU's.
8257
8258         * ftp.c (ftp_loop_internal): --delete-after wasn't implemented for
8259         files downloaded via FTP.  Per a comment, .listing files were not
8260         counted towards number of bytes and files downloaded because they're 
8261         deleted anyway.  Well, they aren't under -nr, so count them then.
8262
8263         * init.c: Manually applied Rob Mayoff's 1.5.3 patch to add
8264         --bind-address, alphabetizing, changing coding style to GNU's,
8265         commenting, and renaming cmd_ip_address() to cmd_address() to
8266         imply hostnames also okay.
8267                 
8268         * main.c (main): --delete-after didn't delete the root of the
8269         tree.  Ignore --convert-links if --delete-after was specified.
8270         Manually applied Rob Mayoff's 1.5.3 patch to add --bind-address,
8271         fixing duplicate use of added-since-1.5.3 case value.
8272         (print_help): Clarified that --delete-after deletes local files.
8273         Rob forgot to add a line for his new --bind-address option.
8274                 
8275         * options.h (struct options): Manually applied Rob Mayoff's patch
8276         to add --bind-address (bind_address structure member).
8277                 
8278         * recur.c (recursive_retrieve): Improved comment; added DEBUGP().
8279         Ignore --convert-links if --delete-after was specified.
8280                 
8281         * retr.c (retrieve_from_file): Just added a DEBUGP().
8282                 
8283 2000-10-19  Dan Harkless  <wget@harkless.org>
8284
8285         * ftp.c (ftp_loop_internal): downloaded_file() enumerators changed.
8286         (getftp): Applied Piotr Sulecki <Piotr.Sulecki@ios.krakow.pl>'s
8287         patch to work around FTP servers that incorrectly respond to the
8288         "REST" command with the remaining size rather than the total file size.
8289                 
8290         * http.c (gethttp): Improved a comment and added code to tack on
8291         ".html" to text/html files without that extension when -E specified.
8292         (http_loop): Use new downloaded_file() enumerators and deal with
8293         the case of gethttp() called xrealloc() on u->local.
8294
8295         * init.c (commands): Added new "htmlextension" command.
8296         Also renamed John Daily's cmd_quad() to the more descriptive
8297         cmd_lockable_boolean(), alpha-sorted the CMD_DECLARE()s and
8298         removed duplicate cmd_boolean() declaration.
8299
8300         * main.c (print_help): Added my new -E / --html-extension option.
8301         (main): Undocumented --email-address option previously used -E synonym.
8302         Stole it away for the much more deserving --html-extension's use.
8303
8304         * options.h (struct options): Added html_extension field.
8305
8306         * url.c (convert_links): URL X that we saved as X.html locally due
8307         to -E needs to be backed up as X.orig, not X.html.orig.  Added comments.
8308         (downloaded_file): Now remembers if we added .html extension to a file.
8309
8310         * url.h (downloaded_file_t): Added extra enumerators to support above.
8311         (downloaded_file): Now takes and returns a downloaded_file_t.
8312
8313         * wget.h (unnamed "dt" enum): Added ADDED_HTML_EXTENSION enumerator.
8314         
8315 2000-10-09  Dan Harkless  <wget@harkless.org>
8316
8317         * html.c (htmlfindurl): Added unneeded initialization to quiet warning.
8318                 
8319         * main.c (print_help): Clarified what --retr-symlinks does.
8320         
8321 2000-09-15  John Daily  <jdaily@cyberdude.com>
8322
8323         * init.c: Add support for "always" and "never" values to allow
8324         .wgetrc to override commandline (useful e.g. with .pm files
8325         calling `wget --passive-ftp' when your firewall doesn't allow that).
8326
8327         * ftp.c (getftp): passive_ftp is first option to support always/never.
8328
8329 2000-08-30  Dan Harkless  <wget@harkless.org>
8330
8331         * ftp.c (ftp_retrieve_list): Use new INFINITE_RECURSION #define.
8332         
8333         * html.c: htmlfindurl() now takes final `dash_p_leaf_HTML' parameter.
8334         Wrapped some > 80-column lines.  When -p is specified and we're at a 
8335         leaf node, do not traverse <A>, <AREA>, or <LINK> tags other than 
8336         <LINK REL="stylesheet">.
8337         
8338         * html.h (htmlfindurl): Now takes final `dash_p_leaf_HTML' parameter.
8339         
8340         * init.c: Added new -p / --page-requisites / page_requisites option.
8341
8342         * main.c (print_help): Clarified that -l inf and -l 0 both allow
8343         infinite recursion.  Changed the unhelpful --mirrior description
8344         to simply give the options it's equivalent to.  Added new -p option.
8345         (main): Added some comments; handle new -p / --page-requisites.
8346         
8347         * options.h (struct options): Added new page_requisites field.
8348
8349         * recur.c: Changed "URL-s" to "URLs" and "HTML-s" to "HTMLs".
8350         Calculate and pass down new `dash_p_leaf_HTML' parameter to
8351         get_urls_html().  Use new INFINITE_RECURSION #define.
8352
8353         * retr.c: Changed "URL-s" to "URLs".  get_urls_html() now takes
8354         final `dash_p_leaf_HTML' parameter.
8355
8356         * url.c: get_urls_html() and htmlfindurl() now take final
8357         `dash_p_leaf_HTML' parameter.
8358
8359         * url.h (get_urls_html): Now takes final `dash_p_leaf_HTML' parameter.
8360
8361         * wget.h: Added some comments and new INFINITE_RECURSION #define.
8362         
8363 2000-08-23  Dan Harkless  <wget@harkless.org>
8364
8365         * main.c (print_help): -B / --base was not mentioned.
8366
8367 2000-08-22  Dan Harkless  <wget@harkless.org>
8368
8369         * main.c (print_help): Modified -nc description to mention that it
8370         also prevents the creation of multiple versions of the same file
8371         with ".<number>" suffixes.
8372
8373 2000-07-14  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8374
8375         * retr.c (retrieve_url): Consistently strdup opt.referer when
8376         setting u->referer.
8377
8378 2000-06-09  Dan Harkless  <wget@harkless.org>
8379
8380         * main.c (print_help): --help output for --waitretry was over 80 cols.
8381
8382 2000-06-09  Hrvoje Niksic  <hniksic@iskon.hr>
8383
8384         * url.c (encode_string): Fix comment.
8385         Suggested by Herold Heiko <Heiko.Herold@previnet.it>.
8386
8387 2000-06-01  Const Kaplinsky  <const@ce.cctpu.edu.ru>
8388
8389         * ftp.c (ftp_retrieve_list): Change permissions only on plain
8390         files.
8391
8392 2000-06-01  Hrvoje Niksic  <hniksic@iskon.hr>
8393
8394         * url.c (str_url): Print the port number only if it's different
8395         from the default port number for that protocol.
8396
8397 2000-05-22  Dan Harkless  <wget@harkless.org>
8398
8399         * main.c (print_help): Added --help line for Damir Dzeko
8400         <ddzeko@zesoi.fer.hr>'s until-now-undocumented --referer option.
8401         Removed comments that --referer and --waitretry were undocumented.
8402         Changed "`.wgetrc' command" to "`.wgetrc'-style command" on --help
8403         line for --execute.
8404
8405 2000-05-18  Hrvoje Niksic  <hniksic@iskon.hr>
8406
8407         * ftp.c (getftp): Ditto.
8408
8409         * http.c (gethttp): Check for return value of fclose/fflush.
8410
8411 2000-04-12  Hrvoje Niksic  <hniksic@iskon.hr>
8412
8413         * host.c (store_hostaddress): Instead of shifting ADDR, start
8414         copying from the correct address.
8415
8416 2000-04-12  Hrvoje Niksic  <hniksic@iskon.hr>
8417
8418         * http.c (gethttp): Don't free REQUEST -- it was allocated with
8419         alloca().
8420         Pointed out by Gisle Vanem <gvanem@eunet.no>.
8421
8422 2000-04-04  Dan Harkless  <wget@harkless.org>
8423
8424         * host.c (store_hostaddress): R. K. Owen's patch introduces a
8425         "left shift count >= width of type" warning on 32-bit
8426         architectures.  Got rid of it by tricking the compiler w/ a variable.
8427         
8428         * url.c (UNSAFE_CHAR): The macro didn't include all the illegal
8429         characters per RFC1738, namely everything above '~'.  It also
8430         generated a warning on OSes where char =~ unsigned char.  Fixed.
8431         
8432 1998-10-17  Hrvoje Niksic  <hniksic@srce.hr>
8433
8434         * http.c (http_process_type): Removed needless strdup(), a memory
8435         leak.
8436
8437 1998-09-25  Hrvoje Niksic  <hniksic@srce.hr>
8438
8439         * html.c (htmlfindurl): Set PH to the first occurrence of `#'.
8440
8441 1998-09-25  Simon Munton  <simonm@m4data.co.uk>
8442
8443         * init.c (wgetrc_file_name): Don't free HOME under Windows.
8444
8445 1998-12-01  "R. K. Owen"  <rkowen@Nersc.GOV>
8446
8447         * host.c (store_hostaddress): Fix for big endian 64-bit machines.
8448
8449 1998-12-01  Hrvoje Niksic  <hniksic@srce.hr>
8450
8451         * url.c (UNSAFE_CHAR): New macro.
8452         (contains_unsafe): Use it.
8453         (encode_string): Ditto.
8454
8455 1998-12-01  Hrvoje Niksic  <hniksic@srce.hr>
8456
8457         * main.c (i18n_initialize): Use LC_MESSAGES only if available.
8458
8459 2000-03-31  Hrvoje Niksic  <hniksic@srce.hr>
8460
8461         * Use TOUPPER/TOLOWER.
8462
8463 1998-12-22  Alexander V. Lukyanov  <lav@yars.free.net>
8464
8465         * ftp-opie.c (btoe): Zero-terminate OSTORE.
8466
8467 2000-03-21  Hrvoje Niksic  <hniksic@iskon.hr>
8468
8469         * wget.h (DO_REALLOC_FROM_ALLOCA): Ditto.
8470
8471         * sysdep.h (ISALNUM): New macro.
8472         (TOLOWER): Ditto.
8473         (TOUPPER): Ditto.
8474
8475 2000-03-10  Dan Harkless  <wget@harkless.org>
8476
8477         * html.c (idmatch): Implemented checking of my new --follow-tags
8478         and --ignore-tags options.
8479         
8480         * init.c (commands): Added comment reminding people adding new
8481         entries doing allocation to add corresponding freeing in cleanup().
8482         (commands): Added new followtags and ignoretags commands.
8483         (cleanup): Free storage for new followtags and ignoretags.
8484         
8485         * main.c: Use of "comma-separated list" was random -- normalized
8486         it.  Did some alphabetization.  Added comments pointing out
8487         "Options without arguments" and "Options accepting an argument"
8488         sections of long_options[].  Added new options --follow-tags and
8489         -G / --ignore-tags.  Added comment that Damir's --referer is
8490         currently undocumented.  Added comment that Heiko's --waitretry is
8491         partially undocumented (mentioned in --help but not in
8492         wget.texi).  Moved improperly sorted 24, 129, and 'G' cases.
8493         
8494         * options.h (struct options): Added new fields follow_tags and
8495         ignore_tags. 
8496         
8497         * wget.h: Added "#define EQ 0" so we can say "strcmp(a, b) == EQ".
8498         
8499 2000-03-02  Dan Harkless  <wget@harkless.org>
8500
8501         * ftp.c (ftp_loop_internal): Heiko introduced "suggest explicit
8502         braces to avoid ambiguous `else'" warnings.  Eliminated them.
8503         
8504         * http.c (gethttp): Dan Berger's query string patch is totally
8505         bogus.  If you have two different URLs, gen_page.cgi?page1 and
8506         get_page.cgi?page2, they'll both be saved as get_page.cgi and the
8507         second will overwrite the first.  Also, parameters to implicit
8508         CGIs, like "http://www.host.com/db/?2000-03-02" cause the URLs to
8509         be printed with trailing garbage characters, and could seg fault.
8510         Backing out the patch, which Dan B. informed me by email was just
8511         a kludge to download StarOffice from Sun made necessary due to
8512         wget's unconditional escaping of certain characters (room for an
8513         option there?).
8514         (http_loop): Heiko introduced "suggest explicit braces to avoid
8515         ambiguous `else'" warnings.  Eliminated them.
8516         
8517         * main.c: Heiko's --wait / --waitretry backwards compatibility
8518         code looks to have been totally untested -- automatic variable
8519         'wr' was used without being initialized, and a long int was passed
8520         into setval()'s char* val parameter.
8521         
8522         * recur.c (parse_robots): Applied Edward J. Sabol
8523         <sabol@alderaan.gsfc.nasa.gov>'s patch for Guan Yang's reported
8524         problem with "User-agent:<space>*<space>" lines in robots.txt.
8525         
8526         * url.c (parseurl, str_url): Removing Dan Berger's code (see
8527         http.c above for explanation).
8528         
8529 1999-08-25  Heiko Herold  <Heiko.Herold@previnet.it>
8530
8531         * ftp.c: Respect new option waitretry.
8532
8533 2000-01-30  Damir Dzeko  <ddzeko@zesoi.fer.hr>
8534
8535         * http.c (gethttp): Send custom Referer, if required.
8536
8537 1999-09-24  Charles G Waldman  <cgw@fnal.gov>
8538
8539         * netrc.c (parse_netrc): Allow passwords to contain spaces.
8540
8541         * netrc.c (parse_netrc): New function.
8542
8543 1999-09-17  Dan Berger  <dberger@ix.netcom.com>
8544
8545         * http.c (gethttp): Send it.
8546
8547         * url.c (parseurl): Detect query string in HTTP URL-s.
8548         (str_url): Print it.
8549
8550 2000-03-02  HIROSE Masaaki  <hirose31@t3.rim.or.jp>
8551
8552         * html.c (html_allow): Add <link href=...> and <script src=...>.
8553
8554 1999-05-02  andrew deryabin  <djsf@softhome.net>
8555
8556         * http.c (gethttp): Specify port in `Host' header only if it's
8557         different from 80.
8558
8559 1998-11-03  Edward J. Sabol  <sabol@alderaan.gsfc.nasa.gov>
8560
8561         * recur.c (recursive_retrieve): If a finite maximum depth is
8562         specified, and we're are already at that depth, don't download the
8563         HTML file for parsing.
8564
8565 2000-03-01  Dan Harkless  <wget@harkless.org>
8566
8567         * ftp.c (ftp_loop_internal): Call new downloaded_file() function,
8568         even though we don't do conversion on HTML files retrieved via
8569         FTP, so _current_ usage of downloaded_file() makes this call unneeded. 
8570         (ftp_retrieve_list): Added a comment saying where we need to
8571         stat() a .orig file if FTP'd HTML file conversion is ever implemented.
8572         (ftp_retrieve_list): "Local file '%s' is more recent," is sometimes
8573         a lie -- reworded as "Server file no newer than local file '%s' --".
8574         
8575         * http.c (http_loop): Fixed a typo and clarified a comment.
8576         (http_loop): When -K and -N are specified together, compare size
8577         and timestamp of server file X against local file X.orig (if
8578         extant) rather than converted local file X.
8579         (http_loop): "Local file '%s' is more recent," is sometimes a lie
8580         -- reworded as "Server file no newer than local file '%s' --".
8581         (http_loop): Call new downloaded_file() function to prevent
8582         wrongful overwriting of .orig file when -N is specified.
8583         
8584         * url.c (convert_links): When -K specified, only rename X to
8585         X.orig if downloaded_file() returns TRUE.  Otherwise when we skip
8586         file X due to -N, we clobber an X.orig from a previous invocation.
8587         (convert_links): Call the failsafe xstrdup(), not the real strdup().
8588         (convert_links): Added a note asking anyone who understands how
8589         multiple URLs can correspond to a single file to comment it.
8590         (downloaded_file): Added this new function.
8591         
8592         * url.h (downloaded_file): Added prototype for this new function
8593         as well as its downloaded_file_t enum type.
8594
8595         * wget.h (boolean): Added this new typedef and TRUE and FALSE #defines.
8596
8597 2000-02-29  Dan Harkless  <wget@harkless.org>
8598
8599         * version.c: Upped version to developer-only "1.5.3+dev".
8600
8601 2000-02-18  Dan Harkless  <wget@harkless.org>
8602
8603         * init.c (backup_converted): Added this new option.
8604
8605         * main.c (-K / --backup-converted): Added this new option.
8606
8607         * options.h (backup_converted): Added this new option.
8608
8609         * url.c (convert_links): When backup_converted is specified, save
8610         file X as X.orig before converting.
8611
8612         * url.h (urlpos): Fixed typo -- said "Rekative" instead of "Relative".
8613
8614 1998-09-21  Hrvoje Niksic  <hniksic@srce.hr>
8615
8616         * version.c: Wget 1.5.3 is released.
8617
8618 1998-09-21  Hrvoje Niksic  <hniksic@srce.hr>
8619
8620         * host.c (ftp_getaddress): Don't warn when reverse-lookup of local 
8621         address doesn't yield FQDN.
8622
8623 1998-09-21  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
8624
8625         * cmpt.c (strerror): Fix declaration of sys_errlist.
8626
8627 1998-09-11  Hrvoje Niksic  <hniksic@srce.hr>
8628
8629         * main.c (main): Don't use an array subscript as the first
8630         argument to STRDUP_ALLOCA.
8631         From Kaveh R. Ghazi.
8632
8633 1998-09-11  Szakacsits Szabolcs  <szaka@sienet.hu>
8634
8635         * html.c (htmlfindurl): Download table background.
8636
8637 1998-09-11  Hans Grobler  <grobh@conde.ee.sun.ac.za>
8638
8639         * init.c (parse_line): Would free *com before allocating it.
8640         (parse_line): Would free com instead of *com.
8641
8642 1998-09-10  Howard Gayle  <howard@fjst.com>
8643
8644         * url.c (get_urls_html): Would drop the last character of the
8645         link.
8646
8647 1998-09-10  Hrvoje Niksic  <hniksic@srce.hr>
8648
8649         * http.c (http_loop): Don't print status code if quiet.
8650
8651 1998-09-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8652
8653         * log.c: Use <stdarg.h> only when __STDC__.
8654
8655 1998-09-10  Adam D. Moss  <adam@foxbox.org>
8656
8657         * html.c (htmlfindurl): Download <layer src=...>.
8658
8659 1998-09-10  Howard Gayle  <howard@fjst.com>
8660
8661         * ftp.c (ftp_retrieve_list): Don't update the time stamp of a file 
8662         not retrieved.
8663
8664 1998-06-27  Hrvoje Niksic  <hniksic@srce.hr>
8665
8666         * utils.c: Include <libc.h> on NeXT.
8667
8668 1998-06-26  Heinz Salzmann  <heinz.salzmann@intermetall.de>
8669
8670         * url.c (get_urls_html): Fix calculation of URL position.
8671
8672 1998-06-23  Hrvoje Niksic  <hniksic@srce.hr>
8673
8674         * version.c: Wget 1.5.2 is released.
8675
8676 1998-06-23  Dave Love  <d.love@dl.ac.uk>
8677
8678         * ftp.c, init.c, netrc.c: Include errno.h.
8679
8680         * http.c: Include errno.h and time header.
8681
8682         * Makefile.in (exext): Define.
8683         (install.bin, uninstall.bin): Use it.
8684
8685 1998-06-21  Hrvoje Niksic  <hniksic@srce.hr>
8686
8687         * http.c (http_loop): Don't attempt to compare local and remote
8688         sizes if the remote size is unknown.
8689
8690 1998-06-16  Hrvoje Niksic  <hniksic@srce.hr>
8691
8692         * url.c (get_urls_html): Use malloc() instead of alloca in the
8693         loop.
8694
8695 1998-06-13  Hrvoje Niksic  <hniksic@srce.hr>
8696
8697         * version.c: Wget 1.5.2-b4 is released.
8698
8699 1998-06-13  Hrvoje Niksic  <hniksic@srce.hr>
8700
8701         * url.c (get_urls_html): Ignore spaces before and after the URI.
8702
8703 1998-06-08  Wanderlei Antonio Cavassin  <cavassin@conectiva.com.br>
8704
8705         * ftp.c (getftp): Translate `done'.
8706
8707 1998-06-06  Hrvoje Niksic  <hniksic@srce.hr>
8708
8709         * version.c: Wget 1.5.2-b3 is released.
8710
8711 1998-06-06  Alexander Kourakos  <awk@bnt.com>
8712
8713         * init.c (cleanup): Close dfp, don't free it.
8714
8715 1998-06-06  Hrvoje Niksic  <hniksic@srce.hr>
8716
8717         * utils.c (make_directory): Twiddle.
8718
8719         * config.h.in: Added template for access().
8720
8721 1998-06-05  Mathieu Guillaume  <mat@cythere.com>
8722
8723         * html.c (htmlfindurl): Download <input src=...>
8724
8725 1998-06-03  Hrvoje Niksic  <hniksic@srce.hr>
8726
8727         * utils.c (file_exists_p): Use access() with two arguments.
8728
8729 1998-05-27  Martin Kraemer  <Martin.Kraemer@mch.sni.de>
8730
8731         * netrc.c (parse_netrc): Correct logic.
8732
8733 1998-05-27  Hrvoje Niksic  <hniksic@srce.hr>
8734
8735         * ftp.c (getftp): Added `break'; suggested by Lin Zhe Min
8736         <ljm@ljm.wownet.net>.
8737
8738 1998-05-24  Hrvoje Niksic  <hniksic@srce.hr>
8739
8740         * version.c: Wget 1.5.2-b2 is released.
8741
8742 1998-05-18  Juan Jose Rodriguez  <jcnsoft@jal1.telmex.net.mx>
8743
8744         * mswindows.h: Don't translate mkdir to _mkdir under Borland.
8745
8746 1998-05-17  Hrvoje Niksic  <hniksic@srce.hr>
8747
8748         * retr.c (elapsed_time): Return correct value when
8749         HAVE_GETTIMEOFDAY is undefined.
8750
8751 1998-05-13  Hrvoje Niksic  <hniksic@srce.hr>
8752
8753         * version.c: Wget 1.5.2-b1 is released.
8754
8755 1998-05-08  Hrvoje Niksic  <hniksic@srce.hr>
8756
8757         * getopt.c (_getopt_internal): Use exec_name instead of argv[0].
8758         (_getopt_internal): Don't translate `#if 0'-ed strings.
8759
8760 1998-05-06  Douglas E. Wegscheid  <wegscd@whirlpool.com>
8761
8762         * mswindows.c (ws_handler): Use fork_to_background().
8763
8764 1998-05-05  Hrvoje Niksic  <hniksic@srce.hr>
8765
8766         * version.c: Wget 1.5.1 is released.
8767
8768 1998-05-05  Hrvoje Niksic  <hniksic@srce.hr>
8769
8770         * http.c (parse_http_status_line): Avoid `minor' and `major'
8771         names.
8772
8773 1998-05-02  Hrvoje Niksic  <hniksic@srce.hr>
8774
8775         * utils.c (mkdirhier): Renamed to make_directory.
8776
8777 1998-05-01  Hrvoje Niksic  <hniksic@srce.hr>
8778
8779         * mswindows.c (fork_to_background): Define under Windows.
8780
8781         * utils.c (fork_to_background): New function.
8782
8783         * html.c (htmlfindurl): Removed rerdundant casts.
8784
8785 1998-05-01  Douglas E. Wegscheid  <wegscd@whirlpool.com>
8786
8787         * mswindows.c (ws_mypath): Cache the path.
8788
8789 1998-04-30  Douglas E. Wegscheid  <wegscd@whirlpool.com>
8790
8791         * ftp.h: Prefix enum ftype members with FT_.
8792
8793         * ftp-ls.c, ftp.c, html.h: Adjust accordingly.
8794
8795         * mswindows.h: Use stat under Borland, _stat under MSVC.
8796
8797 1998-04-28  Hrvoje Niksic  <hniksic@srce.hr>
8798
8799         * http.c (known_authentication_scheme_p): New function.
8800         (gethttp): Handle authorization more correctly.
8801
8802         * ftp-basic.h: Removed.
8803
8804         * cmpt.h: Removed.
8805
8806         * utils.c: Include <unistd.h> before <pwd.h>; needed under SunOS
8807         with gcc 2.8.
8808         (numdigit): Use `while' loop.
8809
8810         * http.c (create_authorization_line): Detect authentication
8811         schemes case-insensitively.
8812
8813         * http.c (extract_header_attr): Use strdupdelim().
8814         (digest_authentication_encode): Move declaration of local
8815         variables to smaller scope.
8816         (digest_authentication_encode): Reset REALM, OPAQUE and NONCE.
8817         (create_authorization_line): Detect authentication schemes
8818         case-insensitively.
8819
8820         * utils.c (touch): Constify.
8821
8822         * http.c (gethttp): Report a nicer error when no data is received.
8823
8824         * rbuf.h (RBUF_READCHAR): Ditto.
8825
8826         * ftp-basic.c (ftp_response): Use sizeof.
8827
8828 1998-04-27  Hrvoje Niksic  <hniksic@srce.hr>
8829
8830         * retr.c (print_percentage): EXPECTED is long, not int.
8831         (print_percentage): Use floating-point arithmetic to avoid
8832         overflow with large files' sizes multiplied with 100.
8833
8834 1998-04-27  Gregor Hoffleit  <flight@mathi.uni-heidelberg.de>
8835
8836         * config.h.in: Added pid_t stub.
8837
8838         * sysdep.h (S_ISREG): Moved here from mswindows.h (NeXT doesn't
8839         define it).
8840
8841 1998-04-20  Hrvoje Niksic  <hniksic@srce.hr>
8842
8843         * version.c: Wget 1.5.0 is released.
8844
8845 1998-04-18  Hrvoje Niksic  <hniksic@srce.hr>
8846
8847         * url.c (str_url): Ditto.
8848
8849         * ftp-basic.c (ftp_rest): Use new name.
8850
8851         * utils.c (long_to_string): Renamed from prnum().
8852
8853 1998-04-16  Hrvoje Niksic  <hniksic@srce.hr>
8854
8855         * version.c: Wget 1.5-b17 is released.
8856
8857 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
8858
8859         * headers.c (header_get): New argument FLAGS.
8860
8861         * http.c (gethttp): If request is malformed, bail out of the
8862         header loop.
8863         (gethttp): Check for empty header *after* the status line checks.
8864         (gethttp): Disallow continuations for status line.
8865
8866 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
8867
8868         * version.c: Wget 1.5-b16 is released.
8869
8870 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
8871
8872         * init.c (commands): Renamed `always_rest' to `continue'.
8873
8874 1998-04-05  Hrvoje Niksic  <hniksic@srce.hr>
8875
8876         * all: Use it.
8877
8878         * log.c (logputs): New argument.
8879         (logvprintf): Ditto.
8880         (logprintf): Ditto.
8881
8882 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
8883
8884         * http.c (http_atotm): Update comment.
8885
8886         * main.c (i18n_initialize): Set LC_MESSAGES, not LC_ALL.
8887
8888         * wget.h: Renamed ENABLED_NLS to HAVE_NLS.
8889
8890         * main.c (i18n_initialize): New function.
8891         (main): Use it.
8892
8893         * log.c: Include <unistd.h>.
8894
8895         * retr.c (show_progress): Cast alloca to char *.
8896
8897 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
8898
8899         * version.c: Wget 1.5-b15 is released.
8900
8901 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
8902
8903         * utils.h: Declare file_non_directory_p().
8904
8905 1998-04-03  Hrvoje Niksic  <hniksic@srce.hr>
8906
8907         * main.c (main): It's `tries', not `numtries' now.
8908
8909 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
8910
8911         * init.c (getperms): Removed.
8912
8913 1998-04-01  Tim Charron  <tcharron@interlog.com>
8914
8915         * log.c (logvprintf): Don't use ARGS twice.
8916
8917 1998-04-01  John  <john@futuresguide.com>
8918
8919         * mswindows.c: Cleaned up.
8920
8921 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
8922
8923         * version.c: Wget 1.5-b14 is released.
8924
8925 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
8926
8927         * ftp-opie.c (STRLEN4): New macro.
8928         (btoe): Use it.
8929
8930 1998-04-01  Junio Hamano  <junio@twinsun.com>
8931
8932         * http.c: Document all the Digest functions.
8933
8934 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
8935
8936         * utils.c (file_non_directory_p): Renamed from isfile().
8937
8938         * mswindows.h (S_ISREG): New macro, suggested by Tim Adam.
8939
8940 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
8941
8942         * utils.c (mkdirhier): Use 0777 instead of opt.dirmode.
8943
8944         * init.c (cmd_spec_dotstyle): Use 48 dots per line for binary
8945         style.
8946         (cmd_permissions): Removed.
8947
8948         * config.h.in: Add template for WORDS_BIGENDIAN.
8949
8950 1998-03-31  Junio Hamano  <junio@twinsun.com>
8951
8952         * http.c (HEXD2asc): New macro.
8953         (dump_hash): Use it.
8954
8955 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
8956
8957         * version.c: Wget 1.5-b13 is released.
8958
8959 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
8960
8961         * main.c (main): Don't try to use `com'.
8962
8963 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
8964
8965         * init.c (cmd_permissions): New function.
8966
8967 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
8968
8969         * version.c: Wget 1.5-b12 is released.
8970
8971 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
8972
8973         * init.c (commands): Renamed `numtries' to `tries'.
8974         (cmd_spec_debug): Removed.
8975         (home_dir): Under Windows, return `C:\' if HOME is undefined.
8976
8977 1998-03-29  Hrvoje Niksic  <hniksic@srce.hr>
8978
8979         * config.h.in: Define _XOPEN_SOURCE.
8980
8981         * init.c (check_user_specified_header): New function.
8982         (cmd_spec_header): Use it.
8983         (cmd_spec_useragent): New function.
8984
8985 1998-03-29  Hrvoje Niksic  <hniksic@srce.hr>
8986
8987         * version.c: Wget 1.5-b11 is released.
8988
8989 1998-03-28  Hrvoje Niksic  <hniksic@srce.hr>
8990
8991         * wget.h: Include <libintl.h> only if NLS is enabled.
8992
8993 1998-03-26  Hrvoje Niksic  <hniksic@srce.hr>
8994
8995         * options.h (struct options): Made `wait' a long.
8996         (struct options): Ditto for `timeout'.
8997
8998 1998-03-19  Hrvoje Niksic  <hniksic@srce.hr>
8999
9000         * utils.c (exists): Renamed to file_exists_p.
9001         (file_exists_p): Use access() if available.
9002
9003 1998-03-17  Hrvoje Niksic  <hniksic@srce.hr>
9004
9005         * utils.c (memfatal): Set save_log_p to 0 to avoid potential
9006         infloop.
9007
9008         * log.c: do_logging -> save_log_p.
9009
9010         * config.h.in: Added template for HAVE_VSNPRINTF.
9011
9012 1998-03-16  Hrvoje Niksic  <hniksic@srce.hr>
9013
9014         * init.c: Ditto.
9015
9016         * http.c: Protect declaration against non-ANSI compiler.
9017
9018         * log.c (logvprintf): Use vsnprintf() if available.
9019
9020         * getopt.c (main): Don't translate test stuff.
9021
9022 1998-03-16  Hrvoje Niksic  <hniksic@srce.hr>
9023
9024         * version.c: Wget 1.5-b10 is released.
9025
9026 1998-03-11  Hrvoje Niksic  <hniksic@srce.hr>
9027
9028         * ftp.c (getftp): Don't translate "CWD %s".
9029
9030         * wget.h (GCC_FORMAT_ATTR): Renamed from FORMAT_ATTR.
9031
9032 1998-03-07  Hrvoje Niksic  <hniksic@srce.hr>
9033
9034         * ftp-opie.c (btoe): Use memcpy() instead of strncat().
9035
9036         * log.c (logputs): New function.
9037         (logvprintf): Renamed from vlogmsg; use logputs().
9038
9039         * retr.c (show_progress): Print `[100%]' when the retrieval is
9040         finished.
9041
9042         * init.c (run_wgetrc): Use FILE, not PATH.
9043         (wgetrc_file_name): Ditto.
9044
9045 1998-03-07  Tim Adam  <tma@osa.com.au>
9046
9047         * recur.c (parse_robots): Correctly reset `entries' on empty
9048         disallow.
9049
9050 1998-03-07  Hrvoje Niksic  <hniksic@srce.hr>
9051
9052         * init.c (cmd_spec_debug): Use cmd_boolean().
9053
9054 1998-02-23  Hrvoje Niksic  <hniksic@srce.hr>
9055
9056         * http.c (gethttp): Create proxy-authorization correctly.
9057
9058 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
9059
9060         * md5.c: Ditto.
9061
9062         * getopt.c: Use ANSI function definitions.
9063
9064         * ftp-opie.c: New file.
9065
9066         * options.h: Don't redefine EXTERN.
9067
9068         * init.c: Sort it correctly.
9069
9070 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
9071
9072         * version.c: Wget 1.5-b9 is released.
9073
9074 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
9075
9076         * recur.c (recursive_retrieve): Reset `first_time'.
9077
9078         * ftp.c (getftp): Added `default' clause to switches of uerr_t.
9079
9080         * rbuf.c (rbuf_peek): Simplified.
9081         (rbuf_flush): Use MINVAL.
9082
9083         * wget.h (MINVAL): Moved from url.h.
9084
9085         * rbuf.h (RBUF_FD): New macro.
9086
9087         * url.c (add_url): Add to the head of the list.
9088
9089         * ftp.c (ftp_retrieve_list): Set the permissions to downloaded
9090         file.
9091         (getftp): Set the default permissions to 0600.
9092
9093 1998-02-21  Hrvoje Niksic  <hniksic@srce.hr>
9094
9095         * url.c (get_urls_html): Ditto.
9096         (convert_links): Ditto.
9097
9098         * recur.c (parse_robots): Ditto.
9099
9100         * html.c (ftp_index): Ditto.
9101
9102         * ftp-ls.c (ftp_parse_unix_ls): Open file as binary.
9103
9104         * init.c (defaults): Initialize `opt' to zero via memset.
9105
9106         * http.c (digest_authentication_encode): goto considered harmful.
9107
9108 1998-02-19  Hrvoje Niksic  <hniksic@srce.hr>
9109
9110         * ftp.c (delelement): Simplify and fix leak.
9111
9112 1998-02-18  Hrvoje Niksic  <hniksic@srce.hr>
9113
9114         * http.c (dump_hash): Use HEXD2ASC instead of home-grown stuff.
9115
9116         * url.h (HEXD2ASC): Removed warning.
9117
9118         * init.c (comind): Use binary search.
9119         (commands): Reorganized.
9120         (setval): Ditto.
9121         (cmd_boolean): New function.
9122         (cmd_number): Ditto.
9123         (cmd_number_inf): Ditto.
9124         (cmd_string): Ditto.
9125         (cmd_vector): Ditto.
9126         (cmd_directory_vector): Ditto.
9127         (cmd_bytes): Ditto.
9128         (cmd_time): Ditto.
9129         (cmd_spec_debug): Ditto.
9130         (cmd_spec_dirmode): Ditto.
9131         (cmd_spec_dirstruct): Ditto.
9132         (cmd_spec_dotstyle): Ditto.
9133         (cmd_spec_header): Ditto.
9134         (cmd_spec_htmlify): Ditto.
9135         (cmd_spec_mirror): Ditto.
9136         (cmd_spec_outputdocument): Ditto.
9137         (cmd_spec_recursive): Ditto.
9138         (settime): Merged with cmd_time().
9139         (setbytes): Merged with cmd_bytes().
9140         (setonoff): Merged with cmd_boolean().
9141         (onoff): Ditto.
9142
9143 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
9144
9145         * Makefile.in (distclean): Remove `config.h'.
9146
9147 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
9148
9149         * version.c: Wget 1.5-b8 is released.
9150
9151 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
9152
9153         * http.c (digest_authentication_encode): New function.
9154         (create_authorization_line): Use it.
9155         (dump_hash): New function.
9156         (digest_authentication_encode): Use it.
9157
9158         * fnmatch.c: Renamed from `mtch.c'.
9159
9160 1998-02-15  Karl Eichwalder  <ke@suse.de>
9161
9162         * main.c (main): Tag "Written by..." string as translatable.
9163
9164 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
9165
9166         * wget.h (FREE_MAYBE): New macro.
9167
9168         * http.c (create_authorization_line): Don't use ANSI C string
9169         concatenation feature.
9170         (basic_authentication_encode): Use alloca() for temporary
9171         variables.
9172
9173         * recur.h: Ditto.
9174
9175         * http.c: Ditto.
9176
9177         * headers.h: Ditto.
9178
9179         * ftp-basic.c: Protect declaration against non-ANSI compiler.
9180
9181         * http.c (create_authorization_line): Cast `unsigned char *' to
9182         `char *' for sprintf, to shut up the noisy Digital Unix cc.
9183
9184 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
9185
9186         * version.c: Wget 1.5-b7 is released.
9187
9188 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
9189
9190         * cmpt.c (strstr): Synched with glibc-2.0.6.
9191
9192         * ftp-basic.c (calculate_skey_response): Ditto.
9193         (calculate_skey_response): Use alloca().
9194
9195         * http.c (create_authorization_line): Work with FSF's version of
9196         md5.c.
9197
9198         * md5.c: New file, from GNU libc.
9199
9200 1998-02-14  Hrvoje Niksic  <hniksic@srce.hr>
9201
9202         * url.h (URL_CLEANSE): Name the temporary variable more carefully.
9203
9204 1998-02-13  Hrvoje Niksic  <hniksic@srce.hr>
9205
9206         * http.c (basic_authentication_encode): New function, instead of
9207         the macro.
9208
9209 1998-02-13  Junio Hamano  <junio@twinsun.com>
9210
9211         * http.c: Add HTTP-DA support.
9212         * ftp-basic.c: Add Opie/S-key support.
9213         * config.h.in, Makefile.in: Add HTTP-DA and Opie/S-key support.
9214         * md5.c, md5.h: New files.
9215
9216 1998-02-13  Hrvoje Niksic  <hniksic@srce.hr>
9217
9218         * http.c (http_process_range): Renamed from hprocrange().
9219         (http_process_range): Parse the whole header.
9220
9221         * headers.c: New file.
9222         (header_process): New function.
9223         (header_get): Renamed from fetch_next_header.
9224
9225         * all: Include utils.h only where necessary.
9226
9227         * wget.h: Declare xmalloc(), xrealloc() and xstrdup() here.
9228
9229         * wget.h: Add provisions for dmalloc.
9230
9231 1998-02-12  Hrvoje Niksic  <hniksic@srce.hr>
9232
9233         * version.c: Wget 1.5-b6 is released.
9234
9235 1998-02-12  Hrvoje Niksic  <hniksic@srce.hr>
9236
9237         * ftp.c (ftp_loop): Determine `filename' more precisely.
9238
9239         * init.c (setval): Don't set `opt.quiet' if output-document is
9240         `-'.
9241
9242         * log.c (log_init): Print to STDERR instead of STDOUT.
9243         (vlogmsg): Use STDERR by default.
9244         (logflush): Ditto.
9245
9246 1998-02-11  Simon Josefsson  <jas@pdc.kth.se>
9247
9248         * host.c: Use addr_in again.
9249
9250 1998-02-08  Karl Eichwalder  <karl@suse.de>
9251
9252         * http.c (gethttp): Fixed typo.
9253
9254 1998-02-08  Hrvoje Niksic  <hniksic@srce.hr>
9255
9256         * version.c: Wget 1.5-b5 is released.
9257
9258 1998-02-08  Hrvoje Niksic  <hniksic@srce.hr>
9259
9260         * retr.c (show_progress): Use it.
9261
9262         * log.c (logflush): New function.
9263
9264         * wget.h: Utilize __attribute__ if on gcc.
9265
9266 1998-02-07  Hrvoje Niksic  <hniksic@srce.hr>
9267
9268         * http.c (base64_encode_line): New argument LENGTH.
9269         (BASIC_AUTHENTICATION_ENCODE): Use it.
9270         (BASIC_AUTHENTICATION_ENCODE): Take length of HEADER into account.
9271
9272         * main.c (main): Fixed fprintf() format mismatch.
9273
9274 1998-02-06  Hrvoje Niksic  <hniksic@srce.hr>
9275
9276         * version.c: Wget 1.5-b4 is released.
9277
9278 1998-02-03  Simon Josefsson  <jas@pdc.kth.se>
9279
9280         * host.c: use sockaddr_in instead of addr_in.
9281
9282 1998-02-04  Hrvoje Niksic  <hniksic@srce.hr>
9283
9284         * init.c (cleanup): Use it.
9285
9286         * recur.c (recursive_cleanup): New function.
9287
9288         * retr.c (retrieve_from_file): Ditto.
9289
9290         * main.c (main): Use it.
9291
9292         * recur.c (recursive_reset): New function.
9293
9294         * retr.c (retrieve_from_file): Ditto.
9295
9296         * main.c (main): Simplify call to recursive_retrieve().
9297
9298         * recur.c (recursive_retrieve): Removed FLAGS argument.
9299
9300         * http.c (gethttp): Changed call to iwrite().
9301
9302 1998-02-03  Hrvoje Niksic  <hniksic@srce.hr>
9303
9304         * url.c (get_urls_html): Ditto.
9305         (free_urlpos): Ditto.
9306         (mkstruct): Ditto.
9307         (construct): Ditto.
9308
9309         * retr.c (retrieve_url): Move declaration of local variables to
9310         smaller scope.
9311
9312         * url.c (urlproto): Use it.
9313         (parseurl): Ditto.
9314         (str_url): Ditto.
9315         (get_urls_html): Ditto.
9316
9317         * utils.h (ARRAY_SIZE): New macro.
9318
9319         * url.c (proto): Moved from url.h.
9320
9321         * url.h (URL_CLEANSE): Reformatted.
9322         (USE_PROXY_P): Renamed from USE_PROXY.
9323
9324         * ftp-basic.c: Adjust to the new interface of iwrite().
9325
9326         * ftp-basic.c (ftp_port): Use alloca().
9327
9328 1998-02-03  Hrvoje Niksic  <hniksic@srce.hr>
9329
9330         * version.c: Wget 1.5-b3 is released.
9331
9332         * host.c (ftp_getaddress): Don't print to stderr directly.
9333
9334         * init.c (setbytes): Support `g' for gigabytes.
9335         (cmdtype): New specification CTIME.
9336         (setval): Use it with settime().
9337         (commands): Use it for WAIT and TIMEOUT.
9338
9339 1998-02-02  Hrvoje Niksic  <hniksic@srce.hr>
9340
9341         * http.c (BASIC_AUTHENTICATION_ENCODE): New macro.
9342         (gethttp): Use it.
9343
9344         * utils.c (unique_name_1): Moved from url.c.
9345         (unique_name): Ditto.
9346
9347         * url.c (url_filename): Ditto.
9348
9349         * log.c (redirect_output): Changed call to unique_name().
9350
9351         * url.c (unique_name_1): Renamed from unique_name().
9352         (unique_name): Changed interface.
9353
9354         * init.c (enum cmdid): Moved from init.h.
9355         (cmdtype): Ditto.
9356         (struct cmd): Ditto.
9357
9358         * main.c (main): Use it.
9359         (main): Moved `--backups' to not have a short option.
9360
9361         * options.h (struct options): New member BACKGROUND.
9362
9363         * main.c (print_help): Rearranged.
9364         (main): New long options for -n* short options: --no-directories,
9365         --no-host-directories, --non-verbose, --no-host-lookup and
9366         --dont-remove-listing.
9367
9368 1998-02-01  Hrvoje Niksic  <hniksic@srce.hr>
9369
9370         * main.c (main): Use log_close().
9371
9372         * log.c: New variable LOGFP.
9373         (vlogmsg): Use it.
9374         (redirect_output): Don't open /dev/null; set LOGFP to stdin
9375         instead.
9376         (log_close): New function.
9377
9378         * options.h (struct options): Removed LFILE.
9379
9380         * log.c (log_enable): Removed.
9381
9382         * main.c (main): Use it.
9383
9384         * log.c (log_init): New function.
9385
9386         * url.c (get_urls_html): Removed needless assignment to BASE.
9387
9388         * host.c (add_hlist): Don't set CMP needlessly.
9389
9390         * utils.c (match_backwards): Ditto.
9391         (in_acclist): Ditto.
9392
9393         * url.c (findurl): Ditto.
9394
9395         * netrc.c (parse_netrc): Ditto.
9396
9397         * log.c (log_dump): Ditto.
9398
9399         * html.c (html_quote_string): Ditto.
9400
9401         * ftp-basic.c (ftp_request): Made static.
9402
9403         * connect.c: Made global variables static.
9404
9405         * url.c (construct): Ditto.
9406
9407         * init.c (init_path): Avoid assignment inside `if'-condition.
9408
9409         * ftp.c: Don't include in.h or winsock.h.
9410
9411         * ftp.c (ftp_loop): Use SZ.
9412
9413         * connect.c (bindport): Cast &addrlen to int *.
9414         (conaddr): Ditto.
9415
9416         * init.c (initialize): Don't use SYSTEM_WGETRC unconditionally.
9417
9418 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
9419
9420         * ftp.c (getftp): Initialize opt.ftp_pass here.
9421         (ftp_retrieve_dirs): Use alloca().
9422
9423         * init.c (defaults): Don't initialize opt.ftp_pass.
9424
9425         * sysdep.h (S_ISLNK): Declare for OS/2; ditto for lstat.
9426         From Ivan F. Martinez <ivanfm@ecodigit.com.br>.
9427
9428 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
9429
9430         * recur.c (parse_robots): Check for comments more correctly.
9431
9432         * host.c (ftp_getaddress): Use STRDUP_ALLOCA.
9433         (ftp_getaddress): Add diagnostics when reverse-lookup yields only
9434         hostname.
9435
9436 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
9437
9438         * version.c: Wget 1.5-b2 is released.
9439
9440         * netrc.c (NETRC_FILE_NAME): Moved from netrc.h.
9441
9442         * utils.c (proclist): Pass FNM_PATHNAME to fnmatch().
9443
9444         * ftp-basic.c (ftp_pasv): Avoid unnecessary casting to unsigned
9445         char.
9446
9447         * log.c: Don't attempt to hide arguments from ansi2knr.
9448
9449         * cmpt.c: Synched strptime() and mktime() with glibc-2.0.6.
9450
9451         * ansi2knr.c: Use a later version, from fileutils-3.16l alpha.
9452
9453         * ftp.c (getftp): Ditto.
9454
9455         * http.c (gethttp): Use it.
9456
9457         * retr.c (get_contents): New argument EXPECTED; pass it to
9458         show_progress().
9459         (show_progress): New argument EXPECTED; use it to display
9460         percentages.
9461
9462         * init.c (setval): Ditto.
9463
9464         * http.c (gethttp): Ditto.
9465         (http_loop): Ditto.
9466
9467         * ftp.c (getftp): Ditto.
9468         (ftp_loop_internal): Ditto.
9469
9470         * ftp-ls.c (ftp_parse_unix_ls): Use abort() instead of assert(0).
9471
9472         * sysdep.h (CLOSE): Simplify; use DEBUGP.
9473
9474         * netrc.c (search_netrc): Use alloca().
9475
9476         * init.c (defaults): Initialize no_flush.
9477
9478         * log.c (vlogmsg): Don't flush if no_flush.
9479
9480         * options.h (struct options): New variable no_flush.
9481
9482         * main.c (main): Don't play games with buffering.
9483
9484         * log.c (vlogmsg): Flush the output after every message.
9485
9486 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
9487
9488         * init.c (parse_line): Ditto.
9489
9490         * url.c (get_urls_html): Ditto.
9491
9492         * main.c (main): Don't cast to unsigned char.
9493
9494         * init.c (run_wgetrc): Don't cast to unsigned char.
9495         (parse_line): Accept char instead of unsigned char.
9496
9497         * html.c (htmlfindurl): Use char instead of unsigned char.
9498
9499         * all: Use them.
9500
9501         * sysdep.h: Add wrappers to ctype macros to make them
9502         eight-bit-clean:
9503
9504 1998-01-30  Hrvoje Niksic  <hniksic@srce.hr>
9505
9506         * html.c (htmlfindurl): Download <img lowsrc=...>
9507
9508         * main.c (main): Ignore SIGPIPE.
9509
9510         * connect.c (select_fd): New argument WRITEP.
9511         (iwrite): Call select_fd().
9512
9513 1997-02-27  Fila Kolodny <fila@ibi.com>
9514
9515         * ftp.c (ftp_retrieve_list): If retrieving symlink and the proper
9516         one already exists, just skip it.
9517
9518 1998-01-30  Hrvoje Niksic  <hniksic@srce.hr>
9519
9520         * http.c (gethttp): Cosmetic changes.
9521
9522         * http.c (check_end): Allow `+D...' instead of `GMT'.
9523         From Fabrizio Pollastri <pollastri@cstv.to.cnr.it>.
9524
9525         * url.c (process_ftp_type): New function.
9526         (parseurl): Use it.
9527
9528         * connect.c (iwrite): Allow writing in a few chunks.
9529         (bindport): Made SRV static, so addr can point to it.
9530         (select_fd): Removed HPUX kludge.
9531
9532         * host.c (free_hlist): Incorporated into clean_hosts().
9533
9534 1998-01-29  Hrvoje Niksic  <hniksic@srce.hr>
9535
9536         * host.c (hlist): Made static.
9537         (search_address): Cosmetic change.
9538
9539 1998-01-29  Hrvoje Niksic  <hniksic@srce.hr>
9540
9541         * version.c: Wget v1.5-b1 is released.
9542
9543         * http.c (hgetlen): Use sizeof() to get the header length.
9544         (hgetrange): Ditto.
9545         (hgettype): Ditto.
9546         (hgetlocation): Ditto.
9547         (hgetmodified): Ditto.
9548         (haccepts_none): Ditto.
9549
9550         * main.c (main): Updated `--version' and `--help' output, as per
9551         Francois Pinard's suggestions.
9552
9553         * main.c: Include locale.h; call setlocale(), bindtextdomain() and 
9554         textdomain().
9555
9556         * config.h.in: Define stubs for I18N3.
9557
9558         * wget.h: Include libintl.h.
9559
9560 1998-01-28  Hrvoje Niksic  <hniksic@srce.hr>
9561
9562         * url.c (mkstruct): Check for opt.cut_dirs.
9563         (mkstruct): alloca()-te more, xmalloc() less.
9564
9565         * utils.c (load_file): Check for ferror().
9566
9567         * url.c (get_urls_file): Close only the files we opened.
9568         (get_urls_html): Ditto.
9569         (count_slashes): New function.
9570
9571         * http.h: Removed.
9572
9573         * http.c (gethttp): Respect username and password provided by
9574         proxy URL.
9575         (base64_encode_line): Write into an existing buffer instead of
9576         malloc-ing a new one.
9577         (struct http_stat): Moved from http.h
9578
9579         * retr.c (retrieve_url): Free SUF.
9580
9581         * all: Removed lots of unnecessary .h dependencies.
9582
9583         * html.c (global_state): Made static.
9584
9585         * utils.h (ALLOCA_ARRAY): New macro.
9586
9587         * main.c (main): New option `--cut-dirs'.
9588
9589         * url.c (construct): Use alloca() for T.
9590
9591         * utils.c (mkdirhier): Use STRDUP_ALLOCA.
9592
9593         * host.c (_host_t): Moved from host.h.
9594         (struct host): Renamed from _host_t.
9595         (store_hostaddress): Use STRDUP_ALLOCA for INET_S.
9596         (realhost): Ditto.
9597
9598         * host.h: Don't include url.h.
9599
9600         * ftp.c (LIST_FILENAME): Moved from ftp.h.
9601
9602         * init.c (DEFAULT_FTP_ACCT): Moved from ftp.h.
9603
9604         * main.c (main): Enable log if the output goes to a TTY.
9605
9606         * connect.h: Removed unused constant `BACKLOG'.
9607
9608         * config.h.in: Check for isatty().
9609
9610         * Makefile.in (LINK): Use CFLAGS when linking.
9611
9612 1998-01-27  Hrvoje Niksic  <hniksic@srce.hr>
9613
9614         * mswindows.c (ws_hangup): Use redirect_output().
9615
9616         * main.c (redirect_output_signal): New function; use
9617         redirect_output().
9618
9619         * log.c (redirect_output): New function, based on hangup(), which
9620         is deleted.
9621
9622         * log.c (vlogmsg): New function.
9623
9624         * wget.h (DEBUGP): Use debug_logmsg().
9625
9626         * main.c (hangup): Use it.
9627
9628         * log.c (log_dump): New function.
9629
9630         * utils.h (DO_REALLOC): Use `long' for various sizes.
9631
9632         * http.c (hskip_lws): Use `while', for clarity.
9633         (HTTP_DYNAMIC_LINE_BUFFER): New constant.
9634         (fetch_next_header): Use it instead of DYNAMIC_LINE_BUFFER.
9635
9636         * ftp-basic.c (FTP_DYNAMIC_LINE_BUFFER): New constant.
9637         (ftp_response): Use it instead of DYNAMIC_LINE_BUFFER.
9638
9639         * utils.c (DYNAMIC_LINE_BUFFER): Moved from utils.c.
9640         (LEGIBLE_SEPARATOR): Ditto.
9641         (FILE_BUFFER_SIZE): Ditto.
9642
9643         * retr.c (BUFFER_SIZE): Moved from retr.h.
9644
9645         * log.c: New file.
9646         (logmsg): Moved from utils.c.
9647         (debug_logmsg): New function.
9648
9649         * mswindows.h: Include it here.
9650
9651         * init.c: Ditto.
9652
9653         * utils.c: Don't include <windows.h>.
9654
9655 1998-01-25  Hrvoje Niksic  <hniksic@srce.hr>
9656
9657         * host.c (ftp_getaddress): Ditto.
9658
9659         * main.c (main): Use it.
9660
9661         * utils.h (STRDUP_ALLOCA): New macro.
9662
9663         * init.c: Prepend `wget: ' to error messages printed on stderr.
9664
9665         * utils.c (mkdirhier): Renamed from mymkdir.
9666         (touch): Renamed from my_touch.
9667         (pwd_cuserid): Renamed from my_cuserid().
9668
9669 1998-01-24  Andy Eskilsson  <andy.eskilsson@telelogic.se>
9670
9671         * utils.c (accdir): Process wildcards.
9672         (proclist): New function.
9673         (accdir): Use it to avoid code repetition.
9674
9675 1998-01-24  Hrvoje Niksic  <hniksic@srce.hr>
9676
9677         * recur.c (parse_robots): Respect opt.useragent; use alloca().
9678
9679         * http.c (gethttp): Construct useragent accordingly.
9680
9681         * version.c: Changed version string to numbers-only.
9682
9683         * main.c (print_help): List all the options.
9684
9685         * mswindows.c (windows_main_junk): Initialize argv0 here.
9686
9687 1998-01-24  Karl Heuer  <kwzh@gnu.org>
9688
9689         * netrc.c (search_netrc): Initialize `l' only after processing
9690         netrc.
9691
9692         * main.c (main): Don't trap SIGHUP if it's being ignored.
9693
9694 1998-01-24  Hrvoje Niksic  <hniksic@srce.hr>
9695
9696         * all: Use logmsg().
9697
9698         * utils.c (time_str): Moved from retr.c.
9699         (logmsg): New function.
9700         (logmsg_noflush): Ditto.
9701
9702         * rbuf.c: New file, moved buf_* functions here.
9703
9704         * ftp.c (ftp_expected_bytes): Moved from ftp-basic.c.
9705
9706         * ftp-basic.c (ftp_rest): Use prnum().
9707
9708         * ftp-basic.c: Ditto.
9709
9710         * ftp.c: Use the new reading functions and macros.
9711
9712         * retr.c (buf_initialize): New function.
9713         (buf_initialized_p): Ditto.
9714         (buf_uninitialize): Ditto.
9715         (buf_fd): Ditto.
9716
9717         * http.c (fetch_next_header): Use the BUF_READCHAR macro for
9718         efficiency.
9719         (gethttp): Use alloca() where appropriate.
9720
9721         * retr.c (buf_readchar): Use it.
9722         (buf_peek): Use rstreams.
9723
9724         * retr.h (BUF_READCHAR): New macro.
9725
9726         * init.c (home_dir): Rewritten for clarity.
9727         (init_path): Ditto.
9728
9729         * mswindows.c (ws_backgnd): Made static.
9730         (read_registry): Ditto.
9731         (ws_cleanup): Ditto.
9732         (ws_handler): Ditto.
9733
9734 1998-01-23  Hrvoje Niksic  <hniksic@srce.hr>
9735
9736         * alloca.c: New file.
9737
9738         * Makefile.in (ALLOCA): Define.
9739
9740         * mswindows.c (ws_help): Constify.
9741         (ws_help): Use alloca.
9742
9743         * mswindows.c: Reformat.
9744
9745         * all: Added _(...) annotations for I18N snarfing and translation.
9746
9747         * host.c (ftp_getaddress): Nuke SYSINFO.
9748         (ftp_getaddress): Don't use getdomainname().
9749         (ftp_getaddress): Use uname(), where available.
9750
9751         * http.c (gethttp): Protect a stray fprintf().
9752
9753         * init.c (settime): New function.
9754         (setval): Treat WAIT specially, allowing suffixes like `m' for
9755         minutes, etc.
9756
9757 1998-01-21  Hrvoje Niksic  <hniksic@srce.hr>
9758
9759         * url.c (get_urls_html): Use alloca() for TEMP.
9760
9761 1998-01-21  Jordan Mendelson  <jordy@wserv.com>
9762
9763         * url.c (rotate_backups): New function.
9764
9765         * http.c (gethttp): Ditto.
9766
9767         * ftp.c (getftp): Rotate backups.
9768
9769 1997-12-18  Hrvoje Niksic  <hniksic@srce.hr>
9770
9771         * all: Renamed nmalloc(), nrealloc() and nstrdup() to xmalloc(),
9772         xrealloc() and xstrdup().  Use the new functions.
9773
9774         * url.c (decode_string): Made static.
9775         (has_proto): Ditto.
9776         (parse_dir): Ditto.
9777         (parse_uname): Ditto.
9778         (mkstruct): Ditto.
9779         (construct): Ditto.
9780         (construct_relative): Ditto.
9781
9782         * retr.c (show_progress): Made static.
9783
9784         * recur.c (robots_url): Made static.
9785         (retrieve_robots): Ditto.
9786         (parse_robots): Ditto.
9787         (robots_match): Ditto.
9788
9789         * main.h: Removed.
9790
9791         * main.c (printhelp): Made static.
9792         (hangup): Ditto.
9793
9794         * init.c (comind): Made static.
9795         (defaults): Ditto.
9796         (init_path): Ditto.
9797         (run_wgetrc): Ditto.
9798         (onoff): Ditto.
9799         (setonoff): Ditto.
9800         (setnum): Ditto.
9801         (myatoi): Ditto.
9802         (getperms): Ditto.
9803         (setbytes): Ditto.
9804
9805         * http.c (fetch_next_header): Made static.
9806         (hparsestatline): Ditto.
9807         (hskip_lws): Ditto.
9808         (hgetlen): Ditto.
9809         (hgetrange): Ditto.
9810         (hgettype): Ditto.
9811         (hgetlocation): Ditto.
9812         (hgetmodified): Ditto.
9813         (haccepts_none): Ditto.
9814         (gethttp): Ditto.
9815         (base64_encode_line): Ditto.
9816         (mktime_from_utc): Ditto.
9817         (http_atotm): Ditto.
9818
9819         * html.c (idmatch): Made static.
9820
9821         * host.c (search_host): Made static.
9822         (search_address): Ditto.
9823         (free_hlist): Ditto.
9824
9825         * ftp.c (getftp): Made static.
9826         (ftp_loop_internal): Ditto.
9827         (ftp_get_listing): Ditto.
9828         (ftp_retrieve_list): Ditto.
9829         (ftp_retrieve_dirs): Ditto.
9830         (ftp_retrieve_glob): Ditto.
9831         (freefileinfo): Ditto.
9832         (delelement): Ditto.
9833
9834         * ftp-ls.c (symperms): Made static.
9835         (ftp_parse_unix_ls): Ditto.
9836
9837         * connect.c (select_fd): Made static.
9838
9839         * utils.c (xmalloc): Renamed from nmalloc.
9840         (xrealloc): Renamed from nrealloc.
9841         (xstrdup): Renamed from nstrdup.
9842
9843         * getopt.c (exchange): Use alloca.
9844
9845         * mswindows.c (mycuserid): Use strncpy.
9846
9847         * New files mswindows.c, mswindows.h, sysdep.h.  winjunk.c,
9848         systhings.h, windecl.h and winjunk.h removed.
9849
9850         * mswindows.c (sleep): New function.
9851
9852         * utils.c: Include <windows.h> under Windows.
9853
9854 1997-06-12  Darko Budor  <dbudor@zesoi.fer.hr>
9855
9856         * url.h (URL_UNSAFE): Change default under Windows.
9857
9858         * retr.c (retrieve_from_file): Respect opt.delete_after.
9859
9860         * main.c (main): Call ws_help on Windows.
9861
9862         * winjunk.c (windows_main_junk): New function.
9863
9864         * main.c (main): Junk-process argv[0].
9865
9866         * http.c (mktime_from_utc): Return -1 if mktime failed.
9867
9868         * http.c (http_loop): Ditto.
9869
9870         * ftp.c (ftp_loop_internal): Change title on Windows when using a
9871         new URL.
9872
9873         * winjunk.c (getdomainname): Lots of functions.
9874
9875 1997-06-12  Hrvoje Niksic  <hniksic@srce.hr>
9876
9877         * cmpt.c (strptime_internal): Handle years more correctly for
9878         `%y'.
9879
9880 1997-06-09  Mike Thomas <mthomas@reality.ctron.com>
9881
9882         * http.c (gethttp): Allocate enough space for
9883         `Proxy-Authorization' header.
9884
9885 1997-05-10  Hrvoje Niksic  <hniksic@srce.hr>
9886
9887         * version.c: Wget/1.4.5 is released.
9888
9889 1997-05-10  Hrvoje Niksic  <hniksic@srce.hr>
9890
9891         * retr.c (get_contents): Check return value of fwrite more
9892         carefully.
9893
9894 1997-03-30  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
9895
9896         * cmpt.c (strptime_internal) [case 'Y']: Always subtract 1900 from
9897         year, regardless of century.
9898
9899 1997-03-30  Hrvoje Niksic  <hniksic@srce.hr>
9900
9901         * utils.c (isfile): Use `lstat' instead of `stat'.
9902
9903 1997-03-29  Hrvoje Niksic  <hniksic@srce.hr>
9904
9905         * utils.c (numdigit): Use explicit test.
9906
9907 1997-03-21  Hrvoje Niksic  <hniksic@srce.hr>
9908
9909         * http.c (http_loop): Always use `url_filename' to get u->local.
9910
9911 1997-03-20  Hrvoje Niksic  <hniksic@srce.hr>
9912
9913         * url.c: Recognize https.
9914
9915 1997-03-13  Hrvoje Niksic  <hniksic@srce.hr>
9916
9917         * recur.c (recursive_retrieve): Lowercase just the host name.
9918
9919 1997-03-09  Hrvoje Niksic  <hniksic@srce.hr>
9920
9921         * url.c (get_urls_file): Use the correct test.
9922         (get_urls_html): Ditto.
9923
9924 1997-03-07  Hrvoje Niksic  <hniksic@srce.hr>
9925
9926         * connect.c: Reverted addrlen to int.
9927
9928         * init.c (parse_line): Check for -1 instead of NONE.
9929
9930         * version.c: Changed version to 1.4.5.
9931
9932 1997-02-17  Hrvoje Niksic  <hniksic@srce.hr>
9933
9934         * init.c: New option netrc.
9935         (initialize): Don't parse .netrc.
9936
9937         * cmpt.c (recursive): Return rp.
9938         (strptime_internal): Match the long strings first, the abbreviated
9939         second.
9940
9941 1997-02-16  Hrvoje Niksic  <hniksic@srce.hr>
9942
9943         * http.c (check_end): New function.
9944         (http_atotm): Use it.
9945
9946 1997-02-13  gilles Cedoc  <gilles@cedocar.fr>
9947
9948         * http.c (gethttp): Use them.
9949
9950         * init.c: New options proxy_user and proxy_passwd.
9951
9952 1997-02-14  Hrvoje Niksic  <hniksic@srce.hr>
9953
9954         * ftp.c (ftp_retrieve_list): Create links even if not relative.
9955
9956 1997-02-10  Hrvoje Niksic  <hniksic@srce.hr>
9957
9958         * recur.c (recursive_retrieve): Lowercase the host name, if the
9959         URL is not "optimized".
9960
9961         * host.c (realhost): Return l->hostname, even if it matches with
9962         host.
9963
9964 1997-02-10  Marin Purgar  <pmc@asgard.hr>
9965
9966         * connect.c: Make addrlen size_t instead of int.
9967         (conaddr): Ditto.
9968
9969 1997-02-09  Gregor Hoffleit  <flight@mathi.uni-heidelberg.DE>
9970
9971         * systhings.h: Define S_ISLNK on NeXT too.
9972
9973 1997-02-09  Hrvoje Niksic  <hniksic@srce.hr>
9974
9975         * version.c: Released 1.4.3.
9976
9977         * url.c: Futher update to list of protostrings.
9978         (skip_proto): Skip `//' correctly for FTP and HTTP.
9979
9980         * url.c (get_urls_html): Handle bogus `http:' things a little
9981         different.
9982
9983         * main.c (main): Removed `follow-ftp' from `f'.
9984         (main): Dumped the `prefix-files' and `file-prefix' options and
9985         features; old and bogus.
9986         (main): Exit on failed setval() in `-e'.
9987
9988         * http.c (fetch_next_header): Use it to detect header continuation
9989         correctly.
9990
9991         * retr.c (buf_peek): New function.
9992
9993 1997-02-08  Hrvoje Niksic  <hniksic@srce.hr>
9994
9995         * wget.h: Include time.h and stuff.
9996
9997 1997-02-08  Roger Beeman  <beeman@cisco.com>
9998
9999         * ftp.c: Include <time.h>
10000
10001 1997-02-07  Hrvoje Niksic  <hniksic@srce.hr>
10002
10003         * url.c (findurl): Would read over buffer limits.
10004
10005 1997-02-06  Hrvoje Niksic  <hniksic@srce.hr>
10006
10007         * ftp-ls.c (ftp_parse_unix_ls): Allow spaces in file names.
10008
10009 1997-02-05  Hrvoje Niksic  <hniksic@srce.hr>
10010
10011         * http.c (http_atotm): Initialize tm.is_dst.
10012
10013 1997-02-02  Hrvoje Niksic  <hniksic@srce.hr>
10014
10015         * http.c (gethttp): Don't print the number of retrieved headers.
10016
10017         * main.c (main): New option `--no-clobber', alias for `-nc'.
10018
10019         * url.c: Recognize `https://'.
10020
10021 1997-02-01  Hrvoje Niksic  <hniksic@srce.hr>
10022
10023         * host.c (herrmsg): Don't use h_errno.
10024
10025 1997-01-30  Hrvoje Niksic  <hniksic@srce.hr>
10026
10027         * host.c (accept_domain): Use it.
10028
10029         * main.c (main): New option `--exclude-domains'.
10030
10031         * retr.c (retrieve_url): Use it.
10032         (retrieve_url): Bail out when an URL is redirecting to itself.
10033
10034         * url.c (url_equal): New function.
10035
10036 1997-01-29  Hrvoje Niksic  <hniksic@srce.hr>
10037
10038         * connect.c: Include arpa/inet.h instead of arpa/nameser.h.
10039
10040         * http.c (mk_utc_time): New function.
10041         (http_atotm): Use it; handle time zones correctly.
10042
10043 1997-01-28  Hrvoje Niksic  <hniksic@srce.hr>
10044
10045         * http.c: Ditto.
10046
10047         * ftp-basic.c: Use it instead of WRITE.
10048
10049         * connect.c (iwrite): New function.
10050
10051 1997-01-27  Hrvoje Niksic  <hniksic@srce.hr>
10052
10053         * cmpt.c (mktime): New function.
10054
10055         * netrc.c: Include <sys/types.h>.
10056
10057         * main.c (main): Wouldn't recognize --spider.
10058
10059         * retr.c (rate): Use `B', `KB' and `MB'.
10060         (reset_timer,elapsed_time): Moved from utils.c.
10061
10062         * ftp.c (ftp_retrieve_list): Ditto.
10063
10064         * http.c (http_loop): Don't touch the file if opt.dfp.
10065
10066 1997-01-24  Hrvoje Niksic  <hniksic@srce.hr>
10067
10068         * cmpt.c: New file.
10069
10070         * ftp.c (ftp_retrieve_glob): New argument semantics.
10071         (ftp_retrieve_dirs): Use it.
10072         (ftp_loop): Ditto.
10073
10074         * html.c (htmlfindurl): Recognize `'' as the quote char.
10075
10076 1997-01-23  Hrvoje Niksic  <hniksic@srce.hr>
10077
10078         * ftp.c (ftp_loop_internal): Use it.
10079
10080         * utils.c (remove_link): New function.
10081
10082 1997-01-22  Hrvoje Niksic  <hniksic@srce.hr>
10083
10084         * retr.c (retrieve_url): Require STRICT redirection URL.
10085
10086         * url.c (parseurl): New argument STRICT.
10087
10088         * http.c (hparsestatline): Be a little-bit less strict about
10089         status line format.
10090
10091 1997-01-21  Hrvoje Niksic  <hniksic@srce.hr>
10092
10093         * http.c (gethttp): Use it.
10094
10095         * main.c (main): Don't use '<digit>' as options.
10096
10097         * init.c: New option ignore_length.
10098
10099         * http.c (gethttp): Ditto.
10100         (http_loop): Check for redirection without Location:.
10101         (gethttp): Don't print Length unless RETROKF.
10102
10103         * ftp.c (getftp): Use it.
10104
10105         * url.c (mkalldirs): New function.
10106
10107         * utils.c (mymkdir): Don't check for existing non-directory.
10108
10109         * url.c (mkstruct): Don't create the directory.
10110
10111 1997-01-20  Hrvoje Niksic  <hniksic@srce.hr>
10112
10113         * init.c (setval): Removed NO_RECURSION checks.
10114
10115 1997-01-19  Hrvoje Niksic  <hniksic@srce.hr>
10116
10117         * version.c: "Released" 1.4.3-pre2.
10118
10119         * recur.c (recursive_retrieve): Bypass host checking only if URL
10120         is ftp AND parent URL is not ftp.
10121
10122         * ftp-basic.c (ftp_request): Print out Turtle Power.
10123
10124         * ftp.c (ftp_loop): Call ftp_retrieve_glob with 0 if there's no
10125         wildcard.
10126         (ftp_retrieve_glob): Call ftp_loop_internal even on empty list, if
10127         not glob.
10128
10129         * http.c (gethttp): Be a little bit smarter about status codes.
10130
10131         * recur.c (recursive_retrieve): Always reset opt.recursive when
10132         dealing with FTP.
10133
10134 1997-01-18  Hrvoje Niksic  <hniksic@srce.hr>
10135
10136         * retr.c (retrieve_url): New variable location_changed; use it for
10137         tests instead of mynewloc.
10138         (retrieve_url): Allow heuristic adding of html.
10139
10140         * url.c (url_filename): Don't use the `%' in Windows file names.
10141
10142         * http.c (http_loop): Always time-stamp the local file.
10143
10144         * http.c (http_loop): Ditto.
10145
10146         * ftp.c (ftp_retrieve_list): Use it.
10147
10148         * utils.c (my_touch): New function.
10149
10150         * ftp.c (ftp_retrieve_list): Use #ifdef HAVE_STRUCT_UTIMBUF
10151         instead of #ifndef NeXT.
10152
10153         * utils.c (strptime): New version, by Ulrich Drepper.
10154
10155 1997-01-17  Hrvoje Niksic  <hniksic@srce.hr>
10156
10157         * http.c (haccepts_none): Renamed from `haccepts_bytes'.
10158         (gethttp): If haccepts_none(), disable ACCEPTRANGES.
10159         (http_loop): Would remove ACCEPTRANGES.
10160
10161         * ftp.c (getftp): Call ftp_list with NULL.
10162
10163 1997-01-15  Hrvoje Niksic  <hniksic@srce.hr>
10164
10165         * html.c (ftp_index): Don't print minutes and seconds if we don't
10166         know them; beautify the output.
10167
10168         * ftp.c (getftp): Don't close the socket on FTPNSFOD.
10169
10170 1997-01-14  Hrvoje Niksic  <hniksic@srce.hr>
10171
10172         * utils.c (strptime): New function.
10173         (strptime): Don't use get_alt_number.
10174         (strptime): Don't use locale.
10175         (match_string): Made it a function.
10176
10177 1997-01-12  Hrvoje Niksic  <hniksic@srce.hr>
10178
10179         * http.c (http_atotm): New function.
10180         (http_loop): Use it.
10181
10182         * atotm.c: Removed from the distribution.
10183
10184         * http.c (base64_encode_line): Rewrite.
10185
10186 1997-01-09  Hrvoje Niksic  <hniksic@srce.hr>
10187
10188         * ftp.c (getftp): Use ftp_expected_bytes; print size.
10189
10190         * ftp-basic.c (ftp_response): Use ftp_last_respline.
10191         (ftp_expected_bytes): New function.
10192
10193         * ftp.c (getftp): Print the unauthoritative file length.
10194
10195         * ftp-ls.c: Renamed from ftp-unix.c.
10196         (ftp_parse_ls): Moved from ftp.c.
10197         (ftp_parse_unix_ls): Recognize seconds in time spec.
10198         (ftp_parse_unix_ls): Recognize year-less dates of the previous
10199         year.
10200
10201 1997-01-08  Hrvoje Niksic  <hniksic@srce.hr>
10202
10203         * ftp-basic.c: Don't declare errno if #defined.
10204
10205         * host.c (ftp_getaddress): Check for sysinfo legally.
10206
10207 1997-01-08  Darko Budor  <dbudor@diana.zems.fer.hr>
10208
10209         * connect.c (iread): Use READ.
10210
10211 1996-12-23  Hrvoje Niksic  <hniksic@srce.hr>
10212
10213         * url.c: Recognize finger, rlogin, tn3270, mid and cid as valid
10214         schemes.
10215
10216 1996-12-22  Hrvoje Niksic  <hniksic@srce.hr>
10217
10218         * host.c (ftp_getaddress): Allow `.' in hostname.
10219
10220 1996-12-26  Darko Budor <dbudor@zems.fer.hr>
10221
10222         * wget.h: READ and WRITE macros for use instead of read and write
10223         on sockets, grep READ *.c, grep WRITE *.c
10224
10225         * wsstartup.c: new file - startup for winsock
10226
10227         * wsstartup.h: new file
10228
10229         * win32decl.h: new file - fixup for <errno.h> and winsock trouble
10230
10231         * configure.bat: Configure utility for MSVC
10232
10233         * src/Makefile.ms,config.h.ms: new files for use with MSVC 4.x
10234
10235 1996-12-22  Hrvoje Niksic  <hniksic@srce.hr>
10236
10237         * version.c: Released 1.4.3-pre.
10238
10239         * utils.c (prnum): Accept long.
10240         (legible): Use prnum().
10241
10242         * connect.c (make_connection): Accept port as short.
10243         (bindport): Ditto.
10244
10245         * http.c (gethttp): Use search_netrc.
10246
10247 1996-12-21  Hrvoje Niksic  <hniksic@srce.hr>
10248
10249         * ftp.c (getftp): Use search_netrc.
10250
10251         * netrc.c (free_netrc): New function.
10252
10253         * init.c (home_dir): New function.
10254
10255         * url.c (convert_links): Allow REL2ABS changes.
10256
10257 1996-12-21  Gordon Matzigkeit  <gord@gnu.ai.mit.edu>
10258
10259         * netrc.c: New file.
10260         (parse_netrc, maybe_add_to_list): New functions.
10261
10262 1996-12-17  Hrvoje Niksic  <hniksic@srce.hr>
10263
10264         * retr.c (retrieve_url): Reset opt.recursion before calling
10265         ftp_loop if it is reached through newloc.
10266
10267         * init.c (run_wgetrc): Print the wgetrc path too, when reporting
10268         error; don't use "Syntax error", since we don't know if it is
10269         really a syntax error.
10270
10271 1996-12-16  Hrvoje Niksic  <hniksic@srce.hr>
10272
10273         * utils.c (acceptable): Extract the filename part of the path.
10274
10275         * recur.c (recursive_retrieve): Call acceptable() with the right
10276         argument; would bug out on wildcards.
10277
10278         * init.c (parse_line): Likewise.
10279
10280         * html.c (htmlfindurl): Cast to char * when calling stuff.
10281
10282 1996-12-15  Hrvoje Niksic  <hniksic@srce.hr>
10283
10284         * ftp.c (getftp): Use ftp_pasv.
10285
10286         * ftp-basic.c (ftp_request): Accept NULL value.
10287         (ftp_pasv): New function.
10288
10289         * options.h (struct options): Add passive FTP option.
10290
10291 1996-12-15  Hrvoje Niksic  <hniksic@srce.hr>
10292
10293         * url.c (parseurl): Debug output.
10294
10295         * utils.c (path_simplify): New one, adapted from bash's
10296         canonicalize_pathname().
10297
10298 1996-12-14  Hrvoje Niksic  <hniksic@srce.hr>
10299
10300         * ftp.c (getftp): Don't discard the buffer.
10301
10302         * retr.c (get_contents): New parameter nobuf.
10303
10304 1996-12-13  Shawn McHorse  <riffraff@txdirect.net>
10305
10306         * html.c (htmlfindurl): Recognize <meta contents="d; URL=...".
10307
10308         * init.c (setval): Strip the trailing slashes on CVECDIR.
10309
10310 1996-12-13  Hrvoje Niksic  <hniksic@srce.hr>
10311
10312         * init.c: Make excludes and includes under CVECDIR instead of
10313         CVEC.
10314
10315 1996-12-13  Shawn McHorse  <riffraff@txdirect.net>
10316
10317         * url.c (get_urls_html): Skip "http:".
10318
10319 1996-12-13  Hrvoje Niksic  <hniksic@srce.hr>
10320
10321         * utils.c (strcasecmp): From glibc.
10322         (strncasecmp): Also.
10323         (strstr): Also.
10324
10325         * url.c: Added javascript: to the list of URLs prefixes.
10326
10327 1996-12-12  Shawn McHorse  <riffraff@txdirect.net>
10328
10329         * recur.c (retrieve_robots): Print the warning message only if
10330         verbose.
10331
10332 1996-12-12  Gregor Hoffleit  <flight@mathi.uni-heidelberg.DE>
10333
10334         * ftp.c (ftp_retrieve_list): Use NeXT old utime interface.
10335
10336 1996-12-12  Hrvoje Niksic  <hniksic@srce.hr>
10337
10338         * systhings.h: New file.
10339
10340         * ../configure.in: Check for utime.h
10341
10342         * ftp.c: Check whether we have unistd.h.
10343
10344 1996-11-27  Hrvoje Niksic  <hniksic@srce.hr>
10345
10346         * recur.c (recursive_retrieve): Send the canonical URL as referer.
10347         (recursive_retrieve): Call get_urls_html with the canonical URL.
10348
10349 1996-12-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10350
10351         * (configure.in, config.h.in, src/Makefile.in, src/*.[ch]): Add
10352         ansi2knr support for compilers which don't support ANSI style
10353         function prototypes and signatures.
10354
10355         * (aclocal.m4, src/ansi2knr.c, src/ansi2knr.1): New files.
10356
10357 1996-11-26  Hrvoje Niksic  <hniksic@srce.hr>
10358
10359         * url.c: Use it; Recognize paths ending with "." and ".." as
10360         directories.
10361         (url_filename): Append .n whenever file exists and could be a
10362         directory.
10363
10364         * url.h (ISDDOT): New macro.
10365
10366         * init.c (parse_line): Use unsigned char.
10367
10368         * url.c (get_urls_html): Cast to unsigned char * when calling
10369         htmlfindurl.
10370
10371         * html.c (htmlfindurl): Use unsigned char.
10372
10373         * version.c: Changed version to 1.4.3.
10374
10375 1996-11-25  Hrvoje Niksic  <hniksic@srce.hr>
10376
10377         * version.c: Released 1.4.2.
10378
10379         * ftp.c (getftp): Simplified assertion.
10380         (ftp_loop_internal): Remove symlink before downloading.
10381         (ftp_retrieve_list): Unlink the symlink name before attempting to
10382         create a symlink!
10383
10384         * options.h (struct options): Renamed print_server_response to
10385         server_response.
10386
10387         * ftp.c (rel_constr): Removed.
10388         (ftp_retrieve_list): Don't use it.
10389         (ftp_retrieve_list): Use opt.retr_symlinks.
10390
10391 1996-11-24  Hrvoje Niksic  <hniksic@srce.hr>
10392
10393         * main.c (main): New option retr_symlinks.
10394
10395         * url.c (convert_links): Print verbose message.
10396
10397 1996-11-24  Hrvoje Niksic  <hniksic@srce.hr>
10398
10399         * http.c (http_loop): Reset newloc in the beginning of function;
10400         would cause FMR in retrieve_url.
10401
10402 1996-11-23  Hrvoje Niksic  <hniksic@srce.hr>
10403
10404         * recur.c (convert_all_links): Find the URL of each HTML document,
10405         and feed it to get_urls_html; would bug out.
10406         (convert_all_links): Check for l2 instead of dl; removed dl.
10407
10408         * url.c (convert_links): Don't refer to freed newname.
10409
10410         * recur.c (recursive_retrieve): Add this_url to urls_downloaded.
10411
10412         * main.c (main): Print the OS_TYPE in the debug output, too.
10413
10414         * recur.c (recursive_retrieve): Check for opt.delete_after.
10415
10416         * main.c (main): New option delete-after.
10417
10418         * init.c (setval): Cleaned up.
10419
10420 1996-11-21  Hrvoje Niksic  <hniksic@srce.hr>
10421
10422         * Makefile.in (wget): Make `wget' the default target.
10423
10424         * ftp.c (ftp_loop_internal): Move noclobber checking out of the
10425         loop.
10426         (ftp_retrieve_list): Warn about non-matching sizes.
10427
10428         * http.c (http_loop): Made -nc non-dependent on opt.recursive.
10429
10430         * init.c (setnum): Renamed from setnuminf; New argument flags.
10431         (setval): Use it.
10432
10433         * main.c (main): Sorted the options.
10434         (main): New option --wait.
10435
10436 1996-11-21  Shawn McHorse  <riffraff@txdirect.net>
10437
10438         * html.c (htmlfindurl): Reset s->in_quote after getting out of
10439         quotes.
10440
10441 1996-11-20  Hrvoje Niksic  <hniksic@srce.hr>
10442
10443         * version.c: Changed version to 1.4.2.
10444
10445 1996-11-20  Hrvoje Niksic  <hniksic@srce.hr>
10446
10447         * version.c: Released 1.4.1.
10448
10449         * html.c (html_quote_string): New function.
10450         (ftp_index): Use it.
10451         (htmlfindurl): A more gentle ending debug message.
10452
10453         * ftp.c (ftp_loop): Check for opt.htmlify.
10454
10455         * init.c: New command htmlify.
10456
10457         * ftp.c (getftp): Nicer error messages, with `'-encapsulated
10458         strings.
10459         (ftp_loop): Print size of index.html.
10460
10461         * init.c (setval): Implement "styles".
10462
10463         * main.c (main): New option dotstyle.
10464
10465 1996-11-19  Hrvoje Niksic  <hniksic@srce.hr>
10466
10467         * ftp.c (getftp): Close the master socket in case of errors, after
10468         bindport().
10469
10470         * connect.c (bindport): Initialize msock to -1.
10471
10472         * ftp.c (getftp): Initialize dtsock to -1.
10473
10474         * connect.c (closeport): Don't close sock if sock == -1.
10475
10476 1996-11-18  Hrvoje Niksic  <hniksic@srce.hr>
10477
10478         * init.c (setnuminf): Nuked default value -- just leave unchanged.
10479         (setval): Don't send default values.
10480         (defaults): Use DEFAULT_TIMEOUT -- aaargh.
10481
10482         * options.h (struct options): Use long for dot_bytes.
10483
10484         * init.c (setquota): Renamed to setbytes.
10485         (setval): Use setbytes on DOTBYTES.
10486
10487 1996-11-17  Hrvoje Niksic  <hniksic@srce.hr>
10488
10489         * ftp.c (getftp): Initialize con->dltime.
10490
10491         * recur.c (recursive_retrieve): Use same_host instead of
10492         try_robots; simply load robots_txt whenever the host is changed.
10493         (recursive_retrieve): Free forbidden before calling parse_robots.
10494
10495 1996-11-16  Hrvoje Niksic  <hniksic@srce.hr>
10496
10497         * retr.c (show_progress): Use them.
10498
10499         * options.h (struct options): New options dot_bytes, dots_on_line
10500         and dot_spacing.
10501
10502 1996-11-16  Mark Boyns  <boyns@sdsu.edu>
10503
10504         * recur.c (recursive_retrieve): Retrieve directories regardless of
10505         acc/rej rules; check for empty u->file.
10506
10507 1996-11-14  Hrvoje Niksic  <hniksic@srce.hr>
10508
10509         * init.c (setval): Use it.
10510
10511         * utils.c (merge_vecs): New function.
10512
10513         * init.c (setval): Reset the list-type functions when encountering
10514         "".
10515
10516 1996-11-14  Shawn McHorse  <riffraff@txdirect.net>
10517
10518         * recur.c (recursive_retrieve): Use base_url instead of this_url
10519         for no_parent.
10520
10521 1996-11-14  Shawn McHorse  <riffraff@txdirect.net>
10522
10523         * html.c (htmlfindurl): Reset s->in_quote after exiting the quote.
10524
10525 1996-11-13  Hrvoje Niksic  <hniksic@srce.hr>
10526
10527         * utils.c (sepstring): Rewrote; don't use strtok.
10528
10529         * recur.c (recursive_retrieve): Enter assorted this_url to slist
10530         when running the first time.
10531         (retrieve_robots): Warn to ignore errors when robots are loaded.
10532
10533         * utils.c (load_file): Moved from url.c.
10534
10535         * http.c: Made static variables const too in h* functions.
10536
10537         * main.c (main): Renamed --continue-ftp to --continue.
10538
10539         * recur.c (recursive_retrieve): Use it.
10540
10541         * utils.c (frontcmp): New function.
10542
10543         * url.c (accdir): New function.
10544
10545         * html.c (htmlfindurl): Recognize <area href=...>.
10546
10547         * ftp.c (ftp_retrieve_dirs): Implemented opt.includes.
10548
10549         * init.c (setval): Free the existing opt.excludes and
10550         opt.includes, if available.
10551
10552         * main.c (main): New option -I.
10553
10554 1996-11-12  Hrvoje Niksic  <hniksic@srce.hr>
10555
10556         * ftp.c (ftp_retrieve_glob): Do not weed out directories.
10557
10558         * version.c: Changed version to 1.4.1.
10559
10560 1996-11-11  Hrvoje Niksic  <hniksic@srce.hr>
10561
10562         * version.c: Released 1.4.0.
10563
10564 1996-11-10  Hrvoje Niksic  <hniksic@srce.hr>
10565
10566         * main.c (main): Free com and val after parse_line.
10567         (printhelp): Reorder the listing.
10568
10569         * http.c: More robust header parsing.
10570
10571         * http.c: Allow any number of spaces, or no spaces, precede ':'.
10572         (hskip_lws): New function.
10573         (haccepts_bytes): New function.
10574         (gethttp): Use it.
10575
10576         * init.c (setval): Check header sanity.
10577         (setval): Allow resetting of headers.
10578
10579 1996-11-10  Hrvoje Niksic  <hniksic@srce.hr>
10580
10581         * http.c (http_loop): Don't use has_wildcards.
10582
10583         * http.c (gethttp): Free all_headers -- would leak.
10584
10585         * recur.c (recursive_retrieve): Initialize depth to 1 instead of
10586         0 -- this fixes a long-standing bug in -rl.
10587
10588 1996-11-09  Hrvoje Niksic  <hniksic@srce.hr>
10589
10590         * ftp.c: Use -1 as "impossible" value for con->fd.
10591
10592         * url.h (URL_SEPARATOR): Don't treat `*' and `+' as separators.
10593
10594         * init.c (parse_line): Use isalpha.
10595
10596         * ftp-unix.c: Use HAVE_UNISTD_H.
10597
10598         * mtch.c (has_wildcards): Don't match \.
10599
10600         * http.c (http_loop): Warn on HTTP wildcard usage.
10601
10602 1996-11-08  Hrvoje Niksic  <hniksic@srce.hr>
10603
10604         * url.c (url_filename): Do not create numbered suffixes if
10605         opt.noclobber -- would bug out on -nc.
10606
10607 1996-11-07  Hrvoje Niksic  <hniksic@srce.hr>
10608
10609         * recur.c (parse_robots): Don't chuck out the commands without
10610         arguments (`Disallow:<empty>' didn't work).
10611         (parse_robots): Compare versions lowercase.
10612         (parse_robots): Match on base_version, not version_string!
10613         (parse_robots): Handle comments properly.
10614         (parse_robots): Match versions in a sane way.
10615
10616         * init.c: Print nicer error messages.
10617
10618         * version.c: Changed version to 1.4.0.
10619
10620 1996-11-06  Hrvoje Niksic  <hniksic@srce.hr>
10621
10622         * version.c: Released 1.4.0-test2.
10623
10624         * init.c (run_wgetrc): Close fp.
10625
10626         * ftp.c (ftp_retrieve_dirs): Allocate the correct length for
10627         u->dir.
10628
10629 1996-11-06  Hrvoje Niksic  <hniksic@srce.hr>
10630
10631         * init.c (setquota): Allow inf as quota specification.
10632
10633 1996-11-05  Hrvoje Niksic  <hniksic@srce.hr>
10634
10635         * ftp.c (ftp_retrieve_dirs): Return QUOTEXC if quota exceeded.
10636         (ftp_retrieve_glob): Return QUOTEXC on quota exceeded.
10637
10638         * main.c (main): Check for quota by comparison with downloaded
10639         stuff, not from status.
10640
10641         * connect.c (select_fd): Should compile on HPUX without warnings now.
10642
10643         * ftp.c (ftp_get_listing): Check whether ftp_loop_internal
10644         returned RETROK.
10645
10646 1996-11-04  Hrvoje Niksic  <hniksic@srce.hr>
10647
10648         * ftp.c (ftp_retrieve_glob): Print the pattern nicely.
10649         (getftp): Return FTPRETRINT on control connection error.
10650
10651         * html.c (htmlfindurl): Recognize <embed src=...> and
10652         <bgsound src=...>.
10653         (ftp_index): Handle username and password correctly.
10654
10655         * main.c (main): Made `-np' a synonim for --no-parent.
10656
10657 1996-11-02  Hrvoje Niksic  <hniksic@srce.hr>
10658
10659         * ftp.c (ftp_loop): Check for opt.ftp_glob too before calling
10660         ftp_retrieve_glob.
10661
10662         * version.c: Changed version to 1.4.0-test2.
10663
10664 1996-11-02  Hrvoje Niksic  <hniksic@srce.hr>
10665
10666         * version.c: Released 1.4.0-test1.
10667
10668         * url.c (str_url): Don't use sprintf when creating %2F-prefixed
10669         directory.
10670         (convert_links): Removed definition of make_backup.
10671
10672         * http.h: Removed definition of MAX_ERROR_LENGTH.
10673
10674         * host.c (ftp_getaddress): Check for "(none)" domains.
10675
10676         * ftp.c (ftp_retrieve_dirs): Docfix.
10677
10678         * http.c (gethttp): Use ou->referer instead of u->referer.
10679
10680         * retr.c (retrieve_url): Reset u to avoid freeing pointers twice;
10681         this was known to cause coredumps on Linux.
10682
10683         * html.c (ftp_index): Cast the argument to local_time to time_t *.
10684
10685 1996-11-01  Hrvoje Niksic  <hniksic@srce.hr>
10686
10687         * connect.c (select_fd): Use exceptfds -- once and for all.
10688
10689         * retr.c (retrieve_from_file): Free filename after
10690         recursive_retrieve.
10691         (retrieve_from_file): Send RFIRST_TIME to recursive_retrieve on
10692         first-time retrieval.
10693         (retrieve_from_file): Return uerr_t; new argument, count.
10694         (retrieve_from_file): Break on QUOTEXC.
10695
10696         * init.c (setquota): Fixed a bug that caused rejection of
10697         non-postfixed values..
10698
10699 1996-10-30  Hrvoje Niksic  <hniksic@srce.hr>
10700
10701         * version.c: Changed name to wget.
10702
10703         * connect.c (iread): Smarter use of select.
10704         (select_fd): Set errno on timeout.  If not timeout, return 1
10705         instead of 0.
10706
10707 1996-10-29  Hrvoje Niksic  <hniksic@srce.hr>
10708
10709         * ftp.c (ftp_loop_internal): Don't use con->cmd before
10710         establishing it.
10711
10712 1996-10-26  Hrvoje Niksic  <hniksic@srce.hr>
10713
10714         * http.c (gethttp): Send correct referer when using proxy.
10715         (gethttp): Use struct urlinfo ou to access the relevant data; send
10716         correct authorization in all cases.
10717
10718         * host.c (same_host): Use skip_uname to skip username and
10719         password.
10720
10721         * url.c (skip_uname): New function.
10722         (parseurl): Use it.
10723
10724         * host.c (same_host): Do not assume HTTP -- same_host should now
10725         be totally foolproof.
10726
10727         * url.c (skip_proto): New function.
10728         (parse_uname): Use it.
10729
10730         * http.c (gethttp): Create local user and passwd from what is
10731         given.
10732
10733         * url.c (parseurl): Check for HTTP username and password too.
10734
10735 1996-10-25  Hrvoje Niksic  <hniksic@srce.hr>
10736
10737         * config.h.in: Removed #define gethostbyname R...
10738
10739 1996-10-22  Hrvoje Niksic  <hniksic@srce.hr>
10740
10741         * version.c: Changed version to 1.4.0-test1.
10742
10743 1996-10-21  Hrvoje Niksic  <hniksic@srce.hr>
10744
10745         * version.c: "Released" 1.4b29.
10746
10747         * recur.c (recursive_retrieve): Check for no_parent.
10748
10749         * init.c (setval): Option update.
10750
10751         * main.c (main): New option no-parent.
10752
10753         * options.h (struct options): New variable no_parent.
10754
10755         * recur.c (recursive_retrieve): Only files are checked for
10756         opt.accepts and opt.rejects.
10757         (recursive_retrieve): Check directories for opt.excludes.
10758         (recursive_retrieve): Make the dir absolute when checking
10759         opt.excludes.
10760
10761         * html.c (htmlfindurl): Recognize <applet code=...> and <script
10762         src=...>
10763
10764 1996-10-18  Hrvoje Niksic  <hniksic@srce.hr>
10765
10766         * ftp.c (getftp): Do not line-break assert entries at all.
10767         (ftp_retrieve_dirs): docfix.
10768
10769         * connect.c (select_fd): Use fd + 1 as nfds.
10770
10771         * version.c: Changed version to 1.4b29.
10772
10773 1996-10-18  Hrvoje Niksic  <hniksic@srce.hr>
10774
10775         * version.c: "Released" 1.4b28.
10776
10777         * ftp.c (ftp_loop_internal): Check whether f->size == len and
10778         don't continue the loop if it is.
10779         (ftp_get_listing): Remove list_filename on unsuccesful loop.
10780
10781 1996-10-17  Hrvoje Niksic  <hniksic@srce.hr>
10782
10783         * ftp.c (ftp_loop_internal): Use strcpy to initialize tmp.
10784         (getftp): Do not use multiline assert.
10785
10786         * http.c (hparsestatline): Use mjr and mnr instead of major and
10787         minor, which don't compile on Ultrix.
10788         (http_loop): Use strcpy() to initialize tmp.
10789
10790         * all: Geturl -> Fetch
10791
10792 1996-10-17  Hrvoje Niksic  <hniksic@srce.hr>
10793
10794         * recur.c (parse_robots): Fixed an off-by-one bug when looking for
10795         ':'.
10796
10797         * html.c (htmlfindurl): Fixed several possible off-by-one bugs by
10798         moving `bufsize &&' to the beginning of each check in for-loops.
10799
10800         * recur.c (parse_robots): Close fp on exit.
10801
10802         * url.c (mymkdir): Check for each directory before creating.
10803
10804 1996-10-16  Hrvoje Niksic  <hniksic@srce.hr>
10805
10806         * version.c: Changed version to 1.4b28.
10807
10808 1996-10-16  Hrvoje Niksic  <hniksic@srce.hr>
10809
10810         * version.c: "Released" 1.4b27.
10811
10812         * init.c (parse_line): Use isspace.
10813         (parse_line): Free *com on all errors.
10814
10815         * ftp.c (ftp_loop): Change FTPOK to RETROK before exiting.
10816         (delelement): Use next instead of f->next and prev instead of
10817         f->prev.
10818         (delelement): Free the members of the deleted element.
10819
10820         * http.c (http_loop): Do not return RETROK on code != 20x.
10821
10822         * init.c (cleanup): Free opt.user_header.
10823         (cleanup): Free opt.domains.
10824
10825         * url.c (freelists): Moved to cleanup().
10826
10827         * http.c (hparsestatline): Docfix.
10828
10829         * main.c (main): Return with error status on unsuccesful
10830         retrieval.
10831
10832         * init.c (setval): Do not remove listing when mirroring.
10833
10834         * url.c (url_filename): Use opt.fileprefix.
10835
10836         * ftp.c (ftp_get_listing): Use url_filename to get filename for
10837         .listing.
10838
10839         * main.c (main): New option: -rn.
10840
10841 1996-10-15  Hrvoje Niksic  <hniksic@srce.hr>
10842
10843         * Makefile.in (RM): Added RM = rm -f.
10844
10845         * host.c (clean_hosts): New function.
10846         (free_hlist): Just free the list, no reset.
10847
10848         * version.c: Changed version to 1.4b27.
10849
10850 1996-10-13  Hrvoje Niksic  <hniksic@srce.hr>
10851
10852         * version.c: "Released" 1.4b26.
10853
10854         * retr.c (retrieve_from_file): If call get_urls_html with
10855         opt.spider to make it silent in spider mode.
10856
10857         * url.c (str_url): Use CLEANDUP instead of URL_CLEANSE.
10858
10859         * url.h (CLEANDUP): New macro.
10860
10861         * http.c (gethttp): Fixed a bug that freed location only when it
10862         was NULL.
10863
10864         * retr.c (retrieve_url): Free url if it will not be stored,
10865         i.e. newloc is NULL.
10866
10867         * html.c (htmlfindurl): Handle exiting from quotes correctly; the
10868         old version would bug out on <a href="x#a"href="y">.
10869
10870         * html.h (state_t): New member in_quote.
10871
10872         * html.c (htmlfindurl): Free s->attr at the beginning of
10873         attr-loop.
10874
10875         * recur.c (recursive_retrieve): Recognize RCLEANUP.
10876         (tried_robots): Make hosts a global variable.
10877         (recursive_retrieve): Free constr after URL host optimization.
10878         (tried_robots): Free urlinfo before exiting.
10879
10880         * utils.c (free_slist): New function.
10881
10882         * recur.c (recursive_retrieve): Use flags to add cleanup
10883         possibility.
10884
10885         * main.c (main): Free filename after recursive_retrieve.
10886
10887         * http.c (gethttp): Store successful responses too.
10888
10889 1996-10-12  Hrvoje Niksic  <hniksic@srce.hr>
10890
10891         * all: Constified the whole source.  This required some minor
10892         changes in many functions in url.c, possibly introducing bugs -- I
10893         hope not.
10894
10895         * ftp-basic.c: Removed last_respline.
10896
10897         * http.c (gethttp): Free type.
10898
10899         * host.c (same_host): Free real1 and real2.
10900
10901         * main.c (main): New option --spider.
10902
10903         * retr.c (get_contents): Don't reset errno.
10904
10905         * main.c (main): Sorted the options.
10906
10907         * connect.c (iread): Set errno to ETIMEDOUT only if it was left
10908         uninitialized by select().
10909
10910         * http.c (http_loop): Print the time when the connection is
10911         closed.
10912         (gethttp): Debug-print the HTTP request.
10913
10914 1996-10-11  Hrvoje Niksic  <hniksic@srce.hr>
10915
10916         * connect.c (iread): Do not try reading after timeout.
10917
10918         * main.c (main): Would bug out on -T.
10919
10920         * connect.c (select_fd): Do not use exceptfds.
10921         (iread): Set ETIMEDOUT on select_fd <= 0.
10922
10923         * version.c: Changed version to 1.4b26.
10924
10925 1996-10-10  Hrvoje Niksic  <hniksic@srce.hr>
10926
10927         * version.c: "Released" 1.4b25.
10928
10929         * ftp-unix.c (ftp_parse_unix_ls): Ignore lines without file name
10930         or link name.
10931
10932         * http.c (gethttp): Add errcode to struct hstat.
10933         (http_loop): Use it.
10934
10935         * url.c (no_proxy_match): Simplify using char** for no_proxy.
10936
10937         * options.h (struct options): Make opt.no_proxy a vector.
10938
10939         * utils.c (sepstring): Use !*s instead of !strlen(s).
10940
10941         * init.c (setval): Set opt.maxreclevel to 0 on --mirror.
10942         (getperms): Use ISODIGIT instead of isdigit.
10943
10944         * ftp.c (getftp): Print time.
10945
10946         * main.c (main): Use legible output of downloaded quantity.
10947
10948         * ftp.c (getftp): Use elapsed_time().
10949         (ftp_loop_internal): Use rate().
10950
10951         * http.c (http_loop): Add download ratio output; Use rate().
10952
10953         * utils.c (rate): New function.
10954
10955 1996-10-09  Hrvoje Niksic  <hniksic@srce.hr>
10956
10957         * http.c (http_loop): Use timer.
10958
10959         * ftp.c: Split to ftp-basic.c and ftp.c
10960
10961         * utils.c (reset_timer): New function.
10962         (elapsed_time): New function.
10963
10964         * retr.c (show_progress): Make bytes_in_line and offs long; should
10965         work on 16-bit machines.
10966
10967 1996-10-08  Hrvoje Niksic  <hniksic@srce.hr>
10968
10969         * url.c (in_acclist): New argument backward.
10970
10971         * ftp.c (ftp_retrieve_glob): Use acceptable() to determine whether
10972         a file should be retrieved according to suffix.
10973         (ftp_get_listing): Check the return value of unlink; Do not call
10974         ftp_retrieve_dirs if depth reached maxreclevel.
10975         (ftp_retrieve_dirs): Check whether the directory is in
10976         exclude-list.
10977
10978         * main.c (main): Print the version number at the beginning of
10979         DEBUG output.
10980         (main): Use strrchr when creating exec_name.
10981
10982         * ftp.c (ftp_retrieve_glob): Do not close control connection.
10983
10984         * version.c: Changed version to 1.4b25.
10985
10986 1996-10-07  Hrvoje Niksic  <hniksic@srce.hr>
10987
10988         * version.c: "Released" 1.4b24.
10989
10990         * Makefile.in: Rewrite.
10991
10992         * ftp.c (ftp_loop_internal): Likewise.
10993
10994         * retr.c (time_str): Check for failed time().
10995
10996         * html.c (htmlfindurl): Recognize <fig src> and <overlay src> from
10997         HTML3.0.
10998
10999         * retr.c (time_str): Return time_t *.
11000
11001         * connect.c (bindport): Close msock on unsuccesful bind.
11002         (bindport): The same for getsockname and listen.
11003
11004         * retr.c (retrieve_url): Allow any number of retries on
11005         proxy.
11006
11007         * http.c (gethttp): Do not treat errno == 0 as timeout.
11008         (http_loop): Likewise.
11009         (http_loop): Cosmetic changes.
11010
11011         * connect.c (iread): Set errno to ETIMEDOUT in case of timeout.
11012
11013         * retr.c (get_contents): Reset errno.
11014
11015         * ftp.c (getftp): Minor fixes.
11016
11017 1996-10-06  Hrvoje Niksic  <hniksic@srce.hr>
11018
11019         * http.c: Do not use backups.
11020
11021         * geturl.1 (WARNING): Warn that man-page could be obsolete.
11022
11023         * getopt.c (getopt_long): Moved to getopt.c
11024
11025         * geturl.texi: Enhanced.
11026
11027         * main.c (main): Use it.
11028
11029         * recur.c (convert_all_links): New function.
11030
11031         * utils.c (add_slist): New argument flags.
11032
11033         * recur.c (recursive_retrieve): Update a list of downloaded URLs.
11034         (parse_robots): Do not chuck out empty value fields.
11035         (parse_robots): Make yourself welcome on empty Disallow.
11036
11037         * version.c: Changed version to 1.4b24.
11038
11039 1996-10-06  Hrvoje Niksic  <hniksic@srce.hr>
11040
11041         * version.c: "Released" 1.4b23.
11042
11043         * ftp.c (ftp_loop_internal): Get the time after getftp.
11044
11045         * Makefile.in (install.info): New target.
11046         (install): Use it.
11047
11048         * http.c (http_loop): Fix output when doing -O.
11049
11050 1996-10-05  Hrvoje Niksic  <hniksic@srce.hr>
11051
11052         * geturl.texi: New file.
11053
11054         * main.c (main): Do not print the warnings and download summary if
11055         opt.quiet is set.
11056
11057         * version.c: Changed version to 1.4b23.
11058
11059 1996-10-05  Hrvoje Niksic  <hniksic@srce.hr>
11060
11061         * "Released" 1.4b22.
11062
11063         * atotm.c (atotm): Use True and False instead of TRUE and FALSE,
11064         to avoid redefinition warnings.
11065
11066         * host.c (store_hostaddress): Use memcpy() to copy the address
11067         returned by inet_addr.
11068
11069         * version.c: Changed version to 1.4b22.
11070
11071 1996-10-04  Hrvoje Niksic  <hniksic@srce.hr>
11072
11073         * version.c: "Released" 1.4b21.
11074
11075         * ftp-unix.c (ftp_parse_ls): Renamed to ftp_parse_unix_ls.
11076
11077         * ftp.c (ftp_port): Use conaddr.
11078         (getftp): Print the file length.
11079         (ftp_retrieve_list): Check the stamps of plain files only.
11080
11081         * connect.c (closeport): Do not call shutdown().
11082         (conaddr): New function.
11083
11084         * html.c (ftp_index): Made it dfp-aware.
11085
11086         * init.c (cleanup): New name of freemem. Close opt.dfp.
11087
11088         * ftp.c (getftp): Use opt.dfp if it is set.
11089
11090         * ftp-unix.c (ftp_parse_ls): Recognize time in h:mm format.
11091
11092         * ftp.c (ftp_retrieve_dirs): Fixed a bug that caused incorrect
11093         CWDs to be sent with recursive FTP retrievals.
11094
11095 1996-10-03  Hrvoje Niksic  <hniksic@srce.hr>
11096
11097         * recur.c (parse_robots): Made it more compliant with "official"
11098         specifications.
11099
11100         * http.c: New function.
11101
11102         * ftp-unix.c (ftp_parse_ls): Added better debug output.
11103
11104         * ftp.c (getftp): Print out the LIST in case of
11105         opt.print_server_response.
11106
11107         * version.c: Changed version to 1.4b21.
11108
11109 1996-10-01  Hrvoje Niksic  <hniksic@srce.hr>
11110
11111         * version.c: "Released" 1.4b20.
11112
11113         * README: Update.
11114
11115         * http.c (gethttp): Preset lengths of various headers instead of
11116         calculating them dynamically.
11117         (gethttp): Check for 206 partial contents.
11118
11119 1996-09-30  Hrvoje Niksic  <hniksic@srce.hr>
11120
11121         * configure.in: Set SYSTEM_GETURLRC to $libdir/geturlrc
11122
11123         * http.c (gethttp): Send the port number in the Host: header.
11124
11125 1996-09-29  Hrvoje Niksic  <hniksic@srce.hr>
11126
11127         * http.c (gethttp): Send host: header.
11128         (gethttp): Add the possibility of user-defined headers.
11129         (gethttp): Move decision about pragma: no-cache to http_loop,
11130         where it belongs.
11131         (gethttp): Pass a struct instead of enormous argument list.
11132         (http_loop): Use a new, fancier display format.
11133         (ftp_loop): Likewise.
11134
11135         * main.c: (hangup): Turn off buffering of the new log file.
11136
11137         * install-sh: Likewise.
11138
11139         * config.sub: Replace with the one in autoconf-2.10
11140
11141         * geturl.1: Update.
11142
11143         * init.c: New options httpuser and httppasswd.
11144
11145         * http.c: (base64_encode_line): New function.
11146         (gethttp): Send authentication.
11147
11148         * connect.c (make_connection): Use store_hostaddress.
11149
11150 1996-09-28  Hrvoje Niksic  <hniksic@srce.hr>
11151
11152         * host.c (store_hostaddress): New function.
11153
11154         * NEWS: Update.
11155
11156         * http.c (hgetrange): New function.
11157         (gethttp): Use ranges.
11158
11159         * utils.c (numdigit): Accept long instead of int.
11160
11161         * http.c (http_loop): Add restart capabilities.
11162
11163         * ftp.c (ftp_retrieve_glob): Fixed a bug that could cause matchres
11164         being used uninitialized.
11165         (ftp_retrieve_list): Similar fix.
11166
11167         * host.c (add_hlist): Fixed a bug that could cause cmp being used
11168         uninitialized.
11169
11170         * url.c (construct_relative): New function.
11171
11172         * recur.c (recursive_retrieve): Use it.
11173
11174         * retr.c (convert_links): New function.
11175
11176 1996-09-27  Hrvoje Niksic  <hniksic@srce.hr>
11177
11178         * url.c (free_urlpos): New function.
11179
11180         * recur.c (recursive_retrieve): Adapt.
11181
11182         * url.c (get_urls_html): Return a linked list instead of a vector.
11183
11184         * url.c (get_urls_file): Return a linked list instead of a vector.
11185
11186         * geturl.1: Update.
11187
11188         * http.c (gethttp): Implement it.
11189
11190         * init.c (setval): New option: SAVEHEADERS
11191
11192         * ftp.c (ftp_loop_internal): Do not set restval if listing is to
11193         be retrieved. Lack of this test caused bugs when the connection
11194         was lost during listing.
11195
11196         * retr.c (retrieve_url): Fixed a bug that caused
11197         coredumps. *newloc is now reset by default.
11198         (retrieve_url): Lift the twenty-tries limit on proxies.
11199
11200         * version.c: Changed version to 1.4b20.
11201
11202 1996-09-20  Hrvoje Niksic  <hniksic@srce.hr>
11203
11204         * version.c: "Released" 1.4b19.
11205
11206 1996-09-19  Hrvoje Niksic  <hniksic@srce.hr>
11207
11208         * ftp.c (ftp_loop_internal): Renamed from ftp_1fl_loop.
11209         (getftp): Changed prototype to accept ccon *.
11210
11211 1996-09-17  Hrvoje Niksic  <hniksic@srce.hr>
11212
11213         * ftp.c (ftp_retrieve_list): Fixed a bug that caused setting
11214         incorrect values to files pointed to by symbolic links.
11215         (ftp_1fl_loop): Do not count listings among the downloaded URL-s.
11216
11217 1996-09-16  Hrvoje Niksic  <hniksic@srce.hr>
11218
11219         * url.c (mkstruct): Do not prepend "./" in front of a pathname.
11220
11221         * main.c (main): New option: --user-agent.
11222
11223         * geturl.1: Ditto.
11224
11225         * init.h: Ditto.
11226
11227         * init.c (setval): Ditto.
11228
11229         * main.c (main): Rename "server-headers" to "server-response".
11230
11231         * ftp-unix.c (ftp_parse_ls): Check for asterisks at the end of
11232         executables in 'ls -F' listings.
11233
11234 1996-09-15  Hrvoje Niksic  <hniksic@srce.hr>
11235
11236         * url.c (parseurl): Remove realloc() and sprintf().
11237         (str_url): Get rid of sprintf().
11238
11239         * recur.c (recursive_retrieve): Enable FTP recursion through proxy
11240         servers.
11241
11242         * url.h (URL_CLEANSE): Made it else-resistant.
11243         (USE_PROXY): New macro.
11244
11245 1996-09-14  Hrvoje Niksic  <hniksic@srce.hr>
11246
11247         * NEWS: Update.
11248
11249         * version.c: Changed version to 1.4b19.
11250
11251 1996-09-14  Hrvoje Niksic  <hniksic@srce.hr>
11252
11253         * version.c: "Released" 1.4b18.
11254
11255         * url.c: Made it reallocate space exponentially.
11256
11257 1996-09-14  Drazen Kacar  <dave@fly.cc.fer.hr>
11258
11259         * html.c (htmlfindurl): Added <frame src> and <iframe src> among
11260         the list of stuff to fetch.
11261
11262 1996-09-13  Hrvoje Niksic  <hniksic@srce.hr>
11263
11264         * url.c (get_urls_html): Fixed a bug that caused SIGSEGV's with
11265         -Fi.
11266
11267         * html.c (htmlfindurl): Rewrite.
11268
11269         * http.c (gethttp): Use opt.proxy_cache.
11270
11271         * main.c (main): Added --cache option.
11272
11273         * ftp.c (ftp_response): Print server response if opt.print_server
11274         response is set.
11275         (getftp): Print newlines after each request if the server response
11276         is to be printed.
11277         (ftp_response): Copy the last response line to last_respline.
11278
11279         * http.c (gethttp): Add Pragma: nocache for retried
11280         proxy-retrievals.
11281
11282         * ftp.c (getftp): Use it.
11283
11284         * retr.c (buf_discard): New function.
11285
11286         * ftp.c (ftp_response): Use buf_readchar().
11287         (getftp): Flush the control connection buffer before calling
11288         get_contents().
11289
11290         * retr.c (buf_readchar): New function.
11291         (buf_flush): New function.
11292         (get_contents): Use buf_readchar() instead of read(x, x, 1).
11293         (get_contents): Use buf_flush.
11294
11295 1996-09-12  Hrvoje Niksic  <hniksic@srce.hr>
11296
11297         * ftp.c: Incorporate changes to ftp_response.
11298
11299         * ftp.c (ftp_response): Allocate the server response dynamically,
11300         as in read_whole_line and fetch_next_header.
11301
11302         * utils.c (read_whole_line): Fixed a bug that prevented reading
11303         the last line if it is not \n-terminated. Also fixed a possible
11304         memory overflow.
11305
11306         * http.c (fetch_next_header): Return malloc-ed string as large as
11307         needed.
11308         (gethttp): Use new fetch_next_header.
11309
11310 1996-09-12  Hrvoje Niksic  <hniksic@srce.hr>
11311
11312         * http.c (hgetlen): Compute the header length the first time only.
11313         (hgettype): Ditto.
11314         (hgetlocation): Ditto.
11315         (hgetmodified): Ditto.
11316
11317 1996-09-11  Hrvoje Niksic  <hniksic@srce.hr>
11318
11319         * sample.geturlrc: Update.
11320
11321 1996-09-10  Hrvoje Niksic  <hniksic@srce.hr>
11322
11323         * http.c (http_loop): Ditto.
11324
11325         * ftp.c (getftp): Open the output file as binary.
11326
11327         * version.c: Changed version to 1.4b18.
11328
11329 1996-09-10  Hrvoje Niksic  <hniksic@srce.hr>
11330
11331         * version.c: "Released" 1.4b17.
11332
11333         * ftp-unix.c (ftp_parse_ls): If unable to open file, return NULL
11334         instead of failed assertion.
11335
11336 1996-09-09  Hrvoje Niksic  <hniksic@srce.hr>
11337
11338         * ftp.c (ftp_get_listing): Add a numbered suffix to LIST_FILENAME
11339         if a file of that name already exists.
11340
11341 1996-09-05  Hrvoje Niksic  <hniksic@srce.hr>
11342
11343         * ftp.c (ftp_1fl_loop): Handler FTPPORTERR and FOPENERR correctly.
11344
11345         * config.h.in: Define gethostbyname as Rgethostbyname when using
11346         Socks.
11347
11348         * configure.in: Check for -lresolv if using Socks.
11349
11350         * version.c: Changed version to 1.4b17.
11351
11352 1996-07-15  Hrvoje Niksic  <hniksic@srce.hr>
11353
11354         * version.c: "Released" 1.4b16.
11355
11356         * http.c (gethttp): More intelligent check for first line of HTTP
11357         response.
11358         (gethttp): Would bug out on time-stamping.
11359
11360         * version.c: Changed version to 1.4b16.
11361
11362 1996-07-11  Hrvoje Niksic  <hniksic@srce.hr>
11363
11364         * version.c: Released 1.4b15.
11365
11366         * http.c (http_loop): Print \n after the loop entry, not before.
11367
11368         * url.c (url_filename): Use ISDOT.
11369
11370         * url.h (ISDOT): New macro.
11371
11372         * recur.c (recursive_retrieve): Change only opt.recursive for
11373         following FTP.
11374
11375 1996-07-11  Antonio Rosella <antonio.rosella@agip.it>
11376
11377         * socks/geturl.cgi: Fixed version No.
11378
11379         * socks/download-netscape.html: Ditto.
11380
11381         * socks/download.html: Changed socks.html to download.html.
11382
11383 1996-07-11  Hrvoje Niksic  <hniksic@srce.hr>
11384
11385         * url.c (url_filename): Check for opt.dirstruct instead for
11386         opt.recursive && opt.dirstruct.
11387
11388         * init.c (defaults): Ditto.
11389         (defaults): Reset dirstruct by default.
11390         (setval): Set opt.dirstruct whenever setting recursive.
11391
11392         * init.h: Removed FORCEDIRHIER.
11393
11394         * INSTALL: Added -L to socks-description.
11395
11396         * version.c: Changed version to 1.4b15.
11397
11398 1996-07-10  Hrvoje Niksic  <hniksic@srce.hr>
11399
11400         * version.c: "Released" 1.4b14.
11401
11402         * geturl.1: Update AUTHOR to include Rosella as contributor.
11403
11404         * NEWS: Update.
11405
11406         * socks/geturl.cgi: Simplified command creation, nuked <blink>.
11407
11408         * socks/geturl.cgi: Wrap nutscape extensions within if $netscape.
11409         (cal_time): Fix == to eq.
11410
11411         * socks/geturl.cgi: GPL-ized with permission of A. Rosella.
11412
11413         * geturl.1 (hostname): Moved URL CONVENTIONS to the beginning.
11414
11415         * Makefile.in: Use @VERSION@.
11416
11417         * configure.in: Check version from version.c.
11418
11419         * socks/geturl.cgi: Changed /pub/bin/perl to /usr/bin/perl.
11420
11421         * socks/download.html: Created from download-netscape.html, made
11422         HTML-2.0 compliant.
11423
11424         * recur.c (recursive_retrieve): Set opt.force_dir_hier when
11425         following FTP links from recursions.
11426
11427 1996-07-09  Hrvoje Niksic  <hniksic@srce.hr>
11428
11429         * url.c (mymkdir): Fixed a bug that prevented mymkdir() to create
11430         absolute directories correctly.
11431
11432         * version.c: Changed version to 1.4b14.
11433
11434 1996-07-09  Hrvoje Niksic  <hniksic@srce.hr>
11435
11436         * version.c: "Released" 1.4b13.
11437
11438         * url.c (make_backup): New function.
11439
11440         * http.c (http_loop): Make a backup copy of the local file (using
11441         rename(2)) before opening it.
11442
11443         * main.c (main): Added --backups.
11444
11445         * host.c (ftp_getaddress): Bail out on failed mycuserid().
11446         (ftp_getaddress): Check for leading dot on MY_DOMAIN.
11447         (ftp_getaddress): Check for empty, null or (null) domain.
11448
11449         * url.c (get_urls_html): If this_url is NULL, the base must have a
11450         protocol.
11451         (parseurl): Use has_proto.
11452
11453         * retr.c (retrieve_url): Warn when proxy is used with more than 20
11454         retries.
11455
11456         * url.c (mkstruct): Create the directory (calling mymkdir()) only
11457         if it is not already there.
11458         (has_proto): New function.
11459         (get_urls_html): Eliminate the remaining call to findurl -- use
11460         has_proto.
11461
11462         * geturl.1: Ditto.
11463
11464         * main.c: Change -X to -x.
11465
11466         * url.c (url_filename): Simplify creation of filename if
11467         prefix_files is set.
11468         (url_filename): Simplify everything. And I do mean *everything*.
11469         (mkstruct): Add dir_prefix before hostname.
11470         (path_simplify): Fixed a bug that caused writing outside the path
11471         string in case of "." and ".." path strings.
11472
11473 1996-07-06  Hrvoje Niksic  <hniksic@srce.hr>
11474
11475         * init.c: Added --mirror.
11476
11477         * main.c (main): Added -X to force saving of directory hierarchy.
11478
11479         * ftp.c (ftp_retrieve_list): Added recursion depth counter.
11480         (ftp_retrieve_list): Check whether quota is exceeded.
11481
11482         * url.c (get_urls_html): Skip leading blanks for absolute URIs.
11483
11484         * http.c (gethttp): Use referer if present.
11485
11486         * recur.c (recursive_retrieve): Set u->referer before calling
11487         retrieve_url.
11488
11489         * url.c (newurl): Use memset to nullify the struct members.
11490         (freeurl): Free the referer field too.
11491
11492         * url.h: Added referer to urlinfo.
11493
11494         * geturl.1: Updated the manual to document some of the new features.
11495
11496         * utils.c (numdigit): Moved from url.c.
11497
11498         * README: Rewritten.
11499
11500         * config.h.in: Add the support for socks.
11501
11502         * configure.in: Add the support for socks.
11503
11504         * url.c (url_filename): If the dir_prefix is ".", work with just
11505         the file name.
11506         (url_filename): Do not look for .n extensions if timestamping if
11507         turned on.
11508
11509         * retr.c (show_progress): Skip the over-abundant restval data, and
11510         print the rest of it with ',' instead of '.'.
11511
11512 1996-07-05  Hrvoje Niksic  <hniksic@srce.hr>
11513
11514         * retr.c (show_progress): Changed second arg. to long (as it
11515         should be).
11516         (show_progress): Moved to retr.c.
11517         (get_contents): Moved to retr.c.
11518
11519         * version.c: Change version to 1.4b13.
11520
11521 1996-07-05  Hrvoje Lacko <hlacko@fly.cc.fer.hr>
11522
11523         * url.c (in_acclist): Would return after the first suffix.
11524
11525 1996-07-04  Hrvoje Niksic  <hniksic@srce.hr>
11526
11527         * version.c: "Released" 1.4b12.
11528
11529         * url.c (path_simplify): More kludgifications.
11530         (get_urls_html): Use new parameters for htmlfindurl.
11531
11532         * html.c: Removed memorizing "parser states", since the new
11533         organization does not require them.
11534
11535         * init.c (run_geturlrc): Use read_whole_line.
11536
11537         * ftp-unix.c (ftp_parse_ls): Use read_whole_line.
11538
11539         * recur.c (parse_robots): Use read_whole_line.
11540
11541         * utils.c (read_whole_line): New function.
11542
11543         * recur.c (tried_robots): Use add_slist/in_slist, *much* cleaner.
11544
11545         * host.c (ngethostbyname): Call inet_addr just once. Yet to be
11546         tested on OSF and Ultrix.
11547         (add_hlist): New function.
11548         (free_hlist): New function.
11549         (search_host): New function.
11550         (search_address): New function.
11551         (realhost): Use search_host, search_address and add_hlist.
11552         (same_host): Replaced realloc() with strdupdelim(), made
11553         case-insensitive, fixed a memory leak.
11554
11555         * html.c (ftp_index): Fixed tm_min and tm_sec to be tm_hour and
11556         tm_min, like intended.
11557
11558         * version.c: Change user agent information to
11559         Geturl/version.
11560
11561 1996-07-03  Hrvoje Niksic  <hniksic@srce.hr>
11562
11563         * utils.c: Renamed nmalloc.c to utils.c, .h likewise.
11564
11565         * url.c (acceptable): Always accept directories.
11566
11567         * ftp-unix.c (ftp_parse_ls): Support brain-damaged "ls -F"-loving
11568         servers by stripping trailing @ from symlinks and trailing / from
11569         directories.
11570
11571         * ftp.c (ftp_loop): Debugged the "enhanced" heuristics. :-)
11572
11573         * url.c (skip_url): Use toupper instead of UCASE.
11574
11575         * host.c (sufmatch): Made it case-insensitive.
11576
11577         * url.c (match_backwards_or_pattern): Fixed i == -1 to j == -1.
11578         (match_backwards): New function, instead of
11579         match_backwards_or_pattern.
11580
11581         * recur.c (recursive_retrieve): Increased performance by
11582         introducing inl, which reduces number of calls to in_slist to only
11583         one.
11584
11585         * ftp.c (ftp_loop): Enhanced the heuristics that decides which
11586         routine to use.
11587
11588         * main.c (printhelp): Removed the warranty stuff.
11589
11590 1996-07-02  Hrvoje Niksic  <hniksic@srce.hr>
11591
11592         * url.c (add_slist): Simplify.
11593         (match_backwards_or_pattern): New function.
11594         (in_acclist): Use match_backwards_or_pattern.
11595         (matches): Remove.
11596
11597 1996-06-30  Hrvoje Niksic  <hniksic@srce.hr>
11598
11599         * ftp.c (ftp_loop): Call ftp_index on empty file names, if not
11600         recursive.
11601
11602         * html.c (ftp_index): Fixed to work. Beautified the output.
11603
11604         * ftp.c (ftp_retrieve_glob): Another argument to control whether
11605         globbing is to be used.
11606         (ftp_retrieve_list): Compare the time-stamps of local and remote
11607         files to determine whether to download.
11608
11609 1996-06-29  Hrvoje Niksic  <hniksic@srce.hr>
11610
11611         * ftp.c (rel_constr): New function.
11612
11613         * retr.c (retrieve_from_file): Check for text/html before
11614         retrieving recursively.
11615
11616         * main.c (main): Check whether the file is HTML before going into
11617         recursive HTML retrieving.
11618
11619         * ftp.c (ftp_retrieve_list): Manage directories.
11620         (ftp_retrieve_glob): Pass all the file-types to ftp_retrieve_list.
11621         (ftp_1fl_loop): Fixed a bug that caused con->com to be incorrectly
11622         initialized, causing bugchecks in getftp to fail.
11623
11624         * configure.in: Check for symlink.
11625
11626         * ftp.c (ftp_retrieve_list): Added support for symlinks.
11627
11628         * version.c: "Released" 1.4b10.
11629
11630         * atotm.c (atotm): Redeclared as time_t.
11631
11632         * init.c: New variable "timestamping".
11633
11634         * main.c (main): New option 'N'.
11635
11636         * http.c (hgetlocation): Case-insensitive match.
11637         (hgetmodified): New function.
11638         (http_loop): Implement time-stamping.
11639
11640 1996-06-28  Hrvoje Niksic  <hniksic@srce.hr>
11641
11642         * version.c: Changed version to 1.4b10
11643
11644         * atotm.c: New file, from phttpd.
11645
11646         * options.h (struct options): New parameter timestamping.
11647
11648         * version.c: 1.4b9 "released".
11649
11650         * recur.c (recursive_retrieve): Used linked list (ulist) for
11651         faster storing of URLs.
11652
11653         * url.c (get_urls_html): Removed the old kludge with comparing the
11654         outputs of htmlfindurl and findurl.
11655         (get_urls_html): Added better protocol support here.
11656         (create_hash): Removed, as well as add_hash and in_hash.
11657         (addslist): New function.
11658         (in_slist): ditto
11659
11660         * version.c: Released 1.4b8, changed version to b9.
11661
11662 1996-06-27  Hrvoje Niksic  <hniksic@srce.hr>
11663
11664         * ftp.c (freefileinfo): New function.
11665         (delelement): New function.
11666
11667         * everywhere: GPL!
11668
11669         * ftp.c (ftp_loop): Use ccon.
11670         (ftp_retrieve_glob): Likewise.
11671
11672         * ftp.h: Define ccon, to define status of control connection.
11673
11674         * ftp.c (ftp_get_listing): New function.
11675         (ftp_retrieve_more): New function.
11676         (ftp_retrieve_glob): New function.
11677
11678 1996-06-25  Hrvoje Niksic  <hniksic@srce.hr>
11679
11680         * configure.in: Removed the search for cuserid().
11681
11682         * init.c (getmode): Renamed to getperms.
11683
11684 1996-06-24  Hrvoje Niksic  <hniksic@srce.hr>
11685
11686         * version.c: New version.
11687
11688         * main.c (hangup): New function, that handles hangup. Hangup
11689         signal now causes geturl to stop writing on stdout, and to write
11690         to a log file.
11691
11692         * ftp.c (getftp): "Released" 1.4b7.
11693
11694         * html.c (htmlfindurl): Ignore everything inside <head>...</head>.
11695         (ftp_index): Use fileinfo/urlinfo.
11696
11697         * ftp-unix.c (ftp_parse_ls): New function.
11698         (symperms): New function.
11699
11700         * ftp.c (ftp_1fl_loop): New function, to handle 1-file loops.
11701
11702         * retr.c (retrieve_url): Added FTP support.
11703
11704 1996-06-23  Hrvoje Niksic  <hniksic@srce.hr>
11705
11706         * geturl.h: Removed NOTFTP2HTML enum.
11707         Added DO_LOGIN, DO_CWD and DO_LIST. LIST_ONLY is obsolete.
11708
11709         * ftp.c (getftp): Resynched with urlinfo.
11710         (getftp): Removed HMTL-ization of index.html from getftp.
11711
11712         * version.c: 1.4b6 "released".
11713
11714         * options.h (options): New struct, to keep options in.
11715
11716         * http.c (http_loop,gethttp): Synched with proxy.
11717
11718         * retr.c (retrieve_url): Implemented proxy retrieval.
11719
11720         * main.c (main): Use retrieve_from_file.
11721
11722 1996-06-22  Hrvoje Niksic  <hniksic@srce.hr>
11723
11724         * retr.c (retrieve_from_file): New function.
11725
11726         * url.c (parseurl): Modified to return URLOK if all OK. Protocol
11727         can be found in u->proto.
11728
11729         * ftp.c (ftp_response): Fixed to accept multi-line responses as
11730         per RFC 959.
11731
11732         * recr.c (recursive_retrieve): Take newloc from retrieve_url.
11733
11734         * url.c (mymkdir): Removed the file of the same name, if one
11735         exists.
11736         (isfile): New function.
11737         (mkstruct): Fixed the '/' glitches.
11738         (path_simplify): Hacked to treat something/.. correctly.
11739
11740 1996-06-21  Hrvoje Niksic  <hniksic@srce.hr>
11741
11742         * http.c (gethttp): Close the socket after error in headers.
11743         (http_loop): HEOF no longer a fatal header.
11744
11745         * loop.c (retrieve_url): When dt is NULL, do not modify it. This
11746         simplifies the syntax of calling retrieve_url.
11747
11748         * recr.c (recursive_retrieve): Modified to use get_urls_html.
11749
11750         * url.c (get_urls_file): New function.
11751         (get_urls_html): New function.
11752
11753         * recr.c (recursive_retrieve): Patched up to conform to the
11754         standards.
11755
11756         * http.c (gethttp): Synched with the rest...
11757         (gethttp): Treat only CONREFUSED specially, with connection
11758         errors.
11759
11760         * init.c,geturl.1,http.c (http_loop): Removed kill_error.
11761
11762 1996-06-20  Hrvoje Niksic  <hniksic@srce.hr>
11763
11764         * http.c (http_loop): New function.
11765
11766         * loop.c: Removed *lots* of stuff from retrieve_url.
11767
11768         * url.c (parseurl): Changed to work with urlinfo. Integrated
11769         username finding and path parsing.
11770         (newurl): New function.
11771         (freeurl): New function.
11772         (mkstruct): Removed the old bogosities, made it urlinfo-compliant.
11773         (url_filename): Likewise.
11774         (path_simplify): Accept relative paths too.
11775         (opt_url): Made urlinfo-compliant, removed bogosities.
11776         (path_simplify): Expanded to accept relative paths.
11777         (str_url): A replacement for hide_url
11778         (decode_string): Fixed a bug that caused malfunctioning when
11779         encountering an illegal %.. combination.
11780         (opt_url): Removed the argument. Dot-optimizations are now default.
11781
11782         * nmalloc.c (strdupdelim): New function.
11783
11784         * url.h: Added the urlinfo structure
11785
11786 1996-06-19  Hrvoje Niksic  <hniksic@srce.hr>
11787
11788         * url.c (hide_url): Thrown out the protocol assertion. Do not
11789         change the URL if the protocol if not recognized.
11790         (findurl): Put continue instead of break.
11791
11792 1996-06-18  Hrvoje Niksic  <hniksic@srce.hr>
11793
11794         * sample.geturlrc: Changed the defaults to be commented out and
11795         harmless (previous defaults caused pains if copied to
11796         ~/.geturlrc).
11797
11798         * http.c (gethttp): Print the HTTP request in debug mode.
11799
11800         * connect.c (iread): Added EINTR check loop to select-ing
11801         too. EINTR is now correctly handled with select().
11802
11803         * TODO: new file
11804
11805 1996-05-07  Hrvoje Niksic  <hniksic@srce.hr>
11806
11807         * host.c (same_host): Made the function a little bit more
11808         intelligent regarding diversified URL syntaxes.
11809
11810         * url.c (skip_url): Spaces are now skipped after URL:
11811
11812         * Released 1.3.1 with the patch to prevent crashing when sending
11813         NULL to robot* functions and the patch to compile "out of the box"
11814         on AIX.
11815
11816         * recr.c (recursive_retrieve): Added checking whether this_url is
11817         NULL when calling the robot functions.
11818
11819         * ChangeLog: New file.