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