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