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