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