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