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