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