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