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