]> sjero.net Git - wget/blob - src/ChangeLog
[svn] Allow IPv6 numeric addresses in URLs.
[wget] / src / ChangeLog
1 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
2
3         * url.c (urlchr_table): Make square braces reserved, so we can
4         parse http://[::1]/.
5         (url_parse): Handle host in braces.
6         (url_string): If url->host contains colons, wrap it in braces.
7
8 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
9
10         * connect.c (resolve_bind_address): New function.
11         (connect_to_one): Use it.
12         (bindport): Ditto.
13
14         * init.c: Don't resolve bind-address here.
15
16         * host.c (wget_sockaddr_set_address): Would bug out with ADDR == NULL.
17
18 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
19
20         * host.c (lookup_host): Use sizeof(ip4_address) to calculate the
21         offset.
22         (address_list_new): Use map_ipv4_to_ip.
23         (wget_sockaddr_set_address): Convert ADDR to IPv4 before using it
24         in IPv4 context.
25
26 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
27
28         * source: Integrated IPv6 support.
29         Written by Thomas Lussnig <thomas.lussnig@bewegungsmelder.de>.
30
31 2002-01-15  Ian Abbott  <abbotti@mev.co.uk>
32
33         * init.c (cmd_file): Change `\' to `/' for Windows (yes, really!)
34         (cmd_directory): New function. Like cmd_file(), but strips
35         trailing directory separators.
36         (commands): Change action for "dirprefix" from `cmd_file' to
37         `cmd_directory'.
38
39         * utils.c (make_directory): Allow intermediate `mkdir' calls to
40         fail, as not all path components that do not exist should be
41         directory components, especially under Windows.
42
43 2002-01-17  Hrvoje Niksic  <hniksic@arsdigita.com>
44
45         * netrc.c (parse_netrc): Skip leading whitespace before testing
46         whether the line is empty.  Empty lines still contain the line
47         terminator.
48
49 2002-01-15  Hrvoje Niksic  <hniksic@arsdigita.com>
50
51         * gen_sslfunc.c (ssl_iread): Call select on the file descriptor
52         only if no data is pending in SSL buffers.
53         From tony@bluetail.com.
54
55 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
56
57         * headers.c (header_get): Strip trailing whitespace from the
58         header.
59
60 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
61
62         * url.c (parse_uname): URL-decode *USER and *PASSWD.
63
64 2002-01-07  Ian Abbott <abbotti@mev.co.uk>
65
66         * url.c (uri_merge_1): Deal with "net path" relative URL (one that
67         starts with "//").
68
69 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
70
71         * http.c (gethttp): Invalidate SOCK if get_contents encountered an
72         error.
73
74 2001-12-24  Hrvoje Niksic  <hniksic@arsdigita.com>
75
76         * version.c: Wget 1.8.1 is released.
77
78 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
79
80         * version.c: Wget 1.8.1-pre3 is released.
81
82 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
83
84         * recur.c (retrieve_tree): Enqueue the canonical representation of
85         start_url, so that the test against dl_url_file_map works.
86
87 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
88
89         * log.c (logputs): Check for requested verbosity before printing
90         anything.
91
92 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
93
94         * html-url.c (tag_handle_link): Treat the "shortcut icon" link as
95         inline.
96
97 2001-12-18  Hrvoje Niksic  <hniksic@arsdigita.com>
98
99         * recur.c (retrieve_tree): Make a copy of file obtained from
100         dl_url_file_map because the code calls xfree(file) later.
101
102 2001-12-18  Hrvoje Niksic  <hniksic@arsdigita.com>
103
104         * recur.c (register_html): Maintain a hash table of HTML files
105         along with the list.  Disallow duplicates.
106         (retrieve_tree): Use downloaded_html_set to check whether the file
107         found in dl_url_file_map is an HTML file, and descend into it if
108         so.
109         (convert_all_links): Don't guard against duplicates in
110         downloaded_html_list, since they are no longer possible.
111
112 2001-12-18  Ian Abbott  <abbotti@mev.co.uk>
113
114         * recur.c (retrieve_tree): Pass on referring URL when retrieving
115         recursed URL.
116
117 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
118
119         * version.c: Wget 1.8.1-pre2 is released.
120
121 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
122
123         * retr.c (sleep_between_retrievals): Simplify indentation.
124
125 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
126
127         * gen_sslfunc.c (ssl_init_prng): Use random_number to get a byte
128         of "randomness" at a time.
129         (ssl_init_prng): Don't seed the PRNG; random_number will do that.
130
131         * retr.c (sleep_between_retrievals): Use it.  Make sure that the
132         random amount averages in opt.wait.
133         (sleep_between_retrievals): Don't seed the PRNG; random_number
134         will do that.
135
136         * utils.c (random_number): New function.
137
138 2001-12-14  Hrvoje Niksic  <hniksic@arsdigita.com>
139
140         * url.c (path_simplify): Move here from utils.c, and make static.
141
142 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
143
144         * init.c (wgetrc_file_name): Print correct message when loading
145         getenv("WGETRC") fails.
146
147 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
148
149         * recur.c (register_download): Don't abort when one URL references
150         two different files.
151
152 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
153
154         * http.c (gethttp): Check for conn->scheme, not u->scheme, before
155         calling ssl_iwrite.
156
157 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
158
159         * version.c: Wget 1.8.1-pre1 is released.
160
161 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
162
163         * res.c (matches): Fix broken URL in the docstring.
164
165 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
166
167         * html-url.c (tag_url_attributes): Mark <embed href=...> as
168         external.
169
170 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
171
172         * url.c (get_urls_file): Cosmetic changes.
173
174 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
175
176         * html-url.c (append_one_url): Resurrect warning when unable to
177         resolve a relative link.
178
179 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
180
181         * html-url.c (collect_tags_mapper): Break into several functions.
182         (tag_url_attributes): Collect <embed href=...>.
183
184 2001-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
185
186         * host.c: New type ipv4_address.  Use it consistently instead of
187         `unsigned char[4]' and `unsigned char *'.
188         (pretty_print_address): Accept a `const void *', to require even
189         less casting.
190
191 2001-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
192
193         * ftp-ls.c (ftp_parse_vms_ls): Fix obvious memory leaks.
194
195 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
196
197         * main.c (main): Initialize progress after fork_to_background, so
198         that it knows when to use dots.
199
200         * mswindows.c (ws_hangup): Call log_request_redirect_output.
201
202         * utils.c (fork_to_background): Print the PID of the child
203         process.
204
205         * log.c (log_request_redirect_output): Set a flag that output
206         redirection has been requested.  Doing anything else in a signal
207         handler is unsafe.
208         (check_redirect_output): New function: check whether redirection
209         has been requested and, if so, call redirect_output().
210         (logputs): Call check_redirect_output.
211         (logprintf): Ditto.
212         (debug_logprintf): Ditto.
213         (redirect_output): Print clearer messages.
214
215         * main.c (redirect_output_signal): Don't call
216         redirect_output_signal directly.  Instead, call
217         log_request_redirect_output.
218
219         * utils.c (memfatal): Ditto.
220
221         * progress.c (display_image): Use it.
222
223         * log.c (log_set_save_context): New function: allow the caller to
224         turn off saving log context lines.
225
226 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
227
228         * host.c (address_list_set_faulty): Uncomment a sanity check.
229
230 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
231
232         * utils.c (long_to_string): Return a pointer after where the
233         number ends.
234         (long_to_string): Rename to number_to_string.
235
236 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
237
238         * utils.c (path_simplify): Correctly handle the unlikely case that
239         b starts out as path + 1.
240
241 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
242
243         * utils.c (path_simplify): Rewrite, with better comments, and
244         without the use of strcpy to move overlapping blocks.
245
246 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
247
248         * init.c (cmd_spec_progress): Resurrect.  Check whether VAL is a
249         valid progress type before setting it.
250
251 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
252
253         * main.c (main): Remove stray debugging message.
254
255 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
256
257         * progress.c (create_image): Fix ETA padding when hours are prined.
258
259 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
260
261         * version.c: Wget 1.8 is released.
262
263 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
264
265         * url.c (reencode_string): Declare static.
266
267         * res.c (registered_specs): Declare static.
268
269         * progress.c (current_impl_locked): Declare static.
270
271         * log.c (flush_log_p): Declare static.
272         (needs_flushing): Ditto.
273
274         * http.c (digest_authentication_encode): Declare static.
275
276         * html-url.c (init_interesting): Declare static.
277
278         * host.c (host_name_addresses_map): Declare static.
279
280         * cookies.c (find_matching_chains): Declare static.
281
282         * ftp-ls.c (ftp_parse_vms_ls): Warn about the memory leak
283         indicated by lint.
284
285         * utils.c (path_simplify): Remove unused variable STUB_CHAR.
286
287         * host.c (address_list_set_faulty): Document that INDEX is
288         currently unused.
289
290         * url.c (rewrite_shorthand_url): Remove unused variable PATH.
291
292 2001-12-08  Hrvoje Niksic  <hniksic@arsdigita.com>
293
294         * version.c: Wget 1.8-pre2 is released.
295
296 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
297
298         * progress.c (progress_handle_sigwinch): Set up the signal again.
299
300         * utils.c: Include <sys/termios.h>, where Solaris defines
301         TIOCGWINSZ.
302
303         * progress.c (bar_create): Don't use the last column on the screen.
304         (create_image): Pad ETA to constant size.  Pad SIZE to nine digits
305         only until it exceeded them.
306
307 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
308
309         * version.c: Wget 1.8-pre1 is released.
310
311 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
312
313         * progress.c (progress_create): Make sure that, when the output is
314         redirected, the progress implementation gets changed to the
315         fallback one.
316         (bar_set_params): Set current_impl_locked to 1 when "force" is
317         specified.
318         (progress_create): Don't change the progress implementation if
319         current_impl_locked is non-zero.
320
321         * main.c (redirect_output_signal): Call
322         progress_schedule_redirect.
323
324         * progress.c (progress_schedule_redirect): New function.
325
326 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
327
328         * log.c (logvprintf): Restructure to allow being called multiple
329         times.
330         (logprintf): Call logvprintf in a loop.
331         (debug_logprintf): Ditto.
332
333 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
334
335         * gen_sslfunc.c (ssl_init_prng): Allow the user to disable EGD by
336         setting egd_file it to empty string.
337
338         * main.c (main): Change the option name from --sslegdsock to
339         --egd-file.
340
341 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
342
343         * gen_sslfunc.c (ssl_init_prng): Make the printed message
344         translatable.
345
346 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
347
348         * url.c (scheme_disable): New function.
349
350         * main.c (main): Call ssl_init_prng from here rather than from
351         init_ssl, so that it has a chance to disable support for https
352         before a URL has been resolved.
353
354         * gen_sslfunc.c (ssl_init_prng): Seed with rand() if all else
355         failed.
356         (ssl_init_prng): Disable support for https if seeding the PRNG
357         fails.
358
359 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
360
361         * utils.c (read_whole_line): Handle lines beginning with \0.
362
363 2001-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
364
365         * recur.c (convert_all_links): Guard against duplicates in
366         downloaded_html_files.
367         (register_download): Don't invalidate similar-looking URLs.
368         (match_except_index): New function.
369
370 2001-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
371
372         * utils.c (path_simplify): Document with test cases.
373
374 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
375
376         * gen_sslfunc.c: Ditto.
377
378         * rbuf.c: Include <string.h>.
379
380 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
381
382         * recur.c (retrieve_tree): Check whether the URL was already
383         downloaded before downloading it again.
384         (descend_child_p): Renamed to download_child_p.
385         (register_download): When one URL is downloaded to a file already
386         "owned" by another URL, delete all references that map any URL to
387         that file.
388         (register_delete_file): New function.
389         (retrieve_tree): Use it after deleting a file.
390
391         * url.c (url_parse): Re-canonicalize the URL also if the path is
392         empty, so that e.g. "http://www.server.com" ->
393         "http://www.server.com/".
394         (lowercase_str): Use ISUPPER instead of !ISLOWER.
395
396         * retr.c (retrieve_url): Use the canonical URL form when calling
397         register_download().
398
399 2001-12-04  Ian Abbott <abbotti@mev.co.uk>
400
401         * snprintf.c (dopr): Use `unsigned int' as the second argument to
402         va_arg when casting to `unsigned short' is intended.
403
404 2001-12-04  Herold Heiko  <Heiko.Herold@previnet.it>
405
406         * gen_sslfunc.c: on windows provide ssl crypto random 
407           initialization through RAND_screen(); could possibly
408           be not enough for strong ssl communication (see the 
409           relevant manual page from the openssl package).
410
411 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
412
413         * url.c (local_quote_string): Reenable quoting of question marks,
414         but only when `--html-extension' is used.
415
416 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
417
418         * version.c: Wget 1.8-beta3 is released.
419
420 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
421
422         * snprintf.c (dopr): Cast the result of va_arg to short int and
423         short unsigned int where these types are expected to be used.
424
425 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
426
427         * snprintf.c (dopr): Replace `short int' and `unsigned short int'
428         with `int' when using it as the second argument to `va_arg'.
429
430 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
431
432         * host.c (address_list_new_one): New function.
433         (lookup_host): Use it.
434
435 2001-12-03  Andre Majorel  <amajorel@teaser.fr>
436
437         * host.c (lookup_host): Don't initialize TMPSTORE directly because
438         it's not legal C.
439
440 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
441
442         * ftp-basic.c (ftp_port): Don't return HOSTERR if we fail getting
443         the socket data.
444
445         * ftp.c: Ditto.
446
447         * http.c: No need to declare h_errno.
448
449         * host.c: Declare h_errno.
450
451 2001-12-02  Hrvoje Niksic  <hniksic@arsdigita.com>
452
453         * utils.c (file_merge): If BASE doesn't contain a slash, just
454         return a copy of FILE.
455
456 2001-12-02  Hrvoje Niksic  <hniksic@arsdigita.com>
457
458         * version.c: Wget 1.8-beta2 is released.
459
460 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
461
462         * ftp.c (getftp): When PWD fails, assume "/".
463
464         * ftp-basic.c (ftp_syst): Fix indentation.
465
466 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
467
468         * url.c (get_urls_file): If opt.base_href is specified, merge each
469         URL with the base.
470
471 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
472
473         * main.c (print_help): Don't document the removed `-nh'.
474
475 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
476
477         * url.c (url_full_path): Document better.
478
479         * http.c (gethttp): Use the full path when creating digest
480         authorization.
481
482 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
483
484         * cookies.c (path_matches): Return 0 if PREFIX doesn't begin with
485         '/'.
486
487 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
488
489         * cookies.c (path_matches): FULL_PATH doesn't begin with '/', but
490         PREFIX does.
491
492 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
493
494         * cookies.c (check_domain_match): Reimplement to match Netscape's
495         "preliminary specification" for cookies.
496
497 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
498
499         * url.c (replace_attr_refresh_hack): New function.
500         (convert_links): Call replace_attr_refresh_hack for Refresh
501         links.  It will add the "TMOUT; URL=" junk before the link.
502
503         * html-url.c (collect_tags_mapper): Set ID to the ID of the
504         "content" attribute, not "http-equiv".
505         (collect_tags_mapper): Don't use OFFSET to hack the raw_* values;
506         instead, store the information that this entry belongs to a
507         "refresh" link.
508
509 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
510
511         * version.c: Wget 1.8-beta1 is released.
512
513 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
514
515         * recur.c (retrieve_tree): Allow -p retrievals to exceed maximum
516         depth by more than one.
517
518 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
519
520         * retr.c (retrieve_url): Don't allow more than 20 redirections.
521
522 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
523
524         * recur.c (retrieve_tree): Skip the non-inline entries when
525         enqueuing the children of a leaf HTML node in -p mode.
526         (descend_url_p): Ignore opt.no_parent when in -p mode and UPOS is
527         "inline".
528
529         * html-url.c (get_urls_html): Don't accept dash_p_leaf_HTML.
530         (collect_tags_mapper): When an entry is "inline", mark it as such.
531
532         * recur.c (descend_url_p): Fix test when checking for
533         acceptance/rejection rules.
534
535 2001-10-31 Daniel BODEA <dali@dali-designs.com>
536
537         * netrc.c (search_netrc): When slack_default is 0, still look for
538         an account with matching password, just not the "default account".
539         HTTP Authorization using .netrc should now work as expected.
540
541 2001-11-30  T. Bharath  <TBharath@responsenetworks.com>
542
543         * http.c (persistent_available_p): Call SHUTDOWN_SSL if
544         test_socket_open fails.
545
546 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
547
548         * progress.c (display_image): Just print one CR to reset the
549         cursor position.
550
551 2001-11-30  Christian Fraenkel  <c.fraenkel@gmx.net>
552
553         * init.c: New command `ssl_egd_sock'.
554
555         * main.c (main): New option `--sslegdsock'.
556
557         * gen_sslfunc.c (ssl_init_prng): Seed the RNG using EGD.
558
559 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
560
561         * cmpt.c (memmove): Include a simple memmove implementation.
562
563 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
564
565         * headers: Guard against header files being included twice.
566
567 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
568
569         * gen-md5.c: Use unsigned char * as the buffer argument to
570         gen_md5_update.
571
572 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
573
574         * connect.h: Declare select_fd.
575
576 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
577
578         * recur.c (descend_url_p): When resolving no_parent, compare with
579         start_url, not parent url.  Otherwise link from /a/b/ to /a/c/
580         wouldn't be followed, although the download started from /a/.
581
582 2001-01-23  Herold Heiko  <Heiko.Herold@previnet.it>
583
584         * config.h.ms, mswindows.h: defined HAVE_ISATTY, use _isatty for
585         MS VC; somebody with Borland compiler please check and provide
586         patch if possible;
587
588         * cmpt.c: provided a usleep emulation.
589
590 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
591
592         * host.c (address_list_new): Initialize al->faulty.
593
594 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
595
596         * http.c (http_process_range): Accept the broken output of
597         "JavaWebServer/1.1.1".
598
599 2001-11-28  Hrvoje Niksic  <hniksic@arsdigita.com>
600
601         * progress.c (dot_set_params): If PARAMS is unspecified, use
602         dot_style, if available.
603
604         * init.c: Ditto.
605
606         * main.c (main): Resurect --dot-style.
607
608         * progress.c (dot_finish): Print the quantity if we're left at the
609         beginning of a row.
610
611 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
612
613         * cmpt.c (random): Removed.
614
615         * retr.c (sleep_between_retrievals): Use the more portable rand()
616         instead of random().
617
618 2001-11-27  Ian Abbott <abbotti@mev.co.uk>
619
620         * retr.c (retrieve_from_file): Initialize `new_file' to NULL to
621         prevent seg fault.
622
623 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
624
625         * connect.c (connect_to_many): Use address_list_set_faulty to
626         prevent the faulty address from being reused.
627
628         * host.c (address_list_set_faulty): New function.
629         (address_list_get_bounds): New function, instead of
630         address_list_count.
631
632 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
633
634         * url.c (convert_links): Don't translate %d-%d.
635
636         * main.c (print_help): Remove stray HAVE_RANDOM code.
637
638 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
639
640         * ftp.c (getftp): Improve output after sending PASV.  Don't
641         attempt to "look up" the IP address we already know; call
642         connect_to_one directly.
643
644 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
645
646         * progress.c: Change the default progress implementation to "bar".
647
648 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
649
650         * progress.c (bar_create): Print two newlines.
651
652 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
653
654         * cmpt.c (random): New function, a simple-minded replacement for
655         random() on systems that don't have it.
656
657 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
658
659         * config.h.in: Put a HAVE_USLEEP stub.
660
661         * cmpt.c (usleep): Replacement implementation of usleep using
662         select.
663
664         * init.c: New option init_rate.
665
666         * main.c (main): New option --limit-rate.
667
668         * retr.c (limit_bandwidth): New function.
669         (get_contents): Call it to limit the bandwidth used when
670         downloading.
671
672         * progress.c (dot_update): Would print the wrong download speed on
673         rows other than the first one when the download was continued.
674         (dot_finish): Ditto.
675
676 2001-11-26  Ian Abbott <abbotti@mev.co.uk>
677
678         * http.c (gethttp): fix undeclared variable 'err' when compiled
679         with HAVE_SSL.
680
681 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
682
683         * progress.c: Don't allocate new timers; use the timing data
684         propagated from the caller.
685
686         * retr.c (get_contents): Allocate and use a timer.
687
688 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
689
690         * http.c (last_host_ip): Made into an address_list.
691         (invalidate_persistent): Release pc_last_host_ip.
692         (register_persistent): Use lookup_host.
693         (persistent_available_p): Check for equality of hosts using
694         address_list_match_all.  Call address_list_release.
695         (http_cleanup): New function.
696
697         * ftp.c (getftp): Use lookup_host and connect_to_many.
698
699         * http.c (gethttp): Use lookup_host and connect_to_many.
700
701         * connect.c (make_connection): Removed.
702         (connect_to_one): New function.
703         (connect_to_many): Ditto.
704         (set_connection_host_name): Ditto.
705
706         * host.c (lookup_host): New function; new return type.
707         (address_list_new): New function.
708         (address_list_count): Ditto.
709         (address_list_copy_one): Ditto.
710         (address_list_delete): Ditto.
711         (address_list_release): Ditto.
712         (pretty_print_address): Ditto.
713
714 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
715
716         * recur.c (retrieve_tree): In case of followed redirection,
717         blacklist the pre-redirection URL.
718
719 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
720
721         * recur.c (descend_redirect_p): New function.
722         (retrieve_tree): Make sure redirections are not blindly followed.
723
724 2001-11-04  Alan Eldridge  <alane@geeksrus.net>
725
726         * config.h.in: added HAVE_RANDOM.
727
728         * options.h: added random_wait to struct options.
729
730         * main.c (print_help [HAVE_RANDOM], main): added arg parsing, help
731         for --random-wait.
732
733         * retr.c (sleep_between_retrievals) [HAVE_RANDOM]: added
734         implementation of random wait times.
735
736         * init.c (commands): added "randomwait" keyword.
737
738 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
739
740         * recur.c (descend_url_p): Be more conservative with blacklisting
741         URLs.
742         (convert_all_links): Print how many files have been converted, and
743         how long it took.
744
745         * progress.c (create_image): Place the number of downloaded bytes
746         right after the progress bar.
747
748         * utils.c (suffix): Return a pointer into the string.
749
750 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
751
752         * url.c (convert_links): Handle CO_NULLIFY_BASE.
753
754         * recur.c (retrieve_tree): Ignore download-ignorable children.
755         (convert_all_links): Specify CO_NULLIFY_BASE when link_base_p.
756
757         * html-url.c (handle_link): Return the newly created urlpos.
758         (collect_tags_mapper): When dealing with BASE, store the base
759         reference and mark it as download-ignorable.
760
761 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
762
763         * url.c (convert_links): Attempt to quote '?' as "%3F" when
764         linking to local files.  Given up on the attempt, as it breaks
765         local browsing.
766
767 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
768
769         * main.c (private_initialize): Removed.
770         (main): Don't call private_initialize.
771
772         * http.c: Call lookup_host.
773
774         * host.c (host_init): Removed.
775         (add_host_to_cache): Initialize host_name_address_map here, on
776         demand.
777         (ngethostbyname): Commented out.
778
779         * connect.c (make_connection): Remove dead code; use lookup_host.
780
781         * host.c (store_hostaddress): Renamed to lookup_host and reversed
782         the args.
783         Removed host_address_name_map and host_slave_master_map.
784
785 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
786
787         * progress.c (dot_create): Align the "[ skipping ... ]" string
788         with the dots.
789
790         * retr.c (rate): Split into two functions: calc_rate and
791         retr_rate.
792
793         * progress.c (create_image): Draw a dummy progress bar even when
794         total size is unknown.
795         (display_image): Place the text cursor at the end of the "image".
796
797 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
798
799         * url.c (reencode_string): Use unsigned char, not char --
800         otherwise the hex digits come out wrong for 8-bit chars such as
801         nbsp.
802         (lowercase_str): New function.
803         (url_parse): Canonicalize u->url if needed.
804         (get_urls_file): Parse each URL, and return only the valid ones.
805         (free_urlpos): Call url_free.
806         (mkstruct): Add :port if the port is non-standard.
807         (mkstruct): Append the query string to the file name, if any.
808         (urlpath_length): Use strpbrk_or_eos.
809         (uri_merge_1): Handle the cases where LINK is an empty string,
810         where LINK consists only of query, and where LINK consists only of
811         fragment.
812         (convert_links): Count and report both kinds of conversion.
813         (downloaded_file): Use a hash table, not a list.
814         (downloaded_files_free): Free the hash table.
815
816         * retr.c (retrieve_from_file): Ditto.
817
818         * main.c (main): Call either retrieve_url or retrieve_tree
819         for each URL, not both.
820
821         * retr.c (register_all_redirections): New function.
822         (register_redirections_mapper): Ditto.
823         (retrieve_url): Register the redirections.
824         (retrieve_url): Make the string "Error parsing proxy ..." 
825         translatable.
826
827         * res.c (add_path): Strip leading slash from robots.txt paths so
828         that the path representations are "compatible".
829         (free_specs): Free each individual path, too.
830         (res_cleanup): New function.
831         (cleanup_hash_table_mapper): Ditto.
832
833         * recur.c (url_queue_new): New function.
834         (url_queue_delete): Ditto.
835         (url_enqueue): Ditto.
836         (url_dequeue): Ditto.
837         (retrieve_tree): New function, replacement for recursive_retrieve.
838         (descend_url_p): New function.
839         (register_redirection): New function.
840
841         * progress.c (create_image): Cosmetic changes.
842
843         * init.c (cleanup): Do all those complex cleanups only if
844         DEBUG_MALLOC is defined.
845
846         * main.c: Removed --simple-check and the corresponding
847         simple_host_check in init.c.
848
849         * html-url.c (handle_link): Parse the URL here, and propagate the
850         parsed URL to the caller, who would otherwise have to parse it
851         again.
852
853         * host.c (xstrdup_lower): Moved to utils.c.
854         (realhost): Removed.
855         (same_host): Ditto.
856
857 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
858
859         * utils.c (path_simplify): Preserver the (non-)existence of
860         leading slash.  Return non-zero if changes were made.
861
862 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
863
864         * progress.c (bar_update): Don't modify bp->total_length if it is
865         zero.
866
867 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
868
869         * retr.c (retrieve_url): When the redirection URL doesn't parse,
870         print the correct error message rather than "UNKNOWN".
871
872 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
873
874         * progress.c (bar_finish): If the timer didn't record any time
875         since the download beginning, fake 1ms.
876
877 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
878
879         * recur.c (recursive_retrieve): Fix typo.
880
881 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
882
883         * progress.c (create_image): Don't translate "%ld ".
884
885 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
886
887         * progress.c (bar_set_params): Allow the user to force the use of
888         the bar.
889
890 2001-11-23  Lemble Gregory  <gregory.lemble@st.com>
891
892         * gen_sslfunc.c (ssl_init_prng): New function; seed the SSL RNG.
893
894 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
895
896         * progress.c: Renamed dp_* functions to dot_* for greater clarity
897         and consistency with bar_*.
898         (print_download_speed): Get rid of the unneeded '@' character.
899         (create_image): Fix download rate geometry.
900
901         * progress.c (print_elapsed): Remove spurious space.
902         (print_elapsed): Renamed to print_download_speed, since that's
903         what it does.
904
905 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
906
907         * progress.c (bar_update): If the downloaded amount becomes larger
908         than the expected amount, adjust the expected amount accordingly.
909
910 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
911
912         * utils.c (determine_screen_width): New function.
913
914         * main.c (main): New option `--progress=TYPE'.
915         (main): Implement compatibility with the old option `--dot-style'.
916
917         * init.c: Removed cmd_spec_dotstyle -- that logic is now in
918         dp_set_params.
919         (cmd_spec_progress): New function.
920
921         * retr.c (get_contents): Use the progress_* functions instead of
922         the old show_progress().
923         (show_progress): Removed.
924         (rate): Print "xxxx.xx K/s" instead of "KB/s".  Ditto for MB/s,
925         etc.
926
927         * progress.c (set_progress_implementation): New function.
928         (valid_progress_implementation_p): Ditto.
929         (progress_create): Ditto.
930         (progress_update): Ditto.
931         (progress_finish): Ditto.
932         (dp_create): Ditto.
933         (dp_update): Ditto.
934         (dp_finish): Ditto.
935         (dp_set_params): Ditto.
936         (print_elapsed): Ditto.
937
938 2001-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
939
940         * retr.c (show_progress): Use it.
941
942         * log.c (log_set_flush): New function.
943
944 2001-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
945
946         * utils.c (path_simplify): Don't remove trailing slashes.
947
948         * ftp.c (ftp_get_listing): Use it.
949
950         * utils.c (file_merge): New function.
951
952         * url.c (opt_url): Removed.
953
954         * recur.c (recursive_retrieve): Inline "opt_url" logic.
955
956         * main.c (main): Use xfree(), not free().
957
958         * url.c (rewrite_url_maybe): Renamed to rewrite_shorthand_url.
959
960         * ftp.c (ccon): Move `ccon' typedef here, since it's only used
961         internally.
962
963         * config.h.in: Include a stub for HAVE_STRPBRK.
964
965         * cmpt.c (strpbrk): Include a replacement for systems without
966         strpbrk().
967
968         * ftp.c: Use url_set_dir and url_set_file when modifying the URL.
969
970         * url.c (url_set_dir): New function.
971         (url_set_file): Ditto.
972
973         * ftp-basic.c (ftp_process_type): Process FTP type here; the URL
974         parser makes the URL "params" available, so we can do that in this
975         function.
976
977         * retr.c: Ditto.
978
979         * ftp.c: Ditto; pass the local file information in `ccon'.
980
981         * http.c: Get rid of the ugly kludge that had URL being replaced
982         with the proxy URL when proxy retrieval was requested.  Use a
983         separate parameter to http_loop and gethttp for the proxy URL.
984
985         * http.c: Changed to reflect the fact that local file, proxy, and
986         referer information are no longer stored in struct url.  The local
987         file information is passed in `struct hstat' now.
988
989         * url.c: Reworked URL parsing to be more regular.  Reencode the
990         URL using reencode_string.
991         Removed non-URL-related information from struct url.  This
992         includes fields `proxy', `local', and `referer'.
993
994 2001-11-22  Jochen Hein  <jochen@jochen.org>
995
996         * main.c (main): Split the copyright notice for easier
997         translation.
998
999 2001-08-21  Dave Turner <dct25@hermes.cam.ac.uk>
1000
1001         * ftp-basic.c (ftp_size): New function to send non-standard SIZE
1002           command to server to request file size.
1003         * ftp.h (ftp_size): Export it.
1004         * ftp.c (getftp): Use new ftp_size function if restoring
1005           transfer of a file with unknown size.
1006
1007 2001-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
1008
1009         * url.c (parseurl): Don't depend on the now-obsolete TYPE.
1010
1011 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
1012
1013         * url.c (getproxy): Handle URL shorthands.
1014
1015 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
1016
1017         * main.c: Remove --wait / --waitretry backwards compatibility
1018         code.
1019         
1020 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
1021
1022         * main.c (main): Use it.
1023
1024         * url.c (rewrite_url_maybe): New function.
1025
1026 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
1027
1028         * url.c: Clean up handling of URL schemes.
1029
1030 2001-05-13  Hrvoje Niksic  <hniksic@arsdigita.com>
1031
1032         * url.c: Get rid of `protostrings'.
1033         (skip_proto): Don't use protostrings.
1034         (has_proto): Ditto.
1035
1036 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
1037
1038         * Makefile.in: Conditionally compile getopt.o.
1039
1040 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
1041
1042         * md5.h: Renamed to gnu-md5.h.
1043
1044         * md5.c: Renamed to gnu-md5.c.
1045
1046         * http.c: Ditto.
1047
1048         * ftp-opie.c: Use the new macros.
1049
1050         * sysdep.h: Define md5-related macros.
1051
1052         * config.h.in: Define HAVE_SOLARIS_MD5 or HAVE_BUILTIN_MD5
1053         depending on which md5 implementation is used.
1054
1055 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
1056
1057         * res.c (res_register_specs): Initialize OLD and HP_OLD to appease
1058         the compiler.
1059
1060 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
1061
1062         * http.c (gethttp): Print the whole response line when printing
1063         headers is requested.
1064
1065 2001-05-12  Hrvoje Niksic  <hniksic@arsdigita.com>
1066
1067         * res.c: New file.  Implement all RES-related code here.
1068
1069 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
1070
1071         * version.c: Wget 1.7.1 is released.
1072
1073 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
1074
1075         * headers.c (header_extract_number): Ignore trailing whitespace.
1076
1077 2001-08-24  Ian Abbott  <abbotti@mev.co.uk>
1078
1079         * html-url.c (collect_tags_mapper): Fix bug converting links
1080         with -k option for tags with multiple link attributes by
1081         handling links in the order they appear.
1082
1083 2001-08-15  Ian Abbott  <abbotti@mev.co.uk>
1084
1085         * ftp.c (ftp_loop_internal): Avoid a potential buffer overflow in
1086           the call to the 'rate' function by moving it past the error
1087           checking for the 'getftp' function return value.
1088
1089 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
1090
1091         * html-parse.c (advance_declaration): Use 0x22 instead of '"' or
1092         '\"'.  Different compilers' assert macros are broken in different
1093         ways.
1094
1095 2001-09-29  Christian Fraenkel  <c.fraenkel@gmx.net>
1096
1097         * http.c (gethttp): print debug output for errors occuring during
1098         the ssl handshake.
1099
1100 2001-11-16  Chris Seawood  <cls@seawood.org>
1101
1102         * init.c: Ditto.
1103
1104         * host.c: Ditto.
1105
1106         * connect.c: Ditto.
1107
1108         * sysdep.h: Support compilation under BEOS.
1109
1110 2001-06-08  Edward J. Sabol  <sabol@alderaan.gsfc.nasa.gov>
1111
1112         * url.c (url_equal): Fix a memory leak when parseurl returns an
1113         error on the second URL. Also, since url_equal is not used at the
1114         moment, do not compile it.
1115
1116         * url.h: Ditto for the prototype of url_equal.
1117
1118 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
1119
1120         * html-parse.c (map_html_tags): Support XML-style empty tags.
1121
1122 2001-06-26  Hrvoje Niksic  <hniksic@arsdigita.com>
1123
1124         * wget.h (DO_REALLOC_FROM_ALLOCA): Check for do_realloc_newsize in
1125         loop condition because we're no longer setting SIZEVAR here.
1126
1127 2001-06-26  Hrvoje Niksic  <hniksic@arsdigita.com>
1128
1129         * wget.h (DO_REALLOC_FROM_ALLOCA): Set SIZEVAR after the memcpy()
1130         call because it needs the old value.
1131
1132 2001-06-18  Hrvoje Niksic  <hniksic@arsdigita.com>
1133
1134         * cookies.c (ATTR_NAME_CHAR): Allow almost any character to be in
1135         an attribute name.
1136
1137 2001-06-18  Hrvoje Niksic  <hniksic@arsdigita.com>
1138
1139         * url.c (url_filename): Make sure that slashes that sneak in to
1140         u->file via query string get protected.
1141         (file_name_protect_query_string): New function.
1142
1143 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
1144
1145         * recur.c (recursive_retrieve): Also check undesirable_urls with
1146         canonicalized URL.
1147
1148 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
1149
1150         * http.c (gethttp): Search `.netrc' with real host, not the proxy
1151         one.
1152
1153 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
1154
1155         * sysdep.h (MAP_FAILED): Provide MAP_FAILED for systems that don't
1156         define it.
1157
1158 2001-06-09  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
1159
1160         * ftp.h: Provide correct prototype for ftp_parse_ls().
1161
1162 2001-06-04  Hrvoje Niksic  <hniksic@arsdigita.com>
1163
1164         * version.c: Wget 1.7 is released.
1165
1166 2001-06-03  Karl Eichwalder  <ke@suse.de>
1167
1168         * ftp-ls.c (ftp_parse_ls): Fix typo.
1169
1170 2001-05-27  Hrvoje Niksic  <hniksic@arsdigita.com>
1171
1172         * all: Update copyright information.
1173
1174 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
1175
1176         * http.c (gethttp): Indicate that the continued download failed
1177         for *this* file.
1178
1179 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
1180
1181         * version.c: Wget 1.7-pre1 is released.
1182
1183 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
1184
1185         * version.c: Updated version to 1.7-pre1.
1186
1187 2001-05-14  Hrvoje Niksic  <hniksic@arsdigita.com>
1188
1189         * gen_sslfunc.c: Don't include <sys/time.h> directly.
1190
1191 2001-05-14  Hrvoje Niksic  <hniksic@arsdigita.com>
1192
1193         * http.c (gethttp): Use real URL data for cookies, not the proxy
1194         stuff.
1195
1196 2001-05-12  Hrvoje Niksic  <hniksic@arsdigita.com>
1197
1198         * main.c (print_help): Document `--no-http-keep-alive'.
1199
1200         * utils.c (numdigit): Handle negative numbers *correctly*.
1201
1202         * hash.c (make_nocase_string_hash_table): Use term "nocase" rather
1203         than the confusing "unsigned".
1204
1205         * utils.c (string_set_contains): Renamed from string_set_exists.
1206
1207         * hash.c (hash_table_contains): Renamed from hash_table_exists.
1208
1209         * cookies.c: Move case-insensitive hash tables to hash.c.
1210
1211 2001-05-09  Hrvoje Niksic  <hniksic@arsdigita.com>
1212
1213         * http.c (gethttp): Before concluding that the file is already
1214         fully retrieved, make sure that the file existed and `Range' was
1215         actually requested.
1216
1217 2001-05-09  Hrvoje Niksic  <hniksic@arsdigita.com>
1218
1219         * cookies.c (eliminate_dups): New function.
1220         (build_cookies_request): Use it.
1221         (build_cookies_request): Set chain_store_size after reallocating
1222         all_chains.
1223         (check_domain_match): Annotated for easier future debugging.
1224         (store_cookie): In the debug message, print whether the cookie is
1225         permanent.
1226
1227 2001-05-08  Hrvoje Niksic  <hniksic@arsdigita.com>
1228
1229         * http.c (http_loop): Reset no_truncate before deciding whether to
1230         set it.
1231         (gethttp): Further clarify "-c conflicts with existing file" error
1232         message, based on input from Herold Heiko.
1233
1234 2001-05-07  Hrvoje Niksic  <hniksic@arsdigita.com>
1235
1236         * http.c (http_loop): If restval is set, set no_truncate to 1
1237         unconditionally.
1238
1239 2001-05-02  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
1240
1241         * ftp-ls.c (ftp_parse_winnt_ls): Assure months are being correctly
1242         converted. Pointed out by <Stefan.Weil@de.heidelberg.com>.
1243         (ftp_parse_vms_ls): Ditto.
1244
1245 2001-04-30  Hrvoje Niksic  <hniksic@arsdigita.com>
1246
1247         * init.c (cmd_address): Zero SIN before using it; apparently
1248         needed on *BSD.
1249
1250 2001-04-29  Hrvoje Niksic  <hniksic@arsdigita.com>
1251
1252         * ftp.c (ftp_loop_internal): Don't set NO_TRUNCATE if the file is
1253         empty.
1254
1255 2001-04-29  Hrvoje Niksic  <hniksic@arsdigita.com>
1256
1257         * main.c (main): Make `--cookies' respect its argument.
1258
1259 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
1260
1261         * main.c (main): Removed undocumented option `--email-address'.
1262
1263         * netrc.c: Use the latest read_whole_line.
1264
1265         * init.c (defaults): Set opt.ftp_pass to "-wget@".
1266
1267         * mswindows.c (pwd_cuserid): Ditto.
1268
1269         * utils.c (pwd_cuserid): Removed.
1270
1271         * host.c (ftp_getaddress): Removed.
1272
1273 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
1274
1275         (http_loop): Allocate space for filename_plus_orig_suffix with
1276         alloca; this is more efficient and removes the need to free it
1277         before each and every return.
1278
1279 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
1280
1281         * http.c (gethttp): Return RETRUNNEEDED when the retrieval is
1282         unneeded because the file is already there and fully downloaded,
1283         and -c is specified.
1284         (http_loop): Handle RETRUNNEEDED.
1285
1286         * wget.h (uerr_t): New value RETRUNNEEDED.
1287
1288         * http.c (http_loop): Set no_truncate for files that both exist
1289         and are non-empty.
1290         (gethttp): Consider the download finished when restval >= contlen,
1291         not only when restval==contlen.
1292         (gethttp): Handle redirection before giving up due to -c.
1293         (gethttp): Clarify error message which explains that -c will not
1294         truncate the file.
1295         (gethttp): When returning CONTNOTSUPPORTED, don't forget to free
1296         the stuff that needs freeing and release the socket.
1297
1298 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
1299
1300         * main.c (print_help): Wget booleans accept "off", not "no".
1301
1302 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
1303
1304         * http.c (http_loop): If allow_cache is zero, always disable
1305         caching, not only when retrieving through proxy.
1306
1307         * init.c: Ditto.
1308
1309         * options.h (struct options): Rename proxy_cache to allow_cache.
1310
1311 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
1312
1313         * http.c (mktime_from_utc): Improve documentation.
1314         (http_atotm): Put format strings into a separate array.
1315
1316 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
1317
1318         * safe-ctype.h: Instead of throwing #error when isalpha is
1319         defined, redefine it to something that will throw a compile-time
1320         error if actually *used*.  Do the same for the rest of the
1321         standard C macros.
1322
1323 2001-04-26  Hrvoje Niksic  <hniksic@arsdigita.com>
1324
1325         * url.c (getproxy): Ignore empty proxy vars.
1326
1327 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
1328
1329         * http.c (http_loop): Would load cookies every time.
1330
1331         * cookies.c (load_cookies): Handle cookies whose values contain
1332         embedded spaces.
1333
1334 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
1335
1336         * utils.c: Define each DIGITS_* in one line.
1337
1338 2001-04-25  Roger L. Beeman  <beeman@cisco.com>
1339
1340         * http.c (http_atotm): Initialize t.tm_isdst to 0.
1341         (mktime_from_utc): Prevent mktime() from having discontinuities at
1342         DST transition points.
1343
1344 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
1345
1346         * html-url.c (get_urls_html): Fix documentation.
1347
1348 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
1349
1350         * url.c (UNSAFE_CHAR): Reimplement using a static table.
1351         (url_init): Removed.
1352         (init_unsafe_char_table): Removed.
1353
1354 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
1355
1356         * snprintf.c (dopr): Replace ISDIGIT with '0' <= ch && ch <= '9'.
1357
1358 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
1359
1360         * utils.c: Document timer functions.
1361
1362         * retr.c (rate): Use it.
1363         (rate): Print in GB/s if transfer rate exceeds 1 GB/s.
1364
1365         * utils.c (wtimer_granularity): New function.
1366
1367 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
1368
1369         * retr.c (show_progress): Ditto.
1370
1371         * ftp.c (getftp): Ditto.
1372
1373         * http.c (gethttp): Use new timer functions.
1374
1375         * utils.c (wtimer_allocate): New function.
1376         (wtimer_new): Ditto.
1377         (wtimer_delete): Ditto.
1378         (wtimer_reset): Ditto.
1379         (wtimer_elapsed): Ditto.
1380
1381 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
1382
1383         * utils.c (long_to_string): New, faster version.  Favors smaller
1384         numbers; much of the calculation is now done at compile-time.
1385
1386 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
1387
1388         * utils.c (numdigit): Handle negative numbers.
1389
1390 2001-04-23  Hrvoje Niksic  <hniksic@arsdigita.com>
1391
1392         * retr.c (show_progress): Print the download rate even when the
1393         percentages are not available.
1394
1395 2001-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
1396
1397         * ftp.c (getftp): Adjust expected_bytes if the length is
1398         authoritative.
1399
1400 2001-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
1401
1402         * url.c: Don't declare `construct'.
1403
1404         * hash.c (grow_hash_table): Speed up rehashing; inline storing of
1405         mappings to new locations.
1406         (hash_table_new): Make resize_threshold a field in the hash table,
1407         so we don't have to recalculate it in each hash_table_put.
1408         (grow_hash_table): Update resize_threshold.
1409         (MAX): Remove unused macro.
1410         (prime_size): Made static.
1411
1412 2001-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
1413
1414         * retr.c (retrieve_url): Call uri_merge, not url_concat.
1415
1416         * html-url.c (collect_tags_mapper): Call uri_merge, not
1417         url_concat.
1418
1419         * url.c (mkstruct): Use encode_string instead of xstrdup followed
1420         by URL_CLEANSE.
1421         (path_simplify_with_kludge): Deleted.
1422         (contains_unsafe): Deleted.
1423         (construct): Renamed to uri_merge_1.
1424         (url_concat): Renamed to uri_merge.
1425
1426 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
1427
1428         * url.c (str_url): Use encode_string instead of the unnecessary
1429         CLEANDUP.
1430         (encode_string_maybe): New function, returns input string if no
1431         encoding is needed.
1432         (encode_string): Call encode_string_maybe to do the dirty work,
1433         xstrdup if no work needed.
1434
1435 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
1436
1437         * wget.h (XDIGIT_TO_xchar): Define here.
1438
1439         * url.c (decode_string): Use new name.
1440         (encode_string): Ditto.
1441
1442         * http.c (XDIGIT_TO_xchar): Rename HEXD2asc to XDIGIT_TO_xchar.
1443         (dump_hash): Use new name.
1444
1445         * wget.h: Rename ASC2HEXD and HEXD2ASC to XCHAR_TO_XDIGIT and
1446         XDIGIT_TO_XCHAR respectively.
1447
1448 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
1449
1450         * init.c: Include cookies.h.
1451
1452         * cookies.h: Declare cookies_cleanup.
1453
1454         * cookies.c (check_domain_match): Remove unused variable.
1455         (save_cookies): Remove extraneous argument from debug statement.
1456
1457         * host.c (same_host): Don't call skip_url.
1458
1459         * url.c (skip_url): Removed.  Removed its calls from various
1460         functions in url.c.
1461
1462 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
1463
1464         * cookies.c (unsigned_string_hash): Use the new code in
1465         string_hash as reference.
1466
1467         * hash.c (hash_table_map): Allow deletion and change of the
1468         element processed by MAPFUN.
1469         (string_hash): Use the function from glib.
1470
1471 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
1472
1473         * config.h.in: Include #undef stub.
1474
1475         * hash.c (hash_table_remove): Rewrite to actually clear deleted
1476         entries instead of just marking them as deleted.
1477
1478 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
1479
1480         * hash.h: Declare hash_table_get_pair and hash_table_count.
1481
1482 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
1483
1484         * cookies.c: Declare http_atotm.
1485
1486 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
1487
1488         * ftp-ls.c (ftp_parse_unix_ls): Use octal constants for
1489         permissions.  A compiler that doesn't accept octal constants is
1490         seriously broken and shouldn't be used -- octal constants were
1491         present in K&R C!
1492
1493 2001-01-20  Karl Eichwalder  <ke@suse.de>
1494
1495         * Makefile.in: Provide and use DESTDIR according to the Coding
1496         Standards.
1497
1498 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
1499
1500         * ftp-ls.c (ftp_parse_vms_ls): Make seconds optional in time
1501         specification.
1502
1503 2001-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
1504
1505         * url.c (parseurl): Don't strip trailing slash when u->dir is "/"
1506         because that strips the *leading* slash, thus forcing relative
1507         FTP retrieval.
1508
1509 2001-04-10  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
1510
1511         * ftp.c (getftp): Convert initial FTP directory from VMS to UNIX
1512         notation for VMS servers. 
1513         (ftp_retrieve_dirs): Do not prepend '/' to f->name when
1514         odir is an empty string.
1515
1516 2001-04-10  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
1517
1518         * ftp-ls.c (ftp_parse_winnt_ls): Made the fix for AM/PM more
1519         effective. Suggested by Edward J. Sabol.
1520
1521 2001-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
1522
1523         * cookies.c (build_cookies_request): Use and sort cookies from all
1524         matching domains.
1525         (build_cookies_request): Check for duplicates before generating
1526         the `Cookies' header.
1527
1528         * main.c (main): Don't load cookies here.
1529         (main): Make loadcookies and savecookies call the correct command.
1530
1531         * http.c (http_loop): Load cookies on-demand.
1532
1533 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
1534
1535         * http.c (gethttp): Fix indentation of SSL ifdef.
1536
1537 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
1538
1539         * ftp.c (ftp_retrieve_dirs): Don't forcibly prepend "/" to u->dir;
1540         that hack is no longer necessary.
1541         (getftp): Prepend initial directory to *non*-absolute u->dir's.
1542
1543 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
1544
1545         * init.c (cmd_file): New function.
1546         (enable_tilde_expansion): New variable.
1547         (run_wgetrc): Use it.
1548         (cmd_file): Use it.
1549
1550 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
1551
1552         * init.c: Include cookie-related options.
1553
1554         * main.c (main): Include cookie-specific options.
1555         (main): Load cookies before download is finished.
1556         (main): Save cookies when done.
1557
1558         * http.c (gethttp): Process the `Set-Cookie' header.
1559         (gethttp): Include cookies in the response.
1560
1561         * cookies.c: New file.
1562
1563 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
1564
1565         * utils.c (datetime_str): New function.
1566
1567 2001-04-08  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
1568
1569         * ftp-ls.c (ftp_parse_winnt_ls): The AM/PM change did assume
1570         12:01PM == 00:01, which was obviously wrong. Taken care of this
1571         anomaly.
1572
1573         * ChangeLog: Removed an excess conflict marker. Reformatted the
1574         entry by Philipp Thomas from 2001-03-09.
1575
1576         * ftp-ls.c (ftp_parse_winnt_ls): Ensure that adjusted PM hours lay
1577         between 0 and 23. Elminate unused variable `sec'.
1578
1579 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
1580
1581         * hash.c (hash_table_count): New function.
1582
1583 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
1584
1585         * utils.c (read_file): Cast MAP_FAILED to char *.  Enforced by
1586         Digital Unix cc.
1587
1588 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
1589
1590         * config.h.in: Oops, do the namespace tweaks only on systems we
1591         know about.
1592
1593 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
1594
1595         * hash.c: Include <string.h>.
1596
1597 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
1598
1599         * config.h.in: Define "compilation environment" options that work
1600         under Linux and Solaris.  To be reviewed on other OS'es.
1601
1602 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
1603
1604         * http.c (gethttp): Prepend literal newline with `\n\'.
1605
1606 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
1607
1608         * sysdep.h: Don't define VERY_LONG_FORMAT.
1609
1610         * utils.c (very_long_to_string): New function.
1611         (legible_very_long): Use it; don't use VERY_LONG_FORMAT.
1612
1613 2001-04-04  Christian Fraenkel  <christian.fraenkel@gmx.net>
1614
1615         * url.c (parse_uname): Would run past the end of the string if the
1616         username was present, but the URL did not contain a slash, e.g.
1617         http://foo:bar@myhost.
1618
1619 2001-04-03  KOJIMA Hajime  <kjm@rins.ryukoku.ac.jp>
1620
1621         * http.c (http_atotm): Use %A instead of %a to match full
1622         weekday.  (On most systems there is no difference.)
1623
1624 2001-04-03  Paul Bludov  <paul@ozero.net>
1625
1626         * mswindows.c (sleep): Use SleepEx() instead of Sleep().
1627         (ws_changetitle): Use alloca() instead of malloc() to avoid memory
1628         leak.
1629         (ws_mypath): Use GetModuleFileName instead of argv[0].
1630         (ws_startup): Use data.wVersion for comparison.
1631
1632 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
1633
1634         * http.c (http_loop): Ditto.
1635
1636         * ftp.c (ftp_loop_internal): Made the check whether to continue
1637         retrieval `-O'-friendly.
1638
1639 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
1640
1641         * netrc.c (parse_netrc): Don't trim the line endings explicitly;
1642         they will be handled as whitespace.
1643         (parse_netrc): Correctly handle lines that end with whitespace.
1644
1645 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
1646
1647         * retr.c (retrieve_url): New variable global_download_count used
1648         to identify first retrieval.
1649
1650         * ftp.c (getftp): Ditto.
1651
1652         * http.c (gethttp): Rewind opt.dfp only on first retrieval.
1653
1654 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
1655
1656         * init.c (cmd_address): Heap-allocate the address that gets stored
1657         to CLOSURE.  Old code would simply assign an address on the stack.
1658
1659 2001-04-01  Nicolas Lichtmaier <nick@debian.org>
1660
1661         * ftp.c (ftp_get_listing): Propagate error status.
1662         (ftp_retrieve_glob): Use it.
1663         (ftp_loop): Ditto.
1664
1665 2001-04-01  Nicolas Lichtmaier <nick@debian.org>
1666
1667         * main.c (main): Add -C to the string that is the third arg to
1668         getopt_long().
1669
1670 2001-04-01  Hrvoje Niksic  <hniksic@arsdigita.com>
1671
1672         * ftp.c (getftp): Don't start the download from scratch if `-c'
1673         was specified, but the file is already fully downloaded.
1674
1675         * http.c (gethttp): Don't truncate a pre-existing file if `-c' was
1676         specified and the server doesn't support continued download.
1677         (gethttp): Don't start the download from scratch if `-c' was
1678         specified, but the file is already fully downloaded.
1679
1680 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
1681
1682         (recursive_retrieve): Don't clear the hash tables at this point at
1683         all; it interferes with the normal operation of register_download.
1684
1685 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
1686
1687         * recur.c (recursive_retrieve): Clear the hash tables only when
1688         they are defined.
1689
1690 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
1691
1692         * http.c (gethttp): Make sure the socket is closed with
1693         CLOSE_INVALIDATE before we have drained the body.
1694
1695 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
1696
1697         * retr.c (retrieve_url): Call register_download() for downloaded
1698         files and register_html() for downloaded HTML files.
1699
1700         * recur.c (register_download): New function; register here that a
1701         file has been downloaded, rather than in recursive_retrieve().
1702         (register_html): New function; enqueue the location of HTML files
1703         here rather than in recursive_retrieve().
1704
1705 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
1706
1707         * main.c (print_help): Use multiple fputs instead of a single ugly
1708         printf().
1709         (main): Consistently assign numbers >128 to options without a
1710         corresponding character.
1711
1712 2001-03-09  Philipp Thomas  <pthomas@suse.de>
1713
1714         * safe-ctype.h: New file. Locale independent ctype.h replacement
1715         taken from libiberty.
1716
1717         * safe-ctype.c: New file. Tables for above.
1718
1719         * Makefile.in: Add safe-ctype$o to OBJS.  Add dependencies for
1720         safe-ctype$o.
1721
1722         * cmpt.c: Remove include of ctype.h. Use ISSPACE instead of
1723         isspace.
1724
1725         * ftp-basic.c: Don't include ctype.h.
1726
1727         * ftp-ls.c: Likewise.
1728
1729         * ftp.c: Likewise.
1730
1731         * headers.c: Likewise.
1732
1733         * host.c: Likewise.
1734
1735         * html-parse.c: Likewise.
1736
1737         * html-url.c: Likewise.
1738
1739         * http.c: Likewise.
1740
1741         * init.c: Likewise.
1742
1743         * main.c: Likewise. Set LC_CTYPE along with LC_MESSAGES.
1744
1745         * netrc.c: Likewise.
1746
1747         * recur.c: Likewise.
1748
1749         * retr.c: Likewise.
1750
1751         * snprintf.c: Replace ctype.h with safe-ctype.h. Use ISDIGIT
1752         instead of isdigit.
1753
1754         * sysdep.h: Remove defines of ctype macros as they aren't needed
1755         for safe-ctype-h.
1756
1757         * url.c: Don't include ctype.h.
1758
1759         * utils.c: Likewise.
1760
1761         * wget.h: Include safe-ctype.h.
1762
1763 2001-03-27  Dan Harkless  <wget@harkless.org>
1764
1765         * Makefile.in: Moved top_builddir out of "User configuration
1766         section" of top Makefile and analogous spot in this one.
1767
1768 2001-03-17  Dan Harkless  <wget@harkless.org>
1769
1770         * Makefile.in: Include @SSL_INCLUDES@ substition in INCLUDES.
1771         Define top_builddir.  Link wget with libtool so the user doesn't
1772         have to supply a bunch of custom environment variables to 
1773         correctly link with the OpenSSL shared libraries.
1774
1775 2001-03-06  Hack Kampbjorn  <hack@hackdata.com>
1776
1777         * http.c (gethttp): skip :port in host header if it is the
1778         DEFAULT_HTTPS_PORT when using SSL.
1779
1780         * url.c: move the #define of DEFAULT_HTTP_PORT, DEFAULT_FTP_PORT
1781         and DEFAULT_HTTPS_PORT to the header file so it can be use in the
1782         rest of the code. 
1783         * url.h: Ditto
1784
1785 2001-03-01  Jonas Jensen  <bones@huleboer.dk>
1786
1787         * retr.c (show_progress): Correctly calculate the number of bytes
1788         in the first line of the download that have been actually
1789         downloaded in this run.
1790
1791 2001-02-23  Dan Harkless  <wget@harkless.org>
1792
1793         * main.c (print_help): --help documentation for -N said it would
1794         re-download files if they had the _same_ timestamp on server.
1795         (print_help): -nr belongs in "FTP options" section of --help
1796         output, not "Recursive retrieval" section.  Alphabetized FTP
1797         options by long option name.
1798
1799 2001-02-16  Dan Harkless  <wget@harkless.org>
1800
1801         * init.c (commands): Hack Kampbjørn <hack@hackdata.com> discovered
1802         that "httpsproxy" had been inserted into commands[] out of
1803         alphabetical order, causing "BUG: unknown command `httpuser'".
1804
1805 2001-02-13  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
1806
1807         * ftp-ls.c (ftp_parse_ls): Added support of ST_MACOS (Unix-like
1808         listing without correct permissons).
1809
1810         * ftp.h (stype): Added ST_MACOS to identify the NetPresenz MacOS
1811         FTP server. 
1812
1813         * ftp.c (ftp_retrieve_list): New mirroring logic: A remote file
1814         shall be donwloaded only when it's newer than the local copy or
1815         when it has the same timeestamp but its size is different. ST_VMS
1816         and ST_MACOS as special cases that lie about file size. 
1817
1818         * ftp-ls.c (ftp_parse_ls): Support for ST_MACOS.
1819
1820         * Makefile.in: Removed dependency on ftpparse library due to unclear
1821         copyright issues and absence of any feedback to our queries. 
1822
1823         * ftp-ls.c: Removed dependency on ftpparse library due to unclear
1824         copyright issues and absence of any feedback to our queries.   
1825         (ftp_parse_ls): Added a warning message when remote server system
1826         does not seem to be suported by wget. 
1827         (ftp_parse_vms_ls): New function for parsing VMS ftp
1828         server listing output.
1829         (clean_line): New function responsible for removing
1830         end-of-line characters from FTP listing texts.
1831
1832         * ftp.c (getftp): Global variables pwd and host_type are now
1833         member of the ccon structure under names ccon.id and ccon.rs. 
1834
1835         * ftp.h (struct ccon): Added formed global variables from ftp.c,
1836         enum stype rs (remote system identification) and char *id (initial
1837         working directory), as suggested by Hrvoje.
1838
1839         * url.c (parse_uname): Added support for passwords containing '@'
1840         characters.
1841         (skip_uname): Ditto.
1842
1843 2001-02-11  Hrvoje Niksic  <hniksic@arsdigita.com>
1844
1845         * ftp.c (ftp_loop): Reset con.
1846
1847 2001-01-06  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
1848
1849         * url.c (parse_uname): Added support for passwords containing '@'
1850         characters.
1851         (skip_uname): Ditto.
1852
1853 2001-02-11  Hack Kampbjørn  <hack@hackdata.com>
1854
1855         * url.c (parseurl): Debug-print u->ftp_type.
1856
1857 2001-02-11  Hrvoje Niksic  <hniksic@arsdigita.com>
1858
1859         * ftp.c (ftp_loop_internal): Disable padding.
1860         (getftp): Ditto.
1861
1862         * http.c (http_loop): Disable padding.
1863
1864         * retr.c (show_progress): Use it to enable padding.
1865
1866         * retr.c (rate): Optional parameter PAD for padding the rate.
1867
1868 2001-02-10  Hrvoje Niksic  <hniksic@arsdigita.com>
1869
1870         * retr.c (show_progress): Make sure that the last output line
1871         includes progress.
1872
1873 2001-02-10  Jonas Jensen  <bones@huleboer.dk>
1874
1875         * retr.c (show_progress): Print the download rate along with the
1876         percentages.
1877         Along with Anders Thorsby <anders@thorsby.dk>.
1878
1879 2001-02-10  Tim Mooney  <mooney@dogbert.cc.ndsu.NoDak.edu>
1880
1881         * ftp.h: Rename enums `command' to `wget_ftp_command' and
1882         `fstatus' to `wget_ftp_status' because old names clash with Tru64
1883         net/if.h.
1884
1885 2001-02-08  Christian Fraenkel <christian.fraenkel@gmx.net>
1886
1887         * gen_sslfunc.c: verify_callback is now static
1888
1889         * gen_sslfunc.c (init_ssl): load certificate if specified
1890
1891         * gen_sslfunc.c (ssl_printerr): new function
1892
1893         * init.c: added new --sslcertfile and --sslcertkey switches
1894
1895         * main.c: ditto
1896
1897         * options.h: ditto
1898
1899         * http.c (gethttp): abort when init_ssl fails
1900
1901 2001-01-23  Herold Heiko  <Heiko.Herold@previnet.it>
1902
1903         * mswindows.h: Include <malloc.h>; it's needed for alloca().
1904
1905 2001-01-10  Dan Harkless  <wget@harkless.org>
1906
1907         * url.c (str_url): Clarified this function's comment header after
1908         Hrvoje answered my question on the list as to when hide != 1.
1909         Also Hrvoje pointed out I need to use xstrdup() on the string literal.
1910
1911 2001-01-06  Hrvoje Niksic  <hniksic@arsdigita.com>
1912
1913         * connect.c (bindport): Declare addrlen as int.  Diagnosed by
1914         Drazen Kacar <dave@arsdigita.com>.
1915         (conaddr): Ditto.
1916
1917 2001-01-09  Dan Harkless  <wget@harkless.org>
1918
1919         * html-url.c: A bunch of fixup of `--page-requisites'-related
1920         comments to reflect Hrvoje's changes to my code when transplanting
1921         it into this new file, to fix spelling mistakes, to clarify, etc.
1922
1923         * url.c (write_backup_file): Clarified a comment.
1924         (str_url): Henrik van Ginhoven pointed out on the list that we
1925         shouldn't give away the number of characters in the password by
1926         replacing each character with a 'x'.  Use "<password>" instead.
1927
1928         * ftp.c (ftp_retrieve_dirs): The bug where recursion into FTP
1929         directories didn't work if logging in put you in a directory other
1930         than "/" is fixed now.  Removed the comment here warning of the bug.
1931
1932         * main.c (print_help): --continue's description was misleading.
1933         We don't "restart", we "resume".  Also, better to say
1934         "partially-downloaded file" rather than just "existing file".
1935
1936 2001-01-06  Dan Harkless  <wget@harkless.org>
1937
1938         * ChangeLog: The '[Not in 1.6 branch.]'s were decided not to be
1939         the best way to go about my aim.  Removed them in favor of:
1940
1941         * ChangeLog-branches/1.6_branch.ChangeLog: New file.
1942
1943 2001-01-04  Hrvoje Niksic  <hniksic@arsdigita.com>
1944
1945         * url.c (replace_attr): New function, to be used by both
1946         TO_COMPLETE and TO_RELATIVE case in convert_links.
1947         (find_fragment): New function for finding URL fragments.
1948         (replace_attr): Better handle the case where the original string
1949         is not quoted.  Use find_fragment.
1950         (convert_links): Use replace_attr().
1951
1952 2000-12-31  Dan Harkless  <wget@harkless.org>
1953
1954         * ChangeLog: Since this flat file doesn't have multiple branches,
1955         looking at the dates would make you think that things went into
1956         1.6 that actually just went into the 1.7-dev branch.  Added "[Not
1957         in 1.6 branch.]" where appropriate to clarify.
1958         
1959 2000-12-30  Dan Harkless  <wget@harkless.org>
1960
1961         * ftp.c, http.c:  Applied Hack Kampbjørn <hack@hackdata.com>'s
1962         patch to deal with h_errno not being defined in netdb.h under Cygwin.
1963
1964 2000-12-18  Csaba Raduly  <csaba.raduly@sophos.com>
1965
1966         * sysdep.h: Include <malloc.h> and <io.h> under Watcom.
1967
1968 2000-12-17  Igor Khristophorov  <igor@atdot.org>
1969
1970         * http.c (check_end): Fix test for '+' or '-'.
1971
1972 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
1973
1974         * url.c (parseurl): Rename inner loop var from i to ind to avoid
1975         clash with the function top-level-declared variable i.
1976         (str_url): Likewise, rename inner-loop i to j.
1977
1978         * recur.c (parse_robots): Don't declare LEN at top of function.
1979         (robots_match): Renamed parameter FORBIDDEN to avoid hiding of
1980         global variable.
1981
1982         * main.c (main): Change erroneous use of bitwise and to logical.
1983
1984         * init.c (cmd_address): Don't heap-allocate `sin'; it can be on
1985         the stack because it will be copied to closure.
1986
1987         Thanks to Csaba Raduly's run of PC-LINT over the sources.
1988
1989 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
1990
1991         * http.c (basic_authentication_encode): Use xmalloc(), not
1992         malloc().  Thanks to Csaba Raduly's run of PC-LINT over the
1993         sources.
1994
1995 2000-12-17  Csaba Raduly  <csaba.raduly@sophos.com>
1996
1997         * sysdep.h: Test for __EMX__ rather than for EMXOS2 for OS/2
1998         compilation.
1999
2000 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
2001
2002         * mswindows.c: Include <errno.h>.
2003
2004         * gen_sslfunc.c: Include <errno.h>.
2005
2006         * ftp-basic.c: Don't attempt to declare errno or h_errno because
2007         they're not used.
2008
2009         * main.c: Include <errno.h> because errno is used.
2010
2011         * ftp.c: Ditto.
2012
2013         * http.c: Include <netdb.h> for h_errno.
2014
2015 2000-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
2016
2017         * html-parse.c (advance_declaration): MSVC assert() chokes on
2018         '\"'.  Use '"' instead.
2019
2020 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
2021
2022         * utils.c (xfree_real): Removed.
2023         (xfree_debug): Just call free().
2024
2025         * wget.h (xfree): Make it an alias for free.
2026
2027 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
2028
2029         * http.c (http_loop): Furthermore, touch output_document only if
2030         it is known to be an existing regular file.
2031
2032 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
2033
2034         * ftp.c (ftp_retrieve_list): Ditto.
2035
2036         * http.c (http_loop): Touch output_document if that is used for
2037         output.
2038
2039 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
2040
2041         * http.c: Include gen_sslfunc.h after including Wget's headers.
2042         (persistent_available_p): Needed coma before `int ssl'.
2043
2044 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
2045
2046         * ftp.c (ftp_loop_internal): Ditto.
2047
2048         * http.c (http_loop): Use it.
2049
2050         * retr.c (sleep_between_retrievals): New function that handles the
2051         logic of opt.wait and opt.waitretry.
2052
2053 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
2054
2055         * rbuf.h: Implement only a single version of RBUF_READCHAR, using
2056         rbuf_read_bufferful when the buffer is depleted.
2057
2058         * rbuf.c (rbuf_read_bufferful): New function.
2059
2060 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
2061
2062         * gen_sslfunc.h: Use ansi2knr style function declarations.
2063
2064         * gen_sslfunc.c: Reformat according to the GNU coding standards.
2065         More should be done.
2066
2067         * http.c (persistent_available_p): Place the cheap SSL test nearer
2068         the top of the function.
2069         (CLOSE_FINISH, CLOSE_INVALIDATE): Define only one version of each.
2070
2071 2000-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
2072
2073         * url.c (init_unsafe_char_table): Reinstate space as an unsafe
2074         char.
2075
2076 2000-12-03  Christian Fraenkel <christian.fraenkel@gmx.net>
2077
2078         * Makefile.in: added gen_sslfunc object
2079         * config.h.in: added HAVE_SSL define
2080         * connect.c: changed select_fd from static int to int
2081         * connect.h: ditto
2082         * gen_sslfunc.h: New file
2083         * gen_sslfunc.c: ditto
2084         * http.c: added HTTPS fuctionality
2085         * retrc.c: ditto
2086         * url.c: ditto
2087         * init.c: added opt.httpsproxy
2088         * options.h: ditto
2089         * rbuf.h: added alternate rbuf struct
2090         * wget.h: added CONSSLERR
2091         * rbuf.c: ditto
2092
2093         * http.c: Added HTTPS fuctionality.
2094
2095         * retrc.c: Ditto.
2096
2097         * url.c: Ditto.
2098
2099         * init.c: Added opt.httpsproxy.
2100
2101         * options.h: Ditto.
2102
2103         * rbuf.h: Added alternate rbuf struct.
2104
2105         * wget.h: Added CONSSLERR.
2106
2107         * rbuf.c: Ditto.
2108
2109 2000-11-30  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
2110
2111         * ftp-ls.c (ftp_parse_unix_ls): Added second parameter
2112         "ignore_perms" to ignore file and directory permissions for
2113         Windows NT FTP server listings.
2114         (ftp_parse_winnt_ls): New function.
2115         (ftp_parse_ls): Parses UNIX and Windows NT listings
2116         separately. Simple heuristics for distinguishing between UNIX and
2117         MS-DOS-like FTP listing provided by Windows NT FTP service.
2118
2119 2000-11-18  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
2120
2121         * ftpparse.c, ftpparse.h: New files.
2122
2123         * ftp-ls.c (ftp_parse_ls): Use ftp_parse_unix_ls for UNIX servers
2124         only. Use ftp_parse_nonunix_ls otherwise.
2125         (ftp_parse_nonunix_ls): Stub to the ftpparse library handling all
2126         exotic FTP servers.
2127
2128         * ftp.h (stype): New enum, distinguishes UNIX, VMS, and "other"
2129         FTP servers.
2130
2131         * ftp.c: New static wariables host_type, pwd, and pwd_len. 
2132         (getftp): Support for VMS. Support for FTP servers that do not
2133         place you in the root directory after login.
2134         (ftp_retrieve_list): VMS is silent about the real file size, issue
2135         a more appropriate message.
2136         (ftp_get_listing): Pass host_type to ftp_parse_ls.
2137
2138         * ftp-basic.c (ftp_pwd, ftp_syst): New functions.
2139
2140 2000-11-30  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
2141
2142         * ftp-ls.c (ftp_parse_unix_ls): Added second parameter
2143         "ignore_perms" to ignore file and directory permissions for
2144         Windows NT FTP server listings.
2145         (ftp_parse_winnt_ls): New function.
2146         (ftp_parse_ls): Parses UNIX and Windows NT listings
2147         separately. Simple heuristics for distinguishing between UNIX
2148         and MS-DOS-like FTP listing provided by Windows NT FTP service.
2149
2150 2000-11-29  John Summerfield  <summer@OS2.ami.com.au>
2151
2152         * netrc.c (parse_netrc): Get rid of line ending.
2153
2154 2000-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
2155
2156         * ftp.c (ftp_retrieve_list): Undo typo "fix" until resolution by
2157         Dan.
2158
2159 2000-11-24  Karl Eichwalder  <ke@suse.de>
2160
2161         * main.c (print_help): Untabify.
2162
2163 2000-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
2164
2165         * utils.c (xrealloc_debug): Do the unregister/register thing only
2166         if the pointer has actually changed.
2167         (xmalloc_real): Declare `static' in DEBUG_MALLOC builds.
2168         (xfree_real): Ditto.
2169         (xrealloc_real): Ditto.
2170         (xstrdup_real): Ditto.
2171
2172 2000-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
2173
2174         * ftp.c (getftp): ftp_getaddress() returns a malloc'ed copy of the
2175         string; no need to strdup() it.
2176         (getftp): Make pwd_len a local variable.
2177         (ftp_loop): Free PWD before returning.
2178
2179         * init.c (cleanup): Free opt.ftp_pass only if it's non-NULL.
2180
2181 2000-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
2182
2183         * all: Use xfree() instead of free.
2184
2185         * utils.c (xfree): New function.
2186
2187 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
2188
2189         * url.c (convert_links): HTML-quote the converted string.
2190
2191         * utils.c (html_quote_string): Move here from ftp-ls.c
2192         (html_quote_string): Make non-static; declare in utils.h.
2193         (html_quote_string): Convert SP to &#32;.
2194
2195 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
2196
2197         * ftp.c (getftp): Reformat Jan's code according to GNU coding
2198         standards; remove (debugging?) printf's; use '\0' for the ASCII
2199         zero character.  Use alloca() instead of malloc() for
2200         inter-function temporary allocations.
2201
2202 2000-11-18  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
2203
2204         * ftpparse.c, ftpparse.h: New files.
2205
2206         * ftp-ls.c (ftp_parse_ls): Use ftp_parse_unix_ls for UNIX servers
2207         only. Use ftp_parse_nonunix_ls otherwise.
2208         (ftp_parse_nonunix_ls): Stub to the ftpparse library handling all
2209         exotic FTP servers.
2210
2211         * ftp.h (stype): New enum, distinguishes UNIX, VMS, and "other"
2212         FTP servers.
2213
2214         * ftp.c: New static wariables host_type, pwd, and pwd_len. 
2215         (getftp): Support for VMS. Support for FTP servers that do not
2216         place you in the root directory after login.
2217         (ftp_retrieve_list): VMS is silent about the real file size, issue
2218         a more appropriate message.
2219         (ftp_get_listing): Pass host_type to ftp_parse_ls.
2220
2221         * ftp-basic.c (ftp_pwd, ftp_syst): New functions.
2222
2223 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
2224
2225         * hash.c (hash_table_put): Don't overwrite deleted mappings.
2226
2227 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
2228
2229         * hash.c (find_mapping): New function.
2230         (hash_table_get): Use it.
2231         (hash_table_get_pair): Ditto.
2232         (hash_table_exists): Ditto.
2233         (hash_table_remove): Ditto.
2234         (hash_table_remove): Really delete the entry if the mapping
2235         following LOCATION is empty.
2236
2237         * utils.c (string_set_add): Check whether the element has existed
2238         before.
2239
2240         * hash.c (hash_table_get_pair): New function.
2241
2242 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
2243
2244         * http.c (http_process_type): Ignore trailing whitespace; use
2245         strdupdelim().
2246
2247         * recur.c (recursive_retrieve): Use the new `convert' field.
2248         (convert_all_links): Ditto.
2249         (convert_all_links): Don't respect meta_disallow_follow.
2250
2251         * html-url.c (handle_link): Fill out link_relative_p and
2252         link_complete_p.
2253
2254         * url.h (struct _urlpos): Make elements more readable.
2255
2256         * recur.c (recursive_retrieve): Call slist_prepend instead of
2257         slist_append.
2258         (convert_all_links): Call slist_nreverse before iterating through
2259         urls_html.
2260
2261         * utils.c (slist_prepend): New function.
2262         (slist_nreverse): Ditto.
2263
2264 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
2265
2266         * http.c (check_end): Constify.
2267
2268 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
2269
2270         * http.c (http_loop): If username and password are known, try the
2271         `Basic' authentication scheme by default.
2272
2273         * connect.h: Declare test_socket_open.
2274
2275 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
2276
2277         * version.c: Bump version from 1.5.3+dev to 1.7-dev.
2278
2279 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
2280
2281         * http.c (gethttp): Don't use the return value of sprintf().
2282         (gethttp): Inhibit keep-alive if opt.http_keep_alive is 0.
2283
2284 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
2285
2286         * recur.c (recursive_retrieve): Print the "so we don't load"
2287         debugging message only if we really don't load.
2288
2289         * http.c (gethttp): Inhibit keep-alive if proxy is being used.
2290         (gethttp): Don't request keep-alive if keep-alive is inhibited.
2291
2292 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
2293
2294         * http.c (gethttp): Make the HTTP persistent connections more
2295         robust.
2296
2297 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
2298
2299         * retr.c (get_contents): If use_expected, make sure that the
2300         appropriate amount of data is being read.
2301
2302         * http.c (gethttp): Check for both `Keep-Alive: ...' and
2303         `Connection: Keep-Alive'.
2304
2305         * wget.h (DEBUGP): Call debug_logprintf only if opt.debug is
2306         turned on.
2307
2308 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
2309
2310         * http.c (connection_available_p): Use it.
2311
2312         * connect.c (test_socket_open): New function.
2313
2314         * http.c (gethttp): Support persistent connections.  Based on the
2315         ideas, and partly on code, by Sam Horrocks <sam@daemoninc.com>.
2316         (register_persistent): New function.
2317         (connection_available_p): Ditto.
2318         (invalidate_connection): Ditto.
2319
2320 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
2321
2322         * url.c (convert_links): Handle UREL2ABS case.
2323
2324         * recur.c (recursive_retrieve): Instead of the list
2325         urls_downloaded, use hash tables dl_file_url_map and
2326         dl_url_file_map.
2327         (convert_all_links): Use them to retrieve data.
2328
2329         * host.c (clean_hosts): Free the hash tables.
2330
2331         * main.c (private_initialize): Call host_init().
2332
2333         * host.c (store_hostaddress): Use a saner, hash table-based data
2334         model.
2335         (realhost): Ditto.
2336         (host_init): Initialize the hash tables.
2337
2338 2000-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
2339
2340         * utils.c (slist_append): Eviscerate NOSORT.  Hash tables are now
2341         used for what the sorted slists used to be used for.
2342         (slist_contains): Don't rely on the list being sorted.
2343         (slist_append): Simplify the code.
2344
2345         * recur.c (recursive_cleanup): Use free_string_set.
2346
2347         * utils.c (string_set_add, string_set_exists, string_set_free):
2348         New functions for easier freeing of hash tables whose keys are
2349         strdup'ed strings.
2350
2351         * recur.c (recursive_retrieve): Use the hash table functions for
2352         storing undesirable URLs.
2353
2354         * hash.c: New file.
2355
2356 2000-11-17  Hrvoje Niksic  <hniksic@arsdigita.com>
2357
2358         * main.c (private_initialize): Call url_init.
2359         (main): Call private_initialize.
2360
2361         * url.c (unsafe_char_table): New table.
2362         (UNSAFE_CHAR): Use it.
2363         (init_unsafe_char_table): New function.
2364         (url_init): New function; call init_unsafe_char_table.
2365
2366 2000-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
2367
2368         * mswindows.h: Define snprintf and vsnprintf to _snprintf and
2369         _vsnprintf respectively.
2370
2371 2000-11-15  Hrvoje Niksic  <hniksic@arsdigita.com>
2372
2373         * config.h.in: Do the _XOPEN_SOURCE and _SVID_SOURCE things only
2374         on Linux.
2375
2376 2000-11-15  Hrvoje Niksic  <hniksic@arsdigita.com>
2377
2378         * html-url.c (handle_link): Handle HTML fragment identifiers.
2379
2380         * recur.c (recursive_retrieve): If norobot info is respected and
2381         the file is specified not to be followed by robots, respect that.
2382
2383         * html-url.c (collect_tags_mapper): Handle <meta name=robots
2384         content=X>.  For us the important cases are where X is NONE or
2385         where X contains NOFOLLOW.
2386         (get_urls_html): Propagate that information to the caller.
2387
2388 2000-11-13  Hrvoje Niksic  <hniksic@arsdigita.com>
2389
2390         * url.c (convert_links): Unlink the file we might be reading from
2391         before writing to it.
2392         (convert_links): Use alloca instead of malloc for
2393         filename_plus_orig_suffix.
2394
2395 2000-11-12  Hrvoje Niksic  <hniksic@arsdigita.com>
2396
2397         * host.c (realhost): Add HOST to the list with quality==0 only if
2398         it wasn't already there.
2399         Based on analysis by Lu Guohan <feng@public.bjnet.edu.cn>.
2400
2401 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
2402
2403         * url.c (get_urls_file): Ditto.
2404         (convert_links): Ditto.
2405
2406         * html-url.c (get_urls_html): Use read_file() instead of
2407         load_file().
2408
2409         * utils.c (read_file): New function, instead of the old
2410         load_file().
2411         (read_file_free): Ditto.
2412
2413         * url.c (findurl): Search only for the supported protocols.
2414         (convert_links): Use fwrite() when writing out a region of
2415         characters.
2416
2417 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
2418
2419         * ftp-ls.c: Move html_quote_string and ftp_index here.
2420
2421         * url.c: Remove get_urls_html, since that's now in html-url.c.
2422
2423         * html-url.c: New file.
2424
2425         * html-parse.c: New file.
2426
2427 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
2428
2429         * init.c (run_wgetrc): Don't bother killing off '\r' since
2430         pars_line() skips whitespace at end of line anyway.
2431         (parse_line): Oops, it didn't.  Now it does.
2432
2433         * recur.c (parse_robots): Ditto here.
2434
2435         * ftp-ls.c (ftp_parse_unix_ls): Kill off the newline character
2436         manually because read_whole_line no longer does.
2437
2438         * utils.c (read_whole_line): Rewrite to: a) use less memory
2439         (reallocates to needed size after work), b) work faster -->
2440         fgets() instead of getc, c) be more correct --> doesn't kill the
2441         newline character at the end of line.
2442
2443 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
2444
2445         * init.c (comind): Initialize MAX to array size - 1.
2446
2447 2000-11-08  Hrvoje Niksic  <hniksic@arsdigita.com>
2448
2449         * url.c (construct): Changed last_slash[-1] to *(last_slash - 1).
2450         Suggested by Edward J. Sabol.
2451
2452 2000-11-08  Hrvoje Niksic  <hniksic@arsdigita.com>
2453
2454         * url.c (construct): Handle the case where host name is not
2455         followed by a slash.
2456
2457 2000-11-06  Hrvoje Niksic  <hniksic@arsdigita.com>
2458
2459         * init.c: commands[] need to be sorted!  ("base" wasn't.)
2460
2461 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
2462
2463         * wget.h (DO_REALLOC_FROM_ALLOCA): Use braces to disambiguate
2464         `if'.
2465
2466 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
2467
2468         * url.c (construct): Insert unneeded initialization for the
2469         compiler to shut up.
2470
2471         * config.h.in: Define _XOPEN_SOURCE to 500 to get the prototype
2472         for strptime() (*duh*).  Define _SVID_SOURCE to get S_IFLNK which
2473         otherwise gets lost when you define _XOPEN_SOURCE.
2474
2475         * utils.c (touch): Include the file name in the error message.
2476         From Debian.
2477
2478 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
2479
2480         * log.c (logvprintf): Use vsnprintf() in all cases.  If necessary,
2481         resize the buffer to fit the formated message.  That way, messages
2482         of arbitrary size may be printed.
2483         (logvprintf): Use saved_append() to optionally log the last
2484         several lines of output.
2485         (logputs): Ditto.
2486         (log_close): Adapt to new data structures.
2487         (log_dump): Ditto.
2488         (redirect_output): Print messages to stderr, not to stdout.
2489
2490         * log.c (saved_append_1): New function.  Replaces the old logging
2491         system ("log all output until 10M characters") with a new, much
2492         more reasonable one ("log last screenful of text").
2493         (saved_append): New function; call saved_append_1.
2494         (free_log_line): New function.
2495
2496 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
2497
2498         * url.c (construct): Fix comment.
2499         (find_last_char): Document.
2500
2501 2000-11-04  Hrvoje Niksic  <hniksic@arsdigita.com>
2502
2503         * snprintf.c: New file.
2504
2505 2000-11-03  Hrvoje Niksic  <hniksic@arsdigita.com>
2506
2507         * wget.h: If HAVE_STDARG_H is not defined, don't declare argument
2508         types to logprintf() and debug_logprintf().
2509
2510 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
2511
2512         * ftp.c (ftp_loop_internal): Hide the password from the URL when
2513         printing non-verbose.  Problem spotted by Dariusz Mlynarczyk
2514         <darekm@bydg.lomac.com.pl>.
2515
2516 2000-11-02  Junio Hamano  <junio@twinsun.com>
2517
2518         * ftp-basic.c (ftp_login): Make comparison case-insensitive.
2519
2520 2000-11-02  Tyler Riddle  <triddle@liquidmarket.com>
2521
2522         * http.c (known_authentication_scheme_p): Recognize NTML
2523         authentication.
2524         (create_authorization_line): Treat NTML the same as `Basic'.
2525
2526 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
2527
2528         * retr.c (retrieve_url): Free url before returning.
2529         (retrieve_url): Free mynewloc before returning.
2530         Spotted by Mark A. Mankins <Mankins_Mark@prc.com>.
2531
2532 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
2533
2534         * url.c (parseurl): Remove possible reading past the end of
2535         sup_protos[].  Spotted by Mark A. Mankins <Mankins_Mark@prc.com>.
2536
2537 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
2538
2539         * main.c (main): In case of opt.downloaded overflowing, print
2540         <overflow> instead of a totally bogus random value.
2541
2542         * retr.c (retrieve_from_file): Ditto.
2543
2544         * recur.c (recursive_retrieve): Ditto.
2545
2546         * main.c (main): Ditto.
2547
2548         * http.c (http_loop): Ditto.
2549
2550         * ftp.c (ftp_loop_internal): Use downloaded_increase() instead of
2551         `+=', and downloaded_exceeds_quota() instead of the simple-minded
2552         check.
2553         (ftp_retrieve_list): Ditto.
2554         (ftp_retrieve_dirs): Ditto.
2555         (ftp_retrieve_glob): Ditto.
2556
2557         * retr.c (downloaded_increase): New function.  Notice overflows of
2558         opt.downloaded.
2559         (downloaded_exceeds_quota): Make sure that opt.downloaded is not
2560         used if it overflowed.
2561
2562         * options.h (struct options): New member downloaded_overflow.
2563
2564 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
2565
2566         * wget.h (enum): Remove extra space after last enumeration.
2567
2568 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
2569
2570         * main.c (main): Use legible_very_long() for printing
2571         opt.downloaded.
2572
2573         * utils.c (legible_1): New function that operates on strings and
2574         does the brunt of legible()'s work.
2575         (legible): Use legible_1().
2576         (legible_very_long): New function; dump the argument with
2577         sprintf(), and call legible_1().
2578
2579         * options.h (struct options): Use VERY_LONG_TYPE for
2580         opt.downloaded.
2581
2582         * sysdep.h (VERY_LONG_TYPE): Define it to have a 64-bit or greater
2583         type.
2584
2585         * config.h.in: Make sure that SIZEOF_LONG and SIZEOF_LONG_LONG get
2586         defined.  Define HAVE_LONG_LONG if long long is available.
2587
2588 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
2589
2590         * utils.c (long_to_string): Update with a later, better version.
2591
2592 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
2593
2594         * url.c (path_simplify_with_kludge): New function.
2595         (path_simplify_with_kludge): Disable it.  Instead...
2596         (parse_dir): ...make sure that at this point the right thing is
2597         done, i.e. that "query" part of the URL (?...) is always assigned
2598         to the file, never to the directory portion of the path.
2599
2600 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
2601
2602         * retr.c (retrieve_url): Detect redirection cycles.
2603
2604 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
2605
2606         * url.c (get_urls_html): Decode HTML entities using
2607         html_decode_entities.
2608
2609         * html.c (htmlfindurl): Don't count the `#' in numeric entities
2610         (&#NNN;) as an HTML fragemnt.
2611         (html_decode_entities): New function.
2612
2613 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
2614
2615         * html.c (htmlfindurl): Fix recognition of # HTML fragments.
2616
2617 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
2618
2619         * url.c (construct): Rewritten for clarity.  Avoids the
2620         unnecessary copying and stack-allocation the old version
2621         performed.
2622
2623 2000-10-31  Hrvoje Niksic  <hniksic@arsdigita.com>
2624
2625         * ftp.c (getftp): Ditto.
2626
2627         * http.c (gethttp): Rewind the stream when retrying from scratch.
2628
2629 2000-10-31  Hrvoje Niksic  <hniksic@arsdigita.com>
2630
2631         * retr.c (retrieve_url): Use url_concat() to handle relative
2632         redirections instead of /ad hoc/ code.
2633
2634         * url.c (url_concat): New function encapsulating weird
2635         construct().
2636         (urllen_http_hack): New function.
2637         (construct): When constructing new URLs, recognize that `?' does
2638         not form part of the file name in HTTP.
2639
2640 2000-10-13  Adrian Aichner  <adrian@xemacs.org>
2641
2642         * retr.c: Add msec timing support for WINDOWS.
2643         * retr.c (reset_timer): GetSystemTime() on WINDOWS.
2644         * retr.c (elapsed_time): Calculate delta time to msec on WINDOWS.
2645
2646 2000-10-27  Dan Harkless  <wget@harkless.org>
2647
2648         * retr.c (retrieve_url): Manually applied T. Bharath
2649         <TBharath@responsenetworks.com>'s patch to get wget to grok
2650         illegal relative URL redirects.  Reformatted and re-commented it.
2651
2652 2000-10-23  Dan Harkless  <wget@harkless.org>
2653
2654         * connect.c (make_connection and bindport): Manually applied Rob
2655         Mayoff <mayoff@dqd.com>'s 1.5.3 patch to add --bind-address,
2656         changing coding style to GNU's.
2657
2658         * ftp.c (ftp_loop_internal): --delete-after wasn't implemented for
2659         files downloaded via FTP.  Per a comment, .listing files were not
2660         counted towards number of bytes and files downloaded because they're 
2661         deleted anyway.  Well, they aren't under -nr, so count them then.
2662
2663         * init.c: Manually applied Rob Mayoff's 1.5.3 patch to add
2664         --bind-address, alphabetizing, changing coding style to GNU's,
2665         commenting, and renaming cmd_ip_address() to cmd_address() to
2666         imply hostnames also okay.
2667                 
2668         * main.c (main): --delete-after didn't delete the root of the
2669         tree.  Ignore --convert-links if --delete-after was specified.
2670         Manually applied Rob Mayoff's 1.5.3 patch to add --bind-address,
2671         fixing duplicate use of added-since-1.5.3 case value.
2672         (print_help): Clarified that --delete-after deletes local files.
2673         Rob forgot to add a line for his new --bind-address option.
2674                 
2675         * options.h (struct options): Manually applied Rob Mayoff's patch
2676         to add --bind-address (bind_address structure member).
2677                 
2678         * recur.c (recursive_retrieve): Improved comment; added DEBUGP().
2679         Ignore --convert-links if --delete-after was specified.
2680                 
2681         * retr.c (retrieve_from_file): Just added a DEBUGP().
2682                 
2683 2000-10-19  Dan Harkless  <wget@harkless.org>
2684
2685         * ftp.c (ftp_loop_internal): downloaded_file() enumerators changed.
2686         (getftp): Applied Piotr Sulecki <Piotr.Sulecki@ios.krakow.pl>'s
2687         patch to work around FTP servers that incorrectly respond to the
2688         "REST" command with the remaining size rather than the total file size.
2689                 
2690         * http.c (gethttp): Improved a comment and added code to tack on
2691         ".html" to text/html files without that extension when -E specified.
2692         (http_loop): Use new downloaded_file() enumerators and deal with
2693         the case of gethttp() called xrealloc() on u->local.
2694
2695         * init.c (commands): Added new "htmlextension" command.
2696         Also renamed John Daily's cmd_quad() to the more descriptive
2697         cmd_lockable_boolean(), alpha-sorted the CMD_DECLARE()s and
2698         removed duplicate cmd_boolean() declaration.
2699
2700         * main.c (print_help): Added my new -E / --html-extension option.
2701         (main): Undocumented --email-address option previously used -E synonym.
2702         Stole it away for the much more deserving --html-extension's use.
2703
2704         * options.h (struct options): Added html_extension field.
2705
2706         * url.c (convert_links): URL X that we saved as X.html locally due
2707         to -E needs to be backed up as X.orig, not X.html.orig.  Added comments.
2708         (downloaded_file): Now remembers if we added .html extension to a file.
2709
2710         * url.h (downloaded_file_t): Added extra enumerators to support above.
2711         (downloaded_file): Now takes and returns a downloaded_file_t.
2712
2713         * wget.h (unnamed "dt" enum): Added ADDED_HTML_EXTENSION enumerator.
2714         
2715 2000-10-09  Dan Harkless  <wget@harkless.org>
2716
2717         * html.c (htmlfindurl): Added unneeded initialization to quiet warning.
2718                 
2719         * main.c (print_help): Clarified what --retr-symlinks does.
2720         
2721 2000-09-15  John Daily  <jdaily@cyberdude.com>
2722
2723         * init.c: Add support for "always" and "never" values to allow
2724         .wgetrc to override commandline (useful e.g. with .pm files
2725         calling `wget --passive-ftp' when your firewall doesn't allow that).
2726
2727         * ftp.c (getftp): passive_ftp is first option to support always/never.
2728
2729 2000-08-30  Dan Harkless  <wget@harkless.org>
2730
2731         * ftp.c (ftp_retrieve_list): Use new INFINITE_RECURSION #define.
2732         
2733         * html.c: htmlfindurl() now takes final `dash_p_leaf_HTML' parameter.
2734         Wrapped some > 80-column lines.  When -p is specified and we're at a 
2735         leaf node, do not traverse <A>, <AREA>, or <LINK> tags other than 
2736         <LINK REL="stylesheet">.
2737         
2738         * html.h (htmlfindurl): Now takes final `dash_p_leaf_HTML' parameter.
2739         
2740         * init.c: Added new -p / --page-requisites / page_requisites option.
2741
2742         * main.c (print_help): Clarified that -l inf and -l 0 both allow
2743         infinite recursion.  Changed the unhelpful --mirrior description
2744         to simply give the options it's equivalent to.  Added new -p option.
2745         (main): Added some comments; handle new -p / --page-requisites.
2746         
2747         * options.h (struct options): Added new page_requisites field.
2748
2749         * recur.c: Changed "URL-s" to "URLs" and "HTML-s" to "HTMLs".
2750         Calculate and pass down new `dash_p_leaf_HTML' parameter to
2751         get_urls_html().  Use new INFINITE_RECURSION #define.
2752
2753         * retr.c: Changed "URL-s" to "URLs".  get_urls_html() now takes
2754         final `dash_p_leaf_HTML' parameter.
2755
2756         * url.c: get_urls_html() and htmlfindurl() now take final
2757         `dash_p_leaf_HTML' parameter.
2758
2759         * url.h (get_urls_html): Now takes final `dash_p_leaf_HTML' parameter.
2760
2761         * wget.h: Added some comments and new INFINITE_RECURSION #define.
2762         
2763 2000-08-23  Dan Harkless  <wget@harkless.org>
2764
2765         * main.c (print_help): -B / --base was not mentioned.
2766
2767 2000-08-22  Dan Harkless  <wget@harkless.org>
2768
2769         * main.c (print_help): Modified -nc description to mention that it
2770         also prevents the creation of multiple versions of the same file
2771         with ".<number>" suffixes.
2772
2773 2000-07-14  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
2774
2775         * retr.c (retrieve_url): Consistently strdup opt.referer when
2776         setting u->referer.
2777
2778 2000-06-09  Dan Harkless  <wget@harkless.org>
2779
2780         * main.c (print_help): --help output for --waitretry was over 80 cols.
2781
2782 2000-06-09  Hrvoje Niksic  <hniksic@iskon.hr>
2783
2784         * url.c (encode_string): Fix comment.
2785         Suggested by Herold Heiko <Heiko.Herold@previnet.it>.
2786
2787 2000-06-01  Const Kaplinsky  <const@ce.cctpu.edu.ru>
2788
2789         * ftp.c (ftp_retrieve_list): Change permissions only on plain
2790         files.
2791
2792 2000-06-01  Hrvoje Niksic  <hniksic@iskon.hr>
2793
2794         * url.c (str_url): Print the port number only if it's different
2795         from the default port number for that protocol.
2796
2797 2000-05-22  Dan Harkless  <wget@harkless.org>
2798
2799         * main.c (print_help): Added --help line for Damir Dzeko
2800         <ddzeko@zesoi.fer.hr>'s until-now-undocumented --referer option.
2801         Removed comments that --referer and --waitretry were undocumented.
2802         Changed "`.wgetrc' command" to "`.wgetrc'-style command" on --help
2803         line for --execute.
2804
2805 2000-05-18  Hrvoje Niksic  <hniksic@iskon.hr>
2806
2807         * ftp.c (getftp): Ditto.
2808
2809         * http.c (gethttp): Check for return value of fclose/fflush.
2810
2811 2000-04-12  Hrvoje Niksic  <hniksic@iskon.hr>
2812
2813         * host.c (store_hostaddress): Instead of shifting ADDR, start
2814         copying from the correct address.
2815
2816 2000-04-12  Hrvoje Niksic  <hniksic@iskon.hr>
2817
2818         * http.c (gethttp): Don't free REQUEST -- it was allocated with
2819         alloca().
2820         Pointed out by Gisle Vanem <gvanem@eunet.no>.
2821
2822 2000-04-04  Dan Harkless  <wget@harkless.org>
2823
2824         * host.c (store_hostaddress): R. K. Owen's patch introduces a
2825         "left shift count >= width of type" warning on 32-bit
2826         architectures.  Got rid of it by tricking the compiler w/ a variable.
2827         
2828         * url.c (UNSAFE_CHAR): The macro didn't include all the illegal
2829         characters per RFC1738, namely everything above '~'.  It also
2830         generated a warning on OSes where char =~ unsigned char.  Fixed.
2831         
2832 1998-10-17  Hrvoje Niksic  <hniksic@srce.hr>
2833
2834         * http.c (http_process_type): Removed needless strdup(), a memory
2835         leak.
2836
2837 1998-09-25  Hrvoje Niksic  <hniksic@srce.hr>
2838
2839         * html.c (htmlfindurl): Set PH to the first occurrence of `#'.
2840
2841 1998-09-25  Simon Munton  <simonm@m4data.co.uk>
2842
2843         * init.c (wgetrc_file_name): Don't free HOME under Windows.
2844
2845 1998-12-01  "R. K. Owen"  <rkowen@Nersc.GOV>
2846
2847         * host.c (store_hostaddress): Fix for big endian 64-bit machines.
2848
2849 1998-12-01  Hrvoje Niksic  <hniksic@srce.hr>
2850
2851         * url.c (UNSAFE_CHAR): New macro.
2852         (contains_unsafe): Use it.
2853         (encode_string): Ditto.
2854
2855 1998-12-01  Hrvoje Niksic  <hniksic@srce.hr>
2856
2857         * main.c (i18n_initialize): Use LC_MESSAGES only if available.
2858
2859 2000-03-31  Hrvoje Niksic  <hniksic@srce.hr>
2860
2861         * Use TOUPPER/TOLOWER.
2862
2863 1998-12-22  Alexander V. Lukyanov  <lav@yars.free.net>
2864
2865         * ftp-opie.c (btoe): Zero-terminate OSTORE.
2866
2867 2000-03-21  Hrvoje Niksic  <hniksic@iskon.hr>
2868
2869         * wget.h (DO_REALLOC_FROM_ALLOCA): Ditto.
2870
2871         * sysdep.h (ISALNUM): New macro.
2872         (TOLOWER): Ditto.
2873         (TOUPPER): Ditto.
2874
2875 2000-03-10  Dan Harkless  <wget@harkless.org>
2876
2877         * html.c (idmatch): Implemented checking of my new --follow-tags
2878         and --ignore-tags options.
2879         
2880         * init.c (commands): Added comment reminding people adding new
2881         entries doing allocation to add corresponding freeing in cleanup().
2882         (commands): Added new followtags and ignoretags commands.
2883         (cleanup): Free storage for new followtags and ignoretags.
2884         
2885         * main.c: Use of "comma-separated list" was random -- normalized
2886         it.  Did some alphabetization.  Added comments pointing out
2887         "Options without arguments" and "Options accepting an argument"
2888         sections of long_options[].  Added new options --follow-tags and
2889         -G / --ignore-tags.  Added comment that Damir's --referer is
2890         currently undocumented.  Added comment that Heiko's --waitretry is
2891         partially undocumented (mentioned in --help but not in
2892         wget.texi).  Moved improperly sorted 24, 129, and 'G' cases.
2893         
2894         * options.h (struct options): Added new fields follow_tags and
2895         ignore_tags. 
2896         
2897         * wget.h: Added "#define EQ 0" so we can say "strcmp(a, b) == EQ".
2898         
2899 2000-03-02  Dan Harkless  <wget@harkless.org>
2900
2901         * ftp.c (ftp_loop_internal): Heiko introduced "suggest explicit
2902         braces to avoid ambiguous `else'" warnings.  Eliminated them.
2903         
2904         * http.c (gethttp): Dan Berger's query string patch is totally
2905         bogus.  If you have two different URLs, gen_page.cgi?page1 and
2906         get_page.cgi?page2, they'll both be saved as get_page.cgi and the
2907         second will overwrite the first.  Also, parameters to implicit
2908         CGIs, like "http://www.host.com/db/?2000-03-02" cause the URLs to
2909         be printed with trailing garbage characters, and could seg fault.
2910         Backing out the patch, which Dan B. informed me by email was just
2911         a kludge to download StarOffice from Sun made necessary due to
2912         wget's unconditional escaping of certain characters (room for an
2913         option there?).
2914         (http_loop): Heiko introduced "suggest explicit braces to avoid
2915         ambiguous `else'" warnings.  Eliminated them.
2916         
2917         * main.c: Heiko's --wait / --waitretry backwards compatibility
2918         code looks to have been totally untested -- automatic variable
2919         'wr' was used without being initialized, and a long int was passed
2920         into setval()'s char* val parameter.
2921         
2922         * recur.c (parse_robots): Applied Edward J. Sabol
2923         <sabol@alderaan.gsfc.nasa.gov>'s patch for Guan Yang's reported
2924         problem with "User-agent:<space>*<space>" lines in robots.txt.
2925         
2926         * url.c (parseurl, str_url): Removing Dan Berger's code (see
2927         http.c above for explanation).
2928         
2929 1999-08-25  Heiko Herold  <Heiko.Herold@previnet.it>
2930
2931         * ftp.c: Respect new option waitretry.
2932
2933 2000-01-30  Damir Dzeko  <ddzeko@zesoi.fer.hr>
2934
2935         * http.c (gethttp): Send custom Referer, if required.
2936
2937 1999-09-24  Charles G Waldman  <cgw@fnal.gov>
2938
2939         * netrc.c (parse_netrc): Allow passwords to contain spaces.
2940
2941         * netrc.c (parse_netrc): New function.
2942
2943 1999-09-17  Dan Berger  <dberger@ix.netcom.com>
2944
2945         * http.c (gethttp): Send it.
2946
2947         * url.c (parseurl): Detect query string in HTTP URL-s.
2948         (str_url): Print it.
2949
2950 2000-03-02  HIROSE Masaaki  <hirose31@t3.rim.or.jp>
2951
2952         * html.c (html_allow): Add <link href=...> and <script src=...>.
2953
2954 1999-05-02  andrew deryabin  <djsf@softhome.net>
2955
2956         * http.c (gethttp): Specify port in `Host' header only if it's
2957         different from 80.
2958
2959 1998-11-03  Edward J. Sabol  <sabol@alderaan.gsfc.nasa.gov>
2960
2961         * recur.c (recursive_retrieve): If a finite maximum depth is
2962         specified, and we're are already at that depth, don't download the
2963         HTML file for parsing.
2964
2965 2000-03-01  Dan Harkless  <wget@harkless.org>
2966
2967         * ftp.c (ftp_loop_internal): Call new downloaded_file() function,
2968         even though we don't do conversion on HTML files retrieved via
2969         FTP, so _current_ usage of downloaded_file() makes this call unneeded. 
2970         (ftp_retrieve_list): Added a comment saying where we need to
2971         stat() a .orig file if FTP'd HTML file conversion is ever implemented.
2972         (ftp_retrieve_list): "Local file '%s' is more recent," is sometimes
2973         a lie -- reworded as "Server file no newer than local file '%s' --".
2974         
2975         * http.c (http_loop): Fixed a typo and clarified a comment.
2976         (http_loop): When -K and -N are specified together, compare size
2977         and timestamp of server file X against local file X.orig (if
2978         extant) rather than converted local file X.
2979         (http_loop): "Local file '%s' is more recent," is sometimes a lie
2980         -- reworded as "Server file no newer than local file '%s' --".
2981         (http_loop): Call new downloaded_file() function to prevent
2982         wrongful overwriting of .orig file when -N is specified.
2983         
2984         * url.c (convert_links): When -K specified, only rename X to
2985         X.orig if downloaded_file() returns TRUE.  Otherwise when we skip
2986         file X due to -N, we clobber an X.orig from a previous invocation.
2987         (convert_links): Call the failsafe xstrdup(), not the real strdup().
2988         (convert_links): Added a note asking anyone who understands how
2989         multiple URLs can correspond to a single file to comment it.
2990         (downloaded_file): Added this new function.
2991         
2992         * url.h (downloaded_file): Added prototype for this new function
2993         as well as its downloaded_file_t enum type.
2994
2995         * wget.h (boolean): Added this new typedef and TRUE and FALSE #defines.
2996
2997 2000-02-29  Dan Harkless  <wget@harkless.org>
2998
2999         * version.c: Upped version to developer-only "1.5.3+dev".
3000
3001 2000-02-18  Dan Harkless  <wget@harkless.org>
3002
3003         * init.c (backup_converted): Added this new option.
3004
3005         * main.c (-K / --backup-converted): Added this new option.
3006
3007         * options.h (backup_converted): Added this new option.
3008
3009         * url.c (convert_links): When backup_converted is specified, save
3010         file X as X.orig before converting.
3011
3012         * url.h (urlpos): Fixed typo -- said "Rekative" instead of "Relative".
3013
3014 1998-09-21  Hrvoje Niksic  <hniksic@srce.hr>
3015
3016         * version.c: Wget 1.5.3 is released.
3017
3018 1998-09-21  Hrvoje Niksic  <hniksic@srce.hr>
3019
3020         * host.c (ftp_getaddress): Don't warn when reverse-lookup of local 
3021         address doesn't yield FQDN.
3022
3023 1998-09-21  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
3024
3025         * cmpt.c (strerror): Fix declaration of sys_errlist.
3026
3027 1998-09-11  Hrvoje Niksic  <hniksic@srce.hr>
3028
3029         * main.c (main): Don't use an array subscript as the first
3030         argument to STRDUP_ALLOCA.
3031         From Kaveh R. Ghazi.
3032
3033 1998-09-11  Szakacsits Szabolcs  <szaka@sienet.hu>
3034
3035         * html.c (htmlfindurl): Download table background.
3036
3037 1998-09-11  Hans Grobler  <grobh@conde.ee.sun.ac.za>
3038
3039         * init.c (parse_line): Would free *com before allocating it.
3040         (parse_line): Would free com instead of *com.
3041
3042 1998-09-10  Howard Gayle  <howard@fjst.com>
3043
3044         * url.c (get_urls_html): Would drop the last character of the
3045         link.
3046
3047 1998-09-10  Hrvoje Niksic  <hniksic@srce.hr>
3048
3049         * http.c (http_loop): Don't print status code if quiet.
3050
3051 1998-09-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3052
3053         * log.c: Use <stdarg.h> only when __STDC__.
3054
3055 1998-09-10  Adam D. Moss  <adam@foxbox.org>
3056
3057         * html.c (htmlfindurl): Download <layer src=...>.
3058
3059 1998-09-10  Howard Gayle  <howard@fjst.com>
3060
3061         * ftp.c (ftp_retrieve_list): Don't update the time stamp of a file 
3062         not retrieved.
3063
3064 1998-06-27  Hrvoje Niksic  <hniksic@srce.hr>
3065
3066         * utils.c: Include <libc.h> on NeXT.
3067
3068 1998-06-26  Heinz Salzmann  <heinz.salzmann@intermetall.de>
3069
3070         * url.c (get_urls_html): Fix calculation of URL position.
3071
3072 1998-06-23  Hrvoje Niksic  <hniksic@srce.hr>
3073
3074         * version.c: Wget 1.5.2 is released.
3075
3076 1998-06-23  Dave Love  <d.love@dl.ac.uk>
3077
3078         * ftp.c, init.c, netrc.c: Include errno.h.
3079
3080         * http.c: Include errno.h and time header.
3081
3082         * Makefile.in (exext): Define.
3083         (install.bin, uninstall.bin): Use it.
3084
3085 1998-06-21  Hrvoje Niksic  <hniksic@srce.hr>
3086
3087         * http.c (http_loop): Don't attempt to compare local and remote
3088         sizes if the remote size is unknown.
3089
3090 1998-06-16  Hrvoje Niksic  <hniksic@srce.hr>
3091
3092         * url.c (get_urls_html): Use malloc() instead of alloca in the
3093         loop.
3094
3095 1998-06-13  Hrvoje Niksic  <hniksic@srce.hr>
3096
3097         * version.c: Wget 1.5.2-b4 is released.
3098
3099 1998-06-13  Hrvoje Niksic  <hniksic@srce.hr>
3100
3101         * url.c (get_urls_html): Ignore spaces before and after the URI.
3102
3103 1998-06-08  Wanderlei Antonio Cavassin  <cavassin@conectiva.com.br>
3104
3105         * ftp.c (getftp): Translate `done'.
3106
3107 1998-06-06  Hrvoje Niksic  <hniksic@srce.hr>
3108
3109         * version.c: Wget 1.5.2-b3 is released.
3110
3111 1998-06-06  Alexander Kourakos  <awk@bnt.com>
3112
3113         * init.c (cleanup): Close dfp, don't free it.
3114
3115 1998-06-06  Hrvoje Niksic  <hniksic@srce.hr>
3116
3117         * utils.c (make_directory): Twiddle.
3118
3119         * config.h.in: Added template for access().
3120
3121 1998-06-05  Mathieu Guillaume  <mat@cythere.com>
3122
3123         * html.c (htmlfindurl): Download <input src=...>
3124
3125 1998-06-03  Hrvoje Niksic  <hniksic@srce.hr>
3126
3127         * utils.c (file_exists_p): Use access() with two arguments.
3128
3129 1998-05-27  Martin Kraemer  <Martin.Kraemer@mch.sni.de>
3130
3131         * netrc.c (parse_netrc): Correct logic.
3132
3133 1998-05-27  Hrvoje Niksic  <hniksic@srce.hr>
3134
3135         * ftp.c (getftp): Added `break'; suggested by Lin Zhe Min
3136         <ljm@ljm.wownet.net>.
3137
3138 1998-05-24  Hrvoje Niksic  <hniksic@srce.hr>
3139
3140         * version.c: Wget 1.5.2-b2 is released.
3141
3142 1998-05-18  Juan Jose Rodriguez  <jcnsoft@jal1.telmex.net.mx>
3143
3144         * mswindows.h: Don't translate mkdir to _mkdir under Borland.
3145
3146 1998-05-17  Hrvoje Niksic  <hniksic@srce.hr>
3147
3148         * retr.c (elapsed_time): Return correct value when
3149         HAVE_GETTIMEOFDAY is undefined.
3150
3151 1998-05-13  Hrvoje Niksic  <hniksic@srce.hr>
3152
3153         * version.c: Wget 1.5.2-b1 is released.
3154
3155 1998-05-08  Hrvoje Niksic  <hniksic@srce.hr>
3156
3157         * getopt.c (_getopt_internal): Use exec_name instead of argv[0].
3158         (_getopt_internal): Don't translate `#if 0'-ed strings.
3159
3160 1998-05-06  Douglas E. Wegscheid  <wegscd@whirlpool.com>
3161
3162         * mswindows.c (ws_handler): Use fork_to_background().
3163
3164 1998-05-05  Hrvoje Niksic  <hniksic@srce.hr>
3165
3166         * version.c: Wget 1.5.1 is released.
3167
3168 1998-05-05  Hrvoje Niksic  <hniksic@srce.hr>
3169
3170         * http.c (parse_http_status_line): Avoid `minor' and `major'
3171         names.
3172
3173 1998-05-02  Hrvoje Niksic  <hniksic@srce.hr>
3174
3175         * utils.c (mkdirhier): Renamed to make_directory.
3176
3177 1998-05-01  Hrvoje Niksic  <hniksic@srce.hr>
3178
3179         * mswindows.c (fork_to_background): Define under Windows.
3180
3181         * utils.c (fork_to_background): New function.
3182
3183         * html.c (htmlfindurl): Removed rerdundant casts.
3184
3185 1998-05-01  Douglas E. Wegscheid  <wegscd@whirlpool.com>
3186
3187         * mswindows.c (ws_mypath): Cache the path.
3188
3189 1998-04-30  Douglas E. Wegscheid  <wegscd@whirlpool.com>
3190
3191         * ftp.h: Prefix enum ftype members with FT_.
3192
3193         * ftp-ls.c, ftp.c, html.h: Adjust accordingly.
3194
3195         * mswindows.h: Use stat under Borland, _stat under MSVC.
3196
3197 1998-04-28  Hrvoje Niksic  <hniksic@srce.hr>
3198
3199         * http.c (known_authentication_scheme_p): New function.
3200         (gethttp): Handle authorization more correctly.
3201
3202         * ftp-basic.h: Removed.
3203
3204         * cmpt.h: Removed.
3205
3206         * utils.c: Include <unistd.h> before <pwd.h>; needed under SunOS
3207         with gcc 2.8.
3208         (numdigit): Use `while' loop.
3209
3210         * http.c (create_authorization_line): Detect authentication
3211         schemes case-insensitively.
3212
3213         * http.c (extract_header_attr): Use strdupdelim().
3214         (digest_authentication_encode): Move declaration of local
3215         variables to smaller scope.
3216         (digest_authentication_encode): Reset REALM, OPAQUE and NONCE.
3217         (create_authorization_line): Detect authentication schemes
3218         case-insensitively.
3219
3220         * utils.c (touch): Constify.
3221
3222         * http.c (gethttp): Report a nicer error when no data is received.
3223
3224         * rbuf.h (RBUF_READCHAR): Ditto.
3225
3226         * ftp-basic.c (ftp_response): Use sizeof.
3227
3228 1998-04-27  Hrvoje Niksic  <hniksic@srce.hr>
3229
3230         * retr.c (print_percentage): EXPECTED is long, not int.
3231         (print_percentage): Use floating-point arithmetic to avoid
3232         overflow with large files' sizes multiplied with 100.
3233
3234 1998-04-27  Gregor Hoffleit  <flight@mathi.uni-heidelberg.de>
3235
3236         * config.h.in: Added pid_t stub.
3237
3238         * sysdep.h (S_ISREG): Moved here from mswindows.h (NeXT doesn't
3239         define it).
3240
3241 1998-04-20  Hrvoje Niksic  <hniksic@srce.hr>
3242
3243         * version.c: Wget 1.5.0 is released.
3244
3245 1998-04-18  Hrvoje Niksic  <hniksic@srce.hr>
3246
3247         * url.c (str_url): Ditto.
3248
3249         * ftp-basic.c (ftp_rest): Use new name.
3250
3251         * utils.c (long_to_string): Renamed from prnum().
3252
3253 1998-04-16  Hrvoje Niksic  <hniksic@srce.hr>
3254
3255         * version.c: Wget 1.5-b17 is released.
3256
3257 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
3258
3259         * headers.c (header_get): New argument FLAGS.
3260
3261         * http.c (gethttp): If request is malformed, bail out of the
3262         header loop.
3263         (gethttp): Check for empty header *after* the status line checks.
3264         (gethttp): Disallow continuations for status line.
3265
3266 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
3267
3268         * version.c: Wget 1.5-b16 is released.
3269
3270 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
3271
3272         * init.c (commands): Renamed `always_rest' to `continue'.
3273
3274 1998-04-05  Hrvoje Niksic  <hniksic@srce.hr>
3275
3276         * all: Use it.
3277
3278         * log.c (logputs): New argument.
3279         (logvprintf): Ditto.
3280         (logprintf): Ditto.
3281
3282 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
3283
3284         * http.c (http_atotm): Update comment.
3285
3286         * main.c (i18n_initialize): Set LC_MESSAGES, not LC_ALL.
3287
3288         * wget.h: Renamed ENABLED_NLS to HAVE_NLS.
3289
3290         * main.c (i18n_initialize): New function.
3291         (main): Use it.
3292
3293         * log.c: Include <unistd.h>.
3294
3295         * retr.c (show_progress): Cast alloca to char *.
3296
3297 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
3298
3299         * version.c: Wget 1.5-b15 is released.
3300
3301 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
3302
3303         * utils.h: Declare file_non_directory_p().
3304
3305 1998-04-03  Hrvoje Niksic  <hniksic@srce.hr>
3306
3307         * main.c (main): It's `tries', not `numtries' now.
3308
3309 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
3310
3311         * init.c (getperms): Removed.
3312
3313 1998-04-01  Tim Charron  <tcharron@interlog.com>
3314
3315         * log.c (logvprintf): Don't use ARGS twice.
3316
3317 1998-04-01  John  <john@futuresguide.com>
3318
3319         * mswindows.c: Cleaned up.
3320
3321 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
3322
3323         * version.c: Wget 1.5-b14 is released.
3324
3325 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
3326
3327         * ftp-opie.c (STRLEN4): New macro.
3328         (btoe): Use it.
3329
3330 1998-04-01  Junio Hamano  <junio@twinsun.com>
3331
3332         * http.c: Document all the Digest functions.
3333
3334 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
3335
3336         * utils.c (file_non_directory_p): Renamed from isfile().
3337
3338         * mswindows.h (S_ISREG): New macro, suggested by Tim Adam.
3339
3340 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
3341
3342         * utils.c (mkdirhier): Use 0777 instead of opt.dirmode.
3343
3344         * init.c (cmd_spec_dotstyle): Use 48 dots per line for binary
3345         style.
3346         (cmd_permissions): Removed.
3347
3348         * config.h.in: Add template for WORDS_BIGENDIAN.
3349
3350 1998-03-31  Junio Hamano  <junio@twinsun.com>
3351
3352         * http.c (HEXD2asc): New macro.
3353         (dump_hash): Use it.
3354
3355 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
3356
3357         * version.c: Wget 1.5-b13 is released.
3358
3359 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
3360
3361         * main.c (main): Don't try to use `com'.
3362
3363 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
3364
3365         * init.c (cmd_permissions): New function.
3366
3367 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
3368
3369         * version.c: Wget 1.5-b12 is released.
3370
3371 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
3372
3373         * init.c (commands): Renamed `numtries' to `tries'.
3374         (cmd_spec_debug): Removed.
3375         (home_dir): Under Windows, return `C:\' if HOME is undefined.
3376
3377 1998-03-29  Hrvoje Niksic  <hniksic@srce.hr>
3378
3379         * config.h.in: Define _XOPEN_SOURCE.
3380
3381         * init.c (check_user_specified_header): New function.
3382         (cmd_spec_header): Use it.
3383         (cmd_spec_useragent): New function.
3384
3385 1998-03-29  Hrvoje Niksic  <hniksic@srce.hr>
3386
3387         * version.c: Wget 1.5-b11 is released.
3388
3389 1998-03-28  Hrvoje Niksic  <hniksic@srce.hr>
3390
3391         * wget.h: Include <libintl.h> only if NLS is enabled.
3392
3393 1998-03-26  Hrvoje Niksic  <hniksic@srce.hr>
3394
3395         * options.h (struct options): Made `wait' a long.
3396         (struct options): Ditto for `timeout'.
3397
3398 1998-03-19  Hrvoje Niksic  <hniksic@srce.hr>
3399
3400         * utils.c (exists): Renamed to file_exists_p.
3401         (file_exists_p): Use access() if available.
3402
3403 1998-03-17  Hrvoje Niksic  <hniksic@srce.hr>
3404
3405         * utils.c (memfatal): Set save_log_p to 0 to avoid potential
3406         infloop.
3407
3408         * log.c: do_logging -> save_log_p.
3409
3410         * config.h.in: Added template for HAVE_VSNPRINTF.
3411
3412 1998-03-16  Hrvoje Niksic  <hniksic@srce.hr>
3413
3414         * init.c: Ditto.
3415
3416         * http.c: Protect declaration against non-ANSI compiler.
3417
3418         * log.c (logvprintf): Use vsnprintf() if available.
3419
3420         * getopt.c (main): Don't translate test stuff.
3421
3422 1998-03-16  Hrvoje Niksic  <hniksic@srce.hr>
3423
3424         * version.c: Wget 1.5-b10 is released.
3425
3426 1998-03-11  Hrvoje Niksic  <hniksic@srce.hr>
3427
3428         * ftp.c (getftp): Don't translate "CWD %s".
3429
3430         * wget.h (GCC_FORMAT_ATTR): Renamed from FORMAT_ATTR.
3431
3432 1998-03-07  Hrvoje Niksic  <hniksic@srce.hr>
3433
3434         * ftp-opie.c (btoe): Use memcpy() instead of strncat().
3435
3436         * log.c (logputs): New function.
3437         (logvprintf): Renamed from vlogmsg; use logputs().
3438
3439         * retr.c (show_progress): Print `[100%]' when the retrieval is
3440         finished.
3441
3442         * init.c (run_wgetrc): Use FILE, not PATH.
3443         (wgetrc_file_name): Ditto.
3444
3445 1998-03-07  Tim Adam  <tma@osa.com.au>
3446
3447         * recur.c (parse_robots): Correctly reset `entries' on empty
3448         disallow.
3449
3450 1998-03-07  Hrvoje Niksic  <hniksic@srce.hr>
3451
3452         * init.c (cmd_spec_debug): Use cmd_boolean().
3453
3454 1998-02-23  Hrvoje Niksic  <hniksic@srce.hr>
3455
3456         * http.c (gethttp): Create proxy-authorization correctly.
3457
3458 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
3459
3460         * md5.c: Ditto.
3461
3462         * getopt.c: Use ANSI function definitions.
3463
3464         * ftp-opie.c: New file.
3465
3466         * options.h: Don't redefine EXTERN.
3467
3468         * init.c: Sort it correctly.
3469
3470 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
3471
3472         * version.c: Wget 1.5-b9 is released.
3473
3474 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
3475
3476         * recur.c (recursive_retrieve): Reset `first_time'.
3477
3478         * ftp.c (getftp): Added `default' clause to switches of uerr_t.
3479
3480         * rbuf.c (rbuf_peek): Simplified.
3481         (rbuf_flush): Use MINVAL.
3482
3483         * wget.h (MINVAL): Moved from url.h.
3484
3485         * rbuf.h (RBUF_FD): New macro.
3486
3487         * url.c (add_url): Add to the head of the list.
3488
3489         * ftp.c (ftp_retrieve_list): Set the permissions to downloaded
3490         file.
3491         (getftp): Set the default permissions to 0600.
3492
3493 1998-02-21  Hrvoje Niksic  <hniksic@srce.hr>
3494
3495         * url.c (get_urls_html): Ditto.
3496         (convert_links): Ditto.
3497
3498         * recur.c (parse_robots): Ditto.
3499
3500         * html.c (ftp_index): Ditto.
3501
3502         * ftp-ls.c (ftp_parse_unix_ls): Open file as binary.
3503
3504         * init.c (defaults): Initialize `opt' to zero via memset.
3505
3506         * http.c (digest_authentication_encode): goto considered harmful.
3507
3508 1998-02-19  Hrvoje Niksic  <hniksic@srce.hr>
3509
3510         * ftp.c (delelement): Simplify and fix leak.
3511
3512 1998-02-18  Hrvoje Niksic  <hniksic@srce.hr>
3513
3514         * http.c (dump_hash): Use HEXD2ASC instead of home-grown stuff.
3515
3516         * url.h (HEXD2ASC): Removed warning.
3517
3518         * init.c (comind): Use binary search.
3519         (commands): Reorganized.
3520         (setval): Ditto.
3521         (cmd_boolean): New function.
3522         (cmd_number): Ditto.
3523         (cmd_number_inf): Ditto.
3524         (cmd_string): Ditto.
3525         (cmd_vector): Ditto.
3526         (cmd_directory_vector): Ditto.
3527         (cmd_bytes): Ditto.
3528         (cmd_time): Ditto.
3529         (cmd_spec_debug): Ditto.
3530         (cmd_spec_dirmode): Ditto.
3531         (cmd_spec_dirstruct): Ditto.
3532         (cmd_spec_dotstyle): Ditto.
3533         (cmd_spec_header): Ditto.
3534         (cmd_spec_htmlify): Ditto.
3535         (cmd_spec_mirror): Ditto.
3536         (cmd_spec_outputdocument): Ditto.
3537         (cmd_spec_recursive): Ditto.
3538         (settime): Merged with cmd_time().
3539         (setbytes): Merged with cmd_bytes().
3540         (setonoff): Merged with cmd_boolean().
3541         (onoff): Ditto.
3542
3543 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
3544
3545         * Makefile.in (distclean): Remove `config.h'.
3546
3547 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
3548
3549         * version.c: Wget 1.5-b8 is released.
3550
3551 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
3552
3553         * http.c (digest_authentication_encode): New function.
3554         (create_authorization_line): Use it.
3555         (dump_hash): New function.
3556         (digest_authentication_encode): Use it.
3557
3558         * fnmatch.c: Renamed from `mtch.c'.
3559
3560 1998-02-15  Karl Eichwalder  <ke@suse.de>
3561
3562         * main.c (main): Tag "Written by..." string as translatable.
3563
3564 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
3565
3566         * wget.h (FREE_MAYBE): New macro.
3567
3568         * http.c (create_authorization_line): Don't use ANSI C string
3569         concatenation feature.
3570         (basic_authentication_encode): Use alloca() for temporary
3571         variables.
3572
3573         * recur.h: Ditto.
3574
3575         * http.c: Ditto.
3576
3577         * headers.h: Ditto.
3578
3579         * ftp-basic.c: Protect declaration against non-ANSI compiler.
3580
3581         * http.c (create_authorization_line): Cast `unsigned char *' to
3582         `char *' for sprintf, to shut up the noisy Digital Unix cc.
3583
3584 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
3585
3586         * version.c: Wget 1.5-b7 is released.
3587
3588 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
3589
3590         * cmpt.c (strstr): Synched with glibc-2.0.6.
3591
3592         * ftp-basic.c (calculate_skey_response): Ditto.
3593         (calculate_skey_response): Use alloca().
3594
3595         * http.c (create_authorization_line): Work with FSF's version of
3596         md5.c.
3597
3598         * md5.c: New file, from GNU libc.
3599
3600 1998-02-14  Hrvoje Niksic  <hniksic@srce.hr>
3601
3602         * url.h (URL_CLEANSE): Name the temporary variable more carefully.
3603
3604 1998-02-13  Hrvoje Niksic  <hniksic@srce.hr>
3605
3606         * http.c (basic_authentication_encode): New function, instead of
3607         the macro.
3608
3609 1998-02-13  Junio Hamano  <junio@twinsun.com>
3610
3611         * http.c: Add HTTP-DA support.
3612         * ftp-basic.c: Add Opie/S-key support.
3613         * config.h.in, Makefile.in: Add HTTP-DA and Opie/S-key support.
3614         * md5.c, md5.h: New files.
3615
3616 1998-02-13  Hrvoje Niksic  <hniksic@srce.hr>
3617
3618         * http.c (http_process_range): Renamed from hprocrange().
3619         (http_process_range): Parse the whole header.
3620
3621         * headers.c: New file.
3622         (header_process): New function.
3623         (header_get): Renamed from fetch_next_header.
3624
3625         * all: Include utils.h only where necessary.
3626
3627         * wget.h: Declare xmalloc(), xrealloc() and xstrdup() here.
3628
3629         * wget.h: Add provisions for dmalloc.
3630
3631 1998-02-12  Hrvoje Niksic  <hniksic@srce.hr>
3632
3633         * version.c: Wget 1.5-b6 is released.
3634
3635 1998-02-12  Hrvoje Niksic  <hniksic@srce.hr>
3636
3637         * ftp.c (ftp_loop): Determine `filename' more precisely.
3638
3639         * init.c (setval): Don't set `opt.quiet' if output-document is
3640         `-'.
3641
3642         * log.c (log_init): Print to STDERR instead of STDOUT.
3643         (vlogmsg): Use STDERR by default.
3644         (logflush): Ditto.
3645
3646 1998-02-11  Simon Josefsson  <jas@pdc.kth.se>
3647
3648         * host.c: Use addr_in again.
3649
3650 1998-02-08  Karl Eichwalder  <karl@suse.de>
3651
3652         * http.c (gethttp): Fixed typo.
3653
3654 1998-02-08  Hrvoje Niksic  <hniksic@srce.hr>
3655
3656         * version.c: Wget 1.5-b5 is released.
3657
3658 1998-02-08  Hrvoje Niksic  <hniksic@srce.hr>
3659
3660         * retr.c (show_progress): Use it.
3661
3662         * log.c (logflush): New function.
3663
3664         * wget.h: Utilize __attribute__ if on gcc.
3665
3666 1998-02-07  Hrvoje Niksic  <hniksic@srce.hr>
3667
3668         * http.c (base64_encode_line): New argument LENGTH.
3669         (BASIC_AUTHENTICATION_ENCODE): Use it.
3670         (BASIC_AUTHENTICATION_ENCODE): Take length of HEADER into account.
3671
3672         * main.c (main): Fixed fprintf() format mismatch.
3673
3674 1998-02-06  Hrvoje Niksic  <hniksic@srce.hr>
3675
3676         * version.c: Wget 1.5-b4 is released.
3677
3678 1998-02-03  Simon Josefsson  <jas@pdc.kth.se>
3679
3680         * host.c: use sockaddr_in instead of addr_in.
3681
3682 1998-02-04  Hrvoje Niksic  <hniksic@srce.hr>
3683
3684         * init.c (cleanup): Use it.
3685
3686         * recur.c (recursive_cleanup): New function.
3687
3688         * retr.c (retrieve_from_file): Ditto.
3689
3690         * main.c (main): Use it.
3691
3692         * recur.c (recursive_reset): New function.
3693
3694         * retr.c (retrieve_from_file): Ditto.
3695
3696         * main.c (main): Simplify call to recursive_retrieve().
3697
3698         * recur.c (recursive_retrieve): Removed FLAGS argument.
3699
3700         * http.c (gethttp): Changed call to iwrite().
3701
3702 1998-02-03  Hrvoje Niksic  <hniksic@srce.hr>
3703
3704         * url.c (get_urls_html): Ditto.
3705         (free_urlpos): Ditto.
3706         (mkstruct): Ditto.
3707         (construct): Ditto.
3708
3709         * retr.c (retrieve_url): Move declaration of local variables to
3710         smaller scope.
3711
3712         * url.c (urlproto): Use it.
3713         (parseurl): Ditto.
3714         (str_url): Ditto.
3715         (get_urls_html): Ditto.
3716
3717         * utils.h (ARRAY_SIZE): New macro.
3718
3719         * url.c (proto): Moved from url.h.
3720
3721         * url.h (URL_CLEANSE): Reformatted.
3722         (USE_PROXY_P): Renamed from USE_PROXY.
3723
3724         * ftp-basic.c: Adjust to the new interface of iwrite().
3725
3726         * ftp-basic.c (ftp_port): Use alloca().
3727
3728 1998-02-03  Hrvoje Niksic  <hniksic@srce.hr>
3729
3730         * version.c: Wget 1.5-b3 is released.
3731
3732         * host.c (ftp_getaddress): Don't print to stderr directly.
3733
3734         * init.c (setbytes): Support `g' for gigabytes.
3735         (cmdtype): New specification CTIME.
3736         (setval): Use it with settime().
3737         (commands): Use it for WAIT and TIMEOUT.
3738
3739 1998-02-02  Hrvoje Niksic  <hniksic@srce.hr>
3740
3741         * http.c (BASIC_AUTHENTICATION_ENCODE): New macro.
3742         (gethttp): Use it.
3743
3744         * utils.c (unique_name_1): Moved from url.c.
3745         (unique_name): Ditto.
3746
3747         * url.c (url_filename): Ditto.
3748
3749         * log.c (redirect_output): Changed call to unique_name().
3750
3751         * url.c (unique_name_1): Renamed from unique_name().
3752         (unique_name): Changed interface.
3753
3754         * init.c (enum cmdid): Moved from init.h.
3755         (cmdtype): Ditto.
3756         (struct cmd): Ditto.
3757
3758         * main.c (main): Use it.
3759         (main): Moved `--backups' to not have a short option.
3760
3761         * options.h (struct options): New member BACKGROUND.
3762
3763         * main.c (print_help): Rearranged.
3764         (main): New long options for -n* short options: --no-directories,
3765         --no-host-directories, --non-verbose, --no-host-lookup and
3766         --dont-remove-listing.
3767
3768 1998-02-01  Hrvoje Niksic  <hniksic@srce.hr>
3769
3770         * main.c (main): Use log_close().
3771
3772         * log.c: New variable LOGFP.
3773         (vlogmsg): Use it.
3774         (redirect_output): Don't open /dev/null; set LOGFP to stdin
3775         instead.
3776         (log_close): New function.
3777
3778         * options.h (struct options): Removed LFILE.
3779
3780         * log.c (log_enable): Removed.
3781
3782         * main.c (main): Use it.
3783
3784         * log.c (log_init): New function.
3785
3786         * url.c (get_urls_html): Removed needless assignment to BASE.
3787
3788         * host.c (add_hlist): Don't set CMP needlessly.
3789
3790         * utils.c (match_backwards): Ditto.
3791         (in_acclist): Ditto.
3792
3793         * url.c (findurl): Ditto.
3794
3795         * netrc.c (parse_netrc): Ditto.
3796
3797         * log.c (log_dump): Ditto.
3798
3799         * html.c (html_quote_string): Ditto.
3800
3801         * ftp-basic.c (ftp_request): Made static.
3802
3803         * connect.c: Made global variables static.
3804
3805         * url.c (construct): Ditto.
3806
3807         * init.c (init_path): Avoid assignment inside `if'-condition.
3808
3809         * ftp.c: Don't include in.h or winsock.h.
3810
3811         * ftp.c (ftp_loop): Use SZ.
3812
3813         * connect.c (bindport): Cast &addrlen to int *.
3814         (conaddr): Ditto.
3815
3816         * init.c (initialize): Don't use SYSTEM_WGETRC unconditionally.
3817
3818 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
3819
3820         * ftp.c (getftp): Initialize opt.ftp_pass here.
3821         (ftp_retrieve_dirs): Use alloca().
3822
3823         * init.c (defaults): Don't initialize opt.ftp_pass.
3824
3825         * sysdep.h (S_ISLNK): Declare for OS/2; ditto for lstat.
3826         From Ivan F. Martinez <ivanfm@ecodigit.com.br>.
3827
3828 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
3829
3830         * recur.c (parse_robots): Check for comments more correctly.
3831
3832         * host.c (ftp_getaddress): Use STRDUP_ALLOCA.
3833         (ftp_getaddress): Add diagnostics when reverse-lookup yields only
3834         hostname.
3835
3836 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
3837
3838         * version.c: Wget 1.5-b2 is released.
3839
3840         * netrc.c (NETRC_FILE_NAME): Moved from netrc.h.
3841
3842         * utils.c (proclist): Pass FNM_PATHNAME to fnmatch().
3843
3844         * ftp-basic.c (ftp_pasv): Avoid unnecessary casting to unsigned
3845         char.
3846
3847         * log.c: Don't attempt to hide arguments from ansi2knr.
3848
3849         * cmpt.c: Synched strptime() and mktime() with glibc-2.0.6.
3850
3851         * ansi2knr.c: Use a later version, from fileutils-3.16l alpha.
3852
3853         * ftp.c (getftp): Ditto.
3854
3855         * http.c (gethttp): Use it.
3856
3857         * retr.c (get_contents): New argument EXPECTED; pass it to
3858         show_progress().
3859         (show_progress): New argument EXPECTED; use it to display
3860         percentages.
3861
3862         * init.c (setval): Ditto.
3863
3864         * http.c (gethttp): Ditto.
3865         (http_loop): Ditto.
3866
3867         * ftp.c (getftp): Ditto.
3868         (ftp_loop_internal): Ditto.
3869
3870         * ftp-ls.c (ftp_parse_unix_ls): Use abort() instead of assert(0).
3871
3872         * sysdep.h (CLOSE): Simplify; use DEBUGP.
3873
3874         * netrc.c (search_netrc): Use alloca().
3875
3876         * init.c (defaults): Initialize no_flush.
3877
3878         * log.c (vlogmsg): Don't flush if no_flush.
3879
3880         * options.h (struct options): New variable no_flush.
3881
3882         * main.c (main): Don't play games with buffering.
3883
3884         * log.c (vlogmsg): Flush the output after every message.
3885
3886 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
3887
3888         * init.c (parse_line): Ditto.
3889
3890         * url.c (get_urls_html): Ditto.
3891
3892         * main.c (main): Don't cast to unsigned char.
3893
3894         * init.c (run_wgetrc): Don't cast to unsigned char.
3895         (parse_line): Accept char instead of unsigned char.
3896
3897         * html.c (htmlfindurl): Use char instead of unsigned char.
3898
3899         * all: Use them.
3900
3901         * sysdep.h: Add wrappers to ctype macros to make them
3902         eight-bit-clean:
3903
3904 1998-01-30  Hrvoje Niksic  <hniksic@srce.hr>
3905
3906         * html.c (htmlfindurl): Download <img lowsrc=...>
3907
3908         * main.c (main): Ignore SIGPIPE.
3909
3910         * connect.c (select_fd): New argument WRITEP.
3911         (iwrite): Call select_fd().
3912
3913 1997-02-27  Fila Kolodny <fila@ibi.com>
3914
3915         * ftp.c (ftp_retrieve_list): If retrieving symlink and the proper
3916         one already exists, just skip it.
3917
3918 1998-01-30  Hrvoje Niksic  <hniksic@srce.hr>
3919
3920         * http.c (gethttp): Cosmetic changes.
3921
3922         * http.c (check_end): Allow `+D...' instead of `GMT'.
3923         From Fabrizio Pollastri <pollastri@cstv.to.cnr.it>.
3924
3925         * url.c (process_ftp_type): New function.
3926         (parseurl): Use it.
3927
3928         * connect.c (iwrite): Allow writing in a few chunks.
3929         (bindport): Made SRV static, so addr can point to it.
3930         (select_fd): Removed HPUX kludge.
3931
3932         * host.c (free_hlist): Incorporated into clean_hosts().
3933
3934 1998-01-29  Hrvoje Niksic  <hniksic@srce.hr>
3935
3936         * host.c (hlist): Made static.
3937         (search_address): Cosmetic change.
3938
3939 1998-01-29  Hrvoje Niksic  <hniksic@srce.hr>
3940
3941         * version.c: Wget v1.5-b1 is released.
3942
3943         * http.c (hgetlen): Use sizeof() to get the header length.
3944         (hgetrange): Ditto.
3945         (hgettype): Ditto.
3946         (hgetlocation): Ditto.
3947         (hgetmodified): Ditto.
3948         (haccepts_none): Ditto.
3949
3950         * main.c (main): Updated `--version' and `--help' output, as per
3951         Francois Pinard's suggestions.
3952
3953         * main.c: Include locale.h; call setlocale(), bindtextdomain() and 
3954         textdomain().
3955
3956         * config.h.in: Define stubs for I18N3.
3957
3958         * wget.h: Include libintl.h.
3959
3960 1998-01-28  Hrvoje Niksic  <hniksic@srce.hr>
3961
3962         * url.c (mkstruct): Check for opt.cut_dirs.
3963         (mkstruct): alloca()-te more, xmalloc() less.
3964
3965         * utils.c (load_file): Check for ferror().
3966
3967         * url.c (get_urls_file): Close only the files we opened.
3968         (get_urls_html): Ditto.
3969         (count_slashes): New function.
3970
3971         * http.h: Removed.
3972
3973         * http.c (gethttp): Respect username and password provided by
3974         proxy URL.
3975         (base64_encode_line): Write into an existing buffer instead of
3976         malloc-ing a new one.
3977         (struct http_stat): Moved from http.h
3978
3979         * retr.c (retrieve_url): Free SUF.
3980
3981         * all: Removed lots of unnecessary .h dependencies.
3982
3983         * html.c (global_state): Made static.
3984
3985         * utils.h (ALLOCA_ARRAY): New macro.
3986
3987         * main.c (main): New option `--cut-dirs'.
3988
3989         * url.c (construct): Use alloca() for T.
3990
3991         * utils.c (mkdirhier): Use STRDUP_ALLOCA.
3992
3993         * host.c (_host_t): Moved from host.h.
3994         (struct host): Renamed from _host_t.
3995         (store_hostaddress): Use STRDUP_ALLOCA for INET_S.
3996         (realhost): Ditto.
3997
3998         * host.h: Don't include url.h.
3999
4000         * ftp.c (LIST_FILENAME): Moved from ftp.h.
4001
4002         * init.c (DEFAULT_FTP_ACCT): Moved from ftp.h.
4003
4004         * main.c (main): Enable log if the output goes to a TTY.
4005
4006         * connect.h: Removed unused constant `BACKLOG'.
4007
4008         * config.h.in: Check for isatty().
4009
4010         * Makefile.in (LINK): Use CFLAGS when linking.
4011
4012 1998-01-27  Hrvoje Niksic  <hniksic@srce.hr>
4013
4014         * mswindows.c (ws_hangup): Use redirect_output().
4015
4016         * main.c (redirect_output_signal): New function; use
4017         redirect_output().
4018
4019         * log.c (redirect_output): New function, based on hangup(), which
4020         is deleted.
4021
4022         * log.c (vlogmsg): New function.
4023
4024         * wget.h (DEBUGP): Use debug_logmsg().
4025
4026         * main.c (hangup): Use it.
4027
4028         * log.c (log_dump): New function.
4029
4030         * utils.h (DO_REALLOC): Use `long' for various sizes.
4031
4032         * http.c (hskip_lws): Use `while', for clarity.
4033         (HTTP_DYNAMIC_LINE_BUFFER): New constant.
4034         (fetch_next_header): Use it instead of DYNAMIC_LINE_BUFFER.
4035
4036         * ftp-basic.c (FTP_DYNAMIC_LINE_BUFFER): New constant.
4037         (ftp_response): Use it instead of DYNAMIC_LINE_BUFFER.
4038
4039         * utils.c (DYNAMIC_LINE_BUFFER): Moved from utils.c.
4040         (LEGIBLE_SEPARATOR): Ditto.
4041         (FILE_BUFFER_SIZE): Ditto.
4042
4043         * retr.c (BUFFER_SIZE): Moved from retr.h.
4044
4045         * log.c: New file.
4046         (logmsg): Moved from utils.c.
4047         (debug_logmsg): New function.
4048
4049         * mswindows.h: Include it here.
4050
4051         * init.c: Ditto.
4052
4053         * utils.c: Don't include <windows.h>.
4054
4055 1998-01-25  Hrvoje Niksic  <hniksic@srce.hr>
4056
4057         * host.c (ftp_getaddress): Ditto.
4058
4059         * main.c (main): Use it.
4060
4061         * utils.h (STRDUP_ALLOCA): New macro.
4062
4063         * init.c: Prepend `wget: ' to error messages printed on stderr.
4064
4065         * utils.c (mkdirhier): Renamed from mymkdir.
4066         (touch): Renamed from my_touch.
4067         (pwd_cuserid): Renamed from my_cuserid().
4068
4069 1998-01-24  Andy Eskilsson  <andy.eskilsson@telelogic.se>
4070
4071         * utils.c (accdir): Process wildcards.
4072         (proclist): New function.
4073         (accdir): Use it to avoid code repetition.
4074
4075 1998-01-24  Hrvoje Niksic  <hniksic@srce.hr>
4076
4077         * recur.c (parse_robots): Respect opt.useragent; use alloca().
4078
4079         * http.c (gethttp): Construct useragent accordingly.
4080
4081         * version.c: Changed version string to numbers-only.
4082
4083         * main.c (print_help): List all the options.
4084
4085         * mswindows.c (windows_main_junk): Initialize argv0 here.
4086
4087 1998-01-24  Karl Heuer  <kwzh@gnu.org>
4088
4089         * netrc.c (search_netrc): Initialize `l' only after processing
4090         netrc.
4091
4092         * main.c (main): Don't trap SIGHUP if it's being ignored.
4093
4094 1998-01-24  Hrvoje Niksic  <hniksic@srce.hr>
4095
4096         * all: Use logmsg().
4097
4098         * utils.c (time_str): Moved from retr.c.
4099         (logmsg): New function.
4100         (logmsg_noflush): Ditto.
4101
4102         * rbuf.c: New file, moved buf_* functions here.
4103
4104         * ftp.c (ftp_expected_bytes): Moved from ftp-basic.c.
4105
4106         * ftp-basic.c (ftp_rest): Use prnum().
4107
4108         * ftp-basic.c: Ditto.
4109
4110         * ftp.c: Use the new reading functions and macros.
4111
4112         * retr.c (buf_initialize): New function.
4113         (buf_initialized_p): Ditto.
4114         (buf_uninitialize): Ditto.
4115         (buf_fd): Ditto.
4116
4117         * http.c (fetch_next_header): Use the BUF_READCHAR macro for
4118         efficiency.
4119         (gethttp): Use alloca() where appropriate.
4120
4121         * retr.c (buf_readchar): Use it.
4122         (buf_peek): Use rstreams.
4123
4124         * retr.h (BUF_READCHAR): New macro.
4125
4126         * init.c (home_dir): Rewritten for clarity.
4127         (init_path): Ditto.
4128
4129         * mswindows.c (ws_backgnd): Made static.
4130         (read_registry): Ditto.
4131         (ws_cleanup): Ditto.
4132         (ws_handler): Ditto.
4133
4134 1998-01-23  Hrvoje Niksic  <hniksic@srce.hr>
4135
4136         * alloca.c: New file.
4137
4138         * Makefile.in (ALLOCA): Define.
4139
4140         * mswindows.c (ws_help): Constify.
4141         (ws_help): Use alloca.
4142
4143         * mswindows.c: Reformat.
4144
4145         * all: Added _(...) annotations for I18N snarfing and translation.
4146
4147         * host.c (ftp_getaddress): Nuke SYSINFO.
4148         (ftp_getaddress): Don't use getdomainname().
4149         (ftp_getaddress): Use uname(), where available.
4150
4151         * http.c (gethttp): Protect a stray fprintf().
4152
4153         * init.c (settime): New function.
4154         (setval): Treat WAIT specially, allowing suffixes like `m' for
4155         minutes, etc.
4156
4157 1998-01-21  Hrvoje Niksic  <hniksic@srce.hr>
4158
4159         * url.c (get_urls_html): Use alloca() for TEMP.
4160
4161 1998-01-21  Jordan Mendelson  <jordy@wserv.com>
4162
4163         * url.c (rotate_backups): New function.
4164
4165         * http.c (gethttp): Ditto.
4166
4167         * ftp.c (getftp): Rotate backups.
4168
4169 1997-12-18  Hrvoje Niksic  <hniksic@srce.hr>
4170
4171         * all: Renamed nmalloc(), nrealloc() and nstrdup() to xmalloc(),
4172         xrealloc() and xstrdup().  Use the new functions.
4173
4174         * url.c (decode_string): Made static.
4175         (has_proto): Ditto.
4176         (parse_dir): Ditto.
4177         (parse_uname): Ditto.
4178         (mkstruct): Ditto.
4179         (construct): Ditto.
4180         (construct_relative): Ditto.
4181
4182         * retr.c (show_progress): Made static.
4183
4184         * recur.c (robots_url): Made static.
4185         (retrieve_robots): Ditto.
4186         (parse_robots): Ditto.
4187         (robots_match): Ditto.
4188
4189         * main.h: Removed.
4190
4191         * main.c (printhelp): Made static.
4192         (hangup): Ditto.
4193
4194         * init.c (comind): Made static.
4195         (defaults): Ditto.
4196         (init_path): Ditto.
4197         (run_wgetrc): Ditto.
4198         (onoff): Ditto.
4199         (setonoff): Ditto.
4200         (setnum): Ditto.
4201         (myatoi): Ditto.
4202         (getperms): Ditto.
4203         (setbytes): Ditto.
4204
4205         * http.c (fetch_next_header): Made static.
4206         (hparsestatline): Ditto.
4207         (hskip_lws): Ditto.
4208         (hgetlen): Ditto.
4209         (hgetrange): Ditto.
4210         (hgettype): Ditto.
4211         (hgetlocation): Ditto.
4212         (hgetmodified): Ditto.
4213         (haccepts_none): Ditto.
4214         (gethttp): Ditto.
4215         (base64_encode_line): Ditto.
4216         (mktime_from_utc): Ditto.
4217         (http_atotm): Ditto.
4218
4219         * html.c (idmatch): Made static.
4220
4221         * host.c (search_host): Made static.
4222         (search_address): Ditto.
4223         (free_hlist): Ditto.
4224
4225         * ftp.c (getftp): Made static.
4226         (ftp_loop_internal): Ditto.
4227         (ftp_get_listing): Ditto.
4228         (ftp_retrieve_list): Ditto.
4229         (ftp_retrieve_dirs): Ditto.
4230         (ftp_retrieve_glob): Ditto.
4231         (freefileinfo): Ditto.
4232         (delelement): Ditto.
4233
4234         * ftp-ls.c (symperms): Made static.
4235         (ftp_parse_unix_ls): Ditto.
4236
4237         * connect.c (select_fd): Made static.
4238
4239         * utils.c (xmalloc): Renamed from nmalloc.
4240         (xrealloc): Renamed from nrealloc.
4241         (xstrdup): Renamed from nstrdup.
4242
4243         * getopt.c (exchange): Use alloca.
4244
4245         * mswindows.c (mycuserid): Use strncpy.
4246
4247         * New files mswindows.c, mswindows.h, sysdep.h.  winjunk.c,
4248         systhings.h, windecl.h and winjunk.h removed.
4249
4250         * mswindows.c (sleep): New function.
4251
4252         * utils.c: Include <windows.h> under Windows.
4253
4254 1997-06-12  Darko Budor  <dbudor@zesoi.fer.hr>
4255
4256         * url.h (URL_UNSAFE): Change default under Windows.
4257
4258         * retr.c (retrieve_from_file): Respect opt.delete_after.
4259
4260         * main.c (main): Call ws_help on Windows.
4261
4262         * winjunk.c (windows_main_junk): New function.
4263
4264         * main.c (main): Junk-process argv[0].
4265
4266         * http.c (mktime_from_utc): Return -1 if mktime failed.
4267
4268         * http.c (http_loop): Ditto.
4269
4270         * ftp.c (ftp_loop_internal): Change title on Windows when using a
4271         new URL.
4272
4273         * winjunk.c (getdomainname): Lots of functions.
4274
4275 1997-06-12  Hrvoje Niksic  <hniksic@srce.hr>
4276
4277         * cmpt.c (strptime_internal): Handle years more correctly for
4278         `%y'.
4279
4280 1997-06-09  Mike Thomas <mthomas@reality.ctron.com>
4281
4282         * http.c (gethttp): Allocate enough space for
4283         `Proxy-Authorization' header.
4284
4285 1997-05-10  Hrvoje Niksic  <hniksic@srce.hr>
4286
4287         * version.c: Wget/1.4.5 is released.
4288
4289 1997-05-10  Hrvoje Niksic  <hniksic@srce.hr>
4290
4291         * retr.c (get_contents): Check return value of fwrite more
4292         carefully.
4293
4294 1997-03-30  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
4295
4296         * cmpt.c (strptime_internal) [case 'Y']: Always subtract 1900 from
4297         year, regardless of century.
4298
4299 1997-03-30  Hrvoje Niksic  <hniksic@srce.hr>
4300
4301         * utils.c (isfile): Use `lstat' instead of `stat'.
4302
4303 1997-03-29  Hrvoje Niksic  <hniksic@srce.hr>
4304
4305         * utils.c (numdigit): Use explicit test.
4306
4307 1997-03-21  Hrvoje Niksic  <hniksic@srce.hr>
4308
4309         * http.c (http_loop): Always use `url_filename' to get u->local.
4310
4311 1997-03-20  Hrvoje Niksic  <hniksic@srce.hr>
4312
4313         * url.c: Recognize https.
4314
4315 1997-03-13  Hrvoje Niksic  <hniksic@srce.hr>
4316
4317         * recur.c (recursive_retrieve): Lowercase just the host name.
4318
4319 1997-03-09  Hrvoje Niksic  <hniksic@srce.hr>
4320
4321         * url.c (get_urls_file): Use the correct test.
4322         (get_urls_html): Ditto.
4323
4324 1997-03-07  Hrvoje Niksic  <hniksic@srce.hr>
4325
4326         * connect.c: Reverted addrlen to int.
4327
4328         * init.c (parse_line): Check for -1 instead of NONE.
4329
4330         * version.c: Changed version to 1.4.5.
4331
4332 1997-02-17  Hrvoje Niksic  <hniksic@srce.hr>
4333
4334         * init.c: New option netrc.
4335         (initialize): Don't parse .netrc.
4336
4337         * cmpt.c (recursive): Return rp.
4338         (strptime_internal): Match the long strings first, the abbreviated
4339         second.
4340
4341 1997-02-16  Hrvoje Niksic  <hniksic@srce.hr>
4342
4343         * http.c (check_end): New function.
4344         (http_atotm): Use it.
4345  
4346 1997-02-13  gilles Cedoc  <gilles@cedocar.fr>
4347
4348         * http.c (gethttp): Use them.
4349
4350         * init.c: New options proxy_user and proxy_passwd.
4351
4352 1997-02-14  Hrvoje Niksic  <hniksic@srce.hr>
4353
4354         * ftp.c (ftp_retrieve_list): Create links even if not relative.
4355
4356 1997-02-10  Hrvoje Niksic  <hniksic@srce.hr>
4357
4358         * recur.c (recursive_retrieve): Lowercase the host name, if the
4359         URL is not "optimized".
4360
4361         * host.c (realhost): Return l->hostname, even if it matches with
4362         host.
4363
4364 1997-02-10  Marin Purgar  <pmc@asgard.hr>
4365
4366         * connect.c: Make addrlen size_t instead of int.
4367         (conaddr): Ditto.
4368
4369 1997-02-09  Gregor Hoffleit  <flight@mathi.uni-heidelberg.DE>
4370
4371         * systhings.h: Define S_ISLNK on NeXT too.
4372
4373 1997-02-09  Hrvoje Niksic  <hniksic@srce.hr>
4374
4375         * version.c: Released 1.4.3.
4376
4377         * url.c: Futher update to list of protostrings.
4378         (skip_proto): Skip `//' correctly for FTP and HTTP.
4379
4380         * url.c (get_urls_html): Handle bogus `http:' things a little
4381         different.
4382
4383         * main.c (main): Removed `follow-ftp' from `f'.
4384         (main): Dumped the `prefix-files' and `file-prefix' options and
4385         features; old and bogus.
4386         (main): Exit on failed setval() in `-e'.
4387
4388         * http.c (fetch_next_header): Use it to detect header continuation
4389         correctly.
4390
4391         * retr.c (buf_peek): New function.
4392
4393 1997-02-08  Hrvoje Niksic  <hniksic@srce.hr>
4394
4395         * wget.h: Include time.h and stuff.
4396
4397 1997-02-08  Roger Beeman  <beeman@cisco.com>
4398
4399         * ftp.c: Include <time.h>
4400
4401 1997-02-07  Hrvoje Niksic  <hniksic@srce.hr>
4402
4403         * url.c (findurl): Would read over buffer limits.
4404
4405 1997-02-06  Hrvoje Niksic  <hniksic@srce.hr>
4406
4407         * ftp-ls.c (ftp_parse_unix_ls): Allow spaces in file names.
4408
4409 1997-02-05  Hrvoje Niksic  <hniksic@srce.hr>
4410
4411         * http.c (http_atotm): Initialize tm.is_dst.
4412
4413 1997-02-02  Hrvoje Niksic  <hniksic@srce.hr>
4414
4415         * http.c (gethttp): Don't print the number of retrieved headers.
4416
4417         * main.c (main): New option `--no-clobber', alias for `-nc'.
4418
4419         * url.c: Recognize `https://'.
4420
4421 1997-02-01  Hrvoje Niksic  <hniksic@srce.hr>
4422
4423         * host.c (herrmsg): Don't use h_errno.
4424
4425 1997-01-30  Hrvoje Niksic  <hniksic@srce.hr>
4426
4427         * host.c (accept_domain): Use it.
4428
4429         * main.c (main): New option `--exclude-domains'.
4430
4431         * retr.c (retrieve_url): Use it.
4432         (retrieve_url): Bail out when an URL is redirecting to itself.
4433
4434         * url.c (url_equal): New function.
4435
4436 1997-01-29  Hrvoje Niksic  <hniksic@srce.hr>
4437
4438         * connect.c: Include arpa/inet.h instead of arpa/nameser.h.
4439
4440         * http.c (mk_utc_time): New function.
4441         (http_atotm): Use it; handle time zones correctly.
4442
4443 1997-01-28  Hrvoje Niksic  <hniksic@srce.hr>
4444
4445         * http.c: Ditto.
4446
4447         * ftp-basic.c: Use it instead of WRITE.
4448
4449         * connect.c (iwrite): New function.
4450
4451 1997-01-27  Hrvoje Niksic  <hniksic@srce.hr>
4452
4453         * cmpt.c (mktime): New function.
4454
4455         * netrc.c: Include <sys/types.h>.
4456
4457         * main.c (main): Wouldn't recognize --spider.
4458
4459         * retr.c (rate): Use `B', `KB' and `MB'.
4460         (reset_timer,elapsed_time): Moved from utils.c.
4461
4462         * ftp.c (ftp_retrieve_list): Ditto.
4463
4464         * http.c (http_loop): Don't touch the file if opt.dfp.
4465
4466 1997-01-24  Hrvoje Niksic  <hniksic@srce.hr>
4467
4468         * cmpt.c: New file.
4469
4470         * ftp.c (ftp_retrieve_glob): New argument semantics.
4471         (ftp_retrieve_dirs): Use it.
4472         (ftp_loop): Ditto.
4473
4474         * html.c (htmlfindurl): Recognize `'' as the quote char.
4475
4476 1997-01-23  Hrvoje Niksic  <hniksic@srce.hr>
4477
4478         * ftp.c (ftp_loop_internal): Use it.
4479
4480         * utils.c (remove_link): New function.
4481
4482 1997-01-22  Hrvoje Niksic  <hniksic@srce.hr>
4483
4484         * retr.c (retrieve_url): Require STRICT redirection URL.
4485
4486         * url.c (parseurl): New argument STRICT.
4487
4488         * http.c (hparsestatline): Be a little-bit less strict about
4489         status line format.
4490
4491 1997-01-21  Hrvoje Niksic  <hniksic@srce.hr>
4492
4493         * http.c (gethttp): Use it.
4494
4495         * main.c (main): Don't use '<digit>' as options.
4496
4497         * init.c: New option ignore_length.
4498
4499         * http.c (gethttp): Ditto.
4500         (http_loop): Check for redirection without Location:.
4501         (gethttp): Don't print Length unless RETROKF.
4502
4503         * ftp.c (getftp): Use it.
4504
4505         * url.c (mkalldirs): New function.
4506
4507         * utils.c (mymkdir): Don't check for existing non-directory.
4508
4509         * url.c (mkstruct): Don't create the directory.
4510
4511 1997-01-20  Hrvoje Niksic  <hniksic@srce.hr>
4512
4513         * init.c (setval): Removed NO_RECURSION checks.
4514
4515 1997-01-19  Hrvoje Niksic  <hniksic@srce.hr>
4516
4517         * version.c: "Released" 1.4.3-pre2.
4518
4519         * recur.c (recursive_retrieve): Bypass host checking only if URL
4520         is ftp AND parent URL is not ftp.
4521
4522         * ftp-basic.c (ftp_request): Print out Turtle Power.
4523
4524         * ftp.c (ftp_loop): Call ftp_retrieve_glob with 0 if there's no
4525         wildcard.
4526         (ftp_retrieve_glob): Call ftp_loop_internal even on empty list, if
4527         not glob.
4528
4529         * http.c (gethttp): Be a little bit smarter about status codes.
4530
4531         * recur.c (recursive_retrieve): Always reset opt.recursive when
4532         dealing with FTP.
4533
4534 1997-01-18  Hrvoje Niksic  <hniksic@srce.hr>
4535
4536         * retr.c (retrieve_url): New variable location_changed; use it for
4537         tests instead of mynewloc.
4538         (retrieve_url): Allow heuristic adding of html.
4539
4540         * url.c (url_filename): Don't use the `%' in Windows file names.
4541
4542         * http.c (http_loop): Always time-stamp the local file.
4543
4544         * http.c (http_loop): Ditto.
4545
4546         * ftp.c (ftp_retrieve_list): Use it.
4547
4548         * utils.c (my_touch): New function.
4549
4550         * ftp.c (ftp_retrieve_list): Use #ifdef HAVE_STRUCT_UTIMBUF
4551         instead of #ifndef NeXT.
4552
4553         * utils.c (strptime): New version, by Ulrich Drepper.
4554
4555 1997-01-17  Hrvoje Niksic  <hniksic@srce.hr>
4556
4557         * http.c (haccepts_none): Renamed from `haccepts_bytes'.
4558         (gethttp): If haccepts_none(), disable ACCEPTRANGES.
4559         (http_loop): Would remove ACCEPTRANGES.
4560
4561         * ftp.c (getftp): Call ftp_list with NULL.
4562
4563 1997-01-15  Hrvoje Niksic  <hniksic@srce.hr>
4564
4565         * html.c (ftp_index): Don't print minutes and seconds if we don't
4566         know them; beautify the output.
4567
4568         * ftp.c (getftp): Don't close the socket on FTPNSFOD.
4569
4570 1997-01-14  Hrvoje Niksic  <hniksic@srce.hr>
4571
4572         * utils.c (strptime): New function.
4573         (strptime): Don't use get_alt_number.
4574         (strptime): Don't use locale.
4575         (match_string): Made it a function.
4576
4577 1997-01-12  Hrvoje Niksic  <hniksic@srce.hr>
4578
4579         * http.c (http_atotm): New function.
4580         (http_loop): Use it.
4581
4582         * atotm.c: Removed from the distribution.
4583
4584         * http.c (base64_encode_line): Rewrite.
4585
4586 1997-01-09  Hrvoje Niksic  <hniksic@srce.hr>
4587
4588         * ftp.c (getftp): Use ftp_expected_bytes; print size.
4589
4590         * ftp-basic.c (ftp_response): Use ftp_last_respline.
4591         (ftp_expected_bytes): New function.
4592
4593         * ftp.c (getftp): Print the unauthoritative file length.
4594
4595         * ftp-ls.c: Renamed from ftp-unix.c.
4596         (ftp_parse_ls): Moved from ftp.c.
4597         (ftp_parse_unix_ls): Recognize seconds in time spec.
4598         (ftp_parse_unix_ls): Recognize year-less dates of the previous
4599         year.
4600
4601 1997-01-08  Hrvoje Niksic  <hniksic@srce.hr>
4602
4603         * ftp-basic.c: Don't declare errno if #defined.
4604
4605         * host.c (ftp_getaddress): Check for sysinfo legally.
4606
4607 1997-01-08  Darko Budor  <dbudor@diana.zems.fer.hr>
4608
4609         * connect.c (iread): Use READ.
4610
4611 1996-12-23  Hrvoje Niksic  <hniksic@srce.hr>
4612
4613         * url.c: Recognize finger, rlogin, tn3270, mid and cid as valid
4614         schemes.
4615
4616 1996-12-22  Hrvoje Niksic  <hniksic@srce.hr>
4617
4618         * host.c (ftp_getaddress): Allow `.' in hostname.
4619
4620 1996-12-26  Darko Budor <dbudor@zems.fer.hr>
4621
4622         * wget.h: READ and WRITE macros for use instead of read and write
4623         on sockets, grep READ *.c, grep WRITE *.c
4624
4625         * wsstartup.c: new file - startup for winsock
4626
4627         * wsstartup.h: new file
4628
4629         * win32decl.h: new file - fixup for <errno.h> and winsock trouble
4630
4631         * configure.bat: Configure utility for MSVC
4632
4633         * src/Makefile.ms,config.h.ms: new files for use with MSVC 4.x
4634
4635 1996-12-22  Hrvoje Niksic  <hniksic@srce.hr>
4636
4637         * version.c: Released 1.4.3-pre.
4638
4639         * utils.c (prnum): Accept long.
4640         (legible): Use prnum().
4641
4642         * connect.c (make_connection): Accept port as short.
4643         (bindport): Ditto.
4644
4645         * http.c (gethttp): Use search_netrc.
4646
4647 1996-12-21  Hrvoje Niksic  <hniksic@srce.hr>
4648
4649         * ftp.c (getftp): Use search_netrc.
4650
4651         * netrc.c (free_netrc): New function.
4652
4653         * init.c (home_dir): New function.
4654
4655         * url.c (convert_links): Allow REL2ABS changes.
4656
4657 1996-12-21  Gordon Matzigkeit  <gord@gnu.ai.mit.edu>
4658
4659         * netrc.c: New file.
4660         (parse_netrc, maybe_add_to_list): New functions.
4661
4662 1996-12-17  Hrvoje Niksic  <hniksic@srce.hr>
4663
4664         * retr.c (retrieve_url): Reset opt.recursion before calling
4665         ftp_loop if it is reached through newloc.
4666
4667         * init.c (run_wgetrc): Print the wgetrc path too, when reporting
4668         error; don't use "Syntax error", since we don't know if it is
4669         really a syntax error.
4670
4671 1996-12-16  Hrvoje Niksic  <hniksic@srce.hr>
4672
4673         * utils.c (acceptable): Extract the filename part of the path.
4674
4675         * recur.c (recursive_retrieve): Call acceptable() with the right
4676         argument; would bug out on wildcards.
4677
4678         * init.c (parse_line): Likewise.
4679
4680         * html.c (htmlfindurl): Cast to char * when calling stuff.
4681
4682 1996-12-15  Hrvoje Niksic  <hniksic@srce.hr>
4683
4684         * ftp.c (getftp): Use ftp_pasv.
4685
4686         * ftp-basic.c (ftp_request): Accept NULL value.
4687         (ftp_pasv): New function.
4688
4689         * options.h (struct options): Add passive FTP option.
4690
4691 1996-12-15  Hrvoje Niksic  <hniksic@srce.hr>
4692
4693         * url.c (parseurl): Debug output.
4694
4695         * utils.c (path_simplify): New one, adapted from bash's
4696         canonicalize_pathname().
4697
4698 1996-12-14  Hrvoje Niksic  <hniksic@srce.hr>
4699
4700         * ftp.c (getftp): Don't discard the buffer.
4701
4702         * retr.c (get_contents): New parameter nobuf.
4703
4704 1996-12-13  Shawn McHorse  <riffraff@txdirect.net>
4705
4706         * html.c (htmlfindurl): Recognize <meta contents="d; URL=...".
4707
4708         * init.c (setval): Strip the trailing slashes on CVECDIR.
4709
4710 1996-12-13  Hrvoje Niksic  <hniksic@srce.hr>
4711
4712         * init.c: Make excludes and includes under CVECDIR instead of
4713         CVEC.
4714
4715 1996-12-13  Shawn McHorse  <riffraff@txdirect.net>
4716
4717         * url.c (get_urls_html): Skip "http:".
4718
4719 1996-12-13  Hrvoje Niksic  <hniksic@srce.hr>
4720
4721         * utils.c (strcasecmp): From glibc.
4722         (strncasecmp): Also.
4723         (strstr): Also.
4724
4725         * url.c: Added javascript: to the list of URLs prefixes.
4726
4727 1996-12-12  Shawn McHorse  <riffraff@txdirect.net>
4728
4729         * recur.c (retrieve_robots): Print the warning message only if
4730         verbose.
4731
4732 1996-12-12  Gregor Hoffleit  <flight@mathi.uni-heidelberg.DE>
4733
4734         * ftp.c (ftp_retrieve_list): Use NeXT old utime interface.
4735
4736 1996-12-12  Hrvoje Niksic  <hniksic@srce.hr>
4737
4738         * systhings.h: New file.
4739
4740         * ../configure.in: Check for utime.h
4741
4742         * ftp.c: Check whether we have unistd.h.
4743
4744 1996-11-27  Hrvoje Niksic  <hniksic@srce.hr>
4745
4746         * recur.c (recursive_retrieve): Send the canonical URL as referer.
4747         (recursive_retrieve): Call get_urls_html with the canonical URL.
4748
4749 1996-12-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4750
4751         * (configure.in, config.h.in, src/Makefile.in, src/*.[ch]): Add
4752         ansi2knr support for compilers which don't support ANSI style
4753         function prototypes and signatures.
4754
4755         * (aclocal.m4, src/ansi2knr.c, src/ansi2knr.1): New files.
4756
4757 1996-11-26  Hrvoje Niksic  <hniksic@srce.hr>
4758
4759         * url.c: Use it; Recognize paths ending with "." and ".." as
4760         directories.
4761         (url_filename): Append .n whenever file exists and could be a
4762         directory.
4763
4764         * url.h (ISDDOT): New macro.
4765
4766         * init.c (parse_line): Use unsigned char.
4767
4768         * url.c (get_urls_html): Cast to unsigned char * when calling
4769         htmlfindurl.
4770
4771         * html.c (htmlfindurl): Use unsigned char.
4772
4773         * version.c: Changed version to 1.4.3.
4774
4775 1996-11-25  Hrvoje Niksic  <hniksic@srce.hr>
4776
4777         * version.c: Released 1.4.2.
4778
4779         * ftp.c (getftp): Simplified assertion.
4780         (ftp_loop_internal): Remove symlink before downloading.
4781         (ftp_retrieve_list): Unlink the symlink name before attempting to
4782         create a symlink!
4783
4784         * options.h (struct options): Renamed print_server_response to
4785         server_response.
4786
4787         * ftp.c (rel_constr): Removed.
4788         (ftp_retrieve_list): Don't use it.
4789         (ftp_retrieve_list): Use opt.retr_symlinks.
4790
4791 1996-11-24  Hrvoje Niksic  <hniksic@srce.hr>
4792
4793         * main.c (main): New option retr_symlinks.
4794
4795         * url.c (convert_links): Print verbose message.
4796
4797 1996-11-24  Hrvoje Niksic  <hniksic@srce.hr>
4798
4799         * http.c (http_loop): Reset newloc in the beginning of function;
4800         would cause FMR in retrieve_url.
4801
4802 1996-11-23  Hrvoje Niksic  <hniksic@srce.hr>
4803
4804         * recur.c (convert_all_links): Find the URL of each HTML document,
4805         and feed it to get_urls_html; would bug out.
4806         (convert_all_links): Check for l2 instead of dl; removed dl.
4807
4808         * url.c (convert_links): Don't refer to freed newname.
4809
4810         * recur.c (recursive_retrieve): Add this_url to urls_downloaded.
4811
4812         * main.c (main): Print the OS_TYPE in the debug output, too.
4813
4814         * recur.c (recursive_retrieve): Check for opt.delete_after.
4815
4816         * main.c (main): New option delete-after.
4817
4818         * init.c (setval): Cleaned up.
4819
4820 1996-11-21  Hrvoje Niksic  <hniksic@srce.hr>
4821
4822         * Makefile.in (wget): Make `wget' the default target.
4823
4824         * ftp.c (ftp_loop_internal): Move noclobber checking out of the
4825         loop.
4826         (ftp_retrieve_list): Warn about non-matching sizes.
4827
4828         * http.c (http_loop): Made -nc non-dependent on opt.recursive.
4829
4830         * init.c (setnum): Renamed from setnuminf; New argument flags.
4831         (setval): Use it.
4832
4833         * main.c (main): Sorted the options.
4834         (main): New option --wait.
4835
4836 1996-11-21  Shawn McHorse  <riffraff@txdirect.net>
4837
4838         * html.c (htmlfindurl): Reset s->in_quote after getting out of
4839         quotes.
4840
4841 1996-11-20  Hrvoje Niksic  <hniksic@srce.hr>
4842
4843         * version.c: Changed version to 1.4.2.
4844
4845 1996-11-20  Hrvoje Niksic  <hniksic@srce.hr>
4846
4847         * version.c: Released 1.4.1.
4848
4849         * html.c (html_quote_string): New function.
4850         (ftp_index): Use it.
4851         (htmlfindurl): A more gentle ending debug message.
4852
4853         * ftp.c (ftp_loop): Check for opt.htmlify.
4854
4855         * init.c: New command htmlify.
4856
4857         * ftp.c (getftp): Nicer error messages, with `'-encapsulated
4858         strings.
4859         (ftp_loop): Print size of index.html.
4860
4861         * init.c (setval): Implement "styles".
4862
4863         * main.c (main): New option dotstyle.
4864
4865 1996-11-19  Hrvoje Niksic  <hniksic@srce.hr>
4866
4867         * ftp.c (getftp): Close the master socket in case of errors, after
4868         bindport().
4869
4870         * connect.c (bindport): Initialize msock to -1.
4871
4872         * ftp.c (getftp): Initialize dtsock to -1.
4873
4874         * connect.c (closeport): Don't close sock if sock == -1.
4875
4876 1996-11-18  Hrvoje Niksic  <hniksic@srce.hr>
4877
4878         * init.c (setnuminf): Nuked default value -- just leave unchanged.
4879         (setval): Don't send default values.
4880         (defaults): Use DEFAULT_TIMEOUT -- aaargh.
4881
4882         * options.h (struct options): Use long for dot_bytes.
4883
4884         * init.c (setquota): Renamed to setbytes.
4885         (setval): Use setbytes on DOTBYTES.
4886
4887 1996-11-17  Hrvoje Niksic  <hniksic@srce.hr>
4888
4889         * ftp.c (getftp): Initialize con->dltime.
4890
4891         * recur.c (recursive_retrieve): Use same_host instead of
4892         try_robots; simply load robots_txt whenever the host is changed.
4893         (recursive_retrieve): Free forbidden before calling parse_robots.
4894
4895 1996-11-16  Hrvoje Niksic  <hniksic@srce.hr>
4896
4897         * retr.c (show_progress): Use them.
4898
4899         * options.h (struct options): New options dot_bytes, dots_on_line
4900         and dot_spacing.
4901
4902 1996-11-16  Mark Boyns  <boyns@sdsu.edu>
4903
4904         * recur.c (recursive_retrieve): Retrieve directories regardless of
4905         acc/rej rules; check for empty u->file.
4906
4907 1996-11-14  Hrvoje Niksic  <hniksic@srce.hr>
4908
4909         * init.c (setval): Use it.
4910
4911         * utils.c (merge_vecs): New function.
4912
4913         * init.c (setval): Reset the list-type functions when encountering
4914         "".
4915
4916 1996-11-14  Shawn McHorse  <riffraff@txdirect.net>
4917
4918         * recur.c (recursive_retrieve): Use base_url instead of this_url
4919         for no_parent.
4920
4921 1996-11-14  Shawn McHorse  <riffraff@txdirect.net>
4922
4923         * html.c (htmlfindurl): Reset s->in_quote after exiting the quote.
4924
4925 1996-11-13  Hrvoje Niksic  <hniksic@srce.hr>
4926
4927         * utils.c (sepstring): Rewrote; don't use strtok.
4928
4929         * recur.c (recursive_retrieve): Enter assorted this_url to slist
4930         when running the first time.
4931         (retrieve_robots): Warn to ignore errors when robots are loaded.
4932
4933         * utils.c (load_file): Moved from url.c.
4934
4935         * http.c: Made static variables const too in h* functions.
4936
4937         * main.c (main): Renamed --continue-ftp to --continue.
4938
4939         * recur.c (recursive_retrieve): Use it.
4940
4941         * utils.c (frontcmp): New function.
4942
4943         * url.c (accdir): New function.
4944
4945         * html.c (htmlfindurl): Recognize <area href=...>.
4946
4947         * ftp.c (ftp_retrieve_dirs): Implemented opt.includes.
4948
4949         * init.c (setval): Free the existing opt.excludes and
4950         opt.includes, if available.
4951
4952         * main.c (main): New option -I.
4953
4954 1996-11-12  Hrvoje Niksic  <hniksic@srce.hr>
4955
4956         * ftp.c (ftp_retrieve_glob): Do not weed out directories.
4957
4958         * version.c: Changed version to 1.4.1.
4959
4960 1996-11-11  Hrvoje Niksic  <hniksic@srce.hr>
4961
4962         * version.c: Released 1.4.0.
4963
4964 1996-11-10  Hrvoje Niksic  <hniksic@srce.hr>
4965
4966         * main.c (main): Free com and val after parse_line.
4967         (printhelp): Reorder the listing.
4968
4969         * http.c: More robust header parsing.
4970
4971         * http.c: Allow any number of spaces, or no spaces, precede ':'.
4972         (hskip_lws): New function.
4973         (haccepts_bytes): New function.
4974         (gethttp): Use it.
4975
4976         * init.c (setval): Check header sanity.
4977         (setval): Allow resetting of headers.
4978
4979 1996-11-10  Hrvoje Niksic  <hniksic@srce.hr>
4980
4981         * http.c (http_loop): Don't use has_wildcards.
4982
4983         * http.c (gethttp): Free all_headers -- would leak.
4984
4985         * recur.c (recursive_retrieve): Initialize depth to 1 instead of
4986         0 -- this fixes a long-standing bug in -rl.
4987
4988 1996-11-09  Hrvoje Niksic  <hniksic@srce.hr>
4989
4990         * ftp.c: Use -1 as "impossible" value for con->fd.
4991
4992         * url.h (URL_SEPARATOR): Don't treat `*' and `+' as separators.
4993
4994         * init.c (parse_line): Use isalpha.
4995
4996         * ftp-unix.c: Use HAVE_UNISTD_H.
4997
4998         * mtch.c (has_wildcards): Don't match \.
4999
5000         * http.c (http_loop): Warn on HTTP wildcard usage.
5001
5002 1996-11-08  Hrvoje Niksic  <hniksic@srce.hr>
5003
5004         * url.c (url_filename): Do not create numbered suffixes if
5005         opt.noclobber -- would bug out on -nc.
5006
5007 1996-11-07  Hrvoje Niksic  <hniksic@srce.hr>
5008
5009         * recur.c (parse_robots): Don't chuck out the commands without
5010         arguments (`Disallow:<empty>' didn't work).
5011         (parse_robots): Compare versions lowercase.
5012         (parse_robots): Match on base_version, not version_string!
5013         (parse_robots): Handle comments properly.
5014         (parse_robots): Match versions in a sane way.
5015
5016         * init.c: Print nicer error messages.
5017
5018         * version.c: Changed version to 1.4.0.
5019
5020 1996-11-06  Hrvoje Niksic  <hniksic@srce.hr>
5021
5022         * version.c: Released 1.4.0-test2.
5023
5024         * init.c (run_wgetrc): Close fp.
5025
5026         * ftp.c (ftp_retrieve_dirs): Allocate the correct length for
5027         u->dir.
5028
5029 1996-11-06  Hrvoje Niksic  <hniksic@srce.hr>
5030
5031         * init.c (setquota): Allow inf as quota specification.
5032
5033 1996-11-05  Hrvoje Niksic  <hniksic@srce.hr>
5034
5035         * ftp.c (ftp_retrieve_dirs): Return QUOTEXC if quota exceeded.
5036         (ftp_retrieve_glob): Return QUOTEXC on quota exceeded.
5037
5038         * main.c (main): Check for quota by comparison with downloaded
5039         stuff, not from status.
5040
5041         * connect.c (select_fd): Should compile on HPUX without warnings now.
5042
5043         * ftp.c (ftp_get_listing): Check whether ftp_loop_internal
5044         returned RETROK.
5045
5046 1996-11-04  Hrvoje Niksic  <hniksic@srce.hr>
5047
5048         * ftp.c (ftp_retrieve_glob): Print the pattern nicely.
5049         (getftp): Return FTPRETRINT on control connection error.
5050
5051         * html.c (htmlfindurl): Recognize <embed src=...> and
5052         <bgsound src=...>.
5053         (ftp_index): Handle username and password correctly.
5054
5055         * main.c (main): Made `-np' a synonim for --no-parent.
5056
5057 1996-11-02  Hrvoje Niksic  <hniksic@srce.hr>
5058
5059         * ftp.c (ftp_loop): Check for opt.ftp_glob too before calling
5060         ftp_retrieve_glob.
5061
5062         * version.c: Changed version to 1.4.0-test2.
5063
5064 1996-11-02  Hrvoje Niksic  <hniksic@srce.hr>
5065
5066         * version.c: Released 1.4.0-test1.
5067
5068         * url.c (str_url): Don't use sprintf when creating %2F-prefixed
5069         directory.
5070         (convert_links): Removed definition of make_backup.
5071
5072         * http.h: Removed definition of MAX_ERROR_LENGTH.
5073
5074         * host.c (ftp_getaddress): Check for "(none)" domains.
5075
5076         * ftp.c (ftp_retrieve_dirs): Docfix.
5077
5078         * http.c (gethttp): Use ou->referer instead of u->referer.
5079
5080         * retr.c (retrieve_url): Reset u to avoid freeing pointers twice;
5081         this was known to cause coredumps on Linux.
5082
5083         * html.c (ftp_index): Cast the argument to local_time to time_t *.
5084
5085 1996-11-01  Hrvoje Niksic  <hniksic@srce.hr>
5086
5087         * connect.c (select_fd): Use exceptfds -- once and for all.
5088
5089         * retr.c (retrieve_from_file): Free filename after
5090         recursive_retrieve.
5091         (retrieve_from_file): Send RFIRST_TIME to recursive_retrieve on
5092         first-time retrieval.
5093         (retrieve_from_file): Return uerr_t; new argument, count.
5094         (retrieve_from_file): Break on QUOTEXC.
5095
5096         * init.c (setquota): Fixed a bug that caused rejection of
5097         non-postfixed values..
5098
5099 1996-10-30  Hrvoje Niksic  <hniksic@srce.hr>
5100
5101         * version.c: Changed name to wget.
5102
5103         * connect.c (iread): Smarter use of select.
5104         (select_fd): Set errno on timeout.  If not timeout, return 1
5105         instead of 0.
5106
5107 1996-10-29  Hrvoje Niksic  <hniksic@srce.hr>
5108
5109         * ftp.c (ftp_loop_internal): Don't use con->cmd before
5110         establishing it.
5111
5112 1996-10-26  Hrvoje Niksic  <hniksic@srce.hr>
5113
5114         * http.c (gethttp): Send correct referer when using proxy.
5115         (gethttp): Use struct urlinfo ou to access the relevant data; send
5116         correct authorization in all cases.
5117
5118         * host.c (same_host): Use skip_uname to skip username and
5119         password.
5120
5121         * url.c (skip_uname): New function.
5122         (parseurl): Use it.
5123
5124         * host.c (same_host): Do not assume HTTP -- same_host should now
5125         be totally foolproof.
5126
5127         * url.c (skip_proto): New function.
5128         (parse_uname): Use it.
5129
5130         * http.c (gethttp): Create local user and passwd from what is
5131         given.
5132
5133         * url.c (parseurl): Check for HTTP username and password too.
5134
5135 1996-10-25  Hrvoje Niksic  <hniksic@srce.hr>
5136
5137         * config.h.in: Removed #define gethostbyname R...
5138
5139 1996-10-22  Hrvoje Niksic  <hniksic@srce.hr>
5140
5141         * version.c: Changed version to 1.4.0-test1.
5142
5143 1996-10-21  Hrvoje Niksic  <hniksic@srce.hr>
5144
5145         * version.c: "Released" 1.4b29.
5146
5147         * recur.c (recursive_retrieve): Check for no_parent.
5148
5149         * init.c (setval): Option update.
5150
5151         * main.c (main): New option no-parent.
5152
5153         * options.h (struct options): New variable no_parent.
5154
5155         * recur.c (recursive_retrieve): Only files are checked for
5156         opt.accepts and opt.rejects.
5157         (recursive_retrieve): Check directories for opt.excludes.
5158         (recursive_retrieve): Make the dir absolute when checking
5159         opt.excludes.
5160
5161         * html.c (htmlfindurl): Recognize <applet code=...> and <script
5162         src=...>
5163
5164 1996-10-18  Hrvoje Niksic  <hniksic@srce.hr>
5165
5166         * ftp.c (getftp): Do not line-break assert entries at all.
5167         (ftp_retrieve_dirs): docfix.
5168
5169         * connect.c (select_fd): Use fd + 1 as nfds.
5170
5171         * version.c: Changed version to 1.4b29.
5172
5173 1996-10-18  Hrvoje Niksic  <hniksic@srce.hr>
5174
5175         * version.c: "Released" 1.4b28.
5176
5177         * ftp.c (ftp_loop_internal): Check whether f->size == len and
5178         don't continue the loop if it is.
5179         (ftp_get_listing): Remove list_filename on unsuccesful loop.
5180
5181 1996-10-17  Hrvoje Niksic  <hniksic@srce.hr>
5182
5183         * ftp.c (ftp_loop_internal): Use strcpy to initialize tmp.
5184         (getftp): Do not use multiline assert.
5185
5186         * http.c (hparsestatline): Use mjr and mnr instead of major and
5187         minor, which don't compile on Ultrix.
5188         (http_loop): Use strcpy() to initialize tmp.
5189
5190         * all: Geturl -> Fetch
5191
5192 1996-10-17  Hrvoje Niksic  <hniksic@srce.hr>
5193
5194         * recur.c (parse_robots): Fixed an off-by-one bug when looking for
5195         ':'.
5196
5197         * html.c (htmlfindurl): Fixed several possible off-by-one bugs by
5198         moving `bufsize &&' to the beginning of each check in for-loops.
5199
5200         * recur.c (parse_robots): Close fp on exit.
5201
5202         * url.c (mymkdir): Check for each directory before creating.
5203
5204 1996-10-16  Hrvoje Niksic  <hniksic@srce.hr>
5205
5206         * version.c: Changed version to 1.4b28.
5207
5208 1996-10-16  Hrvoje Niksic  <hniksic@srce.hr>
5209
5210         * version.c: "Released" 1.4b27.
5211
5212         * init.c (parse_line): Use isspace.
5213         (parse_line): Free *com on all errors.
5214
5215         * ftp.c (ftp_loop): Change FTPOK to RETROK before exiting.
5216         (delelement): Use next instead of f->next and prev instead of
5217         f->prev.
5218         (delelement): Free the members of the deleted element.
5219
5220         * http.c (http_loop): Do not return RETROK on code != 20x.
5221
5222         * init.c (cleanup): Free opt.user_header.
5223         (cleanup): Free opt.domains.
5224
5225         * url.c (freelists): Moved to cleanup().
5226
5227         * http.c (hparsestatline): Docfix.
5228
5229         * main.c (main): Return with error status on unsuccesful
5230         retrieval.
5231
5232         * init.c (setval): Do not remove listing when mirroring.
5233
5234         * url.c (url_filename): Use opt.fileprefix.
5235
5236         * ftp.c (ftp_get_listing): Use url_filename to get filename for
5237         .listing.
5238
5239         * main.c (main): New option: -rn.
5240
5241 1996-10-15  Hrvoje Niksic  <hniksic@srce.hr>
5242
5243         * Makefile.in (RM): Added RM = rm -f.
5244
5245         * host.c (clean_hosts): New function.
5246         (free_hlist): Just free the list, no reset.
5247
5248         * version.c: Changed version to 1.4b27.
5249
5250 1996-10-13  Hrvoje Niksic  <hniksic@srce.hr>
5251
5252         * version.c: "Released" 1.4b26.
5253
5254         * retr.c (retrieve_from_file): If call get_urls_html with
5255         opt.spider to make it silent in spider mode.
5256
5257         * url.c (str_url): Use CLEANDUP instead of URL_CLEANSE.
5258
5259         * url.h (CLEANDUP): New macro.
5260
5261         * http.c (gethttp): Fixed a bug that freed location only when it
5262         was NULL.
5263
5264         * retr.c (retrieve_url): Free url if it will not be stored,
5265         i.e. newloc is NULL.
5266
5267         * html.c (htmlfindurl): Handle exiting from quotes correctly; the
5268         old version would bug out on <a href="x#a"href="y">.
5269
5270         * html.h (state_t): New member in_quote.
5271
5272         * html.c (htmlfindurl): Free s->attr at the beginning of
5273         attr-loop.
5274
5275         * recur.c (recursive_retrieve): Recognize RCLEANUP.
5276         (tried_robots): Make hosts a global variable.
5277         (recursive_retrieve): Free constr after URL host optimization.
5278         (tried_robots): Free urlinfo before exiting.
5279
5280         * utils.c (free_slist): New function.
5281
5282         * recur.c (recursive_retrieve): Use flags to add cleanup
5283         possibility.
5284
5285         * main.c (main): Free filename after recursive_retrieve.
5286
5287         * http.c (gethttp): Store successful responses too.
5288
5289 1996-10-12  Hrvoje Niksic  <hniksic@srce.hr>
5290
5291         * all: Constified the whole source.  This required some minor
5292         changes in many functions in url.c, possibly introducing bugs -- I
5293         hope not.
5294
5295         * ftp-basic.c: Removed last_respline.
5296
5297         * http.c (gethttp): Free type.
5298
5299         * host.c (same_host): Free real1 and real2.
5300
5301         * main.c (main): New option --spider.
5302
5303         * retr.c (get_contents): Don't reset errno.
5304
5305         * main.c (main): Sorted the options.
5306
5307         * connect.c (iread): Set errno to ETIMEDOUT only if it was left
5308         uninitialized by select().
5309
5310         * http.c (http_loop): Print the time when the connection is
5311         closed.
5312         (gethttp): Debug-print the HTTP request.
5313
5314 1996-10-11  Hrvoje Niksic  <hniksic@srce.hr>
5315
5316         * connect.c (iread): Do not try reading after timeout.
5317
5318         * main.c (main): Would bug out on -T.
5319
5320         * connect.c (select_fd): Do not use exceptfds.
5321         (iread): Set ETIMEDOUT on select_fd <= 0.
5322
5323         * version.c: Changed version to 1.4b26.
5324
5325 1996-10-10  Hrvoje Niksic  <hniksic@srce.hr>
5326
5327         * version.c: "Released" 1.4b25.
5328
5329         * ftp-unix.c (ftp_parse_unix_ls): Ignore lines without file name
5330         or link name.
5331
5332         * http.c (gethttp): Add errcode to struct hstat.
5333         (http_loop): Use it.
5334
5335         * url.c (no_proxy_match): Simplify using char** for no_proxy.
5336
5337         * options.h (struct options): Make opt.no_proxy a vector.
5338
5339         * utils.c (sepstring): Use !*s instead of !strlen(s).
5340
5341         * init.c (setval): Set opt.maxreclevel to 0 on --mirror.
5342         (getperms): Use ISODIGIT instead of isdigit.
5343
5344         * ftp.c (getftp): Print time.
5345
5346         * main.c (main): Use legible output of downloaded quantity.
5347
5348         * ftp.c (getftp): Use elapsed_time().
5349         (ftp_loop_internal): Use rate().
5350
5351         * http.c (http_loop): Add download ratio output; Use rate().
5352
5353         * utils.c (rate): New function.
5354
5355 1996-10-09  Hrvoje Niksic  <hniksic@srce.hr>
5356
5357         * http.c (http_loop): Use timer.
5358
5359         * ftp.c: Split to ftp-basic.c and ftp.c
5360
5361         * utils.c (reset_timer): New function.
5362         (elapsed_time): New function.
5363
5364         * retr.c (show_progress): Make bytes_in_line and offs long; should
5365         work on 16-bit machines.
5366
5367 1996-10-08  Hrvoje Niksic  <hniksic@srce.hr>
5368
5369         * url.c (in_acclist): New argument backward.
5370
5371         * ftp.c (ftp_retrieve_glob): Use acceptable() to determine whether
5372         a file should be retrieved according to suffix.
5373         (ftp_get_listing): Check the return value of unlink; Do not call
5374         ftp_retrieve_dirs if depth reached maxreclevel.
5375         (ftp_retrieve_dirs): Check whether the directory is in
5376         exclude-list.
5377
5378         * main.c (main): Print the version number at the beginning of
5379         DEBUG output.
5380         (main): Use strrchr when creating exec_name.
5381
5382         * ftp.c (ftp_retrieve_glob): Do not close control connection.
5383
5384         * version.c: Changed version to 1.4b25.
5385
5386 1996-10-07  Hrvoje Niksic  <hniksic@srce.hr>
5387
5388         * version.c: "Released" 1.4b24.
5389
5390         * Makefile.in: Rewrite.
5391
5392         * ftp.c (ftp_loop_internal): Likewise.
5393
5394         * retr.c (time_str): Check for failed time().
5395
5396         * html.c (htmlfindurl): Recognize <fig src> and <overlay src> from
5397         HTML3.0.
5398
5399         * retr.c (time_str): Return time_t *.
5400
5401         * connect.c (bindport): Close msock on unsuccesful bind.
5402         (bindport): The same for getsockname and listen.
5403
5404         * retr.c (retrieve_url): Allow any number of retries on
5405         proxy.
5406
5407         * http.c (gethttp): Do not treat errno == 0 as timeout.
5408         (http_loop): Likewise.
5409         (http_loop): Cosmetic changes.
5410
5411         * connect.c (iread): Set errno to ETIMEDOUT in case of timeout.
5412
5413         * retr.c (get_contents): Reset errno.
5414
5415         * ftp.c (getftp): Minor fixes.
5416
5417 1996-10-06  Hrvoje Niksic  <hniksic@srce.hr>
5418
5419         * http.c: Do not use backups.
5420
5421         * geturl.1 (WARNING): Warn that man-page could be obsolete.
5422
5423         * getopt.c (getopt_long): Moved to getopt.c
5424
5425         * geturl.texi: Enhanced.
5426
5427         * main.c (main): Use it.
5428
5429         * recur.c (convert_all_links): New function.
5430
5431         * utils.c (add_slist): New argument flags.
5432
5433         * recur.c (recursive_retrieve): Update a list of downloaded URLs.
5434         (parse_robots): Do not chuck out empty value fields.
5435         (parse_robots): Make yourself welcome on empty Disallow.
5436
5437         * version.c: Changed version to 1.4b24.
5438
5439 1996-10-06  Hrvoje Niksic  <hniksic@srce.hr>
5440
5441         * version.c: "Released" 1.4b23.
5442
5443         * ftp.c (ftp_loop_internal): Get the time after getftp.
5444
5445         * Makefile.in (install.info): New target.
5446         (install): Use it.
5447
5448         * http.c (http_loop): Fix output when doing -O.
5449
5450 1996-10-05  Hrvoje Niksic  <hniksic@srce.hr>
5451
5452         * geturl.texi: New file.
5453
5454         * main.c (main): Do not print the warnings and download summary if
5455         opt.quiet is set.
5456
5457         * version.c: Changed version to 1.4b23.
5458
5459 1996-10-05  Hrvoje Niksic  <hniksic@srce.hr>
5460
5461         * "Released" 1.4b22.
5462
5463         * atotm.c (atotm): Use True and False instead of TRUE and FALSE,
5464         to avoid redefinition warnings.
5465
5466         * host.c (store_hostaddress): Use memcpy() to copy the address
5467         returned by inet_addr.
5468
5469         * version.c: Changed version to 1.4b22.
5470
5471 1996-10-04  Hrvoje Niksic  <hniksic@srce.hr>
5472
5473         * version.c: "Released" 1.4b21.
5474
5475         * ftp-unix.c (ftp_parse_ls): Renamed to ftp_parse_unix_ls.
5476
5477         * ftp.c (ftp_port): Use conaddr.
5478         (getftp): Print the file length.
5479         (ftp_retrieve_list): Check the stamps of plain files only.
5480
5481         * connect.c (closeport): Do not call shutdown().
5482         (conaddr): New function.
5483
5484         * html.c (ftp_index): Made it dfp-aware.
5485
5486         * init.c (cleanup): New name of freemem. Close opt.dfp.
5487
5488         * ftp.c (getftp): Use opt.dfp if it is set.
5489
5490         * ftp-unix.c (ftp_parse_ls): Recognize time in h:mm format.
5491
5492         * ftp.c (ftp_retrieve_dirs): Fixed a bug that caused incorrect
5493         CWDs to be sent with recursive FTP retrievals.
5494
5495 1996-10-03  Hrvoje Niksic  <hniksic@srce.hr>
5496
5497         * recur.c (parse_robots): Made it more compliant with "official"
5498         specifications.
5499
5500         * http.c: New function.
5501
5502         * ftp-unix.c (ftp_parse_ls): Added better debug output.
5503
5504         * ftp.c (getftp): Print out the LIST in case of
5505         opt.print_server_response.
5506
5507         * version.c: Changed version to 1.4b21.
5508
5509 1996-10-01  Hrvoje Niksic  <hniksic@srce.hr>
5510
5511         * version.c: "Released" 1.4b20.
5512
5513         * README: Update.
5514
5515         * http.c (gethttp): Preset lengths of various headers instead of
5516         calculating them dynamically.
5517         (gethttp): Check for 206 partial contents.
5518
5519 1996-09-30  Hrvoje Niksic  <hniksic@srce.hr>
5520
5521         * configure.in: Set SYSTEM_GETURLRC to $libdir/geturlrc
5522
5523         * http.c (gethttp): Send the port number in the Host: header.
5524
5525 1996-09-29  Hrvoje Niksic  <hniksic@srce.hr>
5526
5527         * http.c (gethttp): Send host: header.
5528         (gethttp): Add the possibility of user-defined headers.
5529         (gethttp): Move decision about pragma: no-cache to http_loop,
5530         where it belongs.
5531         (gethttp): Pass a struct instead of enormous argument list.
5532         (http_loop): Use a new, fancier display format.
5533         (ftp_loop): Likewise.
5534
5535         * main.c: (hangup): Turn off buffering of the new log file.
5536
5537         * install-sh: Likewise.
5538
5539         * config.sub: Replace with the one in autoconf-2.10
5540
5541         * geturl.1: Update.
5542
5543         * init.c: New options httpuser and httppasswd.
5544
5545         * http.c: (base64_encode_line): New function.
5546         (gethttp): Send authentication.
5547
5548         * connect.c (make_connection): Use store_hostaddress.
5549
5550 1996-09-28  Hrvoje Niksic  <hniksic@srce.hr>
5551
5552         * host.c (store_hostaddress): New function.
5553
5554         * NEWS: Update.
5555
5556         * http.c (hgetrange): New function.
5557         (gethttp): Use ranges.
5558
5559         * utils.c (numdigit): Accept long instead of int.
5560
5561         * http.c (http_loop): Add restart capabilities.
5562
5563         * ftp.c (ftp_retrieve_glob): Fixed a bug that could cause matchres
5564         being used uninitialized.
5565         (ftp_retrieve_list): Similar fix.
5566
5567         * host.c (add_hlist): Fixed a bug that could cause cmp being used
5568         uninitialized.
5569
5570         * url.c (construct_relative): New function.
5571
5572         * recur.c (recursive_retrieve): Use it.
5573
5574         * retr.c (convert_links): New function.
5575
5576 1996-09-27  Hrvoje Niksic  <hniksic@srce.hr>
5577
5578         * url.c (free_urlpos): New function.
5579
5580         * recur.c (recursive_retrieve): Adapt.
5581
5582         * url.c (get_urls_html): Return a linked list instead of a vector.
5583
5584         * url.c (get_urls_file): Return a linked list instead of a vector.
5585
5586         * geturl.1: Update.
5587
5588         * http.c (gethttp): Implement it.
5589
5590         * init.c (setval): New option: SAVEHEADERS
5591
5592         * ftp.c (ftp_loop_internal): Do not set restval if listing is to
5593         be retrieved. Lack of this test caused bugs when the connection
5594         was lost during listing.
5595
5596         * retr.c (retrieve_url): Fixed a bug that caused
5597         coredumps. *newloc is now reset by default.
5598         (retrieve_url): Lift the twenty-tries limit on proxies.
5599
5600         * version.c: Changed version to 1.4b20.
5601
5602 1996-09-20  Hrvoje Niksic  <hniksic@srce.hr>
5603
5604         * version.c: "Released" 1.4b19.
5605
5606 1996-09-19  Hrvoje Niksic  <hniksic@srce.hr>
5607
5608         * ftp.c (ftp_loop_internal): Renamed from ftp_1fl_loop.
5609         (getftp): Changed prototype to accept ccon *.
5610
5611 1996-09-17  Hrvoje Niksic  <hniksic@srce.hr>
5612
5613         * ftp.c (ftp_retrieve_list): Fixed a bug that caused setting
5614         incorrect values to files pointed to by symbolic links.
5615         (ftp_1fl_loop): Do not count listings among the downloaded URL-s.
5616
5617 1996-09-16  Hrvoje Niksic  <hniksic@srce.hr>
5618
5619         * url.c (mkstruct): Do not prepend "./" in front of a pathname.
5620
5621         * main.c (main): New option: --user-agent.
5622
5623         * geturl.1: Ditto.
5624
5625         * init.h: Ditto.
5626
5627         * init.c (setval): Ditto.
5628
5629         * main.c (main): Rename "server-headers" to "server-response".
5630
5631         * ftp-unix.c (ftp_parse_ls): Check for asterisks at the end of
5632         executables in 'ls -F' listings.
5633
5634 1996-09-15  Hrvoje Niksic  <hniksic@srce.hr>
5635
5636         * url.c (parseurl): Remove realloc() and sprintf().
5637         (str_url): Get rid of sprintf().
5638
5639         * recur.c (recursive_retrieve): Enable FTP recursion through proxy
5640         servers.
5641
5642         * url.h (URL_CLEANSE): Made it else-resistant.
5643         (USE_PROXY): New macro.
5644
5645 1996-09-14  Hrvoje Niksic  <hniksic@srce.hr>
5646
5647         * NEWS: Update.
5648
5649         * version.c: Changed version to 1.4b19.
5650
5651 1996-09-14  Hrvoje Niksic  <hniksic@srce.hr>
5652
5653         * version.c: "Released" 1.4b18.
5654
5655         * url.c: Made it reallocate space exponentially.
5656
5657 1996-09-14  Drazen Kacar  <dave@fly.cc.fer.hr>
5658
5659         * html.c (htmlfindurl): Added <frame src> and <iframe src> among
5660         the list of stuff to fetch.
5661
5662 1996-09-13  Hrvoje Niksic  <hniksic@srce.hr>
5663
5664         * url.c (get_urls_html): Fixed a bug that caused SIGSEGV's with
5665         -Fi.
5666
5667         * html.c (htmlfindurl): Rewrite.
5668
5669         * http.c (gethttp): Use opt.proxy_cache.
5670
5671         * main.c (main): Added --cache option.
5672
5673         * ftp.c (ftp_response): Print server response if opt.print_server
5674         response is set.
5675         (getftp): Print newlines after each request if the server response
5676         is to be printed.
5677         (ftp_response): Copy the last response line to last_respline.
5678
5679         * http.c (gethttp): Add Pragma: nocache for retried
5680         proxy-retrievals.
5681
5682         * ftp.c (getftp): Use it.
5683
5684         * retr.c (buf_discard): New function.
5685
5686         * ftp.c (ftp_response): Use buf_readchar().
5687         (getftp): Flush the control connection buffer before calling
5688         get_contents().
5689
5690         * retr.c (buf_readchar): New function.
5691         (buf_flush): New function.
5692         (get_contents): Use buf_readchar() instead of read(x, x, 1).
5693         (get_contents): Use buf_flush.
5694
5695 1996-09-12  Hrvoje Niksic  <hniksic@srce.hr>
5696
5697         * ftp.c: Incorporate changes to ftp_response.
5698
5699         * ftp.c (ftp_response): Allocate the server response dynamically,
5700         as in read_whole_line and fetch_next_header.
5701
5702         * utils.c (read_whole_line): Fixed a bug that prevented reading
5703         the last line if it is not \n-terminated. Also fixed a possible
5704         memory overflow.
5705
5706         * http.c (fetch_next_header): Return malloc-ed string as large as
5707         needed.
5708         (gethttp): Use new fetch_next_header.
5709
5710 1996-09-12  Hrvoje Niksic  <hniksic@srce.hr>
5711
5712         * http.c (hgetlen): Compute the header length the first time only.
5713         (hgettype): Ditto.
5714         (hgetlocation): Ditto.
5715         (hgetmodified): Ditto.
5716
5717 1996-09-11  Hrvoje Niksic  <hniksic@srce.hr>
5718
5719         * sample.geturlrc: Update.
5720
5721 1996-09-10  Hrvoje Niksic  <hniksic@srce.hr>
5722
5723         * http.c (http_loop): Ditto.
5724
5725         * ftp.c (getftp): Open the output file as binary.
5726
5727         * version.c: Changed version to 1.4b18.
5728
5729 1996-09-10  Hrvoje Niksic  <hniksic@srce.hr>
5730
5731         * version.c: "Released" 1.4b17.
5732
5733         * ftp-unix.c (ftp_parse_ls): If unable to open file, return NULL
5734         instead of failed assertion.
5735
5736 1996-09-09  Hrvoje Niksic  <hniksic@srce.hr>
5737
5738         * ftp.c (ftp_get_listing): Add a numbered suffix to LIST_FILENAME
5739         if a file of that name already exists.
5740
5741 1996-09-05  Hrvoje Niksic  <hniksic@srce.hr>
5742
5743         * ftp.c (ftp_1fl_loop): Handler FTPPORTERR and FOPENERR correctly.
5744
5745         * config.h.in: Define gethostbyname as Rgethostbyname when using
5746         Socks.
5747
5748         * configure.in: Check for -lresolv if using Socks.
5749
5750         * version.c: Changed version to 1.4b17.
5751
5752 1996-07-15  Hrvoje Niksic  <hniksic@srce.hr>
5753
5754         * version.c: "Released" 1.4b16.
5755
5756         * http.c (gethttp): More intelligent check for first line of HTTP
5757         response.
5758         (gethttp): Would bug out on time-stamping.
5759
5760         * version.c: Changed version to 1.4b16.
5761
5762 1996-07-11  Hrvoje Niksic  <hniksic@srce.hr>
5763
5764         * version.c: Released 1.4b15.
5765
5766         * http.c (http_loop): Print \n after the loop entry, not before.
5767
5768         * url.c (url_filename): Use ISDOT.
5769
5770         * url.h (ISDOT): New macro.
5771
5772         * recur.c (recursive_retrieve): Change only opt.recursive for
5773         following FTP.
5774
5775 1996-07-11  Antonio Rosella <antonio.rosella@agip.it>
5776
5777         * socks/geturl.cgi: Fixed version No.
5778
5779         * socks/download-netscape.html: Ditto.
5780
5781         * socks/download.html: Changed socks.html to download.html.
5782
5783 1996-07-11  Hrvoje Niksic  <hniksic@srce.hr>
5784
5785         * url.c (url_filename): Check for opt.dirstruct instead for
5786         opt.recursive && opt.dirstruct.
5787
5788         * init.c (defaults): Ditto.
5789         (defaults): Reset dirstruct by default.
5790         (setval): Set opt.dirstruct whenever setting recursive.
5791
5792         * init.h: Removed FORCEDIRHIER.
5793
5794         * INSTALL: Added -L to socks-description.
5795
5796         * version.c: Changed version to 1.4b15.
5797
5798 1996-07-10  Hrvoje Niksic  <hniksic@srce.hr>
5799
5800         * version.c: "Released" 1.4b14.
5801
5802         * geturl.1: Update AUTHOR to include Rosella as contributor.
5803
5804         * NEWS: Update.
5805
5806         * socks/geturl.cgi: Simplified command creation, nuked <blink>.
5807
5808         * socks/geturl.cgi: Wrap nutscape extensions within if $netscape.
5809         (cal_time): Fix == to eq.
5810
5811         * socks/geturl.cgi: GPL-ized with permission of A. Rosella.
5812
5813         * geturl.1 (hostname): Moved URL CONVENTIONS to the beginning.
5814
5815         * Makefile.in: Use @VERSION@.
5816
5817         * configure.in: Check version from version.c.
5818
5819         * socks/geturl.cgi: Changed /pub/bin/perl to /usr/bin/perl.
5820
5821         * socks/download.html: Created from download-netscape.html, made
5822         HTML-2.0 compliant.
5823
5824         * recur.c (recursive_retrieve): Set opt.force_dir_hier when
5825         following FTP links from recursions.
5826
5827 1996-07-09  Hrvoje Niksic  <hniksic@srce.hr>
5828
5829         * url.c (mymkdir): Fixed a bug that prevented mymkdir() to create
5830         absolute directories correctly.
5831
5832         * version.c: Changed version to 1.4b14.
5833
5834 1996-07-09  Hrvoje Niksic  <hniksic@srce.hr>
5835
5836         * version.c: "Released" 1.4b13.
5837
5838         * url.c (make_backup): New function.
5839
5840         * http.c (http_loop): Make a backup copy of the local file (using
5841         rename(2)) before opening it.
5842
5843         * main.c (main): Added --backups.
5844
5845         * host.c (ftp_getaddress): Bail out on failed mycuserid().
5846         (ftp_getaddress): Check for leading dot on MY_DOMAIN.
5847         (ftp_getaddress): Check for empty, null or (null) domain.
5848
5849         * url.c (get_urls_html): If this_url is NULL, the base must have a
5850         protocol.
5851         (parseurl): Use has_proto.
5852
5853         * retr.c (retrieve_url): Warn when proxy is used with more than 20
5854         retries.
5855
5856         * url.c (mkstruct): Create the directory (calling mymkdir()) only
5857         if it is not already there.
5858         (has_proto): New function.
5859         (get_urls_html): Eliminate the remaining call to findurl -- use
5860         has_proto.
5861
5862         * geturl.1: Ditto.
5863
5864         * main.c: Change -X to -x.
5865
5866         * url.c (url_filename): Simplify creation of filename if
5867         prefix_files is set.
5868         (url_filename): Simplify everything. And I do mean *everything*.
5869         (mkstruct): Add dir_prefix before hostname.
5870         (path_simplify): Fixed a bug that caused writing outside the path
5871         string in case of "." and ".." path strings.
5872
5873 1996-07-06  Hrvoje Niksic  <hniksic@srce.hr>
5874
5875         * init.c: Added --mirror.
5876
5877         * main.c (main): Added -X to force saving of directory hierarchy.
5878
5879         * ftp.c (ftp_retrieve_list): Added recursion depth counter.
5880         (ftp_retrieve_list): Check whether quota is exceeded.
5881
5882         * url.c (get_urls_html): Skip leading blanks for absolute URIs.
5883
5884         * http.c (gethttp): Use referer if present.
5885
5886         * recur.c (recursive_retrieve): Set u->referer before calling
5887         retrieve_url.
5888
5889         * url.c (newurl): Use memset to nullify the struct members.
5890         (freeurl): Free the referer field too.
5891
5892         * url.h: Added referer to urlinfo.
5893
5894         * geturl.1: Updated the manual to document some of the new features.
5895
5896         * utils.c (numdigit): Moved from url.c.
5897
5898         * README: Rewritten.
5899
5900         * config.h.in: Add the support for socks.
5901
5902         * configure.in: Add the support for socks.
5903
5904         * url.c (url_filename): If the dir_prefix is ".", work with just
5905         the file name.
5906         (url_filename): Do not look for .n extensions if timestamping if
5907         turned on.
5908
5909         * retr.c (show_progress): Skip the over-abundant restval data, and
5910         print the rest of it with ',' instead of '.'.
5911
5912 1996-07-05  Hrvoje Niksic  <hniksic@srce.hr>
5913
5914         * retr.c (show_progress): Changed second arg. to long (as it
5915         should be).
5916         (show_progress): Moved to retr.c.
5917         (get_contents): Moved to retr.c.
5918
5919         * version.c: Change version to 1.4b13.
5920
5921 1996-07-05  Hrvoje Lacko <hlacko@fly.cc.fer.hr>
5922
5923         * url.c (in_acclist): Would return after the first suffix.
5924
5925 1996-07-04  Hrvoje Niksic  <hniksic@srce.hr>
5926
5927         * version.c: "Released" 1.4b12.
5928
5929         * url.c (path_simplify): More kludgifications.
5930         (get_urls_html): Use new parameters for htmlfindurl.
5931
5932         * html.c: Removed memorizing "parser states", since the new
5933         organization does not require them.
5934
5935         * init.c (run_geturlrc): Use read_whole_line.
5936
5937         * ftp-unix.c (ftp_parse_ls): Use read_whole_line.
5938
5939         * recur.c (parse_robots): Use read_whole_line.
5940
5941         * utils.c (read_whole_line): New function.
5942
5943         * recur.c (tried_robots): Use add_slist/in_slist, *much* cleaner.
5944
5945         * host.c (ngethostbyname): Call inet_addr just once. Yet to be
5946         tested on OSF and Ultrix.
5947         (add_hlist): New function.
5948         (free_hlist): New function.
5949         (search_host): New function.
5950         (search_address): New function.
5951         (realhost): Use search_host, search_address and add_hlist.
5952         (same_host): Replaced realloc() with strdupdelim(), made
5953         case-insensitive, fixed a memory leak.
5954
5955         * html.c (ftp_index): Fixed tm_min and tm_sec to be tm_hour and
5956         tm_min, like intended.
5957
5958         * version.c: Change user agent information to
5959         Geturl/version.
5960
5961 1996-07-03  Hrvoje Niksic  <hniksic@srce.hr>
5962
5963         * utils.c: Renamed nmalloc.c to utils.c, .h likewise.
5964
5965         * url.c (acceptable): Always accept directories.
5966
5967         * ftp-unix.c (ftp_parse_ls): Support brain-damaged "ls -F"-loving
5968         servers by stripping trailing @ from symlinks and trailing / from
5969         directories.
5970
5971         * ftp.c (ftp_loop): Debugged the "enhanced" heuristics. :-)
5972
5973         * url.c (skip_url): Use toupper instead of UCASE.
5974
5975         * host.c (sufmatch): Made it case-insensitive.
5976
5977         * url.c (match_backwards_or_pattern): Fixed i == -1 to j == -1.
5978         (match_backwards): New function, instead of
5979         match_backwards_or_pattern.
5980
5981         * recur.c (recursive_retrieve): Increased performance by
5982         introducing inl, which reduces number of calls to in_slist to only
5983         one.
5984
5985         * ftp.c (ftp_loop): Enhanced the heuristics that decides which
5986         routine to use.
5987
5988         * main.c (printhelp): Removed the warranty stuff.
5989
5990 1996-07-02  Hrvoje Niksic  <hniksic@srce.hr>
5991
5992         * url.c (add_slist): Simplify.
5993         (match_backwards_or_pattern): New function.
5994         (in_acclist): Use match_backwards_or_pattern.
5995         (matches): Remove.
5996
5997 1996-06-30  Hrvoje Niksic  <hniksic@srce.hr>
5998
5999         * ftp.c (ftp_loop): Call ftp_index on empty file names, if not
6000         recursive.
6001
6002         * html.c (ftp_index): Fixed to work. Beautified the output.
6003
6004         * ftp.c (ftp_retrieve_glob): Another argument to control whether
6005         globbing is to be used.
6006         (ftp_retrieve_list): Compare the time-stamps of local and remote
6007         files to determine whether to download.
6008
6009 1996-06-29  Hrvoje Niksic  <hniksic@srce.hr>
6010
6011         * ftp.c (rel_constr): New function.
6012
6013         * retr.c (retrieve_from_file): Check for text/html before
6014         retrieving recursively.
6015
6016         * main.c (main): Check whether the file is HTML before going into
6017         recursive HTML retrieving.
6018
6019         * ftp.c (ftp_retrieve_list): Manage directories.
6020         (ftp_retrieve_glob): Pass all the file-types to ftp_retrieve_list.
6021         (ftp_1fl_loop): Fixed a bug that caused con->com to be incorrectly
6022         initialized, causing bugchecks in getftp to fail.
6023
6024         * configure.in: Check for symlink.
6025
6026         * ftp.c (ftp_retrieve_list): Added support for symlinks.
6027
6028         * version.c: "Released" 1.4b10.
6029
6030         * atotm.c (atotm): Redeclared as time_t.
6031
6032         * init.c: New variable "timestamping".
6033
6034         * main.c (main): New option 'N'.
6035
6036         * http.c (hgetlocation): Case-insensitive match.
6037         (hgetmodified): New function.
6038         (http_loop): Implement time-stamping.
6039
6040 1996-06-28  Hrvoje Niksic  <hniksic@srce.hr>
6041
6042         * version.c: Changed version to 1.4b10
6043
6044         * atotm.c: New file, from phttpd.
6045
6046         * options.h (struct options): New parameter timestamping.
6047
6048         * version.c: 1.4b9 "released".
6049
6050         * recur.c (recursive_retrieve): Used linked list (ulist) for
6051         faster storing of URLs.
6052
6053         * url.c (get_urls_html): Removed the old kludge with comparing the
6054         outputs of htmlfindurl and findurl.
6055         (get_urls_html): Added better protocol support here.
6056         (create_hash): Removed, as well as add_hash and in_hash.
6057         (addslist): New function.
6058         (in_slist): ditto
6059
6060         * version.c: Released 1.4b8, changed version to b9.
6061
6062 1996-06-27  Hrvoje Niksic  <hniksic@srce.hr>
6063
6064         * ftp.c (freefileinfo): New function.
6065         (delelement): New function.
6066
6067         * everywhere: GPL!
6068
6069         * ftp.c (ftp_loop): Use ccon.
6070         (ftp_retrieve_glob): Likewise.
6071
6072         * ftp.h: Define ccon, to define status of control connection.
6073
6074         * ftp.c (ftp_get_listing): New function.
6075         (ftp_retrieve_more): New function.
6076         (ftp_retrieve_glob): New function.
6077
6078 1996-06-25  Hrvoje Niksic  <hniksic@srce.hr>
6079
6080         * configure.in: Removed the search for cuserid().
6081
6082         * init.c (getmode): Renamed to getperms.
6083
6084 1996-06-24  Hrvoje Niksic  <hniksic@srce.hr>
6085
6086         * version.c: New version.
6087
6088         * main.c (hangup): New function, that handles hangup. Hangup
6089         signal now causes geturl to stop writing on stdout, and to write
6090         to a log file.
6091
6092         * ftp.c (getftp): "Released" 1.4b7.
6093
6094         * html.c (htmlfindurl): Ignore everything inside <head>...</head>.
6095         (ftp_index): Use fileinfo/urlinfo.
6096
6097         * ftp-unix.c (ftp_parse_ls): New function.
6098         (symperms): New function.
6099
6100         * ftp.c (ftp_1fl_loop): New function, to handle 1-file loops.
6101
6102         * retr.c (retrieve_url): Added FTP support.
6103
6104 1996-06-23  Hrvoje Niksic  <hniksic@srce.hr>
6105
6106         * geturl.h: Removed NOTFTP2HTML enum.
6107         Added DO_LOGIN, DO_CWD and DO_LIST. LIST_ONLY is obsolete.
6108
6109         * ftp.c (getftp): Resynched with urlinfo.
6110         (getftp): Removed HMTL-ization of index.html from getftp.
6111
6112         * version.c: 1.4b6 "released".
6113
6114         * options.h (options): New struct, to keep options in.
6115
6116         * http.c (http_loop,gethttp): Synched with proxy.
6117
6118         * retr.c (retrieve_url): Implemented proxy retrieval.
6119
6120         * main.c (main): Use retrieve_from_file.
6121
6122 1996-06-22  Hrvoje Niksic  <hniksic@srce.hr>
6123
6124         * retr.c (retrieve_from_file): New function.
6125
6126         * url.c (parseurl): Modified to return URLOK if all OK. Protocol
6127         can be found in u->proto.
6128
6129         * ftp.c (ftp_response): Fixed to accept multi-line responses as
6130         per RFC 959.
6131
6132         * recr.c (recursive_retrieve): Take newloc from retrieve_url.
6133
6134         * url.c (mymkdir): Removed the file of the same name, if one
6135         exists.
6136         (isfile): New function.
6137         (mkstruct): Fixed the '/' glitches.
6138         (path_simplify): Hacked to treat something/.. correctly.
6139
6140 1996-06-21  Hrvoje Niksic  <hniksic@srce.hr>
6141
6142         * http.c (gethttp): Close the socket after error in headers.
6143         (http_loop): HEOF no longer a fatal header.
6144
6145         * loop.c (retrieve_url): When dt is NULL, do not modify it. This
6146         simplifies the syntax of calling retrieve_url.
6147
6148         * recr.c (recursive_retrieve): Modified to use get_urls_html.
6149
6150         * url.c (get_urls_file): New function.
6151         (get_urls_html): New function.
6152
6153         * recr.c (recursive_retrieve): Patched up to conform to the
6154         standards.
6155
6156         * http.c (gethttp): Synched with the rest...
6157         (gethttp): Treat only CONREFUSED specially, with connection
6158         errors.
6159
6160         * init.c,geturl.1,http.c (http_loop): Removed kill_error.
6161
6162 1996-06-20  Hrvoje Niksic  <hniksic@srce.hr>
6163
6164         * http.c (http_loop): New function.
6165
6166         * loop.c: Removed *lots* of stuff from retrieve_url.
6167
6168         * url.c (parseurl): Changed to work with urlinfo. Integrated
6169         username finding and path parsing.
6170         (newurl): New function.
6171         (freeurl): New function.
6172         (mkstruct): Removed the old bogosities, made it urlinfo-compliant.
6173         (url_filename): Likewise.
6174         (path_simplify): Accept relative paths too.
6175         (opt_url): Made urlinfo-compliant, removed bogosities.
6176         (path_simplify): Expanded to accept relative paths.
6177         (str_url): A replacement for hide_url
6178         (decode_string): Fixed a bug that caused malfunctioning when
6179         encountering an illegal %.. combination.
6180         (opt_url): Removed the argument. Dot-optimizations are now default.
6181
6182         * nmalloc.c (strdupdelim): New function.
6183
6184         * url.h: Added the urlinfo structure
6185
6186 1996-06-19  Hrvoje Niksic  <hniksic@srce.hr>
6187
6188         * url.c (hide_url): Thrown out the protocol assertion. Do not
6189         change the URL if the protocol if not recognized.
6190         (findurl): Put continue instead of break.
6191
6192 1996-06-18  Hrvoje Niksic  <hniksic@srce.hr>
6193
6194         * sample.geturlrc: Changed the defaults to be commented out and
6195         harmless (previous defaults caused pains if copied to
6196         ~/.geturlrc).
6197
6198         * http.c (gethttp): Print the HTTP request in debug mode.
6199
6200         * connect.c (iread): Added EINTR check loop to select-ing
6201         too. EINTR is now correctly handled with select().
6202
6203         * TODO: new file
6204
6205 1996-05-07  Hrvoje Niksic  <hniksic@srce.hr>
6206
6207         * host.c (same_host): Made the function a little bit more
6208         intelligent regarding diversified URL syntaxes.
6209
6210         * url.c (skip_url): Spaces are now skipped after URL:
6211
6212         * Released 1.3.1 with the patch to prevent crashing when sending
6213         NULL to robot* functions and the patch to compile "out of the box"
6214         on AIX.
6215
6216         * recr.c (recursive_retrieve): Added checking whether this_url is
6217         NULL when calling the robot functions.
6218
6219         * ChangeLog: New file.