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