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