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