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