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