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