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