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