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