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