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