]> sjero.net Git - wget/blob - src/ChangeLog
Remove an unused declaration.
[wget] / src / ChangeLog
1 2009-02-18  Steven Schubiger  <stsc@members.fsf.org>
2
3         * recur.h: Remove the dangling declaration for recursive_cleanup().
4
5 2008-11-13  Micah Cowan  <micah@cowan.name>
6
7         * http.c (gethttp): Don't do anything when content-length >= our
8         requested range.
9
10 2008-11-27  Saint Xavier  <wget@sxav.eu>
11
12         * http.c (gethttp): Move authentication code before filename
13         allocation avoiding fallbacking on default filename because
14         "Content-Disposition" header wasn't present before authentcation
15         has been completed. Fixes bug #24862.
16
17 2008-11-16  Steven Schubiger  <stsc@members.fsf.org>
18
19         * main.c: Declare and initialize the numurls counter.
20
21         * ftp.c, http.c: Make the counter visible here and use it.
22         
23         * options.h: Remove old declaration from options struct.
24
25 2008-11-15  Steven Schubiger  <stsc@members.fsf.org>
26
27         * init.c (defaults): Set default waitretry value.
28
29 2008-11-14  Steven Schubiger  <stsc@members.fsf.org>
30
31         * main.c (format_and_print_line): Use a custom format 
32         string for printing leading spaces.
33
34 2008-11-12  Micah Cowan  <micah@cowan.name>
35
36         * ftp-ls.c (ftp_index): HTML-escape dir name in title, h1, a:href.
37
38 2008-11-12  Alexander Belopolsky  <alexander.belopolsky@gmail.com>
39
40         * url.c, url.h (url_escape_unsafe_and_reserved): Added.
41
42         * ftp-ls.c (ftp_index): URL-escape, rather than HTML-escape, the
43         filename appearing in the link.
44
45 2008-11-12  Steven Schubiger  <stsc@members.fsf.org>
46
47         * main.c (print_version): Hand the relevant
48         xstrdup/xfree calls back to format_and_print_line().
49
50 2008-11-11  Steven Schubiger  <stsc@members.fsf.org>
51
52         * main.c (format_and_print_line): Move both the memory
53         allocating and freeing bits upwards to print_version().
54
55 2008-11-10  Saint Xavier  <wget@sxav.eu>
56
57         * http.c: Make --auth-no-challenge works with user:pass@ in URLs.
58
59 2008-11-05  Micah Cowan  <micah@cowan.name>
60
61         * ftp.c (print_length): Should print humanized "size remaining"
62         only when it's at least 1k.
63
64 2008-10-31  Micah Cowan  <micah@cowan.name>
65
66         * main.c (print_version): Add information about the mailing list.
67
68 2008-10-31  Alexander Drozdov  <dzal_mail@mtu-net.ru>
69
70         * retr.c (fd_read_hunk): Make assert deal with maxsize == 0.
71
72         * ftp-ls.c (clean_line): Prevent underflow on empty lines.
73
74 2008-10-26  Gisle Vanem  <gvanem@broadpark.no>
75
76         * main.c (format_and_print_line): Put variables on top of
77         blocks (not all compilers are C99). Add an extra '\n' if
78         SYSTEM_WGETRC isn't defined and printed.
79
80 2008-09-09  Gisle Vanem  <gvanem@broadpark.no>
81
82         * url.c (url_error): Use aprintf, not asprintf.
83         
84 2008-09-09  Micah Cowan  <micah@cowan.name>
85
86         * init.c (home_dir): Save the calculated value for home,
87         to avoid duplicated work on repeated calls.
88         (wgetrc_file_name) [WINDOWS]: Define and initialize home var.
89
90         * build_info.c, main.c: Remove unnecessary extern vars
91         system_wgetrc and locale_dir.
92
93         * main.c: Define program_name for lib/error.c.
94
95 2008-09-02  Gisle Vanem  <gvanem@broadpark.no>
96
97         * mswindows.h: Must ensure <stdio.h> is included before
98         we redefine ?vsnprintf().
99
100 2008-08-08  Steven Schubiger  <stsc@members.fsf.org>
101
102         * main.c, utils.h: Removed some dead conditional DEBUG_MALLOC code.
103
104 2008-08-03  Micah Cowan  <micah@cowan.name>
105
106         * main.c (print_help): Added --default-page.
107
108 2008-08-01  Joao Ferreira  <joao@joaoff.com>
109
110         * init.c, main.c, options.h, url.c: Added option --default-page
111         to support alternative default names for index.html
112
113 2008-08-03  Micah Cowan  <micah@cowan.name>
114
115         * build_info.c, css-url.c: #include wget.h, not config.h.
116
117 2008-08-03  Steven Schubiger  <stsc@members.fsf.org>
118
119         * url.c, url.h (url_error): Better messages for unsupported
120         schemes, especially https.
121
122         * html-url.c, recur.c, retr.c: Adjust to new url_error
123         invocation, and free result.
124
125 2008-07-17  Steven Schubiger  <stsc@members.fsf.org>
126
127         * retr.c (retrieve_from_file): When given an URL as input file,
128         use it as baseref if none was specified and treat the input file
129         as HTML if its content type is text/html.
130
131         * init.c (cleanup): Free the memory associated with the base
132         option (when DEBUG_MALLOC is defined).
133
134 2008-06-28  Steven Schubiger  <stsc@members.fsf.org>
135
136         * retr.c (retrieve_from_file): Allow for reading the links from
137         an external file (HTTP/FTP).
138
139 2008-06-25  Steven Schubiger  <stsc@members.fsf.org>
140
141         * ftp.c (getftp): When spidering a FTP URL, emit a diagnostic
142         message if the remote file exists.
143
144 2008-06-24  Steven Schubiger  <stsc@members.fsf.org>
145
146         * http.c (http_loop): Replace escnonprint() occurence with
147         a quotearg_style() call.
148
149 2008-06-24  Micah Cowan  <micah@cowan.name>
150
151         * ftp-ls.c (ftp_index): Don't assume time_t* is compatible with
152         long*. Fixes crash on Windows, and probably other systems.
153
154 2008-06-22  Steven Schubiger  <stsc@members.fsf.org>
155
156         * http.c: Explicitly initialize and deallocate the message
157         string used by the -nv --spider functionality.
158
159 2008-06-22  Steven Schubiger  <schubiger@gmail.com>
160
161         * http.c: Make -nv --spider include the file's name when it
162         exists.
163         
164 2008-06-22  Micah Cowan  <micah@cowan.name>
165
166         * Makefile.am (version.c): Fixed version string invocation so it
167         once again can't result in unterminated strings, made all the
168         string vars pointers-to-const, and moved line lengths
169         below 80 (in Makefile.am, not in version.c).
170
171 2008-06-16  Micah Cowan  <micah@cowan.name>
172
173         * http.c (http_loop): When hstat.len is higher than the
174         successfully completed content's length, but it's because we
175         _set_ it that way, don't abort.
176
177 2008-06-13  Micah Cowan  <micah@cowan.name>
178
179         * build_info.c: ENABLE_NTLM, not HAVE_NTLM; distinguish OpenSSL
180         from "ssl".
181
182 2008-06-13  Madhusudan Hosaagrahara <com.gmail.hrmadhu>
183
184         * Makefile.am, main.c, init.c, init.h, build_info.c: Adds build
185         information to the --version command line option. Fixes bug
186         #20636.
187
188 2008-06-01  Micah Cowan  <micah@cowan.name>
189
190         * main.c [WINDOWS]: Reopen stdout in binary mode, when -O - is
191         given.
192
193 2008-05-31 Micah Cowan  <micah@cowan.name>
194
195         * html-url.c, http.c: Avoid casts in a couple spots.
196
197 2008-05-30 Henri Häkkinen  <henux@users.sourceforge.net>
198
199         * cookies.c, ftp-basic.c, hash.c, html-url.c, http-ntlm.c, http.c,
200         init.c, log.c, main.c, progress.c, ptimer.c, spider.c, url.c,
201         utils.c: Minor changes to silence warnings when using -Wall.
202
203 2008-05-26  Steven Schubiger  <schubiger@gmail.com>
204
205         * ftp.c (getftp): Replace last remaining invocation of escnonprint
206         with gnulib quote.
207
208 2008-05-19  Micah Cowan  <micah@cowan.name>
209
210         * main.c (main): Password prompt should be done only once (not
211         once per argument), and should be done prior to the background
212         fork.
213
214 2008-05-17  Steven Schubiger  <schubiger@gmail.com>
215
216         * init.c (defaults): Set the preferred IP family to `none' by
217         default.
218
219 2008-05-17  Kenny Parnell  <k.parnell@gmail.com>
220         
221         (cmd_spec_prefer_family): Initialize prefer_family to prefer_none.
222
223 2008-05-17  Micah Cowan  <micah@cowan.name>
224         
225         * main.c (main): Handle Ctrl-D on command-line.
226
227 2008-05-15  Steven Schubiger  <schubiger@gmail.com>
228
229         * ftp.c (getftp): Verify that the file actually exists in FTP, by
230         checking it against the listing.
231
232 2008-05-15  Micah Cowan  <micah@cowan.name>
233
234         * main.c (prompt_for_password): Use the quote module.
235
236 2008-05-14  Micah Cowan  <micah@cowan.name>
237
238         * ftp.c (ftp_retrieve_list): Symlinks and other filenames
239         should be fully quoted.
240
241 2008-05-12  Micah Cowan  <micah@cowan.name>
242
243         * main.c (main): Downgrade "-N with -O" to a warning, and switch
244         it off to avoid confusing messages.
245
246 2008-04-30  Micah Cowan  <micah@cowan.name>
247
248         * progress.c (create_image): Fix glitch where too many spaces are
249         printed on lines that don't display the ETA, in multibyte
250         locales.
251
252 2008-04-30  Steven Schubiger  <stsc@members.fsf.org>
253
254         * main.c (main): New code that handles prompting for passwords
255         when specified explicitly via command-line option (using gnulib's
256         getpass-gnu module).
257         (main): Include the getpass header.
258
259         * init.c: Add "ask-password" to the list of recognized commands.
260
261         * options.h: Add an according boolean member to the options
262         struct.
263         
264         * sysdep.h: Comment the defines __EXTENSIONS__ and _GNU_SOURCE
265         out, because they're now defined independently by config.h.
266
267 2008-04-27  Rabin Vincent  <rabin@rab.in>
268
269         * http.c (http_loop): Fix return for the case where we don't
270         download a file because of -nc.
271
272 2008-04-27  Micah Cowan  <micah@cowan.name>
273
274         * url.c (path_simplify): Go back to allowing leading ".." in
275         paths, but only for FTP URLs.
276         (test_path_simplify): Add scheme-specificness to tests, adapt for
277         mu_run_test.
278
279         * test.c (all_tests): Add test_path_simplify.
280
281         * main.c (main): Downgrade -r, -p with -O to a warning rather than
282         an error; elaborate just a bit more for other -O combination
283         cases.
284
285 2008-04-26  Micah Cowan  <micah@cowan.name>
286
287         * http.c (gethttp): Move proxy CONNECT handling to below the
288         retry_with_auth label, to deal with properly reconnecting to
289         proxies when we need to authenticate.
290
291 2008-04-25  Micah Cowan  <micah@cowan.name>
292
293         * Makefile.am: -I foo -> -Ifoo.
294
295 2008-04-24  Micah Cowan  <micah@cowan.name>
296
297         * main.c: Revised usage description of --convert-links to apply
298         to CSS as well as to HTML.
299
300 2008-04-23  Micah Cowan  <micah@cowan.name>
301
302         * utils.c (test_dir_matches_p): Added a test for the case
303         described in issue #20518.
304
305 2008-04-22  Micah Cowan  <micah@cowan.name>
306
307         * Makefile.am, css.lex, css.l: Renamed css.lex to css.l.
308         * recur.c (retrieve_tree): Fix typo to allow text/css files to
309         be parsed.
310
311 2008-04-22  Ted Mielczarek  <ted.mielczarek@gmail.com>
312
313         * css.lex, css-url.c, css-url.h: Added to implement support for
314         parsing CSS in Wget.
315         * convert.c: Convert links in CSS files, too.
316         * convert.h (convert_options): Added for options link_css_p,
317         link_expect_css.
318         * convert.h: Added prototype for new register_css function.
319         * html-parse.c: Added support for parsing element content, in
320         addition to tag starts and ends.
321         * html-parse.h (taginfo): Added delimiter fields for element
322         content.
323         * html-url.h: Added.
324         * html-url.c (append_url): No longer internal-linkage only. Now
325         takes position and size as explicit parameters.
326         * html-url.c: Use new html-url.h header, add support for
327         handling of "style" HTML attributes. Mark URIs obtained from
328         link tags with rel="stylesheet" with link_expect_css. Adapt
329         uses of append_url to supply the newly-added parameters for
330         position and size.
331         * http.c: Add detection for when the content-type is text/css;
332         and ensure that such files have the ".css" filename extension,
333         when --convert-links is active.
334         * recur.h: Remove declarations for functions found in
335         html-url.c (moved to html-url.h).
336         * recur.c: Add support for culling links from CSS files, too,
337         and tracking for when we're expecting the file to be CSS (even
338         when its content type isn't text/css).
339         * retr.c (retrieve_url): Add registration of CSS files.
340         * wget.h: Added TEXTCSS to dt flags enum.
341         * Makefile.am: Added css.lex, css-url.c, css-url.h, html-url.h
342         to wget_SOURCES.
343
344 2008-04-22  Jim Paris  <jim@jtan.com>
345
346         * openssl.c (ssl_init): Enable combined certificate/key in
347         single file (apparent regression from ~1.9). Resolves issue
348         #22767.
349
350 2008-04-22  Steven Schubiger  <schubiger@gmail.com>
351
352         * http.c (print_response_line): Changed to make responses always
353         be logged, even in --quiet mode, if --server-response was
354         specified. This is to bring http.c's handling of the situation
355         in line with ftp.c's.
356
357 2008-04-22  Pranab Shenoy  <pranab.loosinit.shenoy@gmail.com>
358
359         * init.c: Added test_commands_sorted unit test to check is
360         commands are sorted.  Fixes bug #21245.
361
362         * test.c: Added test_commands_sorted to the test suite.
363
364 2008-04-22  Rabin Vincent  <rabin@rab.in>
365
366         * ftp.c (ftp_get_listing): Only remove .listing if it has been
367         created. 
368
369 2008-04-22  Alain Guibert  <alguibert+bts@free.fr>
370
371         * test.h (mu_run_test): Move declaration before statements, for
372         C90 conformance. Fixes bug #22789.
373
374 2008-04-22  Mike Frysinger  <vapier@gentoo.org>
375
376         * Makefile.am: Move @LIBS@ after other libraries, for better
377         static-linking support. Fixes bug #22143.
378
379 2008-04-16  Steven Schubiger  <schubiger@gmail.com>
380
381         * ftp.c: Use Gnulib's quote function for printing filenames and
382         such.
383         * connect.c: Likewise.
384         * convert.c: Likewise.
385         * cookies.c: Likewise.
386         * ftp-opie.c: Likewise.
387         * gnutls.c: Likewise.
388         * init.c: Likewise.
389         * log.c: Likewise.
390         * mswindows.c: Likewise.
391         * openssl.c: Likewise.
392         * progress.c: Likewise.
393         * recur.c: Likewise.
394         * res.c: Likewise.
395         * utils.c: Likewise.
396
397 2008-04-16  Steven Schubiger  <schubiger@gmail.com>
398
399         * sysdep.h: Comment the defines __EXTENSIONS__ and _GNU_SOURCE 
400         out, because they're now defined independently by config.h.
401
402 2008-04-14  Steven Schubiger  <schubiger@gmail.com>
403
404         * http.c: Use Gnulib's quote function for printing filenames and
405         such.
406         * wget.h: #include "quote.h".
407
408 2008-04-12  Rabin Vincent  <rabin@rab.in>
409
410         * mswindows.c (fake_fork_child): Don't create a logfile for
411         --background when --quiet is used, but not --server-response.
412         Fixes bug #20917.
413
414         * utils.c (fork_to_background): Likewise.
415
416 2008-04-12  Micah Cowan  <micah@cowan.name>
417
418         * utils.c (aprintf): Minor formatting changes to Alex's code (80-
419         column limit, concatenated string literals, avoiding nesting
420         levels), and removed invocation of free (since we're aborting
421         anyway).
422
423 2008-04-11  Alexander Dergachev  <cy6erbr4in@gmail.com>
424
425         * utils.c (aprintf): Now we are setting limits (1 Mb) for text
426         buffer when we use non-C99 vsnprintf.
427         
428 2008-04-11  Micah Cowan  <micah@cowan.name>
429
430         * ftp.c (getftp, ftp_loop_internal): Don't append to an existing
431         .listing when --continue is used.  Fixes bug #22825. Thanks to
432         Rabin Vincent <rabin@rab.in> for pointing the way with a
433         suggested fix!
434
435 2008-04-10  Alexander Dergachev  <cy6erbr4in@gmail.com>
436
437         * xmalloc.c, xmalloc.h (memfatal): Now exported; accepts an
438         "unknown" value for the attempted allocation size.
439         * utils.c (aprintf): Now calls memfatal, instead of aborting.
440
441 2008-03-19  Micah Cowan  <micah@cowan.name>
442
443         * utils.c (test_dir_matches_p): More tests related for
444         dir_matches_p.
445
446 2008-03-17  Micah Cowan  <micah@cowan.name>
447
448         * connect.c: Include sys/time.h to support use of the select
449         function on older systems.
450
451 2008-02-11  Benno Schulenberg  <bensberg@justemail.net>
452
453         * http.c: More accurate and descriptive messages for when a file
454         won't be retrieved during spider-mode.
455
456 2008-02-10  Micah Cowan  <micah@cowan.name>
457
458         * http.c: Added existence_checked member to the http_stat
459         struct.
460         (gethttp): Mark hs->existence_checked when we've checked whether
461         a file-to-download exists; so we don't check it again if the
462         connection gets lost (and potentially pick a new "unique" name).
463         This fixes bug 22251.
464         * progress.c (create_image): Add space for an extra column in
465         the "eta" portion of the progress bar image; to deal with
466         too-long Czech translation.
467         * main.c, http.c, init.c: Added --auth-no-challenge option, to
468         bring back 1.10.2 unsafe auth behavior when needed. This fixes
469         bug #22242.
470
471 2008-02-07  Micah Cowan  <micah@cowan.name>
472
473         * progress.c (create_image): Remove assertion on exceeding
474         screen width, which given the less-than-robust code there, can
475         be broken by a number of factors (such as large file downloads).
476
477 2008-02-06  Micah Cowan  <micah@cowan.name>
478
479         * progress.c (countcols): Use strlen() when mbtowc or wcwidth
480         not available (or not using NLS).
481         * utils.c: Ensure we use single-byte separators when not doing
482         NLS progress-bars.
483         * wget.h: Determine whether to use NLS for progress-bars, based
484         on whether wcwidth and mbtowc are available.
485
486 2008-02-03  Micah Cowan  <micah@cowan.name>
487
488         * progress.c (create_image): Use number of characters/columns
489         consumed, rather than number of bytes, to determine how much of
490         a line we've used. Fixes assertion errors and field alignment
491         bugs (#22161, #20481)
492         (get_eta, count_cols): Added to support the changes for
493         create_image.
494         * http.c (http_loop): Put no-clobber logic back into http_loop,
495         before starting to fetch, for when we're not doing
496         content-disposition.
497
498 2008-01-31  Micah Cowan  <micah@cowan.name>
499
500         * http.c (gethttp): Don't derive hs->contlen from possibly
501         invalid/missing Content-Length; instead, get the appropriate
502         value from the Content-Range header values.
503         (parse_content_range): Handle '*' instance-length field.
504
505 2008-01-25  Micah Cowan  <micah@cowan.name>
506
507         * main.c: Added notes to translators regarding (C), diacritics
508         in names.
509         * Makefile.am, cmpt.c, connect.c, connect.h, convert.c,
510         cookies.c, cookies.h, ftp-basic.c, ftp-ls.c, ftp-opie.c, ftp.c,
511         ftp.h, gen-md5.c, gen-md5.h, gnutls.c, hash.c, hash.h, host.c,
512         host.h, html-parse.c, html-parse.h, html-url.c, http-ntlm.c,
513         http-ntlm.h, http.c, http.h, init.c, init.h, log.c, log.h,
514         main.c, mswindows.c, mswindows.h, netrc.c, netrc.h, openssl.c,
515         options.h, progress.c, progress.h, ptimer.c, ptimer.h, recur.c,
516         recur.h, res.c, res.h, retr.c, retr.h, spider.c, spider.h,
517         ssl.h, sysdep.h, test.c, test.h, url.c, url.h, utils.c,
518         utils.h, wget.h, xmalloc.c, xmalloc.h: Updated copyright year.
519
520 2007-12-10  Micah Cowan  <micah@cowan.name>
521
522         * main.c: The option is --content-disposition, not
523         --no-content-disposition (at the moment).
524
525 2007-12-08  Hrvoje Niksic  <hniksic@xemacs.org>
526
527         * ftp.c (ftp_retrieve_glob): Print both arguments of fnmatch in
528         fnmatch error message.
529         (ftp_retrieve_glob): Don't match with fnmatch if we're only
530         supposed to get one file.
531
532 2007-12-07  Micah Cowan  <micah@cowan.name>
533
534         * Makefile.am: Plug in vars to include stuff from
535         $(top_srcdir)/md5 when appropriate.
536
537 2007-12-05  Micah Cowan  <micah@cowan.name>
538
539         * utils.c (subdir_p): Handle the case where d1 is "".
540         * convert.c (convert_all_links): Don't return without
541         deallocating timer.
542
543 2007-11-28  Micah Cowan  <micah@cowan.name>
544
545         * Makefile.am, cmpt.c, connect.c, connect.h, convert.c,
546         convert.h, cookies.c, cookies.h, ftp-basic.c, ftp-ls.c,
547         ftp-opie.c, ftp.c, ftp.h, gen-md5.c, gen-md5.h, gnutls.c,
548         hash.c, hash.h, host.c, host.h, html-parse.c, html-parse.h,
549         html-url.c, http-ntlm.c, http-ntlm.h, http.c, http.h, init.c,
550         init.h, log.c, log.h, main.c, mswindows.c, mswindows.h,
551         netrc.c, netrc.h, openssl.c, options.h, progress.c, progress.h,
552         ptimer.c, ptimer.h, recur.c, recur.h, res.c, res.h, retr.c,
553         retr.h, safe-ctype.c, safe-ctype.h, spider.c, spider.h, ssl.h,
554         sysdep.h, test.c, test.h, url.c, url.h, utils.c, utils.h,
555         wget.h, xmalloc.c, xmalloc.h: Updated license exception for
556         OpenSSL, per the SFLC.
557
558 2007-10-30  Micah Cowan  <micah@cowan.name>
559
560         * main.c (main): Declare argv parameter as char **argv, rather
561         than char *const *argv. This fixes usage of getopt_long,
562         regardless of whether getopt_long has a constified argv or not.
563
564 2007-10-22  Gisle Vanem  <gvanem@broadpark.no>
565
566         * mswindows.c: Move INHIBIT_WRAP macro definition up with wget.h
567         inclusion.
568
569 2007-10-18  Steven Schweda  <sms@antinode.org>
570
571         * sysdep.h: #include <stdint.h> as well as <inttypes.h>, to work
572         around a glitch on Tru64 systems.
573
574 2007-10-18  Micah Cowan  <micah@cowan.name>
575
576         * Makefile.am: version.c should not be distributed. Removed
577         config-post.h. Add version.c dependency and gnulib include path
578         for libunittest.a.
579         * sysdep.h: Got contents of config-post.h
580         * config-post.h: Removed.
581         * wget.h: #include "config.h".
582         * alloca.c, cmpt.c, connect.c, convert.c, cookies.c,
583         ftp-basic.c, ftp-ls.c, ftp-opie.c, ftp.c, gen-md5.c, gnutls.c,
584         hash.c, host.c, html-parse.c, html-url.c, http-ntlm.c, http.c,
585         init.c, log.c, main.c, mswindows.c, netrc.c, openssl.c,
586         progress.c, ptimer.c, recur.c, res.c, retr.c, spider.c, url.c,
587         utils.c, xmalloc.c: Use wget.h at very top, and instead of
588         config.h.
589
590 2007-10-15  Micah Cowan  <micah@cowan.name>
591
592         * Makefile.am: Remove intermediary hg-id file generation, make
593         version.c-generation more portable.
594
595 2007-10-14  Micah Cowan  <micah@cowan.name>
596
597         * cmpt.c, cookies.c, ftp-basic.c, ftp-ls.c, ftp.c, hash.c,
598         host.c, html-parse.c, html-url.c, http-ntlm.c, http.c, init.c,
599         log.c, main.c, netrc.c, openssl.c, res.c, url.c, utils.c,
600         wget.h: Replace uses of ISSPACE, etc with c_isspace, etc.
601         * gnu-md5.c, gnu-md5.h: Removed, in deference to gnulib.
602         * Makefile.am: Removed gnu-md5.h from wget_SOURCES.
603         * gen-md5.c: Changed #inclusion of gnu-md5.h to md5.h (gnulib's).
604         * recur.c (download_child_p): Print error if unlink of
605         robots.txt fails.
606         * main.c (main): --spider or --delete-after now implies
607         --no-directories (thanks, Josh Williams).
608
609 2007-10-14  Joshua David Williams  <yurimxpxman@gmail.com>
610
611         * recur.c (download_child_p): Remove robots.txt if
612         --delete-after or --spider is on.
613
614 2007-10-13  Micah Cowan  <micah@cowan.name>
615
616         * Makefile.am: Make version.c depend on Wget dependencies (source
617         files, plus such things as LIBOBJS so we get things like
618         http-ntlm.c). Removed getopt.[ch], as we're now using gnulib for
619         these.
620
621 2007-10-10  Micah Cowan  <micah@cowan.name>
622
623         * http-ntlm.c: Include openssl/opensslv.h explicitly, instead of
624         hoping it'll be included by accident in openssl/des.h.
625
626 2007-10-09  Gisle Vanem  <gvanem@broadpark.no>
627
628         * mswindows.c: 'argc' and 'argv' in 'windows_main()' are no longer
629         needed.  Hence simply the prototype. Free 'exec_name' at exit.
630
631 2007-10-09  Micah Cowan  <micah@cowan.name>
632
633         * gettext.h: Imported from /usr/share/gettext, fuller handling
634         of --disable-nls.
635         * wget.h: Remove logic for handling lack of NLS (now in
636         gettext.h).
637         * main.c: Use gettext's ENABLE_NLS rather than HAVE_NLS.
638         * Makefile.am: added @LIBINTL@ to LIBS (though it probably
639         belongs in LDADD, along with everything else currently assigned
640         to LIBS).
641
642 2007-10-08  Micah Cowan  <micah@cowan.name>
643
644         * http.c (http_loop): Add send_head_first conditional back
645         around code that needs it, but not around the last-modified
646         header-parsing stuff this time. Removed no-longer-useful (was it
647         ever?) restart_loop boolean, continuing unconditionally at end
648         of send_head_first conditional block (if we haven't jumped out).
649
650 2007-10-04  Micah Cowan  <micah@cowan.name>
651
652         * http.c (http_loop): We've got_name if content_disposition
653         support isn't on; make sure we continue properly in that case,
654         even though we're not sending HEAD.
655         * Makefile.in: Removed, replaced by Makefile.am.
656         * Makefile.am: Converted from Makefile.in.
657
658 2007-10-02  Gisle Vanem  <gvanem@broadpark.no>
659         
660         * ftp.c: Use "_listing" for MSDOS (".listing" is illegal).
661
662         * url.c: Update comment for 'filechr_not_windows'.
663
664         * utils.c: Include <process.h> for 'getpid()' on Watcom.
665
666 2007-10-02  Micah Cowan  <micah@cowan.name>
667
668         * ftp.c (getftp, ftp_loop_internal), http.c (http_loop), main
669         (main): Use datetime_str instead of time_str, for those who have
670         potentially long-running sessions. Based on suggestions by Saso
671         Tomat <miskox@hotmail.com> and Steven M. Schweda
672         <sms@antinode.org>.
673         * http.c (gethttp): Warn about host lookup failures. Adjusted
674         from Stephen Gildea's patch.
675
676 2007-10-02  Stephen Gildea  <stepheng+wget@gildea.com>
677
678         * connect.c (connect_to_host): Warn about host lookup failures.
679
680 2007-09-25  Micah Cowan  <micah@cowan.name>
681
682         * Makefile.in: Use EXEEXT instead of exeext.
683
684 2007-09-24  Gisle Vanem  <giva@bgnett.no>
685
686         * connect.c, init.c, main.c, openssl.c, options.h, sysdep.h,
687         url.c, utils.c: Added support for building on MS-DOS.
688
689 2007-09-24  Jochen Roderburg  <roderburg@uni-koeln.de>
690
691         * http.c (http_zero): Remove no-longer-used local_size variable.
692         Fixes bug #21057.
693
694 2007-09-12  Micah Cowan  <micah@cowan.name>
695
696         * http.c (http_loop): Remove send_head_first from condition for
697         parsing timestamp.
698
699 2007-08-29  Micah Cowan  <micah@cowan.name>
700
701         * openssl.c (ssl_init): Re un-const-ified the meth local
702         variable, to match current versions of openssl.
703         * spider.c: Removed visited_url function, as it may be very
704         inefficient.
705         (print_broken_links): Removed traversal of referrers, until such
706         time as a more efficient implementation can be written.
707         * spider.h: Replaced declaration of visited_url with an
708         empty-bodied, function-like macro.
709
710 2007-08-27  Gisle Vanem  <giva@bgnett.no>
711
712         * mswindows.c (run_with_timeout): Ensure that the correct
713         conversion specification is used for the return result of
714         the GetLastError function.
715         * getopt.c: Fix missing (but, accidentally, legal) comment
716         delimiter after licensing text.
717         * recur.c (retrieve_tree): Inserted missing cast for strip_auth.
718         Includes adjustment by Ralf Wildenhues.
719         * openssl.c (ssl_init): const-ified the meth local variable.
720         * main.c: Include all the static function definitions in the
721         "#ifndef TESTING" clause, leaving just the definitions for
722         exec_name (not set), and opt.
723         * utils.c (run_with_timeout): Now returns bool, to align with
724         declaration in utils.h.
725
726 2007-08-27  Micah Cowan  <micah@cowan.name>
727
728         * wget.h: Added macro replacement for ngettext, for environs
729         that lack NLS.
730
731 2007-08-26  Micah Cowan  <micah@cowan.name>
732
733         * spider.c (print_broken_links): Fixed incorrect plurals msgid
734         usage, switched to use ngettext function.
735
736 2007-08-24  Micah Cowan  <micah@cowan.name>
737
738         * http.c (http_loop): Introduced time_came_from_head boolean
739         flag, to help avoid parsing the same Last-Modified header twice.
740         Replaced spidering returns of RETRUNNEEDED for some situations,
741         to RETROK, as otherwise it will be interpreted as an error.
742         RETRUNNEEDED appears never to be referenced outside of
743         http.c (and wget.h), and, when returned by gethttp, is
744         translated by http_loop to RETROK.
745         * url.c (are_urls_equal): Don't call getchar_from_escaped_string
746         if u2 is shorter than u1.
747         (getchar_from_escaped_string): Don't decode reserved characters.
748         Handle illegally appearing '%'s as literal '%'s. Ensure hex
749         digits before attempting to decode.
750         (test_are_urls_equal): Added tests to handle u2 shorter than u1,
751         and %2f not treated the same as /.
752         * spider.c (in_url_list_p): Don't call are_urls_equal if one of
753         them is NULL.
754
755 2007-08-23  Joshua David Williams  <yurimxpxman@gmail.com>
756
757         * spider.c (in_url_list_p): Removed the bool verbose argument
758
759 2007-08-22  Mauro Tortonesi  <mauro@ferrara.linux.it>
760
761         * http.c (http_loop): Fall back to GET if HEAD fails with a 500 or 501
762         error code.
763
764 2007-08-21  Mauro Tortonesi  <mauro@ferrara.linux.it>
765         
766         * http.c (http_loop): Send preliminary HEAD request if -N is given and
767         the destination file exists already.
768
769 2007-08-10  Mauro Tortonesi  <mauro@ferrara.linux.it>
770
771         * http.c (http_loop): Fixed HTTP HEAD requests logic when --spider is
772         given.
773
774 2007-08-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
775
776         * url.c (append_uri_pathel): Do not assume dest string to be
777         zero-terminated.
778         (test_append_uri_pathel): Terminate string to fix test failure.
779
780 2007-08-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
781
782         * url.c (url_string): Use comparison, not assignment, in
783         check for auth_mode == URL_AUTH_HIDE_PASSWD.
784
785 2007-08-09  Micah Cowan  <micah@cowan.name>
786
787         * http.c (http_loop): If we got a HEAD and then a GET, and the
788         GET had a timestamp, use that one, not any we may have gotten
789         from the HEAD.
790
791 2007-08-08  Micah Cowan  <micah@cowan.name>
792
793         * init.c (defaults): Content disposition will not be default,
794         since it currently results in extra round-trips.
795
796 2007-07-31  Micah Cowan  <micah@cowan.name>
797
798         * http.c (gethttp): Set contlen = -1 when we encounter a
799         negative-valued Content-Length header, so we don't consider it
800         an internal error later on and call abort().
801
802 2007-07-29  Micah Cowan  <micah@cowan.name>
803
804         * url.h, url.c (url_string): Replaced bool arg of the url_string
805         function with enum url_auth_mode, with added option to
806         completely remove user/pass auth information.
807         * http.c, ftp.c, url.c, recur.c: Adapted call to url_string
808         function to fit new usage.
809         * recur.c (retrieve_tree): Remove auth info from Referer header.
810
811 2007-07-28  Micah Cowan  <micah@cowan.name>
812
813         * options.h, init.c, retr.c, main.c: renamed opt maxredirect
814         field to max_redirect, for improved consistency.
815         * init.c: changed max_redirect parser from cmd_number_inf to
816         cmd_number, as infinite redirects may not be appropriate.
817         Alternatively, if cmd_number_inf should be used, then
818         opt.max_redirect's value should be checked a bit differently in
819         retr.c, to allow for the "infinite" meaning of zero.
820
821 2007-07-25  Micah Cowan  <micah@cowan.name>
822
823         * http.c (create_authorization_line)
824         (basic_authentication_encode, known_authentication_scheme_p)
825         (load_cookies): Moved declarations up.
826         (basic_authed_hosts): Added. Tracks what hosts have issued Basic
827         challenge and been given the global username, password.
828         (maybe_send_basic_creds): Added. Sends Basic creds for hosts that
829         have issued Basic challenges.
830         (register_basic_auth_host): Added. Instantiates
831         basic_authed_hosts if necessary, then registers the host that
832         has issued a challenge.
833         (gethttp) <auth>: Only send authentication credentials after
834         we've received a challenge from that host. This is a stop-gap
835         fix until a proper fix can be implemented; still isn't quite
836         right, as we should only be sending credentials automatically
837         for authenticated paths and below, and not for the entire host.
838
839 2007-07-16  Joshua David Williams  <yurimxpxman@gmail.com>
840
841         * options.h: added maxredirect to options struct
842         * init.c: added maxredirect to list of variables
843         * retr.c (retrieve_url): replaced MAX_REDIRECTIONS with opt.maxredirect
844         * main.c: added option --max-redirect
845
846 2007-07-16  Joshua David Williams  <yurimxpxman@gmail.com>
847
848         * test.h: tests made more verbose; now displays the name
849         of each test run.
850
851 2007-07-10  Mauro Tortonesi  <mauro@ferrara.linux.it>
852
853         * http.c (http_loop): Fixed the HTTP requests logic. Now it skips the 
854         preliminary HEAD request if either -O or --no-content-disposition are 
855         given, and neither --spider and -N are given.
856
857 2007-07-05  Micah Cowan  <micah@cowan.name>
858
859         * cmpt.c, connect.c, connect.h, convert.c, convert.h:
860         * cookies.c, cookies.h, ftp-basic.c, ftp.c, ftp.h, ftp-ls.c:
861         * ftp-opie.c, gen-md5.c, gen-md5.h, getopt.c, getopt.h, gnu-md5.c:
862         * gnu-md5.h, gnutls.c, hash.c, hash.h, host.c, host.h:
863         * html-parse.c, html-parse.h, html-url.c, http.c, http.h:
864         * http-ntlm.c, http-ntlm.h, init.c, init.h, log.c, log.h, main.c:
865         * Makefile.in, mswindows.c, mswindows.h, netrc.c, netrc.h:
866         * openssl.c, options.h, progress.c, progress.h, ptimer.c:
867         * ptimer.h, recur.c, recur.h, res.c, res.h, retr.c, retr.h:
868         * safe-ctype.c, safe-ctype.h, spider.c, spider.h, ssl.h, sysdep.h:
869         * test.c, test.h, url.c, url.h, utils.c, utils.h, wget.h:
870         * xmalloc.c, xmalloc.h:
871         Updated GPL reference to version 3 or later, removed FSF
872         address.
873
874 2007-07-04  Mauro Tortonesi  <mauro@ferrara.linux.it>
875
876         * http.c (http_loop): Skip HEAD request and start immediately with GET
877         if -O is given.
878
879 2007-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
880
881         * http.c (print_server_response): Escape non-printable characters
882         in server respone.
883
884 2007-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
885
886         * netrc.c: Don't make netrc_list static, as it prevents
887         compilation with DEBUG_MALLOC.
888
889         * utils.c (aprintf): Don't use vasprintf when DEBUG_MALLOC is
890         requested because, in that case, we want the calls to malloc to be
891         coming from us.
892
893 2007-01-23  Hrvoje Niksic  <hniksic@xemacs.org>
894
895         * cookies.c (parse_set_cookie): Would erroneously discard cookies
896         with unparsable expiry time.
897
898 2007-01-23  Hrvoje Niksic  <hniksic@xemacs.org>
899
900         * progress.c (create_image): Check for ETA overflow.
901         (print_row_stats): Ditto.
902
903 2007-01-09  Mauro Tortonesi  <mauro@ferrara.linux.it>
904
905         * init.c (cmd_spec_prefer_family): Small fix to get rid of a gcc
906         warning about strict-aliasing violation.
907
908 2007-01-09  Steven M. Schweda  <sms@antinode.org>
909
910         * ftp-basic.c (ftp_syst): Fixed segfault if response text is missing.
911
912 2006-12-29  Gisle Vanem  <giva@bgnett.no>
913
914         * mswindows.c: Avoid a warning if 'ws_hangup()' is unused.
915
916 2006-12-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
917
918         * http.c (parse_content_disposition): Consider directory prefix, if
919         specified.
920
921 2006-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
922
923         * retr.c (retrieve_from_file): Ditto.
924         (url_uses_proxy): New function.
925
926         * main.c (main): Don't check for opt.use_proxy when deciding
927         whether to call retrieve_url or retrieve_tree; check whether the
928         proxy would be used for *this* URL.
929
930 2006-10-17  Mike Grant  <mggr@pml.ac.uk>
931
932         * ftp.c (ftp_loop_internal): Would incorrectly skip changing
933         working directory when retrying after a failed FTP attempt.
934         Originally reported by Nate Eldredge.
935
936 2006-10-12  Mauro Tortonesi  <mauro@ferrara.linux.it>
937
938         * convert.c (downloaded_file): Fixed bug which used to break -E -k -K 
939         mode.
940
941 2006-08-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
942
943         * http.c: #include'd spider.h to get rid of compiler warnings.
944
945         * main.c: Ditto.
946
947         * recur.c: Ditto.
948
949 2006-08-24  Mauro Tortonesi  <mauro@ferrara.linux.it>
950
951         * Makefile.in: Added spider.c to the list of files to compile and
952         spider.h to the list of header files. Updated copyright information.
953
954         * http.c: Major changes to recursive spider mode. Now for every
955         resource we are supposed to check, we send a HEAD request to find out
956         if it exists. If the resource is a HTML file, we retrieve it and parse
957         it to discover links to other resources.
958
959         * recur.c: Ditto.
960
961         * res.c (res_retrieve_file): Disable opt.timestamping and opt.spider
962         when retrieving robots.txt. Updated copyright information.
963
964         * convert.c: Moved code tracking broken links to spider.c.
965
966         * convert.h: Ditto.
967
968         * spider.c: Created new file to keep track of visited URLs in spider
969         mode.
970
971         * spider.h: Ditto.
972
973 2006-08-21  Mauro Tortonesi  <mauro@ferrara.linux.it>
974
975         * http.c: Fixed timestamping-related bug.
976
977 2006-08-16  Mauro Tortonesi  <mauro@ferrara.linux.it>
978
979         * http.c: Fixed bug which broke --continue feature. Now if -c is
980         given, http_loop sends a HEAD request to find out the destination
981         filename before resuming download.
982
983 2006-08-08  Hrvoje Niksic  <hniksic@xemacs.org>
984
985         * utils.c (datetime_str): Avoid code repetition with time_str.
986
987 2006-07-21  Hrvoje Niksic  <hniksic@xemacs.org>
988
989         * init.c (commands): Correctly place "contentdisposition".
990
991 2006-07-14  Mauro Tortonesi  <mauro@ferrara.linux.it>
992         
993         * sysdep.h: If intptr_t isn't defined, simply typedef it to long.
994
995         * http.c: Added explicit cast to int in logprintf call to remove
996         compiler warnings on 64-bit platforms.
997
998         * connect.c: Added a few casts to intptr_t to remove compiler warnings
999         on 64-bit platforms.
1000         
1001         * main.c: Disable -r, -p and -N when -O is used. Disable -k when -O is
1002         used and multiple URLs are given. Update maintainer information.
1003         
1004         * all: Update copyright information.
1005         
1006 2006-07-10  KJKHyperion  <hackbunny@reactos.com>
1007
1008         * url.c (filechr_table): Mark DEL (0x7f) as a control character
1009         and | as a character Windows can't handle.
1010
1011 2006-06-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
1012
1013         * res.c: Implemented is_robots_txt_url function for detection of
1014         robots.txt URLs and related test routine.
1015
1016         * res.h: Ditto.
1017
1018         * url.c: Implemented are_urls_equal function for URL comparison and
1019         related testing routine.
1020
1021         * url.h: Ditto.
1022
1023         * convert.c: Fixes for recursive spider mode: don't consider
1024         non-existing robots.txt as a broken link, and use are_urls_equal
1025         instead of strcasecmp for referrer URLs comparison.
1026
1027         * test.c: Call tests routines for are_urls_equal and 
1028         is_robots_txt_url.
1029
1030 2006-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
1031
1032         * wget.h (wgint): Typedef to any 64-bit (or larger) type we can
1033         find, not necessarily off_t or long.
1034
1035 2006-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
1036
1037         * cmpt.c (strtoll): Check for overflow and underflow without
1038         relying on (technically) undefined behavior.  Don't assume that
1039         strtoll_type is 64 bits wide.
1040
1041 2006-06-21  Hrvoje Niksic  <hniksic@xemacs.org>
1042
1043         * utils.c (base64_encode): Cast void pointer to char * before
1044         doing arithmetic.
1045
1046 2006-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
1047
1048         * utils.c (base64_encode): Made TBL const.
1049         (base64_decode): Made the base64_char_to_value table const.
1050
1051 2006-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
1052
1053         * utils.c (base64_encode): Made the DATA pointer void * so the
1054         callers can pass it any kind of pointer (including both signed and
1055         unsigned char pointers).
1056         (base64_decode): Ditto for DEST.
1057
1058 2006-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
1059
1060         * utils.c (base64_encode): Would read past end of STR.
1061         Reported by rick@eckle.org.
1062
1063 2006-06-13  Mauro Tortonesi  <mauro@ferrara.linux.it>
1064
1065         * options.h (struct options): Introduced member restrict_files_case to
1066         keep track of preferences on character case restrictions for
1067         filenames.
1068
1069         * init.c: Modified defaults and cmd_spec_restrict_file_names to
1070         support character case restrictions for filenames. Added
1071         test_cmd_spec_restrict_file_names unit test.
1072
1073         * url.c: Modified append_uri_pathel to support character case
1074         restrictions for filenames. Added test_append_uri_pathel unit test.
1075
1076         * test.c: Added test_cmd_spec_restrict_file_names and
1077         test_append_uri_pathel to the list of unit tests to run.
1078
1079 2006-06-12  Mauro Tortonesi  <mauro@ferrara.linux.it>
1080
1081         * retr.c (retrieve_from_file): Use retrieve_tree and automatically
1082         turn on opt.follow_ftp in case of recursive FTP retrieval through HTTP
1083         proxy.
1084
1085         * main.c: Automatically turn on opt.follow_ftp in case of recursive
1086         FTP retrieval through HTTP proxy.
1087
1088 2006-06-12  Tony Lewis  <tlewis@exelana.com>
1089
1090         * main.c: Improved CHEN Peng's patch by proposing a simpler logic.
1091
1092 2006-06-12  CHEN Peng  <chenpeng@alumni.nus.edu.sg>
1093
1094         * main.c: Use retrieve_tree in case of recursive FTP retrieval through
1095         HTTP proxy.
1096
1097 2006-05-25  Mauro Tortonesi  <mauro@ferrara.linux.it>
1098
1099         * convert.c: Added mechanisms to keep track broken links.
1100
1101         * convert.h: Ditto.
1102
1103         * wget.h: Reordered and enumerated uerr_t constants.
1104
1105         * recur.c: Fixes to support recursive spider mode.
1106
1107         * http.c: Ditto.
1108
1109         * main.c: Print broken links in case of recursive spider mode.
1110
1111         * retr.c: Changed interface of retrieve_url.
1112
1113         * retr.h: Ditto.
1114
1115         * ftp.c: Changed interface of ftp_loop.
1116
1117         * ftp.h: Ditto.
1118
1119         * res.c: Minor change to reflect changes in interface of retrieve_url.
1120
1121 2006-05-18  Lawrence Jones  <lawrence.jones@ugs.com>
1122
1123         * ftp-ls.c (ftp_parse_unix_ls): Correct size parsing, add size
1124         and filename debugging output.
1125
1126 2006-04-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
1127
1128         * http.c: If Content-Disposition header is present, allow unique
1129         filename generation unless -nc is given. Permit to disable parsing of
1130         Content-Disposition header.
1131
1132         * options.h: Added option --no-content-disposition to disable parsing
1133         of HTTP Content-Disposition header.
1134
1135         * init.c: Ditto.
1136         
1137         * main.c: Ditto.
1138
1139 2006-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
1140
1141         * hash.c (TOLOWER): Wrap macro arg in parentheses.
1142
1143 2006-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
1144
1145         * http.c (parse_content_disposition): Doc fix.
1146
1147 2006-03-15  Mauro Tortonesi  <mauro@ferrara.linux.it>
1148
1149         * utils.c: Restricted operational semantics of frontcmp and proclist
1150         from generic strings to directory names and them to subdir_p and
1151         dir_matches_p respectively.  Applied George Ogata's one line patch to
1152         restrict algorithm of subdir_p to full directory name matching.  Added
1153         testcases for subdir_p and dir_matches_p.
1154
1155         * utils.h: Changed all frontcmp occurrences to subdir_p.
1156         
1157         * recur.c: Ditto.
1158         
1159         * test.c: Changed type returned by test functions from char * to const
1160         char *.  Added test_subdir_p and test_dir_matches_p to the list of
1161         tests to run.
1162
1163         * http.c (test_parse_content_disposition): Changed return type from
1164         char * to const char *. 
1165
1166 2006-03-14  Mauro Tortonesi  <mauro@ferrara.linux.it>
1167
1168         * recur.c (struct queue_element): Changed type of html_allowed member
1169         to bool.
1170         
1171 2006-03-09  Mauro Tortonesi  <mauro@ferrara.linux.it>
1172
1173         * ftp.c (ftp_list): Try `LIST -a' command first and revert to `LIST'
1174         in case of failure.
1175
1176 2006-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
1177
1178         * hash.c (TOLOWER): Fix definition when STANDALONE.
1179         Reported by Beni Serfaty.
1180
1181 2006-03-02  Mauro Tortonesi  <mauro@ferrara.linux.it>
1182
1183         * http.c (http_loop): Fixed recursive HTTP retrieval.
1184
1185 2006-02-28  Hrvoje Niksic  <hniksic@xemacs.org>
1186
1187         * http.c (extract_param): Declare extern so it can be used from
1188         other files.
1189         (extract_param): Return error for empty name.
1190
1191 2006-02-28  Hrvoje Niksic  <hniksic@xemacs.org>
1192
1193         * url.c (find_last_char): Define in terms of memrchr.
1194
1195         * cmpt.c (memrchr): Define it on systems that don't have it.
1196
1197         * http.c (extract_param): New function for parsing header values
1198         with parameters.
1199         (parse_content_disposition): Use it.  Don't allow slashes and
1200         backslashes in the file name.
1201
1202 2006-02-27  Hrvoje Niksic  <hniksic@xemacs.org>
1203
1204         * url.c (path_simplify): Don't preserve ".." at beginning of path.
1205         Suggested by Frank McCown.
1206
1207 2006-02-25  Hrvoje Niksic  <hniksic@xemacs.org>
1208
1209         * http.c (gethttp): Only use FILE.N.html if FILE.html exists.
1210
1211 2006-02-09  Hrvoje Niksic  <hniksic@xemacs.org>
1212
1213         * mswindows.c (run_with_timeout): Made thread_hnd non-static.
1214
1215 2006-02-05  Hrvoje Niksic  <hniksic@xemacs.org>
1216
1217         * retr.c (sleep_between_retrievals): Sleep at a minimum of 1/2 of
1218         the specified wait period.
1219
1220 2006-02-03  Hrvoje Niksic  <hniksic@xemacs.org>
1221
1222         * utils.c (number_to_string): Don't use sprintf for printing
1223         WGINT_MIN; simply divide n by 10 and defer printing the last
1224         digit.
1225         (number_to_string): Removed the SPRINTF_WGINT macro.
1226
1227 2006-02-03  Mauro Tortonesi  <mauro@ferrara.linux.it>
1228
1229         * http.c: Fixed support for Content-Disposition header.
1230
1231         * test.c: Added test_parse_content_disposition to the list of unit
1232         tests to run.
1233
1234 2006-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
1235
1236         * hash.c: Don't define countof if it's already defined.
1237
1238         * hash.c: Obtain the definition of uintptr_t when standalone.
1239
1240 2006-01-30  Mauro Tortonesi  <mauro@ferrara.linux.it>
1241
1242         * http.c: Changed output format. Removed excessively verbose debugging
1243         output.
1244
1245 2005-12-07  Mauro Tortonesi  <mauro@ferrara.linux.it>
1246
1247         * http.c: Fixed pre-download verbose output which was broken by 
1248         HTTP code refactoring.
1249
1250 2005-11-23  Mauro Tortonesi  <mauro@ferrara.linux.it>
1251
1252         * http.c: Refactored HTTP code.  If -O is not used, the new code
1253         delays the choice of the file name where the downloaded resource
1254         will be saved until the HTTP headers have been retrieved.
1255         Added support for Content-Disposition header. 
1256
1257 2005-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
1258
1259         * hash.c (INVALID_PTR): Use uintptr_t instead of unsigned long.
1260         (hash_pointer): Don't assume a pointer fits in `unsigned long'.
1261
1262 2005-11-02  Mauro Tortonesi  <mauro@ferrara.linux.it>
1263
1264         * Makefile.in: Removed support for unit testing (now it is in
1265         tests/Makefile.in).
1266
1267 2005-10-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
1268
1269         * Makefile.in: Added basic support for unit testing.
1270
1271         * test.c: Ditto.
1272         
1273         * test.h: Ditto.
1274         
1275 2005-10-13  Daniel Stenberg  <daniel@haxx.se>
1276
1277         * http-ntlm.c (ntlm_output): Fixed buffer overflow vulnerability.
1278
1279 2005-10-09  Russ Allbery  <rra@stanford.edu>
1280
1281         * snprintf.c: Remove round to round_int and pow10 to pow10_int, to
1282         avoid warnings from GCC 4.0.
1283
1284 2005-10-05  Mauro Tortonesi  <mauro@ferrara.linux.it>
1285
1286         * retr.c: Changed semantics of no_proxy_match.
1287
1288 2005-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
1289
1290         * main.c (main): Don't print the summary if nothing has been downloaded.
1291
1292 2005-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
1293
1294         * retr.c (retr_rate): Rename parameter from MSECS to SECS since it
1295         no longer holds milliseconds.
1296
1297 2005-09-01  Hrvoje Niksic  <hniksic@xemacs.org>
1298
1299         * progress.c: Introduce symbolic constants for "magic" values of
1300         0.2 and 0.9, REFRESH_INTERVAL and ETA_REFRESH_INTERVAL.
1301
1302 2005-08-27  Hrvoje Niksic  <hniksic@xemacs.org>
1303
1304         * cmpt.c (strtoll): Correctly handle strtoll("0x", ptr, 0) and
1305         strtoll("0x<nonhexchar>", ptr, 0) -- in both cases *ptr must be
1306         set to the position of 'x', not after it.
1307
1308 2005-08-27  Hrvoje Niksic  <hniksic@xemacs.org>
1309
1310         * hash.c (hash_table_map): Rename to hash_table_for_each and
1311         update callers.
1312         Document the meaning of the callback's return value.
1313         (hash_table_iterate): New function.
1314         (hash_table_iter_next): Likewise.
1315         Update most places that used hash_table_for_each to use the
1316         iteration, which doesn't require a temporary function with
1317         explicit state management.
1318
1319 2005-08-26  Albert Chin  <wget@mlists.thewrittenword.com>
1320
1321         * Makefile.in: Use @datadir@.  Define localedir as $(datadir)/locale.
1322
1323 2005-08-26  Jeremy Shapiro  <jnshapiro@gmail.com>
1324
1325         * openssl.c (ssl_init): Set SSL_MODE_AUTO_RETRY.
1326
1327 2005-08-23  Hrvoje Niksic  <hniksic@xemacs.org>
1328
1329         * host.c (address_list_from_ipv4_addresses): Use IP_INADDR_DATA.
1330
1331 2005-08-12  Hrvoje Niksic  <hniksic@xemacs.org>
1332
1333         * wget.h: Renamed strtoll_return to strtoll_type.
1334
1335 2005-08-11  Hrvoje Niksic  <hniksic@xemacs.org>
1336
1337         * progress.c (eta_to_human_short): Switch to days when printing
1338         more than 48h rather than 100h.  (It's not immediately apparent
1339         how many days there are in 83h.)
1340
1341 2005-08-11  Hrvoje Niksic  <hniksic@xemacs.org>
1342
1343         * cmpt.c (strtoll): Define it if missing on the system and if Wget
1344         needs it.
1345
1346         * mswindows.c (str_to_int64): Move to cmpt.c and rename to strtoll.
1347
1348 2005-08-10  Hrvoje Niksic  <hniksic@xemacs.org>
1349
1350         * host.c (print_address): Always use inet_ntop when IPv6 is
1351         enabled.
1352
1353         * host.h (ip_address): Simplify the data union.
1354
1355 2005-08-09  Hrvoje Niksic  <hniksic@xemacs.org>
1356
1357         * mswindows.c (inet_ntop): Also handle IPv4 addresses for
1358         completeness.
1359
1360 2005-08-09  Hrvoje Niksic  <hniksic@xemacs.org>
1361
1362         * http.c (gethttp): Don't read more than the amount of data
1363         specified by the content-length header.
1364
1365 2005-08-09  Vasil Dimov  <vd@datamax.bg>
1366
1367         * ftp.c (getftp): Don't free RESPLINE if ftp_response returns a
1368         status other than FTPOK.
1369
1370 2005-08-04  Giuseppe Bonacci  <g.bonacci@libero.it>
1371
1372         * ftp-ls.c (ftp_parse_unix_ls): Remember the position of the
1373         previous token instead of backtracking back to it.
1374
1375 2005-07-08  Gisle Vanem  <giva@bgnett.no>
1376
1377         * mswindows.h: Include process.h to get getpid() declaration.
1378
1379 2005-07-08  Hrvoje Niksic  <hniksic@xemacs.org>
1380
1381         * utils.c (aprintf): Use vasprintf where available.
1382
1383 2005-07-08  Hrvoje Niksic  <hniksic@xemacs.org>
1384
1385         * url.c (rewrite_shorthand_url): Simplify code using aprintf and
1386         strspn.
1387
1388 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
1389
1390         * gnutls.c (ssl_check_certificate): Check for the validity of the
1391         presented X509 certificate.
1392
1393 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
1394
1395         * openssl.c (ssl_check_certificate): Print custom error messages
1396         for frequent X509 certificate problems.
1397
1398 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
1399
1400         * mswindows.h: Define an alias for stat and fstat, as requested by
1401         config-compiler.h.
1402         (gai_strerror): Define to windows_strerror if NEED_GAI_STRERROR is
1403         defined.
1404
1405 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
1406
1407         * mswindows.h: Use strtoll where available.
1408
1409 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
1410
1411         * sysdep.h: Add a full declaration of fnmatch.h.
1412
1413 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
1414
1415         * utils.c: Unconditionally include <setjmp.h>.
1416
1417 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
1418
1419         * utils.c (fnmatch_nocase): New function.
1420         (proclist): Use it instead of fnmatch when opt.ignore_case is
1421         requested.
1422         (in_acclist): Respect opt.ignore_case.
1423         (frontcmp): Respect opt.ignore_case.
1424
1425         * options.h (struct options): New flag opt.ignore_case.
1426
1427 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
1428
1429         * ptimer.c: Measure time in seconds rather than milliseconds.
1430         Adjusted all callers.
1431
1432 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
1433
1434         * http.c (gethttp): When freeing MESSAGE, take into account that
1435         it can be NULL.
1436
1437 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
1438
1439         * cmpt.c (timegm): Handle years after 2099.
1440
1441 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
1442
1443         * cmpt.c (timegm): Remove unused variable.
1444
1445 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
1446
1447         * cmpt.c (timegm): Don't call mktime; simply count the seconds
1448         between 1970-01-01 and the specified date.
1449
1450 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
1451
1452         * wget.h (or): Define HAVE_SSL when either HAVE_OPENSSL or
1453         HAVE_GNUTLS are defined.
1454
1455         * gnutls.c: New file.
1456
1457 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
1458
1459         * http.c (gethttp): Don't print the request write error message
1460         twice.
1461
1462 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
1463
1464         * openssl.c (openssl_errstr): Instead of always using a large
1465         static buffer, only allocate the error string when there is an
1466         actual error.
1467
1468 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
1469
1470         * xmalloc.c (debugging_free): Prefix hex pointer value with "0x"
1471         when printing.
1472
1473 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
1474
1475         * utils.c (NEXT_BASE64_CHAR): Rename to NEXT_CHAR and simplify to
1476         get the next non-whitespace character.
1477
1478 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
1479
1480         * utils.c (base64_decode): Don't silently tolerate non-base64
1481         non-white-space characters in the base64 stream.
1482
1483 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
1484
1485         * connect.c (LAZY_RETRIEVE_INFO): Make last_tick unsigned to match
1486         transport_map_modified_tick.
1487
1488 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
1489
1490         * config-post.h (alloca): Updated declaration to not enumerate all
1491         Windows compilers.
1492
1493 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
1494
1495         * openssl.c (openssl_errstr): Separate error messages with "; ".
1496
1497 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
1498
1499         * ftp.c (getftp): Ditto.
1500
1501         * http.c (gethttp): Use fd_errstr.
1502
1503         * connect.c (fd_register_transport): Restructure parameters to
1504         include only a single structure that describes transport
1505         implementation.
1506
1507         * openssl.c (openssl_errstr): New function: dump SSL error strings
1508         into a static buffer and return a pointer to the buffer.
1509
1510         * connect.c (fd_errstr): New function; returns transport-specific
1511         error message, or strerror(errno) if transport doesn't supply one.
1512
1513 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
1514
1515         * mswindows.h: Also wrap accept() and listen().
1516
1517 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
1518
1519         * url.c (path_end): Skip separators appropriate for the scheme.
1520         (strpbrk_or_eos): Remove gcc-specific version, as the optimization
1521         it tried to perform no longer applies.
1522
1523 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
1524
1525         * host.c: Don't include "connect.h" now that we no longer have
1526         socket_has_inet6.
1527
1528 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
1529
1530         * host.c: Remove extraneous definition of netdb.h.
1531
1532 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
1533
1534         * http.c (gethttp): Skip error message body in the keep-alive
1535         case.
1536
1537 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
1538
1539         * url.c (url_parse): Would crash when parsing fragments.  Support
1540         fragments for FTP URLs too.
1541
1542 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
1543
1544         * version.c: Don't use "cvs" in version name, since we're not
1545         using CVS anymore.
1546
1547 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
1548
1549         * progress.c (create_image): Ditto.
1550
1551         * retr.c (retr_rate): Display smaller rate numbers with greater
1552         precision.
1553
1554 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
1555
1556         * http.c (response_head_terminator): Minor optimization.
1557
1558         * retr.c (fd_read_hunk): Call terminator with pointer to the start
1559         of the data and the pointer to the current data.  Changed all
1560         callers.
1561
1562 2005-07-01  Hrvoje Niksic  <hniksic@xemacs.org>
1563
1564         * url.c (url_parse): Make sure u->params is not initialized for
1565         http/https URLs.
1566         (url_parse): Don't crash on garbage following []-delimited IPv6
1567         addresses.
1568
1569 2005-07-01  Hrvoje Niksic  <hniksic@xemacs.org>
1570
1571         * main.c (print_help): Don't refer to the non-existent -nr in
1572         description of --mirror.
1573
1574 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
1575
1576         * host.c (pretty_print_address): Renamed to just print_address.
1577         Clarify documentation.
1578
1579 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
1580
1581         * http.c (gethttp): Explicitly document the different cases when
1582         generating the Host header.
1583
1584 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
1585
1586         * host.c (pretty_print_address): Handle error result from
1587         inet_ntop.
1588
1589 2005-06-30  Gisle Vanem  <giva@bgnett.no>
1590
1591         * mswindows.c (inet_ntop): New function.  Print IPv6 addresses
1592         using WSAAddressToString.
1593
1594 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
1595
1596         * progress.c (dot_update): Remove unused variable row_qty.
1597
1598 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
1599
1600         * main.c: Check for both SIGHUP and SIGUSR1 before using them.
1601
1602 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
1603
1604         * utils.c: Unconditionally include locale.h.
1605
1606 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
1607
1608         * ptimer.c: Include sys/time.h to get struct timeval.
1609
1610 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
1611
1612         * wget.h: Remove obsolete definition of with_thousand_seps_sum.
1613
1614 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
1615
1616         * gnu-md5.h: Unconditionally include limits.h.
1617
1618 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
1619
1620         * utils.c (random_number): Use lrand48 if available.
1621         (random_float): Use drand48 if available.
1622
1623 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
1624
1625         * main.c (secs_to_human_time): Use print_decimal when printing
1626         total download time in seconds.
1627
1628         * progress.c (print_row_stats): Use it to print total download
1629         time at the end of the download.
1630         (create_image): Ditto.
1631
1632         * utils.c (print_decimal): New function; print small decimal
1633         numbers with more precision than large ones.
1634
1635         * progress.c (print_row_stats): New function.  Print ETA after the
1636         download rate at the end of each row.
1637
1638 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
1639
1640         * init.c (parse_line): Check for alphanumerics.
1641
1642 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
1643
1644         * (dot_create): Remove unnecessary casts.
1645
1646 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
1647
1648         * ftp.c (getftp): Delete trailing newlines from LIST output so
1649         lines don't come out with trailing \015\012 with -S.
1650
1651 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
1652
1653         * mswindows.h: Remove superfluous includes.
1654
1655 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
1656
1657         * config-post.h (alloca): Amend alloca declaration to take care of
1658         all Win32 compilers, not just MSVC and MinGW.
1659
1660 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
1661
1662         * utils.c (get_grouping_data): Force separator to "." rather than
1663         " " when "," is taken.
1664
1665 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
1666
1667         * wget.h (PTR_FORMAT): Cast the result of sizeof to int before
1668         passing it to printf's %*.
1669
1670         * retr.h: Declare output_stream and output_stream_regular.
1671
1672         * ftp.h: Declare ftp_last_respline.
1673
1674         * convert.h: Declare dl_url_file_map.
1675
1676         * http.h: New file.
1677
1678 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
1679
1680         * cookies.c: Make cookies_now static.
1681
1682 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
1683
1684         * utils.c (human_readable): Remove intermediary cast to long; MSVC
1685         has problems casting *unsigned* __int64 to double.
1686
1687 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
1688
1689         * sysdep.h: Use the system-provided fnmatch by default.
1690
1691 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
1692
1693         * http.c (mktime_from_utc): Renamed to timegm and moved to cmpt.c.
1694         Don't compile it if GNU timegm is available.
1695         (http_atotm): Use timegm.
1696
1697 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
1698
1699         * http.c (http_atotm): Correctly query the old locale value.
1700
1701 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
1702
1703         * config-post.h (alloca): Don't #define alloca under MinGW32,
1704         which defines it in malloc.h, included from mswindows.h.
1705
1706 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
1707
1708         * utils.c (get_grouping_data): Force the use of separators in C
1709         locale.
1710
1711 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
1712
1713         * main.c (i18n_initialize): Set all locale categories.
1714
1715         * http.c (http_atotm): Temporarily set locale to "C".
1716
1717 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
1718
1719         * http.c (gethttp): Improve "POST data file missing" error
1720         message.
1721
1722 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
1723
1724         * progress.c (set_progress_implementation): Type COLON as const
1725         char *.
1726
1727 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
1728
1729         * utils.c (with_thousand_seps): Handle negative numbers.
1730
1731 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
1732
1733         * progress.c (create_image): Mark the "eta" string for translation.
1734
1735 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
1736
1737         * html-url.c (get_urls_file): Don't explicitly set entry->next to
1738         NULL since entry is already zeroed out.
1739
1740 2005-06-26  Gisle Vanem  <giva@bgnett.no>
1741
1742         * mswindows.h: Define gai_strerror under MinGW.
1743
1744 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
1745
1746         * utils.c (with_thousand_seps): Correctly implement thousand seps
1747         consisting of more than one character.
1748
1749 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
1750
1751         * main.c (secs_to_human_time): Ditto.
1752
1753         * progress.c (create_image): Print more exact duration of very
1754         short downloads.
1755
1756         * main.c (secs_to_human_time): Don't translate time suffixes "h",
1757         "m", and "s", which are not strictly SI, but are "accepted for use
1758         with SI".
1759         (secs_to_human_time): Print really small intervals as 0s, not
1760         0.00s.
1761
1762 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
1763
1764         * config-post.h: Replace the alloca declaration with the one from
1765         the latest Autoconf manual.  This should remove a warning with GCC
1766         on AIX.
1767
1768 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
1769
1770         * ftp.c (getftp): Always invoke SIZE, not only when continuing a
1771         download.
1772
1773         * main.c (main): Ditto here.
1774
1775         * progress.c (create_image): When the download is finished, print
1776         how long it took.
1777
1778 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
1779
1780         * main.c (main): Print the downloaded and quota amounts with the
1781         "human_readable" function.
1782
1783         * ftp.c (print_length): Ditto.
1784
1785         * http.c (gethttp): Don't display thousand separators.
1786
1787         * utils.c (with_thousand_seps): Rewritten to respect locale
1788         settings and to be type size agnostic.
1789
1790 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
1791
1792         * utils.c (human_readable): Divide with 1024 instead of shifting
1793         so the operation can work with non-integer N.
1794
1795 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
1796
1797         * progress.c (eta_to_human): New logic for more human-readable
1798         ETA.
1799
1800 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
1801
1802         * utils.c (with_thousand_seps_sum): Decrease buffer size so it
1803         cannot overrun add_thousand_seps's buffer.
1804
1805 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
1806
1807         * utils.c (SPRINTF_WGINT): The correct format is %I64d, not just
1808         %I64.
1809
1810 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
1811
1812         * http.c (http_loop): Don't warn about wildcards in HTTP URLs if
1813         globbing isn't requested in the first place.
1814
1815         * retr.c (retrieve_url): Temporarily turn off globbing when
1816         processing HTTP->FTP redirects.
1817
1818 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
1819
1820         * utils.c (with_thousand_seps_sum): Now defined only if
1821         SUM_SIZE_INT is double.
1822
1823         * wget.h (SUM_SIZE_INT): Instead of bothering with long, long
1824         long, __int64, and friends, simply either use wgint or double, end
1825         of story.  Since we know how to print either, we no longer need
1826         LARGE_INT_FMT.
1827
1828         * sysdeps.h (LARGE_INT): Renamed to SUM_SIZE_INT to better reflect
1829         its intent, and moved to wget.h.
1830
1831 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
1832
1833         * Makefile.in: No need to clean .libs.
1834
1835 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
1836
1837         * cookies.c (parse_set_cookies): Cast pointer subtraction to int
1838         before using it with %d; AIX compiler warns on this.
1839         Reported by Jens Schleusener.
1840
1841 2005-06-24  Hrvoje Niksic  <hniksic@xemacs.org>
1842
1843         * http.c (gethttp): Don't prepend / here.
1844
1845         * cookies.c (cookie_handle_set_cookie): Prepend / to PATH.
1846         (cookie_header): Ditto.
1847
1848 2005-06-24  Hrvoje Niksic  <hniksic@xemacs.org>
1849
1850         * init.c: opt.verbose must be declared as int.
1851
1852 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
1853
1854         * cmpt.c (strpbrk): Removed.
1855         (mktime): Removed.
1856         Include <time.h>.
1857
1858 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
1859
1860         * utils.c (read_file): Ditto.
1861
1862         * main.c (main): Use struct_fstat.
1863
1864         * mswindows.h (struct_fstat): Define a struct_fstat to deal with
1865         the fact that Borland 5.5 has 64-bit stat, but not 64-bit fstat!
1866
1867 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
1868
1869         * sysdep.h: Remove code that deals with Watcom.
1870
1871 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
1872
1873         * all: Use bool instead of int and false/true instead of 0/non-0
1874         for boolean variables and values.
1875
1876 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
1877
1878         * sysdep.h: Include the stdbool.h/_Bool/bool blurb from Autoconf.
1879
1880 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
1881
1882         * init.c (cmd_lockable_boolean): Removed.
1883
1884 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
1885
1886         * cookies.c (struct cookie): Use 1-bit bitfields for booleans
1887         which makes the structure takes less space at no cost in
1888         complexity.
1889
1890 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
1891
1892         * Makefile.in ($(OBJ)): Add the config.h dependency.
1893
1894 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
1895
1896         * openssl.c, connect.c, host.c: Replace instances of #ifdef
1897         ENABLE_DEBUG if (opt.debug) {...} #endif with IF_DEBUG {...}.
1898
1899         * main.c: Rename the IF_DEBUG defined here to WHEN_DEBUG.
1900
1901         * wget.h (IF_DEBUG): New macro.
1902         (DEBUGP): Define in terms of IF_DEBUG.
1903
1904 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
1905
1906         * http.c (gethttp): Only handle --set-cookies (and assert that
1907         cookie jar exists) if opt.cookies is true.  Failure to do so
1908         triggered the assert when --no-cookies was used and the server
1909         sent a Set-Cookie header.  Ouch!
1910
1911 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
1912
1913         * connect.c (select_fd): Expect select() to exist.
1914
1915         * utils.c (xsleep): Always use select() as sleep fallback on
1916         non-Windows platforms.
1917
1918         * ptimer.c: Delete the implementation of PTIMER_TIME.
1919
1920         * main.c: Assume existence of signal(), test for different signal
1921         names instead.
1922
1923         * cmpt.c: Better document reasons why certain functions are
1924         included.
1925
1926 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
1927
1928         * Makefile.in: Remove the manually maintained dependency list;
1929         make all object files depend on every header.
1930
1931 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
1932
1933         * hash.c: Rename "mapping" to "cell" to avoid confusion with the
1934         term "mapping" (or "map") sometimes being used for the entire hash
1935         table.  Also rename "non-empty" to "occupied" for easier reading
1936         of if (!NON_EMPTY (...)) ... .
1937
1938 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
1939
1940         * main.c, ptimer.c, sysdep.h, utils.c: Use #elif to simplify reading of
1941         chained if-else-else-else-... statements.
1942
1943 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
1944
1945         * all: Return type of signal handlers is `void'.  Include signal.h
1946         unconditionally.
1947
1948         * all: Don't explicitly cast values returned by malloc.  We no
1949         longer support ancient compilers that don't declare malloc, and we
1950         never supported C++ builds.
1951
1952 2005-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
1953
1954         * all: Don't declare errno.  Include both time.h and sys/time.h,
1955         as long as sys/time.h exists.  Don't dereference function pointers
1956         when invoking the functions they point to.
1957
1958         * cmpt.c (memmove): Remove function mandated by C89.
1959         (strerror): Ditto.
1960         (strstr): Ditto.
1961
1962         * all: Undo the K&R-ization changes from 2005-05-03.
1963
1964         * all: Remove support for K&R compilers: use C89 function
1965         declarations, remove definition of PARAMS, remove support for
1966         varargs, and remove ansi2knr.  Assume the presence of time.h,
1967         string.h, and other headers mandated by C89.
1968
1969 2005-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
1970
1971         * init.c (cmd_lockable_boolean): Don't recognize literal "2" and
1972         "-1" values; unlike 0 and 1, those should never be exposed to the
1973         user.  Update the error message to be more self-consistent, as
1974         proposed by Benno Schulenberg.
1975
1976 2005-06-18  Hrvoje Niksic  <hniksic@xemacs.org>
1977
1978         * http.c (gethttp): Don't free "head" before using it to save
1979         headers.
1980
1981 2005-06-18  Hrvoje Niksic  <hniksic@xemacs.org>
1982
1983         * http.c (gethttp): When -E is in use, check for file existence
1984         after appending ".html" to the name and modify the file name if
1985         necessary.
1986
1987 2005-06-17  Hrvoje Niksic  <hniksic@xemacs.org>
1988
1989         * connect.c (socket_has_inet6): Removed.
1990
1991         * host.c (lookup_host): Don't use the AI_ADDRCONFIG getaddrinfo
1992         hint.
1993
1994 2005-06-16  Hrvoje Niksic  <hniksic@xemacs.org>
1995
1996         * init.c (cmd_lockable_boolean): Improve the error message so it
1997         lists the more useful values first.
1998
1999 2005-06-15  Hrvoje Niksic  <hniksic@xemacs.org>
2000
2001         * http.c (gethttp): Also report the system error when the POST
2002         data file is missing.
2003
2004 2005-06-15  Benno Schulenberg  <benno@nietvergeten.nl>
2005
2006         * ftp.c, http.c, connect.c, cookies.c, html-url.c, init.c, res.c:
2007         Gettext-ize messages that were previously missed.
2008
2009 2005-06-15  Hrvoje Niksic  <hniksic@xemacs.org>
2010
2011         * host.h (ip_address): Remove the trailing comma from the type
2012         enum in the no-IPv6 case.
2013
2014         * main.c (struct cmdline_option): Remove the trailing comma from
2015         the enum.
2016
2017         Reported by Jens Schleusener.
2018
2019 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
2020
2021         * url.c (strpbrk_or_eos): Check for a recent GCC version before
2022         using the statement-as-expression extension.
2023
2024 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
2025
2026         * http.c (gethttp): Don't attempt to "skip short body" if we're
2027         issuing a HEAD request (in which case the response head is not
2028         followed by a body).
2029
2030 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
2031
2032         * init.c (cmd_spec_header): Don't split the string along the
2033         commas using cmd_vector; just append the new value using
2034         vec_append instead.
2035
2036         * utils.c (vec_append): New function.
2037
2038 2005-05-27  Andreas Beckmann  <debian@abeckmann.de>
2039
2040         * html-url.c (tag_handle_link): Mark the content from the <link
2041         src="..."> tag as expecting HTML.
2042
2043 2005-05-24  Hrvoje Niksic  <hniksic@xemacs.org>
2044
2045         * http.c (http_atotm): Document the origin of the "cookie date"
2046         format.
2047
2048 2005-05-21  Hrvoje Niksic  <hniksic@xemacs.org>
2049
2050         * init.c (setval_internal): Report exact command name alongside
2051         the "display name".
2052
2053 2005-05-18  Hrvoje Niksic  <hniksic@xemacs.org>
2054
2055         * cookies.c (update_cookie_field): Explicitly cast -1 to time_t to
2056         cope with systems where time_t is unsigned.
2057
2058         * cookies.c: Remove unnecessary casts to time_t from values
2059         already of that type.
2060
2061 2005-05-17  Hrvoje Niksic  <hniksic@xemacs.org>
2062
2063         * ftp.c (ftp_loop_internal): Same here.
2064
2065         * http.c (http_loop): Don't clobber the file when -c is specified
2066         and the first attempt to retrieve the file fails.
2067
2068 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
2069
2070         * openssl.c (ssl_check_certificate): Print all issues with a
2071         certificate.
2072
2073 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
2074
2075         * ftp-basic.c: Don't xfree() the line returned by ftp_response if
2076         the returned code is not FTPOK.
2077
2078 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
2079
2080         * init.c (cleanup): Don't free the non-existent opt.ftp_acc.  Free
2081         the SSL-related stuff.
2082
2083 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
2084
2085         * ftp.c (print_length): Consistently print \n at end of the
2086         "Length" line.
2087
2088 2005-05-14  Hrvoje Niksic  <hniksic@xemacs.org>
2089
2090         * openssl.c (ssl_connect): Announce the beginning and the end of
2091         the SSL handshake when in debug mode.
2092
2093         * wget.h (PTR_FORMAT): New macro for easier printing of pointer
2094         values.  Use %0*lx along with PTR_FORMAT instead of %p.
2095
2096 2005-05-14  Hrvoje Niksic  <hniksic@xemacs.org>
2097
2098         * http.c (gethttp): Would forget to close the connection when
2099         keep_alive was not used.
2100
2101 2005-05-13  Hrvoje Niksic  <hniksic@xemacs.org>
2102
2103         * openssl.c (pattern_match): Document the code that decides
2104         whether "*" matches ".".
2105
2106 2005-05-12  Hrvoje Niksic  <hniksic@xemacs.org>
2107
2108         * ftp-ls.c (ftp_index): Use %d to print the port number, which is
2109         now int.
2110         From Steven M. Schweda's VMS patches.
2111
2112 2005-05-12  Hrvoje Niksic  <hniksic@xemacs.org>
2113
2114         * url.c (rewrite_shorthand_url): Don't rewrite "https://host" to
2115         "ftp://https//host" when SSL is not used.
2116
2117 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
2118
2119         * openssl.c (ssl_check_server_identity): Renamed to
2120         ssl_check_certificate because it does more than just checking the
2121         server's identity.
2122         (ssl_check_certificate): Tell the user about
2123         --no-check-certificate.
2124
2125 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
2126
2127         * openssl.c (ssl_init): Always use SSL_VERIFY_NONE, so that the
2128         handshake finishes even if the certificate is invalid.  That way
2129         ssl_check_server_identity can provide better diagnostics on why
2130         the verification failed.
2131
2132 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
2133
2134         * openssl.c (pattern_match): New function.
2135         (ssl_check_server_identity): Treat peer certificate common name as
2136         wildcard.
2137
2138 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
2139
2140         * openssl.c (ssl_check_server_identity): Print certificate subject
2141         and issuer.
2142
2143 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
2144
2145         * res.c (res_register_specs): Correctly pass pointers to
2146         hash_table_get_pair.
2147
2148 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
2149
2150         * http.c (gethttp): Call ssl_check_server_identity.
2151
2152         * openssl.c (ssl_check_server_identity): New function, verifies
2153         that the host name in the certificate matches the actual host
2154         name.
2155         (verify_cert_callback): Removed, since it didn't do anything
2156         except returning the preverify_ok argument.
2157
2158         * connect.c (fd_transport_context): Allow retrieval of the context
2159         pointer registered with fd_register_transport.
2160
2161 2005-05-09  Hrvoje Niksic  <hniksic@xemacs.org>
2162
2163         * openssl.c (verify_cert_callback): Renamed from verify_callback.
2164         Always return the received "ok" value.  Print the X509 name in
2165         debug mode.
2166         (ssl_init): Enable partial writes in SSL context.
2167
2168 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
2169
2170         * http.c (http_loop): Check for wildcards in the URL path
2171         component, not in the whole URL.
2172
2173         * ftp.c (ftp_loop): Check for wildcards in URL path before
2174         unescaping, so the users can escape globbing metacharacters with %
2175         escapes.
2176
2177 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
2178
2179         * init.c (run_command): Correctly interpret the return value of
2180         parse_line.
2181         (commands): Re-alphabetize.
2182
2183 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
2184
2185         * netrc.c (parse_netrc): Explicitly check for assignment != NULL
2186         to silence warning from Borland C.
2187
2188         * url.c (sync_path): Don't unnecessarily increment p.
2189         (url_parse): Don't unnecessarily set url_encode to NULL just
2190         prior to return from the function.
2191
2192 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
2193
2194         * log.c (escnonprint_internal): Place variable declarations
2195         before other statements.
2196
2197 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
2198
2199         * html-url.c: Include recur.h.
2200
2201         * http.c (request_new): Define as accepting no args.
2202
2203 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
2204
2205         * url.c (strpbrk_or_eos): Made inline.  Use strchr(s, '\0') for
2206         finding the NUL char position.
2207
2208 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
2209
2210         * url.c (decide_copy_method): Renamed to char_needs_escaping.
2211         Since it now returns only two possible values, change it to return
2212         boolean (int).
2213
2214 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
2215
2216         * ftp-basic.c (ftp_request): Prevent newlines in VALUE causing
2217         inadvertent sending of multiple FTP commands.
2218
2219 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
2220
2221         * url.c (decide_copy_method): Never cause reencode_escapes to
2222         decode % escapes; it is too intrusive and breaks some servers.
2223
2224 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
2225
2226         * http.c (gethttp): When tunnelling SSL traffic over proxy with
2227         CONNECT, we're really talking to the remote server directly.
2228         Because of this, the request-line argument must be the URL path
2229         rather than the whole URL, as it would be when using regular
2230         proxies.
2231         Reported by Charles Lane.
2232
2233 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
2234
2235         * init.c (cmd_spec_useragent): Allow empty User-Agent.
2236
2237         * http.c (gethttp): Don't print "unknown authentication scheme"
2238         for failed Basic authentication.
2239         (SET_USER_AGENT): Don't set user-agent if opt.useragent is empty.
2240         (gethttp): Use alloca for allocation of www_authenticate.
2241
2242 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
2243
2244         * main.c (print_help): Fix wording of --secure-protocol help text.
2245
2246 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
2247
2248         * cmpt.c (strstr): Updated from glibc 2.3.5.
2249
2250 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2251
2252         * http.c (http_atotm): Zero out the whole struct tm being passed
2253         to strptime.
2254
2255 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2256
2257         * main.c (main): Propagate option name to setoptval.
2258
2259         * init.c (setoptval): Accept another argument, OPTNAME.  Propagate
2260         that argument as the option name independently of the actual
2261         command, determined by command_by_name(com).
2262
2263 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2264
2265         * init.c (parse_line): Make the return value indicate whether
2266         there was a syntax error or a setter failed.
2267         (run_wgetrc): Return an indication on whether an error has been
2268         encountered.
2269         (initialize): Abort if there have been errors running either
2270         .wgetrc file.
2271
2272 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2273
2274         * log.c (copy_and_escape): Slightly reduce code repetition between
2275         the two loops.
2276
2277 2005-05-05  Charles C.Fu  <ccwf@bacchus.com>
2278
2279         * utils.c (proclist): Strip leading slash when calling fnmatch
2280         too, otherwise wildcard comparisons always fail.
2281
2282 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2283
2284         * utils.c (touch): Set access time to current time.
2285
2286 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2287
2288         * url.c (url_unescape): Don't unescape %00, it effectively
2289         truncates the string.
2290
2291 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2292
2293         * log.c (copy_and_escape): Replace the FOR_URI argument with a
2294         slightly more general mechanism for specifying different kinds of
2295         escape.
2296
2297 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2298
2299         * ftp-basic.c (ftp_response): Fix printing FTP server response.
2300
2301 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2302
2303         * retr.c (limit_bandwidth_reset): Reset sleep_adjust.
2304         (limit_bandwidth): Don't allow huge "adjustment" values that
2305         result from being suspended for a while.
2306
2307 2005-05-04  Hrvoje Niksic  <hniksic@xemacs.org>
2308
2309         * wget.h: If gettext was found but libtintl.h wasn't, declare
2310         gettext's return type to avoid type mismatches.
2311
2312 2005-05-03  Hrvoje Niksic  <hniksic@xemacs.org>
2313
2314         * url.c (url_parse): Rename label `error' to avoid conflict with
2315         identifier.
2316
2317         * retr.c (fd_read_body): Rename label `out' to avoid conflict with
2318         identifier.
2319         (fd_read_hunk): Use explicit double constant.
2320         (retrieve_from_file): Don't use string concatenation.
2321         (sleep_between_retrievals): Make sure xsleep is called with a
2322         `double' argument.
2323         (no_proxy_match): Define as static, like it is declared.
2324
2325         * progress.c (bar_create): Use 0.0 instead of 0 because K&R
2326         compilers can't automatically promote it.
2327
2328         * http-ntlm.c (ntlm_output): Replace \xHH sequences with \OOO for
2329         the sake of old compilers.
2330
2331         * ftp.c (ftp_loop_internal): Don't use string concatenation.
2332
2333         * http.c (request_send): Use explicit double constants when
2334         calling fd_read and fd_write.
2335         (post_file): Ditto.
2336         (gethttp): Ditto.
2337         (skip_short_body): Ditto.
2338
2339         * ftp-basic.c: When calling fd_write, specify the last argument as
2340         a `double' constant for the sake of K&R compilers which don't see
2341         the prototype and therefore can't promote it to double
2342         automatically.
2343
2344         * cookies.c (cookie_jar_load): Rename abort label to abort_cookie
2345         to avoid name conflict in K&R compilers.
2346
2347 2005-04-29  Hrvoje Niksic  <hniksic@xemacs.org>
2348
2349         * ptimer.c (posix_init): Since we allow _POSIX_MONOTONIC_CLOCK==0,
2350         it is not enough to check for _POSIX_MONOTONIC_CLOCK-0, we must
2351         also check for defined(_POSIX_MONOTONIC_CLOCK).
2352
2353 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
2354
2355         * ftp.c, hash.c, connect.c, host.c, http.c: Remove unreached code,
2356         such as "break" following return or abort.
2357
2358 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
2359
2360         * init.c (commands): Wrap the use of opt.random_file in #ifdef
2361         HAVE_SSL.
2362
2363 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
2364
2365         * http.c (gethttp): Correctly set the user agent.
2366
2367 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
2368
2369         * init.c (cmd_spec_useragent): Free the old value of
2370         opt.useragent before setting the new one.
2371
2372 2005-04-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
2373
2374         * main.c: Map --ftp-password, --http-password and --proxy-password to
2375         the new ftppassword, httppassword and proxypassword commands
2376         respectively.  Document the --user and --password options in the help
2377         string.
2378         
2379 2005-04-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
2380
2381         * ftp.c: Add support for --user and --password.
2382         
2383         * http.c: Add support for --user and --password.
2384         
2385         * init.c: Deprecated ftppasswd, httppasswd, login, passwd and
2386         proxypasswd commands.  Added ftppassword, ftpuser, httppassword,
2387         password, proxypassword and user commands.
2388
2389         * main.c: Renamed --ftp-passwd to --ftp-password.  Added --ftp-user,
2390         --http-password, --password, --proxy-password and --user.  Deprecated
2391         --http-passwd and --proxy-passwd.  Added documentation for new options
2392         and removed documentation for deprecated options in the help string.
2393         
2394         * options.h (struct options): Added user and passwd members to handle
2395         --user and --password respectively.  Renamed ftp_acc and ftp_pass
2396         members to ftp_user and ftp_passwd for consistency.
2397
2398 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
2399
2400         * main.c (print_help): Advertise "DER", not "ASN1".
2401
2402 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
2403
2404         * openssl.c (init_prng): Disable the weak random seed by default.
2405
2406         * http.c (gethttp): Simplify SSL initialization; disable SSL when
2407         anything goes wrong with the initialization.
2408
2409         * options.h (struct options): New option opt.random_file.
2410
2411 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
2412
2413         * init.c: Wrap private key commands in IF_SSL.
2414
2415 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
2416
2417         * openssl.c (ssl_init): Ditto.
2418
2419         * options.h (struct options): Allow separate specification of key
2420         type and certificate type.
2421
2422         * init.c (cmd_spec_cert_type): Provide a "der" synonym for "asn1"
2423         certificate encoding.
2424
2425 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
2426
2427         * openssl.c: Renamed "gen_sslfunc.c" to "openssl.c" and
2428         "gen_sslfunc.h" to "openssl.h".  This reflects the intent of
2429         openssl.c encapsulating the OpenSSL-specific code.
2430
2431 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
2432
2433         * init.c: Renamed "closure" (a synonym for context in some
2434         cultures) to "place", which more accurately reflects the usage.
2435
2436 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
2437
2438         * gen_sslfunc.c (ssl_init): Use default locations for loading the
2439         certificate bundles.
2440         (ssl_init_prng): Disable the cryptographically weak PRNG
2441         initialization fallback.
2442
2443         * init.c: Renamed SSL command-line arguments and wgetrc commands.
2444         (defaults): Check the server certificate by default.
2445
2446 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
2447
2448         * cookies.c (cookie_handle_set_cookie): Delete the part of the
2449         path after the trailing slash.
2450
2451         * http.c (gethttp): Call cookie_handle_set_cookie with path that
2452         begins with '/'.
2453
2454 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
2455
2456         * http.c (gethttp): Call skip_short_body only if keep_alive is in
2457         use.
2458         (gethttp): Send the User-Agent header with the CONNECT request as
2459         well.
2460
2461 2005-04-25  Hrvoje Niksic  <hniksic@xemacs.org>
2462
2463         * main.c (option_data): Removed support for the undocumented flag
2464         --use-proxy.
2465
2466 2005-04-25  Hrvoje Niksic  <hniksic@xemacs.org>
2467
2468         * main.c (option_data): Don't treat -Y as a boolean switch; treat
2469         it as a value switch instead, so "-Y off" continues to work.
2470
2471 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
2472
2473         * utils.c (aprintf): Delete unreachable statement.
2474
2475 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
2476
2477         * host.c (cmp_prefer_ipv4): New function.
2478         (cmp_prefer_ipv6): New function.
2479         (lookup_host): Use the appropriate comparator according to
2480         opt.prefer_family.
2481
2482         * init.c: New option prefer_family.
2483
2484         * host.c (is_valid_ipv6_address): Spell NS_* constants in lower
2485         case to avoid clash with system headers.
2486         (lookup_host): Reorder the addresses so that IPv4 ones come first.
2487
2488         * utils.c (stable_sort): New function.
2489
2490 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
2491
2492         * connect.c (retryable_socket_connect_error): Return 0 for
2493         ENETUNREACH and EHOSTUNREACH.
2494
2495 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
2496
2497         * cmpt.c: Reenable the memmove implementation for systems that
2498         lack it.
2499
2500         * http.c (gethttp): Store the "authorized" state of the persistent
2501         connection.
2502         (request_remove_header): New function.
2503         (gethttp): Don't send the "Basic" authentication if the connection
2504         is already authorized.
2505
2506 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
2507
2508         * utils.c (base64_encode): Treat input as unsigned chars.
2509         Required for correct encoding of binary stuff.
2510
2511 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
2512
2513         * http-ntlm.c: Format the function definitions in an
2514         ansi2knr-friendly fashion.
2515
2516 2005-04-22  Hrvoje Niksic  <hniksic@xemacs.org>
2517
2518         * http.c (gethttp): Handle multiple WWW-Authentication headers,
2519         only one of which is recognized.  Those are sent by IIS with NTLM
2520         authorization.
2521         (create_authorization_line): Propagate information whether
2522         authorization is finished.
2523         (gethttp): Only stop authorization when it's really finished, not
2524         after fixed two steps.
2525
2526 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
2527
2528         * gen_sslfunc.c (ssl_init): Fix warning message text; mark the
2529         message as translatable.
2530
2531 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
2532
2533         * main.c (print_help): Print the EGD option outside the cluster of
2534         SSL options.
2535
2536 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
2537
2538         * http-ntlm.c (ntlm_output): Fix setting the domain.
2539         Suggested by Sami Krank.
2540
2541 2005-04-20  Mauro Tortonesi  <mauro@ferrara.linux.it>
2542
2543         * connect.c: Set IPV6_V6ONLY socket option when -6 switch is used.
2544
2545 2005-04-20  FUJISHIMA Satsuki  <sf@FreeBSD.org>
2546
2547         * http.c (request_set_header): Fix the check whether a new header
2548         needs to be allocated.
2549
2550 2005-04-18  Hrvoje Niksic  <hniksic@xemacs.org>
2551
2552         * utils.c (base64_encode): Use the parameter order that makes more
2553         sense.  Return the length of the base64 written.  Updated all
2554         callers.
2555
2556 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
2557
2558         * http.c (request_set_header): Free NAME when VALUE is NULL and
2559         freeing the header name is requested.
2560
2561 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
2562
2563         * snprintf.c (fmtstr): Declare VALUE as const char *.
2564         Based on patch by Russ Allbery.
2565
2566 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
2567
2568         * snprintf.c (fmtfp): More correct handling of significant digit
2569         count with %g -- 0.002 has one significant digit, not three.
2570
2571 2005-04-16  Hrvoje Niksic  <hniksic@xemacs.org>
2572
2573         * retr.c (fd_read_body): Respect read timeout with non-interactive
2574         or no progress gauge -- treat ETIMEDOUT specially only when
2575         progress_interactive.
2576         Reported by FUJISHIMA Satsuki.
2577
2578 2005-04-16  FUJISHIMA Satsuki  <sf@FreeBSD.org>
2579
2580         * http.c (gethttp): Don't use HTTP/1.0 persistent connections over
2581         proxy.
2582
2583 2005-04-16  Hrvoje Niksic  <hniksic@xemacs.org>
2584
2585         * snprintf.c: Use the PARAMS macro to handle prototypes.  Write
2586         function definitions in the ansi2knr-friendly way.
2587         (fmtstr): If string precision is specified, don't read VALUE past
2588         it.
2589         (dopr): Actually print %g and %e formats.
2590         (fmtfp): Fix a bug that caused 0.01 to be printed as 0.1.
2591         (fmtfp): Use LLONG in floating point conversions to be able to
2592         convert more digits.
2593         (fmtfp): Interpret precision as number of significant digits with
2594         %g.
2595         (fmtfp): Omit trailing decimal zeros with %g.
2596
2597         * snprintf.c: Don't include <ctype.h> because none of it is used.
2598         Include strings.h/string.h, as per Autoconf.
2599
2600 2005-04-15  Hrvoje Niksic  <hniksic@xemacs.org>
2601
2602         * ptimer.c: Use _POSIX_TIMERS - 0 > 0, which handles the case when
2603         _POSIX_TIMERS is defined but empty, as well as the case when it is
2604         undefined.  Do the same with the check for _POSIX_MONOTONIC_CLOCK.
2605         Suggested by Larry Jones.
2606
2607 2005-04-15  Hrvoje Niksic  <hniksic@xemacs.org>
2608
2609         * ptimer.c: Check that _POSIX_TIMERS is defined as well as > 0.
2610         Problem reported by Steven M. Schweda.
2611
2612 2005-04-14  Hrvoje Niksic  <hniksic@xemacs.org>
2613
2614         * http.c (skip_short_body): Print the skipped body data in debug
2615         mode.
2616         (skip_short_body): Don't skip more than 4k of body data.
2617         (skip_short_body): Return whether the skipping was successful.
2618         (gethttp): If skip_short_body failed, invalidate the connection.
2619
2620 2005-04-12  Gisle Vanem  <giva@bgnett.no>
2621
2622         * ftp.c (getftp): Ditto.
2623
2624         * http.c (gethttp): Open the output file in binary mode.
2625
2626 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
2627
2628         * hash.c: Conditionalize including config.h on HAVE_CONFIG_H
2629         instead of on STANDALONE.
2630
2631 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
2632
2633         * gen_sslfunc.c (ssl_print_errors): Made static.
2634         (ssl_print_errors): Eliminate potentially dangerous fixed-size
2635         error buffer.  Passing NULL to ERR_error_string causes it to use
2636         its own static buffer, which is fine for our purposes.
2637
2638         * gen_sslfunc.c: Include gen_sslfunc.h.  Make the declarations of
2639         ssl_init and ssl_conect match the actual definitions.
2640         (ssl_connect): Simply return a boolean, the SSL context is no
2641         longer useful as a return value.
2642
2643         * retr.c: Don't include SSL headers; we don't need them.
2644
2645 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
2646
2647         * config-post.h: Don't define _VA_LIST under Solaris; it breaks
2648         compilation with GCC 3.4 under Solaris 10.  (It was defined to
2649         avoid a warning with previous versions of GCC.)
2650
2651 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
2652
2653         * xmalloc.c (register_ptr): Warn the user to increase SZ prior to
2654         aborting.
2655
2656 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
2657
2658         * convert.c (convert_cleanup): Free converted_files.
2659
2660 2005-04-10  Hrvoje Niksic  <hniksic@xemacs.org>
2661
2662         * wget.h (DEBUGP): Use __builtin_expect to give a hint to GCC that
2663         opt.debug is false in the vast majority of cases.
2664
2665 2005-04-10  Hrvoje Niksic  <hniksic@xemacs.org>
2666
2667         * config-post.h: Declare alloca as void *, not char *.
2668
2669 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
2670
2671         * recur.c (download_child_p): When -p is used, (temporarily)
2672         ignore accept/reject rules for HTMLs, even when they are at the
2673         maximum recursion depth.  That is because with -p we are, if
2674         necessary, overstepping the max. depth to get the requisites.
2675
2676 2004-06-12  Larry Jones <lawrence.jones@ugsplm.com>
2677
2678         * recur.c (download_child_p): Correct the logic in check number 6:
2679         test opt.reclevel (not DEPTH) against INFINITE_RECURSION.
2680
2681 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
2682
2683         * url.c: Use "static const" in preference to "const static".
2684         Sun's cc warns that "storage class after type is obsolescent".
2685
2686         * url.c (urlchr_table): Don't mark ~ as unsafe, too many broken
2687         web sites are confused when ~ is changed to %7E.  Their servers
2688         redirect /%7Efoo/ to /~foo/, which Wget again accesses using %7E,
2689         causing further redirections, therefore looping infinitely.  See
2690         Debian bug #301624 for an example.
2691
2692 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
2693
2694         * alloca.c: Include wget.h to be able to use xmalloc.  In addition
2695         to defining malloc to xmalloc, also define free to xfree.
2696
2697 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
2698
2699         * http-ntlm.c (ntlm_output): Use "char", not "unsigned char" for
2700         ntlmbuf.  Our base64 functions accept char anyway.
2701         (ntlm_output): Join up the format string, since we nominally
2702         support K&R compilers.
2703         (ntlm_output): Ditto.
2704
2705 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
2706
2707         * ptimer.c: Use Windows timers under Cygwin, whose POSIX timer
2708         implementation is incomplete.
2709
2710 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
2711
2712         * ptimer.c (struct ptimer): Remove the unused initialized field.
2713
2714         * ptimer.c: Renamed function parameters from WT (which used to
2715         stand for wget_timer or wtimer) to PT.
2716
2717 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
2718
2719         * ptimer.c (posix_init): Be smarter about choosing clocks.  In
2720         decreasing order of preference, use CLOCK_MONOTONIC,
2721         CLOCK_HIGHRES, and CLOCK_REALTIME.
2722         (ptimer_allocate): Removed.
2723
2724         * ptimer.c: Refactor the code by cleanly separating the
2725         architecture-dependent code from the architecture-independent
2726         code.
2727
2728 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
2729
2730         * ptimer.c (ptimer_init): Explicitly check that
2731         _POSIX_MONOTONIC_CLOCK is *both* defined and >=0.  (Undefined
2732         symbols are >=0.)
2733
2734 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
2735
2736         * ptimer.c (ptimer_diff): Fix typo affecting Windows build.
2737
2738 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
2739
2740         * ptimer.c (ptimer_init): In fact, _POSIX_MONOTONIC_CLOCK needs to
2741         be >= 0.
2742
2743         * ptimer.c (ptimer_init): Check whether _POSIX_MONOTONIC_CLOCK is
2744         defined instead of whether it's greater than 0.  glibc defines it
2745         to 0, but still makes it available via sysconf.
2746
2747 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
2748
2749         * mswindows.c (str_to_int64): Rename OVERFLOW and UNDERFLOW to
2750         INT64_OVERFLOW and INT64_UNDERFLOW, since those names are used.
2751
2752 2005-04-07  Hrvoje Niksic  <hniksic@xemacs.org>
2753
2754         * ptimer.c: New file.  Move the "wtimer" functions from utils.c to
2755         this file and rename them to ptimer_.
2756
2757 2005-04-07  Hrvoje Niksic  <hniksic@xemacs.org>
2758
2759         * host.c (NO_ADDRESS): Define NO_ADDRESS only after the system
2760         headers have been included.
2761
2762 2005-04-06  Hrvoje Niksic  <hniksic@xemacs.org>
2763
2764         * http.c (pconn): Include NTLM data, which is per-connection.
2765         (known_authentication_scheme_p): Recognize NTLM authorization.
2766         (create_authorization_line): Call ntlm_input and ntlm_output.
2767
2768         * http-ntlm.c: New file, donated by Daniel Stenberg and originally
2769         written for curl, heavily modified for Wget.
2770
2771         * utils.c (base64_encode): Relocated from http.c, since it is now
2772         used by http-ntlm.c, and will possibly be used elsewhere.
2773         (base64_decode): New function, originally based on code from GNU
2774         recode.
2775
2776 2005-04-02  Hrvoje Niksic  <hniksic@xemacs.org>
2777
2778         * ftp.c (ftp_loop): Ditto.
2779
2780         * ftp-basic.c (ftp_pasv): Use the xzero shorthand for memset(0).
2781         (ftp_lpsv): Ditto.
2782
2783 2005-04-05  Mauro Tortonesi  <mauro@ferrara.linux.it>
2784
2785         * Makefile.in: removed string_t.c from list of source files.
2786
2787 2005-04-04  Mauro Tortonesi  <mauro@ferrara.linux.it>
2788
2789         * string_t.c: Removed.
2790         
2791         * string_t.h: Removed.
2792
2793 2005-04-02  Hrvoje Niksic  <hniksic@xemacs.org>
2794
2795         * url.c (rewrite_shorthand_url): Only accept recognized schemes.
2796         That way "foo:80" will correctly be rewritten to "http://foo:80"
2797         instead of left unchanged and ultimately rejected because of
2798         "unsupported scheme foo".
2799
2800 2005-03-31  Hrvoje Niksic  <hniksic@xemacs.org>
2801
2802         * utils.c (number_to_string): Avoid explicit 64-bit constants;
2803         construct them by multiplication at compile-time.
2804
2805         * utils.c, elsewhere: Don't append "L" to 32-bit integer
2806         constants; we aren't really compilable on 16-bit systems anyway.
2807
2808         * hash.c (prime_size): Remove primes larger than 2^31, but include
2809         2^31-1, which is prime.
2810
2811 2005-03-30  Hrvoje Niksic  <hniksic@xemacs.org>
2812
2813         * utils.c (string_set_to_array): New function.
2814
2815         * convert.c: Replace the use of "slists" with sets/hash-tables,
2816         which in fact suit the intended purpose much better.
2817         downloaded_html_list is removed altogether.
2818
2819 2005-03-29  Hrvoje Niksic  <hniksic@xemacs.org>
2820
2821         * ftp.h (enum): Rename GLOBALL, GETALL, and GETONE to
2822         GLOB_GLOBALL, GLOB_GETALL, and GLOB_GETONE to avoid conflict with
2823         Linux headers.
2824
2825 2005-03-29  Hrvoje Niksic  <hniksic@xemacs.org>
2826
2827         * utils.c (numdigit): More correct handling of negative numbers.
2828
2829 2005-03-21  Hrvoje Niksic  <hniksic@xemacs.org>
2830
2831         * http.c (gethttp): Print the human-readable size.
2832
2833         * ftp.c (getftp): Print the human-readable size of the file to be
2834         downloaded.
2835
2836         * utils.c (human_readable): New function.
2837
2838         * utils.c: Renamed "legible" to "with_thousand_seps",
2839         "legible_large_int" to "with_thousand_seps_large", and "legible_1"
2840         to "add_thousand_seps".
2841
2842 2005-03-21  Hrvoje Niksic  <hniksic@xemacs.org>
2843
2844         * http.c (gethttp): Inhibit persistent connections when talking to
2845         proxies, as mandated by RFC 2068.
2846
2847 2005-03-20  Hrvoje Niksic  <hniksic@xemacs.org>
2848
2849         * url.c (unescape_single_char): New function.
2850         (url_escape_dir): Use it to unescape slashes in directory
2851         components.
2852         (url_string): Escape unsafe chars in host name, except for the ':'
2853         charaters, which can appear in IPv6 addresses.
2854
2855         * main.c (main): Don't access the cookie jar directly.
2856
2857         * log.c (escnonprint_internal): Correctly calculate the needed
2858         string size.  Don't forget the buffer's new size after having
2859         reallocated it.
2860         (log_cleanup): New function.  Free the escnonprint ring data.
2861
2862         * init.c (cleanup): Don't free the cookie jar explicitly, it is
2863         now done by http_cleanup.
2864         (cleanup): opt.user_headers is now a vector, free it with
2865         free_vec.
2866
2867         * http.c (gethttp): Make sure to free the request data, the status
2868         message, and the response data before returning from the function.
2869         (save_cookies): New function.
2870         (http_cleanup): Free the cookie jar here.
2871
2872         * hash.c: Renamed string_hash to hash_string and ptrhash to
2873         hash_pointer.  Exported hash_pointer.
2874
2875         * xmalloc.c: Organized malloc_table (previously malloc_debug) as a
2876         simple EQ hash table.  register_ptr and unregister_ptr are now of
2877         O(1) complexity.
2878
2879         * xmalloc.c: Renamed "*_debug" to debugging_* and "*_real" to
2880         checking_*.
2881
2882 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
2883
2884         * utils.c (debug_test_md5): Moved to gen-md5.c.
2885
2886         * mswindows.h: Don't declare inet_ntop, since we don't use it.
2887
2888         * mswindows.h: For consistency, also wrap closesocket, it being
2889         a Winsock call.
2890
2891         * mswindows.h: Don't declare sleep and usleep; we're defining
2892         xsleep now.
2893
2894         * mswindows.h (mkdir): Don't special-case Borland C, _mkdir
2895         works there as well.
2896
2897         * host.c: Don't include winsock header files; the correct ones
2898         are already included by mswindows.h.
2899
2900         * mswindows.c (xsleep): Round toward the nearest millisecond
2901         in an attempt to avoid average short sleeps.
2902
2903         * utils.c (wtimer_granularity): Report correct values for
2904         Windows timers and for high-resolution timers.
2905
2906         * utils.c (wtimer_initialize_once): New function, called to
2907         initialize the timer frequency.
2908
2909         * utils.c: Replace the use of GetSystemTime with high-resolution
2910         counters under Windows.  When high-resolution counters are
2911         unavailable, use GetTickCount().
2912
2913 2005-03-15  Hrvoje Niksic  <hniksic@xemacs.org>
2914
2915         * retr.c (fd_read_body): Undo the 2004-11-18 change.  Instead,
2916         always be "exact".
2917
2918 2005-03-17  Hrvoje Niksic  <hniksic@xemacs.org>
2919
2920         * ftp-basic.c (ftp_login): Don't free the string if ftp_response
2921         returned an error status because the line didn't get allocated in
2922         the first place.
2923
2924 2005-03-15  Hrvoje Niksic  <hniksic@xemacs.org>
2925
2926         * http.c (read_http_response_head): Limit the response size to 64k
2927         bytes.
2928
2929         * retr.c (fd_read_hunk): Accept a MAXSIZE argument that limits the
2930         number of bytes the function is allowed to allocate.
2931         (fd_read_line): Limit the line to 4096 bytes.
2932
2933 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
2934
2935         * wget.h: Include options.h after wgint has been defined.
2936
2937         * options.h (struct options): Declare options processed with
2938         cmd_bytes as wgint, not long.
2939
2940 2005-03-18  Hrvoje Niksic  <hniksic@xemacs.org>
2941
2942         * init.c (cmd_file): Use concat_strings.
2943
2944         * http.c (basic_authentication_encode): Use concat_strings.
2945
2946         * ftp-ls.c (ftp_index): Use concat_strings.
2947
2948         * ftp-basic.c (ftp_request): Use concat_strings.
2949
2950         * utils.c (concat_strings): New function.
2951
2952 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
2953
2954         * init.c (simple_atof): Handle negative numbers; skip whitespace
2955         before the number.
2956         (simple_atoi): Ditto.  Also, check for overflow and underflow.
2957         (cmd_number): Bail out on negative numbers.
2958         (parse_bytes_helper): Ditto.
2959
2960 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
2961
2962         * http.c (gethttp): Handle multiple Set-Cookie headers sent by
2963         remote server.
2964
2965 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
2966
2967         * init.c (defaults): Use passive FTP by default.
2968
2969 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
2970
2971         * mswindows.c: Provide wrappers to Winsock functions that set
2972         errno to WSAGetLastError() in case of failure.  Also provide a
2973         Windows-specific version of strerror.
2974
2975         * mswindows.h: Wrap calls to socket, bind, connect, recv, send,
2976         select, getsockname, getpeername, and setsockopt.
2977
2978 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
2979
2980         * url.c (url_parse): Reject port numbers larger than 65535.  We
2981         also check for overflow while parsing port numbers.
2982
2983 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
2984
2985         * utils.c (read_file): Don't use wgint for file size; LFS won't
2986         work since the file is mmap'ed as a whole.
2987
2988         * options.h: Don't include stdio.h.
2989
2990         * log.c: Ditto.
2991
2992         * init.c: Disambiguate assignment from non-zero test to avoid
2993         Borland C warning.
2994
2995         * http.c (response_new): Don't needlessly post-increment count.
2996
2997         * hash.c: Include stdio.h.
2998
2999         * gnu-md5.h: Don't include stdio.h.
3000
3001         * getopt.h (struct option): Always use const.
3002
3003         * ftp.c (getftp): Avoid unnecessary assignment to RES to avoid
3004         Borland C warning.
3005
3006         * ftp-ls.c: Disambiguate assignment from non-zero test to avoid
3007         Borland C warning.
3008
3009         * cmpt.c (strptime_internal): Don't initialize rp_backup when
3010         !_NL_CURRENT to avoid Borland C warning.
3011
3012 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3013
3014         * utils.c (fopen_excl): Fix parse error when O_BINARY is
3015         available.
3016
3017 2005-03-05  Hrvoje Niksic  <hniksic@xemacs.org>
3018
3019         * url.c (url_file_name): Don't allow hosts named ".." to be
3020         appended as path elements.
3021
3022 2005-03-03  Hrvoje Niksic  <hniksic@xemacs.org>
3023
3024         * retr.c (retrieve_url): Escape location header.
3025
3026         * http.c (print_server_response_1): Escape server response when
3027         printing it.
3028         (gethttp): Escape host name, status message, location header, and
3029         content type.
3030         (http_loop): Escape error message from server.
3031
3032         * host.c (lookup_host): Escape host name when printing it.
3033
3034         * ftp.c (getftp): Escape user name when printing it.
3035         (getftp): Escape remote file and directory for printing.
3036         (getftp): Escape server listing when printing it.
3037         (ftp_retrieve_list): Escape link name and file name.
3038         (ftp_retrieve_glob): Escape file name.
3039
3040         * ftp-basic.c (ftp_response): Escape server response when printing
3041         it.
3042
3043         * cookies.c (parse_set_cookies): Escape the cookie field when
3044         printing it.
3045         (parse_set_cookies): Escape contents of remote header.
3046         (cookie_handle_set_cookie): Escape host name and cookie domain.
3047
3048         * connect.c (connect_to_ip): Escape the host name.
3049
3050         * log.c (escnonprint): New function, used for printing strings
3051         coming from the server that possibly contain non-ASCII characters.
3052         (escnonprint_uri): Ditto.
3053
3054 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
3055
3056         * ftp.c (getftp): Ditto.
3057
3058         * http.c (gethttp): When we're not supposed to overwrite files,
3059         use fopen_excl to open the file and recompute the file name.
3060
3061         * log.c (redirect_output): Use unique_create to avoid a race
3062         condition.
3063
3064         * mswindows.c (fake_fork_child): Use unique_create.
3065
3066         * utils.c (fopen_excl): New function that opens a stdio stream
3067         with the O_EXCL flag (where available).
3068         (unique_create): New function, like unique_name, but also creating
3069         the file and returning a file pointer.
3070         (fork_to_background): Use unique_create to create the file
3071         immediately to avoid race condition with multiple instances of
3072         wget -b.
3073
3074 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
3075
3076         * host.c (lookup_host): Test for AI_ADDRCONFIG directly, instead
3077         of checking for HAVE_GETADDRINFO_AI_ADDRCONFIG.
3078
3079 2005-02-23  Hrvoje Niksic  <hniksic@xemacs.org>
3080
3081         * host.c (is_valid_ipv6_address): Move here from url.c.
3082         (lookup_host): If the address is numeric, don't print the
3083         "resolving..." line, don't set up DNS timeouts, and set the
3084         AI_NUMERICHOST hint, where available.
3085
3086 2005-02-26  Gisle Vanem  <giva@bgnett.no>
3087
3088         * utils.c: Use the nnnLL syntax under GCC.  Define struct_stat to
3089         struct _stati64 under __MINGW32__ as well as under MS VC.
3090
3091 2005-02-26  Hrvoje Niksic  <hniksic@xemacs.org>
3092
3093         * utils.c: Use the nnnI64 syntax for __int64 constants under all
3094         Windows compilers.
3095         (SPRINTF_WGINT): Use "%I64" under all Windows compilers.
3096
3097         * mswindows.h (WGINT_MAX): Use the nnnI64 syntax for
3098         __int64 constants under all Windows compilers.
3099         (struct_stat): Use `struct stati64' under Borland C.
3100         (fstat): Don't redefine to _fstati64 under Borland.
3101
3102         * mswindows.c: Define str_to_int64 under Borland C as well as
3103         under (older) Visual C.
3104
3105 2005-02-25  Hrvoje Niksic  <hniksic@xemacs.org>
3106
3107         * ftp.c (getftp): Initialize err to suppress compiler warning.
3108
3109 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
3110
3111         * ftp.c (ftp_expected_bytes): Fix bug that caused infloop because
3112         of not correctly skipping the '(' character.
3113
3114 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
3115
3116         * mswindows.c (wget_ftello): Removed.
3117
3118         * mswindows.h: Remove bogus definition of stat.
3119         (wget_ftello): Remove the leftover ftello replacement.
3120
3121 2005-02-20  Hrvoje Niksic  <hniksic@xemacs.org>
3122
3123         * mswindows.c (wget_ftello): Wget's replacement for ftello.
3124
3125         * utils.c (file_size): Use ftello where available.
3126
3127         * ftp-ls.c (ftp_parse_unix_ls): Use str_to_wgint to parse the file
3128         size.
3129         (ftp_parse_winnt_ls): Ditto.
3130
3131         * ftp-basic.c (ftp_size): Use str_to_wgint to convert number to
3132         wgint; pass 10 instead of 0 as the BASE argument.
3133
3134         * ftp.c (ftp_expected_bytes): Use str_to_wgint to parse the file
3135         size.
3136
3137         * sysdep.h (LARGE_INT_FMT): Use __int64 as LARGE_INT on
3138         MSVC/Windows; print it with "%I64".
3139
3140         * wget.h: Define a `wgint' type, normally aliased to (the possibly
3141         64-bit variant of) off_t.
3142
3143         * all: Use `wgint' instead of `long' for numeric variables that
3144         can hold file sizes.
3145
3146         * utils.c (number_to_string): Support printing of `wgint'
3147         argument.
3148         (number_to_static_string): New function.
3149
3150         * all: Replace printf("%ld", long_value) with printf("%s",
3151         number_to_static_string(wgint_value)).
3152
3153 2005-02-18  Mauro Tortonesi <mauro@ferrara.linux.it>
3154
3155         * main.c: Added the --ftp-passwd command line option.
3156
3157         * init.c: Renamed command passwd to ftppasswd.
3158
3159 2005-02-11  Mauro Tortonesi <mauro@ferrara.linux.it>
3160         
3161         * string_t.c: Fixed a bug in do_escape and triggered escape of
3162         backslashes in string_escape to avoid ambiguities in the result
3163         string.
3164         
3165 2005-02-10  Mauro Tortonesi <mauro@ferrara.linux.it>
3166
3167         * string.h: Renamed to string_t.h to fix a compilation conflict 
3168         with the string.h header in the standard C library.
3169         
3170         * string.c: Renamed to string_t.c for consistency with string.h.
3171         
3172         * string_t.c: Ditto.
3173
3174         * string_t.h: Ditto.
3175         
3176 2004-12-31  Mauro Tortonesi <mauro@ferrara.linux.it>
3177
3178         * string.c: New file.
3179
3180         * string.h: New file.
3181
3182         * Makefile.in: Added string.c to the list of modules to compile.
3183
3184         * main.c: Updated copyright.
3185
3186 2004-11-18  Ulf Harnhammar <ulf.harnhammar.9485@student.uu.se>
3187
3188         * ftp-ls.c: Fixed a problem in ftp_parse_winnt_ls that could allow a
3189         malicious remote FTP server to crash wget.
3190
3191 2004-11-18  Hans-Andreas Engel <engel@node.ch>
3192
3193         * http.c: Enable --convert-links (-k) when a single page is downloaded
3194         via --output-document (-O).
3195
3196 2004-11-18  Mauro Tortonesi <mauro@deepspace6.net>
3197
3198         * connect.c: Minor correction to the comment in front of fd_peek.
3199
3200 2004-11-18  Leonid Petrov <nouser@lpetrov.net>
3201
3202         * retr.c: Fix a timeout problem in fd_read_body when using http_proxy.
3203
3204 2004-11-15  YAMAZAKI Makoto <Yamazaki.Makoto@fujixerox.co.jp>
3205
3206         * netrc.c: Fix termination by assertion bug in netrc parsing.
3207
3208 2004-05-09  David Fritz  <zeroxdf@att.net>
3209
3210         * mswindows.c (fake_fork): Pass entire command line to the child
3211         process.
3212
3213 2004-03-31  Hrvoje Niksic  <hniksic@xemacs.org>
3214
3215         * http.c (gethttp): Fix typo: SCHEME_SSL -> SCHEME_HTTPS.
3216
3217 2004-03-30  Hrvoje Niksic  <hniksic@xemacs.org>
3218
3219         * http.c (gethttp): Send the Proxy-Authorization header over
3220         non-SSL connections too.
3221
3222 2004-03-25  David Fritz  <zeroxdf@att.net>
3223
3224         * mswindows.c (fake_fork_child): Ignore error code when
3225         OpenFileMapping() fails; assume it failed because the object does
3226         not exist.
3227
3228 2004-03-24  David Fritz  <zeroxdf@att.net>
3229
3230         * mswindows.c (fake_fork): New function.
3231
3232         * mswindows.c (fork_to_background): Use it.
3233
3234 2004-03-19  David Fritz  <zeroxdf@att.net>
3235
3236         * mswindows.c (ws_hangup): Incorporate old fork_to_background()
3237         code.  Add event name argument.
3238         (fork_to_backgorund): Now a simple wrapper around ws_hangup().
3239         (ws_handler): Correctly handle the case when neither CTRLC_BACKGND
3240         nor CTRLBREAK_BACKGND are defined.  Don't bother handling close,
3241         logoff, or shutdown events.  Call ws_hangup() with the correct
3242         event name; don't assume it was CTRL+Break.
3243
3244 2004-03-19  Hrvoje Niksic  <hniksic@xemacs.org>
3245
3246         * url.c (url_parse): Decode %HH sequences in host name.
3247
3248 2004-03-04  Hrvoje Niksic  <hniksic@xemacs.org>
3249
3250         * convert.c (local_quote_string): Quote "#" as "%23" and "%" as
3251         "%25" when creating links to local files.
3252
3253 2004-03-02  David Fritz  <zeroxdf@att.net>
3254
3255         * mswindows.c (ws_percenttitle): Guard against future changes by
3256         doing nothing if the proper variables have not been initialized.
3257         Clamp percentage value.
3258
3259 2004-03-04  Gisle Vanem  <giva@bgnett.no>
3260
3261         * retr.c (fd_read_body): Don't change console title if quiet.
3262
3263 2004-02-25  David Fritz  <zeroxdf@att.net>
3264
3265         * mswindows.c (set_sleep_mode): Remove argument and return value.
3266         Call GetModuleHandle() instead of LoadLibrary()/FreeLibrary() for
3267         kernel32.dll.  Use typedef for function-pointer.  Don't cast
3268         l-value.  Don't use dereference operator when calling through
3269         function-pointer.
3270         (ws_startup): Update call to set_sleep_mode().
3271         (ws_cleanup): Remove call to set_sleep_mode().
3272
3273 2004-02-23  David Fritz  <zeroxdf@att.net>
3274
3275         * http.c (http_loop): Ditto.
3276
3277         * ftp.c (ftp_loop_internal): Update call to ws_changetitle().
3278
3279         * main.c (main): Don't bother calling ws_changetitle().
3280
3281         * mswindows.h (ws_changetitle): Update prototype.
3282
3283         * mswindows.c (ws_changetitle): Remove second argument.  Use
3284         xfree_null().
3285         (ws_percenttitle): Only update title when percentage has changed.
3286
3287 2004-02-23  David Fritz  <zeroxdf@att.net>
3288
3289         * mswindows.h: Ditto.
3290
3291         * mswindows.c: Misc. formatting/comment tweaks throughout.
3292
3293 2004-02-20  David Fritz  <zeroxdf@att.net>
3294
3295         * main.c (print_help): Remove call to ws_help().
3296
3297         * mswindows.c (ws_help): Remove.
3298
3299         * mswindows.h (ws_help): Remove.
3300
3301 2004-02-16  David Fritz  <zeroxdf@att.net>
3302
3303         * init.c (home_dir): Use aprintf() instead of xmalloc()/sprintf().
3304         Under Windows, if $HOME is not defined, use the directory that
3305         contains the Wget binary instead of hard-coded `C:\'.
3306         (wgetrc_file_name): Under Windows, look for $HOME/.wgetrc then, if
3307         not found, look for wget.ini in the directory of the Wget binary.
3308
3309         * mswindows.c (ws_mypath): Employ slightly more robust methodology.
3310         Strip trailing path separator.
3311
3312 2004-02-06  Hrvoje Niksic  <hniksic@xemacs.org>
3313
3314         * http.c (gethttp): Respect --ignore-length.
3315         (gethttp): Inhibit keep-alive if --ignore-length is specified.
3316
3317 2004-02-06  Hrvoje Niksic  <hniksic@xemacs.org>
3318
3319         * connect.c (sockaddr_set_data): Zero out
3320         sockaddr_in/sockaddr_in6.  Apparently BSD-derived stacks need this
3321         when binding a socket to local address.
3322
3323 2004-02-04  Hrvoje Niksic  <hniksic@xemacs.org>
3324
3325         * hash.c: Make the file compilable outside Wget source tree when
3326         -DSTANDALONE is used.
3327
3328 2004-01-29  Hrvoje Niksic  <hniksic@xemacs.org>
3329
3330         * utils.c (determine_screen_width): Return 0 if not running on
3331         Windows or on a TIOCGWINSZ-capable system.
3332
3333 2004-01-28  David Fritz  <zeroxdf@att.net>
3334
3335         * utils.c (determine_screen_width): Correctly determine console
3336         width under Windows.
3337
3338 2004-01-28  Christian Biere  <christianbiere@gmx.de>
3339
3340         * progress.c (bar_set_params): Fixed syntax error when HAVE_ISATTY
3341         was undefined.
3342
3343         * ftp.c (ftp_loop_internal): Allocate a larger buffer in case
3344         "try" gets translated to something large.  Ditto in http_loop in
3345         http.c.
3346
3347         * http.c (response_header_copy): Don't write to buf[BUFSIZE].
3348
3349         * ftp-opie.c (skey_response): Eliminate unnecessary string
3350         concatenation; just call gen_md5_update twice.
3351
3352 2004-01-25  Hrvoje Niksic  <hniksic@xemacs.org>
3353
3354         * utils.c (xsleep): Don't call usleep with values larger than
3355         1,000,000.
3356
3357 2003-12-16  Hrvoje Niksic  <hniksic@xemacs.org>
3358
3359         * http.c (gethttp): Fix generation of `Content-Length'.
3360
3361 2003-12-15  Gisle Vanem  <giva@bgnett.no>
3362
3363         * url.c (url_skip_credentials): Fixed return value; 'url' if no
3364         credentials.
3365
3366 2003-12-14  Hrvoje Niksic  <hniksic@xemacs.org>
3367
3368         * url.c (url_skip_credentials): Return a pointer directly.
3369
3370 2003-12-14  Hrvoje Niksic  <hniksic@xemacs.org>
3371
3372         * url.c (url_file_name): Ditto.
3373         (parse_errors): Ditto.
3374
3375         * retr.c (retr_rate): Ditto.
3376
3377         * progress.c (create_image): Ditto.
3378
3379         * netrc.c (parse_netrc): Ditto.
3380
3381         * main.c (struct cmdline_option): Ditto.
3382         (redirect_output_signal): Ditto.
3383
3384         * init.c (commands): Ditto.
3385
3386         * ftp-ls.c (ftp_index): Ditto.
3387
3388         * cookies.c (check_domain_match): Declare the pointer to a literal
3389         string as `const'.
3390
3391 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
3392
3393         * retr.c (fd_read_body): Pass total size to progress_create, not
3394         the remaining amount.
3395
3396 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
3397
3398         * retr.c (fd_read_body): Don't fiddle with "interactive timeout"
3399         if read timeout is unset.
3400
3401 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
3402
3403         * connect.c (bind_local): Don't set the IPV6_V6ONLY option on the
3404         socket.
3405
3406 2003-12-06  Hrvoje Niksic  <hniksic@xemacs.org>
3407
3408         * url.c (url_file_name): Respect the setting of
3409         opt.protocol_directories.
3410
3411         * main.c (main): Only check for ret=='?' when longindex is unset.
3412         (option_data): New option --protocol-directories.
3413
3414 2003-12-06  Hrvoje Niksic  <hniksic@xemacs.org>
3415
3416         * ftp.c (getftp): Ditto.
3417
3418         * http.c (gethttp): Correctly calculate bandwidth as total data
3419         read divided with download time.
3420
3421         * retr.c (fd_read_body): Separate the return values for data
3422         written and read.
3423
3424 2003-12-05  Hrvoje Niksic  <hniksic@xemacs.org>
3425
3426         * http.c (H_REDIRECTED): Respect the HTTP/1.1 "303 See Other"
3427         response code.
3428         Suggested by Dan Razzell.
3429
3430 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
3431
3432         * retr.c (fd_read_body): Report the amount of data *written* as
3433         amount_read.  This is not entirely logical, but that's what the
3434         callers expect, and it's not easy to change.
3435
3436         * ftp.c (ftp_loop_internal): Ditto.
3437
3438         * http.c (http_loop): Be smarter about assigning restval; if we're
3439         in the nth pass of a download, simply use the information we have
3440         about how much data has been retrieved as restval.
3441
3442         * ftp.c (getftp): Ditto for FTP "REST" command.
3443
3444         * http.c (gethttp): When the server doesn't respect range, skip
3445         the first RESTVAL bytes of the read body.  Never truncate the
3446         output file.
3447
3448         * retr.c (fd_read_body): Support skipping initial STARTPOS octets.
3449
3450 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
3451
3452         * http.c (skip_short_body): Renamed skip_body to skip_short_body;
3453         don't bother calling fd_read_body.
3454
3455 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
3456
3457         * retr.c (fd_read_body): Sanitize arguments and document them
3458         better.  Make sure the timer is created and updated only if
3459         necessary.  Updated callers.
3460
3461 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
3462
3463         * http.c (skip_body): New function.
3464         (gethttp): Use it to skip the body of the responses we don't care
3465         to download.  That allows us to reuse the connection.
3466         (gethttp): Trust that the HEAD requests will not generate body
3467         data.
3468
3469         * retr.c (fd_read_body): Don't write to OUT if it's NULL.
3470
3471 2003-11-29  Hrvoje Niksic  <hniksic@xemacs.org>
3472
3473         * http.c (gethttp): Initialize SSL only the first time when SSL
3474         URL is downloaded.
3475
3476 2003-11-29  Hrvoje Niksic  <hniksic@xemacs.org>
3477
3478         * cookies.c (cookie_header): Only generate the contents of the
3479         header, not the leading "Cookie: " or the trailing "\r\n".
3480
3481         * http.c (gethttp): When adding headers specified with `--header',
3482         allow them to override the headers generated by Wget.
3483
3484         * init.c (cmd_spec_header): Made opt.user_headers a vector.
3485
3486         * http.c (request_new): New function.  Returns a request structure
3487         which can be modified in various ways, most notably by adding HTTP
3488         headers to the request.
3489         (request_set_header): New function for adding the header to the
3490         request.  If the header is already available, it gets replaced.
3491         (request_send): Construct and send the request.
3492         (gethttp): Use the request_* functions to generate the request.
3493
3494 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
3495
3496         * http.c (gethttp): Don't include the Proxy-Authorization header
3497         in the request tunneled through proxy.
3498
3499 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
3500
3501         * http.c (gethttp): Use the CONNECT handle to establish SSL
3502         passthrough through non-SSL proxies.
3503
3504 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
3505
3506         * init.c: Don't #include netinet/Winsock stuff.
3507
3508 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
3509
3510         * http.c: Deleted the old functions header_process,
3511         header_extract_number, header_exists, header_strdup,
3512         http_process_range, http_process_none, http_process_type, and
3513         http_process_connection.
3514
3515         * http.c (response_new): New function.
3516         (response_header_bounds): Ditto.
3517         (response_header_copy): Ditto.
3518         (response_header_strdup): Ditto.
3519         (response_status): Ditto.
3520         (gethttp): Use the new response_* functions to parse the response.
3521         Support HTTP/0.9 responses.
3522
3523 2003-11-27  Hrvoje Niksic  <hniksic@xemacs.org>
3524
3525         * progress.c (create_image): Don't calculate ETA if nothing has
3526         been downloaded yet, because it causes division by zero.
3527
3528 2003-11-27  Hrvoje Niksic  <hniksic@xemacs.org>
3529
3530         * connect.c (bind_local): Rename sa_len to addrlen because IRIX
3531         headers define sa_len as a macro.
3532
3533 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
3534
3535         * html-parse.c (convert_and_copy): Remove embedded newlines when
3536         AP_TRIM_BLANKS is specified.
3537
3538 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
3539
3540         * ftp.c: Set con->csock to -1 where rbuf_uninitialize was
3541         previously used.
3542
3543 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
3544
3545         * Makefile.in (http$o): Added the trailing backslash that was
3546         missing.
3547
3548 2003-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
3549
3550         * headers.c: Removed.  The file is no longer relevant, now that no
3551         special handling of headers is done by the rbuf code.  Moved
3552         portions to http.c.
3553
3554 2003-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
3555
3556         * rbuf.c: Removed.
3557
3558         * ftp-basic.c (ftp_response): Use fd_read_line.  No longer use
3559         struct rbuf.  Updated all callers.
3560
3561         * http.c (gethttp): Use fd_read_head to read all the headers in
3562         one go.
3563         (next_header): New function.
3564
3565         * retr.c (fd_read_line): New function: reads a line from FD,
3566         leaving the rest of the data unread.
3567         (fd_read_head): New function.
3568
3569         * connect.c (fd_peek): New function, implements peeking.
3570         (poll_internal): New function.
3571         (fd_read): Use it.
3572         (fd_write): Ditto.
3573         (fd_peek): Ditto.
3574         (fd_register_transport): Allow registering a "peeker" callback.
3575
3576 2003-11-20  Hrvoje Niksic  <hniksic@xemacs.org>
3577
3578         * connect.c: Renamed xread/xwrite/xclose to
3579         fd_read/fd_write/fd_close.  The "x" prefix is not appropriate
3580         because the semantics have diverged from read/write/close too
3581         significantly.  Updated all callers.
3582
3583 2003-11-20  Hrvoje Niksic  <hniksic@xemacs.org>
3584
3585         * connect.c (sock_write): It's not necessary to initialize RES.
3586
3587 2003-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
3588
3589         * main.c (main): Don't reference opt.ipv4_only and opt.ipv6_only
3590         if IPv6 is disabled.
3591
3592 2003-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
3593
3594         * connect.c (socket_has_inet6): Only compile it if IPv6 is enabled
3595         and AI_ADDRCONFIG is missing.
3596
3597 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
3598
3599         * gen_sslfunc.c (ssl_init_prng): Warn the user when using a weak
3600         random seed.
3601
3602 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
3603
3604         * host.c (address_list_contains): Renamed address_list_find to
3605         address_list_contains because its result is boolean.
3606
3607 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
3608
3609         * connect.c (select_fd): Return 1 if select is not available.
3610
3611 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
3612
3613         * connect.c (connect_to_host): Don't reference address list after
3614         releasing it.
3615
3616 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
3617
3618         * main.c (print_help): Fix alignment of FTP options output.
3619
3620 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
3621
3622         * host.c (lookup_host): Check for the ability to create IPv6
3623         sockets here.
3624
3625         * init.c (defaults): Don't auto-set --inet4-only on IPv6-less
3626         systems.
3627
3628 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
3629
3630         * main.c (print_help): Fix typo in `-O' help message.  Fix docs of
3631         -Y/--proxy.  Fix docs of `--cookies' and `--glob'.  Improve docs
3632         of --convert-links.  Fix docs of SSL options.
3633
3634 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
3635
3636         * ftp-basic.c: Don't include <arpa/inet.h> and others because
3637         they're no longer needed.
3638
3639 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
3640
3641         * main.c (main): Don't allow setting of both opt.ipv4_only and
3642         opt.ipv6_only.
3643
3644         * init.c (defaults): Mark opt.ipv4_only specially when set
3645         automatically.
3646
3647 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
3648
3649         * host.c (lookup_host): Use AI_ADDRCONFIG only if the family is
3650         unspecified.  This ensures that specifying `--no-inet4' on systems
3651         where IPv6 resolves, but doesn't work behaves the same regardless
3652         of the availability of AI_ADDRCONFIG.
3653
3654 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
3655
3656         * host.c: Don't refer to the now-removed function
3657         forget_host_lookup in the documentation of lookup_host.
3658
3659 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
3660
3661         * http.c (persistent_available_p): Correctly specify the endpoint
3662         argument to socket_ip_address.
3663         (gethttp): When printing the "reusing connection to..." message,
3664         specify the host name of the reused connection, not the current
3665         host name.  That makes more sense because it provides a useful
3666         piece of information -- we know to which host we're supposed to
3667         connect anyway!
3668
3669 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
3670
3671         * init.c: Make sure the options are in alphabetic order!
3672
3673         * host.c (lookup_host): Merge lookup_host_passive and lookup_host
3674         after all -- having both would result in some code duplication.
3675         (lookup_host): Set hints.ai_family to AF_INET if ipv4_only is
3676         requested.  Likewise, set it to AF_INET6 for ipv6_only.  Specify
3677         AI_ADDRCONFIG where available.
3678         (lookup_host): New flag LH_REFRESH that specifies that a cached
3679         entry for HOST should be refreshed.
3680         (cache_query): New function.
3681         (cache_store): Ditto.
3682         (cache_remove): Ditto.
3683         (forget_host_lookup): No longer necessary, replaced with static
3684         function cache_remove.
3685
3686 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
3687
3688         * main.c: Enable -4 and -6 only if IPv6 is enabled.
3689
3690 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
3691
3692         * connect.c (register_transport): Renamed from register_extended.
3693         Explain the intended usage.
3694
3695 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
3696
3697         * url.c (uri_merge): Merging "foo" and "bar" should result in
3698         "bar", not in "foo/bar".
3699         (path_simplify): Don't remove empty path elements; don't
3700         special-case leading slash.
3701         (path_simplify): Don't swallow ".."'s at the beginning of string.
3702         E.g. simplify "foo/../../bar" as "../bar", not as "bar".
3703         (append_uri_pathel): Defang ".." path element upon encountering
3704         it.
3705
3706 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
3707
3708         * http.c (persistent_available_p): Don't attempt to talk to two
3709         different SSL sites over the same secure connection.
3710
3711 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
3712
3713         * http.c (gethttp): Ditto.
3714
3715         * ftp.c (getftp): Use retryable_socket_connect_error instead of
3716         CONNECT_ERROR.
3717
3718         * wget.h (CONNECT_ERROR): Removed.
3719
3720         * connect.c (retryable_socket_connect_error): New function instead
3721         of unsupported_socket_family_error.
3722
3723 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
3724
3725         * wget.h (CONNECT_ERROR): Use it.
3726
3727         * connect.c (unsupported_socket_family_error): New function.
3728
3729 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
3730
3731         * connect.c (bind_local): Renamed bindport to bind_local; return
3732         the socket directly.  Updated callers.
3733         (accept_connection): Renamed acceptport to accept_connection;
3734         return the created socket directly.  Updated callers.
3735
3736 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
3737
3738         * init.c (defaults): Turn on opt.ipv4_only if we're compiling with
3739         IPv6, and AI_ADDRINFO is not available, and AF_INET6 sockets can't
3740         be created.
3741
3742 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
3743
3744         * host.c (lookup_host): Document the fact that the addresses are
3745         returned in order.
3746
3747 2003-11-12  Hrvoje Niksic  <hniksic@xemacs.org>
3748
3749         * utils.c: Use limits.h only where available.
3750
3751         * hash.c: Use INVALID_PTR and INVALID_PTR_BYTE.  Include limits.h.
3752
3753 2003-11-11  Hrvoje Niksic  <hniksic@xemacs.org>
3754
3755         * main.c: Added options --inet4-only and --inet6-only.
3756
3757 2003-11-11  Hrvoje Niksic  <hniksic@xemacs.org>
3758
3759         * host.c (host_errstr): Use the more standard message "Unknown
3760         host".
3761
3762 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
3763
3764         * connect.c (connect_to_host): Use that flag to decide whether to
3765         re-resolve the host name.
3766
3767         * host.c (struct address_list): Added a flag that maintains
3768         whether the connection worked at some point.
3769
3770 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
3771
3772         * host.c (lookup_host): Special-case the numeric addresses only in
3773         the non-IPv6 case.
3774
3775 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
3776
3777         * connect.c (resolve_bind_address): Call lookup_host_passive.
3778         Make sure that opt.bind_address is resolved only once.
3779
3780         * host.c (lookup_host_passive): New function, handles "passive"
3781         lookups.
3782         (lookup_host): Remove the passive flags.  Remove the
3783         family-related flags -- use ip_default_family instead.
3784
3785 2003-11-09  Hrvoje Niksic  <hniksic@xemacs.org>
3786
3787         * html-url.c: Get URLs from <object data="...">.
3788
3789 2003-11-09  Hrvoje Niksic  <hniksic@xemacs.org>
3790
3791         * main.c (option_data): Specify the command to use for --mirror.
3792
3793 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
3794
3795         * cookies.c (cookie_handle_set_cookie): Specify exact match for
3796         unspecified domains.
3797
3798 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
3799
3800         * main.c (main): Removed one-letter options `-C', `-g', `-G', and
3801         `-s'.
3802
3803 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
3804
3805         * main.c (main): Add --dont-remove-listing for backward
3806         compatibility with previous versions.
3807         (print_help): Fix typo, spotted by Dennis Smit.
3808
3809 2003-11-08  Gisle Vanem  <giva@bgnett.no>
3810
3811         * ftp-basic.c: Support Windows-2000 ftp servers. Win-2000 *is*
3812         Win-NT 5.0 so calling it ST_WINNT is okay I guess.
3813
3814 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
3815
3816         * progress.c (update_speed_ring): Clear the speed ring when the
3817         download stalls.
3818
3819         * retr.c (get_contents): Specify 0.95s read timeout, so that the
3820         progress gauge can be updated even when data arrives very slowly
3821         or stalls.
3822
3823 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
3824
3825         * utils.c (wtimer_allocate): Bless the use of wtimer_read on a
3826         timer that has merely been allocated because get_contents() does
3827         that.
3828         (wtimer_update): Abort if the timer is not initialized.
3829
3830 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
3831
3832         * retr.c (get_contents): Pass the timer to limit_bandwidth().
3833
3834         * utils.c (wtimer_update): New function instead of wget_elapsed;
3835         just update the timer, but don't return anything.
3836         (wtimer_read): Read and return the last known value of the timer.
3837
3838 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
3839
3840         * http.c (persistent_available_p): Instead of matching all the
3841         addresses of HOST and last host, determine the peer's IP address
3842         with socket_ip_address and see if that address is one of those
3843         HOST resolves to.
3844
3845         * host.c (address_list_match_all): Removed.
3846         (address_list_find): New function, finds an IP address in the
3847         address list.
3848
3849         * ftp.c (ftp_do_pasv): Get the peer's address here, and pass it to
3850         ftp_epsv so it doesn't need to call getpeername.
3851
3852         * ftp-basic.c (ftp_port): Use socket_ip_address instead of
3853         getpeername.
3854         (ftp_lprt): Ditto.
3855
3856         * connect.c (socket_ip_address): Replaces conaddr, generalized to
3857         either get peer's or local address.
3858         (sockaddr_get_data): Made local to this file.
3859
3860 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
3861
3862         * hash.c (HASH_POSITION): Explicitly accept the hash function.
3863         (grow_hash_table): Extract ht->hash_function outside the loop.
3864         (hash_table_remove): Ditto.
3865         (hash_table_clear): Fill entries with 0xff to clear them.
3866         (hash_table_remove): Mark entries as deleted with the correct
3867         marker.
3868
3869 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
3870
3871         * http.c (persistent_available_p): No reason for the host lookup
3872         to be silent -- it's a lookup like any other.
3873
3874 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
3875
3876         * connect.c (register_extended): Check that fd >= 0.
3877
3878 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
3879
3880         * connect.c (LAZY_RETRIEVE_INFO): Set LAST_INFO.
3881
3882 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
3883
3884         * hash.c (NON_EMPTY): Use the all-bit-set value as the marker that
3885         the field is empty.  This allows NULL pointer and 0 value to be
3886         used as keys, which is necessary for the connect.c code to work
3887         when fd==0.
3888         (hash_table_new): Fill mappings with 0xff.
3889         (grow_hash_table): Ditto.
3890
3891 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
3892
3893         * url.c (url_parse): Allow empty ports.
3894
3895 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
3896
3897         * main.c (print_help): Break the help string into multiple chunks.
3898         (cmdline_option): New option handler OPT_FUNCALL.  Generalized
3899         HANDLE_CMD to generic DATA.
3900         (option_data): Use the new OPT_FUNCALL feature.
3901
3902 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
3903
3904         * log.h: Declare log_init, log_close, and
3905         log_request_redirect_output here.
3906
3907 2003-11-05  Dennis Smit  <ds@nerds-incorporated.org>
3908
3909         * main.c: (main): added --preserve-permissions option.
3910
3911         * ftp.c (ftp_retrieve_list): added support for
3912         --preserve-permissions option.
3913
3914         * init.c: added support for --preserve-permission option.
3915
3916         * option.h: added support for --preserve-permission option.
3917
3918 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
3919
3920         * main.c (init_switches): New function.  Convert option_data to
3921         long_options and short_options, which can be fed to getopt_long.
3922         (main): Execute command-line options by consulting option_data.
3923
3924 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
3925
3926         * gen_sslfunc.c (ssl_read): Implement a more correct check for
3927         EINTR.
3928         (ssl_write): Ditto.
3929         (init_ssl): Use a global SSL context.
3930
3931 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
3932
3933         * connect.c (xclose): Free INFO even if it doesn't provide a
3934         closer.
3935
3936 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
3937
3938         * connect.c: Updated all callers of
3939         iread/ssl_iread/iwrite/ssl_iwrite to use xread and xwrite instead.
3940
3941         * rbuf.h (struct rbuf): Removed the SSL member because SSL is
3942         handled automatically by xread.
3943
3944         * hash.c (ptrhash): Made private.
3945         (ptrcmp): Ditto.
3946         (inthash): Removed.
3947
3948         * connect.c (select_fd): Don't set errno, leave it to the caller.
3949
3950         * gen_sslfunc.c (connect_ssl): Use register_extended to register
3951         SSL callbacks for communication with SSL-enabled endpoints.
3952         (ssl_read): New function.
3953         (ssl_write): Ditto.
3954         (ssl_poll): Ditto.
3955         (ssl_close): Ditto.
3956
3957         * connect.c (register_extended): New function -- register
3958         callbacks for basic socket operations.
3959         (xread): Ditto.
3960         (xwrite): Ditto.
3961         (xclose): Ditto.
3962         (sock_read): New function, default implementation for reading.
3963         (sock_write): Ditto for writing.
3964         (sock_poll): Ditto for polling.
3965         (sock_close): Ditto for closing.
3966
3967 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
3968
3969         * connect.c (bindport): Fix compilation under pre-C99 compilers.
3970
3971 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
3972
3973         * connect.c (connect_to_ip): More compact error checking.
3974         (bindport): Don't treat failed setsockopt as a fatal error.
3975
3976 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
3977
3978         * connect.c (resolve_bind_address): Use a more accurate error
3979         message -- we're not binding to ANY, we're disabling bind
3980         altogether.
3981
3982 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
3983
3984         * cookies.c (save_cookies_mapper): Respect the setting of
3985         keep-session-cookies.
3986         (cookie_jar_load): Import session cookies.
3987         Based on code submitted by Nicolas Schodet.
3988
3989         * utils.c (datetime_str): Use information in TM when it's
3990         non-NULL.
3991
3992         * main.c (main): New option `--keep-session-cookies'.
3993
3994 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
3995
3996         * Makefile.in (realclean): Delete config.h.in.
3997
3998 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
3999
4000         * config-post.h: New file, included from now autogenerated
4001         config.h.in.
4002
4003 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
4004
4005         * progress.c (progress_handle_sigwinch): Don't call
4006         determine_screen_width() from the signal handler.  Instead, just
4007         set a volatile variable.
4008         (bar_create): Check whether SIGWINCH was received.
4009         (bar_update): Ditto.
4010
4011         * sysdep.h: Define SYSTEM_FNMATCH only if HAVE_FNMATCH_H is true.
4012
4013 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4014
4015         * utils.c (xsleep): New function.  Uses nanosleep where available,
4016         resuming sleeps interrupted by signals.  Updated callers of sleep
4017         and usleep to use xsleep.
4018
4019 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4020
4021         * ftp-basic.c (ftp_login): Remove shadowing (and bogus)
4022         declaration of SEED.
4023
4024 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4025
4026         * log.c (logvprintf): Documented better.  Renamed to
4027         log_vprintf_internal to avoid confusion with the public API
4028         functions logprintf and logputs.
4029
4030 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4031
4032         * wget.h (N_): Don't parenthesize argument.
4033
4034 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4035
4036         * host.h (ADDRESS_IPV4_DATA): Don't take the address of in.s_addr
4037         because that doesn't work on machines that define it as bitfield.
4038
4039 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4040
4041         * connect.c (select_fd): Generalize the third argument into WAIT,
4042         so that the caller can request waiting for both read and write.
4043         Updated callers.
4044
4045 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
4046
4047         * html-url.c (cleanup_html_url): Destroy the hash tables, don't
4048         just call free on them.
4049         (init_interesting): Use hash_table_put instead of string_set_add
4050         because we don't need the strdup that the latter function
4051         performs.
4052
4053         * init.c (cleanup): Don't pass NULL to cookie_jar_delete.
4054
4055         * xmalloc.c (xfree_real): Abort when passed a NULL pointer.
4056         (xfree_debug): Print at the file and line of the offending call to
4057         free.
4058
4059 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
4060
4061         * wget.h: Retired the `boolean' type.  Moved the DEFAULT_LOGFILE
4062         define to log.h.  Moved the INFINITE_RECURSION define to recur.h.
4063
4064         * xmalloc.h: Renamed FREE_MAYBE to xfree_null and moved the
4065         definition from wget.h to xmalloc.h.
4066
4067 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
4068
4069         * html-parse.c (decode_entity): New function; split the decoding
4070         of entities here.
4071         (convert_and_copy): Use it to decode entities.
4072         (decode_entity): Handle the &apos entity.
4073         (decode_entity): Don't decode Latin 1 numeric entities.  Don't
4074         decode &#0.
4075
4076 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
4077
4078         * ftp-opie.c (calculate_skey_response): Use uint32_t instead of
4079         `unsigned long' for the cheksum array.  Document the function.
4080
4081 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
4082
4083         * connect.c (acceptport): Don't call select_fd when timeout is not
4084         requested.
4085
4086 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
4087
4088         * host.c: Removed the ip_default_family global variable.
4089
4090         * host.c (lookup_host): Document the function.  Fixed declaration
4091         of VEC.
4092
4093 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
4094
4095         * various: Use new macros xnew, xnew0, xnew_array, and xnew0_array
4096         in various places.
4097
4098 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
4099
4100         * wget.h: Move declarations of malloc and logging code to
4101         xmalloc.h and log.h respectively to unclutter this file.
4102         (STRDUP_ALLOCA): Made it side-effect free.
4103
4104         * xmalloc.h: New files.  Define macros xnew, xnew0, xnew_array,
4105         and xnew0_array.
4106
4107         * xmalloc.c: New file.  Move the xmalloc routines here.
4108
4109 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
4110
4111         * connect.c (sockaddr_set_data): Remove the broken code that
4112         checked for NULL address.
4113
4114 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
4115
4116         * host.c (address_list_from_single): Removed.
4117         (address_list_from_ipv4_addresses): Renamed from
4118         address_list_from_vector.
4119
4120 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
4121
4122         * sysdep.h (CLOSE): Don't call close on file descriptors less than
4123         0, i.e. on uncreated sockets.
4124
4125         * connect.c (resolve_bind_address): Work on struct sockaddr
4126         directly.
4127         (connect_to_host): Replacement for connect_to_many.  Resolve HOST
4128         and connect to any of its addresses.  If we can't connect and the
4129         host name lookup was cached, try to resolve it again.  This should
4130         fix problems with hosts behind dynamic DNS.  Updated all callers.
4131         (connect_to_ip): Replacement for connect_to_one.  Removed SILENT;
4132         added the argument PRINT instead.  Updated all callers.
4133         (set_connection_host_name): Removed.
4134
4135         * host.c (address_list_address_at): New function instead of
4136         address_list_copy_one. It returns a pointer to ip_address *, so
4137         it's not necessary to copy the data.
4138         (address_list_cached_p): New function.
4139         (forget_host_lookup): Ditto.
4140
4141         * connect.c: Got rid of the MSOCK global variable.  Made bindport
4142         return the local socket it creates.  Added a new argument to
4143         acceptport, the socket to call accept on.  Updated callers.
4144         (closeport): Removed.
4145
4146         * connect.c: Moved the sockaddr code from host.c to this file,
4147         because most of that stuff is used for connecting, and has nothing
4148         to do with host names anyway.
4149         (sockaddr_set_data, sockaddr_get_data): New functions, replace the
4150         old sockaddr_set_address, sockaddr_set_port, sockaddr_get_address,
4151         and sockaddr_get_port.
4152
4153 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
4154
4155         * sysdep.h: Use `S >= 8' rather than `S == 8' when looking for
4156         large integers.
4157
4158 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
4159
4160         * url.c (append_uri_pathel): New argument ESCAPED_P that says
4161         whether [B, E) is to be treated as URL-escaped or not.  If
4162         ESCAPED_P is false, don't unescape the region.
4163         (url_file_name): u->file is not URL-escaped.
4164
4165 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
4166
4167         * retr.c (retrieve_from_file): Use retrieve_tree for
4168         page-requisites.
4169
4170         * main.c (main): Don't define opt.recursive when -p is used.
4171         Instead, make sure that recursion is used for HTTP in that case.
4172
4173 2003-10-29  Hrvoje Niksic  <hniksic@xemacs.org>
4174
4175         * host.h: Defined accessors for elements of ip_address.  Updated
4176         all callers.
4177         (address_list_match_all): Use memcmp in the non-IPv6 case.
4178
4179         * wget.h (CONNECT_ERROR): Don't retry connecting if connect()
4180         returned EAFNOSUPPORT.
4181
4182 2003-10-27  Mauro Tortonesi <mauro@deepspace6.net>
4183
4184         * connect.h: changed bindport prototype and added the related
4185         BIND_ON_IPV4_ONLY and BIND_ON_IPV6_ONLY flags.
4186
4187         * connect.c: changed bindport and resolve_bind_address to allow
4188         protocol-version specific DNS resolution. modified conaddr,
4189         acceptport and connect_to_one to make use of struct
4190         sockaddr_storage and of the new ip_address structure.
4191
4192         * ftp-basic.c: added LPRT/LPSV (RFC1639) support, refactored
4193         PORT/PASV (RFC959) and EPRT/EPSV (RFC2428) support code.
4194
4195         * ftp.c: added the ftp_do_port and ftp_do_pasv functions to
4196         handle FTP over IPv6.
4197
4198         * ftp.h: changed prototype of ftp_epsv and added prototypes for
4199         ftp_lpsv, ftp_lprt and ftp_eprt.
4200
4201         * host.c: renamed the
4202         wget_sockaddr_set_address and wget_sockaddr_get_addr, and
4203         wget_sockaddr_{s,g}et_port couples to sockaddr_{s,g}et_address and
4204         sockaddr_{g,s}et_port respectively.  changed
4205         address_list_match_all, address_list_from_addrinfo sockaddr_len,
4206         pretty_print_address, lookup_host, sockaddr_{s,g}et_address and
4207         sockaddr_{g,s}et_port to make use of struct sockaddr_storage and
4208         of the new ip_address structure.  removed map_ipv4_to_ip and
4209         map_ip_to_ipv4.
4210
4211         * host.h: redefined structure ip_address and removed structure
4212         wget_sockaddr.
4213
4214 2003-10-26  Hrvoje Niksic  <hniksic@xemacs.org>
4215
4216         * sysdep.h: Include inttypes.h where available.
4217
4218         * host.c: Switch from u_int32_t to uint32_t.
4219
4220 2003-10-26  Hrvoje Niksic  <hniksic@xemacs.org>
4221
4222         * netrc.c (parse_netrc): Reset the QUOTE flag after the closing
4223         quote.
4224
4225 2003-10-25  Hrvoje Niksic  <hniksic@xemacs.org>
4226
4227         * url.c (is_valid_ipv6_address): Reformat to GNU coding style.
4228         Use enums for NS_IN* constants.  Use ISXDIGIT.
4229
4230         * convert.c (construct_relative): Document better how the function
4231         works.
4232
4233 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
4234
4235         * config.h.in: Deploy preprocessor magic to avoid Ultrix's
4236         <netdb.h> include <bitypes.h> which defines its own u_int32_t.
4237         Reported by Bernhard Simon.
4238
4239 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
4240
4241         * version.c: Bump version.
4242
4243 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
4244
4245         * url.c: Ditto.
4246
4247         * html-parse.c (advance_declaration): Don't use trailing comma in
4248         enum because older compilers don't support it.
4249
4250         * utils.c: Don't redefine HAVE_SIGSETJMP.
4251
4252 2003-10-16  Hrvoje Niksic  <hniksic@xemacs.org>
4253
4254         * convert.c (construct_relative): Don't handle absolute files
4255         specially -- for example, -P/tmp/foo shouldn't imply that
4256         converted files must refer to "/tmp/foo/..."!
4257
4258 2003-10-15  Hrvoje Niksic  <hniksic@xemacs.org>
4259
4260         * http.c: Consider status 307 a valid redirect.
4261
4262 2003-10-15  Philip Stadermann  <philip.stadermann@credativ.de>
4263
4264         * ftp.c (ftp_retrieve_glob): Correctly loop through the list whose
4265         elements might have been deleted.
4266
4267 2003-10-13  Hrvoje Niksic  <hniksic@xemacs.org>
4268
4269         * html-url.c (tag_handle_meta): Set the Refresh link to expect
4270         HTML.
4271         (append_one_url): Renamed to append_url.
4272
4273 2003-10-13  Hrvoje Niksic  <hniksic@xemacs.org>
4274
4275         * sysdep.h: Only define u_int32_t.
4276
4277 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
4278
4279         * utils.c (large_int_to_string): Use snprintf() to print the
4280         number.  This will work even on systems where libc doesn't
4281         understand %lld, but the compiler does, because it will use our
4282         snprintf replacement.
4283
4284         * init.c (parse_bytes_helper): New function.
4285         (cmd_bytes): Use it to parse bytes, but cast the result to long.
4286         (cmd_bytes_large): Ditto, but store the result to LARGE_INT.  Used
4287         for --quota so that --quota=10G works even on machines without
4288         long long.
4289
4290         * options.h (struct options): Declare quota as LARGE_INT.
4291
4292         * retr.c (downloaded_exceeds_quota): Removed.
4293         (downloaded_increase): Ditto.
4294         (total_downloaded_bytes): New variable, replaces opt.downloaded,
4295         which was the wrong place for it anyway.  Updated callers of
4296         downloaded_exceeds_quota and downloaded_increase to check this
4297         variable directly.
4298
4299         * sysdep.h: Get rid of VERY_LONG_TYPE.  Use LARGE_INT for the same
4300         purpose, defined as `long', `long long' or `double', depending on
4301         size of long and whether long long is available.
4302
4303 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
4304
4305         * sysdep.h: Also check size of short for int32_t.
4306
4307 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
4308
4309         * host.c (lookup_host): Use u_int32_t to store the result of
4310         inet_addr().  That removes the need for offset fiddling, caring
4311         about endian-ness, etc.
4312
4313         * sysdep.h: Define int32_t and u_int32_t if not available.
4314
4315 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
4316
4317         * ftp-basic.c (ftp_epsv): Use socklen_t * as the third argument to
4318         getpeername.
4319
4320         * config.h.in: Define socklen_t stub.
4321
4322         * host.c (sockaddr_len): Return socklen_t.
4323
4324         * connect.c (conaddr): Use socklen_t as the third argument to
4325         accept, getsockname, and connect.
4326
4327 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
4328
4329         * recur.c (retrieve_tree): Don't descend into documents that are
4330         not expected to contain HTML, regardless of their content-type.
4331
4332         * html-url.c (tag_url_attributes): Record which attributes are
4333         supposed to yield HTML links that can be followed.
4334         (tag_find_urls): Propagate that information to the caller through
4335         struct urlpos.
4336
4337 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
4338
4339         * hash.c (find_mapping): Return the next available mapping when
4340         the key is not found, not NULL.
4341         (hash_table_put): Use find_mapping to find the storage for the new
4342         data.
4343         (hash_table_put): Grow the table before exceeding maximum
4344         fullness, not afterwards.
4345
4346 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
4347
4348         * hash.c (hash_table_new): Slightly change the meaning of the
4349         first parameter.  Instead of being the minimum initial size, it is
4350         now the minimum number of items that the hash table can take
4351         without needing to resize.
4352
4353 2003-10-09  Hrvoje Niksic  <hniksic@xemacs.org>
4354
4355         * html-url.c (init_interesting): Initialize interesting_tags and
4356         interesting_attributes as hash tables.  This simplifies the code
4357         immensely because hash tables handle allocation and remove
4358         duplicates automatically.
4359         (find_tag): Removed.
4360         (collect_tags_mapper): Instead of calling find_tag, simply get the
4361         entry from interesting_tags hash table, which is both simpler and
4362         faster.
4363
4364 2003-10-09  Hrvoje Niksic  <hniksic@xemacs.org>
4365
4366         * hash.c (hash_table_get): Declare hash-table argument as const.
4367         (find_mapping): Ditto.
4368         (hash_table_get_pair): Ditto.
4369         (hash_table_contains): Ditto.
4370         (hash_table_count): Ditto.
4371
4372 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
4373
4374         * html-url.c (get_urls_html): Parse the appropriate flags to
4375         html-parse.c.
4376
4377         * html-parse.c (map_html_tags): Accept FLAGS from the caller
4378         instead of examining OPT.
4379
4380 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
4381
4382         * html-url.c (find_tag): Switch to binary search.
4383
4384 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
4385
4386         * main.c (print_help): Fix typo; stured -> stored.
4387
4388 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
4389
4390         * getopt.c: Add definitions of getopt_long and getopt_long_only.
4391
4392 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
4393
4394         * config.h.in: Renamed DEBUG to ENABLE_DEBUG.  ENABLE_DEBUG is, I
4395         think, a better name, because it implies that debugging output is
4396         merely possible, not "on by default", as might be construed from
4397         just DEBUG.
4398
4399 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
4400
4401         * ftp.c (has_insecure_name_p): Define it here.
4402
4403         * utils.c (has_wildcards_p): Define it here.
4404
4405         * sysdep.h: Declare fnmatch-related macros here, if not using
4406         system fnmatch().  Update .c files to not declare fnmatch.h
4407         directly.
4408
4409         * cmpt.c (fnmatch): Moved here.  Use it only under non-GNU libc.
4410
4411 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
4412
4413         * getopt.c: Newer version, imported from Free libit.
4414
4415 2003-10-07  Hrvoje Niksic  <hniksic@xemacs.org>
4416
4417         * cookies.c (struct cookie): Remove unused backpointer to cookie
4418         jar.
4419
4420 2003-10-07  Hrvoje Niksic  <hniksic@xemacs.org>
4421
4422         * cmpt.c (memmove): Comment out, since it's no longer used.
4423
4424         * cookies.c (cookie_jar_generate_cookie_header): Allocate room for
4425         chains in one pass.
4426         (find_chains_of_host): Assume that the caller has allocated DEST
4427         to be sufficiently large to take all the data.
4428         (eliminate_dups): Run through the array and eliminate dups on the
4429         fly instead of using memmove.
4430         (cookie_jar_process_set_cookie): Free cookie->domain before
4431         re-setting it.
4432
4433 2003-10-05  Gisle Vanem  <giva@bgnett.no>
4434
4435         * mswindows.c (set_sleep_mode): Fix type of
4436         _SetThreadExecutionState.
4437
4438 2003-10-05  Hrvoje Niksic  <hniksic@xemacs.org>
4439
4440         * utils.c (file_size): Return -1 if fopen() returns NULL.  Prior
4441         to this patch, wget --post-file=nosuchfile dumped core.
4442
4443 2003-10-04  Gisle Vanem  <giva@bgnett.no>
4444
4445         * mswindows.c (run_with_timeout): Use WaitForSingleObject to wait
4446         for thread termination.
4447
4448 2003-10-04  Hrvoje Niksic  <hniksic@xemacs.org>
4449
4450         * log.c: Use `...' in function definitions; ansi2knr will convert
4451         them to va_dcl.  This allowed removal of the ugly VA_START_1 and
4452         VA_START_2 macros.
4453
4454 2003-10-03  Gisle Vanem  <giva@bgnett.no>
4455
4456         * connect.c: And don't include them here.
4457
4458         * mswindows.h: Include winsock headers here.
4459
4460 2003-10-03  Hrvoje Niksic  <hniksic@xemacs.org>
4461
4462         * html-parse.c (convert_and_copy): Move variable declarations
4463         before statements.
4464
4465 2003-10-02  Gisle Vanem  <giva@bgnett.no>
4466         
4467         * mswindows.c (run_with_timeout): For Windows: Run the 'fun' in a
4468         thread via a helper function. Continually query the thread's
4469         exit-code until finished or timed out.
4470
4471 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
4472
4473         * wget.h (XMALLOC_ARRAY): Removed.
4474         (ALLOCA_ARRAY): Ditto.
4475
4476         * html-parse.c: Renamed alloca_p to resized.
4477         (GROW_ARRAY): Renamed DO_REALLOC_FROM_ALLOCA to GROW_ARRAY and
4478         returned it to html-parse.c, since nothing else was using it.
4479
4480 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
4481
4482         * retr.c (retrieve_url): Initialize DUMMY storage for DT.  Caught
4483         by valgrind.
4484
4485 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
4486
4487         * html-parse.c (convert_and_copy): Handle numeric entities in
4488         hexadecimal, &#xHH.
4489         (convert_and_copy): Copy the contents directly to the pool without
4490         a stack-allocated intermediary.
4491
4492 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
4493
4494         * utils.c (alarm_set): New function; use either setitimer or alarm
4495         to set up the alarm.
4496         (alarm_cancel): New function; cancel the alarm set up by
4497         alarm_set.
4498         (run_with_timeout): Use them.
4499
4500 2003-10-01  Hrvoje Niksic  <hniksic@xemacs.org>
4501
4502         * url.c (url_parse): Don't leak memory when a reencoded URL turns
4503         out to be invalid.
4504
4505         * url.c (parse_errors): Mark error messages for translation.
4506         (url_error): Translate error messages returned to the caller.
4507
4508 2003-10-01  Hrvoje Niksic  <hniksic@xemacs.org>
4509
4510         * ftp.c (ftp_loop_internal): Initialize TMRATE to NULL to shut up
4511         the compiler.
4512
4513 2003-09-26  Gisle Vanem  <giva@bgnett.no>
4514
4515         * src/mswindows.c: Added ws_percenttitle() showing progress in the
4516         window titlebar. Called from retr.c. Secured ws_mypath().
4517
4518         * windows/config.h.ms: alloca() prototype not needed.  Removed
4519         "#undef ENABLE_NLS"; should be in Makefile IMHO. Moved
4520         WGET_USE_STDARG from mswindows.h to config.ms.h because of #ifdef
4521         in log.c. (MSVC's vararg.h and stdarg.h are incompatible).
4522
4523 2003-09-29  Aaron Hawley <Aaron.Hawley@uvm.edu>
4524
4525         * ftp.c (getftp): --spider option should now work with FTP
4526         downloads.
4527         (ftp_loop_internal): quiet reports and calculations of downloads
4528         when --spider option set, nor try deleting when --delete-after
4529         also set.
4530         (ftp_loop): --spider will skip HTML-ification of .listing file.
4531
4532 2003-09-26  Gisle Vanem  <giva@bgnett.no>
4533
4534         * mswindows.c (read_registry): Removed.
4535         (set_sleep_mode): New function.
4536         (windows_main_junk): Call it.
4537
4538 2003-09-26  Gisle Vanem  <giva@bgnett.no>
4539
4540         * mswindows.c (read_registry): Fix invocation of registry
4541         functions.
4542
4543         * mswindows.c (read_registry): Condition definitions of sleep and
4544         usleep with not HAVE_SLEEP and HAVE_USLEEP respectively.  Define
4545         HAVE_SLEEP and HAVE_USLEEP under __DMC__.
4546
4547 2003-09-24  Hrvoje Niksic  <hniksic@xemacs.org>
4548
4549         * url.c (url_escape_1): Revert unintentional change to lowercase
4550         xdigit escapes.
4551         (url_escape_dir): Document that this function depends on the
4552         output of url_escape_1.
4553
4554 2003-09-23  Hrvoje Niksic  <hniksic@xemacs.org>
4555
4556         * progress.c (create_image): Print the current ETA if we're done
4557         with the download.
4558         (create_image): Change '-' display char to '+' in the progress bar.
4559
4560         * Makefile.in (clean): Remove .libs.
4561
4562 2003-09-23  Hrvoje Niksic  <hniksic@xemacs.org>
4563
4564         * cookies.c (struct cookie): New flag domain_exact.
4565         (update_cookie_field): Skip leading dot in domain.
4566         (find_matching_chains): Match numeric addresses exactly; don't
4567         needlessly copy HOST to the stack.
4568         (matching_cookie): Added argument HOST.  If cookie->domain_exact
4569         is set, check that HOST is equal to cookie->domain.
4570         (cookie_jar_load): Only use TAB as delimiter.  Document the
4571         meaning of DOMAIN-FLAG.  Skip leading dot in domain.
4572         (cookie_jar_load): Don't ignore DOMAIN-FLAG -- instead, set
4573         domain_exact to true if DOMAIN-FLAG is false.
4574         (save_cookies_mapper): If domain_exact is false, prepend the
4575         domain with dot, like Mozilla does.
4576
4577 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
4578
4579         * progress.c (create_image): Print the initial part of the
4580         download with '-' characters, analogous to how dot progress prints
4581         the initial part with ','.
4582
4583         * hash.c (ptrhash): New function.
4584         (ptrcmp): Ditto.
4585         (hash_table_new): Default to identity hash table.
4586
4587 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
4588
4589         * safe-ctype.h (_sch_test): The cast of BIT to unsigned char was
4590         broken -- _sch_istable bitmasks are 16-bit, not 8-bit!  Cast BIT
4591         to unsigned short instead.
4592
4593 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
4594
4595         * url.c (path_simplify): Instead of calls to memmove, handle "./"
4596         and "../" by advancing pointers.
4597
4598 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
4599
4600         * retr.c (getproxy): Moved from url.c.
4601
4602         * convert.c: Split off link conversion from url.c into separate
4603         file.  Also included the book-keeping stuff from recur.c.
4604
4605 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
4606
4607         * init.c: Improved documentation of functions.
4608         (cmd_boolean): Attempt to make code that tries to avoid calling
4609         strcmp for "speed" a bit more readable.
4610
4611         * init.c (simple_atof): Report error on encountering non-digit,
4612         non-"." character.
4613         (simple_atoi): Replacement for myatoi(), calling interface
4614         compatible with simple_atof.  Updated myatoi's callers.
4615
4616 2003-09-21  Bertrand Demiddelaer  <bert@b3rt.org>
4617
4618         * url.c (path_simplify): Would read two bytes past the end of the
4619         string in the "./" case.
4620
4621 2003-09-21  Matthew J. Mellon  <mellon@tymenet.com>
4622
4623         * http.c (gethttp): Recognize content-type "application/xhtml+xml"
4624         as what Wget considers "text/html".
4625
4626 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
4627
4628         * connect.c (connect_with_timeout): Made timeout type double.
4629
4630         * options.h (struct options): New members read_timeout,
4631         dns_timeout, and connect_timeout.
4632         Use them.
4633
4634 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
4635
4636         * init.c (simple_atof): New function.
4637         (cmd_time): Use it.
4638         (cmd_bytes): Accept things like "1.5k" and such.  Use simple_atof
4639         to parse decimals.
4640
4641         * retr.c (limit_bandwidth): Adjust each sleep by the error of the
4642         previous one.
4643
4644 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
4645
4646         * main.c (main): Use setoptval() for setting the options.  Use
4647         run_command for `-e'.
4648
4649         * init.c (parse_line): Rewritten to return COMIND right away.
4650         Changed linkage to static.
4651         (run_wgetrc): Use the available comind when calling setval, so it
4652         doesn't have to be computed twice.
4653         (setval_internal): New function, runs the command's action without
4654         any error checking.
4655         (setoptval): New function, does what setval used to do, but exits
4656         in case of error.
4657         (run_command): New function.
4658
4659 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
4660
4661         * connect.c (select_fd): Change MAXTIME's type to double.  Handle
4662         its decimal part.
4663
4664         * retr.c (sleep_between_retrievals): In the random-wait case, use
4665         random_float() to wait between 0 and 2*opt.wait seconds.
4666
4667         * utils.c (run_with_timeout): Accept `double' timeouts.  Correctly
4668         handle timeout values in (0, 1) range.
4669         (random_float): New function.
4670
4671         * options.h (struct options): Change the types of wait, waitretry,
4672         and timeout to double.
4673
4674         * init.c (cmd_time): Accept floating point time.
4675
4676 2003-09-20  Hrvoje Niksic  <hniksic@xemacs.org>
4677
4678         * retr.c (get_contents): Cosmetic fixes.
4679
4680 2003-09-20  Hrvoje Niksic  <hniksic@xemacs.org>
4681
4682         * url.c (uri_merge): Get rid of uri_merge_1.
4683         (uri_merge): Merge "foo//", "bar" as "foo//bar", not "foo///bar",
4684         i.e. don't add an extra slash merely because BASE ends with two
4685         slashes.
4686         (parse_credentials): Renamed from parse_uname.  Rewrittern in
4687         standard [beg, end) calling style.
4688         (url_skip_credentials): Renamed from url_skip_uname.  Made static.
4689         (url_skip_credentials): Include # and ; as terminators.  Old code
4690         would mistakenly consider "http://foo.com#hniksic@iskon.hr" to
4691         contain a username.
4692         (url_skip_scheme): Removed because it was unused.
4693         (url_has_scheme): Require "scheme" to be at least one char long.
4694
4695 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
4696
4697         * url.c (url_file_name): Expect NULL dir_prefix.
4698
4699         * init.c (cmd_file): Use a macro to prevent multiple #ifdef
4700         WINDOWS.
4701         (defaults): Set dir_prefix to NULL by default.
4702
4703 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
4704
4705         * safe-ctype.h (_sch_test): Cast BIT to unsigned char, like latest
4706         gcc does.
4707
4708 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
4709
4710         * wget.h (BOUNDED_TO_ALLOCA): Evaluate PLACE only once.
4711         (ARRAY_SIZE): Renamed to countof.  All callers updated.
4712
4713 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
4714
4715         * main.c (main): New option --strict-comments.
4716
4717         * html-parse.c (find_comment_end): New function: simple BM search
4718         for "-->".
4719         (map_html_tags): Use it if looking at a comment and not in strict
4720         comments mode.
4721
4722 2003-09-17  Aurelien Marchand  <artaxerxes@users.sf.net>
4723
4724         * ftp.h: Added OS400 system in enum
4725         * ftp-basic.c: recognize OS400 systems
4726         * ftp.c: don't prepend the CWD if talking to OS400, since it
4727         breaks the change in library
4728
4729 2003-09-18  Hrvoje Niksic  <hniksic@xemacs.org>
4730
4731         * retr.c (get_contents): Pass the correct argument to ssl_iread.
4732
4733 2003-09-18  Hrvoje Niksic  <hniksic@xemacs.org>
4734
4735         * safe-ctype.h: Don't #define ctype.h macros to errors because
4736         that loses when someone #include's ctype.h after safe-ctype.h.
4737
4738 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
4739
4740         * url.c: Undef U, W, C after use.
4741
4742 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
4743
4744         * init.c (cmd_spec_restrict_file_names): Allow the OS setting to
4745         be augmented by ",nocontrol" which means don't escape the control
4746         characters, but otherwise keep OS settings.
4747
4748         * url.c (file_unsafe_char): Deleted.
4749         (append_uri_pathel): Query filechr_table directly.
4750         (filechr_table): Separated Unix, Windows, and control-unsafe
4751         characters.
4752
4753 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
4754
4755         * url.c (url_escape_1): New function.
4756         (url_escape): Use it.
4757         (sync_path): Handle pathological cases where u->file and u->dir
4758         contain really strange characters.
4759         (ENCODE): Deleted.
4760         (REENCODE): Deleted.
4761
4762 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
4763
4764         * url.c (url_file_name): Don't reallocate FNAME if the file
4765         doesn't exist, as is usually the case.
4766
4767         * utils.c (unique_name): New flag allow_passthrough.
4768
4769 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
4770
4771         * utils.c (wtimer_sys_diff): Convert the time difference to signed
4772         __int64, then to double.  This works around MS VC++ 6 which can't
4773         convert unsigned __int64 to double directly.
4774
4775 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
4776
4777         * Makefile.in (clean): Also remove the core.<number> files
4778         produced by recent Linux systems.
4779
4780 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
4781
4782         * http.c (post_file): Don't pad the file if it's not large
4783         enough.  Bail out instead.
4784
4785 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
4786
4787         * retr.c (get_contents): Reduce the buffer size to the amount of
4788         data that may pass through for one second.  This prevents long
4789         sleeps when limiting bandwidth.
4790
4791         * connect.c (connect_to_one): Reduce the socket's RCVBUF when
4792         bandwidth limitation to small values is requested.
4793
4794 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
4795
4796         * progress.c (update_speed_ring): Moved the speed ring update to a
4797         separate function and documented it better.
4798
4799         * progress.c: Use `double' for most timers to support granularity
4800         smaller than 1ms.
4801
4802 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
4803
4804         * wget.h (XDIGIT_TO_XCHAR): Implement as index into a literal
4805         string.
4806         (XDIGIT_TO_xchar): Ditto.
4807
4808 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
4809
4810         * utils.c: Change the type of timer-related functions from long to
4811         double, for better precision.  On machines supporting gettimeofday
4812         the timers now work with granularity of less than one millisecond.
4813
4814 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
4815
4816         * cookies.c (parse_set_cookies): Fixed the parser to handle more
4817         edge conditions.
4818         (test_cookies): New function, contains a test suite for
4819         parse_set_cookies.
4820
4821 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
4822
4823         * url.c (strpbrk_or_eos): Implement as a macro under Gcc.
4824
4825 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
4826
4827         * cookies.c (parse_set_cookies): Allow trailing space in
4828         set-cookies header.  Also, allow any amount of whitespace, not
4829         only one character.  Allow empty set-cookies header without
4830         spewing an error.
4831
4832 2003-09-14  Hrvoje Niksic  <hniksic@xemacs.org>
4833
4834         * url.c (append_uri_pathel): Use opt.restrict_file_names when
4835         calling file_unsafe_char.
4836
4837         * init.c: New command restrict_file_names.
4838
4839         * main.c (main): New option --restrict-file-names[=windows,unix].
4840
4841         * url.c (url_file_name): Renamed from url_filename.
4842         (url_file_name): Add directory and hostdir prefix here, not in
4843         mkstruct.
4844         (append_dir_structure): New function, does part of the work that
4845         used to be in mkstruct.  Iterates over path elements in u->path,
4846         calling append_uri_pathel on each one to append it to the file
4847         name.
4848         (append_uri_pathel): URL-unescape a path element and reencode it
4849         with a different set of rules, more appropriate for handling of
4850         files.
4851         (file_unsafe_char): New function, uses a lookup table to decide
4852         whether a character should be escaped for use in file name.
4853         (append_string): New utility function.
4854         (append_char): Ditto.
4855         (file_unsafe_char): New argument restrict_for_windows, decide
4856         whether Windows file names should be escaped in run-time.
4857
4858         * connect.c: Include <stdlib.h> to get prototype for abort().
4859
4860 2003-09-14  Hrvoje Niksic  <hniksic@xemacs.org>
4861
4862         * utils.c (wtimer_sys_set): Extracted the code that sets the
4863         current time here.
4864         (wtimer_reset): Call it.
4865         (wtimer_sys_diff): Extracted the code that calculates the
4866         difference between two system times here.
4867         (wtimer_elapsed): Call it.
4868         (wtimer_elapsed): Don't return a value smaller than the previous
4869         one, which could previously happen when system time is set back.
4870         Instead, reset start time to current time and note the elapsed
4871         offset for future calculations.  The returned times are now
4872         guaranteed to be monotonically nondecreasing.
4873
4874 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
4875
4876         * host.c (lookup_host): Print the result of the DNS lookup.
4877
4878 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
4879
4880         * init.c (cmd_boolean): Accept yes/no along with on/off.
4881         (cmd_lockable_boolean): Ditto.
4882
4883 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
4884
4885         * init.c: New command dns_cache.
4886
4887         * main.c (main): New option --dns-cache[=off].
4888
4889 2003-09-09  Hrvoje Niksic  <hniksic@xemacs.org>
4890
4891         * config.h.in: Initialize HAVE_GETADDRINFO and ENABLE_IPV6.
4892
4893         * all: Use #ifdef ENABLE_IPV6 instead of the older INET6.  Use
4894         HAVE_GETADDRINFO for getaddrinfo-related stuff.
4895
4896 2003-09-09  Hrvoje Niksic  <hniksic@xemacs.org>
4897
4898         * url.c (url_parse): Return an error if the URL contains a [...]
4899         IPv6 numeric address and we don't support IPv6.
4900
4901 2003-09-05  Hrvoje Niksic  <hniksic@xemacs.org>
4902
4903         * url.c (is_valid_ipv6_address): Modified to not require
4904         zero-terminated strings.
4905         (is_valid_ipv4_address): Ditto.
4906
4907 2003-09-05  Mauro Tortonesi <mauro@deepspace6.net>
4908
4909         src/url.c: added RFC 2732 compliance for URL parsing. The
4910         functions is_*_address valid are a modified version of
4911         glibc 2.3.2 inet_pton's code.
4912
4913 2003-09-03  Ahmon Dancy  <dancy@dancysoft.com>
4914
4915         * main.c init.c options.h: Added --retry-connrefused option so
4916         that Connection Refused failures are treated as non-fatal (when
4917         trying to retrieve from busy servers).
4918
4919         * wget.h: New CONNECT_ERROR macro for encapsulating this
4920         modification.
4921
4922         * ftp.c http.c : Use CONNECT_ERROR macro in places where
4923         ECONNREFUSED was checked.
4924
4925 2003-01-11  Ian Abbott  <abbotti@mev.co.uk>
4926
4927         * ftp.c (ftp_retrieve_glob): Reject insecure filenames as determined
4928         by calling new function has_insecure_name_p.  This is based on a
4929         patch by Red Hat.
4930
4931         * fnmatch.c (has_insecure_name_p): New function: returns non-zero
4932         if filename starts with `/' or contains `../' and is therefore
4933         considered insecure.
4934
4935         * fnmatch.h: Declare has_insecure_name_p().
4936
4937 2002-08-03  Hrvoje Niksic  <hniksic@xemacs.org>
4938
4939         * init.c (cmd_file): Allocate RESULT correctly.
4940
4941 2002-07-24  Hrvoje Niksic  <hniksic@xemacs.org>
4942
4943         * recur.c (retrieve_tree): Check whether downloaded_html_set is
4944         non-NULL before using it.
4945
4946 2002-05-27  Hrvoje Niksic  <hniksic@arsdigita.com>
4947
4948         * html-parse.c (NAME_CHAR_P): Allow almost any character here.
4949
4950 2002-05-24  Hrvoje Niksic  <hniksic@arsdigita.com>
4951
4952         * progress.c (bar_set_params): Fall back to dot progress if the
4953         terminal type is "emacs".
4954
4955 2002-05-20  Hrvoje Niksic  <hniksic@arsdigita.com>
4956
4957         * log.c: Don't #undef WGET_USE_STDARG.
4958
4959 2002-05-16  Hrvoje Niksic  <hniksic@arsdigita.com>
4960
4961         * hash.c (prime_size): Store the offset of the prime number in the
4962         prime table.  When searching, start with the given offset.
4963         (hash_table_new): Pass the pointer to ht->prime_offset to
4964         prime_size.
4965         (grow_hash_table): Ditto.
4966         (prime_size): Make 13 the first prime to make empty hash tables
4967         slightly smaller.
4968
4969 2002-05-16  Ian Abbott  <abbotti@mev.co.uk>
4970
4971         * recur.c (download_child_p): Minor optimization to avoid an
4972         unnecessary additional call to schemes_are_similar_p function.
4973
4974 2002-05-16  Ian Abbott  <abbotti@mev.co.uk>
4975
4976         * url.c (schemes_are_similar_p): New function to test enumerated
4977         scheme codes for similarity.
4978
4979         * url.h: Declare it.
4980
4981         * recur.c (download_child_p): Use it to compare schemes.  This
4982         also fixes a bug that allows hosts to be spanned (without the
4983         -H option) when the parent scheme is https and the child's is
4984         http or vice versa.
4985
4986 2002-05-14  Bill Richardson  <bill@riverstonenet.com>
4987
4988         * ftp.c (getftp): Don't ftruncate stdout.
4989
4990         * http.c (gethttp): Don't ftruncate stdout.
4991
4992 2002-05-09  Ian Abbott  <abbotti@mev.co.uk>
4993
4994         * cmpt.c (strptime_internal): Synched with glibc-2.1.3.
4995         (get_number): Ditto.
4996         (get_alt_number): Ditto.
4997         (__isleap): New function-like macro used by strptime.
4998         (day_of_the_week): New function used by strptime.
4999         (day_of_the_year): Ditto.
5000         (__mon_yday): Now shared by mktime and strptime implementations.
5001
5002 2002-05-08  Hrvoje Niksic  <hniksic@arsdigita.com>
5003
5004         * cookies.c (check_domain_match): Use match_tail in case
5005         insensitive mode.
5006
5007         * utils.c (match_tail): Allow the caller to specify case
5008         insensitive mode.
5009
5010         * cookies.c (store_cookie): When expiry_time is 0, print it as
5011         undefined, not indefinite.
5012
5013 2002-05-07  Ian Abbott  <abbotti@mev.co.uk>
5014
5015         * cookies.c (cookie_jar_process_set_cookie): Do not store
5016         discarded cookie.
5017
5018 2002-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
5019
5020         * cookies.c (check_domain_match): Allow cookies to be set for
5021         subdomains of unknown top-level domains under some circumstances.
5022
5023 2002-04-21  Thomas Lussnig  <thomas.lussnig@bewegungsmelder.de>
5024
5025         * gen_ssl.c:
5026         - allow checking of server cert
5027         - allow defining client cert type
5028         - allow limit of ssl protocol
5029         - check more return values
5030         - added debug message on break
5031
5032 2002-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
5033
5034         * recur.c (download_child_p): Revert order of items in check
5035         number 6 for clarity.
5036
5037 2002-04-20  Hrvoje Niksic  <hniksic@arsdigita.com>
5038
5039         * init.c: Ditto.
5040
5041         * main.c: Ditto.
5042
5043         * http.c: Use the new interface.
5044
5045         * cookies.c: Provide an OO-style "cookie jar" interface to enable
5046         separate cookie jars.
5047
5048         * http.c (http_atotm): Declare argument as const.
5049
5050 2002-04-20  Hrvoje Niksic  <hniksic@arsdigita.com>
5051
5052         * cookies.c (cookie_new): Default to PORT_ANY.
5053         (find_cookie_chain_exact): Only search by DOMAIN.
5054         (find_matching_cookie): Also check that PORT matches.
5055         (store_cookie): Only match the domain.
5056         (set_cookie_header_cb): When a cookie "fakes" a domain, assume it
5057         is valid for that host rather than discarding it completely.
5058         (find_matching_chains): Don't search by PORT.
5059         (matching_cookie): Also match PORT.
5060         (load_cookies): Set the port if specified, otherwise leave it as
5061         ANY.
5062         (save_cookies_mapper): Save the port if specified, otherwise leave
5063         it empty.
5064
5065 2002-04-19  Thomas Lussnig  <thomas.lussnig@bewegungsmelder.de>
5066
5067         * init.c: The option `egdfile' was not in sort order.
5068
5069 2002-04-16  Hrvoje Niksic  <hniksic@arsdigita.com>
5070
5071         * ftp.c (getftp): Treat directories that begin with <letter>: as
5072         absolute.
5073         (getftp): Strip trailing slashes from con->id before merging it
5074         with TARGET.
5075
5076 2002-04-16  Hrvoje Niksic  <hniksic@arsdigita.com>
5077
5078         * http.c (gethttp): If Content-Type is not given, assume
5079         text/html.
5080
5081 2002-04-15  Hrvoje Niksic  <hniksic@arsdigita.com>
5082
5083         * recur.c (download_child_p): Don't ignore rejection of HTML
5084         documents that are themselves leaves of recursion.
5085
5086 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
5087
5088         Makefile.in: Updated several dependencies for object files to take
5089         account of nested include files.
5090
5091 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
5092
5093         Makefile.in: The target `connect$o' (connect.o) now depends on
5094         `utils.h'
5095
5096 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
5097
5098         * host.c (SET_H_ERRNO): New function-like macro to set `h_errno'.
5099         (gethostbyname_with_timeout): Use it.
5100
5101         * utils.c: Don't define `SETJMP()', `run_with_timeout_env' or
5102         `abort_run_with_timeout()' when `USE_SIGNAL_TIMEOUT' is undefined.
5103
5104 2002-04-15  Hrvoje Niksic  <hniksic@arsdigita.com>
5105
5106         * host.c (getaddrinfo_with_timeout): New function.
5107         (gethostbyname_with_timeout): Ditto.
5108         (lookup_host): Use them.
5109
5110 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5111
5112         * utils.c (number_to_string): Handle the case when n < -INT_MAX.
5113
5114 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5115
5116         * init.c (comind): Use a marginally faster implementation of
5117         binary search.  To quote Martin Buchholz, "a nanosecond saved is a
5118         nanosecond earned."
5119
5120 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5121
5122         * main.c (print_help): Document `--post-data' and `--post-file'.
5123
5124 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5125
5126         * http.c (gethttp): Ditto.
5127
5128         * retr.c (retrieve_url): Initialize variables to appease the
5129         compiler.
5130
5131         * gen_sslfunc.c (ssl_iread): Don't handle EINTR when calling
5132         select_fd.
5133         (ssl_iwrite): Ditto.
5134
5135         * connect.c (select_fd): Rewrite to handle EINTR.  Set errno to
5136         ETIMEDOUT in case of timeout.
5137         (iread): No need to handle EINTR when calling select_fd.
5138         (iwrite): Ditto.
5139
5140 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5141
5142         * retr.c (retrieve_url): Make sure that POST is not honored for
5143         redirections.
5144
5145         * http.c (gethttp): Send the POST data when requested.
5146         (post_file): New function.
5147         (gethttp): Use it.
5148
5149         * main.c (main): Ditto.
5150
5151         * init.c: Add new options.
5152
5153         * options.h (struct options): New options post_data and
5154         post_file_name.
5155
5156 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5157
5158         * connect.c (connect_with_timeout): Firing SIGALRM can result in
5159         connect() exiting with EINTR.  Treat EINTR the same as ETIMEDOUT.
5160
5161 2002-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
5162
5163         * connect.c (connect_with_timeout): Use it.
5164
5165         * utils.c (run_with_timeout): New function.
5166
5167 2002-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
5168
5169         * url.c (getproxy): Accept a struct url argument.  This obviates
5170         the need for USE_PROXY_P.
5171
5172         * retr.c (retrieve_url): Allow proxy to be a non-FTP URL.
5173
5174         * ftp.c (getftp): Recognize FWTK-style proxy.
5175
5176 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
5177
5178         * config.h.in: Only define _VA_LIST when compiled with gcc.
5179
5180 2002-04012  Ian Abbott  <abbotti@mev.co.uk>
5181
5182         * http.c (http_loop): Compensate for MS Windows two-second
5183         granularity of file modification time when comparing timestamps.
5184
5185         * ftp.c (ftp_retrieve_list): Ditto.
5186
5187 2002-04-12  Ian Abbott  <abbotti@mev.co.uk>
5188
5189         * utils.c (has_html_suffix_p): New function to test filename for
5190         common html extensions.
5191
5192         * utils.h: Declare it.
5193
5194         * http.c (http_loop): Use it instead of previous test.
5195
5196         * retr.c (retrieve_url): Ditto.
5197
5198         * recur.c (download_child_p): Ditto.
5199
5200 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
5201
5202         * config.h.in: Define _VA_LIST on Solaris to prevent stdio.h from
5203         declaring va_list.
5204         From Kevin Rodgers <kevinr@ihs.com>.
5205
5206 2002-04-12  Ian Abbott  <abbotti@mev.co.uk>
5207
5208         * Makefile.in: Specify libtool mode explicitly when linking.
5209
5210 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
5211
5212         * connect.c (connect_with_timeout): New function.
5213         (connect_to_one): Use it.
5214
5215         * config.h.in: Add stubs for HAVE_SIGSETJMP, HAVE_SIGBLOCK, and
5216         HAVE_SETJMP_H.
5217
5218 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5219
5220         * log.c: Set WGET_USE_STDARG if __STDC__ is defined and stdarg.h
5221         is present.
5222
5223 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5224
5225         * progress.c (bar_create): If INITIAL is larger than TOTAL, fix
5226         TOTAL.
5227         (bar_finish): Likewise.
5228
5229 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5230
5231         * html-url.c (tag_handle_form): New function.  Pick up form
5232         actions and mark them for conversion only.
5233
5234 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5235
5236         * progress.c (struct progress_implementation): Use PARAMS when
5237         declaring the parameters of *create, *update, *finish, and
5238         *set_params.
5239
5240         * netrc.c: Ditto.
5241
5242         * http.c: Reformat some function definitions so that ansi2knr can
5243         read them.
5244
5245         * hash.c (struct hash_table): Use the PARAMS macro around
5246         parameters in the declaration of hash_function and test_function.
5247         (prime_size): Spell 2580823717UL and 3355070839UL as (unsigned
5248         long)0x99d43ea5 and (unsigned long)0xc7fa5177 respectively, so
5249         that pre-ANSI compilers can read them.
5250         (find_mapping): Use PARAMS when declaring EQUALS.
5251         (hash_table_put): Ditto.
5252
5253         * ftp.h: Wrap the parameters of ftp_index declaration in PARAMS.
5254
5255         * cookies.c (cookie_new): Use (unsigned long)0 instead of 0UL,
5256         which was unsupported by pre-ANSI compilers.
5257
5258         From Nelson H. F. Beebe <beebe@math.utah.edu>, for the most part.
5259
5260 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5261
5262         * url.c (url_filename): Use compose_file_name regardless of
5263         whether opt.dirstruct is set.
5264         (mkstruct): Don't handle the query and the reencoding of DIR; that
5265         is done in compose_file_name.
5266
5267 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
5268
5269         * wget.h: Ditto for extern char *exec_name.
5270
5271         * options.h: Don't guard against OPTIONS_DEFINED_HERE -- it is
5272         perfectly legal to follow an `extern' with a non-`extern' ones,
5273         provided the types match.
5274
5275         * main.c: Don't define OPTIONS_DEFINED_HERE.
5276
5277 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
5278
5279         * progress.c (create_image): Revert to calculating ETA based on
5280         average download speed.
5281         (create_image): Don't print ETA until the download has been active
5282         for at least 3 seconds.
5283         (create_image): When ETA is not available, don't print anything.
5284         The previous version would print --:--.
5285
5286 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
5287
5288         * progress.c (bar_update): Keep updating a subinterval until it
5289         reaches or exceeds a watermark.  That way the measurement will be
5290         guaranteed to span a configurable minimum of time.  The current
5291         default is 3s in 30 100ms intervals.
5292
5293 2002-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
5294
5295         * progress.c (bar_update): Maintain an array of the time it took
5296         to perform previous 30 network reads.
5297         (create_image): Calculate the download speed and ETA based on the
5298         last 30 reads, not the entire download.
5299         (create_image): Make sure that the ETA is not changed more than
5300         once per second.
5301
5302 2002-04-09  Ian Abbott  <abbotti@mev.co.uk>
5303
5304         * mswindows.c (borland_utime): New function conditionally defined
5305         when `HACK_BCC_UTIME_BUG' is defined.  A reimplementation of
5306         `utime()' as Borland's `utime()' function is broken on Windows 9x
5307         systems.  (Original patch by Chin-yuan Kuo <sr1111111@yahoo.com.tw>.)
5308
5309 2002-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
5310
5311         * ftp.c (ftp_loop): Propagate the result of ftp_retrieve_glob.
5312
5313 2002-03-26  Ian Abbott  <abbotti@mev.co.uk>
5314
5315         * Makefile.in: Updated several dependencies for object files.
5316
5317 2002-03-20  Ian Abbott  <abbotti@mev.co.uk>
5318
5319         * mswindows.c: Include "utils.h".
5320
5321 2002-03-18  Ian Abbott  <abbotti@mev.co.uk>
5322
5323         * host.h: Don't include netdb.h on windows.
5324
5325 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
5326
5327         * recur.c (retrieve_tree): Handle the case when start_url doesn't
5328         parse.
5329
5330 2002-02-19  Andreas Damm  <andreas-sourceforge@radab.org>
5331
5332         * wget.h (DO_REALLOC_FROM_ALLOCA): Multiply with sizeof(type) when
5333         calling xmalloc and memcpy.
5334
5335 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
5336
5337         * host.h: Include Unix-specific includes #ifndef WINDOWS.
5338         Patch originally provided by Christian Lackas.
5339
5340 2002-02-11  Christian Lackas  <delta@lackas.net>
5341
5342         * recur.c: recurive downloading for https fixed.
5343
5344 2002-02-19  Alan Eldridge  <alane@geeksrus.net>
5345
5346         * host.h: Also include <netinet/in.h> and <sys/socket.h>.
5347
5348         * ftp-basic.c: Also include <netinet/in.h>.
5349
5350 2002-02-05  Ian Abbott  <abbotti@mev.co.uk>
5351
5352         * http.c (gethttp): when -c used, mark already fully retrieved
5353         file as successfully retrieved.
5354
5355 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
5356
5357         * url.c (url_parse): Don't treat '?' as query string separator
5358         when parsing FTP URLs.
5359
5360 2002-02-01  Hrvoje Niksic  <hniksic@arsdigita.com>
5361
5362         * html-url.c (tag_handle_meta): Don't crash on <meta
5363         http-equiv=refresh> where content is missing.
5364
5365 2002-01-31  Herold Heiko  <Heiko.Herold@previnet.it>
5366
5367         * ftp-basic.c, host.c: don't include sys/socket.h, arpa/inet.h,
5368         netdb.h on windows.
5369
5370 2002-01-30  Hrvoje Niksic  <hniksic@arsdigita.com>
5371
5372         * retr.c (retrieve_url): Remove redirection cycle detection.  This
5373         is because some sites legitimately redirect the user back to the
5374         same location, e.g. after an authorization check performed by
5375         another page.  MAX_REDIRECTIONS is still used to prevent infinite
5376         redirection loops.
5377
5378 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
5379
5380         * http.c (gethttp): Wrap host name in square brackets if it
5381         contains a colon.
5382
5383 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
5384
5385         * url.c (url_parse): Allow all hex digits, not only decimal ones,
5386         to form an IP address.
5387
5388 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
5389
5390         * url.c (urlchr_table): Make square braces reserved, so we can
5391         parse http://[::1]/.
5392         (url_parse): Handle host in braces.
5393         (url_string): If url->host contains colons, wrap it in braces.
5394
5395 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
5396
5397         * connect.c (resolve_bind_address): New function.
5398         (connect_to_one): Use it.
5399         (bindport): Ditto.
5400
5401         * init.c: Don't resolve bind-address here.
5402
5403         * host.c (wget_sockaddr_set_address): Would bug out with ADDR == NULL.
5404
5405 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
5406
5407         * host.c (lookup_host): Use sizeof(ip4_address) to calculate the
5408         offset.
5409         (address_list_new): Use map_ipv4_to_ip.
5410         (wget_sockaddr_set_address): Convert ADDR to IPv4 before using it
5411         in IPv4 context.
5412
5413 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
5414
5415         * source: Integrated IPv6 support.
5416         Written by Thomas Lussnig <thomas.lussnig@bewegungsmelder.de>.
5417
5418 2002-01-15  Ian Abbott  <abbotti@mev.co.uk>
5419
5420         * init.c (cmd_file): Change `\' to `/' for Windows (yes, really!)
5421         (cmd_directory): New function. Like cmd_file(), but strips
5422         trailing directory separators.
5423         (commands): Change action for "dirprefix" from `cmd_file' to
5424         `cmd_directory'.
5425
5426         * utils.c (make_directory): Allow intermediate `mkdir' calls to
5427         fail, as not all path components that do not exist should be
5428         directory components, especially under Windows.
5429
5430 2002-01-17  Hrvoje Niksic  <hniksic@arsdigita.com>
5431
5432         * netrc.c (parse_netrc): Skip leading whitespace before testing
5433         whether the line is empty.  Empty lines still contain the line
5434         terminator.
5435
5436 2002-01-15  Hrvoje Niksic  <hniksic@arsdigita.com>
5437
5438         * gen_sslfunc.c (ssl_iread): Call select on the file descriptor
5439         only if no data is pending in SSL buffers.
5440         From tony@bluetail.com.
5441
5442 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5443
5444         * headers.c (header_get): Strip trailing whitespace from the
5445         header.
5446
5447 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5448
5449         * url.c (parse_uname): URL-decode *USER and *PASSWD.
5450
5451 2002-01-07  Ian Abbott <abbotti@mev.co.uk>
5452
5453         * url.c (uri_merge_1): Deal with "net path" relative URL (one that
5454         starts with "//").
5455
5456 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5457
5458         * http.c (gethttp): Invalidate SOCK if get_contents encountered an
5459         error.
5460
5461 2001-12-24  Hrvoje Niksic  <hniksic@arsdigita.com>
5462
5463         * version.c: Wget 1.8.1 is released.
5464
5465 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
5466
5467         * version.c: Wget 1.8.1-pre3 is released.
5468
5469 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
5470
5471         * recur.c (retrieve_tree): Enqueue the canonical representation of
5472         start_url, so that the test against dl_url_file_map works.
5473
5474 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
5475
5476         * log.c (logputs): Check for requested verbosity before printing
5477         anything.
5478
5479 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
5480
5481         * html-url.c (tag_handle_link): Treat the "shortcut icon" link as
5482         inline.
5483
5484 2001-12-18  Hrvoje Niksic  <hniksic@arsdigita.com>
5485
5486         * recur.c (retrieve_tree): Make a copy of file obtained from
5487         dl_url_file_map because the code calls xfree(file) later.
5488
5489 2001-12-18  Hrvoje Niksic  <hniksic@arsdigita.com>
5490
5491         * recur.c (register_html): Maintain a hash table of HTML files
5492         along with the list.  Disallow duplicates.
5493         (retrieve_tree): Use downloaded_html_set to check whether the file
5494         found in dl_url_file_map is an HTML file, and descend into it if
5495         so.
5496         (convert_all_links): Don't guard against duplicates in
5497         downloaded_html_list, since they are no longer possible.
5498
5499 2001-12-18  Ian Abbott  <abbotti@mev.co.uk>
5500
5501         * recur.c (retrieve_tree): Pass on referring URL when retrieving
5502         recursed URL.
5503
5504 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
5505
5506         * version.c: Wget 1.8.1-pre2 is released.
5507
5508 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
5509
5510         * retr.c (sleep_between_retrievals): Simplify indentation.
5511
5512 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
5513
5514         * gen_sslfunc.c (ssl_init_prng): Use random_number to get a byte
5515         of "randomness" at a time.
5516         (ssl_init_prng): Don't seed the PRNG; random_number will do that.
5517
5518         * retr.c (sleep_between_retrievals): Use it.  Make sure that the
5519         random amount averages in opt.wait.
5520         (sleep_between_retrievals): Don't seed the PRNG; random_number
5521         will do that.
5522
5523         * utils.c (random_number): New function.
5524
5525 2001-12-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5526
5527         * url.c (path_simplify): Move here from utils.c, and make static.
5528
5529 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
5530
5531         * init.c (wgetrc_file_name): Print correct message when loading
5532         getenv("WGETRC") fails.
5533
5534 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
5535
5536         * recur.c (register_download): Don't abort when one URL references
5537         two different files.
5538
5539 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
5540
5541         * http.c (gethttp): Check for conn->scheme, not u->scheme, before
5542         calling ssl_iwrite.
5543
5544 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
5545
5546         * version.c: Wget 1.8.1-pre1 is released.
5547
5548 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
5549
5550         * res.c (matches): Fix broken URL in the docstring.
5551
5552 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
5553
5554         * html-url.c (tag_url_attributes): Mark <embed href=...> as
5555         external.
5556
5557 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
5558
5559         * url.c (get_urls_file): Cosmetic changes.
5560
5561 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
5562
5563         * html-url.c (append_one_url): Resurrect warning when unable to
5564         resolve a relative link.
5565
5566 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
5567
5568         * html-url.c (collect_tags_mapper): Break into several functions.
5569         (tag_url_attributes): Collect <embed href=...>.
5570
5571 2001-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5572
5573         * host.c: New type ipv4_address.  Use it consistently instead of
5574         `unsigned char[4]' and `unsigned char *'.
5575         (pretty_print_address): Accept a `const void *', to require even
5576         less casting.
5577
5578 2001-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5579
5580         * ftp-ls.c (ftp_parse_vms_ls): Fix obvious memory leaks.
5581
5582 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
5583
5584         * main.c (main): Initialize progress after fork_to_background, so
5585         that it knows when to use dots.
5586
5587         * mswindows.c (ws_hangup): Call log_request_redirect_output.
5588
5589         * utils.c (fork_to_background): Print the PID of the child
5590         process.
5591
5592         * log.c (log_request_redirect_output): Set a flag that output
5593         redirection has been requested.  Doing anything else in a signal
5594         handler is unsafe.
5595         (check_redirect_output): New function: check whether redirection
5596         has been requested and, if so, call redirect_output().
5597         (logputs): Call check_redirect_output.
5598         (logprintf): Ditto.
5599         (debug_logprintf): Ditto.
5600         (redirect_output): Print clearer messages.
5601
5602         * main.c (redirect_output_signal): Don't call
5603         redirect_output_signal directly.  Instead, call
5604         log_request_redirect_output.
5605
5606         * utils.c (memfatal): Ditto.
5607
5608         * progress.c (display_image): Use it.
5609
5610         * log.c (log_set_save_context): New function: allow the caller to
5611         turn off saving log context lines.
5612
5613 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
5614
5615         * host.c (address_list_set_faulty): Uncomment a sanity check.
5616
5617 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
5618
5619         * utils.c (long_to_string): Return a pointer after where the
5620         number ends.
5621         (long_to_string): Rename to number_to_string.
5622
5623 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
5624
5625         * utils.c (path_simplify): Correctly handle the unlikely case that
5626         b starts out as path + 1.
5627
5628 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
5629
5630         * utils.c (path_simplify): Rewrite, with better comments, and
5631         without the use of strcpy to move overlapping blocks.
5632
5633 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
5634
5635         * init.c (cmd_spec_progress): Resurrect.  Check whether VAL is a
5636         valid progress type before setting it.
5637
5638 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
5639
5640         * main.c (main): Remove stray debugging message.
5641
5642 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
5643
5644         * progress.c (create_image): Fix ETA padding when hours are prined.
5645
5646 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
5647
5648         * version.c: Wget 1.8 is released.
5649
5650 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
5651
5652         * url.c (reencode_string): Declare static.
5653
5654         * res.c (registered_specs): Declare static.
5655
5656         * progress.c (current_impl_locked): Declare static.
5657
5658         * log.c (flush_log_p): Declare static.
5659         (needs_flushing): Ditto.
5660
5661         * http.c (digest_authentication_encode): Declare static.
5662
5663         * html-url.c (init_interesting): Declare static.
5664
5665         * host.c (host_name_addresses_map): Declare static.
5666
5667         * cookies.c (find_matching_chains): Declare static.
5668
5669         * ftp-ls.c (ftp_parse_vms_ls): Warn about the memory leak
5670         indicated by lint.
5671
5672         * utils.c (path_simplify): Remove unused variable STUB_CHAR.
5673
5674         * host.c (address_list_set_faulty): Document that INDEX is
5675         currently unused.
5676
5677         * url.c (rewrite_shorthand_url): Remove unused variable PATH.
5678
5679 2001-12-08  Hrvoje Niksic  <hniksic@arsdigita.com>
5680
5681         * version.c: Wget 1.8-pre2 is released.
5682
5683 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
5684
5685         * progress.c (progress_handle_sigwinch): Set up the signal again.
5686
5687         * utils.c: Include <sys/termios.h>, where Solaris defines
5688         TIOCGWINSZ.
5689
5690         * progress.c (bar_create): Don't use the last column on the screen.
5691         (create_image): Pad ETA to constant size.  Pad SIZE to nine digits
5692         only until it exceeded them.
5693
5694 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
5695
5696         * version.c: Wget 1.8-pre1 is released.
5697
5698 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
5699
5700         * progress.c (progress_create): Make sure that, when the output is
5701         redirected, the progress implementation gets changed to the
5702         fallback one.
5703         (bar_set_params): Set current_impl_locked to 1 when "force" is
5704         specified.
5705         (progress_create): Don't change the progress implementation if
5706         current_impl_locked is non-zero.
5707
5708         * main.c (redirect_output_signal): Call
5709         progress_schedule_redirect.
5710
5711         * progress.c (progress_schedule_redirect): New function.
5712
5713 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
5714
5715         * log.c (logvprintf): Restructure to allow being called multiple
5716         times.
5717         (logprintf): Call logvprintf in a loop.
5718         (debug_logprintf): Ditto.
5719
5720 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
5721
5722         * gen_sslfunc.c (ssl_init_prng): Allow the user to disable EGD by
5723         setting egd_file it to empty string.
5724
5725         * main.c (main): Change the option name from --sslegdsock to
5726         --egd-file.
5727
5728 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
5729
5730         * gen_sslfunc.c (ssl_init_prng): Make the printed message
5731         translatable.
5732
5733 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
5734
5735         * url.c (scheme_disable): New function.
5736
5737         * main.c (main): Call ssl_init_prng from here rather than from
5738         init_ssl, so that it has a chance to disable support for https
5739         before a URL has been resolved.
5740
5741         * gen_sslfunc.c (ssl_init_prng): Seed with rand() if all else
5742         failed.
5743         (ssl_init_prng): Disable support for https if seeding the PRNG
5744         fails.
5745
5746 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
5747
5748         * utils.c (read_whole_line): Handle lines beginning with \0.
5749
5750 2001-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
5751
5752         * recur.c (convert_all_links): Guard against duplicates in
5753         downloaded_html_files.
5754         (register_download): Don't invalidate similar-looking URLs.
5755         (match_except_index): New function.
5756
5757 2001-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
5758
5759         * utils.c (path_simplify): Document with test cases.
5760
5761 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
5762
5763         * gen_sslfunc.c: Ditto.
5764
5765         * rbuf.c: Include <string.h>.
5766
5767 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
5768
5769         * recur.c (retrieve_tree): Check whether the URL was already
5770         downloaded before downloading it again.
5771         (descend_child_p): Renamed to download_child_p.
5772         (register_download): When one URL is downloaded to a file already
5773         "owned" by another URL, delete all references that map any URL to
5774         that file.
5775         (register_delete_file): New function.
5776         (retrieve_tree): Use it after deleting a file.
5777
5778         * url.c (url_parse): Re-canonicalize the URL also if the path is
5779         empty, so that e.g. "http://www.server.com" ->
5780         "http://www.server.com/".
5781         (lowercase_str): Use ISUPPER instead of !ISLOWER.
5782
5783         * retr.c (retrieve_url): Use the canonical URL form when calling
5784         register_download().
5785
5786 2001-12-04  Ian Abbott <abbotti@mev.co.uk>
5787
5788         * snprintf.c (dopr): Use `unsigned int' as the second argument to
5789         va_arg when casting to `unsigned short' is intended.
5790
5791 2001-12-04  Herold Heiko  <Heiko.Herold@previnet.it>
5792
5793         * gen_sslfunc.c: on windows provide ssl crypto random 
5794           initialization through RAND_screen(); could possibly
5795           be not enough for strong ssl communication (see the 
5796           relevant manual page from the openssl package).
5797
5798 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
5799
5800         * url.c (local_quote_string): Reenable quoting of question marks,
5801         but only when `--html-extension' is used.
5802
5803 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
5804
5805         * version.c: Wget 1.8-beta3 is released.
5806
5807 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
5808
5809         * snprintf.c (dopr): Cast the result of va_arg to short int and
5810         short unsigned int where these types are expected to be used.
5811
5812 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
5813
5814         * snprintf.c (dopr): Replace `short int' and `unsigned short int'
5815         with `int' when using it as the second argument to `va_arg'.
5816
5817 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
5818
5819         * host.c (address_list_new_one): New function.
5820         (lookup_host): Use it.
5821
5822 2001-12-03  Andre Majorel  <amajorel@teaser.fr>
5823
5824         * host.c (lookup_host): Don't initialize TMPSTORE directly because
5825         it's not legal C.
5826
5827 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
5828
5829         * ftp-basic.c (ftp_port): Don't return HOSTERR if we fail getting
5830         the socket data.
5831
5832         * ftp.c: Ditto.
5833
5834         * http.c: No need to declare h_errno.
5835
5836         * host.c: Declare h_errno.
5837
5838 2001-12-02  Hrvoje Niksic  <hniksic@arsdigita.com>
5839
5840         * utils.c (file_merge): If BASE doesn't contain a slash, just
5841         return a copy of FILE.
5842
5843 2001-12-02  Hrvoje Niksic  <hniksic@arsdigita.com>
5844
5845         * version.c: Wget 1.8-beta2 is released.
5846
5847 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
5848
5849         * ftp.c (getftp): When PWD fails, assume "/".
5850
5851         * ftp-basic.c (ftp_syst): Fix indentation.
5852
5853 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
5854
5855         * url.c (get_urls_file): If opt.base_href is specified, merge each
5856         URL with the base.
5857
5858 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
5859
5860         * main.c (print_help): Don't document the removed `-nh'.
5861
5862 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
5863
5864         * url.c (url_full_path): Document better.
5865
5866         * http.c (gethttp): Use the full path when creating digest
5867         authorization.
5868
5869 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
5870
5871         * cookies.c (path_matches): Return 0 if PREFIX doesn't begin with
5872         '/'.
5873
5874 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
5875
5876         * cookies.c (path_matches): FULL_PATH doesn't begin with '/', but
5877         PREFIX does.
5878
5879 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
5880
5881         * cookies.c (check_domain_match): Reimplement to match Netscape's
5882         "preliminary specification" for cookies.
5883
5884 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
5885
5886         * url.c (replace_attr_refresh_hack): New function.
5887         (convert_links): Call replace_attr_refresh_hack for Refresh
5888         links.  It will add the "TMOUT; URL=" junk before the link.
5889
5890         * html-url.c (collect_tags_mapper): Set ID to the ID of the
5891         "content" attribute, not "http-equiv".
5892         (collect_tags_mapper): Don't use OFFSET to hack the raw_* values;
5893         instead, store the information that this entry belongs to a
5894         "refresh" link.
5895
5896 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
5897
5898         * version.c: Wget 1.8-beta1 is released.
5899
5900 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
5901
5902         * recur.c (retrieve_tree): Allow -p retrievals to exceed maximum
5903         depth by more than one.
5904
5905 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
5906
5907         * retr.c (retrieve_url): Don't allow more than 20 redirections.
5908
5909 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
5910
5911         * recur.c (retrieve_tree): Skip the non-inline entries when
5912         enqueuing the children of a leaf HTML node in -p mode.
5913         (descend_url_p): Ignore opt.no_parent when in -p mode and UPOS is
5914         "inline".
5915
5916         * html-url.c (get_urls_html): Don't accept dash_p_leaf_HTML.
5917         (collect_tags_mapper): When an entry is "inline", mark it as such.
5918
5919         * recur.c (descend_url_p): Fix test when checking for
5920         acceptance/rejection rules.
5921
5922 2001-10-31 Daniel BODEA <dali@dali-designs.com>
5923
5924         * netrc.c (search_netrc): When slack_default is 0, still look for
5925         an account with matching password, just not the "default account".
5926         HTTP Authorization using .netrc should now work as expected.
5927
5928 2001-11-30  T. Bharath  <TBharath@responsenetworks.com>
5929
5930         * http.c (persistent_available_p): Call SHUTDOWN_SSL if
5931         test_socket_open fails.
5932
5933 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
5934
5935         * progress.c (display_image): Just print one CR to reset the
5936         cursor position.
5937
5938 2001-11-30  Christian Fraenkel  <c.fraenkel@gmx.net>
5939
5940         * init.c: New command `ssl_egd_sock'.
5941
5942         * main.c (main): New option `--sslegdsock'.
5943
5944         * gen_sslfunc.c (ssl_init_prng): Seed the RNG using EGD.
5945
5946 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
5947
5948         * cmpt.c (memmove): Include a simple memmove implementation.
5949
5950 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
5951
5952         * headers: Guard against header files being included twice.
5953
5954 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
5955
5956         * gen-md5.c: Use unsigned char * as the buffer argument to
5957         gen_md5_update.
5958
5959 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
5960
5961         * connect.h: Declare select_fd.
5962
5963 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
5964
5965         * recur.c (descend_url_p): When resolving no_parent, compare with
5966         start_url, not parent url.  Otherwise link from /a/b/ to /a/c/
5967         wouldn't be followed, although the download started from /a/.
5968
5969 2001-01-23  Herold Heiko  <Heiko.Herold@previnet.it>
5970
5971         * config.h.ms, mswindows.h: defined HAVE_ISATTY, use _isatty for
5972         MS VC; somebody with Borland compiler please check and provide
5973         patch if possible;
5974
5975         * cmpt.c: provided a usleep emulation.
5976
5977 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
5978
5979         * host.c (address_list_new): Initialize al->faulty.
5980
5981 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
5982
5983         * http.c (http_process_range): Accept the broken output of
5984         "JavaWebServer/1.1.1".
5985
5986 2001-11-28  Hrvoje Niksic  <hniksic@arsdigita.com>
5987
5988         * progress.c (dot_set_params): If PARAMS is unspecified, use
5989         dot_style, if available.
5990
5991         * init.c: Ditto.
5992
5993         * main.c (main): Resurect --dot-style.
5994
5995         * progress.c (dot_finish): Print the quantity if we're left at the
5996         beginning of a row.
5997
5998 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
5999
6000         * cmpt.c (random): Removed.
6001
6002         * retr.c (sleep_between_retrievals): Use the more portable rand()
6003         instead of random().
6004
6005 2001-11-27  Ian Abbott <abbotti@mev.co.uk>
6006
6007         * retr.c (retrieve_from_file): Initialize `new_file' to NULL to
6008         prevent seg fault.
6009
6010 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6011
6012         * connect.c (connect_to_many): Use address_list_set_faulty to
6013         prevent the faulty address from being reused.
6014
6015         * host.c (address_list_set_faulty): New function.
6016         (address_list_get_bounds): New function, instead of
6017         address_list_count.
6018
6019 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6020
6021         * url.c (convert_links): Don't translate %d-%d.
6022
6023         * main.c (print_help): Remove stray HAVE_RANDOM code.
6024
6025 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6026
6027         * ftp.c (getftp): Improve output after sending PASV.  Don't
6028         attempt to "look up" the IP address we already know; call
6029         connect_to_one directly.
6030
6031 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6032
6033         * progress.c: Change the default progress implementation to "bar".
6034
6035 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6036
6037         * progress.c (bar_create): Print two newlines.
6038
6039 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6040
6041         * cmpt.c (random): New function, a simple-minded replacement for
6042         random() on systems that don't have it.
6043
6044 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6045
6046         * config.h.in: Put a HAVE_USLEEP stub.
6047
6048         * cmpt.c (usleep): Replacement implementation of usleep using
6049         select.
6050
6051         * init.c: New option init_rate.
6052
6053         * main.c (main): New option --limit-rate.
6054
6055         * retr.c (limit_bandwidth): New function.
6056         (get_contents): Call it to limit the bandwidth used when
6057         downloading.
6058
6059         * progress.c (dot_update): Would print the wrong download speed on
6060         rows other than the first one when the download was continued.
6061         (dot_finish): Ditto.
6062
6063 2001-11-26  Ian Abbott <abbotti@mev.co.uk>
6064
6065         * http.c (gethttp): fix undeclared variable 'err' when compiled
6066         with HAVE_SSL.
6067
6068 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6069
6070         * progress.c: Don't allocate new timers; use the timing data
6071         propagated from the caller.
6072
6073         * retr.c (get_contents): Allocate and use a timer.
6074
6075 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6076
6077         * http.c (last_host_ip): Made into an address_list.
6078         (invalidate_persistent): Release pc_last_host_ip.
6079         (register_persistent): Use lookup_host.
6080         (persistent_available_p): Check for equality of hosts using
6081         address_list_match_all.  Call address_list_release.
6082         (http_cleanup): New function.
6083
6084         * ftp.c (getftp): Use lookup_host and connect_to_many.
6085
6086         * http.c (gethttp): Use lookup_host and connect_to_many.
6087
6088         * connect.c (make_connection): Removed.
6089         (connect_to_one): New function.
6090         (connect_to_many): Ditto.
6091         (set_connection_host_name): Ditto.
6092
6093         * host.c (lookup_host): New function; new return type.
6094         (address_list_new): New function.
6095         (address_list_count): Ditto.
6096         (address_list_copy_one): Ditto.
6097         (address_list_delete): Ditto.
6098         (address_list_release): Ditto.
6099         (pretty_print_address): Ditto.
6100
6101 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6102
6103         * recur.c (retrieve_tree): In case of followed redirection,
6104         blacklist the pre-redirection URL.
6105
6106 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6107
6108         * recur.c (descend_redirect_p): New function.
6109         (retrieve_tree): Make sure redirections are not blindly followed.
6110
6111 2001-11-04  Alan Eldridge  <alane@geeksrus.net>
6112
6113         * config.h.in: added HAVE_RANDOM.
6114
6115         * options.h: added random_wait to struct options.
6116
6117         * main.c (print_help [HAVE_RANDOM], main): added arg parsing, help
6118         for --random-wait.
6119
6120         * retr.c (sleep_between_retrievals) [HAVE_RANDOM]: added
6121         implementation of random wait times.
6122
6123         * init.c (commands): added "randomwait" keyword.
6124
6125 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6126
6127         * recur.c (descend_url_p): Be more conservative with blacklisting
6128         URLs.
6129         (convert_all_links): Print how many files have been converted, and
6130         how long it took.
6131
6132         * progress.c (create_image): Place the number of downloaded bytes
6133         right after the progress bar.
6134
6135         * utils.c (suffix): Return a pointer into the string.
6136
6137 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6138
6139         * url.c (convert_links): Handle CO_NULLIFY_BASE.
6140
6141         * recur.c (retrieve_tree): Ignore download-ignorable children.
6142         (convert_all_links): Specify CO_NULLIFY_BASE when link_base_p.
6143
6144         * html-url.c (handle_link): Return the newly created urlpos.
6145         (collect_tags_mapper): When dealing with BASE, store the base
6146         reference and mark it as download-ignorable.
6147
6148 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6149
6150         * url.c (convert_links): Attempt to quote '?' as "%3F" when
6151         linking to local files.  Given up on the attempt, as it breaks
6152         local browsing.
6153
6154 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6155
6156         * main.c (private_initialize): Removed.
6157         (main): Don't call private_initialize.
6158
6159         * http.c: Call lookup_host.
6160
6161         * host.c (host_init): Removed.
6162         (add_host_to_cache): Initialize host_name_address_map here, on
6163         demand.
6164         (ngethostbyname): Commented out.
6165
6166         * connect.c (make_connection): Remove dead code; use lookup_host.
6167
6168         * host.c (store_hostaddress): Renamed to lookup_host and reversed
6169         the args.
6170         Removed host_address_name_map and host_slave_master_map.
6171
6172 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6173
6174         * progress.c (dot_create): Align the "[ skipping ... ]" string
6175         with the dots.
6176
6177         * retr.c (rate): Split into two functions: calc_rate and
6178         retr_rate.
6179
6180         * progress.c (create_image): Draw a dummy progress bar even when
6181         total size is unknown.
6182         (display_image): Place the text cursor at the end of the "image".
6183
6184 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6185
6186         * url.c (reencode_string): Use unsigned char, not char --
6187         otherwise the hex digits come out wrong for 8-bit chars such as
6188         nbsp.
6189         (lowercase_str): New function.
6190         (url_parse): Canonicalize u->url if needed.
6191         (get_urls_file): Parse each URL, and return only the valid ones.
6192         (free_urlpos): Call url_free.
6193         (mkstruct): Add :port if the port is non-standard.
6194         (mkstruct): Append the query string to the file name, if any.
6195         (urlpath_length): Use strpbrk_or_eos.
6196         (uri_merge_1): Handle the cases where LINK is an empty string,
6197         where LINK consists only of query, and where LINK consists only of
6198         fragment.
6199         (convert_links): Count and report both kinds of conversion.
6200         (downloaded_file): Use a hash table, not a list.
6201         (downloaded_files_free): Free the hash table.
6202
6203         * retr.c (retrieve_from_file): Ditto.
6204
6205         * main.c (main): Call either retrieve_url or retrieve_tree
6206         for each URL, not both.
6207
6208         * retr.c (register_all_redirections): New function.
6209         (register_redirections_mapper): Ditto.
6210         (retrieve_url): Register the redirections.
6211         (retrieve_url): Make the string "Error parsing proxy ..." 
6212         translatable.
6213
6214         * res.c (add_path): Strip leading slash from robots.txt paths so
6215         that the path representations are "compatible".
6216         (free_specs): Free each individual path, too.
6217         (res_cleanup): New function.
6218         (cleanup_hash_table_mapper): Ditto.
6219
6220         * recur.c (url_queue_new): New function.
6221         (url_queue_delete): Ditto.
6222         (url_enqueue): Ditto.
6223         (url_dequeue): Ditto.
6224         (retrieve_tree): New function, replacement for recursive_retrieve.
6225         (descend_url_p): New function.
6226         (register_redirection): New function.
6227
6228         * progress.c (create_image): Cosmetic changes.
6229
6230         * init.c (cleanup): Do all those complex cleanups only if
6231         DEBUG_MALLOC is defined.
6232
6233         * main.c: Removed --simple-check and the corresponding
6234         simple_host_check in init.c.
6235
6236         * html-url.c (handle_link): Parse the URL here, and propagate the
6237         parsed URL to the caller, who would otherwise have to parse it
6238         again.
6239
6240         * host.c (xstrdup_lower): Moved to utils.c.
6241         (realhost): Removed.
6242         (same_host): Ditto.
6243
6244 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6245
6246         * utils.c (path_simplify): Preserver the (non-)existence of
6247         leading slash.  Return non-zero if changes were made.
6248
6249 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6250
6251         * progress.c (bar_update): Don't modify bp->total_length if it is
6252         zero.
6253
6254 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6255
6256         * retr.c (retrieve_url): When the redirection URL doesn't parse,
6257         print the correct error message rather than "UNKNOWN".
6258
6259 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6260
6261         * progress.c (bar_finish): If the timer didn't record any time
6262         since the download beginning, fake 1ms.
6263
6264 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6265
6266         * recur.c (recursive_retrieve): Fix typo.
6267
6268 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
6269
6270         * progress.c (create_image): Don't translate "%ld ".
6271
6272 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
6273
6274         * progress.c (bar_set_params): Allow the user to force the use of
6275         the bar.
6276
6277 2001-11-23  Lemble Gregory  <gregory.lemble@st.com>
6278
6279         * gen_sslfunc.c (ssl_init_prng): New function; seed the SSL RNG.
6280
6281 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
6282
6283         * progress.c: Renamed dp_* functions to dot_* for greater clarity
6284         and consistency with bar_*.
6285         (print_download_speed): Get rid of the unneeded '@' character.
6286         (create_image): Fix download rate geometry.
6287
6288         * progress.c (print_elapsed): Remove spurious space.
6289         (print_elapsed): Renamed to print_download_speed, since that's
6290         what it does.
6291
6292 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
6293
6294         * progress.c (bar_update): If the downloaded amount becomes larger
6295         than the expected amount, adjust the expected amount accordingly.
6296
6297 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
6298
6299         * utils.c (determine_screen_width): New function.
6300
6301         * main.c (main): New option `--progress=TYPE'.
6302         (main): Implement compatibility with the old option `--dot-style'.
6303
6304         * init.c: Removed cmd_spec_dotstyle -- that logic is now in
6305         dp_set_params.
6306         (cmd_spec_progress): New function.
6307
6308         * retr.c (get_contents): Use the progress_* functions instead of
6309         the old show_progress().
6310         (show_progress): Removed.
6311         (rate): Print "xxxx.xx K/s" instead of "KB/s".  Ditto for MB/s,
6312         etc.
6313
6314         * progress.c (set_progress_implementation): New function.
6315         (valid_progress_implementation_p): Ditto.
6316         (progress_create): Ditto.
6317         (progress_update): Ditto.
6318         (progress_finish): Ditto.
6319         (dp_create): Ditto.
6320         (dp_update): Ditto.
6321         (dp_finish): Ditto.
6322         (dp_set_params): Ditto.
6323         (print_elapsed): Ditto.
6324
6325 2001-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
6326
6327         * retr.c (show_progress): Use it.
6328
6329         * log.c (log_set_flush): New function.
6330
6331 2001-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
6332
6333         * utils.c (path_simplify): Don't remove trailing slashes.
6334
6335         * ftp.c (ftp_get_listing): Use it.
6336
6337         * utils.c (file_merge): New function.
6338
6339         * url.c (opt_url): Removed.
6340
6341         * recur.c (recursive_retrieve): Inline "opt_url" logic.
6342
6343         * main.c (main): Use xfree(), not free().
6344
6345         * url.c (rewrite_url_maybe): Renamed to rewrite_shorthand_url.
6346
6347         * ftp.c (ccon): Move `ccon' typedef here, since it's only used
6348         internally.
6349
6350         * config.h.in: Include a stub for HAVE_STRPBRK.
6351
6352         * cmpt.c (strpbrk): Include a replacement for systems without
6353         strpbrk().
6354
6355         * ftp.c: Use url_set_dir and url_set_file when modifying the URL.
6356
6357         * url.c (url_set_dir): New function.
6358         (url_set_file): Ditto.
6359
6360         * ftp-basic.c (ftp_process_type): Process FTP type here; the URL
6361         parser makes the URL "params" available, so we can do that in this
6362         function.
6363
6364         * retr.c: Ditto.
6365
6366         * ftp.c: Ditto; pass the local file information in `ccon'.
6367
6368         * http.c: Get rid of the ugly kludge that had URL being replaced
6369         with the proxy URL when proxy retrieval was requested.  Use a
6370         separate parameter to http_loop and gethttp for the proxy URL.
6371
6372         * http.c: Changed to reflect the fact that local file, proxy, and
6373         referer information are no longer stored in struct url.  The local
6374         file information is passed in `struct hstat' now.
6375
6376         * url.c: Reworked URL parsing to be more regular.  Reencode the
6377         URL using reencode_string.
6378         Removed non-URL-related information from struct url.  This
6379         includes fields `proxy', `local', and `referer'.
6380
6381 2001-11-22  Jochen Hein  <jochen@jochen.org>
6382
6383         * main.c (main): Split the copyright notice for easier
6384         translation.
6385
6386 2001-08-21  Dave Turner <dct25@hermes.cam.ac.uk>
6387
6388         * ftp-basic.c (ftp_size): New function to send non-standard SIZE
6389           command to server to request file size.
6390         * ftp.h (ftp_size): Export it.
6391         * ftp.c (getftp): Use new ftp_size function if restoring
6392           transfer of a file with unknown size.
6393
6394 2001-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
6395
6396         * url.c (parseurl): Don't depend on the now-obsolete TYPE.
6397
6398 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6399
6400         * url.c (getproxy): Handle URL shorthands.
6401
6402 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6403
6404         * main.c: Remove --wait / --waitretry backwards compatibility
6405         code.
6406         
6407 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6408
6409         * main.c (main): Use it.
6410
6411         * url.c (rewrite_url_maybe): New function.
6412
6413 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6414
6415         * url.c: Clean up handling of URL schemes.
6416
6417 2001-05-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6418
6419         * url.c: Get rid of `protostrings'.
6420         (skip_proto): Don't use protostrings.
6421         (has_proto): Ditto.
6422
6423 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
6424
6425         * Makefile.in: Conditionally compile getopt.o.
6426
6427 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
6428
6429         * md5.h: Renamed to gnu-md5.h.
6430
6431         * md5.c: Renamed to gnu-md5.c.
6432
6433         * http.c: Ditto.
6434
6435         * ftp-opie.c: Use the new macros.
6436
6437         * sysdep.h: Define md5-related macros.
6438
6439         * config.h.in: Define HAVE_SOLARIS_MD5 or HAVE_BUILTIN_MD5
6440         depending on which md5 implementation is used.
6441
6442 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
6443
6444         * res.c (res_register_specs): Initialize OLD and HP_OLD to appease
6445         the compiler.
6446
6447 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
6448
6449         * http.c (gethttp): Print the whole response line when printing
6450         headers is requested.
6451
6452 2001-05-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6453
6454         * res.c: New file.  Implement all RES-related code here.
6455
6456 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
6457
6458         * version.c: Wget 1.7.1 is released.
6459
6460 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
6461
6462         * headers.c (header_extract_number): Ignore trailing whitespace.
6463
6464 2001-08-24  Ian Abbott  <abbotti@mev.co.uk>
6465
6466         * html-url.c (collect_tags_mapper): Fix bug converting links
6467         with -k option for tags with multiple link attributes by
6468         handling links in the order they appear.
6469
6470 2001-08-15  Ian Abbott  <abbotti@mev.co.uk>
6471
6472         * ftp.c (ftp_loop_internal): Avoid a potential buffer overflow in
6473           the call to the 'rate' function by moving it past the error
6474           checking for the 'getftp' function return value.
6475
6476 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
6477
6478         * html-parse.c (advance_declaration): Use 0x22 instead of '"' or
6479         '\"'.  Different compilers' assert macros are broken in different
6480         ways.
6481
6482 2001-09-29  Christian Fraenkel  <c.fraenkel@gmx.net>
6483
6484         * http.c (gethttp): print debug output for errors occuring during
6485         the ssl handshake.
6486
6487 2001-11-16  Chris Seawood  <cls@seawood.org>
6488
6489         * init.c: Ditto.
6490
6491         * host.c: Ditto.
6492
6493         * connect.c: Ditto.
6494
6495         * sysdep.h: Support compilation under BEOS.
6496
6497 2001-06-08  Edward J. Sabol  <sabol@alderaan.gsfc.nasa.gov>
6498
6499         * url.c (url_equal): Fix a memory leak when parseurl returns an
6500         error on the second URL. Also, since url_equal is not used at the
6501         moment, do not compile it.
6502
6503         * url.h: Ditto for the prototype of url_equal.
6504
6505 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
6506
6507         * html-parse.c (map_html_tags): Support XML-style empty tags.
6508
6509 2001-06-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6510
6511         * wget.h (DO_REALLOC_FROM_ALLOCA): Check for do_realloc_newsize in
6512         loop condition because we're no longer setting SIZEVAR here.
6513
6514 2001-06-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6515
6516         * wget.h (DO_REALLOC_FROM_ALLOCA): Set SIZEVAR after the memcpy()
6517         call because it needs the old value.
6518
6519 2001-06-18  Hrvoje Niksic  <hniksic@arsdigita.com>
6520
6521         * cookies.c (ATTR_NAME_CHAR): Allow almost any character to be in
6522         an attribute name.
6523
6524 2001-06-18  Hrvoje Niksic  <hniksic@arsdigita.com>
6525
6526         * url.c (url_filename): Make sure that slashes that sneak in to
6527         u->file via query string get protected.
6528         (file_name_protect_query_string): New function.
6529
6530 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6531
6532         * recur.c (recursive_retrieve): Also check undesirable_urls with
6533         canonicalized URL.
6534
6535 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6536
6537         * http.c (gethttp): Search `.netrc' with real host, not the proxy
6538         one.
6539
6540 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6541
6542         * sysdep.h (MAP_FAILED): Provide MAP_FAILED for systems that don't
6543         define it.
6544
6545 2001-06-09  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
6546
6547         * ftp.h: Provide correct prototype for ftp_parse_ls().
6548
6549 2001-06-04  Hrvoje Niksic  <hniksic@arsdigita.com>
6550
6551         * version.c: Wget 1.7 is released.
6552
6553 2001-06-03  Karl Eichwalder  <ke@suse.de>
6554
6555         * ftp-ls.c (ftp_parse_ls): Fix typo.
6556
6557 2001-05-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6558
6559         * all: Update copyright information.
6560
6561 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6562
6563         * http.c (gethttp): Indicate that the continued download failed
6564         for *this* file.
6565
6566 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6567
6568         * version.c: Wget 1.7-pre1 is released.
6569
6570 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6571
6572         * version.c: Updated version to 1.7-pre1.
6573
6574 2001-05-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6575
6576         * gen_sslfunc.c: Don't include <sys/time.h> directly.
6577
6578 2001-05-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6579
6580         * http.c (gethttp): Use real URL data for cookies, not the proxy
6581         stuff.
6582
6583 2001-05-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6584
6585         * main.c (print_help): Document `--no-http-keep-alive'.
6586
6587         * utils.c (numdigit): Handle negative numbers *correctly*.
6588
6589         * hash.c (make_nocase_string_hash_table): Use term "nocase" rather
6590         than the confusing "unsigned".
6591
6592         * utils.c (string_set_contains): Renamed from string_set_exists.
6593
6594         * hash.c (hash_table_contains): Renamed from hash_table_exists.
6595
6596         * cookies.c: Move case-insensitive hash tables to hash.c.
6597
6598 2001-05-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6599
6600         * http.c (gethttp): Before concluding that the file is already
6601         fully retrieved, make sure that the file existed and `Range' was
6602         actually requested.
6603
6604 2001-05-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6605
6606         * cookies.c (eliminate_dups): New function.
6607         (build_cookies_request): Use it.
6608         (build_cookies_request): Set chain_store_size after reallocating
6609         all_chains.
6610         (check_domain_match): Annotated for easier future debugging.
6611         (store_cookie): In the debug message, print whether the cookie is
6612         permanent.
6613
6614 2001-05-08  Hrvoje Niksic  <hniksic@arsdigita.com>
6615
6616         * http.c (http_loop): Reset no_truncate before deciding whether to
6617         set it.
6618         (gethttp): Further clarify "-c conflicts with existing file" error
6619         message, based on input from Herold Heiko.
6620
6621 2001-05-07  Hrvoje Niksic  <hniksic@arsdigita.com>
6622
6623         * http.c (http_loop): If restval is set, set no_truncate to 1
6624         unconditionally.
6625
6626 2001-05-02  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
6627
6628         * ftp-ls.c (ftp_parse_winnt_ls): Assure months are being correctly
6629         converted. Pointed out by <Stefan.Weil@de.heidelberg.com>.
6630         (ftp_parse_vms_ls): Ditto.
6631
6632 2001-04-30  Hrvoje Niksic  <hniksic@arsdigita.com>
6633
6634         * init.c (cmd_address): Zero SIN before using it; apparently
6635         needed on *BSD.
6636
6637 2001-04-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6638
6639         * ftp.c (ftp_loop_internal): Don't set NO_TRUNCATE if the file is
6640         empty.
6641
6642 2001-04-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6643
6644         * main.c (main): Make `--cookies' respect its argument.
6645
6646 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
6647
6648         * main.c (main): Removed undocumented option `--email-address'.
6649
6650         * netrc.c: Use the latest read_whole_line.
6651
6652         * init.c (defaults): Set opt.ftp_pass to "-wget@".
6653
6654         * mswindows.c (pwd_cuserid): Ditto.
6655
6656         * utils.c (pwd_cuserid): Removed.
6657
6658         * host.c (ftp_getaddress): Removed.
6659
6660 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
6661
6662         (http_loop): Allocate space for filename_plus_orig_suffix with
6663         alloca; this is more efficient and removes the need to free it
6664         before each and every return.
6665
6666 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
6667
6668         * http.c (gethttp): Return RETRUNNEEDED when the retrieval is
6669         unneeded because the file is already there and fully downloaded,
6670         and -c is specified.
6671         (http_loop): Handle RETRUNNEEDED.
6672
6673         * wget.h (uerr_t): New value RETRUNNEEDED.
6674
6675         * http.c (http_loop): Set no_truncate for files that both exist
6676         and are non-empty.
6677         (gethttp): Consider the download finished when restval >= contlen,
6678         not only when restval==contlen.
6679         (gethttp): Handle redirection before giving up due to -c.
6680         (gethttp): Clarify error message which explains that -c will not
6681         truncate the file.
6682         (gethttp): When returning CONTNOTSUPPORTED, don't forget to free
6683         the stuff that needs freeing and release the socket.
6684
6685 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6686
6687         * main.c (print_help): Wget booleans accept "off", not "no".
6688
6689 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6690
6691         * http.c (http_loop): If allow_cache is zero, always disable
6692         caching, not only when retrieving through proxy.
6693
6694         * init.c: Ditto.
6695
6696         * options.h (struct options): Rename proxy_cache to allow_cache.
6697
6698 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6699
6700         * http.c (mktime_from_utc): Improve documentation.
6701         (http_atotm): Put format strings into a separate array.
6702
6703 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6704
6705         * safe-ctype.h: Instead of throwing #error when isalpha is
6706         defined, redefine it to something that will throw a compile-time
6707         error if actually *used*.  Do the same for the rest of the
6708         standard C macros.
6709
6710 2001-04-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6711
6712         * url.c (getproxy): Ignore empty proxy vars.
6713
6714 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6715
6716         * http.c (http_loop): Would load cookies every time.
6717
6718         * cookies.c (load_cookies): Handle cookies whose values contain
6719         embedded spaces.
6720
6721 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6722
6723         * utils.c: Define each DIGITS_* in one line.
6724
6725 2001-04-25  Roger L. Beeman  <beeman@cisco.com>
6726
6727         * http.c (http_atotm): Initialize t.tm_isdst to 0.
6728         (mktime_from_utc): Prevent mktime() from having discontinuities at
6729         DST transition points.
6730
6731 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6732
6733         * html-url.c (get_urls_html): Fix documentation.
6734
6735 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6736
6737         * url.c (UNSAFE_CHAR): Reimplement using a static table.
6738         (url_init): Removed.
6739         (init_unsafe_char_table): Removed.
6740
6741 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6742
6743         * snprintf.c (dopr): Replace ISDIGIT with '0' <= ch && ch <= '9'.
6744
6745 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6746
6747         * utils.c: Document timer functions.
6748
6749         * retr.c (rate): Use it.
6750         (rate): Print in GB/s if transfer rate exceeds 1 GB/s.
6751
6752         * utils.c (wtimer_granularity): New function.
6753
6754 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6755
6756         * retr.c (show_progress): Ditto.
6757
6758         * ftp.c (getftp): Ditto.
6759
6760         * http.c (gethttp): Use new timer functions.
6761
6762         * utils.c (wtimer_allocate): New function.
6763         (wtimer_new): Ditto.
6764         (wtimer_delete): Ditto.
6765         (wtimer_reset): Ditto.
6766         (wtimer_elapsed): Ditto.
6767
6768 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6769
6770         * utils.c (long_to_string): New, faster version.  Favors smaller
6771         numbers; much of the calculation is now done at compile-time.
6772
6773 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6774
6775         * utils.c (numdigit): Handle negative numbers.
6776
6777 2001-04-23  Hrvoje Niksic  <hniksic@arsdigita.com>
6778
6779         * retr.c (show_progress): Print the download rate even when the
6780         percentages are not available.
6781
6782 2001-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
6783
6784         * ftp.c (getftp): Adjust expected_bytes if the length is
6785         authoritative.
6786
6787 2001-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6788
6789         * url.c: Don't declare `construct'.
6790
6791         * hash.c (grow_hash_table): Speed up rehashing; inline storing of
6792         mappings to new locations.
6793         (hash_table_new): Make resize_threshold a field in the hash table,
6794         so we don't have to recalculate it in each hash_table_put.
6795         (grow_hash_table): Update resize_threshold.
6796         (MAX): Remove unused macro.
6797         (prime_size): Made static.
6798
6799 2001-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6800
6801         * retr.c (retrieve_url): Call uri_merge, not url_concat.
6802
6803         * html-url.c (collect_tags_mapper): Call uri_merge, not
6804         url_concat.
6805
6806         * url.c (mkstruct): Use encode_string instead of xstrdup followed
6807         by URL_CLEANSE.
6808         (path_simplify_with_kludge): Deleted.
6809         (contains_unsafe): Deleted.
6810         (construct): Renamed to uri_merge_1.
6811         (url_concat): Renamed to uri_merge.
6812
6813 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6814
6815         * url.c (str_url): Use encode_string instead of the unnecessary
6816         CLEANDUP.
6817         (encode_string_maybe): New function, returns input string if no
6818         encoding is needed.
6819         (encode_string): Call encode_string_maybe to do the dirty work,
6820         xstrdup if no work needed.
6821
6822 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6823
6824         * wget.h (XDIGIT_TO_xchar): Define here.
6825
6826         * url.c (decode_string): Use new name.
6827         (encode_string): Ditto.
6828
6829         * http.c (XDIGIT_TO_xchar): Rename HEXD2asc to XDIGIT_TO_xchar.
6830         (dump_hash): Use new name.
6831
6832         * wget.h: Rename ASC2HEXD and HEXD2ASC to XCHAR_TO_XDIGIT and
6833         XDIGIT_TO_XCHAR respectively.
6834
6835 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6836
6837         * init.c: Include cookies.h.
6838
6839         * cookies.h: Declare cookies_cleanup.
6840
6841         * cookies.c (check_domain_match): Remove unused variable.
6842         (save_cookies): Remove extraneous argument from debug statement.
6843
6844         * host.c (same_host): Don't call skip_url.
6845
6846         * url.c (skip_url): Removed.  Removed its calls from various
6847         functions in url.c.
6848
6849 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6850
6851         * cookies.c (unsigned_string_hash): Use the new code in
6852         string_hash as reference.
6853
6854         * hash.c (hash_table_map): Allow deletion and change of the
6855         element processed by MAPFUN.
6856         (string_hash): Use the function from glib.
6857
6858 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6859
6860         * config.h.in: Include #undef stub.
6861
6862         * hash.c (hash_table_remove): Rewrite to actually clear deleted
6863         entries instead of just marking them as deleted.
6864
6865 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6866
6867         * hash.h: Declare hash_table_get_pair and hash_table_count.
6868
6869 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6870
6871         * cookies.c: Declare http_atotm.
6872
6873 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6874
6875         * ftp-ls.c (ftp_parse_unix_ls): Use octal constants for
6876         permissions.  A compiler that doesn't accept octal constants is
6877         seriously broken and shouldn't be used -- octal constants were
6878         present in K&R C!
6879
6880 2001-01-20  Karl Eichwalder  <ke@suse.de>
6881
6882         * Makefile.in: Provide and use DESTDIR according to the Coding
6883         Standards.
6884
6885 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6886
6887         * ftp-ls.c (ftp_parse_vms_ls): Make seconds optional in time
6888         specification.
6889
6890 2001-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6891
6892         * url.c (parseurl): Don't strip trailing slash when u->dir is "/"
6893         because that strips the *leading* slash, thus forcing relative
6894         FTP retrieval.
6895
6896 2001-04-10  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
6897
6898         * ftp.c (getftp): Convert initial FTP directory from VMS to UNIX
6899         notation for VMS servers. 
6900         (ftp_retrieve_dirs): Do not prepend '/' to f->name when
6901         odir is an empty string.
6902
6903 2001-04-10  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
6904
6905         * ftp-ls.c (ftp_parse_winnt_ls): Made the fix for AM/PM more
6906         effective. Suggested by Edward J. Sabol.
6907
6908 2001-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6909
6910         * cookies.c (build_cookies_request): Use and sort cookies from all
6911         matching domains.
6912         (build_cookies_request): Check for duplicates before generating
6913         the `Cookies' header.
6914
6915         * main.c (main): Don't load cookies here.
6916         (main): Make loadcookies and savecookies call the correct command.
6917
6918         * http.c (http_loop): Load cookies on-demand.
6919
6920 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6921
6922         * http.c (gethttp): Fix indentation of SSL ifdef.
6923
6924 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6925
6926         * ftp.c (ftp_retrieve_dirs): Don't forcibly prepend "/" to u->dir;
6927         that hack is no longer necessary.
6928         (getftp): Prepend initial directory to *non*-absolute u->dir's.
6929
6930 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6931
6932         * init.c (cmd_file): New function.
6933         (enable_tilde_expansion): New variable.
6934         (run_wgetrc): Use it.
6935         (cmd_file): Use it.
6936
6937 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
6938
6939         * init.c: Include cookie-related options.
6940
6941         * main.c (main): Include cookie-specific options.
6942         (main): Load cookies before download is finished.
6943         (main): Save cookies when done.
6944
6945         * http.c (gethttp): Process the `Set-Cookie' header.
6946         (gethttp): Include cookies in the response.
6947
6948         * cookies.c: New file.
6949
6950 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
6951
6952         * utils.c (datetime_str): New function.
6953
6954 2001-04-08  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
6955
6956         * ftp-ls.c (ftp_parse_winnt_ls): The AM/PM change did assume
6957         12:01PM == 00:01, which was obviously wrong. Taken care of this
6958         anomaly.
6959
6960         * ChangeLog: Removed an excess conflict marker. Reformatted the
6961         entry by Philipp Thomas from 2001-03-09.
6962
6963         * ftp-ls.c (ftp_parse_winnt_ls): Ensure that adjusted PM hours lay
6964         between 0 and 23. Elminate unused variable `sec'.
6965
6966 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
6967
6968         * hash.c (hash_table_count): New function.
6969
6970 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6971
6972         * utils.c (read_file): Cast MAP_FAILED to char *.  Enforced by
6973         Digital Unix cc.
6974
6975 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6976
6977         * config.h.in: Oops, do the namespace tweaks only on systems we
6978         know about.
6979
6980 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6981
6982         * hash.c: Include <string.h>.
6983
6984 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6985
6986         * config.h.in: Define "compilation environment" options that work
6987         under Linux and Solaris.  To be reviewed on other OS'es.
6988
6989 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6990
6991         * http.c (gethttp): Prepend literal newline with `\n\'.
6992
6993 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6994
6995         * sysdep.h: Don't define VERY_LONG_FORMAT.
6996
6997         * utils.c (very_long_to_string): New function.
6998         (legible_very_long): Use it; don't use VERY_LONG_FORMAT.
6999
7000 2001-04-04  Christian Fraenkel  <christian.fraenkel@gmx.net>
7001
7002         * url.c (parse_uname): Would run past the end of the string if the
7003         username was present, but the URL did not contain a slash, e.g.
7004         http://foo:bar@myhost.
7005
7006 2001-04-03  KOJIMA Hajime  <kjm@rins.ryukoku.ac.jp>
7007
7008         * http.c (http_atotm): Use %A instead of %a to match full
7009         weekday.  (On most systems there is no difference.)
7010
7011 2001-04-03  Paul Bludov  <paul@ozero.net>
7012
7013         * mswindows.c (sleep): Use SleepEx() instead of Sleep().
7014         (ws_changetitle): Use alloca() instead of malloc() to avoid memory
7015         leak.
7016         (ws_mypath): Use GetModuleFileName instead of argv[0].
7017         (ws_startup): Use data.wVersion for comparison.
7018
7019 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7020
7021         * http.c (http_loop): Ditto.
7022
7023         * ftp.c (ftp_loop_internal): Made the check whether to continue
7024         retrieval `-O'-friendly.
7025
7026 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7027
7028         * netrc.c (parse_netrc): Don't trim the line endings explicitly;
7029         they will be handled as whitespace.
7030         (parse_netrc): Correctly handle lines that end with whitespace.
7031
7032 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7033
7034         * retr.c (retrieve_url): New variable global_download_count used
7035         to identify first retrieval.
7036
7037         * ftp.c (getftp): Ditto.
7038
7039         * http.c (gethttp): Rewind opt.dfp only on first retrieval.
7040
7041 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7042
7043         * init.c (cmd_address): Heap-allocate the address that gets stored
7044         to CLOSURE.  Old code would simply assign an address on the stack.
7045
7046 2001-04-01  Nicolas Lichtmaier <nick@debian.org>
7047
7048         * ftp.c (ftp_get_listing): Propagate error status.
7049         (ftp_retrieve_glob): Use it.
7050         (ftp_loop): Ditto.
7051
7052 2001-04-01  Nicolas Lichtmaier <nick@debian.org>
7053
7054         * main.c (main): Add -C to the string that is the third arg to
7055         getopt_long().
7056
7057 2001-04-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7058
7059         * ftp.c (getftp): Don't start the download from scratch if `-c'
7060         was specified, but the file is already fully downloaded.
7061
7062         * http.c (gethttp): Don't truncate a pre-existing file if `-c' was
7063         specified and the server doesn't support continued download.
7064         (gethttp): Don't start the download from scratch if `-c' was
7065         specified, but the file is already fully downloaded.
7066
7067 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7068
7069         (recursive_retrieve): Don't clear the hash tables at this point at
7070         all; it interferes with the normal operation of register_download.
7071
7072 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7073
7074         * recur.c (recursive_retrieve): Clear the hash tables only when
7075         they are defined.
7076
7077 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7078
7079         * http.c (gethttp): Make sure the socket is closed with
7080         CLOSE_INVALIDATE before we have drained the body.
7081
7082 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7083
7084         * retr.c (retrieve_url): Call register_download() for downloaded
7085         files and register_html() for downloaded HTML files.
7086
7087         * recur.c (register_download): New function; register here that a
7088         file has been downloaded, rather than in recursive_retrieve().
7089         (register_html): New function; enqueue the location of HTML files
7090         here rather than in recursive_retrieve().
7091
7092 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7093
7094         * main.c (print_help): Use multiple fputs instead of a single ugly
7095         printf().
7096         (main): Consistently assign numbers >128 to options without a
7097         corresponding character.
7098
7099 2001-03-09  Philipp Thomas  <pthomas@suse.de>
7100
7101         * safe-ctype.h: New file. Locale independent ctype.h replacement
7102         taken from libiberty.
7103
7104         * safe-ctype.c: New file. Tables for above.
7105
7106         * Makefile.in: Add safe-ctype$o to OBJS.  Add dependencies for
7107         safe-ctype$o.
7108
7109         * cmpt.c: Remove include of ctype.h. Use ISSPACE instead of
7110         isspace.
7111
7112         * ftp-basic.c: Don't include ctype.h.
7113
7114         * ftp-ls.c: Likewise.
7115
7116         * ftp.c: Likewise.
7117
7118         * headers.c: Likewise.
7119
7120         * host.c: Likewise.
7121
7122         * html-parse.c: Likewise.
7123
7124         * html-url.c: Likewise.
7125
7126         * http.c: Likewise.
7127
7128         * init.c: Likewise.
7129
7130         * main.c: Likewise. Set LC_CTYPE along with LC_MESSAGES.
7131
7132         * netrc.c: Likewise.
7133
7134         * recur.c: Likewise.
7135
7136         * retr.c: Likewise.
7137
7138         * snprintf.c: Replace ctype.h with safe-ctype.h. Use ISDIGIT
7139         instead of isdigit.
7140
7141         * sysdep.h: Remove defines of ctype macros as they aren't needed
7142         for safe-ctype-h.
7143
7144         * url.c: Don't include ctype.h.
7145
7146         * utils.c: Likewise.
7147
7148         * wget.h: Include safe-ctype.h.
7149
7150 2001-03-27  Dan Harkless  <wget@harkless.org>
7151
7152         * Makefile.in: Moved top_builddir out of "User configuration
7153         section" of top Makefile and analogous spot in this one.
7154
7155 2001-03-17  Dan Harkless  <wget@harkless.org>
7156
7157         * Makefile.in: Include @SSL_INCLUDES@ substition in INCLUDES.
7158         Define top_builddir.  Link wget with libtool so the user doesn't
7159         have to supply a bunch of custom environment variables to 
7160         correctly link with the OpenSSL shared libraries.
7161
7162 2001-03-06  Hack Kampbjorn  <hack@hackdata.com>
7163
7164         * http.c (gethttp): skip :port in host header if it is the
7165         DEFAULT_HTTPS_PORT when using SSL.
7166
7167         * url.c: move the #define of DEFAULT_HTTP_PORT, DEFAULT_FTP_PORT
7168         and DEFAULT_HTTPS_PORT to the header file so it can be use in the
7169         rest of the code. 
7170         * url.h: Ditto
7171
7172 2001-03-01  Jonas Jensen  <bones@huleboer.dk>
7173
7174         * retr.c (show_progress): Correctly calculate the number of bytes
7175         in the first line of the download that have been actually
7176         downloaded in this run.
7177
7178 2001-02-23  Dan Harkless  <wget@harkless.org>
7179
7180         * main.c (print_help): --help documentation for -N said it would
7181         re-download files if they had the _same_ timestamp on server.
7182         (print_help): -nr belongs in "FTP options" section of --help
7183         output, not "Recursive retrieval" section.  Alphabetized FTP
7184         options by long option name.
7185
7186 2001-02-16  Dan Harkless  <wget@harkless.org>
7187
7188         * init.c (commands): Hack Kampbjørn <hack@hackdata.com> discovered
7189         that "httpsproxy" had been inserted into commands[] out of
7190         alphabetical order, causing "BUG: unknown command `httpuser'".
7191
7192 2001-02-13  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7193
7194         * ftp-ls.c (ftp_parse_ls): Added support of ST_MACOS (Unix-like
7195         listing without correct permissons).
7196
7197         * ftp.h (stype): Added ST_MACOS to identify the NetPresenz MacOS
7198         FTP server. 
7199
7200         * ftp.c (ftp_retrieve_list): New mirroring logic: A remote file
7201         shall be donwloaded only when it's newer than the local copy or
7202         when it has the same timeestamp but its size is different. ST_VMS
7203         and ST_MACOS as special cases that lie about file size. 
7204
7205         * ftp-ls.c (ftp_parse_ls): Support for ST_MACOS.
7206
7207         * Makefile.in: Removed dependency on ftpparse library due to unclear
7208         copyright issues and absence of any feedback to our queries. 
7209
7210         * ftp-ls.c: Removed dependency on ftpparse library due to unclear
7211         copyright issues and absence of any feedback to our queries.   
7212         (ftp_parse_ls): Added a warning message when remote server system
7213         does not seem to be suported by wget. 
7214         (ftp_parse_vms_ls): New function for parsing VMS ftp
7215         server listing output.
7216         (clean_line): New function responsible for removing
7217         end-of-line characters from FTP listing texts.
7218
7219         * ftp.c (getftp): Global variables pwd and host_type are now
7220         member of the ccon structure under names ccon.id and ccon.rs. 
7221
7222         * ftp.h (struct ccon): Added formed global variables from ftp.c,
7223         enum stype rs (remote system identification) and char *id (initial
7224         working directory), as suggested by Hrvoje.
7225
7226         * url.c (parse_uname): Added support for passwords containing '@'
7227         characters.
7228         (skip_uname): Ditto.
7229
7230 2001-02-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7231
7232         * ftp.c (ftp_loop): Reset con.
7233
7234 2001-01-06  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7235
7236         * url.c (parse_uname): Added support for passwords containing '@'
7237         characters.
7238         (skip_uname): Ditto.
7239
7240 2001-02-11  Hack Kampbjørn  <hack@hackdata.com>
7241
7242         * url.c (parseurl): Debug-print u->ftp_type.
7243
7244 2001-02-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7245
7246         * ftp.c (ftp_loop_internal): Disable padding.
7247         (getftp): Ditto.
7248
7249         * http.c (http_loop): Disable padding.
7250
7251         * retr.c (show_progress): Use it to enable padding.
7252
7253         * retr.c (rate): Optional parameter PAD for padding the rate.
7254
7255 2001-02-10  Hrvoje Niksic  <hniksic@arsdigita.com>
7256
7257         * retr.c (show_progress): Make sure that the last output line
7258         includes progress.
7259
7260 2001-02-10  Jonas Jensen  <bones@huleboer.dk>
7261
7262         * retr.c (show_progress): Print the download rate along with the
7263         percentages.
7264         Along with Anders Thorsby <anders@thorsby.dk>.
7265
7266 2001-02-10  Tim Mooney  <mooney@dogbert.cc.ndsu.NoDak.edu>
7267
7268         * ftp.h: Rename enums `command' to `wget_ftp_command' and
7269         `fstatus' to `wget_ftp_status' because old names clash with Tru64
7270         net/if.h.
7271
7272 2001-02-08  Christian Fraenkel <christian.fraenkel@gmx.net>
7273
7274         * gen_sslfunc.c: verify_callback is now static
7275
7276         * gen_sslfunc.c (init_ssl): load certificate if specified
7277
7278         * gen_sslfunc.c (ssl_printerr): new function
7279
7280         * init.c: added new --sslcertfile and --sslcertkey switches
7281
7282         * main.c: ditto
7283
7284         * options.h: ditto
7285
7286         * http.c (gethttp): abort when init_ssl fails
7287
7288 2001-01-23  Herold Heiko  <Heiko.Herold@previnet.it>
7289
7290         * mswindows.h: Include <malloc.h>; it's needed for alloca().
7291
7292 2001-01-10  Dan Harkless  <wget@harkless.org>
7293
7294         * url.c (str_url): Clarified this function's comment header after
7295         Hrvoje answered my question on the list as to when hide != 1.
7296         Also Hrvoje pointed out I need to use xstrdup() on the string literal.
7297
7298 2001-01-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7299
7300         * connect.c (bindport): Declare addrlen as int.  Diagnosed by
7301         Drazen Kacar <dave@arsdigita.com>.
7302         (conaddr): Ditto.
7303
7304 2001-01-09  Dan Harkless  <wget@harkless.org>
7305
7306         * html-url.c: A bunch of fixup of `--page-requisites'-related
7307         comments to reflect Hrvoje's changes to my code when transplanting
7308         it into this new file, to fix spelling mistakes, to clarify, etc.
7309
7310         * url.c (write_backup_file): Clarified a comment.
7311         (str_url): Henrik van Ginhoven pointed out on the list that we
7312         shouldn't give away the number of characters in the password by
7313         replacing each character with a 'x'.  Use "<password>" instead.
7314
7315         * ftp.c (ftp_retrieve_dirs): The bug where recursion into FTP
7316         directories didn't work if logging in put you in a directory other
7317         than "/" is fixed now.  Removed the comment here warning of the bug.
7318
7319         * main.c (print_help): --continue's description was misleading.
7320         We don't "restart", we "resume".  Also, better to say
7321         "partially-downloaded file" rather than just "existing file".
7322
7323 2001-01-06  Dan Harkless  <wget@harkless.org>
7324
7325         * ChangeLog: The '[Not in 1.6 branch.]'s were decided not to be
7326         the best way to go about my aim.  Removed them in favor of:
7327
7328         * ChangeLog-branches/1.6_branch.ChangeLog: New file.
7329
7330 2001-01-04  Hrvoje Niksic  <hniksic@arsdigita.com>
7331
7332         * url.c (replace_attr): New function, to be used by both
7333         TO_COMPLETE and TO_RELATIVE case in convert_links.
7334         (find_fragment): New function for finding URL fragments.
7335         (replace_attr): Better handle the case where the original string
7336         is not quoted.  Use find_fragment.
7337         (convert_links): Use replace_attr().
7338
7339 2000-12-31  Dan Harkless  <wget@harkless.org>
7340
7341         * ChangeLog: Since this flat file doesn't have multiple branches,
7342         looking at the dates would make you think that things went into
7343         1.6 that actually just went into the 1.7-dev branch.  Added "[Not
7344         in 1.6 branch.]" where appropriate to clarify.
7345         
7346 2000-12-30  Dan Harkless  <wget@harkless.org>
7347
7348         * ftp.c, http.c:  Applied Hack Kampbjørn <hack@hackdata.com>'s
7349         patch to deal with h_errno not being defined in netdb.h under Cygwin.
7350
7351 2000-12-18  Csaba Raduly  <csaba.raduly@sophos.com>
7352
7353         * sysdep.h: Include <malloc.h> and <io.h> under Watcom.
7354
7355 2000-12-17  Igor Khristophorov  <igor@atdot.org>
7356
7357         * http.c (check_end): Fix test for '+' or '-'.
7358
7359 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
7360
7361         * url.c (parseurl): Rename inner loop var from i to ind to avoid
7362         clash with the function top-level-declared variable i.
7363         (str_url): Likewise, rename inner-loop i to j.
7364
7365         * recur.c (parse_robots): Don't declare LEN at top of function.
7366         (robots_match): Renamed parameter FORBIDDEN to avoid hiding of
7367         global variable.
7368
7369         * main.c (main): Change erroneous use of bitwise and to logical.
7370
7371         * init.c (cmd_address): Don't heap-allocate `sin'; it can be on
7372         the stack because it will be copied to closure.
7373
7374         Thanks to Csaba Raduly's run of PC-LINT over the sources.
7375
7376 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
7377
7378         * http.c (basic_authentication_encode): Use xmalloc(), not
7379         malloc().  Thanks to Csaba Raduly's run of PC-LINT over the
7380         sources.
7381
7382 2000-12-17  Csaba Raduly  <csaba.raduly@sophos.com>
7383
7384         * sysdep.h: Test for __EMX__ rather than for EMXOS2 for OS/2
7385         compilation.
7386
7387 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
7388
7389         * mswindows.c: Include <errno.h>.
7390
7391         * gen_sslfunc.c: Include <errno.h>.
7392
7393         * ftp-basic.c: Don't attempt to declare errno or h_errno because
7394         they're not used.
7395
7396         * main.c: Include <errno.h> because errno is used.
7397
7398         * ftp.c: Ditto.
7399
7400         * http.c: Include <netdb.h> for h_errno.
7401
7402 2000-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7403
7404         * html-parse.c (advance_declaration): MSVC assert() chokes on
7405         '\"'.  Use '"' instead.
7406
7407 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7408
7409         * utils.c (xfree_real): Removed.
7410         (xfree_debug): Just call free().
7411
7412         * wget.h (xfree): Make it an alias for free.
7413
7414 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7415
7416         * http.c (http_loop): Furthermore, touch output_document only if
7417         it is known to be an existing regular file.
7418
7419 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7420
7421         * ftp.c (ftp_retrieve_list): Ditto.
7422
7423         * http.c (http_loop): Touch output_document if that is used for
7424         output.
7425
7426 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7427
7428         * http.c: Include gen_sslfunc.h after including Wget's headers.
7429         (persistent_available_p): Needed coma before `int ssl'.
7430
7431 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7432
7433         * ftp.c (ftp_loop_internal): Ditto.
7434
7435         * http.c (http_loop): Use it.
7436
7437         * retr.c (sleep_between_retrievals): New function that handles the
7438         logic of opt.wait and opt.waitretry.
7439
7440 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7441
7442         * rbuf.h: Implement only a single version of RBUF_READCHAR, using
7443         rbuf_read_bufferful when the buffer is depleted.
7444
7445         * rbuf.c (rbuf_read_bufferful): New function.
7446
7447 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7448
7449         * gen_sslfunc.h: Use ansi2knr style function declarations.
7450
7451         * gen_sslfunc.c: Reformat according to the GNU coding standards.
7452         More should be done.
7453
7454         * http.c (persistent_available_p): Place the cheap SSL test nearer
7455         the top of the function.
7456         (CLOSE_FINISH, CLOSE_INVALIDATE): Define only one version of each.
7457
7458 2000-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
7459
7460         * url.c (init_unsafe_char_table): Reinstate space as an unsafe
7461         char.
7462
7463 2000-12-03  Christian Fraenkel <christian.fraenkel@gmx.net>
7464
7465         * Makefile.in: added gen_sslfunc object
7466         * config.h.in: added HAVE_SSL define
7467         * connect.c: changed select_fd from static int to int
7468         * connect.h: ditto
7469         * gen_sslfunc.h: New file
7470         * gen_sslfunc.c: ditto
7471         * http.c: added HTTPS fuctionality
7472         * retrc.c: ditto
7473         * url.c: ditto
7474         * init.c: added opt.httpsproxy
7475         * options.h: ditto
7476         * rbuf.h: added alternate rbuf struct
7477         * wget.h: added CONSSLERR
7478         * rbuf.c: ditto
7479
7480         * http.c: Added HTTPS fuctionality.
7481
7482         * retrc.c: Ditto.
7483
7484         * url.c: Ditto.
7485
7486         * init.c: Added opt.httpsproxy.
7487
7488         * options.h: Ditto.
7489
7490         * rbuf.h: Added alternate rbuf struct.
7491
7492         * wget.h: Added CONSSLERR.
7493
7494         * rbuf.c: Ditto.
7495
7496 2000-11-30  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7497
7498         * ftp-ls.c (ftp_parse_unix_ls): Added second parameter
7499         "ignore_perms" to ignore file and directory permissions for
7500         Windows NT FTP server listings.
7501         (ftp_parse_winnt_ls): New function.
7502         (ftp_parse_ls): Parses UNIX and Windows NT listings
7503         separately. Simple heuristics for distinguishing between UNIX and
7504         MS-DOS-like FTP listing provided by Windows NT FTP service.
7505
7506 2000-11-18  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7507
7508         * ftpparse.c, ftpparse.h: New files.
7509
7510         * ftp-ls.c (ftp_parse_ls): Use ftp_parse_unix_ls for UNIX servers
7511         only. Use ftp_parse_nonunix_ls otherwise.
7512         (ftp_parse_nonunix_ls): Stub to the ftpparse library handling all
7513         exotic FTP servers.
7514
7515         * ftp.h (stype): New enum, distinguishes UNIX, VMS, and "other"
7516         FTP servers.
7517
7518         * ftp.c: New static wariables host_type, pwd, and pwd_len. 
7519         (getftp): Support for VMS. Support for FTP servers that do not
7520         place you in the root directory after login.
7521         (ftp_retrieve_list): VMS is silent about the real file size, issue
7522         a more appropriate message.
7523         (ftp_get_listing): Pass host_type to ftp_parse_ls.
7524
7525         * ftp-basic.c (ftp_pwd, ftp_syst): New functions.
7526
7527 2000-11-30  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7528
7529         * ftp-ls.c (ftp_parse_unix_ls): Added second parameter
7530         "ignore_perms" to ignore file and directory permissions for
7531         Windows NT FTP server listings.
7532         (ftp_parse_winnt_ls): New function.
7533         (ftp_parse_ls): Parses UNIX and Windows NT listings
7534         separately. Simple heuristics for distinguishing between UNIX
7535         and MS-DOS-like FTP listing provided by Windows NT FTP service.
7536
7537 2000-11-29  John Summerfield  <summer@OS2.ami.com.au>
7538
7539         * netrc.c (parse_netrc): Get rid of line ending.
7540
7541 2000-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7542
7543         * ftp.c (ftp_retrieve_list): Undo typo "fix" until resolution by
7544         Dan.
7545
7546 2000-11-24  Karl Eichwalder  <ke@suse.de>
7547
7548         * main.c (print_help): Untabify.
7549
7550 2000-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7551
7552         * utils.c (xrealloc_debug): Do the unregister/register thing only
7553         if the pointer has actually changed.
7554         (xmalloc_real): Declare `static' in DEBUG_MALLOC builds.
7555         (xfree_real): Ditto.
7556         (xrealloc_real): Ditto.
7557         (xstrdup_real): Ditto.
7558
7559 2000-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
7560
7561         * ftp.c (getftp): ftp_getaddress() returns a malloc'ed copy of the
7562         string; no need to strdup() it.
7563         (getftp): Make pwd_len a local variable.
7564         (ftp_loop): Free PWD before returning.
7565
7566         * init.c (cleanup): Free opt.ftp_pass only if it's non-NULL.
7567
7568 2000-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
7569
7570         * all: Use xfree() instead of free.
7571
7572         * utils.c (xfree): New function.
7573
7574 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
7575
7576         * url.c (convert_links): HTML-quote the converted string.
7577
7578         * utils.c (html_quote_string): Move here from ftp-ls.c
7579         (html_quote_string): Make non-static; declare in utils.h.
7580         (html_quote_string): Convert SP to &#32;.
7581
7582 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
7583
7584         * ftp.c (getftp): Reformat Jan's code according to GNU coding
7585         standards; remove (debugging?) printf's; use '\0' for the ASCII
7586         zero character.  Use alloca() instead of malloc() for
7587         inter-function temporary allocations.
7588
7589 2000-11-18  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7590
7591         * ftpparse.c, ftpparse.h: New files.
7592
7593         * ftp-ls.c (ftp_parse_ls): Use ftp_parse_unix_ls for UNIX servers
7594         only. Use ftp_parse_nonunix_ls otherwise.
7595         (ftp_parse_nonunix_ls): Stub to the ftpparse library handling all
7596         exotic FTP servers.
7597
7598         * ftp.h (stype): New enum, distinguishes UNIX, VMS, and "other"
7599         FTP servers.
7600
7601         * ftp.c: New static wariables host_type, pwd, and pwd_len. 
7602         (getftp): Support for VMS. Support for FTP servers that do not
7603         place you in the root directory after login.
7604         (ftp_retrieve_list): VMS is silent about the real file size, issue
7605         a more appropriate message.
7606         (ftp_get_listing): Pass host_type to ftp_parse_ls.
7607
7608         * ftp-basic.c (ftp_pwd, ftp_syst): New functions.
7609
7610 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
7611
7612         * hash.c (hash_table_put): Don't overwrite deleted mappings.
7613
7614 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
7615
7616         * hash.c (find_mapping): New function.
7617         (hash_table_get): Use it.
7618         (hash_table_get_pair): Ditto.
7619         (hash_table_exists): Ditto.
7620         (hash_table_remove): Ditto.
7621         (hash_table_remove): Really delete the entry if the mapping
7622         following LOCATION is empty.
7623
7624         * utils.c (string_set_add): Check whether the element has existed
7625         before.
7626
7627         * hash.c (hash_table_get_pair): New function.
7628
7629 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
7630
7631         * http.c (http_process_type): Ignore trailing whitespace; use
7632         strdupdelim().
7633
7634         * recur.c (recursive_retrieve): Use the new `convert' field.
7635         (convert_all_links): Ditto.
7636         (convert_all_links): Don't respect meta_disallow_follow.
7637
7638         * html-url.c (handle_link): Fill out link_relative_p and
7639         link_complete_p.
7640
7641         * url.h (struct _urlpos): Make elements more readable.
7642
7643         * recur.c (recursive_retrieve): Call slist_prepend instead of
7644         slist_append.
7645         (convert_all_links): Call slist_nreverse before iterating through
7646         urls_html.
7647
7648         * utils.c (slist_prepend): New function.
7649         (slist_nreverse): Ditto.
7650
7651 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
7652
7653         * http.c (check_end): Constify.
7654
7655 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
7656
7657         * http.c (http_loop): If username and password are known, try the
7658         `Basic' authentication scheme by default.
7659
7660         * connect.h: Declare test_socket_open.
7661
7662 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
7663
7664         * version.c: Bump version from 1.5.3+dev to 1.7-dev.
7665
7666 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
7667
7668         * http.c (gethttp): Don't use the return value of sprintf().
7669         (gethttp): Inhibit keep-alive if opt.http_keep_alive is 0.
7670
7671 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
7672
7673         * recur.c (recursive_retrieve): Print the "so we don't load"
7674         debugging message only if we really don't load.
7675
7676         * http.c (gethttp): Inhibit keep-alive if proxy is being used.
7677         (gethttp): Don't request keep-alive if keep-alive is inhibited.
7678
7679 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7680
7681         * http.c (gethttp): Make the HTTP persistent connections more
7682         robust.
7683
7684 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7685
7686         * retr.c (get_contents): If use_expected, make sure that the
7687         appropriate amount of data is being read.
7688
7689         * http.c (gethttp): Check for both `Keep-Alive: ...' and
7690         `Connection: Keep-Alive'.
7691
7692         * wget.h (DEBUGP): Call debug_logprintf only if opt.debug is
7693         turned on.
7694
7695 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7696
7697         * http.c (connection_available_p): Use it.
7698
7699         * connect.c (test_socket_open): New function.
7700
7701         * http.c (gethttp): Support persistent connections.  Based on the
7702         ideas, and partly on code, by Sam Horrocks <sam@daemoninc.com>.
7703         (register_persistent): New function.
7704         (connection_available_p): Ditto.
7705         (invalidate_connection): Ditto.
7706
7707 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7708
7709         * url.c (convert_links): Handle UREL2ABS case.
7710
7711         * recur.c (recursive_retrieve): Instead of the list
7712         urls_downloaded, use hash tables dl_file_url_map and
7713         dl_url_file_map.
7714         (convert_all_links): Use them to retrieve data.
7715
7716         * host.c (clean_hosts): Free the hash tables.
7717
7718         * main.c (private_initialize): Call host_init().
7719
7720         * host.c (store_hostaddress): Use a saner, hash table-based data
7721         model.
7722         (realhost): Ditto.
7723         (host_init): Initialize the hash tables.
7724
7725 2000-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7726
7727         * utils.c (slist_append): Eviscerate NOSORT.  Hash tables are now
7728         used for what the sorted slists used to be used for.
7729         (slist_contains): Don't rely on the list being sorted.
7730         (slist_append): Simplify the code.
7731
7732         * recur.c (recursive_cleanup): Use free_string_set.
7733
7734         * utils.c (string_set_add, string_set_exists, string_set_free):
7735         New functions for easier freeing of hash tables whose keys are
7736         strdup'ed strings.
7737
7738         * recur.c (recursive_retrieve): Use the hash table functions for
7739         storing undesirable URLs.
7740
7741         * hash.c: New file.
7742
7743 2000-11-17  Hrvoje Niksic  <hniksic@arsdigita.com>
7744
7745         * main.c (private_initialize): Call url_init.
7746         (main): Call private_initialize.
7747
7748         * url.c (unsafe_char_table): New table.
7749         (UNSAFE_CHAR): Use it.
7750         (init_unsafe_char_table): New function.
7751         (url_init): New function; call init_unsafe_char_table.
7752
7753 2000-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
7754
7755         * mswindows.h: Define snprintf and vsnprintf to _snprintf and
7756         _vsnprintf respectively.
7757
7758 2000-11-15  Hrvoje Niksic  <hniksic@arsdigita.com>
7759
7760         * config.h.in: Do the _XOPEN_SOURCE and _SVID_SOURCE things only
7761         on Linux.
7762
7763 2000-11-15  Hrvoje Niksic  <hniksic@arsdigita.com>
7764
7765         * html-url.c (handle_link): Handle HTML fragment identifiers.
7766
7767         * recur.c (recursive_retrieve): If norobot info is respected and
7768         the file is specified not to be followed by robots, respect that.
7769
7770         * html-url.c (collect_tags_mapper): Handle <meta name=robots
7771         content=X>.  For us the important cases are where X is NONE or
7772         where X contains NOFOLLOW.
7773         (get_urls_html): Propagate that information to the caller.
7774
7775 2000-11-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7776
7777         * url.c (convert_links): Unlink the file we might be reading from
7778         before writing to it.
7779         (convert_links): Use alloca instead of malloc for
7780         filename_plus_orig_suffix.
7781
7782 2000-11-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7783
7784         * host.c (realhost): Add HOST to the list with quality==0 only if
7785         it wasn't already there.
7786         Based on analysis by Lu Guohan <feng@public.bjnet.edu.cn>.
7787
7788 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
7789
7790         * url.c (get_urls_file): Ditto.
7791         (convert_links): Ditto.
7792
7793         * html-url.c (get_urls_html): Use read_file() instead of
7794         load_file().
7795
7796         * utils.c (read_file): New function, instead of the old
7797         load_file().
7798         (read_file_free): Ditto.
7799
7800         * url.c (findurl): Search only for the supported protocols.
7801         (convert_links): Use fwrite() when writing out a region of
7802         characters.
7803
7804 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
7805
7806         * ftp-ls.c: Move html_quote_string and ftp_index here.
7807
7808         * url.c: Remove get_urls_html, since that's now in html-url.c.
7809
7810         * html-url.c: New file.
7811
7812         * html-parse.c: New file.
7813
7814 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
7815
7816         * init.c (run_wgetrc): Don't bother killing off '\r' since
7817         pars_line() skips whitespace at end of line anyway.
7818         (parse_line): Oops, it didn't.  Now it does.
7819
7820         * recur.c (parse_robots): Ditto here.
7821
7822         * ftp-ls.c (ftp_parse_unix_ls): Kill off the newline character
7823         manually because read_whole_line no longer does.
7824
7825         * utils.c (read_whole_line): Rewrite to: a) use less memory
7826         (reallocates to needed size after work), b) work faster -->
7827         fgets() instead of getc, c) be more correct --> doesn't kill the
7828         newline character at the end of line.
7829
7830 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
7831
7832         * init.c (comind): Initialize MAX to array size - 1.
7833
7834 2000-11-08  Hrvoje Niksic  <hniksic@arsdigita.com>
7835
7836         * url.c (construct): Changed last_slash[-1] to *(last_slash - 1).
7837         Suggested by Edward J. Sabol.
7838
7839 2000-11-08  Hrvoje Niksic  <hniksic@arsdigita.com>
7840
7841         * url.c (construct): Handle the case where host name is not
7842         followed by a slash.
7843
7844 2000-11-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7845
7846         * init.c: commands[] need to be sorted!  ("base" wasn't.)
7847
7848 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
7849
7850         * wget.h (DO_REALLOC_FROM_ALLOCA): Use braces to disambiguate
7851         `if'.
7852
7853 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
7854
7855         * url.c (construct): Insert unneeded initialization for the
7856         compiler to shut up.
7857
7858         * config.h.in: Define _XOPEN_SOURCE to 500 to get the prototype
7859         for strptime() (*duh*).  Define _SVID_SOURCE to get S_IFLNK which
7860         otherwise gets lost when you define _XOPEN_SOURCE.
7861
7862         * utils.c (touch): Include the file name in the error message.
7863         From Debian.
7864
7865 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
7866
7867         * log.c (logvprintf): Use vsnprintf() in all cases.  If necessary,
7868         resize the buffer to fit the formated message.  That way, messages
7869         of arbitrary size may be printed.
7870         (logvprintf): Use saved_append() to optionally log the last
7871         several lines of output.
7872         (logputs): Ditto.
7873         (log_close): Adapt to new data structures.
7874         (log_dump): Ditto.
7875         (redirect_output): Print messages to stderr, not to stdout.
7876
7877         * log.c (saved_append_1): New function.  Replaces the old logging
7878         system ("log all output until 10M characters") with a new, much
7879         more reasonable one ("log last screenful of text").
7880         (saved_append): New function; call saved_append_1.
7881         (free_log_line): New function.
7882
7883 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
7884
7885         * url.c (construct): Fix comment.
7886         (find_last_char): Document.
7887
7888 2000-11-04  Hrvoje Niksic  <hniksic@arsdigita.com>
7889
7890         * snprintf.c: New file.
7891
7892 2000-11-03  Hrvoje Niksic  <hniksic@arsdigita.com>
7893
7894         * wget.h: If HAVE_STDARG_H is not defined, don't declare argument
7895         types to logprintf() and debug_logprintf().
7896
7897 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7898
7899         * ftp.c (ftp_loop_internal): Hide the password from the URL when
7900         printing non-verbose.  Problem spotted by Dariusz Mlynarczyk
7901         <darekm@bydg.lomac.com.pl>.
7902
7903 2000-11-02  Junio Hamano  <junio@twinsun.com>
7904
7905         * ftp-basic.c (ftp_login): Make comparison case-insensitive.
7906
7907 2000-11-02  Tyler Riddle  <triddle@liquidmarket.com>
7908
7909         * http.c (known_authentication_scheme_p): Recognize NTML
7910         authentication.
7911         (create_authorization_line): Treat NTML the same as `Basic'.
7912
7913 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7914
7915         * retr.c (retrieve_url): Free url before returning.
7916         (retrieve_url): Free mynewloc before returning.
7917         Spotted by Mark A. Mankins <Mankins_Mark@prc.com>.
7918
7919 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7920
7921         * url.c (parseurl): Remove possible reading past the end of
7922         sup_protos[].  Spotted by Mark A. Mankins <Mankins_Mark@prc.com>.
7923
7924 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7925
7926         * main.c (main): In case of opt.downloaded overflowing, print
7927         <overflow> instead of a totally bogus random value.
7928
7929         * retr.c (retrieve_from_file): Ditto.
7930
7931         * recur.c (recursive_retrieve): Ditto.
7932
7933         * main.c (main): Ditto.
7934
7935         * http.c (http_loop): Ditto.
7936
7937         * ftp.c (ftp_loop_internal): Use downloaded_increase() instead of
7938         `+=', and downloaded_exceeds_quota() instead of the simple-minded
7939         check.
7940         (ftp_retrieve_list): Ditto.
7941         (ftp_retrieve_dirs): Ditto.
7942         (ftp_retrieve_glob): Ditto.
7943
7944         * retr.c (downloaded_increase): New function.  Notice overflows of
7945         opt.downloaded.
7946         (downloaded_exceeds_quota): Make sure that opt.downloaded is not
7947         used if it overflowed.
7948
7949         * options.h (struct options): New member downloaded_overflow.
7950
7951 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7952
7953         * wget.h (enum): Remove extra space after last enumeration.
7954
7955 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7956
7957         * main.c (main): Use legible_very_long() for printing
7958         opt.downloaded.
7959
7960         * utils.c (legible_1): New function that operates on strings and
7961         does the brunt of legible()'s work.
7962         (legible): Use legible_1().
7963         (legible_very_long): New function; dump the argument with
7964         sprintf(), and call legible_1().
7965
7966         * options.h (struct options): Use VERY_LONG_TYPE for
7967         opt.downloaded.
7968
7969         * sysdep.h (VERY_LONG_TYPE): Define it to have a 64-bit or greater
7970         type.
7971
7972         * config.h.in: Make sure that SIZEOF_LONG and SIZEOF_LONG_LONG get
7973         defined.  Define HAVE_LONG_LONG if long long is available.
7974
7975 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7976
7977         * utils.c (long_to_string): Update with a later, better version.
7978
7979 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7980
7981         * url.c (path_simplify_with_kludge): New function.
7982         (path_simplify_with_kludge): Disable it.  Instead...
7983         (parse_dir): ...make sure that at this point the right thing is
7984         done, i.e. that "query" part of the URL (?...) is always assigned
7985         to the file, never to the directory portion of the path.
7986
7987 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7988
7989         * retr.c (retrieve_url): Detect redirection cycles.
7990
7991 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7992
7993         * url.c (get_urls_html): Decode HTML entities using
7994         html_decode_entities.
7995
7996         * html.c (htmlfindurl): Don't count the `#' in numeric entities
7997         (&#NNN;) as an HTML fragemnt.
7998         (html_decode_entities): New function.
7999
8000 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8001
8002         * html.c (htmlfindurl): Fix recognition of # HTML fragments.
8003
8004 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8005
8006         * url.c (construct): Rewritten for clarity.  Avoids the
8007         unnecessary copying and stack-allocation the old version
8008         performed.
8009
8010 2000-10-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8011
8012         * ftp.c (getftp): Ditto.
8013
8014         * http.c (gethttp): Rewind the stream when retrying from scratch.
8015
8016 2000-10-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8017
8018         * retr.c (retrieve_url): Use url_concat() to handle relative
8019         redirections instead of /ad hoc/ code.
8020
8021         * url.c (url_concat): New function encapsulating weird
8022         construct().
8023         (urllen_http_hack): New function.
8024         (construct): When constructing new URLs, recognize that `?' does
8025         not form part of the file name in HTTP.
8026
8027 2000-10-13  Adrian Aichner  <adrian@xemacs.org>
8028
8029         * retr.c: Add msec timing support for WINDOWS.
8030         * retr.c (reset_timer): GetSystemTime() on WINDOWS.
8031         * retr.c (elapsed_time): Calculate delta time to msec on WINDOWS.
8032
8033 2000-10-27  Dan Harkless  <wget@harkless.org>
8034
8035         * retr.c (retrieve_url): Manually applied T. Bharath
8036         <TBharath@responsenetworks.com>'s patch to get wget to grok
8037         illegal relative URL redirects.  Reformatted and re-commented it.
8038
8039 2000-10-23  Dan Harkless  <wget@harkless.org>
8040
8041         * connect.c (make_connection and bindport): Manually applied Rob
8042         Mayoff <mayoff@dqd.com>'s 1.5.3 patch to add --bind-address,
8043         changing coding style to GNU's.
8044
8045         * ftp.c (ftp_loop_internal): --delete-after wasn't implemented for
8046         files downloaded via FTP.  Per a comment, .listing files were not
8047         counted towards number of bytes and files downloaded because they're 
8048         deleted anyway.  Well, they aren't under -nr, so count them then.
8049
8050         * init.c: Manually applied Rob Mayoff's 1.5.3 patch to add
8051         --bind-address, alphabetizing, changing coding style to GNU's,
8052         commenting, and renaming cmd_ip_address() to cmd_address() to
8053         imply hostnames also okay.
8054                 
8055         * main.c (main): --delete-after didn't delete the root of the
8056         tree.  Ignore --convert-links if --delete-after was specified.
8057         Manually applied Rob Mayoff's 1.5.3 patch to add --bind-address,
8058         fixing duplicate use of added-since-1.5.3 case value.
8059         (print_help): Clarified that --delete-after deletes local files.
8060         Rob forgot to add a line for his new --bind-address option.
8061                 
8062         * options.h (struct options): Manually applied Rob Mayoff's patch
8063         to add --bind-address (bind_address structure member).
8064                 
8065         * recur.c (recursive_retrieve): Improved comment; added DEBUGP().
8066         Ignore --convert-links if --delete-after was specified.
8067                 
8068         * retr.c (retrieve_from_file): Just added a DEBUGP().
8069                 
8070 2000-10-19  Dan Harkless  <wget@harkless.org>
8071
8072         * ftp.c (ftp_loop_internal): downloaded_file() enumerators changed.
8073         (getftp): Applied Piotr Sulecki <Piotr.Sulecki@ios.krakow.pl>'s
8074         patch to work around FTP servers that incorrectly respond to the
8075         "REST" command with the remaining size rather than the total file size.
8076                 
8077         * http.c (gethttp): Improved a comment and added code to tack on
8078         ".html" to text/html files without that extension when -E specified.
8079         (http_loop): Use new downloaded_file() enumerators and deal with
8080         the case of gethttp() called xrealloc() on u->local.
8081
8082         * init.c (commands): Added new "htmlextension" command.
8083         Also renamed John Daily's cmd_quad() to the more descriptive
8084         cmd_lockable_boolean(), alpha-sorted the CMD_DECLARE()s and
8085         removed duplicate cmd_boolean() declaration.
8086
8087         * main.c (print_help): Added my new -E / --html-extension option.
8088         (main): Undocumented --email-address option previously used -E synonym.
8089         Stole it away for the much more deserving --html-extension's use.
8090
8091         * options.h (struct options): Added html_extension field.
8092
8093         * url.c (convert_links): URL X that we saved as X.html locally due
8094         to -E needs to be backed up as X.orig, not X.html.orig.  Added comments.
8095         (downloaded_file): Now remembers if we added .html extension to a file.
8096
8097         * url.h (downloaded_file_t): Added extra enumerators to support above.
8098         (downloaded_file): Now takes and returns a downloaded_file_t.
8099
8100         * wget.h (unnamed "dt" enum): Added ADDED_HTML_EXTENSION enumerator.
8101         
8102 2000-10-09  Dan Harkless  <wget@harkless.org>
8103
8104         * html.c (htmlfindurl): Added unneeded initialization to quiet warning.
8105                 
8106         * main.c (print_help): Clarified what --retr-symlinks does.
8107         
8108 2000-09-15  John Daily  <jdaily@cyberdude.com>
8109
8110         * init.c: Add support for "always" and "never" values to allow
8111         .wgetrc to override commandline (useful e.g. with .pm files
8112         calling `wget --passive-ftp' when your firewall doesn't allow that).
8113
8114         * ftp.c (getftp): passive_ftp is first option to support always/never.
8115
8116 2000-08-30  Dan Harkless  <wget@harkless.org>
8117
8118         * ftp.c (ftp_retrieve_list): Use new INFINITE_RECURSION #define.
8119         
8120         * html.c: htmlfindurl() now takes final `dash_p_leaf_HTML' parameter.
8121         Wrapped some > 80-column lines.  When -p is specified and we're at a 
8122         leaf node, do not traverse <A>, <AREA>, or <LINK> tags other than 
8123         <LINK REL="stylesheet">.
8124         
8125         * html.h (htmlfindurl): Now takes final `dash_p_leaf_HTML' parameter.
8126         
8127         * init.c: Added new -p / --page-requisites / page_requisites option.
8128
8129         * main.c (print_help): Clarified that -l inf and -l 0 both allow
8130         infinite recursion.  Changed the unhelpful --mirrior description
8131         to simply give the options it's equivalent to.  Added new -p option.
8132         (main): Added some comments; handle new -p / --page-requisites.
8133         
8134         * options.h (struct options): Added new page_requisites field.
8135
8136         * recur.c: Changed "URL-s" to "URLs" and "HTML-s" to "HTMLs".
8137         Calculate and pass down new `dash_p_leaf_HTML' parameter to
8138         get_urls_html().  Use new INFINITE_RECURSION #define.
8139
8140         * retr.c: Changed "URL-s" to "URLs".  get_urls_html() now takes
8141         final `dash_p_leaf_HTML' parameter.
8142
8143         * url.c: get_urls_html() and htmlfindurl() now take final
8144         `dash_p_leaf_HTML' parameter.
8145
8146         * url.h (get_urls_html): Now takes final `dash_p_leaf_HTML' parameter.
8147
8148         * wget.h: Added some comments and new INFINITE_RECURSION #define.
8149         
8150 2000-08-23  Dan Harkless  <wget@harkless.org>
8151
8152         * main.c (print_help): -B / --base was not mentioned.
8153
8154 2000-08-22  Dan Harkless  <wget@harkless.org>
8155
8156         * main.c (print_help): Modified -nc description to mention that it
8157         also prevents the creation of multiple versions of the same file
8158         with ".<number>" suffixes.
8159
8160 2000-07-14  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8161
8162         * retr.c (retrieve_url): Consistently strdup opt.referer when
8163         setting u->referer.
8164
8165 2000-06-09  Dan Harkless  <wget@harkless.org>
8166
8167         * main.c (print_help): --help output for --waitretry was over 80 cols.
8168
8169 2000-06-09  Hrvoje Niksic  <hniksic@iskon.hr>
8170
8171         * url.c (encode_string): Fix comment.
8172         Suggested by Herold Heiko <Heiko.Herold@previnet.it>.
8173
8174 2000-06-01  Const Kaplinsky  <const@ce.cctpu.edu.ru>
8175
8176         * ftp.c (ftp_retrieve_list): Change permissions only on plain
8177         files.
8178
8179 2000-06-01  Hrvoje Niksic  <hniksic@iskon.hr>
8180
8181         * url.c (str_url): Print the port number only if it's different
8182         from the default port number for that protocol.
8183
8184 2000-05-22  Dan Harkless  <wget@harkless.org>
8185
8186         * main.c (print_help): Added --help line for Damir Dzeko
8187         <ddzeko@zesoi.fer.hr>'s until-now-undocumented --referer option.
8188         Removed comments that --referer and --waitretry were undocumented.
8189         Changed "`.wgetrc' command" to "`.wgetrc'-style command" on --help
8190         line for --execute.
8191
8192 2000-05-18  Hrvoje Niksic  <hniksic@iskon.hr>
8193
8194         * ftp.c (getftp): Ditto.
8195
8196         * http.c (gethttp): Check for return value of fclose/fflush.
8197
8198 2000-04-12  Hrvoje Niksic  <hniksic@iskon.hr>
8199
8200         * host.c (store_hostaddress): Instead of shifting ADDR, start
8201         copying from the correct address.
8202
8203 2000-04-12  Hrvoje Niksic  <hniksic@iskon.hr>
8204
8205         * http.c (gethttp): Don't free REQUEST -- it was allocated with
8206         alloca().
8207         Pointed out by Gisle Vanem <gvanem@eunet.no>.
8208
8209 2000-04-04  Dan Harkless  <wget@harkless.org>
8210
8211         * host.c (store_hostaddress): R. K. Owen's patch introduces a
8212         "left shift count >= width of type" warning on 32-bit
8213         architectures.  Got rid of it by tricking the compiler w/ a variable.
8214         
8215         * url.c (UNSAFE_CHAR): The macro didn't include all the illegal
8216         characters per RFC1738, namely everything above '~'.  It also
8217         generated a warning on OSes where char =~ unsigned char.  Fixed.
8218         
8219 1998-10-17  Hrvoje Niksic  <hniksic@srce.hr>
8220
8221         * http.c (http_process_type): Removed needless strdup(), a memory
8222         leak.
8223
8224 1998-09-25  Hrvoje Niksic  <hniksic@srce.hr>
8225
8226         * html.c (htmlfindurl): Set PH to the first occurrence of `#'.
8227
8228 1998-09-25  Simon Munton  <simonm@m4data.co.uk>
8229
8230         * init.c (wgetrc_file_name): Don't free HOME under Windows.
8231
8232 1998-12-01  "R. K. Owen"  <rkowen@Nersc.GOV>
8233
8234         * host.c (store_hostaddress): Fix for big endian 64-bit machines.
8235
8236 1998-12-01  Hrvoje Niksic  <hniksic@srce.hr>
8237
8238         * url.c (UNSAFE_CHAR): New macro.
8239         (contains_unsafe): Use it.
8240         (encode_string): Ditto.
8241
8242 1998-12-01  Hrvoje Niksic  <hniksic@srce.hr>
8243
8244         * main.c (i18n_initialize): Use LC_MESSAGES only if available.
8245
8246 2000-03-31  Hrvoje Niksic  <hniksic@srce.hr>
8247
8248         * Use TOUPPER/TOLOWER.
8249
8250 1998-12-22  Alexander V. Lukyanov  <lav@yars.free.net>
8251
8252         * ftp-opie.c (btoe): Zero-terminate OSTORE.
8253
8254 2000-03-21  Hrvoje Niksic  <hniksic@iskon.hr>
8255
8256         * wget.h (DO_REALLOC_FROM_ALLOCA): Ditto.
8257
8258         * sysdep.h (ISALNUM): New macro.
8259         (TOLOWER): Ditto.
8260         (TOUPPER): Ditto.
8261
8262 2000-03-10  Dan Harkless  <wget@harkless.org>
8263
8264         * html.c (idmatch): Implemented checking of my new --follow-tags
8265         and --ignore-tags options.
8266         
8267         * init.c (commands): Added comment reminding people adding new
8268         entries doing allocation to add corresponding freeing in cleanup().
8269         (commands): Added new followtags and ignoretags commands.
8270         (cleanup): Free storage for new followtags and ignoretags.
8271         
8272         * main.c: Use of "comma-separated list" was random -- normalized
8273         it.  Did some alphabetization.  Added comments pointing out
8274         "Options without arguments" and "Options accepting an argument"
8275         sections of long_options[].  Added new options --follow-tags and
8276         -G / --ignore-tags.  Added comment that Damir's --referer is
8277         currently undocumented.  Added comment that Heiko's --waitretry is
8278         partially undocumented (mentioned in --help but not in
8279         wget.texi).  Moved improperly sorted 24, 129, and 'G' cases.
8280         
8281         * options.h (struct options): Added new fields follow_tags and
8282         ignore_tags. 
8283         
8284         * wget.h: Added "#define EQ 0" so we can say "strcmp(a, b) == EQ".
8285         
8286 2000-03-02  Dan Harkless  <wget@harkless.org>
8287
8288         * ftp.c (ftp_loop_internal): Heiko introduced "suggest explicit
8289         braces to avoid ambiguous `else'" warnings.  Eliminated them.
8290         
8291         * http.c (gethttp): Dan Berger's query string patch is totally
8292         bogus.  If you have two different URLs, gen_page.cgi?page1 and
8293         get_page.cgi?page2, they'll both be saved as get_page.cgi and the
8294         second will overwrite the first.  Also, parameters to implicit
8295         CGIs, like "http://www.host.com/db/?2000-03-02" cause the URLs to
8296         be printed with trailing garbage characters, and could seg fault.
8297         Backing out the patch, which Dan B. informed me by email was just
8298         a kludge to download StarOffice from Sun made necessary due to
8299         wget's unconditional escaping of certain characters (room for an
8300         option there?).
8301         (http_loop): Heiko introduced "suggest explicit braces to avoid
8302         ambiguous `else'" warnings.  Eliminated them.
8303         
8304         * main.c: Heiko's --wait / --waitretry backwards compatibility
8305         code looks to have been totally untested -- automatic variable
8306         'wr' was used without being initialized, and a long int was passed
8307         into setval()'s char* val parameter.
8308         
8309         * recur.c (parse_robots): Applied Edward J. Sabol
8310         <sabol@alderaan.gsfc.nasa.gov>'s patch for Guan Yang's reported
8311         problem with "User-agent:<space>*<space>" lines in robots.txt.
8312         
8313         * url.c (parseurl, str_url): Removing Dan Berger's code (see
8314         http.c above for explanation).
8315         
8316 1999-08-25  Heiko Herold  <Heiko.Herold@previnet.it>
8317
8318         * ftp.c: Respect new option waitretry.
8319
8320 2000-01-30  Damir Dzeko  <ddzeko@zesoi.fer.hr>
8321
8322         * http.c (gethttp): Send custom Referer, if required.
8323
8324 1999-09-24  Charles G Waldman  <cgw@fnal.gov>
8325
8326         * netrc.c (parse_netrc): Allow passwords to contain spaces.
8327
8328         * netrc.c (parse_netrc): New function.
8329
8330 1999-09-17  Dan Berger  <dberger@ix.netcom.com>
8331
8332         * http.c (gethttp): Send it.
8333
8334         * url.c (parseurl): Detect query string in HTTP URL-s.
8335         (str_url): Print it.
8336
8337 2000-03-02  HIROSE Masaaki  <hirose31@t3.rim.or.jp>
8338
8339         * html.c (html_allow): Add <link href=...> and <script src=...>.
8340
8341 1999-05-02  andrew deryabin  <djsf@softhome.net>
8342
8343         * http.c (gethttp): Specify port in `Host' header only if it's
8344         different from 80.
8345
8346 1998-11-03  Edward J. Sabol  <sabol@alderaan.gsfc.nasa.gov>
8347
8348         * recur.c (recursive_retrieve): If a finite maximum depth is
8349         specified, and we're are already at that depth, don't download the
8350         HTML file for parsing.
8351
8352 2000-03-01  Dan Harkless  <wget@harkless.org>
8353
8354         * ftp.c (ftp_loop_internal): Call new downloaded_file() function,
8355         even though we don't do conversion on HTML files retrieved via
8356         FTP, so _current_ usage of downloaded_file() makes this call unneeded. 
8357         (ftp_retrieve_list): Added a comment saying where we need to
8358         stat() a .orig file if FTP'd HTML file conversion is ever implemented.
8359         (ftp_retrieve_list): "Local file '%s' is more recent," is sometimes
8360         a lie -- reworded as "Server file no newer than local file '%s' --".
8361         
8362         * http.c (http_loop): Fixed a typo and clarified a comment.
8363         (http_loop): When -K and -N are specified together, compare size
8364         and timestamp of server file X against local file X.orig (if
8365         extant) rather than converted local file X.
8366         (http_loop): "Local file '%s' is more recent," is sometimes a lie
8367         -- reworded as "Server file no newer than local file '%s' --".
8368         (http_loop): Call new downloaded_file() function to prevent
8369         wrongful overwriting of .orig file when -N is specified.
8370         
8371         * url.c (convert_links): When -K specified, only rename X to
8372         X.orig if downloaded_file() returns TRUE.  Otherwise when we skip
8373         file X due to -N, we clobber an X.orig from a previous invocation.
8374         (convert_links): Call the failsafe xstrdup(), not the real strdup().
8375         (convert_links): Added a note asking anyone who understands how
8376         multiple URLs can correspond to a single file to comment it.
8377         (downloaded_file): Added this new function.
8378         
8379         * url.h (downloaded_file): Added prototype for this new function
8380         as well as its downloaded_file_t enum type.
8381
8382         * wget.h (boolean): Added this new typedef and TRUE and FALSE #defines.
8383
8384 2000-02-29  Dan Harkless  <wget@harkless.org>
8385
8386         * version.c: Upped version to developer-only "1.5.3+dev".
8387
8388 2000-02-18  Dan Harkless  <wget@harkless.org>
8389
8390         * init.c (backup_converted): Added this new option.
8391
8392         * main.c (-K / --backup-converted): Added this new option.
8393
8394         * options.h (backup_converted): Added this new option.
8395
8396         * url.c (convert_links): When backup_converted is specified, save
8397         file X as X.orig before converting.
8398
8399         * url.h (urlpos): Fixed typo -- said "Rekative" instead of "Relative".
8400
8401 1998-09-21  Hrvoje Niksic  <hniksic@srce.hr>
8402
8403         * version.c: Wget 1.5.3 is released.
8404
8405 1998-09-21  Hrvoje Niksic  <hniksic@srce.hr>
8406
8407         * host.c (ftp_getaddress): Don't warn when reverse-lookup of local 
8408         address doesn't yield FQDN.
8409
8410 1998-09-21  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
8411
8412         * cmpt.c (strerror): Fix declaration of sys_errlist.
8413
8414 1998-09-11  Hrvoje Niksic  <hniksic@srce.hr>
8415
8416         * main.c (main): Don't use an array subscript as the first
8417         argument to STRDUP_ALLOCA.
8418         From Kaveh R. Ghazi.
8419
8420 1998-09-11  Szakacsits Szabolcs  <szaka@sienet.hu>
8421
8422         * html.c (htmlfindurl): Download table background.
8423
8424 1998-09-11  Hans Grobler  <grobh@conde.ee.sun.ac.za>
8425
8426         * init.c (parse_line): Would free *com before allocating it.
8427         (parse_line): Would free com instead of *com.
8428
8429 1998-09-10  Howard Gayle  <howard@fjst.com>
8430
8431         * url.c (get_urls_html): Would drop the last character of the
8432         link.
8433
8434 1998-09-10  Hrvoje Niksic  <hniksic@srce.hr>
8435
8436         * http.c (http_loop): Don't print status code if quiet.
8437
8438 1998-09-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8439
8440         * log.c: Use <stdarg.h> only when __STDC__.
8441
8442 1998-09-10  Adam D. Moss  <adam@foxbox.org>
8443
8444         * html.c (htmlfindurl): Download <layer src=...>.
8445
8446 1998-09-10  Howard Gayle  <howard@fjst.com>
8447
8448         * ftp.c (ftp_retrieve_list): Don't update the time stamp of a file 
8449         not retrieved.
8450
8451 1998-06-27  Hrvoje Niksic  <hniksic@srce.hr>
8452
8453         * utils.c: Include <libc.h> on NeXT.
8454
8455 1998-06-26  Heinz Salzmann  <heinz.salzmann@intermetall.de>
8456
8457         * url.c (get_urls_html): Fix calculation of URL position.
8458
8459 1998-06-23  Hrvoje Niksic  <hniksic@srce.hr>
8460
8461         * version.c: Wget 1.5.2 is released.
8462
8463 1998-06-23  Dave Love  <d.love@dl.ac.uk>
8464
8465         * ftp.c, init.c, netrc.c: Include errno.h.
8466
8467         * http.c: Include errno.h and time header.
8468
8469         * Makefile.in (exext): Define.
8470         (install.bin, uninstall.bin): Use it.
8471
8472 1998-06-21  Hrvoje Niksic  <hniksic@srce.hr>
8473
8474         * http.c (http_loop): Don't attempt to compare local and remote
8475         sizes if the remote size is unknown.
8476
8477 1998-06-16  Hrvoje Niksic  <hniksic@srce.hr>
8478
8479         * url.c (get_urls_html): Use malloc() instead of alloca in the
8480         loop.
8481
8482 1998-06-13  Hrvoje Niksic  <hniksic@srce.hr>
8483
8484         * version.c: Wget 1.5.2-b4 is released.
8485
8486 1998-06-13  Hrvoje Niksic  <hniksic@srce.hr>
8487
8488         * url.c (get_urls_html): Ignore spaces before and after the URI.
8489
8490 1998-06-08  Wanderlei Antonio Cavassin  <cavassin@conectiva.com.br>
8491
8492         * ftp.c (getftp): Translate `done'.
8493
8494 1998-06-06  Hrvoje Niksic  <hniksic@srce.hr>
8495
8496         * version.c: Wget 1.5.2-b3 is released.
8497
8498 1998-06-06  Alexander Kourakos  <awk@bnt.com>
8499
8500         * init.c (cleanup): Close dfp, don't free it.
8501
8502 1998-06-06  Hrvoje Niksic  <hniksic@srce.hr>
8503
8504         * utils.c (make_directory): Twiddle.
8505
8506         * config.h.in: Added template for access().
8507
8508 1998-06-05  Mathieu Guillaume  <mat@cythere.com>
8509
8510         * html.c (htmlfindurl): Download <input src=...>
8511
8512 1998-06-03  Hrvoje Niksic  <hniksic@srce.hr>
8513
8514         * utils.c (file_exists_p): Use access() with two arguments.
8515
8516 1998-05-27  Martin Kraemer  <Martin.Kraemer@mch.sni.de>
8517
8518         * netrc.c (parse_netrc): Correct logic.
8519
8520 1998-05-27  Hrvoje Niksic  <hniksic@srce.hr>
8521
8522         * ftp.c (getftp): Added `break'; suggested by Lin Zhe Min
8523         <ljm@ljm.wownet.net>.
8524
8525 1998-05-24  Hrvoje Niksic  <hniksic@srce.hr>
8526
8527         * version.c: Wget 1.5.2-b2 is released.
8528
8529 1998-05-18  Juan Jose Rodriguez  <jcnsoft@jal1.telmex.net.mx>
8530
8531         * mswindows.h: Don't translate mkdir to _mkdir under Borland.
8532
8533 1998-05-17  Hrvoje Niksic  <hniksic@srce.hr>
8534
8535         * retr.c (elapsed_time): Return correct value when
8536         HAVE_GETTIMEOFDAY is undefined.
8537
8538 1998-05-13  Hrvoje Niksic  <hniksic@srce.hr>
8539
8540         * version.c: Wget 1.5.2-b1 is released.
8541
8542 1998-05-08  Hrvoje Niksic  <hniksic@srce.hr>
8543
8544         * getopt.c (_getopt_internal): Use exec_name instead of argv[0].
8545         (_getopt_internal): Don't translate `#if 0'-ed strings.
8546
8547 1998-05-06  Douglas E. Wegscheid  <wegscd@whirlpool.com>
8548
8549         * mswindows.c (ws_handler): Use fork_to_background().
8550
8551 1998-05-05  Hrvoje Niksic  <hniksic@srce.hr>
8552
8553         * version.c: Wget 1.5.1 is released.
8554
8555 1998-05-05  Hrvoje Niksic  <hniksic@srce.hr>
8556
8557         * http.c (parse_http_status_line): Avoid `minor' and `major'
8558         names.
8559
8560 1998-05-02  Hrvoje Niksic  <hniksic@srce.hr>
8561
8562         * utils.c (mkdirhier): Renamed to make_directory.
8563
8564 1998-05-01  Hrvoje Niksic  <hniksic@srce.hr>
8565
8566         * mswindows.c (fork_to_background): Define under Windows.
8567
8568         * utils.c (fork_to_background): New function.
8569
8570         * html.c (htmlfindurl): Removed rerdundant casts.
8571
8572 1998-05-01  Douglas E. Wegscheid  <wegscd@whirlpool.com>
8573
8574         * mswindows.c (ws_mypath): Cache the path.
8575
8576 1998-04-30  Douglas E. Wegscheid  <wegscd@whirlpool.com>
8577
8578         * ftp.h: Prefix enum ftype members with FT_.
8579
8580         * ftp-ls.c, ftp.c, html.h: Adjust accordingly.
8581
8582         * mswindows.h: Use stat under Borland, _stat under MSVC.
8583
8584 1998-04-28  Hrvoje Niksic  <hniksic@srce.hr>
8585
8586         * http.c (known_authentication_scheme_p): New function.
8587         (gethttp): Handle authorization more correctly.
8588
8589         * ftp-basic.h: Removed.
8590
8591         * cmpt.h: Removed.
8592
8593         * utils.c: Include <unistd.h> before <pwd.h>; needed under SunOS
8594         with gcc 2.8.
8595         (numdigit): Use `while' loop.
8596
8597         * http.c (create_authorization_line): Detect authentication
8598         schemes case-insensitively.
8599
8600         * http.c (extract_header_attr): Use strdupdelim().
8601         (digest_authentication_encode): Move declaration of local
8602         variables to smaller scope.
8603         (digest_authentication_encode): Reset REALM, OPAQUE and NONCE.
8604         (create_authorization_line): Detect authentication schemes
8605         case-insensitively.
8606
8607         * utils.c (touch): Constify.
8608
8609         * http.c (gethttp): Report a nicer error when no data is received.
8610
8611         * rbuf.h (RBUF_READCHAR): Ditto.
8612
8613         * ftp-basic.c (ftp_response): Use sizeof.
8614
8615 1998-04-27  Hrvoje Niksic  <hniksic@srce.hr>
8616
8617         * retr.c (print_percentage): EXPECTED is long, not int.
8618         (print_percentage): Use floating-point arithmetic to avoid
8619         overflow with large files' sizes multiplied with 100.
8620
8621 1998-04-27  Gregor Hoffleit  <flight@mathi.uni-heidelberg.de>
8622
8623         * config.h.in: Added pid_t stub.
8624
8625         * sysdep.h (S_ISREG): Moved here from mswindows.h (NeXT doesn't
8626         define it).
8627
8628 1998-04-20  Hrvoje Niksic  <hniksic@srce.hr>
8629
8630         * version.c: Wget 1.5.0 is released.
8631
8632 1998-04-18  Hrvoje Niksic  <hniksic@srce.hr>
8633
8634         * url.c (str_url): Ditto.
8635
8636         * ftp-basic.c (ftp_rest): Use new name.
8637
8638         * utils.c (long_to_string): Renamed from prnum().
8639
8640 1998-04-16  Hrvoje Niksic  <hniksic@srce.hr>
8641
8642         * version.c: Wget 1.5-b17 is released.
8643
8644 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
8645
8646         * headers.c (header_get): New argument FLAGS.
8647
8648         * http.c (gethttp): If request is malformed, bail out of the
8649         header loop.
8650         (gethttp): Check for empty header *after* the status line checks.
8651         (gethttp): Disallow continuations for status line.
8652
8653 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
8654
8655         * version.c: Wget 1.5-b16 is released.
8656
8657 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
8658
8659         * init.c (commands): Renamed `always_rest' to `continue'.
8660
8661 1998-04-05  Hrvoje Niksic  <hniksic@srce.hr>
8662
8663         * all: Use it.
8664
8665         * log.c (logputs): New argument.
8666         (logvprintf): Ditto.
8667         (logprintf): Ditto.
8668
8669 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
8670
8671         * http.c (http_atotm): Update comment.
8672
8673         * main.c (i18n_initialize): Set LC_MESSAGES, not LC_ALL.
8674
8675         * wget.h: Renamed ENABLED_NLS to HAVE_NLS.
8676
8677         * main.c (i18n_initialize): New function.
8678         (main): Use it.
8679
8680         * log.c: Include <unistd.h>.
8681
8682         * retr.c (show_progress): Cast alloca to char *.
8683
8684 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
8685
8686         * version.c: Wget 1.5-b15 is released.
8687
8688 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
8689
8690         * utils.h: Declare file_non_directory_p().
8691
8692 1998-04-03  Hrvoje Niksic  <hniksic@srce.hr>
8693
8694         * main.c (main): It's `tries', not `numtries' now.
8695
8696 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
8697
8698         * init.c (getperms): Removed.
8699
8700 1998-04-01  Tim Charron  <tcharron@interlog.com>
8701
8702         * log.c (logvprintf): Don't use ARGS twice.
8703
8704 1998-04-01  John  <john@futuresguide.com>
8705
8706         * mswindows.c: Cleaned up.
8707
8708 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
8709
8710         * version.c: Wget 1.5-b14 is released.
8711
8712 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
8713
8714         * ftp-opie.c (STRLEN4): New macro.
8715         (btoe): Use it.
8716
8717 1998-04-01  Junio Hamano  <junio@twinsun.com>
8718
8719         * http.c: Document all the Digest functions.
8720
8721 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
8722
8723         * utils.c (file_non_directory_p): Renamed from isfile().
8724
8725         * mswindows.h (S_ISREG): New macro, suggested by Tim Adam.
8726
8727 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
8728
8729         * utils.c (mkdirhier): Use 0777 instead of opt.dirmode.
8730
8731         * init.c (cmd_spec_dotstyle): Use 48 dots per line for binary
8732         style.
8733         (cmd_permissions): Removed.
8734
8735         * config.h.in: Add template for WORDS_BIGENDIAN.
8736
8737 1998-03-31  Junio Hamano  <junio@twinsun.com>
8738
8739         * http.c (HEXD2asc): New macro.
8740         (dump_hash): Use it.
8741
8742 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
8743
8744         * version.c: Wget 1.5-b13 is released.
8745
8746 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
8747
8748         * main.c (main): Don't try to use `com'.
8749
8750 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
8751
8752         * init.c (cmd_permissions): New function.
8753
8754 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
8755
8756         * version.c: Wget 1.5-b12 is released.
8757
8758 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
8759
8760         * init.c (commands): Renamed `numtries' to `tries'.
8761         (cmd_spec_debug): Removed.
8762         (home_dir): Under Windows, return `C:\' if HOME is undefined.
8763
8764 1998-03-29  Hrvoje Niksic  <hniksic@srce.hr>
8765
8766         * config.h.in: Define _XOPEN_SOURCE.
8767
8768         * init.c (check_user_specified_header): New function.
8769         (cmd_spec_header): Use it.
8770         (cmd_spec_useragent): New function.
8771
8772 1998-03-29  Hrvoje Niksic  <hniksic@srce.hr>
8773
8774         * version.c: Wget 1.5-b11 is released.
8775
8776 1998-03-28  Hrvoje Niksic  <hniksic@srce.hr>
8777
8778         * wget.h: Include <libintl.h> only if NLS is enabled.
8779
8780 1998-03-26  Hrvoje Niksic  <hniksic@srce.hr>
8781
8782         * options.h (struct options): Made `wait' a long.
8783         (struct options): Ditto for `timeout'.
8784
8785 1998-03-19  Hrvoje Niksic  <hniksic@srce.hr>
8786
8787         * utils.c (exists): Renamed to file_exists_p.
8788         (file_exists_p): Use access() if available.
8789
8790 1998-03-17  Hrvoje Niksic  <hniksic@srce.hr>
8791
8792         * utils.c (memfatal): Set save_log_p to 0 to avoid potential
8793         infloop.
8794
8795         * log.c: do_logging -> save_log_p.
8796
8797         * config.h.in: Added template for HAVE_VSNPRINTF.
8798
8799 1998-03-16  Hrvoje Niksic  <hniksic@srce.hr>
8800
8801         * init.c: Ditto.
8802
8803         * http.c: Protect declaration against non-ANSI compiler.
8804
8805         * log.c (logvprintf): Use vsnprintf() if available.
8806
8807         * getopt.c (main): Don't translate test stuff.
8808
8809 1998-03-16  Hrvoje Niksic  <hniksic@srce.hr>
8810
8811         * version.c: Wget 1.5-b10 is released.
8812
8813 1998-03-11  Hrvoje Niksic  <hniksic@srce.hr>
8814
8815         * ftp.c (getftp): Don't translate "CWD %s".
8816
8817         * wget.h (GCC_FORMAT_ATTR): Renamed from FORMAT_ATTR.
8818
8819 1998-03-07  Hrvoje Niksic  <hniksic@srce.hr>
8820
8821         * ftp-opie.c (btoe): Use memcpy() instead of strncat().
8822
8823         * log.c (logputs): New function.
8824         (logvprintf): Renamed from vlogmsg; use logputs().
8825
8826         * retr.c (show_progress): Print `[100%]' when the retrieval is
8827         finished.
8828
8829         * init.c (run_wgetrc): Use FILE, not PATH.
8830         (wgetrc_file_name): Ditto.
8831
8832 1998-03-07  Tim Adam  <tma@osa.com.au>
8833
8834         * recur.c (parse_robots): Correctly reset `entries' on empty
8835         disallow.
8836
8837 1998-03-07  Hrvoje Niksic  <hniksic@srce.hr>
8838
8839         * init.c (cmd_spec_debug): Use cmd_boolean().
8840
8841 1998-02-23  Hrvoje Niksic  <hniksic@srce.hr>
8842
8843         * http.c (gethttp): Create proxy-authorization correctly.
8844
8845 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
8846
8847         * md5.c: Ditto.
8848
8849         * getopt.c: Use ANSI function definitions.
8850
8851         * ftp-opie.c: New file.
8852
8853         * options.h: Don't redefine EXTERN.
8854
8855         * init.c: Sort it correctly.
8856
8857 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
8858
8859         * version.c: Wget 1.5-b9 is released.
8860
8861 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
8862
8863         * recur.c (recursive_retrieve): Reset `first_time'.
8864
8865         * ftp.c (getftp): Added `default' clause to switches of uerr_t.
8866
8867         * rbuf.c (rbuf_peek): Simplified.
8868         (rbuf_flush): Use MINVAL.
8869
8870         * wget.h (MINVAL): Moved from url.h.
8871
8872         * rbuf.h (RBUF_FD): New macro.
8873
8874         * url.c (add_url): Add to the head of the list.
8875
8876         * ftp.c (ftp_retrieve_list): Set the permissions to downloaded
8877         file.
8878         (getftp): Set the default permissions to 0600.
8879
8880 1998-02-21  Hrvoje Niksic  <hniksic@srce.hr>
8881
8882         * url.c (get_urls_html): Ditto.
8883         (convert_links): Ditto.
8884
8885         * recur.c (parse_robots): Ditto.
8886
8887         * html.c (ftp_index): Ditto.
8888
8889         * ftp-ls.c (ftp_parse_unix_ls): Open file as binary.
8890
8891         * init.c (defaults): Initialize `opt' to zero via memset.
8892
8893         * http.c (digest_authentication_encode): goto considered harmful.
8894
8895 1998-02-19  Hrvoje Niksic  <hniksic@srce.hr>
8896
8897         * ftp.c (delelement): Simplify and fix leak.
8898
8899 1998-02-18  Hrvoje Niksic  <hniksic@srce.hr>
8900
8901         * http.c (dump_hash): Use HEXD2ASC instead of home-grown stuff.
8902
8903         * url.h (HEXD2ASC): Removed warning.
8904
8905         * init.c (comind): Use binary search.
8906         (commands): Reorganized.
8907         (setval): Ditto.
8908         (cmd_boolean): New function.
8909         (cmd_number): Ditto.
8910         (cmd_number_inf): Ditto.
8911         (cmd_string): Ditto.
8912         (cmd_vector): Ditto.
8913         (cmd_directory_vector): Ditto.
8914         (cmd_bytes): Ditto.
8915         (cmd_time): Ditto.
8916         (cmd_spec_debug): Ditto.
8917         (cmd_spec_dirmode): Ditto.
8918         (cmd_spec_dirstruct): Ditto.
8919         (cmd_spec_dotstyle): Ditto.
8920         (cmd_spec_header): Ditto.
8921         (cmd_spec_htmlify): Ditto.
8922         (cmd_spec_mirror): Ditto.
8923         (cmd_spec_outputdocument): Ditto.
8924         (cmd_spec_recursive): Ditto.
8925         (settime): Merged with cmd_time().
8926         (setbytes): Merged with cmd_bytes().
8927         (setonoff): Merged with cmd_boolean().
8928         (onoff): Ditto.
8929
8930 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
8931
8932         * Makefile.in (distclean): Remove `config.h'.
8933
8934 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
8935
8936         * version.c: Wget 1.5-b8 is released.
8937
8938 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
8939
8940         * http.c (digest_authentication_encode): New function.
8941         (create_authorization_line): Use it.
8942         (dump_hash): New function.
8943         (digest_authentication_encode): Use it.
8944
8945         * fnmatch.c: Renamed from `mtch.c'.
8946
8947 1998-02-15  Karl Eichwalder  <ke@suse.de>
8948
8949         * main.c (main): Tag "Written by..." string as translatable.
8950
8951 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
8952
8953         * wget.h (FREE_MAYBE): New macro.
8954
8955         * http.c (create_authorization_line): Don't use ANSI C string
8956         concatenation feature.
8957         (basic_authentication_encode): Use alloca() for temporary
8958         variables.
8959
8960         * recur.h: Ditto.
8961
8962         * http.c: Ditto.
8963
8964         * headers.h: Ditto.
8965
8966         * ftp-basic.c: Protect declaration against non-ANSI compiler.
8967
8968         * http.c (create_authorization_line): Cast `unsigned char *' to
8969         `char *' for sprintf, to shut up the noisy Digital Unix cc.
8970
8971 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
8972
8973         * version.c: Wget 1.5-b7 is released.
8974
8975 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
8976
8977         * cmpt.c (strstr): Synched with glibc-2.0.6.
8978
8979         * ftp-basic.c (calculate_skey_response): Ditto.
8980         (calculate_skey_response): Use alloca().
8981
8982         * http.c (create_authorization_line): Work with FSF's version of
8983         md5.c.
8984
8985         * md5.c: New file, from GNU libc.
8986
8987 1998-02-14  Hrvoje Niksic  <hniksic@srce.hr>
8988
8989         * url.h (URL_CLEANSE): Name the temporary variable more carefully.
8990
8991 1998-02-13  Hrvoje Niksic  <hniksic@srce.hr>
8992
8993         * http.c (basic_authentication_encode): New function, instead of
8994         the macro.
8995
8996 1998-02-13  Junio Hamano  <junio@twinsun.com>
8997
8998         * http.c: Add HTTP-DA support.
8999         * ftp-basic.c: Add Opie/S-key support.
9000         * config.h.in, Makefile.in: Add HTTP-DA and Opie/S-key support.
9001         * md5.c, md5.h: New files.
9002
9003 1998-02-13  Hrvoje Niksic  <hniksic@srce.hr>
9004
9005         * http.c (http_process_range): Renamed from hprocrange().
9006         (http_process_range): Parse the whole header.
9007
9008         * headers.c: New file.
9009         (header_process): New function.
9010         (header_get): Renamed from fetch_next_header.
9011
9012         * all: Include utils.h only where necessary.
9013
9014         * wget.h: Declare xmalloc(), xrealloc() and xstrdup() here.
9015
9016         * wget.h: Add provisions for dmalloc.
9017
9018 1998-02-12  Hrvoje Niksic  <hniksic@srce.hr>
9019
9020         * version.c: Wget 1.5-b6 is released.
9021
9022 1998-02-12  Hrvoje Niksic  <hniksic@srce.hr>
9023
9024         * ftp.c (ftp_loop): Determine `filename' more precisely.
9025
9026         * init.c (setval): Don't set `opt.quiet' if output-document is
9027         `-'.
9028
9029         * log.c (log_init): Print to STDERR instead of STDOUT.
9030         (vlogmsg): Use STDERR by default.
9031         (logflush): Ditto.
9032
9033 1998-02-11  Simon Josefsson  <jas@pdc.kth.se>
9034
9035         * host.c: Use addr_in again.
9036
9037 1998-02-08  Karl Eichwalder  <karl@suse.de>
9038
9039         * http.c (gethttp): Fixed typo.
9040
9041 1998-02-08  Hrvoje Niksic  <hniksic@srce.hr>
9042
9043         * version.c: Wget 1.5-b5 is released.
9044
9045 1998-02-08  Hrvoje Niksic  <hniksic@srce.hr>
9046
9047         * retr.c (show_progress): Use it.
9048
9049         * log.c (logflush): New function.
9050
9051         * wget.h: Utilize __attribute__ if on gcc.
9052
9053 1998-02-07  Hrvoje Niksic  <hniksic@srce.hr>
9054
9055         * http.c (base64_encode_line): New argument LENGTH.
9056         (BASIC_AUTHENTICATION_ENCODE): Use it.
9057         (BASIC_AUTHENTICATION_ENCODE): Take length of HEADER into account.
9058
9059         * main.c (main): Fixed fprintf() format mismatch.
9060
9061 1998-02-06  Hrvoje Niksic  <hniksic@srce.hr>
9062
9063         * version.c: Wget 1.5-b4 is released.
9064
9065 1998-02-03  Simon Josefsson  <jas@pdc.kth.se>
9066
9067         * host.c: use sockaddr_in instead of addr_in.
9068
9069 1998-02-04  Hrvoje Niksic  <hniksic@srce.hr>
9070
9071         * init.c (cleanup): Use it.
9072
9073         * recur.c (recursive_cleanup): New function.
9074
9075         * retr.c (retrieve_from_file): Ditto.
9076
9077         * main.c (main): Use it.
9078
9079         * recur.c (recursive_reset): New function.
9080
9081         * retr.c (retrieve_from_file): Ditto.
9082
9083         * main.c (main): Simplify call to recursive_retrieve().
9084
9085         * recur.c (recursive_retrieve): Removed FLAGS argument.
9086
9087         * http.c (gethttp): Changed call to iwrite().
9088
9089 1998-02-03  Hrvoje Niksic  <hniksic@srce.hr>
9090
9091         * url.c (get_urls_html): Ditto.
9092         (free_urlpos): Ditto.
9093         (mkstruct): Ditto.
9094         (construct): Ditto.
9095
9096         * retr.c (retrieve_url): Move declaration of local variables to
9097         smaller scope.
9098
9099         * url.c (urlproto): Use it.
9100         (parseurl): Ditto.
9101         (str_url): Ditto.
9102         (get_urls_html): Ditto.
9103
9104         * utils.h (ARRAY_SIZE): New macro.
9105
9106         * url.c (proto): Moved from url.h.
9107
9108         * url.h (URL_CLEANSE): Reformatted.
9109         (USE_PROXY_P): Renamed from USE_PROXY.
9110
9111         * ftp-basic.c: Adjust to the new interface of iwrite().
9112
9113         * ftp-basic.c (ftp_port): Use alloca().
9114
9115 1998-02-03  Hrvoje Niksic  <hniksic@srce.hr>
9116
9117         * version.c: Wget 1.5-b3 is released.
9118
9119         * host.c (ftp_getaddress): Don't print to stderr directly.
9120
9121         * init.c (setbytes): Support `g' for gigabytes.
9122         (cmdtype): New specification CTIME.
9123         (setval): Use it with settime().
9124         (commands): Use it for WAIT and TIMEOUT.
9125
9126 1998-02-02  Hrvoje Niksic  <hniksic@srce.hr>
9127
9128         * http.c (BASIC_AUTHENTICATION_ENCODE): New macro.
9129         (gethttp): Use it.
9130
9131         * utils.c (unique_name_1): Moved from url.c.
9132         (unique_name): Ditto.
9133
9134         * url.c (url_filename): Ditto.
9135
9136         * log.c (redirect_output): Changed call to unique_name().
9137
9138         * url.c (unique_name_1): Renamed from unique_name().
9139         (unique_name): Changed interface.
9140
9141         * init.c (enum cmdid): Moved from init.h.
9142         (cmdtype): Ditto.
9143         (struct cmd): Ditto.
9144
9145         * main.c (main): Use it.
9146         (main): Moved `--backups' to not have a short option.
9147
9148         * options.h (struct options): New member BACKGROUND.
9149
9150         * main.c (print_help): Rearranged.
9151         (main): New long options for -n* short options: --no-directories,
9152         --no-host-directories, --non-verbose, --no-host-lookup and
9153         --dont-remove-listing.
9154
9155 1998-02-01  Hrvoje Niksic  <hniksic@srce.hr>
9156
9157         * main.c (main): Use log_close().
9158
9159         * log.c: New variable LOGFP.
9160         (vlogmsg): Use it.
9161         (redirect_output): Don't open /dev/null; set LOGFP to stdin
9162         instead.
9163         (log_close): New function.
9164
9165         * options.h (struct options): Removed LFILE.
9166
9167         * log.c (log_enable): Removed.
9168
9169         * main.c (main): Use it.
9170
9171         * log.c (log_init): New function.
9172
9173         * url.c (get_urls_html): Removed needless assignment to BASE.
9174
9175         * host.c (add_hlist): Don't set CMP needlessly.
9176
9177         * utils.c (match_backwards): Ditto.
9178         (in_acclist): Ditto.
9179
9180         * url.c (findurl): Ditto.
9181
9182         * netrc.c (parse_netrc): Ditto.
9183
9184         * log.c (log_dump): Ditto.
9185
9186         * html.c (html_quote_string): Ditto.
9187
9188         * ftp-basic.c (ftp_request): Made static.
9189
9190         * connect.c: Made global variables static.
9191
9192         * url.c (construct): Ditto.
9193
9194         * init.c (init_path): Avoid assignment inside `if'-condition.
9195
9196         * ftp.c: Don't include in.h or winsock.h.
9197
9198         * ftp.c (ftp_loop): Use SZ.
9199
9200         * connect.c (bindport): Cast &addrlen to int *.
9201         (conaddr): Ditto.
9202
9203         * init.c (initialize): Don't use SYSTEM_WGETRC unconditionally.
9204
9205 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
9206
9207         * ftp.c (getftp): Initialize opt.ftp_pass here.
9208         (ftp_retrieve_dirs): Use alloca().
9209
9210         * init.c (defaults): Don't initialize opt.ftp_pass.
9211
9212         * sysdep.h (S_ISLNK): Declare for OS/2; ditto for lstat.
9213         From Ivan F. Martinez <ivanfm@ecodigit.com.br>.
9214
9215 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
9216
9217         * recur.c (parse_robots): Check for comments more correctly.
9218
9219         * host.c (ftp_getaddress): Use STRDUP_ALLOCA.
9220         (ftp_getaddress): Add diagnostics when reverse-lookup yields only
9221         hostname.
9222
9223 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
9224
9225         * version.c: Wget 1.5-b2 is released.
9226
9227         * netrc.c (NETRC_FILE_NAME): Moved from netrc.h.
9228
9229         * utils.c (proclist): Pass FNM_PATHNAME to fnmatch().
9230
9231         * ftp-basic.c (ftp_pasv): Avoid unnecessary casting to unsigned
9232         char.
9233
9234         * log.c: Don't attempt to hide arguments from ansi2knr.
9235
9236         * cmpt.c: Synched strptime() and mktime() with glibc-2.0.6.
9237
9238         * ansi2knr.c: Use a later version, from fileutils-3.16l alpha.
9239
9240         * ftp.c (getftp): Ditto.
9241
9242         * http.c (gethttp): Use it.
9243
9244         * retr.c (get_contents): New argument EXPECTED; pass it to
9245         show_progress().
9246         (show_progress): New argument EXPECTED; use it to display
9247         percentages.
9248
9249         * init.c (setval): Ditto.
9250
9251         * http.c (gethttp): Ditto.
9252         (http_loop): Ditto.
9253
9254         * ftp.c (getftp): Ditto.
9255         (ftp_loop_internal): Ditto.
9256
9257         * ftp-ls.c (ftp_parse_unix_ls): Use abort() instead of assert(0).
9258
9259         * sysdep.h (CLOSE): Simplify; use DEBUGP.
9260
9261         * netrc.c (search_netrc): Use alloca().
9262
9263         * init.c (defaults): Initialize no_flush.
9264
9265         * log.c (vlogmsg): Don't flush if no_flush.
9266
9267         * options.h (struct options): New variable no_flush.
9268
9269         * main.c (main): Don't play games with buffering.
9270
9271         * log.c (vlogmsg): Flush the output after every message.
9272
9273 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
9274
9275         * init.c (parse_line): Ditto.
9276
9277         * url.c (get_urls_html): Ditto.
9278
9279         * main.c (main): Don't cast to unsigned char.
9280
9281         * init.c (run_wgetrc): Don't cast to unsigned char.
9282         (parse_line): Accept char instead of unsigned char.
9283
9284         * html.c (htmlfindurl): Use char instead of unsigned char.
9285
9286         * all: Use them.
9287
9288         * sysdep.h: Add wrappers to ctype macros to make them
9289         eight-bit-clean:
9290
9291 1998-01-30  Hrvoje Niksic  <hniksic@srce.hr>
9292
9293         * html.c (htmlfindurl): Download <img lowsrc=...>
9294
9295         * main.c (main): Ignore SIGPIPE.
9296
9297         * connect.c (select_fd): New argument WRITEP.
9298         (iwrite): Call select_fd().
9299
9300 1997-02-27  Fila Kolodny <fila@ibi.com>
9301
9302         * ftp.c (ftp_retrieve_list): If retrieving symlink and the proper
9303         one already exists, just skip it.
9304
9305 1998-01-30  Hrvoje Niksic  <hniksic@srce.hr>
9306
9307         * http.c (gethttp): Cosmetic changes.
9308
9309         * http.c (check_end): Allow `+D...' instead of `GMT'.
9310         From Fabrizio Pollastri <pollastri@cstv.to.cnr.it>.
9311
9312         * url.c (process_ftp_type): New function.
9313         (parseurl): Use it.
9314
9315         * connect.c (iwrite): Allow writing in a few chunks.
9316         (bindport): Made SRV static, so addr can point to it.
9317         (select_fd): Removed HPUX kludge.
9318
9319         * host.c (free_hlist): Incorporated into clean_hosts().
9320
9321 1998-01-29  Hrvoje Niksic  <hniksic@srce.hr>
9322
9323         * host.c (hlist): Made static.
9324         (search_address): Cosmetic change.
9325
9326 1998-01-29  Hrvoje Niksic  <hniksic@srce.hr>
9327
9328         * version.c: Wget v1.5-b1 is released.
9329
9330         * http.c (hgetlen): Use sizeof() to get the header length.
9331         (hgetrange): Ditto.
9332         (hgettype): Ditto.
9333         (hgetlocation): Ditto.
9334         (hgetmodified): Ditto.
9335         (haccepts_none): Ditto.
9336
9337         * main.c (main): Updated `--version' and `--help' output, as per
9338         Francois Pinard's suggestions.
9339
9340         * main.c: Include locale.h; call setlocale(), bindtextdomain() and 
9341         textdomain().
9342
9343         * config.h.in: Define stubs for I18N3.
9344
9345         * wget.h: Include libintl.h.
9346
9347 1998-01-28  Hrvoje Niksic  <hniksic@srce.hr>
9348
9349         * url.c (mkstruct): Check for opt.cut_dirs.
9350         (mkstruct): alloca()-te more, xmalloc() less.
9351
9352         * utils.c (load_file): Check for ferror().
9353
9354         * url.c (get_urls_file): Close only the files we opened.
9355         (get_urls_html): Ditto.
9356         (count_slashes): New function.
9357
9358         * http.h: Removed.
9359
9360         * http.c (gethttp): Respect username and password provided by
9361         proxy URL.
9362         (base64_encode_line): Write into an existing buffer instead of
9363         malloc-ing a new one.
9364         (struct http_stat): Moved from http.h
9365
9366         * retr.c (retrieve_url): Free SUF.
9367
9368         * all: Removed lots of unnecessary .h dependencies.
9369
9370         * html.c (global_state): Made static.
9371
9372         * utils.h (ALLOCA_ARRAY): New macro.
9373
9374         * main.c (main): New option `--cut-dirs'.
9375
9376         * url.c (construct): Use alloca() for T.
9377
9378         * utils.c (mkdirhier): Use STRDUP_ALLOCA.
9379
9380         * host.c (_host_t): Moved from host.h.
9381         (struct host): Renamed from _host_t.
9382         (store_hostaddress): Use STRDUP_ALLOCA for INET_S.
9383         (realhost): Ditto.
9384
9385         * host.h: Don't include url.h.
9386
9387         * ftp.c (LIST_FILENAME): Moved from ftp.h.
9388
9389         * init.c (DEFAULT_FTP_ACCT): Moved from ftp.h.
9390
9391         * main.c (main): Enable log if the output goes to a TTY.
9392
9393         * connect.h: Removed unused constant `BACKLOG'.
9394
9395         * config.h.in: Check for isatty().
9396
9397         * Makefile.in (LINK): Use CFLAGS when linking.
9398
9399 1998-01-27  Hrvoje Niksic  <hniksic@srce.hr>
9400
9401         * mswindows.c (ws_hangup): Use redirect_output().
9402
9403         * main.c (redirect_output_signal): New function; use
9404         redirect_output().
9405
9406         * log.c (redirect_output): New function, based on hangup(), which
9407         is deleted.
9408
9409         * log.c (vlogmsg): New function.
9410
9411         * wget.h (DEBUGP): Use debug_logmsg().
9412
9413         * main.c (hangup): Use it.
9414
9415         * log.c (log_dump): New function.
9416
9417         * utils.h (DO_REALLOC): Use `long' for various sizes.
9418
9419         * http.c (hskip_lws): Use `while', for clarity.
9420         (HTTP_DYNAMIC_LINE_BUFFER): New constant.
9421         (fetch_next_header): Use it instead of DYNAMIC_LINE_BUFFER.
9422
9423         * ftp-basic.c (FTP_DYNAMIC_LINE_BUFFER): New constant.
9424         (ftp_response): Use it instead of DYNAMIC_LINE_BUFFER.
9425
9426         * utils.c (DYNAMIC_LINE_BUFFER): Moved from utils.c.
9427         (LEGIBLE_SEPARATOR): Ditto.
9428         (FILE_BUFFER_SIZE): Ditto.
9429
9430         * retr.c (BUFFER_SIZE): Moved from retr.h.
9431
9432         * log.c: New file.
9433         (logmsg): Moved from utils.c.
9434         (debug_logmsg): New function.
9435
9436         * mswindows.h: Include it here.
9437
9438         * init.c: Ditto.
9439
9440         * utils.c: Don't include <windows.h>.
9441
9442 1998-01-25  Hrvoje Niksic  <hniksic@srce.hr>
9443
9444         * host.c (ftp_getaddress): Ditto.
9445
9446         * main.c (main): Use it.
9447
9448         * utils.h (STRDUP_ALLOCA): New macro.
9449
9450         * init.c: Prepend `wget: ' to error messages printed on stderr.
9451
9452         * utils.c (mkdirhier): Renamed from mymkdir.
9453         (touch): Renamed from my_touch.
9454         (pwd_cuserid): Renamed from my_cuserid().
9455
9456 1998-01-24  Andy Eskilsson  <andy.eskilsson@telelogic.se>
9457
9458         * utils.c (accdir): Process wildcards.
9459         (proclist): New function.
9460         (accdir): Use it to avoid code repetition.
9461
9462 1998-01-24  Hrvoje Niksic  <hniksic@srce.hr>
9463
9464         * recur.c (parse_robots): Respect opt.useragent; use alloca().
9465
9466         * http.c (gethttp): Construct useragent accordingly.
9467
9468         * version.c: Changed version string to numbers-only.
9469
9470         * main.c (print_help): List all the options.
9471
9472         * mswindows.c (windows_main_junk): Initialize argv0 here.
9473
9474 1998-01-24  Karl Heuer  <kwzh@gnu.org>
9475
9476         * netrc.c (search_netrc): Initialize `l' only after processing
9477         netrc.
9478
9479         * main.c (main): Don't trap SIGHUP if it's being ignored.
9480
9481 1998-01-24  Hrvoje Niksic  <hniksic@srce.hr>
9482
9483         * all: Use logmsg().
9484
9485         * utils.c (time_str): Moved from retr.c.
9486         (logmsg): New function.
9487         (logmsg_noflush): Ditto.
9488
9489         * rbuf.c: New file, moved buf_* functions here.
9490
9491         * ftp.c (ftp_expected_bytes): Moved from ftp-basic.c.
9492
9493         * ftp-basic.c (ftp_rest): Use prnum().
9494
9495         * ftp-basic.c: Ditto.
9496
9497         * ftp.c: Use the new reading functions and macros.
9498
9499         * retr.c (buf_initialize): New function.
9500         (buf_initialized_p): Ditto.
9501         (buf_uninitialize): Ditto.
9502         (buf_fd): Ditto.
9503
9504         * http.c (fetch_next_header): Use the BUF_READCHAR macro for
9505         efficiency.
9506         (gethttp): Use alloca() where appropriate.
9507
9508         * retr.c (buf_readchar): Use it.
9509         (buf_peek): Use rstreams.
9510
9511         * retr.h (BUF_READCHAR): New macro.
9512
9513         * init.c (home_dir): Rewritten for clarity.
9514         (init_path): Ditto.
9515
9516         * mswindows.c (ws_backgnd): Made static.
9517         (read_registry): Ditto.
9518         (ws_cleanup): Ditto.
9519         (ws_handler): Ditto.
9520
9521 1998-01-23  Hrvoje Niksic  <hniksic@srce.hr>
9522
9523         * alloca.c: New file.
9524
9525         * Makefile.in (ALLOCA): Define.
9526
9527         * mswindows.c (ws_help): Constify.
9528         (ws_help): Use alloca.
9529
9530         * mswindows.c: Reformat.
9531
9532         * all: Added _(...) annotations for I18N snarfing and translation.
9533
9534         * host.c (ftp_getaddress): Nuke SYSINFO.
9535         (ftp_getaddress): Don't use getdomainname().
9536         (ftp_getaddress): Use uname(), where available.
9537
9538         * http.c (gethttp): Protect a stray fprintf().
9539
9540         * init.c (settime): New function.
9541         (setval): Treat WAIT specially, allowing suffixes like `m' for
9542         minutes, etc.
9543
9544 1998-01-21  Hrvoje Niksic  <hniksic@srce.hr>
9545
9546         * url.c (get_urls_html): Use alloca() for TEMP.
9547
9548 1998-01-21  Jordan Mendelson  <jordy@wserv.com>
9549
9550         * url.c (rotate_backups): New function.
9551
9552         * http.c (gethttp): Ditto.
9553
9554         * ftp.c (getftp): Rotate backups.
9555
9556 1997-12-18  Hrvoje Niksic  <hniksic@srce.hr>
9557
9558         * all: Renamed nmalloc(), nrealloc() and nstrdup() to xmalloc(),
9559         xrealloc() and xstrdup().  Use the new functions.
9560
9561         * url.c (decode_string): Made static.
9562         (has_proto): Ditto.
9563         (parse_dir): Ditto.
9564         (parse_uname): Ditto.
9565         (mkstruct): Ditto.
9566         (construct): Ditto.
9567         (construct_relative): Ditto.
9568
9569         * retr.c (show_progress): Made static.
9570
9571         * recur.c (robots_url): Made static.
9572         (retrieve_robots): Ditto.
9573         (parse_robots): Ditto.
9574         (robots_match): Ditto.
9575
9576         * main.h: Removed.
9577
9578         * main.c (printhelp): Made static.
9579         (hangup): Ditto.
9580
9581         * init.c (comind): Made static.
9582         (defaults): Ditto.
9583         (init_path): Ditto.
9584         (run_wgetrc): Ditto.
9585         (onoff): Ditto.
9586         (setonoff): Ditto.
9587         (setnum): Ditto.
9588         (myatoi): Ditto.
9589         (getperms): Ditto.
9590         (setbytes): Ditto.
9591
9592         * http.c (fetch_next_header): Made static.
9593         (hparsestatline): Ditto.
9594         (hskip_lws): Ditto.
9595         (hgetlen): Ditto.
9596         (hgetrange): Ditto.
9597         (hgettype): Ditto.
9598         (hgetlocation): Ditto.
9599         (hgetmodified): Ditto.
9600         (haccepts_none): Ditto.
9601         (gethttp): Ditto.
9602         (base64_encode_line): Ditto.
9603         (mktime_from_utc): Ditto.
9604         (http_atotm): Ditto.
9605
9606         * html.c (idmatch): Made static.
9607
9608         * host.c (search_host): Made static.
9609         (search_address): Ditto.
9610         (free_hlist): Ditto.
9611
9612         * ftp.c (getftp): Made static.
9613         (ftp_loop_internal): Ditto.
9614         (ftp_get_listing): Ditto.
9615         (ftp_retrieve_list): Ditto.
9616         (ftp_retrieve_dirs): Ditto.
9617         (ftp_retrieve_glob): Ditto.
9618         (freefileinfo): Ditto.
9619         (delelement): Ditto.
9620
9621         * ftp-ls.c (symperms): Made static.
9622         (ftp_parse_unix_ls): Ditto.
9623
9624         * connect.c (select_fd): Made static.
9625
9626         * utils.c (xmalloc): Renamed from nmalloc.
9627         (xrealloc): Renamed from nrealloc.
9628         (xstrdup): Renamed from nstrdup.
9629
9630         * getopt.c (exchange): Use alloca.
9631
9632         * mswindows.c (mycuserid): Use strncpy.
9633
9634         * New files mswindows.c, mswindows.h, sysdep.h.  winjunk.c,
9635         systhings.h, windecl.h and winjunk.h removed.
9636
9637         * mswindows.c (sleep): New function.
9638
9639         * utils.c: Include <windows.h> under Windows.
9640
9641 1997-06-12  Darko Budor  <dbudor@zesoi.fer.hr>
9642
9643         * url.h (URL_UNSAFE): Change default under Windows.
9644
9645         * retr.c (retrieve_from_file): Respect opt.delete_after.
9646
9647         * main.c (main): Call ws_help on Windows.
9648
9649         * winjunk.c (windows_main_junk): New function.
9650
9651         * main.c (main): Junk-process argv[0].
9652
9653         * http.c (mktime_from_utc): Return -1 if mktime failed.
9654
9655         * http.c (http_loop): Ditto.
9656
9657         * ftp.c (ftp_loop_internal): Change title on Windows when using a
9658         new URL.
9659
9660         * winjunk.c (getdomainname): Lots of functions.
9661
9662 1997-06-12  Hrvoje Niksic  <hniksic@srce.hr>
9663
9664         * cmpt.c (strptime_internal): Handle years more correctly for
9665         `%y'.
9666
9667 1997-06-09  Mike Thomas <mthomas@reality.ctron.com>
9668
9669         * http.c (gethttp): Allocate enough space for
9670         `Proxy-Authorization' header.
9671
9672 1997-05-10  Hrvoje Niksic  <hniksic@srce.hr>
9673
9674         * version.c: Wget/1.4.5 is released.
9675
9676 1997-05-10  Hrvoje Niksic  <hniksic@srce.hr>
9677
9678         * retr.c (get_contents): Check return value of fwrite more
9679         carefully.
9680
9681 1997-03-30  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
9682
9683         * cmpt.c (strptime_internal) [case 'Y']: Always subtract 1900 from
9684         year, regardless of century.
9685
9686 1997-03-30  Hrvoje Niksic  <hniksic@srce.hr>
9687
9688         * utils.c (isfile): Use `lstat' instead of `stat'.
9689
9690 1997-03-29  Hrvoje Niksic  <hniksic@srce.hr>
9691
9692         * utils.c (numdigit): Use explicit test.
9693
9694 1997-03-21  Hrvoje Niksic  <hniksic@srce.hr>
9695
9696         * http.c (http_loop): Always use `url_filename' to get u->local.
9697
9698 1997-03-20  Hrvoje Niksic  <hniksic@srce.hr>
9699
9700         * url.c: Recognize https.
9701
9702 1997-03-13  Hrvoje Niksic  <hniksic@srce.hr>
9703
9704         * recur.c (recursive_retrieve): Lowercase just the host name.
9705
9706 1997-03-09  Hrvoje Niksic  <hniksic@srce.hr>
9707
9708         * url.c (get_urls_file): Use the correct test.
9709         (get_urls_html): Ditto.
9710
9711 1997-03-07  Hrvoje Niksic  <hniksic@srce.hr>
9712
9713         * connect.c: Reverted addrlen to int.
9714
9715         * init.c (parse_line): Check for -1 instead of NONE.
9716
9717         * version.c: Changed version to 1.4.5.
9718
9719 1997-02-17  Hrvoje Niksic  <hniksic@srce.hr>
9720
9721         * init.c: New option netrc.
9722         (initialize): Don't parse .netrc.
9723
9724         * cmpt.c (recursive): Return rp.
9725         (strptime_internal): Match the long strings first, the abbreviated
9726         second.
9727
9728 1997-02-16  Hrvoje Niksic  <hniksic@srce.hr>
9729
9730         * http.c (check_end): New function.
9731         (http_atotm): Use it.
9732
9733 1997-02-13  gilles Cedoc  <gilles@cedocar.fr>
9734
9735         * http.c (gethttp): Use them.
9736
9737         * init.c: New options proxy_user and proxy_passwd.
9738
9739 1997-02-14  Hrvoje Niksic  <hniksic@srce.hr>
9740
9741         * ftp.c (ftp_retrieve_list): Create links even if not relative.
9742
9743 1997-02-10  Hrvoje Niksic  <hniksic@srce.hr>
9744
9745         * recur.c (recursive_retrieve): Lowercase the host name, if the
9746         URL is not "optimized".
9747
9748         * host.c (realhost): Return l->hostname, even if it matches with
9749         host.
9750
9751 1997-02-10  Marin Purgar  <pmc@asgard.hr>
9752
9753         * connect.c: Make addrlen size_t instead of int.
9754         (conaddr): Ditto.
9755
9756 1997-02-09  Gregor Hoffleit  <flight@mathi.uni-heidelberg.DE>
9757
9758         * systhings.h: Define S_ISLNK on NeXT too.
9759
9760 1997-02-09  Hrvoje Niksic  <hniksic@srce.hr>
9761
9762         * version.c: Released 1.4.3.
9763
9764         * url.c: Futher update to list of protostrings.
9765         (skip_proto): Skip `//' correctly for FTP and HTTP.
9766
9767         * url.c (get_urls_html): Handle bogus `http:' things a little
9768         different.
9769
9770         * main.c (main): Removed `follow-ftp' from `f'.
9771         (main): Dumped the `prefix-files' and `file-prefix' options and
9772         features; old and bogus.
9773         (main): Exit on failed setval() in `-e'.
9774
9775         * http.c (fetch_next_header): Use it to detect header continuation
9776         correctly.
9777
9778         * retr.c (buf_peek): New function.
9779
9780 1997-02-08  Hrvoje Niksic  <hniksic@srce.hr>
9781
9782         * wget.h: Include time.h and stuff.
9783
9784 1997-02-08  Roger Beeman  <beeman@cisco.com>
9785
9786         * ftp.c: Include <time.h>
9787
9788 1997-02-07  Hrvoje Niksic  <hniksic@srce.hr>
9789
9790         * url.c (findurl): Would read over buffer limits.
9791
9792 1997-02-06  Hrvoje Niksic  <hniksic@srce.hr>
9793
9794         * ftp-ls.c (ftp_parse_unix_ls): Allow spaces in file names.
9795
9796 1997-02-05  Hrvoje Niksic  <hniksic@srce.hr>
9797
9798         * http.c (http_atotm): Initialize tm.is_dst.
9799
9800 1997-02-02  Hrvoje Niksic  <hniksic@srce.hr>
9801
9802         * http.c (gethttp): Don't print the number of retrieved headers.
9803
9804         * main.c (main): New option `--no-clobber', alias for `-nc'.
9805
9806         * url.c: Recognize `https://'.
9807
9808 1997-02-01  Hrvoje Niksic  <hniksic@srce.hr>
9809
9810         * host.c (herrmsg): Don't use h_errno.
9811
9812 1997-01-30  Hrvoje Niksic  <hniksic@srce.hr>
9813
9814         * host.c (accept_domain): Use it.
9815
9816         * main.c (main): New option `--exclude-domains'.
9817
9818         * retr.c (retrieve_url): Use it.
9819         (retrieve_url): Bail out when an URL is redirecting to itself.
9820
9821         * url.c (url_equal): New function.
9822
9823 1997-01-29  Hrvoje Niksic  <hniksic@srce.hr>
9824
9825         * connect.c: Include arpa/inet.h instead of arpa/nameser.h.
9826
9827         * http.c (mk_utc_time): New function.
9828         (http_atotm): Use it; handle time zones correctly.
9829
9830 1997-01-28  Hrvoje Niksic  <hniksic@srce.hr>
9831
9832         * http.c: Ditto.
9833
9834         * ftp-basic.c: Use it instead of WRITE.
9835
9836         * connect.c (iwrite): New function.
9837
9838 1997-01-27  Hrvoje Niksic  <hniksic@srce.hr>
9839
9840         * cmpt.c (mktime): New function.
9841
9842         * netrc.c: Include <sys/types.h>.
9843
9844         * main.c (main): Wouldn't recognize --spider.
9845
9846         * retr.c (rate): Use `B', `KB' and `MB'.
9847         (reset_timer,elapsed_time): Moved from utils.c.
9848
9849         * ftp.c (ftp_retrieve_list): Ditto.
9850
9851         * http.c (http_loop): Don't touch the file if opt.dfp.
9852
9853 1997-01-24  Hrvoje Niksic  <hniksic@srce.hr>
9854
9855         * cmpt.c: New file.
9856
9857         * ftp.c (ftp_retrieve_glob): New argument semantics.
9858         (ftp_retrieve_dirs): Use it.
9859         (ftp_loop): Ditto.
9860
9861         * html.c (htmlfindurl): Recognize `'' as the quote char.
9862
9863 1997-01-23  Hrvoje Niksic  <hniksic@srce.hr>
9864
9865         * ftp.c (ftp_loop_internal): Use it.
9866
9867         * utils.c (remove_link): New function.
9868
9869 1997-01-22  Hrvoje Niksic  <hniksic@srce.hr>
9870
9871         * retr.c (retrieve_url): Require STRICT redirection URL.
9872
9873         * url.c (parseurl): New argument STRICT.
9874
9875         * http.c (hparsestatline): Be a little-bit less strict about
9876         status line format.
9877
9878 1997-01-21  Hrvoje Niksic  <hniksic@srce.hr>
9879
9880         * http.c (gethttp): Use it.
9881
9882         * main.c (main): Don't use '<digit>' as options.
9883
9884         * init.c: New option ignore_length.
9885
9886         * http.c (gethttp): Ditto.
9887         (http_loop): Check for redirection without Location:.
9888         (gethttp): Don't print Length unless RETROKF.
9889
9890         * ftp.c (getftp): Use it.
9891
9892         * url.c (mkalldirs): New function.
9893
9894         * utils.c (mymkdir): Don't check for existing non-directory.
9895
9896         * url.c (mkstruct): Don't create the directory.
9897
9898 1997-01-20  Hrvoje Niksic  <hniksic@srce.hr>
9899
9900         * init.c (setval): Removed NO_RECURSION checks.
9901
9902 1997-01-19  Hrvoje Niksic  <hniksic@srce.hr>
9903
9904         * version.c: "Released" 1.4.3-pre2.
9905
9906         * recur.c (recursive_retrieve): Bypass host checking only if URL
9907         is ftp AND parent URL is not ftp.
9908
9909         * ftp-basic.c (ftp_request): Print out Turtle Power.
9910
9911         * ftp.c (ftp_loop): Call ftp_retrieve_glob with 0 if there's no
9912         wildcard.
9913         (ftp_retrieve_glob): Call ftp_loop_internal even on empty list, if
9914         not glob.
9915
9916         * http.c (gethttp): Be a little bit smarter about status codes.
9917
9918         * recur.c (recursive_retrieve): Always reset opt.recursive when
9919         dealing with FTP.
9920
9921 1997-01-18  Hrvoje Niksic  <hniksic@srce.hr>
9922
9923         * retr.c (retrieve_url): New variable location_changed; use it for
9924         tests instead of mynewloc.
9925         (retrieve_url): Allow heuristic adding of html.
9926
9927         * url.c (url_filename): Don't use the `%' in Windows file names.
9928
9929         * http.c (http_loop): Always time-stamp the local file.
9930
9931         * http.c (http_loop): Ditto.
9932
9933         * ftp.c (ftp_retrieve_list): Use it.
9934
9935         * utils.c (my_touch): New function.
9936
9937         * ftp.c (ftp_retrieve_list): Use #ifdef HAVE_STRUCT_UTIMBUF
9938         instead of #ifndef NeXT.
9939
9940         * utils.c (strptime): New version, by Ulrich Drepper.
9941
9942 1997-01-17  Hrvoje Niksic  <hniksic@srce.hr>
9943
9944         * http.c (haccepts_none): Renamed from `haccepts_bytes'.
9945         (gethttp): If haccepts_none(), disable ACCEPTRANGES.
9946         (http_loop): Would remove ACCEPTRANGES.
9947
9948         * ftp.c (getftp): Call ftp_list with NULL.
9949
9950 1997-01-15  Hrvoje Niksic  <hniksic@srce.hr>
9951
9952         * html.c (ftp_index): Don't print minutes and seconds if we don't
9953         know them; beautify the output.
9954
9955         * ftp.c (getftp): Don't close the socket on FTPNSFOD.
9956
9957 1997-01-14  Hrvoje Niksic  <hniksic@srce.hr>
9958
9959         * utils.c (strptime): New function.
9960         (strptime): Don't use get_alt_number.
9961         (strptime): Don't use locale.
9962         (match_string): Made it a function.
9963
9964 1997-01-12  Hrvoje Niksic  <hniksic@srce.hr>
9965
9966         * http.c (http_atotm): New function.
9967         (http_loop): Use it.
9968
9969         * atotm.c: Removed from the distribution.
9970
9971         * http.c (base64_encode_line): Rewrite.
9972
9973 1997-01-09  Hrvoje Niksic  <hniksic@srce.hr>
9974
9975         * ftp.c (getftp): Use ftp_expected_bytes; print size.
9976
9977         * ftp-basic.c (ftp_response): Use ftp_last_respline.
9978         (ftp_expected_bytes): New function.
9979
9980         * ftp.c (getftp): Print the unauthoritative file length.
9981
9982         * ftp-ls.c: Renamed from ftp-unix.c.
9983         (ftp_parse_ls): Moved from ftp.c.
9984         (ftp_parse_unix_ls): Recognize seconds in time spec.
9985         (ftp_parse_unix_ls): Recognize year-less dates of the previous
9986         year.
9987
9988 1997-01-08  Hrvoje Niksic  <hniksic@srce.hr>
9989
9990         * ftp-basic.c: Don't declare errno if #defined.
9991
9992         * host.c (ftp_getaddress): Check for sysinfo legally.
9993
9994 1997-01-08  Darko Budor  <dbudor@diana.zems.fer.hr>
9995
9996         * connect.c (iread): Use READ.
9997
9998 1996-12-23  Hrvoje Niksic  <hniksic@srce.hr>
9999
10000         * url.c: Recognize finger, rlogin, tn3270, mid and cid as valid
10001         schemes.
10002
10003 1996-12-22  Hrvoje Niksic  <hniksic@srce.hr>
10004
10005         * host.c (ftp_getaddress): Allow `.' in hostname.
10006
10007 1996-12-26  Darko Budor <dbudor@zems.fer.hr>
10008
10009         * wget.h: READ and WRITE macros for use instead of read and write
10010         on sockets, grep READ *.c, grep WRITE *.c
10011
10012         * wsstartup.c: new file - startup for winsock
10013
10014         * wsstartup.h: new file
10015
10016         * win32decl.h: new file - fixup for <errno.h> and winsock trouble
10017
10018         * configure.bat: Configure utility for MSVC
10019
10020         * src/Makefile.ms,config.h.ms: new files for use with MSVC 4.x
10021
10022 1996-12-22  Hrvoje Niksic  <hniksic@srce.hr>
10023
10024         * version.c: Released 1.4.3-pre.
10025
10026         * utils.c (prnum): Accept long.
10027         (legible): Use prnum().
10028
10029         * connect.c (make_connection): Accept port as short.
10030         (bindport): Ditto.
10031
10032         * http.c (gethttp): Use search_netrc.
10033
10034 1996-12-21  Hrvoje Niksic  <hniksic@srce.hr>
10035
10036         * ftp.c (getftp): Use search_netrc.
10037
10038         * netrc.c (free_netrc): New function.
10039
10040         * init.c (home_dir): New function.
10041
10042         * url.c (convert_links): Allow REL2ABS changes.
10043
10044 1996-12-21  Gordon Matzigkeit  <gord@gnu.ai.mit.edu>
10045
10046         * netrc.c: New file.
10047         (parse_netrc, maybe_add_to_list): New functions.
10048
10049 1996-12-17  Hrvoje Niksic  <hniksic@srce.hr>
10050
10051         * retr.c (retrieve_url): Reset opt.recursion before calling
10052         ftp_loop if it is reached through newloc.
10053
10054         * init.c (run_wgetrc): Print the wgetrc path too, when reporting
10055         error; don't use "Syntax error", since we don't know if it is
10056         really a syntax error.
10057
10058 1996-12-16  Hrvoje Niksic  <hniksic@srce.hr>
10059
10060         * utils.c (acceptable): Extract the filename part of the path.
10061
10062         * recur.c (recursive_retrieve): Call acceptable() with the right
10063         argument; would bug out on wildcards.
10064
10065         * init.c (parse_line): Likewise.
10066
10067         * html.c (htmlfindurl): Cast to char * when calling stuff.
10068
10069 1996-12-15  Hrvoje Niksic  <hniksic@srce.hr>
10070
10071         * ftp.c (getftp): Use ftp_pasv.
10072
10073         * ftp-basic.c (ftp_request): Accept NULL value.
10074         (ftp_pasv): New function.
10075
10076         * options.h (struct options): Add passive FTP option.
10077
10078 1996-12-15  Hrvoje Niksic  <hniksic@srce.hr>
10079
10080         * url.c (parseurl): Debug output.
10081
10082         * utils.c (path_simplify): New one, adapted from bash's
10083         canonicalize_pathname().
10084
10085 1996-12-14  Hrvoje Niksic  <hniksic@srce.hr>
10086
10087         * ftp.c (getftp): Don't discard the buffer.
10088
10089         * retr.c (get_contents): New parameter nobuf.
10090
10091 1996-12-13  Shawn McHorse  <riffraff@txdirect.net>
10092
10093         * html.c (htmlfindurl): Recognize <meta contents="d; URL=...".
10094
10095         * init.c (setval): Strip the trailing slashes on CVECDIR.
10096
10097 1996-12-13  Hrvoje Niksic  <hniksic@srce.hr>
10098
10099         * init.c: Make excludes and includes under CVECDIR instead of
10100         CVEC.
10101
10102 1996-12-13  Shawn McHorse  <riffraff@txdirect.net>
10103
10104         * url.c (get_urls_html): Skip "http:".
10105
10106 1996-12-13  Hrvoje Niksic  <hniksic@srce.hr>
10107
10108         * utils.c (strcasecmp): From glibc.
10109         (strncasecmp): Also.
10110         (strstr): Also.
10111
10112         * url.c: Added javascript: to the list of URLs prefixes.
10113
10114 1996-12-12  Shawn McHorse  <riffraff@txdirect.net>
10115
10116         * recur.c (retrieve_robots): Print the warning message only if
10117         verbose.
10118
10119 1996-12-12  Gregor Hoffleit  <flight@mathi.uni-heidelberg.DE>
10120
10121         * ftp.c (ftp_retrieve_list): Use NeXT old utime interface.
10122
10123 1996-12-12  Hrvoje Niksic  <hniksic@srce.hr>
10124
10125         * systhings.h: New file.
10126
10127         * ../configure.in: Check for utime.h
10128
10129         * ftp.c: Check whether we have unistd.h.
10130
10131 1996-11-27  Hrvoje Niksic  <hniksic@srce.hr>
10132
10133         * recur.c (recursive_retrieve): Send the canonical URL as referer.
10134         (recursive_retrieve): Call get_urls_html with the canonical URL.
10135
10136 1996-12-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10137
10138         * (configure.in, config.h.in, src/Makefile.in, src/*.[ch]): Add
10139         ansi2knr support for compilers which don't support ANSI style
10140         function prototypes and signatures.
10141
10142         * (aclocal.m4, src/ansi2knr.c, src/ansi2knr.1): New files.
10143
10144 1996-11-26  Hrvoje Niksic  <hniksic@srce.hr>
10145
10146         * url.c: Use it; Recognize paths ending with "." and ".." as
10147         directories.
10148         (url_filename): Append .n whenever file exists and could be a
10149         directory.
10150
10151         * url.h (ISDDOT): New macro.
10152
10153         * init.c (parse_line): Use unsigned char.
10154
10155         * url.c (get_urls_html): Cast to unsigned char * when calling
10156         htmlfindurl.
10157
10158         * html.c (htmlfindurl): Use unsigned char.
10159
10160         * version.c: Changed version to 1.4.3.
10161
10162 1996-11-25  Hrvoje Niksic  <hniksic@srce.hr>
10163
10164         * version.c: Released 1.4.2.
10165
10166         * ftp.c (getftp): Simplified assertion.
10167         (ftp_loop_internal): Remove symlink before downloading.
10168         (ftp_retrieve_list): Unlink the symlink name before attempting to
10169         create a symlink!
10170
10171         * options.h (struct options): Renamed print_server_response to
10172         server_response.
10173
10174         * ftp.c (rel_constr): Removed.
10175         (ftp_retrieve_list): Don't use it.
10176         (ftp_retrieve_list): Use opt.retr_symlinks.
10177
10178 1996-11-24  Hrvoje Niksic  <hniksic@srce.hr>
10179
10180         * main.c (main): New option retr_symlinks.
10181
10182         * url.c (convert_links): Print verbose message.
10183
10184 1996-11-24  Hrvoje Niksic  <hniksic@srce.hr>
10185
10186         * http.c (http_loop): Reset newloc in the beginning of function;
10187         would cause FMR in retrieve_url.
10188
10189 1996-11-23  Hrvoje Niksic  <hniksic@srce.hr>
10190
10191         * recur.c (convert_all_links): Find the URL of each HTML document,
10192         and feed it to get_urls_html; would bug out.
10193         (convert_all_links): Check for l2 instead of dl; removed dl.
10194
10195         * url.c (convert_links): Don't refer to freed newname.
10196
10197         * recur.c (recursive_retrieve): Add this_url to urls_downloaded.
10198
10199         * main.c (main): Print the OS_TYPE in the debug output, too.
10200
10201         * recur.c (recursive_retrieve): Check for opt.delete_after.
10202
10203         * main.c (main): New option delete-after.
10204
10205         * init.c (setval): Cleaned up.
10206
10207 1996-11-21  Hrvoje Niksic  <hniksic@srce.hr>
10208
10209         * Makefile.in (wget): Make `wget' the default target.
10210
10211         * ftp.c (ftp_loop_internal): Move noclobber checking out of the
10212         loop.
10213         (ftp_retrieve_list): Warn about non-matching sizes.
10214
10215         * http.c (http_loop): Made -nc non-dependent on opt.recursive.
10216
10217         * init.c (setnum): Renamed from setnuminf; New argument flags.
10218         (setval): Use it.
10219
10220         * main.c (main): Sorted the options.
10221         (main): New option --wait.
10222
10223 1996-11-21  Shawn McHorse  <riffraff@txdirect.net>
10224
10225         * html.c (htmlfindurl): Reset s->in_quote after getting out of
10226         quotes.
10227
10228 1996-11-20  Hrvoje Niksic  <hniksic@srce.hr>
10229
10230         * version.c: Changed version to 1.4.2.
10231
10232 1996-11-20  Hrvoje Niksic  <hniksic@srce.hr>
10233
10234         * version.c: Released 1.4.1.
10235
10236         * html.c (html_quote_string): New function.
10237         (ftp_index): Use it.
10238         (htmlfindurl): A more gentle ending debug message.
10239
10240         * ftp.c (ftp_loop): Check for opt.htmlify.
10241
10242         * init.c: New command htmlify.
10243
10244         * ftp.c (getftp): Nicer error messages, with `'-encapsulated
10245         strings.
10246         (ftp_loop): Print size of index.html.
10247
10248         * init.c (setval): Implement "styles".
10249
10250         * main.c (main): New option dotstyle.
10251
10252 1996-11-19  Hrvoje Niksic  <hniksic@srce.hr>
10253
10254         * ftp.c (getftp): Close the master socket in case of errors, after
10255         bindport().
10256
10257         * connect.c (bindport): Initialize msock to -1.
10258
10259         * ftp.c (getftp): Initialize dtsock to -1.
10260
10261         * connect.c (closeport): Don't close sock if sock == -1.
10262
10263 1996-11-18  Hrvoje Niksic  <hniksic@srce.hr>
10264
10265         * init.c (setnuminf): Nuked default value -- just leave unchanged.
10266         (setval): Don't send default values.
10267         (defaults): Use DEFAULT_TIMEOUT -- aaargh.
10268
10269         * options.h (struct options): Use long for dot_bytes.
10270
10271         * init.c (setquota): Renamed to setbytes.
10272         (setval): Use setbytes on DOTBYTES.
10273
10274 1996-11-17  Hrvoje Niksic  <hniksic@srce.hr>
10275
10276         * ftp.c (getftp): Initialize con->dltime.
10277
10278         * recur.c (recursive_retrieve): Use same_host instead of
10279         try_robots; simply load robots_txt whenever the host is changed.
10280         (recursive_retrieve): Free forbidden before calling parse_robots.
10281
10282 1996-11-16  Hrvoje Niksic  <hniksic@srce.hr>
10283
10284         * retr.c (show_progress): Use them.
10285
10286         * options.h (struct options): New options dot_bytes, dots_on_line
10287         and dot_spacing.
10288
10289 1996-11-16  Mark Boyns  <boyns@sdsu.edu>
10290
10291         * recur.c (recursive_retrieve): Retrieve directories regardless of
10292         acc/rej rules; check for empty u->file.
10293
10294 1996-11-14  Hrvoje Niksic  <hniksic@srce.hr>
10295
10296         * init.c (setval): Use it.
10297
10298         * utils.c (merge_vecs): New function.
10299
10300         * init.c (setval): Reset the list-type functions when encountering
10301         "".
10302
10303 1996-11-14  Shawn McHorse  <riffraff@txdirect.net>
10304
10305         * recur.c (recursive_retrieve): Use base_url instead of this_url
10306         for no_parent.
10307
10308 1996-11-14  Shawn McHorse  <riffraff@txdirect.net>
10309
10310         * html.c (htmlfindurl): Reset s->in_quote after exiting the quote.
10311
10312 1996-11-13  Hrvoje Niksic  <hniksic@srce.hr>
10313
10314         * utils.c (sepstring): Rewrote; don't use strtok.
10315
10316         * recur.c (recursive_retrieve): Enter assorted this_url to slist
10317         when running the first time.
10318         (retrieve_robots): Warn to ignore errors when robots are loaded.
10319
10320         * utils.c (load_file): Moved from url.c.
10321
10322         * http.c: Made static variables const too in h* functions.
10323
10324         * main.c (main): Renamed --continue-ftp to --continue.
10325
10326         * recur.c (recursive_retrieve): Use it.
10327
10328         * utils.c (frontcmp): New function.
10329
10330         * url.c (accdir): New function.
10331
10332         * html.c (htmlfindurl): Recognize <area href=...>.
10333
10334         * ftp.c (ftp_retrieve_dirs): Implemented opt.includes.
10335
10336         * init.c (setval): Free the existing opt.excludes and
10337         opt.includes, if available.
10338
10339         * main.c (main): New option -I.
10340
10341 1996-11-12  Hrvoje Niksic  <hniksic@srce.hr>
10342
10343         * ftp.c (ftp_retrieve_glob): Do not weed out directories.
10344
10345         * version.c: Changed version to 1.4.1.
10346
10347 1996-11-11  Hrvoje Niksic  <hniksic@srce.hr>
10348
10349         * version.c: Released 1.4.0.
10350
10351 1996-11-10  Hrvoje Niksic  <hniksic@srce.hr>
10352
10353         * main.c (main): Free com and val after parse_line.
10354         (printhelp): Reorder the listing.
10355
10356         * http.c: More robust header parsing.
10357
10358         * http.c: Allow any number of spaces, or no spaces, precede ':'.
10359         (hskip_lws): New function.
10360         (haccepts_bytes): New function.
10361         (gethttp): Use it.
10362
10363         * init.c (setval): Check header sanity.
10364         (setval): Allow resetting of headers.
10365
10366 1996-11-10  Hrvoje Niksic  <hniksic@srce.hr>
10367
10368         * http.c (http_loop): Don't use has_wildcards.
10369
10370         * http.c (gethttp): Free all_headers -- would leak.
10371
10372         * recur.c (recursive_retrieve): Initialize depth to 1 instead of
10373         0 -- this fixes a long-standing bug in -rl.
10374
10375 1996-11-09  Hrvoje Niksic  <hniksic@srce.hr>
10376
10377         * ftp.c: Use -1 as "impossible" value for con->fd.
10378
10379         * url.h (URL_SEPARATOR): Don't treat `*' and `+' as separators.
10380
10381         * init.c (parse_line): Use isalpha.
10382
10383         * ftp-unix.c: Use HAVE_UNISTD_H.
10384
10385         * mtch.c (has_wildcards): Don't match \.
10386
10387         * http.c (http_loop): Warn on HTTP wildcard usage.
10388
10389 1996-11-08  Hrvoje Niksic  <hniksic@srce.hr>
10390
10391         * url.c (url_filename): Do not create numbered suffixes if
10392         opt.noclobber -- would bug out on -nc.
10393
10394 1996-11-07  Hrvoje Niksic  <hniksic@srce.hr>
10395
10396         * recur.c (parse_robots): Don't chuck out the commands without
10397         arguments (`Disallow:<empty>' didn't work).
10398         (parse_robots): Compare versions lowercase.
10399         (parse_robots): Match on base_version, not version_string!
10400         (parse_robots): Handle comments properly.
10401         (parse_robots): Match versions in a sane way.
10402
10403         * init.c: Print nicer error messages.
10404
10405         * version.c: Changed version to 1.4.0.
10406
10407 1996-11-06  Hrvoje Niksic  <hniksic@srce.hr>
10408
10409         * version.c: Released 1.4.0-test2.
10410
10411         * init.c (run_wgetrc): Close fp.
10412
10413         * ftp.c (ftp_retrieve_dirs): Allocate the correct length for
10414         u->dir.
10415
10416 1996-11-06  Hrvoje Niksic  <hniksic@srce.hr>
10417
10418         * init.c (setquota): Allow inf as quota specification.
10419
10420 1996-11-05  Hrvoje Niksic  <hniksic@srce.hr>
10421
10422         * ftp.c (ftp_retrieve_dirs): Return QUOTEXC if quota exceeded.
10423         (ftp_retrieve_glob): Return QUOTEXC on quota exceeded.
10424
10425         * main.c (main): Check for quota by comparison with downloaded
10426         stuff, not from status.
10427
10428         * connect.c (select_fd): Should compile on HPUX without warnings now.
10429
10430         * ftp.c (ftp_get_listing): Check whether ftp_loop_internal
10431         returned RETROK.
10432
10433 1996-11-04  Hrvoje Niksic  <hniksic@srce.hr>
10434
10435         * ftp.c (ftp_retrieve_glob): Print the pattern nicely.
10436         (getftp): Return FTPRETRINT on control connection error.
10437
10438         * html.c (htmlfindurl): Recognize <embed src=...> and
10439         <bgsound src=...>.
10440         (ftp_index): Handle username and password correctly.
10441
10442         * main.c (main): Made `-np' a synonim for --no-parent.
10443
10444 1996-11-02  Hrvoje Niksic  <hniksic@srce.hr>
10445
10446         * ftp.c (ftp_loop): Check for opt.ftp_glob too before calling
10447         ftp_retrieve_glob.
10448
10449         * version.c: Changed version to 1.4.0-test2.
10450
10451 1996-11-02  Hrvoje Niksic  <hniksic@srce.hr>
10452
10453         * version.c: Released 1.4.0-test1.
10454
10455         * url.c (str_url): Don't use sprintf when creating %2F-prefixed
10456         directory.
10457         (convert_links): Removed definition of make_backup.
10458
10459         * http.h: Removed definition of MAX_ERROR_LENGTH.
10460
10461         * host.c (ftp_getaddress): Check for "(none)" domains.
10462
10463         * ftp.c (ftp_retrieve_dirs): Docfix.
10464
10465         * http.c (gethttp): Use ou->referer instead of u->referer.
10466
10467         * retr.c (retrieve_url): Reset u to avoid freeing pointers twice;
10468         this was known to cause coredumps on Linux.
10469
10470         * html.c (ftp_index): Cast the argument to local_time to time_t *.
10471
10472 1996-11-01  Hrvoje Niksic  <hniksic@srce.hr>
10473
10474         * connect.c (select_fd): Use exceptfds -- once and for all.
10475
10476         * retr.c (retrieve_from_file): Free filename after
10477         recursive_retrieve.
10478         (retrieve_from_file): Send RFIRST_TIME to recursive_retrieve on
10479         first-time retrieval.
10480         (retrieve_from_file): Return uerr_t; new argument, count.
10481         (retrieve_from_file): Break on QUOTEXC.
10482
10483         * init.c (setquota): Fixed a bug that caused rejection of
10484         non-postfixed values..
10485
10486 1996-10-30  Hrvoje Niksic  <hniksic@srce.hr>
10487
10488         * version.c: Changed name to wget.
10489
10490         * connect.c (iread): Smarter use of select.
10491         (select_fd): Set errno on timeout.  If not timeout, return 1
10492         instead of 0.
10493
10494 1996-10-29  Hrvoje Niksic  <hniksic@srce.hr>
10495
10496         * ftp.c (ftp_loop_internal): Don't use con->cmd before
10497         establishing it.
10498
10499 1996-10-26  Hrvoje Niksic  <hniksic@srce.hr>
10500
10501         * http.c (gethttp): Send correct referer when using proxy.
10502         (gethttp): Use struct urlinfo ou to access the relevant data; send
10503         correct authorization in all cases.
10504
10505         * host.c (same_host): Use skip_uname to skip username and
10506         password.
10507
10508         * url.c (skip_uname): New function.
10509         (parseurl): Use it.
10510
10511         * host.c (same_host): Do not assume HTTP -- same_host should now
10512         be totally foolproof.
10513
10514         * url.c (skip_proto): New function.
10515         (parse_uname): Use it.
10516
10517         * http.c (gethttp): Create local user and passwd from what is
10518         given.
10519
10520         * url.c (parseurl): Check for HTTP username and password too.
10521
10522 1996-10-25  Hrvoje Niksic  <hniksic@srce.hr>
10523
10524         * config.h.in: Removed #define gethostbyname R...
10525
10526 1996-10-22  Hrvoje Niksic  <hniksic@srce.hr>
10527
10528         * version.c: Changed version to 1.4.0-test1.
10529
10530 1996-10-21  Hrvoje Niksic  <hniksic@srce.hr>
10531
10532         * version.c: "Released" 1.4b29.
10533
10534         * recur.c (recursive_retrieve): Check for no_parent.
10535
10536         * init.c (setval): Option update.
10537
10538         * main.c (main): New option no-parent.
10539
10540         * options.h (struct options): New variable no_parent.
10541
10542         * recur.c (recursive_retrieve): Only files are checked for
10543         opt.accepts and opt.rejects.
10544         (recursive_retrieve): Check directories for opt.excludes.
10545         (recursive_retrieve): Make the dir absolute when checking
10546         opt.excludes.
10547
10548         * html.c (htmlfindurl): Recognize <applet code=...> and <script
10549         src=...>
10550
10551 1996-10-18  Hrvoje Niksic  <hniksic@srce.hr>
10552
10553         * ftp.c (getftp): Do not line-break assert entries at all.
10554         (ftp_retrieve_dirs): docfix.
10555
10556         * connect.c (select_fd): Use fd + 1 as nfds.
10557
10558         * version.c: Changed version to 1.4b29.
10559
10560 1996-10-18  Hrvoje Niksic  <hniksic@srce.hr>
10561
10562         * version.c: "Released" 1.4b28.
10563
10564         * ftp.c (ftp_loop_internal): Check whether f->size == len and
10565         don't continue the loop if it is.
10566         (ftp_get_listing): Remove list_filename on unsuccesful loop.
10567
10568 1996-10-17  Hrvoje Niksic  <hniksic@srce.hr>
10569
10570         * ftp.c (ftp_loop_internal): Use strcpy to initialize tmp.
10571         (getftp): Do not use multiline assert.
10572
10573         * http.c (hparsestatline): Use mjr and mnr instead of major and
10574         minor, which don't compile on Ultrix.
10575         (http_loop): Use strcpy() to initialize tmp.
10576
10577         * all: Geturl -> Fetch
10578
10579 1996-10-17  Hrvoje Niksic  <hniksic@srce.hr>
10580
10581         * recur.c (parse_robots): Fixed an off-by-one bug when looking for
10582         ':'.
10583
10584         * html.c (htmlfindurl): Fixed several possible off-by-one bugs by
10585         moving `bufsize &&' to the beginning of each check in for-loops.
10586
10587         * recur.c (parse_robots): Close fp on exit.
10588
10589         * url.c (mymkdir): Check for each directory before creating.
10590
10591 1996-10-16  Hrvoje Niksic  <hniksic@srce.hr>
10592
10593         * version.c: Changed version to 1.4b28.
10594
10595 1996-10-16  Hrvoje Niksic  <hniksic@srce.hr>
10596
10597         * version.c: "Released" 1.4b27.
10598
10599         * init.c (parse_line): Use isspace.
10600         (parse_line): Free *com on all errors.
10601
10602         * ftp.c (ftp_loop): Change FTPOK to RETROK before exiting.
10603         (delelement): Use next instead of f->next and prev instead of
10604         f->prev.
10605         (delelement): Free the members of the deleted element.
10606
10607         * http.c (http_loop): Do not return RETROK on code != 20x.
10608
10609         * init.c (cleanup): Free opt.user_header.
10610         (cleanup): Free opt.domains.
10611
10612         * url.c (freelists): Moved to cleanup().
10613
10614         * http.c (hparsestatline): Docfix.
10615
10616         * main.c (main): Return with error status on unsuccesful
10617         retrieval.
10618
10619         * init.c (setval): Do not remove listing when mirroring.
10620
10621         * url.c (url_filename): Use opt.fileprefix.
10622
10623         * ftp.c (ftp_get_listing): Use url_filename to get filename for
10624         .listing.
10625
10626         * main.c (main): New option: -rn.
10627
10628 1996-10-15  Hrvoje Niksic  <hniksic@srce.hr>
10629
10630         * Makefile.in (RM): Added RM = rm -f.
10631
10632         * host.c (clean_hosts): New function.
10633         (free_hlist): Just free the list, no reset.
10634
10635         * version.c: Changed version to 1.4b27.
10636
10637 1996-10-13  Hrvoje Niksic  <hniksic@srce.hr>
10638
10639         * version.c: "Released" 1.4b26.
10640
10641         * retr.c (retrieve_from_file): If call get_urls_html with
10642         opt.spider to make it silent in spider mode.
10643
10644         * url.c (str_url): Use CLEANDUP instead of URL_CLEANSE.
10645
10646         * url.h (CLEANDUP): New macro.
10647
10648         * http.c (gethttp): Fixed a bug that freed location only when it
10649         was NULL.
10650
10651         * retr.c (retrieve_url): Free url if it will not be stored,
10652         i.e. newloc is NULL.
10653
10654         * html.c (htmlfindurl): Handle exiting from quotes correctly; the
10655         old version would bug out on <a href="x#a"href="y">.
10656
10657         * html.h (state_t): New member in_quote.
10658
10659         * html.c (htmlfindurl): Free s->attr at the beginning of
10660         attr-loop.
10661
10662         * recur.c (recursive_retrieve): Recognize RCLEANUP.
10663         (tried_robots): Make hosts a global variable.
10664         (recursive_retrieve): Free constr after URL host optimization.
10665         (tried_robots): Free urlinfo before exiting.
10666
10667         * utils.c (free_slist): New function.
10668
10669         * recur.c (recursive_retrieve): Use flags to add cleanup
10670         possibility.
10671
10672         * main.c (main): Free filename after recursive_retrieve.
10673
10674         * http.c (gethttp): Store successful responses too.
10675
10676 1996-10-12  Hrvoje Niksic  <hniksic@srce.hr>
10677
10678         * all: Constified the whole source.  This required some minor
10679         changes in many functions in url.c, possibly introducing bugs -- I
10680         hope not.
10681
10682         * ftp-basic.c: Removed last_respline.
10683
10684         * http.c (gethttp): Free type.
10685
10686         * host.c (same_host): Free real1 and real2.
10687
10688         * main.c (main): New option --spider.
10689
10690         * retr.c (get_contents): Don't reset errno.
10691
10692         * main.c (main): Sorted the options.
10693
10694         * connect.c (iread): Set errno to ETIMEDOUT only if it was left
10695         uninitialized by select().
10696
10697         * http.c (http_loop): Print the time when the connection is
10698         closed.
10699         (gethttp): Debug-print the HTTP request.
10700
10701 1996-10-11  Hrvoje Niksic  <hniksic@srce.hr>
10702
10703         * connect.c (iread): Do not try reading after timeout.
10704
10705         * main.c (main): Would bug out on -T.
10706
10707         * connect.c (select_fd): Do not use exceptfds.
10708         (iread): Set ETIMEDOUT on select_fd <= 0.
10709
10710         * version.c: Changed version to 1.4b26.
10711
10712 1996-10-10  Hrvoje Niksic  <hniksic@srce.hr>
10713
10714         * version.c: "Released" 1.4b25.
10715
10716         * ftp-unix.c (ftp_parse_unix_ls): Ignore lines without file name
10717         or link name.
10718
10719         * http.c (gethttp): Add errcode to struct hstat.
10720         (http_loop): Use it.
10721
10722         * url.c (no_proxy_match): Simplify using char** for no_proxy.
10723
10724         * options.h (struct options): Make opt.no_proxy a vector.
10725
10726         * utils.c (sepstring): Use !*s instead of !strlen(s).
10727
10728         * init.c (setval): Set opt.maxreclevel to 0 on --mirror.
10729         (getperms): Use ISODIGIT instead of isdigit.
10730
10731         * ftp.c (getftp): Print time.
10732
10733         * main.c (main): Use legible output of downloaded quantity.
10734
10735         * ftp.c (getftp): Use elapsed_time().
10736         (ftp_loop_internal): Use rate().
10737
10738         * http.c (http_loop): Add download ratio output; Use rate().
10739
10740         * utils.c (rate): New function.
10741
10742 1996-10-09  Hrvoje Niksic  <hniksic@srce.hr>
10743
10744         * http.c (http_loop): Use timer.
10745
10746         * ftp.c: Split to ftp-basic.c and ftp.c
10747
10748         * utils.c (reset_timer): New function.
10749         (elapsed_time): New function.
10750
10751         * retr.c (show_progress): Make bytes_in_line and offs long; should
10752         work on 16-bit machines.
10753
10754 1996-10-08  Hrvoje Niksic  <hniksic@srce.hr>
10755
10756         * url.c (in_acclist): New argument backward.
10757
10758         * ftp.c (ftp_retrieve_glob): Use acceptable() to determine whether
10759         a file should be retrieved according to suffix.
10760         (ftp_get_listing): Check the return value of unlink; Do not call
10761         ftp_retrieve_dirs if depth reached maxreclevel.
10762         (ftp_retrieve_dirs): Check whether the directory is in
10763         exclude-list.
10764
10765         * main.c (main): Print the version number at the beginning of
10766         DEBUG output.
10767         (main): Use strrchr when creating exec_name.
10768
10769         * ftp.c (ftp_retrieve_glob): Do not close control connection.
10770
10771         * version.c: Changed version to 1.4b25.
10772
10773 1996-10-07  Hrvoje Niksic  <hniksic@srce.hr>
10774
10775         * version.c: "Released" 1.4b24.
10776
10777         * Makefile.in: Rewrite.
10778
10779         * ftp.c (ftp_loop_internal): Likewise.
10780
10781         * retr.c (time_str): Check for failed time().
10782
10783         * html.c (htmlfindurl): Recognize <fig src> and <overlay src> from
10784         HTML3.0.
10785
10786         * retr.c (time_str): Return time_t *.
10787
10788         * connect.c (bindport): Close msock on unsuccesful bind.
10789         (bindport): The same for getsockname and listen.
10790
10791         * retr.c (retrieve_url): Allow any number of retries on
10792         proxy.
10793
10794         * http.c (gethttp): Do not treat errno == 0 as timeout.
10795         (http_loop): Likewise.
10796         (http_loop): Cosmetic changes.
10797
10798         * connect.c (iread): Set errno to ETIMEDOUT in case of timeout.
10799
10800         * retr.c (get_contents): Reset errno.
10801
10802         * ftp.c (getftp): Minor fixes.
10803
10804 1996-10-06  Hrvoje Niksic  <hniksic@srce.hr>
10805
10806         * http.c: Do not use backups.
10807
10808         * geturl.1 (WARNING): Warn that man-page could be obsolete.
10809
10810         * getopt.c (getopt_long): Moved to getopt.c
10811
10812         * geturl.texi: Enhanced.
10813
10814         * main.c (main): Use it.
10815
10816         * recur.c (convert_all_links): New function.
10817
10818         * utils.c (add_slist): New argument flags.
10819
10820         * recur.c (recursive_retrieve): Update a list of downloaded URLs.
10821         (parse_robots): Do not chuck out empty value fields.
10822         (parse_robots): Make yourself welcome on empty Disallow.
10823
10824         * version.c: Changed version to 1.4b24.
10825
10826 1996-10-06  Hrvoje Niksic  <hniksic@srce.hr>
10827
10828         * version.c: "Released" 1.4b23.
10829
10830         * ftp.c (ftp_loop_internal): Get the time after getftp.
10831
10832         * Makefile.in (install.info): New target.
10833         (install): Use it.
10834
10835         * http.c (http_loop): Fix output when doing -O.
10836
10837 1996-10-05  Hrvoje Niksic  <hniksic@srce.hr>
10838
10839         * geturl.texi: New file.
10840
10841         * main.c (main): Do not print the warnings and download summary if
10842         opt.quiet is set.
10843
10844         * version.c: Changed version to 1.4b23.
10845
10846 1996-10-05  Hrvoje Niksic  <hniksic@srce.hr>
10847
10848         * "Released" 1.4b22.
10849
10850         * atotm.c (atotm): Use True and False instead of TRUE and FALSE,
10851         to avoid redefinition warnings.
10852
10853         * host.c (store_hostaddress): Use memcpy() to copy the address
10854         returned by inet_addr.
10855
10856         * version.c: Changed version to 1.4b22.
10857
10858 1996-10-04  Hrvoje Niksic  <hniksic@srce.hr>
10859
10860         * version.c: "Released" 1.4b21.
10861
10862         * ftp-unix.c (ftp_parse_ls): Renamed to ftp_parse_unix_ls.
10863
10864         * ftp.c (ftp_port): Use conaddr.
10865         (getftp): Print the file length.
10866         (ftp_retrieve_list): Check the stamps of plain files only.
10867
10868         * connect.c (closeport): Do not call shutdown().
10869         (conaddr): New function.
10870
10871         * html.c (ftp_index): Made it dfp-aware.
10872
10873         * init.c (cleanup): New name of freemem. Close opt.dfp.
10874
10875         * ftp.c (getftp): Use opt.dfp if it is set.
10876
10877         * ftp-unix.c (ftp_parse_ls): Recognize time in h:mm format.
10878
10879         * ftp.c (ftp_retrieve_dirs): Fixed a bug that caused incorrect
10880         CWDs to be sent with recursive FTP retrievals.
10881
10882 1996-10-03  Hrvoje Niksic  <hniksic@srce.hr>
10883
10884         * recur.c (parse_robots): Made it more compliant with "official"
10885         specifications.
10886
10887         * http.c: New function.
10888
10889         * ftp-unix.c (ftp_parse_ls): Added better debug output.
10890
10891         * ftp.c (getftp): Print out the LIST in case of
10892         opt.print_server_response.
10893
10894         * version.c: Changed version to 1.4b21.
10895
10896 1996-10-01  Hrvoje Niksic  <hniksic@srce.hr>
10897
10898         * version.c: "Released" 1.4b20.
10899
10900         * README: Update.
10901
10902         * http.c (gethttp): Preset lengths of various headers instead of
10903         calculating them dynamically.
10904         (gethttp): Check for 206 partial contents.
10905
10906 1996-09-30  Hrvoje Niksic  <hniksic@srce.hr>
10907
10908         * configure.in: Set SYSTEM_GETURLRC to $libdir/geturlrc
10909
10910         * http.c (gethttp): Send the port number in the Host: header.
10911
10912 1996-09-29  Hrvoje Niksic  <hniksic@srce.hr>
10913
10914         * http.c (gethttp): Send host: header.
10915         (gethttp): Add the possibility of user-defined headers.
10916         (gethttp): Move decision about pragma: no-cache to http_loop,
10917         where it belongs.
10918         (gethttp): Pass a struct instead of enormous argument list.
10919         (http_loop): Use a new, fancier display format.
10920         (ftp_loop): Likewise.
10921
10922         * main.c: (hangup): Turn off buffering of the new log file.
10923
10924         * install-sh: Likewise.
10925
10926         * config.sub: Replace with the one in autoconf-2.10
10927
10928         * geturl.1: Update.
10929
10930         * init.c: New options httpuser and httppasswd.
10931
10932         * http.c: (base64_encode_line): New function.
10933         (gethttp): Send authentication.
10934
10935         * connect.c (make_connection): Use store_hostaddress.
10936
10937 1996-09-28  Hrvoje Niksic  <hniksic@srce.hr>
10938
10939         * host.c (store_hostaddress): New function.
10940
10941         * NEWS: Update.
10942
10943         * http.c (hgetrange): New function.
10944         (gethttp): Use ranges.
10945
10946         * utils.c (numdigit): Accept long instead of int.
10947
10948         * http.c (http_loop): Add restart capabilities.
10949
10950         * ftp.c (ftp_retrieve_glob): Fixed a bug that could cause matchres
10951         being used uninitialized.
10952         (ftp_retrieve_list): Similar fix.
10953
10954         * host.c (add_hlist): Fixed a bug that could cause cmp being used
10955         uninitialized.
10956
10957         * url.c (construct_relative): New function.
10958
10959         * recur.c (recursive_retrieve): Use it.
10960
10961         * retr.c (convert_links): New function.
10962
10963 1996-09-27  Hrvoje Niksic  <hniksic@srce.hr>
10964
10965         * url.c (free_urlpos): New function.
10966
10967         * recur.c (recursive_retrieve): Adapt.
10968
10969         * url.c (get_urls_html): Return a linked list instead of a vector.
10970
10971         * url.c (get_urls_file): Return a linked list instead of a vector.
10972
10973         * geturl.1: Update.
10974
10975         * http.c (gethttp): Implement it.
10976
10977         * init.c (setval): New option: SAVEHEADERS
10978
10979         * ftp.c (ftp_loop_internal): Do not set restval if listing is to
10980         be retrieved. Lack of this test caused bugs when the connection
10981         was lost during listing.
10982
10983         * retr.c (retrieve_url): Fixed a bug that caused
10984         coredumps. *newloc is now reset by default.
10985         (retrieve_url): Lift the twenty-tries limit on proxies.
10986
10987         * version.c: Changed version to 1.4b20.
10988
10989 1996-09-20  Hrvoje Niksic  <hniksic@srce.hr>
10990
10991         * version.c: "Released" 1.4b19.
10992
10993 1996-09-19  Hrvoje Niksic  <hniksic@srce.hr>
10994
10995         * ftp.c (ftp_loop_internal): Renamed from ftp_1fl_loop.
10996         (getftp): Changed prototype to accept ccon *.
10997
10998 1996-09-17  Hrvoje Niksic  <hniksic@srce.hr>
10999
11000         * ftp.c (ftp_retrieve_list): Fixed a bug that caused setting
11001         incorrect values to files pointed to by symbolic links.
11002         (ftp_1fl_loop): Do not count listings among the downloaded URL-s.
11003
11004 1996-09-16  Hrvoje Niksic  <hniksic@srce.hr>
11005
11006         * url.c (mkstruct): Do not prepend "./" in front of a pathname.
11007
11008         * main.c (main): New option: --user-agent.
11009
11010         * geturl.1: Ditto.
11011
11012         * init.h: Ditto.
11013
11014         * init.c (setval): Ditto.
11015
11016         * main.c (main): Rename "server-headers" to "server-response".
11017
11018         * ftp-unix.c (ftp_parse_ls): Check for asterisks at the end of
11019         executables in 'ls -F' listings.
11020
11021 1996-09-15  Hrvoje Niksic  <hniksic@srce.hr>
11022
11023         * url.c (parseurl): Remove realloc() and sprintf().
11024         (str_url): Get rid of sprintf().
11025
11026         * recur.c (recursive_retrieve): Enable FTP recursion through proxy
11027         servers.
11028
11029         * url.h (URL_CLEANSE): Made it else-resistant.
11030         (USE_PROXY): New macro.
11031
11032 1996-09-14  Hrvoje Niksic  <hniksic@srce.hr>
11033
11034         * NEWS: Update.
11035
11036         * version.c: Changed version to 1.4b19.
11037
11038 1996-09-14  Hrvoje Niksic  <hniksic@srce.hr>
11039
11040         * version.c: "Released" 1.4b18.
11041
11042         * url.c: Made it reallocate space exponentially.
11043
11044 1996-09-14  Drazen Kacar  <dave@fly.cc.fer.hr>
11045
11046         * html.c (htmlfindurl): Added <frame src> and <iframe src> among
11047         the list of stuff to fetch.
11048
11049 1996-09-13  Hrvoje Niksic  <hniksic@srce.hr>
11050
11051         * url.c (get_urls_html): Fixed a bug that caused SIGSEGV's with
11052         -Fi.
11053
11054         * html.c (htmlfindurl): Rewrite.
11055
11056         * http.c (gethttp): Use opt.proxy_cache.
11057
11058         * main.c (main): Added --cache option.
11059
11060         * ftp.c (ftp_response): Print server response if opt.print_server
11061         response is set.
11062         (getftp): Print newlines after each request if the server response
11063         is to be printed.
11064         (ftp_response): Copy the last response line to last_respline.
11065
11066         * http.c (gethttp): Add Pragma: nocache for retried
11067         proxy-retrievals.
11068
11069         * ftp.c (getftp): Use it.
11070
11071         * retr.c (buf_discard): New function.
11072
11073         * ftp.c (ftp_response): Use buf_readchar().
11074         (getftp): Flush the control connection buffer before calling
11075         get_contents().
11076
11077         * retr.c (buf_readchar): New function.
11078         (buf_flush): New function.
11079         (get_contents): Use buf_readchar() instead of read(x, x, 1).
11080         (get_contents): Use buf_flush.
11081
11082 1996-09-12  Hrvoje Niksic  <hniksic@srce.hr>
11083
11084         * ftp.c: Incorporate changes to ftp_response.
11085
11086         * ftp.c (ftp_response): Allocate the server response dynamically,
11087         as in read_whole_line and fetch_next_header.
11088
11089         * utils.c (read_whole_line): Fixed a bug that prevented reading
11090         the last line if it is not \n-terminated. Also fixed a possible
11091         memory overflow.
11092
11093         * http.c (fetch_next_header): Return malloc-ed string as large as
11094         needed.
11095         (gethttp): Use new fetch_next_header.
11096
11097 1996-09-12  Hrvoje Niksic  <hniksic@srce.hr>
11098
11099         * http.c (hgetlen): Compute the header length the first time only.
11100         (hgettype): Ditto.
11101         (hgetlocation): Ditto.
11102         (hgetmodified): Ditto.
11103
11104 1996-09-11  Hrvoje Niksic  <hniksic@srce.hr>
11105
11106         * sample.geturlrc: Update.
11107
11108 1996-09-10  Hrvoje Niksic  <hniksic@srce.hr>
11109
11110         * http.c (http_loop): Ditto.
11111
11112         * ftp.c (getftp): Open the output file as binary.
11113
11114         * version.c: Changed version to 1.4b18.
11115
11116 1996-09-10  Hrvoje Niksic  <hniksic@srce.hr>
11117
11118         * version.c: "Released" 1.4b17.
11119
11120         * ftp-unix.c (ftp_parse_ls): If unable to open file, return NULL
11121         instead of failed assertion.
11122
11123 1996-09-09  Hrvoje Niksic  <hniksic@srce.hr>
11124
11125         * ftp.c (ftp_get_listing): Add a numbered suffix to LIST_FILENAME
11126         if a file of that name already exists.
11127
11128 1996-09-05  Hrvoje Niksic  <hniksic@srce.hr>
11129
11130         * ftp.c (ftp_1fl_loop): Handler FTPPORTERR and FOPENERR correctly.
11131
11132         * config.h.in: Define gethostbyname as Rgethostbyname when using
11133         Socks.
11134
11135         * configure.in: Check for -lresolv if using Socks.
11136
11137         * version.c: Changed version to 1.4b17.
11138
11139 1996-07-15  Hrvoje Niksic  <hniksic@srce.hr>
11140
11141         * version.c: "Released" 1.4b16.
11142
11143         * http.c (gethttp): More intelligent check for first line of HTTP
11144         response.
11145         (gethttp): Would bug out on time-stamping.
11146
11147         * version.c: Changed version to 1.4b16.
11148
11149 1996-07-11  Hrvoje Niksic  <hniksic@srce.hr>
11150
11151         * version.c: Released 1.4b15.
11152
11153         * http.c (http_loop): Print \n after the loop entry, not before.
11154
11155         * url.c (url_filename): Use ISDOT.
11156
11157         * url.h (ISDOT): New macro.
11158
11159         * recur.c (recursive_retrieve): Change only opt.recursive for
11160         following FTP.
11161
11162 1996-07-11  Antonio Rosella <antonio.rosella@agip.it>
11163
11164         * socks/geturl.cgi: Fixed version No.
11165
11166         * socks/download-netscape.html: Ditto.
11167
11168         * socks/download.html: Changed socks.html to download.html.
11169
11170 1996-07-11  Hrvoje Niksic  <hniksic@srce.hr>
11171
11172         * url.c (url_filename): Check for opt.dirstruct instead for
11173         opt.recursive && opt.dirstruct.
11174
11175         * init.c (defaults): Ditto.
11176         (defaults): Reset dirstruct by default.
11177         (setval): Set opt.dirstruct whenever setting recursive.
11178
11179         * init.h: Removed FORCEDIRHIER.
11180
11181         * INSTALL: Added -L to socks-description.
11182
11183         * version.c: Changed version to 1.4b15.
11184
11185 1996-07-10  Hrvoje Niksic  <hniksic@srce.hr>
11186
11187         * version.c: "Released" 1.4b14.
11188
11189         * geturl.1: Update AUTHOR to include Rosella as contributor.
11190
11191         * NEWS: Update.
11192
11193         * socks/geturl.cgi: Simplified command creation, nuked <blink>.
11194
11195         * socks/geturl.cgi: Wrap nutscape extensions within if $netscape.
11196         (cal_time): Fix == to eq.
11197
11198         * socks/geturl.cgi: GPL-ized with permission of A. Rosella.
11199
11200         * geturl.1 (hostname): Moved URL CONVENTIONS to the beginning.
11201
11202         * Makefile.in: Use @VERSION@.
11203
11204         * configure.in: Check version from version.c.
11205
11206         * socks/geturl.cgi: Changed /pub/bin/perl to /usr/bin/perl.
11207
11208         * socks/download.html: Created from download-netscape.html, made
11209         HTML-2.0 compliant.
11210
11211         * recur.c (recursive_retrieve): Set opt.force_dir_hier when
11212         following FTP links from recursions.
11213
11214 1996-07-09  Hrvoje Niksic  <hniksic@srce.hr>
11215
11216         * url.c (mymkdir): Fixed a bug that prevented mymkdir() to create
11217         absolute directories correctly.
11218
11219         * version.c: Changed version to 1.4b14.
11220
11221 1996-07-09  Hrvoje Niksic  <hniksic@srce.hr>
11222
11223         * version.c: "Released" 1.4b13.
11224
11225         * url.c (make_backup): New function.
11226
11227         * http.c (http_loop): Make a backup copy of the local file (using
11228         rename(2)) before opening it.
11229
11230         * main.c (main): Added --backups.
11231
11232         * host.c (ftp_getaddress): Bail out on failed mycuserid().
11233         (ftp_getaddress): Check for leading dot on MY_DOMAIN.
11234         (ftp_getaddress): Check for empty, null or (null) domain.
11235
11236         * url.c (get_urls_html): If this_url is NULL, the base must have a
11237         protocol.
11238         (parseurl): Use has_proto.
11239
11240         * retr.c (retrieve_url): Warn when proxy is used with more than 20
11241         retries.
11242
11243         * url.c (mkstruct): Create the directory (calling mymkdir()) only
11244         if it is not already there.
11245         (has_proto): New function.
11246         (get_urls_html): Eliminate the remaining call to findurl -- use
11247         has_proto.
11248
11249         * geturl.1: Ditto.
11250
11251         * main.c: Change -X to -x.
11252
11253         * url.c (url_filename): Simplify creation of filename if
11254         prefix_files is set.
11255         (url_filename): Simplify everything. And I do mean *everything*.
11256         (mkstruct): Add dir_prefix before hostname.
11257         (path_simplify): Fixed a bug that caused writing outside the path
11258         string in case of "." and ".." path strings.
11259
11260 1996-07-06  Hrvoje Niksic  <hniksic@srce.hr>
11261
11262         * init.c: Added --mirror.
11263
11264         * main.c (main): Added -X to force saving of directory hierarchy.
11265
11266         * ftp.c (ftp_retrieve_list): Added recursion depth counter.
11267         (ftp_retrieve_list): Check whether quota is exceeded.
11268
11269         * url.c (get_urls_html): Skip leading blanks for absolute URIs.
11270
11271         * http.c (gethttp): Use referer if present.
11272
11273         * recur.c (recursive_retrieve): Set u->referer before calling
11274         retrieve_url.
11275
11276         * url.c (newurl): Use memset to nullify the struct members.
11277         (freeurl): Free the referer field too.
11278
11279         * url.h: Added referer to urlinfo.
11280
11281         * geturl.1: Updated the manual to document some of the new features.
11282
11283         * utils.c (numdigit): Moved from url.c.
11284
11285         * README: Rewritten.
11286
11287         * config.h.in: Add the support for socks.
11288
11289         * configure.in: Add the support for socks.
11290
11291         * url.c (url_filename): If the dir_prefix is ".", work with just
11292         the file name.
11293         (url_filename): Do not look for .n extensions if timestamping if
11294         turned on.
11295
11296         * retr.c (show_progress): Skip the over-abundant restval data, and
11297         print the rest of it with ',' instead of '.'.
11298
11299 1996-07-05  Hrvoje Niksic  <hniksic@srce.hr>
11300
11301         * retr.c (show_progress): Changed second arg. to long (as it
11302         should be).
11303         (show_progress): Moved to retr.c.
11304         (get_contents): Moved to retr.c.
11305
11306         * version.c: Change version to 1.4b13.
11307
11308 1996-07-05  Hrvoje Lacko <hlacko@fly.cc.fer.hr>
11309
11310         * url.c (in_acclist): Would return after the first suffix.
11311
11312 1996-07-04  Hrvoje Niksic  <hniksic@srce.hr>
11313
11314         * version.c: "Released" 1.4b12.
11315
11316         * url.c (path_simplify): More kludgifications.
11317         (get_urls_html): Use new parameters for htmlfindurl.
11318
11319         * html.c: Removed memorizing "parser states", since the new
11320         organization does not require them.
11321
11322         * init.c (run_geturlrc): Use read_whole_line.
11323
11324         * ftp-unix.c (ftp_parse_ls): Use read_whole_line.
11325
11326         * recur.c (parse_robots): Use read_whole_line.
11327
11328         * utils.c (read_whole_line): New function.
11329
11330         * recur.c (tried_robots): Use add_slist/in_slist, *much* cleaner.
11331
11332         * host.c (ngethostbyname): Call inet_addr just once. Yet to be
11333         tested on OSF and Ultrix.
11334         (add_hlist): New function.
11335         (free_hlist): New function.
11336         (search_host): New function.
11337         (search_address): New function.
11338         (realhost): Use search_host, search_address and add_hlist.
11339         (same_host): Replaced realloc() with strdupdelim(), made
11340         case-insensitive, fixed a memory leak.
11341
11342         * html.c (ftp_index): Fixed tm_min and tm_sec to be tm_hour and
11343         tm_min, like intended.
11344
11345         * version.c: Change user agent information to
11346         Geturl/version.
11347
11348 1996-07-03  Hrvoje Niksic  <hniksic@srce.hr>
11349
11350         * utils.c: Renamed nmalloc.c to utils.c, .h likewise.
11351
11352         * url.c (acceptable): Always accept directories.
11353
11354         * ftp-unix.c (ftp_parse_ls): Support brain-damaged "ls -F"-loving
11355         servers by stripping trailing @ from symlinks and trailing / from
11356         directories.
11357
11358         * ftp.c (ftp_loop): Debugged the "enhanced" heuristics. :-)
11359
11360         * url.c (skip_url): Use toupper instead of UCASE.
11361
11362         * host.c (sufmatch): Made it case-insensitive.
11363
11364         * url.c (match_backwards_or_pattern): Fixed i == -1 to j == -1.
11365         (match_backwards): New function, instead of
11366         match_backwards_or_pattern.
11367
11368         * recur.c (recursive_retrieve): Increased performance by
11369         introducing inl, which reduces number of calls to in_slist to only
11370         one.
11371
11372         * ftp.c (ftp_loop): Enhanced the heuristics that decides which
11373         routine to use.
11374
11375         * main.c (printhelp): Removed the warranty stuff.
11376
11377 1996-07-02  Hrvoje Niksic  <hniksic@srce.hr>
11378
11379         * url.c (add_slist): Simplify.
11380         (match_backwards_or_pattern): New function.
11381         (in_acclist): Use match_backwards_or_pattern.
11382         (matches): Remove.
11383
11384 1996-06-30  Hrvoje Niksic  <hniksic@srce.hr>
11385
11386         * ftp.c (ftp_loop): Call ftp_index on empty file names, if not
11387         recursive.
11388
11389         * html.c (ftp_index): Fixed to work. Beautified the output.
11390
11391         * ftp.c (ftp_retrieve_glob): Another argument to control whether
11392         globbing is to be used.
11393         (ftp_retrieve_list): Compare the time-stamps of local and remote
11394         files to determine whether to download.
11395
11396 1996-06-29  Hrvoje Niksic  <hniksic@srce.hr>
11397
11398         * ftp.c (rel_constr): New function.
11399
11400         * retr.c (retrieve_from_file): Check for text/html before
11401         retrieving recursively.
11402
11403         * main.c (main): Check whether the file is HTML before going into
11404         recursive HTML retrieving.
11405
11406         * ftp.c (ftp_retrieve_list): Manage directories.
11407         (ftp_retrieve_glob): Pass all the file-types to ftp_retrieve_list.
11408         (ftp_1fl_loop): Fixed a bug that caused con->com to be incorrectly
11409         initialized, causing bugchecks in getftp to fail.
11410
11411         * configure.in: Check for symlink.
11412
11413         * ftp.c (ftp_retrieve_list): Added support for symlinks.
11414
11415         * version.c: "Released" 1.4b10.
11416
11417         * atotm.c (atotm): Redeclared as time_t.
11418
11419         * init.c: New variable "timestamping".
11420
11421         * main.c (main): New option 'N'.
11422
11423         * http.c (hgetlocation): Case-insensitive match.
11424         (hgetmodified): New function.
11425         (http_loop): Implement time-stamping.
11426
11427 1996-06-28  Hrvoje Niksic  <hniksic@srce.hr>
11428
11429         * version.c: Changed version to 1.4b10
11430
11431         * atotm.c: New file, from phttpd.
11432
11433         * options.h (struct options): New parameter timestamping.
11434
11435         * version.c: 1.4b9 "released".
11436
11437         * recur.c (recursive_retrieve): Used linked list (ulist) for
11438         faster storing of URLs.
11439
11440         * url.c (get_urls_html): Removed the old kludge with comparing the
11441         outputs of htmlfindurl and findurl.
11442         (get_urls_html): Added better protocol support here.
11443         (create_hash): Removed, as well as add_hash and in_hash.
11444         (addslist): New function.
11445         (in_slist): ditto
11446
11447         * version.c: Released 1.4b8, changed version to b9.
11448
11449 1996-06-27  Hrvoje Niksic  <hniksic@srce.hr>
11450
11451         * ftp.c (freefileinfo): New function.
11452         (delelement): New function.
11453
11454         * everywhere: GPL!
11455
11456         * ftp.c (ftp_loop): Use ccon.
11457         (ftp_retrieve_glob): Likewise.
11458
11459         * ftp.h: Define ccon, to define status of control connection.
11460
11461         * ftp.c (ftp_get_listing): New function.
11462         (ftp_retrieve_more): New function.
11463         (ftp_retrieve_glob): New function.
11464
11465 1996-06-25  Hrvoje Niksic  <hniksic@srce.hr>
11466
11467         * configure.in: Removed the search for cuserid().
11468
11469         * init.c (getmode): Renamed to getperms.
11470
11471 1996-06-24  Hrvoje Niksic  <hniksic@srce.hr>
11472
11473         * version.c: New version.
11474
11475         * main.c (hangup): New function, that handles hangup. Hangup
11476         signal now causes geturl to stop writing on stdout, and to write
11477         to a log file.
11478
11479         * ftp.c (getftp): "Released" 1.4b7.
11480
11481         * html.c (htmlfindurl): Ignore everything inside <head>...</head>.
11482         (ftp_index): Use fileinfo/urlinfo.
11483
11484         * ftp-unix.c (ftp_parse_ls): New function.
11485         (symperms): New function.
11486
11487         * ftp.c (ftp_1fl_loop): New function, to handle 1-file loops.
11488
11489         * retr.c (retrieve_url): Added FTP support.
11490
11491 1996-06-23  Hrvoje Niksic  <hniksic@srce.hr>
11492
11493         * geturl.h: Removed NOTFTP2HTML enum.
11494         Added DO_LOGIN, DO_CWD and DO_LIST. LIST_ONLY is obsolete.
11495
11496         * ftp.c (getftp): Resynched with urlinfo.
11497         (getftp): Removed HMTL-ization of index.html from getftp.
11498
11499         * version.c: 1.4b6 "released".
11500
11501         * options.h (options): New struct, to keep options in.
11502
11503         * http.c (http_loop,gethttp): Synched with proxy.
11504
11505         * retr.c (retrieve_url): Implemented proxy retrieval.
11506
11507         * main.c (main): Use retrieve_from_file.
11508
11509 1996-06-22  Hrvoje Niksic  <hniksic@srce.hr>
11510
11511         * retr.c (retrieve_from_file): New function.
11512
11513         * url.c (parseurl): Modified to return URLOK if all OK. Protocol
11514         can be found in u->proto.
11515
11516         * ftp.c (ftp_response): Fixed to accept multi-line responses as
11517         per RFC 959.
11518
11519         * recr.c (recursive_retrieve): Take newloc from retrieve_url.
11520
11521         * url.c (mymkdir): Removed the file of the same name, if one
11522         exists.
11523         (isfile): New function.
11524         (mkstruct): Fixed the '/' glitches.
11525         (path_simplify): Hacked to treat something/.. correctly.
11526
11527 1996-06-21  Hrvoje Niksic  <hniksic@srce.hr>
11528
11529         * http.c (gethttp): Close the socket after error in headers.
11530         (http_loop): HEOF no longer a fatal header.
11531
11532         * loop.c (retrieve_url): When dt is NULL, do not modify it. This
11533         simplifies the syntax of calling retrieve_url.
11534
11535         * recr.c (recursive_retrieve): Modified to use get_urls_html.
11536
11537         * url.c (get_urls_file): New function.
11538         (get_urls_html): New function.
11539
11540         * recr.c (recursive_retrieve): Patched up to conform to the
11541         standards.
11542
11543         * http.c (gethttp): Synched with the rest...
11544         (gethttp): Treat only CONREFUSED specially, with connection
11545         errors.
11546
11547         * init.c,geturl.1,http.c (http_loop): Removed kill_error.
11548
11549 1996-06-20  Hrvoje Niksic  <hniksic@srce.hr>
11550
11551         * http.c (http_loop): New function.
11552
11553         * loop.c: Removed *lots* of stuff from retrieve_url.
11554
11555         * url.c (parseurl): Changed to work with urlinfo. Integrated
11556         username finding and path parsing.
11557         (newurl): New function.
11558         (freeurl): New function.
11559         (mkstruct): Removed the old bogosities, made it urlinfo-compliant.
11560         (url_filename): Likewise.
11561         (path_simplify): Accept relative paths too.
11562         (opt_url): Made urlinfo-compliant, removed bogosities.
11563         (path_simplify): Expanded to accept relative paths.
11564         (str_url): A replacement for hide_url
11565         (decode_string): Fixed a bug that caused malfunctioning when
11566         encountering an illegal %.. combination.
11567         (opt_url): Removed the argument. Dot-optimizations are now default.
11568
11569         * nmalloc.c (strdupdelim): New function.
11570
11571         * url.h: Added the urlinfo structure
11572
11573 1996-06-19  Hrvoje Niksic  <hniksic@srce.hr>
11574
11575         * url.c (hide_url): Thrown out the protocol assertion. Do not
11576         change the URL if the protocol if not recognized.
11577         (findurl): Put continue instead of break.
11578
11579 1996-06-18  Hrvoje Niksic  <hniksic@srce.hr>
11580
11581         * sample.geturlrc: Changed the defaults to be commented out and
11582         harmless (previous defaults caused pains if copied to
11583         ~/.geturlrc).
11584
11585         * http.c (gethttp): Print the HTTP request in debug mode.
11586
11587         * connect.c (iread): Added EINTR check loop to select-ing
11588         too. EINTR is now correctly handled with select().
11589
11590         * TODO: new file
11591
11592 1996-05-07  Hrvoje Niksic  <hniksic@srce.hr>
11593
11594         * host.c (same_host): Made the function a little bit more
11595         intelligent regarding diversified URL syntaxes.
11596
11597         * url.c (skip_url): Spaces are now skipped after URL:
11598
11599         * Released 1.3.1 with the patch to prevent crashing when sending
11600         NULL to robot* functions and the patch to compile "out of the box"
11601         on AIX.
11602
11603         * recr.c (recursive_retrieve): Added checking whether this_url is
11604         NULL when calling the robot functions.
11605
11606         * ChangeLog: New file.