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