]> sjero.net Git - wget/blob - src/ChangeLog
[svn] Fix crash with --no-cookies.
[wget] / src / ChangeLog
1 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2
3         * http.c (gethttp): Only handle --set-cookies (and assert that
4         cookie jar exists) if opt.cookies is true.  Failure to do so
5         triggered the assert when --no-cookies was used and the server
6         sent a Set-Cookie header.  Ouch!
7
8 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
9
10         * connect.c (select_fd): Expect select() to exist.
11
12         * utils.c (xsleep): Always use select() as sleep fallback on
13         non-Windows platforms.
14
15         * ptimer.c: Delete the implementation of PTIMER_TIME.
16
17         * main.c: Assume existence of signal(), test for different signal
18         names instead.
19
20         * cmpt.c: Better document reasons why certain functions are
21         included.
22
23 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
24
25         * Makefile.in: Remove the manually maintained dependency list;
26         make all object files depend on every header.
27
28 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
29
30         * hash.c: Rename "mapping" to "cell" to avoid confusion with the
31         term "mapping" (or "map") sometimes being used for the entire hash
32         table.  Also rename "non-empty" to "occupied" for easier reading
33         of if (!NON_EMPTY (...)) ... .
34
35 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
36
37         * main.c, ptimer.c, sysdep.h, utils.c: Use #elif to simplify reading of
38         chained if-else-else-else-... statements.
39
40 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
41
42         * all: Return type of signal handlers is `void'.  Include signal.h
43         unconditionally.
44
45         * all: Don't explicitly cast values returned by malloc.  We no
46         longer support ancient compilers that don't declare malloc, and we
47         never supported C++ builds.
48
49 2005-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
50
51         * all: Don't declare errno.  Include both time.h and sys/time.h,
52         as long as sys/time.h exists.  Don't dereference function pointers
53         when invoking the functions they point to.
54
55         * cmpt.c (memmove): Remove function mandated by C89.
56         (strerror): Ditto.
57         (strstr): Ditto.
58
59         * all: Undo the K&R-ization changes from 2005-05-03.
60
61         * all: Remove support for K&R compilers: use C89 function
62         declarations, remove definition of PARAMS, remove support for
63         varargs, and remove ansi2knr.  Assume the presence of time.h,
64         string.h, and other headers mandated by C89.
65
66 2005-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
67
68         * init.c (cmd_lockable_boolean): Don't recognize literal "2" and
69         "-1" values; unlike 0 and 1, those should never be exposed to the
70         user.  Update the error message to be more self-consistent, as
71         proposed by Benno Schulenberg.
72
73 2005-06-18  Hrvoje Niksic  <hniksic@xemacs.org>
74
75         * http.c (gethttp): Don't free "head" before using it to save
76         headers.
77
78 2005-06-18  Hrvoje Niksic  <hniksic@xemacs.org>
79
80         * http.c (gethttp): When -E is in use, check for file existence
81         after appending ".html" to the name and modify the file name if
82         necessary.
83
84 2005-06-17  Hrvoje Niksic  <hniksic@xemacs.org>
85
86         * connect.c (socket_has_inet6): Removed.
87
88         * host.c (lookup_host): Don't use the AI_ADDRCONFIG getaddrinfo
89         hint.
90
91 2005-06-16  Hrvoje Niksic  <hniksic@xemacs.org>
92
93         * init.c (cmd_lockable_boolean): Improve the error message so it
94         lists the more useful values first.
95
96 2005-06-15  Hrvoje Niksic  <hniksic@xemacs.org>
97
98         * http.c (gethttp): Also report the system error when the POST
99         data file is missing.
100
101 2005-06-15  Benno Schulenberg  <benno@nietvergeten.nl>
102
103         * ftp.c, http.c, connect.c, cookies.c, html-url.c, init.c, res.c:
104         Gettext-ize messages that were previously missed.
105
106 2005-06-15  Hrvoje Niksic  <hniksic@xemacs.org>
107
108         * host.h (ip_address): Remove the trailing comma from the type
109         enum in the no-IPv6 case.
110
111         * main.c (struct cmdline_option): Remove the trailing comma from
112         the enum.
113
114         Reported by Jens Schleusener.
115
116 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
117
118         * url.c (strpbrk_or_eos): Check for a recent GCC version before
119         using the statement-as-expression extension.
120
121 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
122
123         * http.c (gethttp): Don't attempt to "skip short body" if we're
124         issuing a HEAD request (in which case the response head is not
125         followed by a body).
126
127 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
128
129         * init.c (cmd_spec_header): Don't split the string along the
130         commas using cmd_vector; just append the new value using
131         vec_append instead.
132
133         * utils.c (vec_append): New function.
134
135 2005-05-27  Andreas Beckmann  <debian@abeckmann.de>
136
137         * html-url.c (tag_handle_link): Mark the content from the <link
138         src="..."> tag as expecting HTML.
139
140 2005-05-24  Hrvoje Niksic  <hniksic@xemacs.org>
141
142         * http.c (http_atotm): Document the origin of the "cookie date"
143         format.
144
145 2005-05-21  Hrvoje Niksic  <hniksic@xemacs.org>
146
147         * init.c (setval_internal): Report exact command name alongside
148         the "display name".
149
150 2005-05-18  Hrvoje Niksic  <hniksic@xemacs.org>
151
152         * cookies.c (update_cookie_field): Explicitly cast -1 to time_t to
153         cope with systems where time_t is unsigned.
154
155         * cookies.c: Remove unnecessary casts to time_t from values
156         already of that type.
157
158 2005-05-17  Hrvoje Niksic  <hniksic@xemacs.org>
159
160         * ftp.c (ftp_loop_internal): Same here.
161
162         * http.c (http_loop): Don't clobber the file when -c is specified
163         and the first attempt to retrieve the file fails.
164
165 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
166
167         * openssl.c (ssl_check_certificate): Print all issues with a
168         certificate.
169
170 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
171
172         * ftp-basic.c: Don't xfree() the line returned by ftp_response if
173         the returned code is not FTPOK.
174
175 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
176
177         * init.c (cleanup): Don't free the non-existent opt.ftp_acc.  Free
178         the SSL-related stuff.
179
180 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
181
182         * ftp.c (print_length): Consistently print \n at end of the
183         "Length" line.
184
185 2005-05-14  Hrvoje Niksic  <hniksic@xemacs.org>
186
187         * openssl.c (ssl_connect): Announce the beginning and the end of
188         the SSL handshake when in debug mode.
189
190         * wget.h (PTR_FORMAT): New macro for easier printing of pointer
191         values.  Use %0*lx along with PTR_FORMAT instead of %p.
192
193 2005-05-14  Hrvoje Niksic  <hniksic@xemacs.org>
194
195         * http.c (gethttp): Would forget to close the connection when
196         keep_alive was not used.
197
198 2005-05-13  Hrvoje Niksic  <hniksic@xemacs.org>
199
200         * openssl.c (pattern_match): Document the code that decides
201         whether "*" matches ".".
202
203 2005-05-12  Hrvoje Niksic  <hniksic@xemacs.org>
204
205         * ftp-ls.c (ftp_index): Use %d to print the port number, which is
206         now int.
207         From Steven M. Schweda's VMS patches.
208
209 2005-05-12  Hrvoje Niksic  <hniksic@xemacs.org>
210
211         * url.c (rewrite_shorthand_url): Don't rewrite "https://host" to
212         "ftp://https//host" when SSL is not used.
213
214 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
215
216         * openssl.c (ssl_check_server_identity): Renamed to
217         ssl_check_certificate because it does more than just checking the
218         server's identity.
219         (ssl_check_certificate): Tell the user about
220         --no-check-certificate.
221
222 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
223
224         * openssl.c (ssl_init): Always use SSL_VERIFY_NONE, so that the
225         handshake finishes even if the certificate is invalid.  That way
226         ssl_check_server_identity can provide better diagnostics on why
227         the verification failed.
228
229 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
230
231         * openssl.c (pattern_match): New function.
232         (ssl_check_server_identity): Treat peer certificate common name as
233         wildcard.
234
235 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
236
237         * openssl.c (ssl_check_server_identity): Print certificate subject
238         and issuer.
239
240 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
241
242         * res.c (res_register_specs): Correctly pass pointers to
243         hash_table_get_pair.
244
245 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
246
247         * http.c (gethttp): Call ssl_check_server_identity.
248
249         * openssl.c (ssl_check_server_identity): New function, verifies
250         that the host name in the certificate matches the actual host
251         name.
252         (verify_cert_callback): Removed, since it didn't do anything
253         except returning the preverify_ok argument.
254
255         * connect.c (fd_transport_context): Allow retrieval of the context
256         pointer registered with fd_register_transport.
257
258 2005-05-09  Hrvoje Niksic  <hniksic@xemacs.org>
259
260         * openssl.c (verify_cert_callback): Renamed from verify_callback.
261         Always return the received "ok" value.  Print the X509 name in
262         debug mode.
263         (ssl_init): Enable partial writes in SSL context.
264
265 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
266
267         * http.c (http_loop): Check for wildcards in the URL path
268         component, not in the whole URL.
269
270         * ftp.c (ftp_loop): Check for wildcards in URL path before
271         unescaping, so the users can escape globbing metacharacters with %
272         escapes.
273
274 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
275
276         * init.c (run_command): Correctly interpret the return value of
277         parse_line.
278         (commands): Re-alphabetize.
279
280 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
281
282         * netrc.c (parse_netrc): Explicitly check for assignment != NULL
283         to silence warning from Borland C.
284
285         * url.c (sync_path): Don't unnecessarily increment p.
286         (url_parse): Don't unnecessarily set url_encode to NULL just
287         prior to return from the function.
288
289 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
290
291         * log.c (escnonprint_internal): Place variable declarations
292         before other statements.
293
294 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
295
296         * html-url.c: Include recur.h.
297
298         * http.c (request_new): Define as accepting no args.
299
300 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
301
302         * url.c (strpbrk_or_eos): Made inline.  Use strchr(s, '\0') for
303         finding the NUL char position.
304
305 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
306
307         * url.c (decide_copy_method): Renamed to char_needs_escaping.
308         Since it now returns only two possible values, change it to return
309         boolean (int).
310
311 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
312
313         * ftp-basic.c (ftp_request): Prevent newlines in VALUE causing
314         inadvertent sending of multiple FTP commands.
315
316 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
317
318         * url.c (decide_copy_method): Never cause reencode_escapes to
319         decode % escapes; it is too intrusive and breaks some servers.
320
321 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
322
323         * http.c (gethttp): When tunnelling SSL traffic over proxy with
324         CONNECT, we're really talking to the remote server directly.
325         Because of this, the request-line argument must be the URL path
326         rather than the whole URL, as it would be when using regular
327         proxies.
328         Reported by Charles Lane.
329
330 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
331
332         * init.c (cmd_spec_useragent): Allow empty User-Agent.
333
334         * http.c (gethttp): Don't print "unknown authentication scheme"
335         for failed Basic authentication.
336         (SET_USER_AGENT): Don't set user-agent if opt.useragent is empty.
337         (gethttp): Use alloca for allocation of www_authenticate.
338
339 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
340
341         * main.c (print_help): Fix wording of --secure-protocol help text.
342
343 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
344
345         * cmpt.c (strstr): Updated from glibc 2.3.5.
346
347 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
348
349         * http.c (http_atotm): Zero out the whole struct tm being passed
350         to strptime.
351
352 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
353
354         * main.c (main): Propagate option name to setoptval.
355
356         * init.c (setoptval): Accept another argument, OPTNAME.  Propagate
357         that argument as the option name independently of the actual
358         command, determined by command_by_name(com).
359
360 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
361
362         * init.c (parse_line): Make the return value indicate whether
363         there was a syntax error or a setter failed.
364         (run_wgetrc): Return an indication on whether an error has been
365         encountered.
366         (initialize): Abort if there have been errors running either
367         .wgetrc file.
368
369 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
370
371         * log.c (copy_and_escape): Slightly reduce code repetition between
372         the two loops.
373
374 2005-05-05  Charles C.Fu  <ccwf@bacchus.com>
375
376         * utils.c (proclist): Strip leading slash when calling fnmatch
377         too, otherwise wildcard comparisons always fail.
378
379 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
380
381         * utils.c (touch): Set access time to current time.
382
383 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
384
385         * url.c (url_unescape): Don't unescape %00, it effectively
386         truncates the string.
387
388 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
389
390         * log.c (copy_and_escape): Replace the FOR_URI argument with a
391         slightly more general mechanism for specifying different kinds of
392         escape.
393
394 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
395
396         * ftp-basic.c (ftp_response): Fix printing FTP server response.
397
398 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
399
400         * retr.c (limit_bandwidth_reset): Reset sleep_adjust.
401         (limit_bandwidth): Don't allow huge "adjustment" values that
402         result from being suspended for a while.
403
404 2005-05-04  Hrvoje Niksic  <hniksic@xemacs.org>
405
406         * wget.h: If gettext was found but libtintl.h wasn't, declare
407         gettext's return type to avoid type mismatches.
408
409 2005-05-03  Hrvoje Niksic  <hniksic@xemacs.org>
410
411         * url.c (url_parse): Rename label `error' to avoid conflict with
412         identifier.
413
414         * retr.c (fd_read_body): Rename label `out' to avoid conflict with
415         identifier.
416         (fd_read_hunk): Use explicit double constant.
417         (retrieve_from_file): Don't use string concatenation.
418         (sleep_between_retrievals): Make sure xsleep is called with a
419         `double' argument.
420         (no_proxy_match): Define as static, like it is declared.
421
422         * progress.c (bar_create): Use 0.0 instead of 0 because K&R
423         compilers can't automatically promote it.
424
425         * http-ntlm.c (ntlm_output): Replace \xHH sequences with \OOO for
426         the sake of old compilers.
427
428         * ftp.c (ftp_loop_internal): Don't use string concatenation.
429
430         * http.c (request_send): Use explicit double constants when
431         calling fd_read and fd_write.
432         (post_file): Ditto.
433         (gethttp): Ditto.
434         (skip_short_body): Ditto.
435
436         * ftp-basic.c: When calling fd_write, specify the last argument as
437         a `double' constant for the sake of K&R compilers which don't see
438         the prototype and therefore can't promote it to double
439         automatically.
440
441         * cookies.c (cookie_jar_load): Rename abort label to abort_cookie
442         to avoid name conflict in K&R compilers.
443
444 2005-04-29  Hrvoje Niksic  <hniksic@xemacs.org>
445
446         * ptimer.c (posix_init): Since we allow _POSIX_MONOTONIC_CLOCK==0,
447         it is not enough to check for _POSIX_MONOTONIC_CLOCK-0, we must
448         also check for defined(_POSIX_MONOTONIC_CLOCK).
449
450 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
451
452         * ftp.c, hash.c, connect.c, host.c, http.c: Remove unreached code,
453         such as "break" following return or abort.
454
455 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
456
457         * init.c (commands): Wrap the use of opt.random_file in #ifdef
458         HAVE_SSL.
459
460 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
461
462         * http.c (gethttp): Correctly set the user agent.
463
464 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
465
466         * init.c (cmd_spec_useragent): Free the old value of
467         opt.useragent before setting the new one.
468
469 2005-04-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
470
471         * main.c: Map --ftp-password, --http-password and --proxy-password to
472         the new ftppassword, httppassword and proxypassword commands
473         respectively.  Document the --user and --password options in the help
474         string.
475         
476 2005-04-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
477
478         * ftp.c: Add support for --user and --password.
479         
480         * http.c: Add support for --user and --password.
481         
482         * init.c: Deprecated ftppasswd, httppasswd, login, passwd and
483         proxypasswd commands.  Added ftppassword, ftpuser, httppassword,
484         password, proxypassword and user commands.
485
486         * main.c: Renamed --ftp-passwd to --ftp-password.  Added --ftp-user,
487         --http-password, --password, --proxy-password and --user.  Deprecated
488         --http-passwd and --proxy-passwd.  Added documentation for new options
489         and removed documentation for deprecated options in the help string.
490         
491         * options.h (struct options): Added user and passwd members to handle
492         --user and --password respectively.  Renamed ftp_acc and ftp_pass
493         members to ftp_user and ftp_passwd for consistency.
494
495 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
496
497         * main.c (print_help): Advertise "DER", not "ASN1".
498
499 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
500
501         * openssl.c (init_prng): Disable the weak random seed by default.
502
503         * http.c (gethttp): Simplify SSL initialization; disable SSL when
504         anything goes wrong with the initialization.
505
506         * options.h (struct options): New option opt.random_file.
507
508 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
509
510         * init.c: Wrap private key commands in IF_SSL.
511
512 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
513
514         * openssl.c (ssl_init): Ditto.
515
516         * options.h (struct options): Allow separate specification of key
517         type and certificate type.
518
519         * init.c (cmd_spec_cert_type): Provide a "der" synonym for "asn1"
520         certificate encoding.
521
522 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
523
524         * openssl.c: Renamed "gen_sslfunc.c" to "openssl.c" and
525         "gen_sslfunc.h" to "openssl.h".  This reflects the intent of
526         openssl.c encapsulating the OpenSSL-specific code.
527
528 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
529
530         * init.c: Renamed "closure" (a synonym for context in some
531         cultures) to "place", which more accurately reflects the usage.
532
533 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
534
535         * gen_sslfunc.c (ssl_init): Use default locations for loading the
536         certificate bundles.
537         (ssl_init_prng): Disable the cryptographically weak PRNG
538         initialization fallback.
539
540         * init.c: Renamed SSL command-line arguments and wgetrc commands.
541         (defaults): Check the server certificate by default.
542
543 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
544
545         * cookies.c (cookie_handle_set_cookie): Delete the part of the
546         path after the trailing slash.
547
548         * http.c (gethttp): Call cookie_handle_set_cookie with path that
549         begins with '/'.
550
551 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
552
553         * http.c (gethttp): Call skip_short_body only if keep_alive is in
554         use.
555         (gethttp): Send the User-Agent header with the CONNECT request as
556         well.
557
558 2005-04-25  Hrvoje Niksic  <hniksic@xemacs.org>
559
560         * main.c (option_data): Removed support for the undocumented flag
561         --use-proxy.
562
563 2005-04-25  Hrvoje Niksic  <hniksic@xemacs.org>
564
565         * main.c (option_data): Don't treat -Y as a boolean switch; treat
566         it as a value switch instead, so "-Y off" continues to work.
567
568 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
569
570         * utils.c (aprintf): Delete unreachable statement.
571
572 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
573
574         * host.c (cmp_prefer_ipv4): New function.
575         (cmp_prefer_ipv6): New function.
576         (lookup_host): Use the appropriate comparator according to
577         opt.prefer_family.
578
579         * init.c: New option prefer_family.
580
581         * host.c (is_valid_ipv6_address): Spell NS_* constants in lower
582         case to avoid clash with system headers.
583         (lookup_host): Reorder the addresses so that IPv4 ones come first.
584
585         * utils.c (stable_sort): New function.
586
587 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
588
589         * connect.c (retryable_socket_connect_error): Return 0 for
590         ENETUNREACH and EHOSTUNREACH.
591
592 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
593
594         * cmpt.c: Reenable the memmove implementation for systems that
595         lack it.
596
597         * http.c (gethttp): Store the "authorized" state of the persistent
598         connection.
599         (request_remove_header): New function.
600         (gethttp): Don't send the "Basic" authentication if the connection
601         is already authorized.
602
603 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
604
605         * utils.c (base64_encode): Treat input as unsigned chars.
606         Required for correct encoding of binary stuff.
607
608 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
609
610         * http-ntlm.c: Format the function definitions in an
611         ansi2knr-friendly fashion.
612
613 2005-04-22  Hrvoje Niksic  <hniksic@xemacs.org>
614
615         * http.c (gethttp): Handle multiple WWW-Authentication headers,
616         only one of which is recognized.  Those are sent by IIS with NTLM
617         authorization.
618         (create_authorization_line): Propagate information whether
619         authorization is finished.
620         (gethttp): Only stop authorization when it's really finished, not
621         after fixed two steps.
622
623 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
624
625         * gen_sslfunc.c (ssl_init): Fix warning message text; mark the
626         message as translatable.
627
628 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
629
630         * main.c (print_help): Print the EGD option outside the cluster of
631         SSL options.
632
633 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
634
635         * http-ntlm.c (ntlm_output): Fix setting the domain.
636         Suggested by Sami Krank.
637
638 2005-04-20  Mauro Tortonesi  <mauro@ferrara.linux.it>
639
640         * connect.c: Set IPV6_V6ONLY socket option when -6 switch is used.
641
642 2005-04-20  FUJISHIMA Satsuki  <sf@FreeBSD.org>
643
644         * http.c (request_set_header): Fix the check whether a new header
645         needs to be allocated.
646
647 2005-04-18  Hrvoje Niksic  <hniksic@xemacs.org>
648
649         * utils.c (base64_encode): Use the parameter order that makes more
650         sense.  Return the length of the base64 written.  Updated all
651         callers.
652
653 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
654
655         * http.c (request_set_header): Free NAME when VALUE is NULL and
656         freeing the header name is requested.
657
658 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
659
660         * snprintf.c (fmtstr): Declare VALUE as const char *.
661         Based on patch by Russ Allbery.
662
663 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
664
665         * snprintf.c (fmtfp): More correct handling of significant digit
666         count with %g -- 0.002 has one significant digit, not three.
667
668 2005-04-16  Hrvoje Niksic  <hniksic@xemacs.org>
669
670         * retr.c (fd_read_body): Respect read timeout with non-interactive
671         or no progress gauge -- treat ETIMEDOUT specially only when
672         progress_interactive.
673         Reported by FUJISHIMA Satsuki.
674
675 2005-04-16  FUJISHIMA Satsuki  <sf@FreeBSD.org>
676
677         * http.c (gethttp): Don't use HTTP/1.0 persistent connections over
678         proxy.
679
680 2005-04-16  Hrvoje Niksic  <hniksic@xemacs.org>
681
682         * snprintf.c: Use the PARAMS macro to handle prototypes.  Write
683         function definitions in the ansi2knr-friendly way.
684         (fmtstr): If string precision is specified, don't read VALUE past
685         it.
686         (dopr): Actually print %g and %e formats.
687         (fmtfp): Fix a bug that caused 0.01 to be printed as 0.1.
688         (fmtfp): Use LLONG in floating point conversions to be able to
689         convert more digits.
690         (fmtfp): Interpret precision as number of significant digits with
691         %g.
692         (fmtfp): Omit trailing decimal zeros with %g.
693
694         * snprintf.c: Don't include <ctype.h> because none of it is used.
695         Include strings.h/string.h, as per Autoconf.
696
697 2005-04-15  Hrvoje Niksic  <hniksic@xemacs.org>
698
699         * ptimer.c: Use _POSIX_TIMERS - 0 > 0, which handles the case when
700         _POSIX_TIMERS is defined but empty, as well as the case when it is
701         undefined.  Do the same with the check for _POSIX_MONOTONIC_CLOCK.
702         Suggested by Larry Jones.
703
704 2005-04-15  Hrvoje Niksic  <hniksic@xemacs.org>
705
706         * ptimer.c: Check that _POSIX_TIMERS is defined as well as > 0.
707         Problem reported by Steven M. Schweda.
708
709 2005-04-14  Hrvoje Niksic  <hniksic@xemacs.org>
710
711         * http.c (skip_short_body): Print the skipped body data in debug
712         mode.
713         (skip_short_body): Don't skip more than 4k of body data.
714         (skip_short_body): Return whether the skipping was successful.
715         (gethttp): If skip_short_body failed, invalidate the connection.
716
717 2005-04-12  Gisle Vanem  <giva@bgnett.no>
718
719         * ftp.c (getftp): Ditto.
720
721         * http.c (gethttp): Open the output file in binary mode.
722
723 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
724
725         * hash.c: Conditionalize including config.h on HAVE_CONFIG_H
726         instead of on STANDALONE.
727
728 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
729
730         * gen_sslfunc.c (ssl_print_errors): Made static.
731         (ssl_print_errors): Eliminate potentially dangerous fixed-size
732         error buffer.  Passing NULL to ERR_error_string causes it to use
733         its own static buffer, which is fine for our purposes.
734
735         * gen_sslfunc.c: Include gen_sslfunc.h.  Make the declarations of
736         ssl_init and ssl_conect match the actual definitions.
737         (ssl_connect): Simply return a boolean, the SSL context is no
738         longer useful as a return value.
739
740         * retr.c: Don't include SSL headers; we don't need them.
741
742 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
743
744         * config-post.h: Don't define _VA_LIST under Solaris; it breaks
745         compilation with GCC 3.4 under Solaris 10.  (It was defined to
746         avoid a warning with previous versions of GCC.)
747
748 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
749
750         * xmalloc.c (register_ptr): Warn the user to increase SZ prior to
751         aborting.
752
753 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
754
755         * convert.c (convert_cleanup): Free converted_files.
756
757 2005-04-10  Hrvoje Niksic  <hniksic@xemacs.org>
758
759         * wget.h (DEBUGP): Use __builtin_expect to give a hint to GCC that
760         opt.debug is false in the vast majority of cases.
761
762 2005-04-10  Hrvoje Niksic  <hniksic@xemacs.org>
763
764         * config-post.h: Declare alloca as void *, not char *.
765
766 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
767
768         * recur.c (download_child_p): When -p is used, (temporarily)
769         ignore accept/reject rules for HTMLs, even when they are at the
770         maximum recursion depth.  That is because with -p we are, if
771         necessary, overstepping the max. depth to get the requisites.
772
773 2004-06-12  Larry Jones <lawrence.jones@ugsplm.com>
774
775         * recur.c (download_child_p): Correct the logic in check number 6:
776         test opt.reclevel (not DEPTH) against INFINITE_RECURSION.
777
778 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
779
780         * url.c: Use "static const" in preference to "const static".
781         Sun's cc warns that "storage class after type is obsolescent".
782
783         * url.c (urlchr_table): Don't mark ~ as unsafe, too many broken
784         web sites are confused when ~ is changed to %7E.  Their servers
785         redirect /%7Efoo/ to /~foo/, which Wget again accesses using %7E,
786         causing further redirections, therefore looping infinitely.  See
787         Debian bug #301624 for an example.
788
789 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
790
791         * alloca.c: Include wget.h to be able to use xmalloc.  In addition
792         to defining malloc to xmalloc, also define free to xfree.
793
794 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
795
796         * http-ntlm.c (ntlm_output): Use "char", not "unsigned char" for
797         ntlmbuf.  Our base64 functions accept char anyway.
798         (ntlm_output): Join up the format string, since we nominally
799         support K&R compilers.
800         (ntlm_output): Ditto.
801
802 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
803
804         * ptimer.c: Use Windows timers under Cygwin, whose POSIX timer
805         implementation is incomplete.
806
807 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
808
809         * ptimer.c (struct ptimer): Remove the unused initialized field.
810
811         * ptimer.c: Renamed function parameters from WT (which used to
812         stand for wget_timer or wtimer) to PT.
813
814 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
815
816         * ptimer.c (posix_init): Be smarter about choosing clocks.  In
817         decreasing order of preference, use CLOCK_MONOTONIC,
818         CLOCK_HIGHRES, and CLOCK_REALTIME.
819         (ptimer_allocate): Removed.
820
821         * ptimer.c: Refactor the code by cleanly separating the
822         architecture-dependent code from the architecture-independent
823         code.
824
825 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
826
827         * ptimer.c (ptimer_init): Explicitly check that
828         _POSIX_MONOTONIC_CLOCK is *both* defined and >=0.  (Undefined
829         symbols are >=0.)
830
831 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
832
833         * ptimer.c (ptimer_diff): Fix typo affecting Windows build.
834
835 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
836
837         * ptimer.c (ptimer_init): In fact, _POSIX_MONOTONIC_CLOCK needs to
838         be >= 0.
839
840         * ptimer.c (ptimer_init): Check whether _POSIX_MONOTONIC_CLOCK is
841         defined instead of whether it's greater than 0.  glibc defines it
842         to 0, but still makes it available via sysconf.
843
844 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
845
846         * mswindows.c (str_to_int64): Rename OVERFLOW and UNDERFLOW to
847         INT64_OVERFLOW and INT64_UNDERFLOW, since those names are used.
848
849 2005-04-07  Hrvoje Niksic  <hniksic@xemacs.org>
850
851         * ptimer.c: New file.  Move the "wtimer" functions from utils.c to
852         this file and rename them to ptimer_.
853
854 2005-04-07  Hrvoje Niksic  <hniksic@xemacs.org>
855
856         * host.c (NO_ADDRESS): Define NO_ADDRESS only after the system
857         headers have been included.
858
859 2005-04-06  Hrvoje Niksic  <hniksic@xemacs.org>
860
861         * http.c (pconn): Include NTLM data, which is per-connection.
862         (known_authentication_scheme_p): Recognize NTLM authorization.
863         (create_authorization_line): Call ntlm_input and ntlm_output.
864
865         * http-ntlm.c: New file, donated by Daniel Stenberg and originally
866         written for curl, heavily modified for Wget.
867
868         * utils.c (base64_encode): Relocated from http.c, since it is now
869         used by http-ntlm.c, and will possibly be used elsewhere.
870         (base64_decode): New function, originally based on code from GNU
871         recode.
872
873 2005-04-02  Hrvoje Niksic  <hniksic@xemacs.org>
874
875         * ftp.c (ftp_loop): Ditto.
876
877         * ftp-basic.c (ftp_pasv): Use the xzero shorthand for memset(0).
878         (ftp_lpsv): Ditto.
879
880 2005-04-05  Mauro Tortonesi  <mauro@ferrara.linux.it>
881
882         * Makefile.in: removed string_t.c from list of source files.
883
884 2005-04-04  Mauro Tortonesi  <mauro@ferrara.linux.it>
885
886         * string_t.c: Removed.
887         
888         * string_t.h: Removed.
889
890 2005-04-02  Hrvoje Niksic  <hniksic@xemacs.org>
891
892         * url.c (rewrite_shorthand_url): Only accept recognized schemes.
893         That way "foo:80" will correctly be rewritten to "http://foo:80"
894         instead of left unchanged and ultimately rejected because of
895         "unsupported scheme foo".
896
897 2005-03-31  Hrvoje Niksic  <hniksic@xemacs.org>
898
899         * utils.c (number_to_string): Avoid explicit 64-bit constants;
900         construct them by multiplication at compile-time.
901
902         * utils.c, elsewhere: Don't append "L" to 32-bit integer
903         constants; we aren't really compilable on 16-bit systems anyway.
904
905         * hash.c (prime_size): Remove primes larger than 2^31, but include
906         2^31-1, which is prime.
907
908 2005-03-30  Hrvoje Niksic  <hniksic@xemacs.org>
909
910         * utils.c (string_set_to_array): New function.
911
912         * convert.c: Replace the use of "slists" with sets/hash-tables,
913         which in fact suit the intended purpose much better.
914         downloaded_html_list is removed altogether.
915
916 2005-03-29  Hrvoje Niksic  <hniksic@xemacs.org>
917
918         * ftp.h (enum): Rename GLOBALL, GETALL, and GETONE to
919         GLOB_GLOBALL, GLOB_GETALL, and GLOB_GETONE to avoid conflict with
920         Linux headers.
921
922 2005-03-29  Hrvoje Niksic  <hniksic@xemacs.org>
923
924         * utils.c (numdigit): More correct handling of negative numbers.
925
926 2005-03-21  Hrvoje Niksic  <hniksic@xemacs.org>
927
928         * http.c (gethttp): Print the human-readable size.
929
930         * ftp.c (getftp): Print the human-readable size of the file to be
931         downloaded.
932
933         * utils.c (human_readable): New function.
934
935         * utils.c: Renamed "legible" to "with_thousand_seps",
936         "legible_large_int" to "with_thousand_seps_large", and "legible_1"
937         to "add_thousand_seps".
938
939 2005-03-21  Hrvoje Niksic  <hniksic@xemacs.org>
940
941         * http.c (gethttp): Inhibit persistent connections when talking to
942         proxies, as mandated by RFC 2068.
943
944 2005-03-20  Hrvoje Niksic  <hniksic@xemacs.org>
945
946         * url.c (unescape_single_char): New function.
947         (url_escape_dir): Use it to unescape slashes in directory
948         components.
949         (url_string): Escape unsafe chars in host name, except for the ':'
950         charaters, which can appear in IPv6 addresses.
951
952         * main.c (main): Don't access the cookie jar directly.
953
954         * log.c (escnonprint_internal): Correctly calculate the needed
955         string size.  Don't forget the buffer's new size after having
956         reallocated it.
957         (log_cleanup): New function.  Free the escnonprint ring data.
958
959         * init.c (cleanup): Don't free the cookie jar explicitly, it is
960         now done by http_cleanup.
961         (cleanup): opt.user_headers is now a vector, free it with
962         free_vec.
963
964         * http.c (gethttp): Make sure to free the request data, the status
965         message, and the response data before returning from the function.
966         (save_cookies): New function.
967         (http_cleanup): Free the cookie jar here.
968
969         * hash.c: Renamed string_hash to hash_string and ptrhash to
970         hash_pointer.  Exported hash_pointer.
971
972         * xmalloc.c: Organized malloc_table (previously malloc_debug) as a
973         simple EQ hash table.  register_ptr and unregister_ptr are now of
974         O(1) complexity.
975
976         * xmalloc.c: Renamed "*_debug" to debugging_* and "*_real" to
977         checking_*.
978
979 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
980
981         * utils.c (debug_test_md5): Moved to gen-md5.c.
982
983         * mswindows.h: Don't declare inet_ntop, since we don't use it.
984
985         * mswindows.h: For consistency, also wrap closesocket, it being
986         a Winsock call.
987
988         * mswindows.h: Don't declare sleep and usleep; we're defining
989         xsleep now.
990
991         * mswindows.h (mkdir): Don't special-case Borland C, _mkdir
992         works there as well.
993
994         * host.c: Don't include winsock header files; the correct ones
995         are already included by mswindows.h.
996
997         * mswindows.c (xsleep): Round toward the nearest millisecond
998         in an attempt to avoid average short sleeps.
999
1000         * utils.c (wtimer_granularity): Report correct values for
1001         Windows timers and for high-resolution timers.
1002
1003         * utils.c (wtimer_initialize_once): New function, called to
1004         initialize the timer frequency.
1005
1006         * utils.c: Replace the use of GetSystemTime with high-resolution
1007         counters under Windows.  When high-resolution counters are
1008         unavailable, use GetTickCount().
1009
1010 2005-03-15  Hrvoje Niksic  <hniksic@xemacs.org>
1011
1012         * retr.c (fd_read_body): Undo the 2004-11-18 change.  Instead,
1013         always be "exact".
1014
1015 2005-03-17  Hrvoje Niksic  <hniksic@xemacs.org>
1016
1017         * ftp-basic.c (ftp_login): Don't free the string if ftp_response
1018         returned an error status because the line didn't get allocated in
1019         the first place.
1020
1021 2005-03-15  Hrvoje Niksic  <hniksic@xemacs.org>
1022
1023         * http.c (read_http_response_head): Limit the response size to 64k
1024         bytes.
1025
1026         * retr.c (fd_read_hunk): Accept a MAXSIZE argument that limits the
1027         number of bytes the function is allowed to allocate.
1028         (fd_read_line): Limit the line to 4096 bytes.
1029
1030 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
1031
1032         * wget.h: Include options.h after wgint has been defined.
1033
1034         * options.h (struct options): Declare options processed with
1035         cmd_bytes as wgint, not long.
1036
1037 2005-03-18  Hrvoje Niksic  <hniksic@xemacs.org>
1038
1039         * init.c (cmd_file): Use concat_strings.
1040
1041         * http.c (basic_authentication_encode): Use concat_strings.
1042
1043         * ftp-ls.c (ftp_index): Use concat_strings.
1044
1045         * ftp-basic.c (ftp_request): Use concat_strings.
1046
1047         * utils.c (concat_strings): New function.
1048
1049 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
1050
1051         * init.c (simple_atof): Handle negative numbers; skip whitespace
1052         before the number.
1053         (simple_atoi): Ditto.  Also, check for overflow and underflow.
1054         (cmd_number): Bail out on negative numbers.
1055         (parse_bytes_helper): Ditto.
1056
1057 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
1058
1059         * http.c (gethttp): Handle multiple Set-Cookie headers sent by
1060         remote server.
1061
1062 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
1063
1064         * init.c (defaults): Use passive FTP by default.
1065
1066 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
1067
1068         * mswindows.c: Provide wrappers to Winsock functions that set
1069         errno to WSAGetLastError() in case of failure.  Also provide a
1070         Windows-specific version of strerror.
1071
1072         * mswindows.h: Wrap calls to socket, bind, connect, recv, send,
1073         select, getsockname, getpeername, and setsockopt.
1074
1075 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
1076
1077         * url.c (url_parse): Reject port numbers larger than 65535.  We
1078         also check for overflow while parsing port numbers.
1079
1080 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
1081
1082         * utils.c (read_file): Don't use wgint for file size; LFS won't
1083         work since the file is mmap'ed as a whole.
1084
1085         * options.h: Don't include stdio.h.
1086
1087         * log.c: Ditto.
1088
1089         * init.c: Disambiguate assignment from non-zero test to avoid
1090         Borland C warning.
1091
1092         * http.c (response_new): Don't needlessly post-increment count.
1093
1094         * hash.c: Include stdio.h.
1095
1096         * gnu-md5.h: Don't include stdio.h.
1097
1098         * getopt.h (struct option): Always use const.
1099
1100         * ftp.c (getftp): Avoid unnecessary assignment to RES to avoid
1101         Borland C warning.
1102
1103         * ftp-ls.c: Disambiguate assignment from non-zero test to avoid
1104         Borland C warning.
1105
1106         * cmpt.c (strptime_internal): Don't initialize rp_backup when
1107         !_NL_CURRENT to avoid Borland C warning.
1108
1109 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
1110
1111         * utils.c (fopen_excl): Fix parse error when O_BINARY is
1112         available.
1113
1114 2005-03-05  Hrvoje Niksic  <hniksic@xemacs.org>
1115
1116         * url.c (url_file_name): Don't allow hosts named ".." to be
1117         appended as path elements.
1118
1119 2005-03-03  Hrvoje Niksic  <hniksic@xemacs.org>
1120
1121         * retr.c (retrieve_url): Escape location header.
1122
1123         * http.c (print_server_response_1): Escape server response when
1124         printing it.
1125         (gethttp): Escape host name, status message, location header, and
1126         content type.
1127         (http_loop): Escape error message from server.
1128
1129         * host.c (lookup_host): Escape host name when printing it.
1130
1131         * ftp.c (getftp): Escape user name when printing it.
1132         (getftp): Escape remote file and directory for printing.
1133         (getftp): Escape server listing when printing it.
1134         (ftp_retrieve_list): Escape link name and file name.
1135         (ftp_retrieve_glob): Escape file name.
1136
1137         * ftp-basic.c (ftp_response): Escape server response when printing
1138         it.
1139
1140         * cookies.c (parse_set_cookies): Escape the cookie field when
1141         printing it.
1142         (parse_set_cookies): Escape contents of remote header.
1143         (cookie_handle_set_cookie): Escape host name and cookie domain.
1144
1145         * connect.c (connect_to_ip): Escape the host name.
1146
1147         * log.c (escnonprint): New function, used for printing strings
1148         coming from the server that possibly contain non-ASCII characters.
1149         (escnonprint_uri): Ditto.
1150
1151 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
1152
1153         * ftp.c (getftp): Ditto.
1154
1155         * http.c (gethttp): When we're not supposed to overwrite files,
1156         use fopen_excl to open the file and recompute the file name.
1157
1158         * log.c (redirect_output): Use unique_create to avoid a race
1159         condition.
1160
1161         * mswindows.c (fake_fork_child): Use unique_create.
1162
1163         * utils.c (fopen_excl): New function that opens a stdio stream
1164         with the O_EXCL flag (where available).
1165         (unique_create): New function, like unique_name, but also creating
1166         the file and returning a file pointer.
1167         (fork_to_background): Use unique_create to create the file
1168         immediately to avoid race condition with multiple instances of
1169         wget -b.
1170
1171 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
1172
1173         * host.c (lookup_host): Test for AI_ADDRCONFIG directly, instead
1174         of checking for HAVE_GETADDRINFO_AI_ADDRCONFIG.
1175
1176 2005-02-23  Hrvoje Niksic  <hniksic@xemacs.org>
1177
1178         * host.c (is_valid_ipv6_address): Move here from url.c.
1179         (lookup_host): If the address is numeric, don't print the
1180         "resolving..." line, don't set up DNS timeouts, and set the
1181         AI_NUMERICHOST hint, where available.
1182
1183 2005-02-26  Gisle Vanem  <giva@bgnett.no>
1184
1185         * utils.c: Use the nnnLL syntax under GCC.  Define struct_stat to
1186         struct _stati64 under __MINGW32__ as well as under MS VC.
1187
1188 2005-02-26  Hrvoje Niksic  <hniksic@xemacs.org>
1189
1190         * utils.c: Use the nnnI64 syntax for __int64 constants under all
1191         Windows compilers.
1192         (SPRINTF_WGINT): Use "%I64" under all Windows compilers.
1193
1194         * mswindows.h (WGINT_MAX): Use the nnnI64 syntax for
1195         __int64 constants under all Windows compilers.
1196         (struct_stat): Use `struct stati64' under Borland C.
1197         (fstat): Don't redefine to _fstati64 under Borland.
1198
1199         * mswindows.c: Define str_to_int64 under Borland C as well as
1200         under (older) Visual C.
1201
1202 2005-02-25  Hrvoje Niksic  <hniksic@xemacs.org>
1203
1204         * ftp.c (getftp): Initialize err to suppress compiler warning.
1205
1206 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
1207
1208         * ftp.c (ftp_expected_bytes): Fix bug that caused infloop because
1209         of not correctly skipping the '(' character.
1210
1211 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
1212
1213         * mswindows.c (wget_ftello): Removed.
1214
1215         * mswindows.h: Remove bogus definition of stat.
1216         (wget_ftello): Remove the leftover ftello replacement.
1217
1218 2005-02-20  Hrvoje Niksic  <hniksic@xemacs.org>
1219
1220         * mswindows.c (wget_ftello): Wget's replacement for ftello.
1221
1222         * utils.c (file_size): Use ftello where available.
1223
1224         * ftp-ls.c (ftp_parse_unix_ls): Use str_to_wgint to parse the file
1225         size.
1226         (ftp_parse_winnt_ls): Ditto.
1227
1228         * ftp-basic.c (ftp_size): Use str_to_wgint to convert number to
1229         wgint; pass 10 instead of 0 as the BASE argument.
1230
1231         * ftp.c (ftp_expected_bytes): Use str_to_wgint to parse the file
1232         size.
1233
1234         * sysdep.h (LARGE_INT_FMT): Use __int64 as LARGE_INT on
1235         MSVC/Windows; print it with "%I64".
1236
1237         * wget.h: Define a `wgint' type, normally aliased to (the possibly
1238         64-bit variant of) off_t.
1239
1240         * all: Use `wgint' instead of `long' for numeric variables that
1241         can hold file sizes.
1242
1243         * utils.c (number_to_string): Support printing of `wgint'
1244         argument.
1245         (number_to_static_string): New function.
1246
1247         * all: Replace printf("%ld", long_value) with printf("%s",
1248         number_to_static_string(wgint_value)).
1249
1250 2005-02-18  Mauro Tortonesi <mauro@ferrara.linux.it>
1251
1252         * main.c: Added the --ftp-passwd command line option.
1253
1254         * init.c: Renamed command passwd to ftppasswd.
1255
1256 2005-02-11  Mauro Tortonesi <mauro@ferrara.linux.it>
1257         
1258         * string_t.c: Fixed a bug in do_escape and triggered escape of
1259         backslashes in string_escape to avoid ambiguities in the result
1260         string.
1261         
1262 2005-02-10  Mauro Tortonesi <mauro@ferrara.linux.it>
1263
1264         * string.h: Renamed to string_t.h to fix a compilation conflict 
1265         with the string.h header in the standard C library.
1266         
1267         * string.c: Renamed to string_t.c for consistency with string.h.
1268         
1269         * string_t.c: Ditto.
1270
1271         * string_t.h: Ditto.
1272         
1273 2004-12-31  Mauro Tortonesi <mauro@ferrara.linux.it>
1274
1275         * string.c: New file.
1276
1277         * string.h: New file.
1278
1279         * Makefile.in: Added string.c to the list of modules to compile.
1280
1281         * main.c: Updated copyright.
1282
1283 2004-11-18  Ulf Harnhammar <ulf.harnhammar.9485@student.uu.se>
1284
1285         * ftp-ls.c: Fixed a problem in ftp_parse_winnt_ls that could allow a
1286         malicious remote FTP server to crash wget.
1287
1288 2004-11-18  Hans-Andreas Engel <engel@node.ch>
1289
1290         * http.c: Enable --convert-links (-k) when a single page is downloaded
1291         via --output-document (-O).
1292
1293 2004-11-18  Mauro Tortonesi <mauro@deepspace6.net>
1294
1295         * connect.c: Minor correction to the comment in front of fd_peek.
1296
1297 2004-11-18  Leonid Petrov <nouser@lpetrov.net>
1298
1299         * retr.c: Fix a timeout problem in fd_read_body when using http_proxy.
1300
1301 2004-11-15  YAMAZAKI Makoto <Yamazaki.Makoto@fujixerox.co.jp>
1302
1303         * netrc.c: Fix termination by assertion bug in netrc parsing.
1304
1305 2004-05-09  David Fritz  <zeroxdf@att.net>
1306
1307         * mswindows.c (fake_fork): Pass entire command line to the child
1308         process.
1309
1310 2004-03-31  Hrvoje Niksic  <hniksic@xemacs.org>
1311
1312         * http.c (gethttp): Fix typo: SCHEME_SSL -> SCHEME_HTTPS.
1313
1314 2004-03-30  Hrvoje Niksic  <hniksic@xemacs.org>
1315
1316         * http.c (gethttp): Send the Proxy-Authorization header over
1317         non-SSL connections too.
1318
1319 2004-03-25  David Fritz  <zeroxdf@att.net>
1320
1321         * mswindows.c (fake_fork_child): Ignore error code when
1322         OpenFileMapping() fails; assume it failed because the object does
1323         not exist.
1324
1325 2004-03-24  David Fritz  <zeroxdf@att.net>
1326
1327         * mswindows.c (fake_fork): New function.
1328
1329         * mswindows.c (fork_to_background): Use it.
1330
1331 2004-03-19  David Fritz  <zeroxdf@att.net>
1332
1333         * mswindows.c (ws_hangup): Incorporate old fork_to_background()
1334         code.  Add event name argument.
1335         (fork_to_backgorund): Now a simple wrapper around ws_hangup().
1336         (ws_handler): Correctly handle the case when neither CTRLC_BACKGND
1337         nor CTRLBREAK_BACKGND are defined.  Don't bother handling close,
1338         logoff, or shutdown events.  Call ws_hangup() with the correct
1339         event name; don't assume it was CTRL+Break.
1340
1341 2004-03-19  Hrvoje Niksic  <hniksic@xemacs.org>
1342
1343         * url.c (url_parse): Decode %HH sequences in host name.
1344
1345 2004-03-04  Hrvoje Niksic  <hniksic@xemacs.org>
1346
1347         * convert.c (local_quote_string): Quote "#" as "%23" and "%" as
1348         "%25" when creating links to local files.
1349
1350 2004-03-02  David Fritz  <zeroxdf@att.net>
1351
1352         * mswindows.c (ws_percenttitle): Guard against future changes by
1353         doing nothing if the proper variables have not been initialized.
1354         Clamp percentage value.
1355
1356 2004-03-04  Gisle Vanem  <giva@bgnett.no>
1357
1358         * retr.c (fd_read_body): Don't change console title if quiet.
1359
1360 2004-02-25  David Fritz  <zeroxdf@att.net>
1361
1362         * mswindows.c (set_sleep_mode): Remove argument and return value.
1363         Call GetModuleHandle() instead of LoadLibrary()/FreeLibrary() for
1364         kernel32.dll.  Use typedef for function-pointer.  Don't cast
1365         l-value.  Don't use dereference operator when calling through
1366         function-pointer.
1367         (ws_startup): Update call to set_sleep_mode().
1368         (ws_cleanup): Remove call to set_sleep_mode().
1369
1370 2004-02-23  David Fritz  <zeroxdf@att.net>
1371
1372         * http.c (http_loop): Ditto.
1373
1374         * ftp.c (ftp_loop_internal): Update call to ws_changetitle().
1375
1376         * main.c (main): Don't bother calling ws_changetitle().
1377
1378         * mswindows.h (ws_changetitle): Update prototype.
1379
1380         * mswindows.c (ws_changetitle): Remove second argument.  Use
1381         xfree_null().
1382         (ws_percenttitle): Only update title when percentage has changed.
1383
1384 2004-02-23  David Fritz  <zeroxdf@att.net>
1385
1386         * mswindows.h: Ditto.
1387
1388         * mswindows.c: Misc. formatting/comment tweaks throughout.
1389
1390 2004-02-20  David Fritz  <zeroxdf@att.net>
1391
1392         * main.c (print_help): Remove call to ws_help().
1393
1394         * mswindows.c (ws_help): Remove.
1395
1396         * mswindows.h (ws_help): Remove.
1397
1398 2004-02-16  David Fritz  <zeroxdf@att.net>
1399
1400         * init.c (home_dir): Use aprintf() instead of xmalloc()/sprintf().
1401         Under Windows, if $HOME is not defined, use the directory that
1402         contains the Wget binary instead of hard-coded `C:\'.
1403         (wgetrc_file_name): Under Windows, look for $HOME/.wgetrc then, if
1404         not found, look for wget.ini in the directory of the Wget binary.
1405
1406         * mswindows.c (ws_mypath): Employ slightly more robust methodology.
1407         Strip trailing path separator.
1408
1409 2004-02-06  Hrvoje Niksic  <hniksic@xemacs.org>
1410
1411         * http.c (gethttp): Respect --ignore-length.
1412         (gethttp): Inhibit keep-alive if --ignore-length is specified.
1413
1414 2004-02-06  Hrvoje Niksic  <hniksic@xemacs.org>
1415
1416         * connect.c (sockaddr_set_data): Zero out
1417         sockaddr_in/sockaddr_in6.  Apparently BSD-derived stacks need this
1418         when binding a socket to local address.
1419
1420 2004-02-04  Hrvoje Niksic  <hniksic@xemacs.org>
1421
1422         * hash.c: Make the file compilable outside Wget source tree when
1423         -DSTANDALONE is used.
1424
1425 2004-01-29  Hrvoje Niksic  <hniksic@xemacs.org>
1426
1427         * utils.c (determine_screen_width): Return 0 if not running on
1428         Windows or on a TIOCGWINSZ-capable system.
1429
1430 2004-01-28  David Fritz  <zeroxdf@att.net>
1431
1432         * utils.c (determine_screen_width): Correctly determine console
1433         width under Windows.
1434
1435 2004-01-28  Christian Biere  <christianbiere@gmx.de>
1436
1437         * progress.c (bar_set_params): Fixed syntax error when HAVE_ISATTY
1438         was undefined.
1439
1440         * ftp.c (ftp_loop_internal): Allocate a larger buffer in case
1441         "try" gets translated to something large.  Ditto in http_loop in
1442         http.c.
1443
1444         * http.c (response_header_copy): Don't write to buf[BUFSIZE].
1445
1446         * ftp-opie.c (skey_response): Eliminate unnecessary string
1447         concatenation; just call gen_md5_update twice.
1448
1449 2004-01-25  Hrvoje Niksic  <hniksic@xemacs.org>
1450
1451         * utils.c (xsleep): Don't call usleep with values larger than
1452         1,000,000.
1453
1454 2003-12-16  Hrvoje Niksic  <hniksic@xemacs.org>
1455
1456         * http.c (gethttp): Fix generation of `Content-Length'.
1457
1458 2003-12-15  Gisle Vanem  <giva@bgnett.no>
1459
1460         * url.c (url_skip_credentials): Fixed return value; 'url' if no
1461         credentials.
1462
1463 2003-12-14  Hrvoje Niksic  <hniksic@xemacs.org>
1464
1465         * url.c (url_skip_credentials): Return a pointer directly.
1466
1467 2003-12-14  Hrvoje Niksic  <hniksic@xemacs.org>
1468
1469         * url.c (url_file_name): Ditto.
1470         (parse_errors): Ditto.
1471
1472         * retr.c (retr_rate): Ditto.
1473
1474         * progress.c (create_image): Ditto.
1475
1476         * netrc.c (parse_netrc): Ditto.
1477
1478         * main.c (struct cmdline_option): Ditto.
1479         (redirect_output_signal): Ditto.
1480
1481         * init.c (commands): Ditto.
1482
1483         * ftp-ls.c (ftp_index): Ditto.
1484
1485         * cookies.c (check_domain_match): Declare the pointer to a literal
1486         string as `const'.
1487
1488 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
1489
1490         * retr.c (fd_read_body): Pass total size to progress_create, not
1491         the remaining amount.
1492
1493 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
1494
1495         * retr.c (fd_read_body): Don't fiddle with "interactive timeout"
1496         if read timeout is unset.
1497
1498 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
1499
1500         * connect.c (bind_local): Don't set the IPV6_V6ONLY option on the
1501         socket.
1502
1503 2003-12-06  Hrvoje Niksic  <hniksic@xemacs.org>
1504
1505         * url.c (url_file_name): Respect the setting of
1506         opt.protocol_directories.
1507
1508         * main.c (main): Only check for ret=='?' when longindex is unset.
1509         (option_data): New option --protocol-directories.
1510
1511 2003-12-06  Hrvoje Niksic  <hniksic@xemacs.org>
1512
1513         * ftp.c (getftp): Ditto.
1514
1515         * http.c (gethttp): Correctly calculate bandwidth as total data
1516         read divided with download time.
1517
1518         * retr.c (fd_read_body): Separate the return values for data
1519         written and read.
1520
1521 2003-12-05  Hrvoje Niksic  <hniksic@xemacs.org>
1522
1523         * http.c (H_REDIRECTED): Respect the HTTP/1.1 "303 See Other"
1524         response code.
1525         Suggested by Dan Razzell.
1526
1527 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
1528
1529         * retr.c (fd_read_body): Report the amount of data *written* as
1530         amount_read.  This is not entirely logical, but that's what the
1531         callers expect, and it's not easy to change.
1532
1533         * ftp.c (ftp_loop_internal): Ditto.
1534
1535         * http.c (http_loop): Be smarter about assigning restval; if we're
1536         in the nth pass of a download, simply use the information we have
1537         about how much data has been retrieved as restval.
1538
1539         * ftp.c (getftp): Ditto for FTP "REST" command.
1540
1541         * http.c (gethttp): When the server doesn't respect range, skip
1542         the first RESTVAL bytes of the read body.  Never truncate the
1543         output file.
1544
1545         * retr.c (fd_read_body): Support skipping initial STARTPOS octets.
1546
1547 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
1548
1549         * http.c (skip_short_body): Renamed skip_body to skip_short_body;
1550         don't bother calling fd_read_body.
1551
1552 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
1553
1554         * retr.c (fd_read_body): Sanitize arguments and document them
1555         better.  Make sure the timer is created and updated only if
1556         necessary.  Updated callers.
1557
1558 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
1559
1560         * http.c (skip_body): New function.
1561         (gethttp): Use it to skip the body of the responses we don't care
1562         to download.  That allows us to reuse the connection.
1563         (gethttp): Trust that the HEAD requests will not generate body
1564         data.
1565
1566         * retr.c (fd_read_body): Don't write to OUT if it's NULL.
1567
1568 2003-11-29  Hrvoje Niksic  <hniksic@xemacs.org>
1569
1570         * http.c (gethttp): Initialize SSL only the first time when SSL
1571         URL is downloaded.
1572
1573 2003-11-29  Hrvoje Niksic  <hniksic@xemacs.org>
1574
1575         * cookies.c (cookie_header): Only generate the contents of the
1576         header, not the leading "Cookie: " or the trailing "\r\n".
1577
1578         * http.c (gethttp): When adding headers specified with `--header',
1579         allow them to override the headers generated by Wget.
1580
1581         * init.c (cmd_spec_header): Made opt.user_headers a vector.
1582
1583         * http.c (request_new): New function.  Returns a request structure
1584         which can be modified in various ways, most notably by adding HTTP
1585         headers to the request.
1586         (request_set_header): New function for adding the header to the
1587         request.  If the header is already available, it gets replaced.
1588         (request_send): Construct and send the request.
1589         (gethttp): Use the request_* functions to generate the request.
1590
1591 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
1592
1593         * http.c (gethttp): Don't include the Proxy-Authorization header
1594         in the request tunneled through proxy.
1595
1596 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
1597
1598         * http.c (gethttp): Use the CONNECT handle to establish SSL
1599         passthrough through non-SSL proxies.
1600
1601 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
1602
1603         * init.c: Don't #include netinet/Winsock stuff.
1604
1605 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
1606
1607         * http.c: Deleted the old functions header_process,
1608         header_extract_number, header_exists, header_strdup,
1609         http_process_range, http_process_none, http_process_type, and
1610         http_process_connection.
1611
1612         * http.c (response_new): New function.
1613         (response_header_bounds): Ditto.
1614         (response_header_copy): Ditto.
1615         (response_header_strdup): Ditto.
1616         (response_status): Ditto.
1617         (gethttp): Use the new response_* functions to parse the response.
1618         Support HTTP/0.9 responses.
1619
1620 2003-11-27  Hrvoje Niksic  <hniksic@xemacs.org>
1621
1622         * progress.c (create_image): Don't calculate ETA if nothing has
1623         been downloaded yet, because it causes division by zero.
1624
1625 2003-11-27  Hrvoje Niksic  <hniksic@xemacs.org>
1626
1627         * connect.c (bind_local): Rename sa_len to addrlen because IRIX
1628         headers define sa_len as a macro.
1629
1630 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
1631
1632         * html-parse.c (convert_and_copy): Remove embedded newlines when
1633         AP_TRIM_BLANKS is specified.
1634
1635 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
1636
1637         * ftp.c: Set con->csock to -1 where rbuf_uninitialize was
1638         previously used.
1639
1640 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
1641
1642         * Makefile.in (http$o): Added the trailing backslash that was
1643         missing.
1644
1645 2003-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
1646
1647         * headers.c: Removed.  The file is no longer relevant, now that no
1648         special handling of headers is done by the rbuf code.  Moved
1649         portions to http.c.
1650
1651 2003-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
1652
1653         * rbuf.c: Removed.
1654
1655         * ftp-basic.c (ftp_response): Use fd_read_line.  No longer use
1656         struct rbuf.  Updated all callers.
1657
1658         * http.c (gethttp): Use fd_read_head to read all the headers in
1659         one go.
1660         (next_header): New function.
1661
1662         * retr.c (fd_read_line): New function: reads a line from FD,
1663         leaving the rest of the data unread.
1664         (fd_read_head): New function.
1665
1666         * connect.c (fd_peek): New function, implements peeking.
1667         (poll_internal): New function.
1668         (fd_read): Use it.
1669         (fd_write): Ditto.
1670         (fd_peek): Ditto.
1671         (fd_register_transport): Allow registering a "peeker" callback.
1672
1673 2003-11-20  Hrvoje Niksic  <hniksic@xemacs.org>
1674
1675         * connect.c: Renamed xread/xwrite/xclose to
1676         fd_read/fd_write/fd_close.  The "x" prefix is not appropriate
1677         because the semantics have diverged from read/write/close too
1678         significantly.  Updated all callers.
1679
1680 2003-11-20  Hrvoje Niksic  <hniksic@xemacs.org>
1681
1682         * connect.c (sock_write): It's not necessary to initialize RES.
1683
1684 2003-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
1685
1686         * main.c (main): Don't reference opt.ipv4_only and opt.ipv6_only
1687         if IPv6 is disabled.
1688
1689 2003-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
1690
1691         * connect.c (socket_has_inet6): Only compile it if IPv6 is enabled
1692         and AI_ADDRCONFIG is missing.
1693
1694 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
1695
1696         * gen_sslfunc.c (ssl_init_prng): Warn the user when using a weak
1697         random seed.
1698
1699 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
1700
1701         * host.c (address_list_contains): Renamed address_list_find to
1702         address_list_contains because its result is boolean.
1703
1704 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
1705
1706         * connect.c (select_fd): Return 1 if select is not available.
1707
1708 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
1709
1710         * connect.c (connect_to_host): Don't reference address list after
1711         releasing it.
1712
1713 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
1714
1715         * main.c (print_help): Fix alignment of FTP options output.
1716
1717 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
1718
1719         * host.c (lookup_host): Check for the ability to create IPv6
1720         sockets here.
1721
1722         * init.c (defaults): Don't auto-set --inet4-only on IPv6-less
1723         systems.
1724
1725 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
1726
1727         * main.c (print_help): Fix typo in `-O' help message.  Fix docs of
1728         -Y/--proxy.  Fix docs of `--cookies' and `--glob'.  Improve docs
1729         of --convert-links.  Fix docs of SSL options.
1730
1731 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
1732
1733         * ftp-basic.c: Don't include <arpa/inet.h> and others because
1734         they're no longer needed.
1735
1736 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
1737
1738         * main.c (main): Don't allow setting of both opt.ipv4_only and
1739         opt.ipv6_only.
1740
1741         * init.c (defaults): Mark opt.ipv4_only specially when set
1742         automatically.
1743
1744 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
1745
1746         * host.c (lookup_host): Use AI_ADDRCONFIG only if the family is
1747         unspecified.  This ensures that specifying `--no-inet4' on systems
1748         where IPv6 resolves, but doesn't work behaves the same regardless
1749         of the availability of AI_ADDRCONFIG.
1750
1751 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
1752
1753         * host.c: Don't refer to the now-removed function
1754         forget_host_lookup in the documentation of lookup_host.
1755
1756 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
1757
1758         * http.c (persistent_available_p): Correctly specify the endpoint
1759         argument to socket_ip_address.
1760         (gethttp): When printing the "reusing connection to..." message,
1761         specify the host name of the reused connection, not the current
1762         host name.  That makes more sense because it provides a useful
1763         piece of information -- we know to which host we're supposed to
1764         connect anyway!
1765
1766 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
1767
1768         * init.c: Make sure the options are in alphabetic order!
1769
1770         * host.c (lookup_host): Merge lookup_host_passive and lookup_host
1771         after all -- having both would result in some code duplication.
1772         (lookup_host): Set hints.ai_family to AF_INET if ipv4_only is
1773         requested.  Likewise, set it to AF_INET6 for ipv6_only.  Specify
1774         AI_ADDRCONFIG where available.
1775         (lookup_host): New flag LH_REFRESH that specifies that a cached
1776         entry for HOST should be refreshed.
1777         (cache_query): New function.
1778         (cache_store): Ditto.
1779         (cache_remove): Ditto.
1780         (forget_host_lookup): No longer necessary, replaced with static
1781         function cache_remove.
1782
1783 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
1784
1785         * main.c: Enable -4 and -6 only if IPv6 is enabled.
1786
1787 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
1788
1789         * connect.c (register_transport): Renamed from register_extended.
1790         Explain the intended usage.
1791
1792 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
1793
1794         * url.c (uri_merge): Merging "foo" and "bar" should result in
1795         "bar", not in "foo/bar".
1796         (path_simplify): Don't remove empty path elements; don't
1797         special-case leading slash.
1798         (path_simplify): Don't swallow ".."'s at the beginning of string.
1799         E.g. simplify "foo/../../bar" as "../bar", not as "bar".
1800         (append_uri_pathel): Defang ".." path element upon encountering
1801         it.
1802
1803 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
1804
1805         * http.c (persistent_available_p): Don't attempt to talk to two
1806         different SSL sites over the same secure connection.
1807
1808 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
1809
1810         * http.c (gethttp): Ditto.
1811
1812         * ftp.c (getftp): Use retryable_socket_connect_error instead of
1813         CONNECT_ERROR.
1814
1815         * wget.h (CONNECT_ERROR): Removed.
1816
1817         * connect.c (retryable_socket_connect_error): New function instead
1818         of unsupported_socket_family_error.
1819
1820 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
1821
1822         * wget.h (CONNECT_ERROR): Use it.
1823
1824         * connect.c (unsupported_socket_family_error): New function.
1825
1826 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
1827
1828         * connect.c (bind_local): Renamed bindport to bind_local; return
1829         the socket directly.  Updated callers.
1830         (accept_connection): Renamed acceptport to accept_connection;
1831         return the created socket directly.  Updated callers.
1832
1833 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
1834
1835         * init.c (defaults): Turn on opt.ipv4_only if we're compiling with
1836         IPv6, and AI_ADDRINFO is not available, and AF_INET6 sockets can't
1837         be created.
1838
1839 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
1840
1841         * host.c (lookup_host): Document the fact that the addresses are
1842         returned in order.
1843
1844 2003-11-12  Hrvoje Niksic  <hniksic@xemacs.org>
1845
1846         * utils.c: Use limits.h only where available.
1847
1848         * hash.c: Use INVALID_PTR and INVALID_PTR_BYTE.  Include limits.h.
1849
1850 2003-11-11  Hrvoje Niksic  <hniksic@xemacs.org>
1851
1852         * main.c: Added options --inet4-only and --inet6-only.
1853
1854 2003-11-11  Hrvoje Niksic  <hniksic@xemacs.org>
1855
1856         * host.c (host_errstr): Use the more standard message "Unknown
1857         host".
1858
1859 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
1860
1861         * connect.c (connect_to_host): Use that flag to decide whether to
1862         re-resolve the host name.
1863
1864         * host.c (struct address_list): Added a flag that maintains
1865         whether the connection worked at some point.
1866
1867 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
1868
1869         * host.c (lookup_host): Special-case the numeric addresses only in
1870         the non-IPv6 case.
1871
1872 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
1873
1874         * connect.c (resolve_bind_address): Call lookup_host_passive.
1875         Make sure that opt.bind_address is resolved only once.
1876
1877         * host.c (lookup_host_passive): New function, handles "passive"
1878         lookups.
1879         (lookup_host): Remove the passive flags.  Remove the
1880         family-related flags -- use ip_default_family instead.
1881
1882 2003-11-09  Hrvoje Niksic  <hniksic@xemacs.org>
1883
1884         * html-url.c: Get URLs from <object data="...">.
1885
1886 2003-11-09  Hrvoje Niksic  <hniksic@xemacs.org>
1887
1888         * main.c (option_data): Specify the command to use for --mirror.
1889
1890 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
1891
1892         * cookies.c (cookie_handle_set_cookie): Specify exact match for
1893         unspecified domains.
1894
1895 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
1896
1897         * main.c (main): Removed one-letter options `-C', `-g', `-G', and
1898         `-s'.
1899
1900 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
1901
1902         * main.c (main): Add --dont-remove-listing for backward
1903         compatibility with previous versions.
1904         (print_help): Fix typo, spotted by Dennis Smit.
1905
1906 2003-11-08  Gisle Vanem  <giva@bgnett.no>
1907
1908         * ftp-basic.c: Support Windows-2000 ftp servers. Win-2000 *is*
1909         Win-NT 5.0 so calling it ST_WINNT is okay I guess.
1910
1911 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
1912
1913         * progress.c (update_speed_ring): Clear the speed ring when the
1914         download stalls.
1915
1916         * retr.c (get_contents): Specify 0.95s read timeout, so that the
1917         progress gauge can be updated even when data arrives very slowly
1918         or stalls.
1919
1920 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
1921
1922         * utils.c (wtimer_allocate): Bless the use of wtimer_read on a
1923         timer that has merely been allocated because get_contents() does
1924         that.
1925         (wtimer_update): Abort if the timer is not initialized.
1926
1927 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
1928
1929         * retr.c (get_contents): Pass the timer to limit_bandwidth().
1930
1931         * utils.c (wtimer_update): New function instead of wget_elapsed;
1932         just update the timer, but don't return anything.
1933         (wtimer_read): Read and return the last known value of the timer.
1934
1935 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
1936
1937         * http.c (persistent_available_p): Instead of matching all the
1938         addresses of HOST and last host, determine the peer's IP address
1939         with socket_ip_address and see if that address is one of those
1940         HOST resolves to.
1941
1942         * host.c (address_list_match_all): Removed.
1943         (address_list_find): New function, finds an IP address in the
1944         address list.
1945
1946         * ftp.c (ftp_do_pasv): Get the peer's address here, and pass it to
1947         ftp_epsv so it doesn't need to call getpeername.
1948
1949         * ftp-basic.c (ftp_port): Use socket_ip_address instead of
1950         getpeername.
1951         (ftp_lprt): Ditto.
1952
1953         * connect.c (socket_ip_address): Replaces conaddr, generalized to
1954         either get peer's or local address.
1955         (sockaddr_get_data): Made local to this file.
1956
1957 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
1958
1959         * hash.c (HASH_POSITION): Explicitly accept the hash function.
1960         (grow_hash_table): Extract ht->hash_function outside the loop.
1961         (hash_table_remove): Ditto.
1962         (hash_table_clear): Fill entries with 0xff to clear them.
1963         (hash_table_remove): Mark entries as deleted with the correct
1964         marker.
1965
1966 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
1967
1968         * http.c (persistent_available_p): No reason for the host lookup
1969         to be silent -- it's a lookup like any other.
1970
1971 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
1972
1973         * connect.c (register_extended): Check that fd >= 0.
1974
1975 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
1976
1977         * connect.c (LAZY_RETRIEVE_INFO): Set LAST_INFO.
1978
1979 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
1980
1981         * hash.c (NON_EMPTY): Use the all-bit-set value as the marker that
1982         the field is empty.  This allows NULL pointer and 0 value to be
1983         used as keys, which is necessary for the connect.c code to work
1984         when fd==0.
1985         (hash_table_new): Fill mappings with 0xff.
1986         (grow_hash_table): Ditto.
1987
1988 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
1989
1990         * url.c (url_parse): Allow empty ports.
1991
1992 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
1993
1994         * main.c (print_help): Break the help string into multiple chunks.
1995         (cmdline_option): New option handler OPT_FUNCALL.  Generalized
1996         HANDLE_CMD to generic DATA.
1997         (option_data): Use the new OPT_FUNCALL feature.
1998
1999 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
2000
2001         * log.h: Declare log_init, log_close, and
2002         log_request_redirect_output here.
2003
2004 2003-11-05  Dennis Smit  <ds@nerds-incorporated.org>
2005
2006         * main.c: (main): added --preserve-permissions option.
2007
2008         * ftp.c (ftp_retrieve_list): added support for
2009         --preserve-permissions option.
2010
2011         * init.c: added support for --preserve-permission option.
2012
2013         * option.h: added support for --preserve-permission option.
2014
2015 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
2016
2017         * main.c (init_switches): New function.  Convert option_data to
2018         long_options and short_options, which can be fed to getopt_long.
2019         (main): Execute command-line options by consulting option_data.
2020
2021 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
2022
2023         * gen_sslfunc.c (ssl_read): Implement a more correct check for
2024         EINTR.
2025         (ssl_write): Ditto.
2026         (init_ssl): Use a global SSL context.
2027
2028 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
2029
2030         * connect.c (xclose): Free INFO even if it doesn't provide a
2031         closer.
2032
2033 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
2034
2035         * connect.c: Updated all callers of
2036         iread/ssl_iread/iwrite/ssl_iwrite to use xread and xwrite instead.
2037
2038         * rbuf.h (struct rbuf): Removed the SSL member because SSL is
2039         handled automatically by xread.
2040
2041         * hash.c (ptrhash): Made private.
2042         (ptrcmp): Ditto.
2043         (inthash): Removed.
2044
2045         * connect.c (select_fd): Don't set errno, leave it to the caller.
2046
2047         * gen_sslfunc.c (connect_ssl): Use register_extended to register
2048         SSL callbacks for communication with SSL-enabled endpoints.
2049         (ssl_read): New function.
2050         (ssl_write): Ditto.
2051         (ssl_poll): Ditto.
2052         (ssl_close): Ditto.
2053
2054         * connect.c (register_extended): New function -- register
2055         callbacks for basic socket operations.
2056         (xread): Ditto.
2057         (xwrite): Ditto.
2058         (xclose): Ditto.
2059         (sock_read): New function, default implementation for reading.
2060         (sock_write): Ditto for writing.
2061         (sock_poll): Ditto for polling.
2062         (sock_close): Ditto for closing.
2063
2064 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
2065
2066         * connect.c (bindport): Fix compilation under pre-C99 compilers.
2067
2068 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
2069
2070         * connect.c (connect_to_ip): More compact error checking.
2071         (bindport): Don't treat failed setsockopt as a fatal error.
2072
2073 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
2074
2075         * connect.c (resolve_bind_address): Use a more accurate error
2076         message -- we're not binding to ANY, we're disabling bind
2077         altogether.
2078
2079 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
2080
2081         * cookies.c (save_cookies_mapper): Respect the setting of
2082         keep-session-cookies.
2083         (cookie_jar_load): Import session cookies.
2084         Based on code submitted by Nicolas Schodet.
2085
2086         * utils.c (datetime_str): Use information in TM when it's
2087         non-NULL.
2088
2089         * main.c (main): New option `--keep-session-cookies'.
2090
2091 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
2092
2093         * Makefile.in (realclean): Delete config.h.in.
2094
2095 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
2096
2097         * config-post.h: New file, included from now autogenerated
2098         config.h.in.
2099
2100 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
2101
2102         * progress.c (progress_handle_sigwinch): Don't call
2103         determine_screen_width() from the signal handler.  Instead, just
2104         set a volatile variable.
2105         (bar_create): Check whether SIGWINCH was received.
2106         (bar_update): Ditto.
2107
2108         * sysdep.h: Define SYSTEM_FNMATCH only if HAVE_FNMATCH_H is true.
2109
2110 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
2111
2112         * utils.c (xsleep): New function.  Uses nanosleep where available,
2113         resuming sleeps interrupted by signals.  Updated callers of sleep
2114         and usleep to use xsleep.
2115
2116 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
2117
2118         * ftp-basic.c (ftp_login): Remove shadowing (and bogus)
2119         declaration of SEED.
2120
2121 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
2122
2123         * log.c (logvprintf): Documented better.  Renamed to
2124         log_vprintf_internal to avoid confusion with the public API
2125         functions logprintf and logputs.
2126
2127 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
2128
2129         * wget.h (N_): Don't parenthesize argument.
2130
2131 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
2132
2133         * host.h (ADDRESS_IPV4_DATA): Don't take the address of in.s_addr
2134         because that doesn't work on machines that define it as bitfield.
2135
2136 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
2137
2138         * connect.c (select_fd): Generalize the third argument into WAIT,
2139         so that the caller can request waiting for both read and write.
2140         Updated callers.
2141
2142 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
2143
2144         * html-url.c (cleanup_html_url): Destroy the hash tables, don't
2145         just call free on them.
2146         (init_interesting): Use hash_table_put instead of string_set_add
2147         because we don't need the strdup that the latter function
2148         performs.
2149
2150         * init.c (cleanup): Don't pass NULL to cookie_jar_delete.
2151
2152         * xmalloc.c (xfree_real): Abort when passed a NULL pointer.
2153         (xfree_debug): Print at the file and line of the offending call to
2154         free.
2155
2156 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
2157
2158         * wget.h: Retired the `boolean' type.  Moved the DEFAULT_LOGFILE
2159         define to log.h.  Moved the INFINITE_RECURSION define to recur.h.
2160
2161         * xmalloc.h: Renamed FREE_MAYBE to xfree_null and moved the
2162         definition from wget.h to xmalloc.h.
2163
2164 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
2165
2166         * html-parse.c (decode_entity): New function; split the decoding
2167         of entities here.
2168         (convert_and_copy): Use it to decode entities.
2169         (decode_entity): Handle the &apos entity.
2170         (decode_entity): Don't decode Latin 1 numeric entities.  Don't
2171         decode &#0.
2172
2173 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
2174
2175         * ftp-opie.c (calculate_skey_response): Use uint32_t instead of
2176         `unsigned long' for the cheksum array.  Document the function.
2177
2178 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
2179
2180         * connect.c (acceptport): Don't call select_fd when timeout is not
2181         requested.
2182
2183 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
2184
2185         * host.c: Removed the ip_default_family global variable.
2186
2187         * host.c (lookup_host): Document the function.  Fixed declaration
2188         of VEC.
2189
2190 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
2191
2192         * various: Use new macros xnew, xnew0, xnew_array, and xnew0_array
2193         in various places.
2194
2195 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
2196
2197         * wget.h: Move declarations of malloc and logging code to
2198         xmalloc.h and log.h respectively to unclutter this file.
2199         (STRDUP_ALLOCA): Made it side-effect free.
2200
2201         * xmalloc.h: New files.  Define macros xnew, xnew0, xnew_array,
2202         and xnew0_array.
2203
2204         * xmalloc.c: New file.  Move the xmalloc routines here.
2205
2206 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
2207
2208         * connect.c (sockaddr_set_data): Remove the broken code that
2209         checked for NULL address.
2210
2211 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
2212
2213         * host.c (address_list_from_single): Removed.
2214         (address_list_from_ipv4_addresses): Renamed from
2215         address_list_from_vector.
2216
2217 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
2218
2219         * sysdep.h (CLOSE): Don't call close on file descriptors less than
2220         0, i.e. on uncreated sockets.
2221
2222         * connect.c (resolve_bind_address): Work on struct sockaddr
2223         directly.
2224         (connect_to_host): Replacement for connect_to_many.  Resolve HOST
2225         and connect to any of its addresses.  If we can't connect and the
2226         host name lookup was cached, try to resolve it again.  This should
2227         fix problems with hosts behind dynamic DNS.  Updated all callers.
2228         (connect_to_ip): Replacement for connect_to_one.  Removed SILENT;
2229         added the argument PRINT instead.  Updated all callers.
2230         (set_connection_host_name): Removed.
2231
2232         * host.c (address_list_address_at): New function instead of
2233         address_list_copy_one. It returns a pointer to ip_address *, so
2234         it's not necessary to copy the data.
2235         (address_list_cached_p): New function.
2236         (forget_host_lookup): Ditto.
2237
2238         * connect.c: Got rid of the MSOCK global variable.  Made bindport
2239         return the local socket it creates.  Added a new argument to
2240         acceptport, the socket to call accept on.  Updated callers.
2241         (closeport): Removed.
2242
2243         * connect.c: Moved the sockaddr code from host.c to this file,
2244         because most of that stuff is used for connecting, and has nothing
2245         to do with host names anyway.
2246         (sockaddr_set_data, sockaddr_get_data): New functions, replace the
2247         old sockaddr_set_address, sockaddr_set_port, sockaddr_get_address,
2248         and sockaddr_get_port.
2249
2250 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
2251
2252         * sysdep.h: Use `S >= 8' rather than `S == 8' when looking for
2253         large integers.
2254
2255 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
2256
2257         * url.c (append_uri_pathel): New argument ESCAPED_P that says
2258         whether [B, E) is to be treated as URL-escaped or not.  If
2259         ESCAPED_P is false, don't unescape the region.
2260         (url_file_name): u->file is not URL-escaped.
2261
2262 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
2263
2264         * retr.c (retrieve_from_file): Use retrieve_tree for
2265         page-requisites.
2266
2267         * main.c (main): Don't define opt.recursive when -p is used.
2268         Instead, make sure that recursion is used for HTTP in that case.
2269
2270 2003-10-29  Hrvoje Niksic  <hniksic@xemacs.org>
2271
2272         * host.h: Defined accessors for elements of ip_address.  Updated
2273         all callers.
2274         (address_list_match_all): Use memcmp in the non-IPv6 case.
2275
2276         * wget.h (CONNECT_ERROR): Don't retry connecting if connect()
2277         returned EAFNOSUPPORT.
2278
2279 2003-10-27  Mauro Tortonesi <mauro@deepspace6.net>
2280
2281         * connect.h: changed bindport prototype and added the related
2282         BIND_ON_IPV4_ONLY and BIND_ON_IPV6_ONLY flags.
2283
2284         * connect.c: changed bindport and resolve_bind_address to allow
2285         protocol-version specific DNS resolution. modified conaddr,
2286         acceptport and connect_to_one to make use of struct
2287         sockaddr_storage and of the new ip_address structure.
2288
2289         * ftp-basic.c: added LPRT/LPSV (RFC1639) support, refactored
2290         PORT/PASV (RFC959) and EPRT/EPSV (RFC2428) support code.
2291
2292         * ftp.c: added the ftp_do_port and ftp_do_pasv functions to
2293         handle FTP over IPv6.
2294
2295         * ftp.h: changed prototype of ftp_epsv and added prototypes for
2296         ftp_lpsv, ftp_lprt and ftp_eprt.
2297
2298         * host.c: renamed the
2299         wget_sockaddr_set_address and wget_sockaddr_get_addr, and
2300         wget_sockaddr_{s,g}et_port couples to sockaddr_{s,g}et_address and
2301         sockaddr_{g,s}et_port respectively.  changed
2302         address_list_match_all, address_list_from_addrinfo sockaddr_len,
2303         pretty_print_address, lookup_host, sockaddr_{s,g}et_address and
2304         sockaddr_{g,s}et_port to make use of struct sockaddr_storage and
2305         of the new ip_address structure.  removed map_ipv4_to_ip and
2306         map_ip_to_ipv4.
2307
2308         * host.h: redefined structure ip_address and removed structure
2309         wget_sockaddr.
2310
2311 2003-10-26  Hrvoje Niksic  <hniksic@xemacs.org>
2312
2313         * sysdep.h: Include inttypes.h where available.
2314
2315         * host.c: Switch from u_int32_t to uint32_t.
2316
2317 2003-10-26  Hrvoje Niksic  <hniksic@xemacs.org>
2318
2319         * netrc.c (parse_netrc): Reset the QUOTE flag after the closing
2320         quote.
2321
2322 2003-10-25  Hrvoje Niksic  <hniksic@xemacs.org>
2323
2324         * url.c (is_valid_ipv6_address): Reformat to GNU coding style.
2325         Use enums for NS_IN* constants.  Use ISXDIGIT.
2326
2327         * convert.c (construct_relative): Document better how the function
2328         works.
2329
2330 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
2331
2332         * config.h.in: Deploy preprocessor magic to avoid Ultrix's
2333         <netdb.h> include <bitypes.h> which defines its own u_int32_t.
2334         Reported by Bernhard Simon.
2335
2336 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
2337
2338         * version.c: Bump version.
2339
2340 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
2341
2342         * url.c: Ditto.
2343
2344         * html-parse.c (advance_declaration): Don't use trailing comma in
2345         enum because older compilers don't support it.
2346
2347         * utils.c: Don't redefine HAVE_SIGSETJMP.
2348
2349 2003-10-16  Hrvoje Niksic  <hniksic@xemacs.org>
2350
2351         * convert.c (construct_relative): Don't handle absolute files
2352         specially -- for example, -P/tmp/foo shouldn't imply that
2353         converted files must refer to "/tmp/foo/..."!
2354
2355 2003-10-15  Hrvoje Niksic  <hniksic@xemacs.org>
2356
2357         * http.c: Consider status 307 a valid redirect.
2358
2359 2003-10-15  Philip Stadermann  <philip.stadermann@credativ.de>
2360
2361         * ftp.c (ftp_retrieve_glob): Correctly loop through the list whose
2362         elements might have been deleted.
2363
2364 2003-10-13  Hrvoje Niksic  <hniksic@xemacs.org>
2365
2366         * html-url.c (tag_handle_meta): Set the Refresh link to expect
2367         HTML.
2368         (append_one_url): Renamed to append_url.
2369
2370 2003-10-13  Hrvoje Niksic  <hniksic@xemacs.org>
2371
2372         * sysdep.h: Only define u_int32_t.
2373
2374 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
2375
2376         * utils.c (large_int_to_string): Use snprintf() to print the
2377         number.  This will work even on systems where libc doesn't
2378         understand %lld, but the compiler does, because it will use our
2379         snprintf replacement.
2380
2381         * init.c (parse_bytes_helper): New function.
2382         (cmd_bytes): Use it to parse bytes, but cast the result to long.
2383         (cmd_bytes_large): Ditto, but store the result to LARGE_INT.  Used
2384         for --quota so that --quota=10G works even on machines without
2385         long long.
2386
2387         * options.h (struct options): Declare quota as LARGE_INT.
2388
2389         * retr.c (downloaded_exceeds_quota): Removed.
2390         (downloaded_increase): Ditto.
2391         (total_downloaded_bytes): New variable, replaces opt.downloaded,
2392         which was the wrong place for it anyway.  Updated callers of
2393         downloaded_exceeds_quota and downloaded_increase to check this
2394         variable directly.
2395
2396         * sysdep.h: Get rid of VERY_LONG_TYPE.  Use LARGE_INT for the same
2397         purpose, defined as `long', `long long' or `double', depending on
2398         size of long and whether long long is available.
2399
2400 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
2401
2402         * sysdep.h: Also check size of short for int32_t.
2403
2404 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
2405
2406         * host.c (lookup_host): Use u_int32_t to store the result of
2407         inet_addr().  That removes the need for offset fiddling, caring
2408         about endian-ness, etc.
2409
2410         * sysdep.h: Define int32_t and u_int32_t if not available.
2411
2412 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
2413
2414         * ftp-basic.c (ftp_epsv): Use socklen_t * as the third argument to
2415         getpeername.
2416
2417         * config.h.in: Define socklen_t stub.
2418
2419         * host.c (sockaddr_len): Return socklen_t.
2420
2421         * connect.c (conaddr): Use socklen_t as the third argument to
2422         accept, getsockname, and connect.
2423
2424 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
2425
2426         * recur.c (retrieve_tree): Don't descend into documents that are
2427         not expected to contain HTML, regardless of their content-type.
2428
2429         * html-url.c (tag_url_attributes): Record which attributes are
2430         supposed to yield HTML links that can be followed.
2431         (tag_find_urls): Propagate that information to the caller through
2432         struct urlpos.
2433
2434 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
2435
2436         * hash.c (find_mapping): Return the next available mapping when
2437         the key is not found, not NULL.
2438         (hash_table_put): Use find_mapping to find the storage for the new
2439         data.
2440         (hash_table_put): Grow the table before exceeding maximum
2441         fullness, not afterwards.
2442
2443 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
2444
2445         * hash.c (hash_table_new): Slightly change the meaning of the
2446         first parameter.  Instead of being the minimum initial size, it is
2447         now the minimum number of items that the hash table can take
2448         without needing to resize.
2449
2450 2003-10-09  Hrvoje Niksic  <hniksic@xemacs.org>
2451
2452         * html-url.c (init_interesting): Initialize interesting_tags and
2453         interesting_attributes as hash tables.  This simplifies the code
2454         immensely because hash tables handle allocation and remove
2455         duplicates automatically.
2456         (find_tag): Removed.
2457         (collect_tags_mapper): Instead of calling find_tag, simply get the
2458         entry from interesting_tags hash table, which is both simpler and
2459         faster.
2460
2461 2003-10-09  Hrvoje Niksic  <hniksic@xemacs.org>
2462
2463         * hash.c (hash_table_get): Declare hash-table argument as const.
2464         (find_mapping): Ditto.
2465         (hash_table_get_pair): Ditto.
2466         (hash_table_contains): Ditto.
2467         (hash_table_count): Ditto.
2468
2469 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
2470
2471         * html-url.c (get_urls_html): Parse the appropriate flags to
2472         html-parse.c.
2473
2474         * html-parse.c (map_html_tags): Accept FLAGS from the caller
2475         instead of examining OPT.
2476
2477 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
2478
2479         * html-url.c (find_tag): Switch to binary search.
2480
2481 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
2482
2483         * main.c (print_help): Fix typo; stured -> stored.
2484
2485 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
2486
2487         * getopt.c: Add definitions of getopt_long and getopt_long_only.
2488
2489 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
2490
2491         * config.h.in: Renamed DEBUG to ENABLE_DEBUG.  ENABLE_DEBUG is, I
2492         think, a better name, because it implies that debugging output is
2493         merely possible, not "on by default", as might be construed from
2494         just DEBUG.
2495
2496 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
2497
2498         * ftp.c (has_insecure_name_p): Define it here.
2499
2500         * utils.c (has_wildcards_p): Define it here.
2501
2502         * sysdep.h: Declare fnmatch-related macros here, if not using
2503         system fnmatch().  Update .c files to not declare fnmatch.h
2504         directly.
2505
2506         * cmpt.c (fnmatch): Moved here.  Use it only under non-GNU libc.
2507
2508 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
2509
2510         * getopt.c: Newer version, imported from Free libit.
2511
2512 2003-10-07  Hrvoje Niksic  <hniksic@xemacs.org>
2513
2514         * cookies.c (struct cookie): Remove unused backpointer to cookie
2515         jar.
2516
2517 2003-10-07  Hrvoje Niksic  <hniksic@xemacs.org>
2518
2519         * cmpt.c (memmove): Comment out, since it's no longer used.
2520
2521         * cookies.c (cookie_jar_generate_cookie_header): Allocate room for
2522         chains in one pass.
2523         (find_chains_of_host): Assume that the caller has allocated DEST
2524         to be sufficiently large to take all the data.
2525         (eliminate_dups): Run through the array and eliminate dups on the
2526         fly instead of using memmove.
2527         (cookie_jar_process_set_cookie): Free cookie->domain before
2528         re-setting it.
2529
2530 2003-10-05  Gisle Vanem  <giva@bgnett.no>
2531
2532         * mswindows.c (set_sleep_mode): Fix type of
2533         _SetThreadExecutionState.
2534
2535 2003-10-05  Hrvoje Niksic  <hniksic@xemacs.org>
2536
2537         * utils.c (file_size): Return -1 if fopen() returns NULL.  Prior
2538         to this patch, wget --post-file=nosuchfile dumped core.
2539
2540 2003-10-04  Gisle Vanem  <giva@bgnett.no>
2541
2542         * mswindows.c (run_with_timeout): Use WaitForSingleObject to wait
2543         for thread termination.
2544
2545 2003-10-04  Hrvoje Niksic  <hniksic@xemacs.org>
2546
2547         * log.c: Use `...' in function definitions; ansi2knr will convert
2548         them to va_dcl.  This allowed removal of the ugly VA_START_1 and
2549         VA_START_2 macros.
2550
2551 2003-10-03  Gisle Vanem  <giva@bgnett.no>
2552
2553         * connect.c: And don't include them here.
2554
2555         * mswindows.h: Include winsock headers here.
2556
2557 2003-10-03  Hrvoje Niksic  <hniksic@xemacs.org>
2558
2559         * html-parse.c (convert_and_copy): Move variable declarations
2560         before statements.
2561
2562 2003-10-02  Gisle Vanem  <giva@bgnett.no>
2563         
2564         * mswindows.c (run_with_timeout): For Windows: Run the 'fun' in a
2565         thread via a helper function. Continually query the thread's
2566         exit-code until finished or timed out.
2567
2568 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
2569
2570         * wget.h (XMALLOC_ARRAY): Removed.
2571         (ALLOCA_ARRAY): Ditto.
2572
2573         * html-parse.c: Renamed alloca_p to resized.
2574         (GROW_ARRAY): Renamed DO_REALLOC_FROM_ALLOCA to GROW_ARRAY and
2575         returned it to html-parse.c, since nothing else was using it.
2576
2577 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
2578
2579         * retr.c (retrieve_url): Initialize DUMMY storage for DT.  Caught
2580         by valgrind.
2581
2582 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
2583
2584         * html-parse.c (convert_and_copy): Handle numeric entities in
2585         hexadecimal, &#xHH.
2586         (convert_and_copy): Copy the contents directly to the pool without
2587         a stack-allocated intermediary.
2588
2589 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
2590
2591         * utils.c (alarm_set): New function; use either setitimer or alarm
2592         to set up the alarm.
2593         (alarm_cancel): New function; cancel the alarm set up by
2594         alarm_set.
2595         (run_with_timeout): Use them.
2596
2597 2003-10-01  Hrvoje Niksic  <hniksic@xemacs.org>
2598
2599         * url.c (url_parse): Don't leak memory when a reencoded URL turns
2600         out to be invalid.
2601
2602         * url.c (parse_errors): Mark error messages for translation.
2603         (url_error): Translate error messages returned to the caller.
2604
2605 2003-10-01  Hrvoje Niksic  <hniksic@xemacs.org>
2606
2607         * ftp.c (ftp_loop_internal): Initialize TMRATE to NULL to shut up
2608         the compiler.
2609
2610 2003-09-26  Gisle Vanem  <giva@bgnett.no>
2611
2612         * src/mswindows.c: Added ws_percenttitle() showing progress in the
2613         window titlebar. Called from retr.c. Secured ws_mypath().
2614
2615         * windows/config.h.ms: alloca() prototype not needed.  Removed
2616         "#undef ENABLE_NLS"; should be in Makefile IMHO. Moved
2617         WGET_USE_STDARG from mswindows.h to config.ms.h because of #ifdef
2618         in log.c. (MSVC's vararg.h and stdarg.h are incompatible).
2619
2620 2003-09-29  Aaron Hawley <Aaron.Hawley@uvm.edu>
2621
2622         * ftp.c (getftp): --spider option should now work with FTP
2623         downloads.
2624         (ftp_loop_internal): quiet reports and calculations of downloads
2625         when --spider option set, nor try deleting when --delete-after
2626         also set.
2627         (ftp_loop): --spider will skip HTML-ification of .listing file.
2628
2629 2003-09-26  Gisle Vanem  <giva@bgnett.no>
2630
2631         * mswindows.c (read_registry): Removed.
2632         (set_sleep_mode): New function.
2633         (windows_main_junk): Call it.
2634
2635 2003-09-26  Gisle Vanem  <giva@bgnett.no>
2636
2637         * mswindows.c (read_registry): Fix invocation of registry
2638         functions.
2639
2640         * mswindows.c (read_registry): Condition definitions of sleep and
2641         usleep with not HAVE_SLEEP and HAVE_USLEEP respectively.  Define
2642         HAVE_SLEEP and HAVE_USLEEP under __DMC__.
2643
2644 2003-09-24  Hrvoje Niksic  <hniksic@xemacs.org>
2645
2646         * url.c (url_escape_1): Revert unintentional change to lowercase
2647         xdigit escapes.
2648         (url_escape_dir): Document that this function depends on the
2649         output of url_escape_1.
2650
2651 2003-09-23  Hrvoje Niksic  <hniksic@xemacs.org>
2652
2653         * progress.c (create_image): Print the current ETA if we're done
2654         with the download.
2655         (create_image): Change '-' display char to '+' in the progress bar.
2656
2657         * Makefile.in (clean): Remove .libs.
2658
2659 2003-09-23  Hrvoje Niksic  <hniksic@xemacs.org>
2660
2661         * cookies.c (struct cookie): New flag domain_exact.
2662         (update_cookie_field): Skip leading dot in domain.
2663         (find_matching_chains): Match numeric addresses exactly; don't
2664         needlessly copy HOST to the stack.
2665         (matching_cookie): Added argument HOST.  If cookie->domain_exact
2666         is set, check that HOST is equal to cookie->domain.
2667         (cookie_jar_load): Only use TAB as delimiter.  Document the
2668         meaning of DOMAIN-FLAG.  Skip leading dot in domain.
2669         (cookie_jar_load): Don't ignore DOMAIN-FLAG -- instead, set
2670         domain_exact to true if DOMAIN-FLAG is false.
2671         (save_cookies_mapper): If domain_exact is false, prepend the
2672         domain with dot, like Mozilla does.
2673
2674 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
2675
2676         * progress.c (create_image): Print the initial part of the
2677         download with '-' characters, analogous to how dot progress prints
2678         the initial part with ','.
2679
2680         * hash.c (ptrhash): New function.
2681         (ptrcmp): Ditto.
2682         (hash_table_new): Default to identity hash table.
2683
2684 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
2685
2686         * safe-ctype.h (_sch_test): The cast of BIT to unsigned char was
2687         broken -- _sch_istable bitmasks are 16-bit, not 8-bit!  Cast BIT
2688         to unsigned short instead.
2689
2690 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
2691
2692         * url.c (path_simplify): Instead of calls to memmove, handle "./"
2693         and "../" by advancing pointers.
2694
2695 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
2696
2697         * retr.c (getproxy): Moved from url.c.
2698
2699         * convert.c: Split off link conversion from url.c into separate
2700         file.  Also included the book-keeping stuff from recur.c.
2701
2702 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
2703
2704         * init.c: Improved documentation of functions.
2705         (cmd_boolean): Attempt to make code that tries to avoid calling
2706         strcmp for "speed" a bit more readable.
2707
2708         * init.c (simple_atof): Report error on encountering non-digit,
2709         non-"." character.
2710         (simple_atoi): Replacement for myatoi(), calling interface
2711         compatible with simple_atof.  Updated myatoi's callers.
2712
2713 2003-09-21  Bertrand Demiddelaer  <bert@b3rt.org>
2714
2715         * url.c (path_simplify): Would read two bytes past the end of the
2716         string in the "./" case.
2717
2718 2003-09-21  Matthew J. Mellon  <mellon@tymenet.com>
2719
2720         * http.c (gethttp): Recognize content-type "application/xhtml+xml"
2721         as what Wget considers "text/html".
2722
2723 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
2724
2725         * connect.c (connect_with_timeout): Made timeout type double.
2726
2727         * options.h (struct options): New members read_timeout,
2728         dns_timeout, and connect_timeout.
2729         Use them.
2730
2731 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
2732
2733         * init.c (simple_atof): New function.
2734         (cmd_time): Use it.
2735         (cmd_bytes): Accept things like "1.5k" and such.  Use simple_atof
2736         to parse decimals.
2737
2738         * retr.c (limit_bandwidth): Adjust each sleep by the error of the
2739         previous one.
2740
2741 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
2742
2743         * main.c (main): Use setoptval() for setting the options.  Use
2744         run_command for `-e'.
2745
2746         * init.c (parse_line): Rewritten to return COMIND right away.
2747         Changed linkage to static.
2748         (run_wgetrc): Use the available comind when calling setval, so it
2749         doesn't have to be computed twice.
2750         (setval_internal): New function, runs the command's action without
2751         any error checking.
2752         (setoptval): New function, does what setval used to do, but exits
2753         in case of error.
2754         (run_command): New function.
2755
2756 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
2757
2758         * connect.c (select_fd): Change MAXTIME's type to double.  Handle
2759         its decimal part.
2760
2761         * retr.c (sleep_between_retrievals): In the random-wait case, use
2762         random_float() to wait between 0 and 2*opt.wait seconds.
2763
2764         * utils.c (run_with_timeout): Accept `double' timeouts.  Correctly
2765         handle timeout values in (0, 1) range.
2766         (random_float): New function.
2767
2768         * options.h (struct options): Change the types of wait, waitretry,
2769         and timeout to double.
2770
2771         * init.c (cmd_time): Accept floating point time.
2772
2773 2003-09-20  Hrvoje Niksic  <hniksic@xemacs.org>
2774
2775         * retr.c (get_contents): Cosmetic fixes.
2776
2777 2003-09-20  Hrvoje Niksic  <hniksic@xemacs.org>
2778
2779         * url.c (uri_merge): Get rid of uri_merge_1.
2780         (uri_merge): Merge "foo//", "bar" as "foo//bar", not "foo///bar",
2781         i.e. don't add an extra slash merely because BASE ends with two
2782         slashes.
2783         (parse_credentials): Renamed from parse_uname.  Rewrittern in
2784         standard [beg, end) calling style.
2785         (url_skip_credentials): Renamed from url_skip_uname.  Made static.
2786         (url_skip_credentials): Include # and ; as terminators.  Old code
2787         would mistakenly consider "http://foo.com#hniksic@iskon.hr" to
2788         contain a username.
2789         (url_skip_scheme): Removed because it was unused.
2790         (url_has_scheme): Require "scheme" to be at least one char long.
2791
2792 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
2793
2794         * url.c (url_file_name): Expect NULL dir_prefix.
2795
2796         * init.c (cmd_file): Use a macro to prevent multiple #ifdef
2797         WINDOWS.
2798         (defaults): Set dir_prefix to NULL by default.
2799
2800 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
2801
2802         * safe-ctype.h (_sch_test): Cast BIT to unsigned char, like latest
2803         gcc does.
2804
2805 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
2806
2807         * wget.h (BOUNDED_TO_ALLOCA): Evaluate PLACE only once.
2808         (ARRAY_SIZE): Renamed to countof.  All callers updated.
2809
2810 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
2811
2812         * main.c (main): New option --strict-comments.
2813
2814         * html-parse.c (find_comment_end): New function: simple BM search
2815         for "-->".
2816         (map_html_tags): Use it if looking at a comment and not in strict
2817         comments mode.
2818
2819 2003-09-17  Aurelien Marchand  <artaxerxes@users.sf.net>
2820
2821         * ftp.h: Added OS400 system in enum
2822         * ftp-basic.c: recognize OS400 systems
2823         * ftp.c: don't prepend the CWD if talking to OS400, since it
2824         breaks the change in library
2825
2826 2003-09-18  Hrvoje Niksic  <hniksic@xemacs.org>
2827
2828         * retr.c (get_contents): Pass the correct argument to ssl_iread.
2829
2830 2003-09-18  Hrvoje Niksic  <hniksic@xemacs.org>
2831
2832         * safe-ctype.h: Don't #define ctype.h macros to errors because
2833         that loses when someone #include's ctype.h after safe-ctype.h.
2834
2835 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
2836
2837         * url.c: Undef U, W, C after use.
2838
2839 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
2840
2841         * init.c (cmd_spec_restrict_file_names): Allow the OS setting to
2842         be augmented by ",nocontrol" which means don't escape the control
2843         characters, but otherwise keep OS settings.
2844
2845         * url.c (file_unsafe_char): Deleted.
2846         (append_uri_pathel): Query filechr_table directly.
2847         (filechr_table): Separated Unix, Windows, and control-unsafe
2848         characters.
2849
2850 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
2851
2852         * url.c (url_escape_1): New function.
2853         (url_escape): Use it.
2854         (sync_path): Handle pathological cases where u->file and u->dir
2855         contain really strange characters.
2856         (ENCODE): Deleted.
2857         (REENCODE): Deleted.
2858
2859 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
2860
2861         * url.c (url_file_name): Don't reallocate FNAME if the file
2862         doesn't exist, as is usually the case.
2863
2864         * utils.c (unique_name): New flag allow_passthrough.
2865
2866 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
2867
2868         * utils.c (wtimer_sys_diff): Convert the time difference to signed
2869         __int64, then to double.  This works around MS VC++ 6 which can't
2870         convert unsigned __int64 to double directly.
2871
2872 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
2873
2874         * Makefile.in (clean): Also remove the core.<number> files
2875         produced by recent Linux systems.
2876
2877 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
2878
2879         * http.c (post_file): Don't pad the file if it's not large
2880         enough.  Bail out instead.
2881
2882 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
2883
2884         * retr.c (get_contents): Reduce the buffer size to the amount of
2885         data that may pass through for one second.  This prevents long
2886         sleeps when limiting bandwidth.
2887
2888         * connect.c (connect_to_one): Reduce the socket's RCVBUF when
2889         bandwidth limitation to small values is requested.
2890
2891 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
2892
2893         * progress.c (update_speed_ring): Moved the speed ring update to a
2894         separate function and documented it better.
2895
2896         * progress.c: Use `double' for most timers to support granularity
2897         smaller than 1ms.
2898
2899 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
2900
2901         * wget.h (XDIGIT_TO_XCHAR): Implement as index into a literal
2902         string.
2903         (XDIGIT_TO_xchar): Ditto.
2904
2905 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
2906
2907         * utils.c: Change the type of timer-related functions from long to
2908         double, for better precision.  On machines supporting gettimeofday
2909         the timers now work with granularity of less than one millisecond.
2910
2911 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
2912
2913         * cookies.c (parse_set_cookies): Fixed the parser to handle more
2914         edge conditions.
2915         (test_cookies): New function, contains a test suite for
2916         parse_set_cookies.
2917
2918 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
2919
2920         * url.c (strpbrk_or_eos): Implement as a macro under Gcc.
2921
2922 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
2923
2924         * cookies.c (parse_set_cookies): Allow trailing space in
2925         set-cookies header.  Also, allow any amount of whitespace, not
2926         only one character.  Allow empty set-cookies header without
2927         spewing an error.
2928
2929 2003-09-14  Hrvoje Niksic  <hniksic@xemacs.org>
2930
2931         * url.c (append_uri_pathel): Use opt.restrict_file_names when
2932         calling file_unsafe_char.
2933
2934         * init.c: New command restrict_file_names.
2935
2936         * main.c (main): New option --restrict-file-names[=windows,unix].
2937
2938         * url.c (url_file_name): Renamed from url_filename.
2939         (url_file_name): Add directory and hostdir prefix here, not in
2940         mkstruct.
2941         (append_dir_structure): New function, does part of the work that
2942         used to be in mkstruct.  Iterates over path elements in u->path,
2943         calling append_uri_pathel on each one to append it to the file
2944         name.
2945         (append_uri_pathel): URL-unescape a path element and reencode it
2946         with a different set of rules, more appropriate for handling of
2947         files.
2948         (file_unsafe_char): New function, uses a lookup table to decide
2949         whether a character should be escaped for use in file name.
2950         (append_string): New utility function.
2951         (append_char): Ditto.
2952         (file_unsafe_char): New argument restrict_for_windows, decide
2953         whether Windows file names should be escaped in run-time.
2954
2955         * connect.c: Include <stdlib.h> to get prototype for abort().
2956
2957 2003-09-14  Hrvoje Niksic  <hniksic@xemacs.org>
2958
2959         * utils.c (wtimer_sys_set): Extracted the code that sets the
2960         current time here.
2961         (wtimer_reset): Call it.
2962         (wtimer_sys_diff): Extracted the code that calculates the
2963         difference between two system times here.
2964         (wtimer_elapsed): Call it.
2965         (wtimer_elapsed): Don't return a value smaller than the previous
2966         one, which could previously happen when system time is set back.
2967         Instead, reset start time to current time and note the elapsed
2968         offset for future calculations.  The returned times are now
2969         guaranteed to be monotonically nondecreasing.
2970
2971 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
2972
2973         * host.c (lookup_host): Print the result of the DNS lookup.
2974
2975 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
2976
2977         * init.c (cmd_boolean): Accept yes/no along with on/off.
2978         (cmd_lockable_boolean): Ditto.
2979
2980 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
2981
2982         * init.c: New command dns_cache.
2983
2984         * main.c (main): New option --dns-cache[=off].
2985
2986 2003-09-09  Hrvoje Niksic  <hniksic@xemacs.org>
2987
2988         * config.h.in: Initialize HAVE_GETADDRINFO and ENABLE_IPV6.
2989
2990         * all: Use #ifdef ENABLE_IPV6 instead of the older INET6.  Use
2991         HAVE_GETADDRINFO for getaddrinfo-related stuff.
2992
2993 2003-09-09  Hrvoje Niksic  <hniksic@xemacs.org>
2994
2995         * url.c (url_parse): Return an error if the URL contains a [...]
2996         IPv6 numeric address and we don't support IPv6.
2997
2998 2003-09-05  Hrvoje Niksic  <hniksic@xemacs.org>
2999
3000         * url.c (is_valid_ipv6_address): Modified to not require
3001         zero-terminated strings.
3002         (is_valid_ipv4_address): Ditto.
3003
3004 2003-09-05  Mauro Tortonesi <mauro@deepspace6.net>
3005
3006         src/url.c: added RFC 2732 compliance for URL parsing. The
3007         functions is_*_address valid are a modified version of
3008         glibc 2.3.2 inet_pton's code.
3009
3010 2003-09-03  Ahmon Dancy  <dancy@dancysoft.com>
3011
3012         * main.c init.c options.h: Added --retry-connrefused option so
3013         that Connection Refused failures are treated as non-fatal (when
3014         trying to retrieve from busy servers).
3015
3016         * wget.h: New CONNECT_ERROR macro for encapsulating this
3017         modification.
3018
3019         * ftp.c http.c : Use CONNECT_ERROR macro in places where
3020         ECONNREFUSED was checked.
3021
3022 2003-01-11  Ian Abbott  <abbotti@mev.co.uk>
3023
3024         * ftp.c (ftp_retrieve_glob): Reject insecure filenames as determined
3025         by calling new function has_insecure_name_p.  This is based on a
3026         patch by Red Hat.
3027
3028         * fnmatch.c (has_insecure_name_p): New function: returns non-zero
3029         if filename starts with `/' or contains `../' and is therefore
3030         considered insecure.
3031
3032         * fnmatch.h: Declare has_insecure_name_p().
3033
3034 2002-08-03  Hrvoje Niksic  <hniksic@xemacs.org>
3035
3036         * init.c (cmd_file): Allocate RESULT correctly.
3037
3038 2002-07-24  Hrvoje Niksic  <hniksic@xemacs.org>
3039
3040         * recur.c (retrieve_tree): Check whether downloaded_html_set is
3041         non-NULL before using it.
3042
3043 2002-05-27  Hrvoje Niksic  <hniksic@arsdigita.com>
3044
3045         * html-parse.c (NAME_CHAR_P): Allow almost any character here.
3046
3047 2002-05-24  Hrvoje Niksic  <hniksic@arsdigita.com>
3048
3049         * progress.c (bar_set_params): Fall back to dot progress if the
3050         terminal type is "emacs".
3051
3052 2002-05-20  Hrvoje Niksic  <hniksic@arsdigita.com>
3053
3054         * log.c: Don't #undef WGET_USE_STDARG.
3055
3056 2002-05-16  Hrvoje Niksic  <hniksic@arsdigita.com>
3057
3058         * hash.c (prime_size): Store the offset of the prime number in the
3059         prime table.  When searching, start with the given offset.
3060         (hash_table_new): Pass the pointer to ht->prime_offset to
3061         prime_size.
3062         (grow_hash_table): Ditto.
3063         (prime_size): Make 13 the first prime to make empty hash tables
3064         slightly smaller.
3065
3066 2002-05-16  Ian Abbott  <abbotti@mev.co.uk>
3067
3068         * recur.c (download_child_p): Minor optimization to avoid an
3069         unnecessary additional call to schemes_are_similar_p function.
3070
3071 2002-05-16  Ian Abbott  <abbotti@mev.co.uk>
3072
3073         * url.c (schemes_are_similar_p): New function to test enumerated
3074         scheme codes for similarity.
3075
3076         * url.h: Declare it.
3077
3078         * recur.c (download_child_p): Use it to compare schemes.  This
3079         also fixes a bug that allows hosts to be spanned (without the
3080         -H option) when the parent scheme is https and the child's is
3081         http or vice versa.
3082
3083 2002-05-14  Bill Richardson  <bill@riverstonenet.com>
3084
3085         * ftp.c (getftp): Don't ftruncate stdout.
3086
3087         * http.c (gethttp): Don't ftruncate stdout.
3088
3089 2002-05-09  Ian Abbott  <abbotti@mev.co.uk>
3090
3091         * cmpt.c (strptime_internal): Synched with glibc-2.1.3.
3092         (get_number): Ditto.
3093         (get_alt_number): Ditto.
3094         (__isleap): New function-like macro used by strptime.
3095         (day_of_the_week): New function used by strptime.
3096         (day_of_the_year): Ditto.
3097         (__mon_yday): Now shared by mktime and strptime implementations.
3098
3099 2002-05-08  Hrvoje Niksic  <hniksic@arsdigita.com>
3100
3101         * cookies.c (check_domain_match): Use match_tail in case
3102         insensitive mode.
3103
3104         * utils.c (match_tail): Allow the caller to specify case
3105         insensitive mode.
3106
3107         * cookies.c (store_cookie): When expiry_time is 0, print it as
3108         undefined, not indefinite.
3109
3110 2002-05-07  Ian Abbott  <abbotti@mev.co.uk>
3111
3112         * cookies.c (cookie_jar_process_set_cookie): Do not store
3113         discarded cookie.
3114
3115 2002-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
3116
3117         * cookies.c (check_domain_match): Allow cookies to be set for
3118         subdomains of unknown top-level domains under some circumstances.
3119
3120 2002-04-21  Thomas Lussnig  <thomas.lussnig@bewegungsmelder.de>
3121
3122         * gen_ssl.c:
3123         - allow checking of server cert
3124         - allow defining client cert type
3125         - allow limit of ssl protocol
3126         - check more return values
3127         - added debug message on break
3128
3129 2002-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
3130
3131         * recur.c (download_child_p): Revert order of items in check
3132         number 6 for clarity.
3133
3134 2002-04-20  Hrvoje Niksic  <hniksic@arsdigita.com>
3135
3136         * init.c: Ditto.
3137
3138         * main.c: Ditto.
3139
3140         * http.c: Use the new interface.
3141
3142         * cookies.c: Provide an OO-style "cookie jar" interface to enable
3143         separate cookie jars.
3144
3145         * http.c (http_atotm): Declare argument as const.
3146
3147 2002-04-20  Hrvoje Niksic  <hniksic@arsdigita.com>
3148
3149         * cookies.c (cookie_new): Default to PORT_ANY.
3150         (find_cookie_chain_exact): Only search by DOMAIN.
3151         (find_matching_cookie): Also check that PORT matches.
3152         (store_cookie): Only match the domain.
3153         (set_cookie_header_cb): When a cookie "fakes" a domain, assume it
3154         is valid for that host rather than discarding it completely.
3155         (find_matching_chains): Don't search by PORT.
3156         (matching_cookie): Also match PORT.
3157         (load_cookies): Set the port if specified, otherwise leave it as
3158         ANY.
3159         (save_cookies_mapper): Save the port if specified, otherwise leave
3160         it empty.
3161
3162 2002-04-19  Thomas Lussnig  <thomas.lussnig@bewegungsmelder.de>
3163
3164         * init.c: The option `egdfile' was not in sort order.
3165
3166 2002-04-16  Hrvoje Niksic  <hniksic@arsdigita.com>
3167
3168         * ftp.c (getftp): Treat directories that begin with <letter>: as
3169         absolute.
3170         (getftp): Strip trailing slashes from con->id before merging it
3171         with TARGET.
3172
3173 2002-04-16  Hrvoje Niksic  <hniksic@arsdigita.com>
3174
3175         * http.c (gethttp): If Content-Type is not given, assume
3176         text/html.
3177
3178 2002-04-15  Hrvoje Niksic  <hniksic@arsdigita.com>
3179
3180         * recur.c (download_child_p): Don't ignore rejection of HTML
3181         documents that are themselves leaves of recursion.
3182
3183 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
3184
3185         Makefile.in: Updated several dependencies for object files to take
3186         account of nested include files.
3187
3188 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
3189
3190         Makefile.in: The target `connect$o' (connect.o) now depends on
3191         `utils.h'
3192
3193 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
3194
3195         * host.c (SET_H_ERRNO): New function-like macro to set `h_errno'.
3196         (gethostbyname_with_timeout): Use it.
3197
3198         * utils.c: Don't define `SETJMP()', `run_with_timeout_env' or
3199         `abort_run_with_timeout()' when `USE_SIGNAL_TIMEOUT' is undefined.
3200
3201 2002-04-15  Hrvoje Niksic  <hniksic@arsdigita.com>
3202
3203         * host.c (getaddrinfo_with_timeout): New function.
3204         (gethostbyname_with_timeout): Ditto.
3205         (lookup_host): Use them.
3206
3207 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
3208
3209         * utils.c (number_to_string): Handle the case when n < -INT_MAX.
3210
3211 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
3212
3213         * init.c (comind): Use a marginally faster implementation of
3214         binary search.  To quote Martin Buchholz, "a nanosecond saved is a
3215         nanosecond earned."
3216
3217 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
3218
3219         * main.c (print_help): Document `--post-data' and `--post-file'.
3220
3221 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
3222
3223         * http.c (gethttp): Ditto.
3224
3225         * retr.c (retrieve_url): Initialize variables to appease the
3226         compiler.
3227
3228         * gen_sslfunc.c (ssl_iread): Don't handle EINTR when calling
3229         select_fd.
3230         (ssl_iwrite): Ditto.
3231
3232         * connect.c (select_fd): Rewrite to handle EINTR.  Set errno to
3233         ETIMEDOUT in case of timeout.
3234         (iread): No need to handle EINTR when calling select_fd.
3235         (iwrite): Ditto.
3236
3237 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
3238
3239         * retr.c (retrieve_url): Make sure that POST is not honored for
3240         redirections.
3241
3242         * http.c (gethttp): Send the POST data when requested.
3243         (post_file): New function.
3244         (gethttp): Use it.
3245
3246         * main.c (main): Ditto.
3247
3248         * init.c: Add new options.
3249
3250         * options.h (struct options): New options post_data and
3251         post_file_name.
3252
3253 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
3254
3255         * connect.c (connect_with_timeout): Firing SIGALRM can result in
3256         connect() exiting with EINTR.  Treat EINTR the same as ETIMEDOUT.
3257
3258 2002-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
3259
3260         * connect.c (connect_with_timeout): Use it.
3261
3262         * utils.c (run_with_timeout): New function.
3263
3264 2002-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
3265
3266         * url.c (getproxy): Accept a struct url argument.  This obviates
3267         the need for USE_PROXY_P.
3268
3269         * retr.c (retrieve_url): Allow proxy to be a non-FTP URL.
3270
3271         * ftp.c (getftp): Recognize FWTK-style proxy.
3272
3273 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
3274
3275         * config.h.in: Only define _VA_LIST when compiled with gcc.
3276
3277 2002-04012  Ian Abbott  <abbotti@mev.co.uk>
3278
3279         * http.c (http_loop): Compensate for MS Windows two-second
3280         granularity of file modification time when comparing timestamps.
3281
3282         * ftp.c (ftp_retrieve_list): Ditto.
3283
3284 2002-04-12  Ian Abbott  <abbotti@mev.co.uk>
3285
3286         * utils.c (has_html_suffix_p): New function to test filename for
3287         common html extensions.
3288
3289         * utils.h: Declare it.
3290
3291         * http.c (http_loop): Use it instead of previous test.
3292
3293         * retr.c (retrieve_url): Ditto.
3294
3295         * recur.c (download_child_p): Ditto.
3296
3297 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
3298
3299         * config.h.in: Define _VA_LIST on Solaris to prevent stdio.h from
3300         declaring va_list.
3301         From Kevin Rodgers <kevinr@ihs.com>.
3302
3303 2002-04-12  Ian Abbott  <abbotti@mev.co.uk>
3304
3305         * Makefile.in: Specify libtool mode explicitly when linking.
3306
3307 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
3308
3309         * connect.c (connect_with_timeout): New function.
3310         (connect_to_one): Use it.
3311
3312         * config.h.in: Add stubs for HAVE_SIGSETJMP, HAVE_SIGBLOCK, and
3313         HAVE_SETJMP_H.
3314
3315 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
3316
3317         * log.c: Set WGET_USE_STDARG if __STDC__ is defined and stdarg.h
3318         is present.
3319
3320 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
3321
3322         * progress.c (bar_create): If INITIAL is larger than TOTAL, fix
3323         TOTAL.
3324         (bar_finish): Likewise.
3325
3326 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
3327
3328         * html-url.c (tag_handle_form): New function.  Pick up form
3329         actions and mark them for conversion only.
3330
3331 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
3332
3333         * progress.c (struct progress_implementation): Use PARAMS when
3334         declaring the parameters of *create, *update, *finish, and
3335         *set_params.
3336
3337         * netrc.c: Ditto.
3338
3339         * http.c: Reformat some function definitions so that ansi2knr can
3340         read them.
3341
3342         * hash.c (struct hash_table): Use the PARAMS macro around
3343         parameters in the declaration of hash_function and test_function.
3344         (prime_size): Spell 2580823717UL and 3355070839UL as (unsigned
3345         long)0x99d43ea5 and (unsigned long)0xc7fa5177 respectively, so
3346         that pre-ANSI compilers can read them.
3347         (find_mapping): Use PARAMS when declaring EQUALS.
3348         (hash_table_put): Ditto.
3349
3350         * ftp.h: Wrap the parameters of ftp_index declaration in PARAMS.
3351
3352         * cookies.c (cookie_new): Use (unsigned long)0 instead of 0UL,
3353         which was unsupported by pre-ANSI compilers.
3354
3355         From Nelson H. F. Beebe <beebe@math.utah.edu>, for the most part.
3356
3357 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
3358
3359         * url.c (url_filename): Use compose_file_name regardless of
3360         whether opt.dirstruct is set.
3361         (mkstruct): Don't handle the query and the reencoding of DIR; that
3362         is done in compose_file_name.
3363
3364 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
3365
3366         * wget.h: Ditto for extern char *exec_name.
3367
3368         * options.h: Don't guard against OPTIONS_DEFINED_HERE -- it is
3369         perfectly legal to follow an `extern' with a non-`extern' ones,
3370         provided the types match.
3371
3372         * main.c: Don't define OPTIONS_DEFINED_HERE.
3373
3374 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
3375
3376         * progress.c (create_image): Revert to calculating ETA based on
3377         average download speed.
3378         (create_image): Don't print ETA until the download has been active
3379         for at least 3 seconds.
3380         (create_image): When ETA is not available, don't print anything.
3381         The previous version would print --:--.
3382
3383 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
3384
3385         * progress.c (bar_update): Keep updating a subinterval until it
3386         reaches or exceeds a watermark.  That way the measurement will be
3387         guaranteed to span a configurable minimum of time.  The current
3388         default is 3s in 30 100ms intervals.
3389
3390 2002-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
3391
3392         * progress.c (bar_update): Maintain an array of the time it took
3393         to perform previous 30 network reads.
3394         (create_image): Calculate the download speed and ETA based on the
3395         last 30 reads, not the entire download.
3396         (create_image): Make sure that the ETA is not changed more than
3397         once per second.
3398
3399 2002-04-09  Ian Abbott  <abbotti@mev.co.uk>
3400
3401         * mswindows.c (borland_utime): New function conditionally defined
3402         when `HACK_BCC_UTIME_BUG' is defined.  A reimplementation of
3403         `utime()' as Borland's `utime()' function is broken on Windows 9x
3404         systems.  (Original patch by Chin-yuan Kuo <sr1111111@yahoo.com.tw>.)
3405
3406 2002-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
3407
3408         * ftp.c (ftp_loop): Propagate the result of ftp_retrieve_glob.
3409
3410 2002-03-26  Ian Abbott  <abbotti@mev.co.uk>
3411
3412         * Makefile.in: Updated several dependencies for object files.
3413
3414 2002-03-20  Ian Abbott  <abbotti@mev.co.uk>
3415
3416         * mswindows.c: Include "utils.h".
3417
3418 2002-03-18  Ian Abbott  <abbotti@mev.co.uk>
3419
3420         * host.h: Don't include netdb.h on windows.
3421
3422 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
3423
3424         * recur.c (retrieve_tree): Handle the case when start_url doesn't
3425         parse.
3426
3427 2002-02-19  Andreas Damm  <andreas-sourceforge@radab.org>
3428
3429         * wget.h (DO_REALLOC_FROM_ALLOCA): Multiply with sizeof(type) when
3430         calling xmalloc and memcpy.
3431
3432 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
3433
3434         * host.h: Include Unix-specific includes #ifndef WINDOWS.
3435         Patch originally provided by Christian Lackas.
3436
3437 2002-02-11  Christian Lackas  <delta@lackas.net>
3438
3439         * recur.c: recurive downloading for https fixed.
3440
3441 2002-02-19  Alan Eldridge  <alane@geeksrus.net>
3442
3443         * host.h: Also include <netinet/in.h> and <sys/socket.h>.
3444
3445         * ftp-basic.c: Also include <netinet/in.h>.
3446
3447 2002-02-05  Ian Abbott  <abbotti@mev.co.uk>
3448
3449         * http.c (gethttp): when -c used, mark already fully retrieved
3450         file as successfully retrieved.
3451
3452 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
3453
3454         * url.c (url_parse): Don't treat '?' as query string separator
3455         when parsing FTP URLs.
3456
3457 2002-02-01  Hrvoje Niksic  <hniksic@arsdigita.com>
3458
3459         * html-url.c (tag_handle_meta): Don't crash on <meta
3460         http-equiv=refresh> where content is missing.
3461
3462 2002-01-31  Herold Heiko  <Heiko.Herold@previnet.it>
3463
3464         * ftp-basic.c, host.c: don't include sys/socket.h, arpa/inet.h,
3465         netdb.h on windows.
3466
3467 2002-01-30  Hrvoje Niksic  <hniksic@arsdigita.com>
3468
3469         * retr.c (retrieve_url): Remove redirection cycle detection.  This
3470         is because some sites legitimately redirect the user back to the
3471         same location, e.g. after an authorization check performed by
3472         another page.  MAX_REDIRECTIONS is still used to prevent infinite
3473         redirection loops.
3474
3475 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
3476
3477         * http.c (gethttp): Wrap host name in square brackets if it
3478         contains a colon.
3479
3480 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
3481
3482         * url.c (url_parse): Allow all hex digits, not only decimal ones,
3483         to form an IP address.
3484
3485 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
3486
3487         * url.c (urlchr_table): Make square braces reserved, so we can
3488         parse http://[::1]/.
3489         (url_parse): Handle host in braces.
3490         (url_string): If url->host contains colons, wrap it in braces.
3491
3492 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
3493
3494         * connect.c (resolve_bind_address): New function.
3495         (connect_to_one): Use it.
3496         (bindport): Ditto.
3497
3498         * init.c: Don't resolve bind-address here.
3499
3500         * host.c (wget_sockaddr_set_address): Would bug out with ADDR == NULL.
3501
3502 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
3503
3504         * host.c (lookup_host): Use sizeof(ip4_address) to calculate the
3505         offset.
3506         (address_list_new): Use map_ipv4_to_ip.
3507         (wget_sockaddr_set_address): Convert ADDR to IPv4 before using it
3508         in IPv4 context.
3509
3510 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
3511
3512         * source: Integrated IPv6 support.
3513         Written by Thomas Lussnig <thomas.lussnig@bewegungsmelder.de>.
3514
3515 2002-01-15  Ian Abbott  <abbotti@mev.co.uk>
3516
3517         * init.c (cmd_file): Change `\' to `/' for Windows (yes, really!)
3518         (cmd_directory): New function. Like cmd_file(), but strips
3519         trailing directory separators.
3520         (commands): Change action for "dirprefix" from `cmd_file' to
3521         `cmd_directory'.
3522
3523         * utils.c (make_directory): Allow intermediate `mkdir' calls to
3524         fail, as not all path components that do not exist should be
3525         directory components, especially under Windows.
3526
3527 2002-01-17  Hrvoje Niksic  <hniksic@arsdigita.com>
3528
3529         * netrc.c (parse_netrc): Skip leading whitespace before testing
3530         whether the line is empty.  Empty lines still contain the line
3531         terminator.
3532
3533 2002-01-15  Hrvoje Niksic  <hniksic@arsdigita.com>
3534
3535         * gen_sslfunc.c (ssl_iread): Call select on the file descriptor
3536         only if no data is pending in SSL buffers.
3537         From tony@bluetail.com.
3538
3539 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
3540
3541         * headers.c (header_get): Strip trailing whitespace from the
3542         header.
3543
3544 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
3545
3546         * url.c (parse_uname): URL-decode *USER and *PASSWD.
3547
3548 2002-01-07  Ian Abbott <abbotti@mev.co.uk>
3549
3550         * url.c (uri_merge_1): Deal with "net path" relative URL (one that
3551         starts with "//").
3552
3553 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
3554
3555         * http.c (gethttp): Invalidate SOCK if get_contents encountered an
3556         error.
3557
3558 2001-12-24  Hrvoje Niksic  <hniksic@arsdigita.com>
3559
3560         * version.c: Wget 1.8.1 is released.
3561
3562 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
3563
3564         * version.c: Wget 1.8.1-pre3 is released.
3565
3566 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
3567
3568         * recur.c (retrieve_tree): Enqueue the canonical representation of
3569         start_url, so that the test against dl_url_file_map works.
3570
3571 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
3572
3573         * log.c (logputs): Check for requested verbosity before printing
3574         anything.
3575
3576 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
3577
3578         * html-url.c (tag_handle_link): Treat the "shortcut icon" link as
3579         inline.
3580
3581 2001-12-18  Hrvoje Niksic  <hniksic@arsdigita.com>
3582
3583         * recur.c (retrieve_tree): Make a copy of file obtained from
3584         dl_url_file_map because the code calls xfree(file) later.
3585
3586 2001-12-18  Hrvoje Niksic  <hniksic@arsdigita.com>
3587
3588         * recur.c (register_html): Maintain a hash table of HTML files
3589         along with the list.  Disallow duplicates.
3590         (retrieve_tree): Use downloaded_html_set to check whether the file
3591         found in dl_url_file_map is an HTML file, and descend into it if
3592         so.
3593         (convert_all_links): Don't guard against duplicates in
3594         downloaded_html_list, since they are no longer possible.
3595
3596 2001-12-18  Ian Abbott  <abbotti@mev.co.uk>
3597
3598         * recur.c (retrieve_tree): Pass on referring URL when retrieving
3599         recursed URL.
3600
3601 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
3602
3603         * version.c: Wget 1.8.1-pre2 is released.
3604
3605 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
3606
3607         * retr.c (sleep_between_retrievals): Simplify indentation.
3608
3609 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
3610
3611         * gen_sslfunc.c (ssl_init_prng): Use random_number to get a byte
3612         of "randomness" at a time.
3613         (ssl_init_prng): Don't seed the PRNG; random_number will do that.
3614
3615         * retr.c (sleep_between_retrievals): Use it.  Make sure that the
3616         random amount averages in opt.wait.
3617         (sleep_between_retrievals): Don't seed the PRNG; random_number
3618         will do that.
3619
3620         * utils.c (random_number): New function.
3621
3622 2001-12-14  Hrvoje Niksic  <hniksic@arsdigita.com>
3623
3624         * url.c (path_simplify): Move here from utils.c, and make static.
3625
3626 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
3627
3628         * init.c (wgetrc_file_name): Print correct message when loading
3629         getenv("WGETRC") fails.
3630
3631 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
3632
3633         * recur.c (register_download): Don't abort when one URL references
3634         two different files.
3635
3636 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
3637
3638         * http.c (gethttp): Check for conn->scheme, not u->scheme, before
3639         calling ssl_iwrite.
3640
3641 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
3642
3643         * version.c: Wget 1.8.1-pre1 is released.
3644
3645 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
3646
3647         * res.c (matches): Fix broken URL in the docstring.
3648
3649 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
3650
3651         * html-url.c (tag_url_attributes): Mark <embed href=...> as
3652         external.
3653
3654 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
3655
3656         * url.c (get_urls_file): Cosmetic changes.
3657
3658 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
3659
3660         * html-url.c (append_one_url): Resurrect warning when unable to
3661         resolve a relative link.
3662
3663 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
3664
3665         * html-url.c (collect_tags_mapper): Break into several functions.
3666         (tag_url_attributes): Collect <embed href=...>.
3667
3668 2001-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
3669
3670         * host.c: New type ipv4_address.  Use it consistently instead of
3671         `unsigned char[4]' and `unsigned char *'.
3672         (pretty_print_address): Accept a `const void *', to require even
3673         less casting.
3674
3675 2001-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
3676
3677         * ftp-ls.c (ftp_parse_vms_ls): Fix obvious memory leaks.
3678
3679 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
3680
3681         * main.c (main): Initialize progress after fork_to_background, so
3682         that it knows when to use dots.
3683
3684         * mswindows.c (ws_hangup): Call log_request_redirect_output.
3685
3686         * utils.c (fork_to_background): Print the PID of the child
3687         process.
3688
3689         * log.c (log_request_redirect_output): Set a flag that output
3690         redirection has been requested.  Doing anything else in a signal
3691         handler is unsafe.
3692         (check_redirect_output): New function: check whether redirection
3693         has been requested and, if so, call redirect_output().
3694         (logputs): Call check_redirect_output.
3695         (logprintf): Ditto.
3696         (debug_logprintf): Ditto.
3697         (redirect_output): Print clearer messages.
3698
3699         * main.c (redirect_output_signal): Don't call
3700         redirect_output_signal directly.  Instead, call
3701         log_request_redirect_output.
3702
3703         * utils.c (memfatal): Ditto.
3704
3705         * progress.c (display_image): Use it.
3706
3707         * log.c (log_set_save_context): New function: allow the caller to
3708         turn off saving log context lines.
3709
3710 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
3711
3712         * host.c (address_list_set_faulty): Uncomment a sanity check.
3713
3714 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
3715
3716         * utils.c (long_to_string): Return a pointer after where the
3717         number ends.
3718         (long_to_string): Rename to number_to_string.
3719
3720 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
3721
3722         * utils.c (path_simplify): Correctly handle the unlikely case that
3723         b starts out as path + 1.
3724
3725 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
3726
3727         * utils.c (path_simplify): Rewrite, with better comments, and
3728         without the use of strcpy to move overlapping blocks.
3729
3730 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
3731
3732         * init.c (cmd_spec_progress): Resurrect.  Check whether VAL is a
3733         valid progress type before setting it.
3734
3735 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
3736
3737         * main.c (main): Remove stray debugging message.
3738
3739 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
3740
3741         * progress.c (create_image): Fix ETA padding when hours are prined.
3742
3743 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
3744
3745         * version.c: Wget 1.8 is released.
3746
3747 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
3748
3749         * url.c (reencode_string): Declare static.
3750
3751         * res.c (registered_specs): Declare static.
3752
3753         * progress.c (current_impl_locked): Declare static.
3754
3755         * log.c (flush_log_p): Declare static.
3756         (needs_flushing): Ditto.
3757
3758         * http.c (digest_authentication_encode): Declare static.
3759
3760         * html-url.c (init_interesting): Declare static.
3761
3762         * host.c (host_name_addresses_map): Declare static.
3763
3764         * cookies.c (find_matching_chains): Declare static.
3765
3766         * ftp-ls.c (ftp_parse_vms_ls): Warn about the memory leak
3767         indicated by lint.
3768
3769         * utils.c (path_simplify): Remove unused variable STUB_CHAR.
3770
3771         * host.c (address_list_set_faulty): Document that INDEX is
3772         currently unused.
3773
3774         * url.c (rewrite_shorthand_url): Remove unused variable PATH.
3775
3776 2001-12-08  Hrvoje Niksic  <hniksic@arsdigita.com>
3777
3778         * version.c: Wget 1.8-pre2 is released.
3779
3780 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
3781
3782         * progress.c (progress_handle_sigwinch): Set up the signal again.
3783
3784         * utils.c: Include <sys/termios.h>, where Solaris defines
3785         TIOCGWINSZ.
3786
3787         * progress.c (bar_create): Don't use the last column on the screen.
3788         (create_image): Pad ETA to constant size.  Pad SIZE to nine digits
3789         only until it exceeded them.
3790
3791 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
3792
3793         * version.c: Wget 1.8-pre1 is released.
3794
3795 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
3796
3797         * progress.c (progress_create): Make sure that, when the output is
3798         redirected, the progress implementation gets changed to the
3799         fallback one.
3800         (bar_set_params): Set current_impl_locked to 1 when "force" is
3801         specified.
3802         (progress_create): Don't change the progress implementation if
3803         current_impl_locked is non-zero.
3804
3805         * main.c (redirect_output_signal): Call
3806         progress_schedule_redirect.
3807
3808         * progress.c (progress_schedule_redirect): New function.
3809
3810 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
3811
3812         * log.c (logvprintf): Restructure to allow being called multiple
3813         times.
3814         (logprintf): Call logvprintf in a loop.
3815         (debug_logprintf): Ditto.
3816
3817 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
3818
3819         * gen_sslfunc.c (ssl_init_prng): Allow the user to disable EGD by
3820         setting egd_file it to empty string.
3821
3822         * main.c (main): Change the option name from --sslegdsock to
3823         --egd-file.
3824
3825 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
3826
3827         * gen_sslfunc.c (ssl_init_prng): Make the printed message
3828         translatable.
3829
3830 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
3831
3832         * url.c (scheme_disable): New function.
3833
3834         * main.c (main): Call ssl_init_prng from here rather than from
3835         init_ssl, so that it has a chance to disable support for https
3836         before a URL has been resolved.
3837
3838         * gen_sslfunc.c (ssl_init_prng): Seed with rand() if all else
3839         failed.
3840         (ssl_init_prng): Disable support for https if seeding the PRNG
3841         fails.
3842
3843 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
3844
3845         * utils.c (read_whole_line): Handle lines beginning with \0.
3846
3847 2001-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
3848
3849         * recur.c (convert_all_links): Guard against duplicates in
3850         downloaded_html_files.
3851         (register_download): Don't invalidate similar-looking URLs.
3852         (match_except_index): New function.
3853
3854 2001-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
3855
3856         * utils.c (path_simplify): Document with test cases.
3857
3858 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
3859
3860         * gen_sslfunc.c: Ditto.
3861
3862         * rbuf.c: Include <string.h>.
3863
3864 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
3865
3866         * recur.c (retrieve_tree): Check whether the URL was already
3867         downloaded before downloading it again.
3868         (descend_child_p): Renamed to download_child_p.
3869         (register_download): When one URL is downloaded to a file already
3870         "owned" by another URL, delete all references that map any URL to
3871         that file.
3872         (register_delete_file): New function.
3873         (retrieve_tree): Use it after deleting a file.
3874
3875         * url.c (url_parse): Re-canonicalize the URL also if the path is
3876         empty, so that e.g. "http://www.server.com" ->
3877         "http://www.server.com/".
3878         (lowercase_str): Use ISUPPER instead of !ISLOWER.
3879
3880         * retr.c (retrieve_url): Use the canonical URL form when calling
3881         register_download().
3882
3883 2001-12-04  Ian Abbott <abbotti@mev.co.uk>
3884
3885         * snprintf.c (dopr): Use `unsigned int' as the second argument to
3886         va_arg when casting to `unsigned short' is intended.
3887
3888 2001-12-04  Herold Heiko  <Heiko.Herold@previnet.it>
3889
3890         * gen_sslfunc.c: on windows provide ssl crypto random 
3891           initialization through RAND_screen(); could possibly
3892           be not enough for strong ssl communication (see the 
3893           relevant manual page from the openssl package).
3894
3895 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
3896
3897         * url.c (local_quote_string): Reenable quoting of question marks,
3898         but only when `--html-extension' is used.
3899
3900 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
3901
3902         * version.c: Wget 1.8-beta3 is released.
3903
3904 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
3905
3906         * snprintf.c (dopr): Cast the result of va_arg to short int and
3907         short unsigned int where these types are expected to be used.
3908
3909 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
3910
3911         * snprintf.c (dopr): Replace `short int' and `unsigned short int'
3912         with `int' when using it as the second argument to `va_arg'.
3913
3914 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
3915
3916         * host.c (address_list_new_one): New function.
3917         (lookup_host): Use it.
3918
3919 2001-12-03  Andre Majorel  <amajorel@teaser.fr>
3920
3921         * host.c (lookup_host): Don't initialize TMPSTORE directly because
3922         it's not legal C.
3923
3924 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
3925
3926         * ftp-basic.c (ftp_port): Don't return HOSTERR if we fail getting
3927         the socket data.
3928
3929         * ftp.c: Ditto.
3930
3931         * http.c: No need to declare h_errno.
3932
3933         * host.c: Declare h_errno.
3934
3935 2001-12-02  Hrvoje Niksic  <hniksic@arsdigita.com>
3936
3937         * utils.c (file_merge): If BASE doesn't contain a slash, just
3938         return a copy of FILE.
3939
3940 2001-12-02  Hrvoje Niksic  <hniksic@arsdigita.com>
3941
3942         * version.c: Wget 1.8-beta2 is released.
3943
3944 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
3945
3946         * ftp.c (getftp): When PWD fails, assume "/".
3947
3948         * ftp-basic.c (ftp_syst): Fix indentation.
3949
3950 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
3951
3952         * url.c (get_urls_file): If opt.base_href is specified, merge each
3953         URL with the base.
3954
3955 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
3956
3957         * main.c (print_help): Don't document the removed `-nh'.
3958
3959 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
3960
3961         * url.c (url_full_path): Document better.
3962
3963         * http.c (gethttp): Use the full path when creating digest
3964         authorization.
3965
3966 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
3967
3968         * cookies.c (path_matches): Return 0 if PREFIX doesn't begin with
3969         '/'.
3970
3971 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
3972
3973         * cookies.c (path_matches): FULL_PATH doesn't begin with '/', but
3974         PREFIX does.
3975
3976 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
3977
3978         * cookies.c (check_domain_match): Reimplement to match Netscape's
3979         "preliminary specification" for cookies.
3980
3981 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
3982
3983         * url.c (replace_attr_refresh_hack): New function.
3984         (convert_links): Call replace_attr_refresh_hack for Refresh
3985         links.  It will add the "TMOUT; URL=" junk before the link.
3986
3987         * html-url.c (collect_tags_mapper): Set ID to the ID of the
3988         "content" attribute, not "http-equiv".
3989         (collect_tags_mapper): Don't use OFFSET to hack the raw_* values;
3990         instead, store the information that this entry belongs to a
3991         "refresh" link.
3992
3993 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
3994
3995         * version.c: Wget 1.8-beta1 is released.
3996
3997 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
3998
3999         * recur.c (retrieve_tree): Allow -p retrievals to exceed maximum
4000         depth by more than one.
4001
4002 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
4003
4004         * retr.c (retrieve_url): Don't allow more than 20 redirections.
4005
4006 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
4007
4008         * recur.c (retrieve_tree): Skip the non-inline entries when
4009         enqueuing the children of a leaf HTML node in -p mode.
4010         (descend_url_p): Ignore opt.no_parent when in -p mode and UPOS is
4011         "inline".
4012
4013         * html-url.c (get_urls_html): Don't accept dash_p_leaf_HTML.
4014         (collect_tags_mapper): When an entry is "inline", mark it as such.
4015
4016         * recur.c (descend_url_p): Fix test when checking for
4017         acceptance/rejection rules.
4018
4019 2001-10-31 Daniel BODEA <dali@dali-designs.com>
4020
4021         * netrc.c (search_netrc): When slack_default is 0, still look for
4022         an account with matching password, just not the "default account".
4023         HTTP Authorization using .netrc should now work as expected.
4024
4025 2001-11-30  T. Bharath  <TBharath@responsenetworks.com>
4026
4027         * http.c (persistent_available_p): Call SHUTDOWN_SSL if
4028         test_socket_open fails.
4029
4030 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
4031
4032         * progress.c (display_image): Just print one CR to reset the
4033         cursor position.
4034
4035 2001-11-30  Christian Fraenkel  <c.fraenkel@gmx.net>
4036
4037         * init.c: New command `ssl_egd_sock'.
4038
4039         * main.c (main): New option `--sslegdsock'.
4040
4041         * gen_sslfunc.c (ssl_init_prng): Seed the RNG using EGD.
4042
4043 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
4044
4045         * cmpt.c (memmove): Include a simple memmove implementation.
4046
4047 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
4048
4049         * headers: Guard against header files being included twice.
4050
4051 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
4052
4053         * gen-md5.c: Use unsigned char * as the buffer argument to
4054         gen_md5_update.
4055
4056 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
4057
4058         * connect.h: Declare select_fd.
4059
4060 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
4061
4062         * recur.c (descend_url_p): When resolving no_parent, compare with
4063         start_url, not parent url.  Otherwise link from /a/b/ to /a/c/
4064         wouldn't be followed, although the download started from /a/.
4065
4066 2001-01-23  Herold Heiko  <Heiko.Herold@previnet.it>
4067
4068         * config.h.ms, mswindows.h: defined HAVE_ISATTY, use _isatty for
4069         MS VC; somebody with Borland compiler please check and provide
4070         patch if possible;
4071
4072         * cmpt.c: provided a usleep emulation.
4073
4074 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
4075
4076         * host.c (address_list_new): Initialize al->faulty.
4077
4078 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
4079
4080         * http.c (http_process_range): Accept the broken output of
4081         "JavaWebServer/1.1.1".
4082
4083 2001-11-28  Hrvoje Niksic  <hniksic@arsdigita.com>
4084
4085         * progress.c (dot_set_params): If PARAMS is unspecified, use
4086         dot_style, if available.
4087
4088         * init.c: Ditto.
4089
4090         * main.c (main): Resurect --dot-style.
4091
4092         * progress.c (dot_finish): Print the quantity if we're left at the
4093         beginning of a row.
4094
4095 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
4096
4097         * cmpt.c (random): Removed.
4098
4099         * retr.c (sleep_between_retrievals): Use the more portable rand()
4100         instead of random().
4101
4102 2001-11-27  Ian Abbott <abbotti@mev.co.uk>
4103
4104         * retr.c (retrieve_from_file): Initialize `new_file' to NULL to
4105         prevent seg fault.
4106
4107 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
4108
4109         * connect.c (connect_to_many): Use address_list_set_faulty to
4110         prevent the faulty address from being reused.
4111
4112         * host.c (address_list_set_faulty): New function.
4113         (address_list_get_bounds): New function, instead of
4114         address_list_count.
4115
4116 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
4117
4118         * url.c (convert_links): Don't translate %d-%d.
4119
4120         * main.c (print_help): Remove stray HAVE_RANDOM code.
4121
4122 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
4123
4124         * ftp.c (getftp): Improve output after sending PASV.  Don't
4125         attempt to "look up" the IP address we already know; call
4126         connect_to_one directly.
4127
4128 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
4129
4130         * progress.c: Change the default progress implementation to "bar".
4131
4132 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
4133
4134         * progress.c (bar_create): Print two newlines.
4135
4136 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
4137
4138         * cmpt.c (random): New function, a simple-minded replacement for
4139         random() on systems that don't have it.
4140
4141 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
4142
4143         * config.h.in: Put a HAVE_USLEEP stub.
4144
4145         * cmpt.c (usleep): Replacement implementation of usleep using
4146         select.
4147
4148         * init.c: New option init_rate.
4149
4150         * main.c (main): New option --limit-rate.
4151
4152         * retr.c (limit_bandwidth): New function.
4153         (get_contents): Call it to limit the bandwidth used when
4154         downloading.
4155
4156         * progress.c (dot_update): Would print the wrong download speed on
4157         rows other than the first one when the download was continued.
4158         (dot_finish): Ditto.
4159
4160 2001-11-26  Ian Abbott <abbotti@mev.co.uk>
4161
4162         * http.c (gethttp): fix undeclared variable 'err' when compiled
4163         with HAVE_SSL.
4164
4165 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
4166
4167         * progress.c: Don't allocate new timers; use the timing data
4168         propagated from the caller.
4169
4170         * retr.c (get_contents): Allocate and use a timer.
4171
4172 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
4173
4174         * http.c (last_host_ip): Made into an address_list.
4175         (invalidate_persistent): Release pc_last_host_ip.
4176         (register_persistent): Use lookup_host.
4177         (persistent_available_p): Check for equality of hosts using
4178         address_list_match_all.  Call address_list_release.
4179         (http_cleanup): New function.
4180
4181         * ftp.c (getftp): Use lookup_host and connect_to_many.
4182
4183         * http.c (gethttp): Use lookup_host and connect_to_many.
4184
4185         * connect.c (make_connection): Removed.
4186         (connect_to_one): New function.
4187         (connect_to_many): Ditto.
4188         (set_connection_host_name): Ditto.
4189
4190         * host.c (lookup_host): New function; new return type.
4191         (address_list_new): New function.
4192         (address_list_count): Ditto.
4193         (address_list_copy_one): Ditto.
4194         (address_list_delete): Ditto.
4195         (address_list_release): Ditto.
4196         (pretty_print_address): Ditto.
4197
4198 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
4199
4200         * recur.c (retrieve_tree): In case of followed redirection,
4201         blacklist the pre-redirection URL.
4202
4203 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
4204
4205         * recur.c (descend_redirect_p): New function.
4206         (retrieve_tree): Make sure redirections are not blindly followed.
4207
4208 2001-11-04  Alan Eldridge  <alane@geeksrus.net>
4209
4210         * config.h.in: added HAVE_RANDOM.
4211
4212         * options.h: added random_wait to struct options.
4213
4214         * main.c (print_help [HAVE_RANDOM], main): added arg parsing, help
4215         for --random-wait.
4216
4217         * retr.c (sleep_between_retrievals) [HAVE_RANDOM]: added
4218         implementation of random wait times.
4219
4220         * init.c (commands): added "randomwait" keyword.
4221
4222 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
4223
4224         * recur.c (descend_url_p): Be more conservative with blacklisting
4225         URLs.
4226         (convert_all_links): Print how many files have been converted, and
4227         how long it took.
4228
4229         * progress.c (create_image): Place the number of downloaded bytes
4230         right after the progress bar.
4231
4232         * utils.c (suffix): Return a pointer into the string.
4233
4234 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
4235
4236         * url.c (convert_links): Handle CO_NULLIFY_BASE.
4237
4238         * recur.c (retrieve_tree): Ignore download-ignorable children.
4239         (convert_all_links): Specify CO_NULLIFY_BASE when link_base_p.
4240
4241         * html-url.c (handle_link): Return the newly created urlpos.
4242         (collect_tags_mapper): When dealing with BASE, store the base
4243         reference and mark it as download-ignorable.
4244
4245 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
4246
4247         * url.c (convert_links): Attempt to quote '?' as "%3F" when
4248         linking to local files.  Given up on the attempt, as it breaks
4249         local browsing.
4250
4251 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
4252
4253         * main.c (private_initialize): Removed.
4254         (main): Don't call private_initialize.
4255
4256         * http.c: Call lookup_host.
4257
4258         * host.c (host_init): Removed.
4259         (add_host_to_cache): Initialize host_name_address_map here, on
4260         demand.
4261         (ngethostbyname): Commented out.
4262
4263         * connect.c (make_connection): Remove dead code; use lookup_host.
4264
4265         * host.c (store_hostaddress): Renamed to lookup_host and reversed
4266         the args.
4267         Removed host_address_name_map and host_slave_master_map.
4268
4269 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
4270
4271         * progress.c (dot_create): Align the "[ skipping ... ]" string
4272         with the dots.
4273
4274         * retr.c (rate): Split into two functions: calc_rate and
4275         retr_rate.
4276
4277         * progress.c (create_image): Draw a dummy progress bar even when
4278         total size is unknown.
4279         (display_image): Place the text cursor at the end of the "image".
4280
4281 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
4282
4283         * url.c (reencode_string): Use unsigned char, not char --
4284         otherwise the hex digits come out wrong for 8-bit chars such as
4285         nbsp.
4286         (lowercase_str): New function.
4287         (url_parse): Canonicalize u->url if needed.
4288         (get_urls_file): Parse each URL, and return only the valid ones.
4289         (free_urlpos): Call url_free.
4290         (mkstruct): Add :port if the port is non-standard.
4291         (mkstruct): Append the query string to the file name, if any.
4292         (urlpath_length): Use strpbrk_or_eos.
4293         (uri_merge_1): Handle the cases where LINK is an empty string,
4294         where LINK consists only of query, and where LINK consists only of
4295         fragment.
4296         (convert_links): Count and report both kinds of conversion.
4297         (downloaded_file): Use a hash table, not a list.
4298         (downloaded_files_free): Free the hash table.
4299
4300         * retr.c (retrieve_from_file): Ditto.
4301
4302         * main.c (main): Call either retrieve_url or retrieve_tree
4303         for each URL, not both.
4304
4305         * retr.c (register_all_redirections): New function.
4306         (register_redirections_mapper): Ditto.
4307         (retrieve_url): Register the redirections.
4308         (retrieve_url): Make the string "Error parsing proxy ..." 
4309         translatable.
4310
4311         * res.c (add_path): Strip leading slash from robots.txt paths so
4312         that the path representations are "compatible".
4313         (free_specs): Free each individual path, too.
4314         (res_cleanup): New function.
4315         (cleanup_hash_table_mapper): Ditto.
4316
4317         * recur.c (url_queue_new): New function.
4318         (url_queue_delete): Ditto.
4319         (url_enqueue): Ditto.
4320         (url_dequeue): Ditto.
4321         (retrieve_tree): New function, replacement for recursive_retrieve.
4322         (descend_url_p): New function.
4323         (register_redirection): New function.
4324
4325         * progress.c (create_image): Cosmetic changes.
4326
4327         * init.c (cleanup): Do all those complex cleanups only if
4328         DEBUG_MALLOC is defined.
4329
4330         * main.c: Removed --simple-check and the corresponding
4331         simple_host_check in init.c.
4332
4333         * html-url.c (handle_link): Parse the URL here, and propagate the
4334         parsed URL to the caller, who would otherwise have to parse it
4335         again.
4336
4337         * host.c (xstrdup_lower): Moved to utils.c.
4338         (realhost): Removed.
4339         (same_host): Ditto.
4340
4341 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
4342
4343         * utils.c (path_simplify): Preserver the (non-)existence of
4344         leading slash.  Return non-zero if changes were made.
4345
4346 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
4347
4348         * progress.c (bar_update): Don't modify bp->total_length if it is
4349         zero.
4350
4351 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
4352
4353         * retr.c (retrieve_url): When the redirection URL doesn't parse,
4354         print the correct error message rather than "UNKNOWN".
4355
4356 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
4357
4358         * progress.c (bar_finish): If the timer didn't record any time
4359         since the download beginning, fake 1ms.
4360
4361 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
4362
4363         * recur.c (recursive_retrieve): Fix typo.
4364
4365 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
4366
4367         * progress.c (create_image): Don't translate "%ld ".
4368
4369 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
4370
4371         * progress.c (bar_set_params): Allow the user to force the use of
4372         the bar.
4373
4374 2001-11-23  Lemble Gregory  <gregory.lemble@st.com>
4375
4376         * gen_sslfunc.c (ssl_init_prng): New function; seed the SSL RNG.
4377
4378 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
4379
4380         * progress.c: Renamed dp_* functions to dot_* for greater clarity
4381         and consistency with bar_*.
4382         (print_download_speed): Get rid of the unneeded '@' character.
4383         (create_image): Fix download rate geometry.
4384
4385         * progress.c (print_elapsed): Remove spurious space.
4386         (print_elapsed): Renamed to print_download_speed, since that's
4387         what it does.
4388
4389 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
4390
4391         * progress.c (bar_update): If the downloaded amount becomes larger
4392         than the expected amount, adjust the expected amount accordingly.
4393
4394 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
4395
4396         * utils.c (determine_screen_width): New function.
4397
4398         * main.c (main): New option `--progress=TYPE'.
4399         (main): Implement compatibility with the old option `--dot-style'.
4400
4401         * init.c: Removed cmd_spec_dotstyle -- that logic is now in
4402         dp_set_params.
4403         (cmd_spec_progress): New function.
4404
4405         * retr.c (get_contents): Use the progress_* functions instead of
4406         the old show_progress().
4407         (show_progress): Removed.
4408         (rate): Print "xxxx.xx K/s" instead of "KB/s".  Ditto for MB/s,
4409         etc.
4410
4411         * progress.c (set_progress_implementation): New function.
4412         (valid_progress_implementation_p): Ditto.
4413         (progress_create): Ditto.
4414         (progress_update): Ditto.
4415         (progress_finish): Ditto.
4416         (dp_create): Ditto.
4417         (dp_update): Ditto.
4418         (dp_finish): Ditto.
4419         (dp_set_params): Ditto.
4420         (print_elapsed): Ditto.
4421
4422 2001-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
4423
4424         * retr.c (show_progress): Use it.
4425
4426         * log.c (log_set_flush): New function.
4427
4428 2001-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
4429
4430         * utils.c (path_simplify): Don't remove trailing slashes.
4431
4432         * ftp.c (ftp_get_listing): Use it.
4433
4434         * utils.c (file_merge): New function.
4435
4436         * url.c (opt_url): Removed.
4437
4438         * recur.c (recursive_retrieve): Inline "opt_url" logic.
4439
4440         * main.c (main): Use xfree(), not free().
4441
4442         * url.c (rewrite_url_maybe): Renamed to rewrite_shorthand_url.
4443
4444         * ftp.c (ccon): Move `ccon' typedef here, since it's only used
4445         internally.
4446
4447         * config.h.in: Include a stub for HAVE_STRPBRK.
4448
4449         * cmpt.c (strpbrk): Include a replacement for systems without
4450         strpbrk().
4451
4452         * ftp.c: Use url_set_dir and url_set_file when modifying the URL.
4453
4454         * url.c (url_set_dir): New function.
4455         (url_set_file): Ditto.
4456
4457         * ftp-basic.c (ftp_process_type): Process FTP type here; the URL
4458         parser makes the URL "params" available, so we can do that in this
4459         function.
4460
4461         * retr.c: Ditto.
4462
4463         * ftp.c: Ditto; pass the local file information in `ccon'.
4464
4465         * http.c: Get rid of the ugly kludge that had URL being replaced
4466         with the proxy URL when proxy retrieval was requested.  Use a
4467         separate parameter to http_loop and gethttp for the proxy URL.
4468
4469         * http.c: Changed to reflect the fact that local file, proxy, and
4470         referer information are no longer stored in struct url.  The local
4471         file information is passed in `struct hstat' now.
4472
4473         * url.c: Reworked URL parsing to be more regular.  Reencode the
4474         URL using reencode_string.
4475         Removed non-URL-related information from struct url.  This
4476         includes fields `proxy', `local', and `referer'.
4477
4478 2001-11-22  Jochen Hein  <jochen@jochen.org>
4479
4480         * main.c (main): Split the copyright notice for easier
4481         translation.
4482
4483 2001-08-21  Dave Turner <dct25@hermes.cam.ac.uk>
4484
4485         * ftp-basic.c (ftp_size): New function to send non-standard SIZE
4486           command to server to request file size.
4487         * ftp.h (ftp_size): Export it.
4488         * ftp.c (getftp): Use new ftp_size function if restoring
4489           transfer of a file with unknown size.
4490
4491 2001-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
4492
4493         * url.c (parseurl): Don't depend on the now-obsolete TYPE.
4494
4495 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
4496
4497         * url.c (getproxy): Handle URL shorthands.
4498
4499 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
4500
4501         * main.c: Remove --wait / --waitretry backwards compatibility
4502         code.
4503         
4504 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
4505
4506         * main.c (main): Use it.
4507
4508         * url.c (rewrite_url_maybe): New function.
4509
4510 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
4511
4512         * url.c: Clean up handling of URL schemes.
4513
4514 2001-05-13  Hrvoje Niksic  <hniksic@arsdigita.com>
4515
4516         * url.c: Get rid of `protostrings'.
4517         (skip_proto): Don't use protostrings.
4518         (has_proto): Ditto.
4519
4520 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
4521
4522         * Makefile.in: Conditionally compile getopt.o.
4523
4524 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
4525
4526         * md5.h: Renamed to gnu-md5.h.
4527
4528         * md5.c: Renamed to gnu-md5.c.
4529
4530         * http.c: Ditto.
4531
4532         * ftp-opie.c: Use the new macros.
4533
4534         * sysdep.h: Define md5-related macros.
4535
4536         * config.h.in: Define HAVE_SOLARIS_MD5 or HAVE_BUILTIN_MD5
4537         depending on which md5 implementation is used.
4538
4539 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
4540
4541         * res.c (res_register_specs): Initialize OLD and HP_OLD to appease
4542         the compiler.
4543
4544 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
4545
4546         * http.c (gethttp): Print the whole response line when printing
4547         headers is requested.
4548
4549 2001-05-12  Hrvoje Niksic  <hniksic@arsdigita.com>
4550
4551         * res.c: New file.  Implement all RES-related code here.
4552
4553 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
4554
4555         * version.c: Wget 1.7.1 is released.
4556
4557 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
4558
4559         * headers.c (header_extract_number): Ignore trailing whitespace.
4560
4561 2001-08-24  Ian Abbott  <abbotti@mev.co.uk>
4562
4563         * html-url.c (collect_tags_mapper): Fix bug converting links
4564         with -k option for tags with multiple link attributes by
4565         handling links in the order they appear.
4566
4567 2001-08-15  Ian Abbott  <abbotti@mev.co.uk>
4568
4569         * ftp.c (ftp_loop_internal): Avoid a potential buffer overflow in
4570           the call to the 'rate' function by moving it past the error
4571           checking for the 'getftp' function return value.
4572
4573 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
4574
4575         * html-parse.c (advance_declaration): Use 0x22 instead of '"' or
4576         '\"'.  Different compilers' assert macros are broken in different
4577         ways.
4578
4579 2001-09-29  Christian Fraenkel  <c.fraenkel@gmx.net>
4580
4581         * http.c (gethttp): print debug output for errors occuring during
4582         the ssl handshake.
4583
4584 2001-11-16  Chris Seawood  <cls@seawood.org>
4585
4586         * init.c: Ditto.
4587
4588         * host.c: Ditto.
4589
4590         * connect.c: Ditto.
4591
4592         * sysdep.h: Support compilation under BEOS.
4593
4594 2001-06-08  Edward J. Sabol  <sabol@alderaan.gsfc.nasa.gov>
4595
4596         * url.c (url_equal): Fix a memory leak when parseurl returns an
4597         error on the second URL. Also, since url_equal is not used at the
4598         moment, do not compile it.
4599
4600         * url.h: Ditto for the prototype of url_equal.
4601
4602 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
4603
4604         * html-parse.c (map_html_tags): Support XML-style empty tags.
4605
4606 2001-06-26  Hrvoje Niksic  <hniksic@arsdigita.com>
4607
4608         * wget.h (DO_REALLOC_FROM_ALLOCA): Check for do_realloc_newsize in
4609         loop condition because we're no longer setting SIZEVAR here.
4610
4611 2001-06-26  Hrvoje Niksic  <hniksic@arsdigita.com>
4612
4613         * wget.h (DO_REALLOC_FROM_ALLOCA): Set SIZEVAR after the memcpy()
4614         call because it needs the old value.
4615
4616 2001-06-18  Hrvoje Niksic  <hniksic@arsdigita.com>
4617
4618         * cookies.c (ATTR_NAME_CHAR): Allow almost any character to be in
4619         an attribute name.
4620
4621 2001-06-18  Hrvoje Niksic  <hniksic@arsdigita.com>
4622
4623         * url.c (url_filename): Make sure that slashes that sneak in to
4624         u->file via query string get protected.
4625         (file_name_protect_query_string): New function.
4626
4627 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
4628
4629         * recur.c (recursive_retrieve): Also check undesirable_urls with
4630         canonicalized URL.
4631
4632 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
4633
4634         * http.c (gethttp): Search `.netrc' with real host, not the proxy
4635         one.
4636
4637 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
4638
4639         * sysdep.h (MAP_FAILED): Provide MAP_FAILED for systems that don't
4640         define it.
4641
4642 2001-06-09  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
4643
4644         * ftp.h: Provide correct prototype for ftp_parse_ls().
4645
4646 2001-06-04  Hrvoje Niksic  <hniksic@arsdigita.com>
4647
4648         * version.c: Wget 1.7 is released.
4649
4650 2001-06-03  Karl Eichwalder  <ke@suse.de>
4651
4652         * ftp-ls.c (ftp_parse_ls): Fix typo.
4653
4654 2001-05-27  Hrvoje Niksic  <hniksic@arsdigita.com>
4655
4656         * all: Update copyright information.
4657
4658 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
4659
4660         * http.c (gethttp): Indicate that the continued download failed
4661         for *this* file.
4662
4663 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
4664
4665         * version.c: Wget 1.7-pre1 is released.
4666
4667 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
4668
4669         * version.c: Updated version to 1.7-pre1.
4670
4671 2001-05-14  Hrvoje Niksic  <hniksic@arsdigita.com>
4672
4673         * gen_sslfunc.c: Don't include <sys/time.h> directly.
4674
4675 2001-05-14  Hrvoje Niksic  <hniksic@arsdigita.com>
4676
4677         * http.c (gethttp): Use real URL data for cookies, not the proxy
4678         stuff.
4679
4680 2001-05-12  Hrvoje Niksic  <hniksic@arsdigita.com>
4681
4682         * main.c (print_help): Document `--no-http-keep-alive'.
4683
4684         * utils.c (numdigit): Handle negative numbers *correctly*.
4685
4686         * hash.c (make_nocase_string_hash_table): Use term "nocase" rather
4687         than the confusing "unsigned".
4688
4689         * utils.c (string_set_contains): Renamed from string_set_exists.
4690
4691         * hash.c (hash_table_contains): Renamed from hash_table_exists.
4692
4693         * cookies.c: Move case-insensitive hash tables to hash.c.
4694
4695 2001-05-09  Hrvoje Niksic  <hniksic@arsdigita.com>
4696
4697         * http.c (gethttp): Before concluding that the file is already
4698         fully retrieved, make sure that the file existed and `Range' was
4699         actually requested.
4700
4701 2001-05-09  Hrvoje Niksic  <hniksic@arsdigita.com>
4702
4703         * cookies.c (eliminate_dups): New function.
4704         (build_cookies_request): Use it.
4705         (build_cookies_request): Set chain_store_size after reallocating
4706         all_chains.
4707         (check_domain_match): Annotated for easier future debugging.
4708         (store_cookie): In the debug message, print whether the cookie is
4709         permanent.
4710
4711 2001-05-08  Hrvoje Niksic  <hniksic@arsdigita.com>
4712
4713         * http.c (http_loop): Reset no_truncate before deciding whether to
4714         set it.
4715         (gethttp): Further clarify "-c conflicts with existing file" error
4716         message, based on input from Herold Heiko.
4717
4718 2001-05-07  Hrvoje Niksic  <hniksic@arsdigita.com>
4719
4720         * http.c (http_loop): If restval is set, set no_truncate to 1
4721         unconditionally.
4722
4723 2001-05-02  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
4724
4725         * ftp-ls.c (ftp_parse_winnt_ls): Assure months are being correctly
4726         converted. Pointed out by <Stefan.Weil@de.heidelberg.com>.
4727         (ftp_parse_vms_ls): Ditto.
4728
4729 2001-04-30  Hrvoje Niksic  <hniksic@arsdigita.com>
4730
4731         * init.c (cmd_address): Zero SIN before using it; apparently
4732         needed on *BSD.
4733
4734 2001-04-29  Hrvoje Niksic  <hniksic@arsdigita.com>
4735
4736         * ftp.c (ftp_loop_internal): Don't set NO_TRUNCATE if the file is
4737         empty.
4738
4739 2001-04-29  Hrvoje Niksic  <hniksic@arsdigita.com>
4740
4741         * main.c (main): Make `--cookies' respect its argument.
4742
4743 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
4744
4745         * main.c (main): Removed undocumented option `--email-address'.
4746
4747         * netrc.c: Use the latest read_whole_line.
4748
4749         * init.c (defaults): Set opt.ftp_pass to "-wget@".
4750
4751         * mswindows.c (pwd_cuserid): Ditto.
4752
4753         * utils.c (pwd_cuserid): Removed.
4754
4755         * host.c (ftp_getaddress): Removed.
4756
4757 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
4758
4759         (http_loop): Allocate space for filename_plus_orig_suffix with
4760         alloca; this is more efficient and removes the need to free it
4761         before each and every return.
4762
4763 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
4764
4765         * http.c (gethttp): Return RETRUNNEEDED when the retrieval is
4766         unneeded because the file is already there and fully downloaded,
4767         and -c is specified.
4768         (http_loop): Handle RETRUNNEEDED.
4769
4770         * wget.h (uerr_t): New value RETRUNNEEDED.
4771
4772         * http.c (http_loop): Set no_truncate for files that both exist
4773         and are non-empty.
4774         (gethttp): Consider the download finished when restval >= contlen,
4775         not only when restval==contlen.
4776         (gethttp): Handle redirection before giving up due to -c.
4777         (gethttp): Clarify error message which explains that -c will not
4778         truncate the file.
4779         (gethttp): When returning CONTNOTSUPPORTED, don't forget to free
4780         the stuff that needs freeing and release the socket.
4781
4782 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
4783
4784         * main.c (print_help): Wget booleans accept "off", not "no".
4785
4786 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
4787
4788         * http.c (http_loop): If allow_cache is zero, always disable
4789         caching, not only when retrieving through proxy.
4790
4791         * init.c: Ditto.
4792
4793         * options.h (struct options): Rename proxy_cache to allow_cache.
4794
4795 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
4796
4797         * http.c (mktime_from_utc): Improve documentation.
4798         (http_atotm): Put format strings into a separate array.
4799
4800 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
4801
4802         * safe-ctype.h: Instead of throwing #error when isalpha is
4803         defined, redefine it to something that will throw a compile-time
4804         error if actually *used*.  Do the same for the rest of the
4805         standard C macros.
4806
4807 2001-04-26  Hrvoje Niksic  <hniksic@arsdigita.com>
4808
4809         * url.c (getproxy): Ignore empty proxy vars.
4810
4811 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
4812
4813         * http.c (http_loop): Would load cookies every time.
4814
4815         * cookies.c (load_cookies): Handle cookies whose values contain
4816         embedded spaces.
4817
4818 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
4819
4820         * utils.c: Define each DIGITS_* in one line.
4821
4822 2001-04-25  Roger L. Beeman  <beeman@cisco.com>
4823
4824         * http.c (http_atotm): Initialize t.tm_isdst to 0.
4825         (mktime_from_utc): Prevent mktime() from having discontinuities at
4826         DST transition points.
4827
4828 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
4829
4830         * html-url.c (get_urls_html): Fix documentation.
4831
4832 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
4833
4834         * url.c (UNSAFE_CHAR): Reimplement using a static table.
4835         (url_init): Removed.
4836         (init_unsafe_char_table): Removed.
4837
4838 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
4839
4840         * snprintf.c (dopr): Replace ISDIGIT with '0' <= ch && ch <= '9'.
4841
4842 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
4843
4844         * utils.c: Document timer functions.
4845
4846         * retr.c (rate): Use it.
4847         (rate): Print in GB/s if transfer rate exceeds 1 GB/s.
4848
4849         * utils.c (wtimer_granularity): New function.
4850
4851 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
4852
4853         * retr.c (show_progress): Ditto.
4854
4855         * ftp.c (getftp): Ditto.
4856
4857         * http.c (gethttp): Use new timer functions.
4858
4859         * utils.c (wtimer_allocate): New function.
4860         (wtimer_new): Ditto.
4861         (wtimer_delete): Ditto.
4862         (wtimer_reset): Ditto.
4863         (wtimer_elapsed): Ditto.
4864
4865 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
4866
4867         * utils.c (long_to_string): New, faster version.  Favors smaller
4868         numbers; much of the calculation is now done at compile-time.
4869
4870 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
4871
4872         * utils.c (numdigit): Handle negative numbers.
4873
4874 2001-04-23  Hrvoje Niksic  <hniksic@arsdigita.com>
4875
4876         * retr.c (show_progress): Print the download rate even when the
4877         percentages are not available.
4878
4879 2001-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
4880
4881         * ftp.c (getftp): Adjust expected_bytes if the length is
4882         authoritative.
4883
4884 2001-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
4885
4886         * url.c: Don't declare `construct'.
4887
4888         * hash.c (grow_hash_table): Speed up rehashing; inline storing of
4889         mappings to new locations.
4890         (hash_table_new): Make resize_threshold a field in the hash table,
4891         so we don't have to recalculate it in each hash_table_put.
4892         (grow_hash_table): Update resize_threshold.
4893         (MAX): Remove unused macro.
4894         (prime_size): Made static.
4895
4896 2001-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
4897
4898         * retr.c (retrieve_url): Call uri_merge, not url_concat.
4899
4900         * html-url.c (collect_tags_mapper): Call uri_merge, not
4901         url_concat.
4902
4903         * url.c (mkstruct): Use encode_string instead of xstrdup followed
4904         by URL_CLEANSE.
4905         (path_simplify_with_kludge): Deleted.
4906         (contains_unsafe): Deleted.
4907         (construct): Renamed to uri_merge_1.
4908         (url_concat): Renamed to uri_merge.
4909
4910 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
4911
4912         * url.c (str_url): Use encode_string instead of the unnecessary
4913         CLEANDUP.
4914         (encode_string_maybe): New function, returns input string if no
4915         encoding is needed.
4916         (encode_string): Call encode_string_maybe to do the dirty work,
4917         xstrdup if no work needed.
4918
4919 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
4920
4921         * wget.h (XDIGIT_TO_xchar): Define here.
4922
4923         * url.c (decode_string): Use new name.
4924         (encode_string): Ditto.
4925
4926         * http.c (XDIGIT_TO_xchar): Rename HEXD2asc to XDIGIT_TO_xchar.
4927         (dump_hash): Use new name.
4928
4929         * wget.h: Rename ASC2HEXD and HEXD2ASC to XCHAR_TO_XDIGIT and
4930         XDIGIT_TO_XCHAR respectively.
4931
4932 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
4933
4934         * init.c: Include cookies.h.
4935
4936         * cookies.h: Declare cookies_cleanup.
4937
4938         * cookies.c (check_domain_match): Remove unused variable.
4939         (save_cookies): Remove extraneous argument from debug statement.
4940
4941         * host.c (same_host): Don't call skip_url.
4942
4943         * url.c (skip_url): Removed.  Removed its calls from various
4944         functions in url.c.
4945
4946 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
4947
4948         * cookies.c (unsigned_string_hash): Use the new code in
4949         string_hash as reference.
4950
4951         * hash.c (hash_table_map): Allow deletion and change of the
4952         element processed by MAPFUN.
4953         (string_hash): Use the function from glib.
4954
4955 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
4956
4957         * config.h.in: Include #undef stub.
4958
4959         * hash.c (hash_table_remove): Rewrite to actually clear deleted
4960         entries instead of just marking them as deleted.
4961
4962 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
4963
4964         * hash.h: Declare hash_table_get_pair and hash_table_count.
4965
4966 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
4967
4968         * cookies.c: Declare http_atotm.
4969
4970 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
4971
4972         * ftp-ls.c (ftp_parse_unix_ls): Use octal constants for
4973         permissions.  A compiler that doesn't accept octal constants is
4974         seriously broken and shouldn't be used -- octal constants were
4975         present in K&R C!
4976
4977 2001-01-20  Karl Eichwalder  <ke@suse.de>
4978
4979         * Makefile.in: Provide and use DESTDIR according to the Coding
4980         Standards.
4981
4982 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
4983
4984         * ftp-ls.c (ftp_parse_vms_ls): Make seconds optional in time
4985         specification.
4986
4987 2001-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
4988
4989         * url.c (parseurl): Don't strip trailing slash when u->dir is "/"
4990         because that strips the *leading* slash, thus forcing relative
4991         FTP retrieval.
4992
4993 2001-04-10  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
4994
4995         * ftp.c (getftp): Convert initial FTP directory from VMS to UNIX
4996         notation for VMS servers. 
4997         (ftp_retrieve_dirs): Do not prepend '/' to f->name when
4998         odir is an empty string.
4999
5000 2001-04-10  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
5001
5002         * ftp-ls.c (ftp_parse_winnt_ls): Made the fix for AM/PM more
5003         effective. Suggested by Edward J. Sabol.
5004
5005 2001-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
5006
5007         * cookies.c (build_cookies_request): Use and sort cookies from all
5008         matching domains.
5009         (build_cookies_request): Check for duplicates before generating
5010         the `Cookies' header.
5011
5012         * main.c (main): Don't load cookies here.
5013         (main): Make loadcookies and savecookies call the correct command.
5014
5015         * http.c (http_loop): Load cookies on-demand.
5016
5017 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
5018
5019         * http.c (gethttp): Fix indentation of SSL ifdef.
5020
5021 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
5022
5023         * ftp.c (ftp_retrieve_dirs): Don't forcibly prepend "/" to u->dir;
5024         that hack is no longer necessary.
5025         (getftp): Prepend initial directory to *non*-absolute u->dir's.
5026
5027 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
5028
5029         * init.c (cmd_file): New function.
5030         (enable_tilde_expansion): New variable.
5031         (run_wgetrc): Use it.
5032         (cmd_file): Use it.
5033
5034 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
5035
5036         * init.c: Include cookie-related options.
5037
5038         * main.c (main): Include cookie-specific options.
5039         (main): Load cookies before download is finished.
5040         (main): Save cookies when done.
5041
5042         * http.c (gethttp): Process the `Set-Cookie' header.
5043         (gethttp): Include cookies in the response.
5044
5045         * cookies.c: New file.
5046
5047 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
5048
5049         * utils.c (datetime_str): New function.
5050
5051 2001-04-08  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
5052
5053         * ftp-ls.c (ftp_parse_winnt_ls): The AM/PM change did assume
5054         12:01PM == 00:01, which was obviously wrong. Taken care of this
5055         anomaly.
5056
5057         * ChangeLog: Removed an excess conflict marker. Reformatted the
5058         entry by Philipp Thomas from 2001-03-09.
5059
5060         * ftp-ls.c (ftp_parse_winnt_ls): Ensure that adjusted PM hours lay
5061         between 0 and 23. Elminate unused variable `sec'.
5062
5063 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
5064
5065         * hash.c (hash_table_count): New function.
5066
5067 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
5068
5069         * utils.c (read_file): Cast MAP_FAILED to char *.  Enforced by
5070         Digital Unix cc.
5071
5072 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
5073
5074         * config.h.in: Oops, do the namespace tweaks only on systems we
5075         know about.
5076
5077 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
5078
5079         * hash.c: Include <string.h>.
5080
5081 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
5082
5083         * config.h.in: Define "compilation environment" options that work
5084         under Linux and Solaris.  To be reviewed on other OS'es.
5085
5086 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
5087
5088         * http.c (gethttp): Prepend literal newline with `\n\'.
5089
5090 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
5091
5092         * sysdep.h: Don't define VERY_LONG_FORMAT.
5093
5094         * utils.c (very_long_to_string): New function.
5095         (legible_very_long): Use it; don't use VERY_LONG_FORMAT.
5096
5097 2001-04-04  Christian Fraenkel  <christian.fraenkel@gmx.net>
5098
5099         * url.c (parse_uname): Would run past the end of the string if the
5100         username was present, but the URL did not contain a slash, e.g.
5101         http://foo:bar@myhost.
5102
5103 2001-04-03  KOJIMA Hajime  <kjm@rins.ryukoku.ac.jp>
5104
5105         * http.c (http_atotm): Use %A instead of %a to match full
5106         weekday.  (On most systems there is no difference.)
5107
5108 2001-04-03  Paul Bludov  <paul@ozero.net>
5109
5110         * mswindows.c (sleep): Use SleepEx() instead of Sleep().
5111         (ws_changetitle): Use alloca() instead of malloc() to avoid memory
5112         leak.
5113         (ws_mypath): Use GetModuleFileName instead of argv[0].
5114         (ws_startup): Use data.wVersion for comparison.
5115
5116 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
5117
5118         * http.c (http_loop): Ditto.
5119
5120         * ftp.c (ftp_loop_internal): Made the check whether to continue
5121         retrieval `-O'-friendly.
5122
5123 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
5124
5125         * netrc.c (parse_netrc): Don't trim the line endings explicitly;
5126         they will be handled as whitespace.
5127         (parse_netrc): Correctly handle lines that end with whitespace.
5128
5129 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
5130
5131         * retr.c (retrieve_url): New variable global_download_count used
5132         to identify first retrieval.
5133
5134         * ftp.c (getftp): Ditto.
5135
5136         * http.c (gethttp): Rewind opt.dfp only on first retrieval.
5137
5138 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
5139
5140         * init.c (cmd_address): Heap-allocate the address that gets stored
5141         to CLOSURE.  Old code would simply assign an address on the stack.
5142
5143 2001-04-01  Nicolas Lichtmaier <nick@debian.org>
5144
5145         * ftp.c (ftp_get_listing): Propagate error status.
5146         (ftp_retrieve_glob): Use it.
5147         (ftp_loop): Ditto.
5148
5149 2001-04-01  Nicolas Lichtmaier <nick@debian.org>
5150
5151         * main.c (main): Add -C to the string that is the third arg to
5152         getopt_long().
5153
5154 2001-04-01  Hrvoje Niksic  <hniksic@arsdigita.com>
5155
5156         * ftp.c (getftp): Don't start the download from scratch if `-c'
5157         was specified, but the file is already fully downloaded.
5158
5159         * http.c (gethttp): Don't truncate a pre-existing file if `-c' was
5160         specified and the server doesn't support continued download.
5161         (gethttp): Don't start the download from scratch if `-c' was
5162         specified, but the file is already fully downloaded.
5163
5164 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
5165
5166         (recursive_retrieve): Don't clear the hash tables at this point at
5167         all; it interferes with the normal operation of register_download.
5168
5169 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
5170
5171         * recur.c (recursive_retrieve): Clear the hash tables only when
5172         they are defined.
5173
5174 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
5175
5176         * http.c (gethttp): Make sure the socket is closed with
5177         CLOSE_INVALIDATE before we have drained the body.
5178
5179 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
5180
5181         * retr.c (retrieve_url): Call register_download() for downloaded
5182         files and register_html() for downloaded HTML files.
5183
5184         * recur.c (register_download): New function; register here that a
5185         file has been downloaded, rather than in recursive_retrieve().
5186         (register_html): New function; enqueue the location of HTML files
5187         here rather than in recursive_retrieve().
5188
5189 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
5190
5191         * main.c (print_help): Use multiple fputs instead of a single ugly
5192         printf().
5193         (main): Consistently assign numbers >128 to options without a
5194         corresponding character.
5195
5196 2001-03-09  Philipp Thomas  <pthomas@suse.de>
5197
5198         * safe-ctype.h: New file. Locale independent ctype.h replacement
5199         taken from libiberty.
5200
5201         * safe-ctype.c: New file. Tables for above.
5202
5203         * Makefile.in: Add safe-ctype$o to OBJS.  Add dependencies for
5204         safe-ctype$o.
5205
5206         * cmpt.c: Remove include of ctype.h. Use ISSPACE instead of
5207         isspace.
5208
5209         * ftp-basic.c: Don't include ctype.h.
5210
5211         * ftp-ls.c: Likewise.
5212
5213         * ftp.c: Likewise.
5214
5215         * headers.c: Likewise.
5216
5217         * host.c: Likewise.
5218
5219         * html-parse.c: Likewise.
5220
5221         * html-url.c: Likewise.
5222
5223         * http.c: Likewise.
5224
5225         * init.c: Likewise.
5226
5227         * main.c: Likewise. Set LC_CTYPE along with LC_MESSAGES.
5228
5229         * netrc.c: Likewise.
5230
5231         * recur.c: Likewise.
5232
5233         * retr.c: Likewise.
5234
5235         * snprintf.c: Replace ctype.h with safe-ctype.h. Use ISDIGIT
5236         instead of isdigit.
5237
5238         * sysdep.h: Remove defines of ctype macros as they aren't needed
5239         for safe-ctype-h.
5240
5241         * url.c: Don't include ctype.h.
5242
5243         * utils.c: Likewise.
5244
5245         * wget.h: Include safe-ctype.h.
5246
5247 2001-03-27  Dan Harkless  <wget@harkless.org>
5248
5249         * Makefile.in: Moved top_builddir out of "User configuration
5250         section" of top Makefile and analogous spot in this one.
5251
5252 2001-03-17  Dan Harkless  <wget@harkless.org>
5253
5254         * Makefile.in: Include @SSL_INCLUDES@ substition in INCLUDES.
5255         Define top_builddir.  Link wget with libtool so the user doesn't
5256         have to supply a bunch of custom environment variables to 
5257         correctly link with the OpenSSL shared libraries.
5258
5259 2001-03-06  Hack Kampbjorn  <hack@hackdata.com>
5260
5261         * http.c (gethttp): skip :port in host header if it is the
5262         DEFAULT_HTTPS_PORT when using SSL.
5263
5264         * url.c: move the #define of DEFAULT_HTTP_PORT, DEFAULT_FTP_PORT
5265         and DEFAULT_HTTPS_PORT to the header file so it can be use in the
5266         rest of the code. 
5267         * url.h: Ditto
5268
5269 2001-03-01  Jonas Jensen  <bones@huleboer.dk>
5270
5271         * retr.c (show_progress): Correctly calculate the number of bytes
5272         in the first line of the download that have been actually
5273         downloaded in this run.
5274
5275 2001-02-23  Dan Harkless  <wget@harkless.org>
5276
5277         * main.c (print_help): --help documentation for -N said it would
5278         re-download files if they had the _same_ timestamp on server.
5279         (print_help): -nr belongs in "FTP options" section of --help
5280         output, not "Recursive retrieval" section.  Alphabetized FTP
5281         options by long option name.
5282
5283 2001-02-16  Dan Harkless  <wget@harkless.org>
5284
5285         * init.c (commands): Hack Kampbjørn <hack@hackdata.com> discovered
5286         that "httpsproxy" had been inserted into commands[] out of
5287         alphabetical order, causing "BUG: unknown command `httpuser'".
5288
5289 2001-02-13  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
5290
5291         * ftp-ls.c (ftp_parse_ls): Added support of ST_MACOS (Unix-like
5292         listing without correct permissons).
5293
5294         * ftp.h (stype): Added ST_MACOS to identify the NetPresenz MacOS
5295         FTP server. 
5296
5297         * ftp.c (ftp_retrieve_list): New mirroring logic: A remote file
5298         shall be donwloaded only when it's newer than the local copy or
5299         when it has the same timeestamp but its size is different. ST_VMS
5300         and ST_MACOS as special cases that lie about file size. 
5301
5302         * ftp-ls.c (ftp_parse_ls): Support for ST_MACOS.
5303
5304         * Makefile.in: Removed dependency on ftpparse library due to unclear
5305         copyright issues and absence of any feedback to our queries. 
5306
5307         * ftp-ls.c: Removed dependency on ftpparse library due to unclear
5308         copyright issues and absence of any feedback to our queries.   
5309         (ftp_parse_ls): Added a warning message when remote server system
5310         does not seem to be suported by wget. 
5311         (ftp_parse_vms_ls): New function for parsing VMS ftp
5312         server listing output.
5313         (clean_line): New function responsible for removing
5314         end-of-line characters from FTP listing texts.
5315
5316         * ftp.c (getftp): Global variables pwd and host_type are now
5317         member of the ccon structure under names ccon.id and ccon.rs. 
5318
5319         * ftp.h (struct ccon): Added formed global variables from ftp.c,
5320         enum stype rs (remote system identification) and char *id (initial
5321         working directory), as suggested by Hrvoje.
5322
5323         * url.c (parse_uname): Added support for passwords containing '@'
5324         characters.
5325         (skip_uname): Ditto.
5326
5327 2001-02-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5328
5329         * ftp.c (ftp_loop): Reset con.
5330
5331 2001-01-06  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
5332
5333         * url.c (parse_uname): Added support for passwords containing '@'
5334         characters.
5335         (skip_uname): Ditto.
5336
5337 2001-02-11  Hack Kampbjørn  <hack@hackdata.com>
5338
5339         * url.c (parseurl): Debug-print u->ftp_type.
5340
5341 2001-02-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5342
5343         * ftp.c (ftp_loop_internal): Disable padding.
5344         (getftp): Ditto.
5345
5346         * http.c (http_loop): Disable padding.
5347
5348         * retr.c (show_progress): Use it to enable padding.
5349
5350         * retr.c (rate): Optional parameter PAD for padding the rate.
5351
5352 2001-02-10  Hrvoje Niksic  <hniksic@arsdigita.com>
5353
5354         * retr.c (show_progress): Make sure that the last output line
5355         includes progress.
5356
5357 2001-02-10  Jonas Jensen  <bones@huleboer.dk>
5358
5359         * retr.c (show_progress): Print the download rate along with the
5360         percentages.
5361         Along with Anders Thorsby <anders@thorsby.dk>.
5362
5363 2001-02-10  Tim Mooney  <mooney@dogbert.cc.ndsu.NoDak.edu>
5364
5365         * ftp.h: Rename enums `command' to `wget_ftp_command' and
5366         `fstatus' to `wget_ftp_status' because old names clash with Tru64
5367         net/if.h.
5368
5369 2001-02-08  Christian Fraenkel <christian.fraenkel@gmx.net>
5370
5371         * gen_sslfunc.c: verify_callback is now static
5372
5373         * gen_sslfunc.c (init_ssl): load certificate if specified
5374
5375         * gen_sslfunc.c (ssl_printerr): new function
5376
5377         * init.c: added new --sslcertfile and --sslcertkey switches
5378
5379         * main.c: ditto
5380
5381         * options.h: ditto
5382
5383         * http.c (gethttp): abort when init_ssl fails
5384
5385 2001-01-23  Herold Heiko  <Heiko.Herold@previnet.it>
5386
5387         * mswindows.h: Include <malloc.h>; it's needed for alloca().
5388
5389 2001-01-10  Dan Harkless  <wget@harkless.org>
5390
5391         * url.c (str_url): Clarified this function's comment header after
5392         Hrvoje answered my question on the list as to when hide != 1.
5393         Also Hrvoje pointed out I need to use xstrdup() on the string literal.
5394
5395 2001-01-06  Hrvoje Niksic  <hniksic@arsdigita.com>
5396
5397         * connect.c (bindport): Declare addrlen as int.  Diagnosed by
5398         Drazen Kacar <dave@arsdigita.com>.
5399         (conaddr): Ditto.
5400
5401 2001-01-09  Dan Harkless  <wget@harkless.org>
5402
5403         * html-url.c: A bunch of fixup of `--page-requisites'-related
5404         comments to reflect Hrvoje's changes to my code when transplanting
5405         it into this new file, to fix spelling mistakes, to clarify, etc.
5406
5407         * url.c (write_backup_file): Clarified a comment.
5408         (str_url): Henrik van Ginhoven pointed out on the list that we
5409         shouldn't give away the number of characters in the password by
5410         replacing each character with a 'x'.  Use "<password>" instead.
5411
5412         * ftp.c (ftp_retrieve_dirs): The bug where recursion into FTP
5413         directories didn't work if logging in put you in a directory other
5414         than "/" is fixed now.  Removed the comment here warning of the bug.
5415
5416         * main.c (print_help): --continue's description was misleading.
5417         We don't "restart", we "resume".  Also, better to say
5418         "partially-downloaded file" rather than just "existing file".
5419
5420 2001-01-06  Dan Harkless  <wget@harkless.org>
5421
5422         * ChangeLog: The '[Not in 1.6 branch.]'s were decided not to be
5423         the best way to go about my aim.  Removed them in favor of:
5424
5425         * ChangeLog-branches/1.6_branch.ChangeLog: New file.
5426
5427 2001-01-04  Hrvoje Niksic  <hniksic@arsdigita.com>
5428
5429         * url.c (replace_attr): New function, to be used by both
5430         TO_COMPLETE and TO_RELATIVE case in convert_links.
5431         (find_fragment): New function for finding URL fragments.
5432         (replace_attr): Better handle the case where the original string
5433         is not quoted.  Use find_fragment.
5434         (convert_links): Use replace_attr().
5435
5436 2000-12-31  Dan Harkless  <wget@harkless.org>
5437
5438         * ChangeLog: Since this flat file doesn't have multiple branches,
5439         looking at the dates would make you think that things went into
5440         1.6 that actually just went into the 1.7-dev branch.  Added "[Not
5441         in 1.6 branch.]" where appropriate to clarify.
5442         
5443 2000-12-30  Dan Harkless  <wget@harkless.org>
5444
5445         * ftp.c, http.c:  Applied Hack Kampbjørn <hack@hackdata.com>'s
5446         patch to deal with h_errno not being defined in netdb.h under Cygwin.
5447
5448 2000-12-18  Csaba Raduly  <csaba.raduly@sophos.com>
5449
5450         * sysdep.h: Include <malloc.h> and <io.h> under Watcom.
5451
5452 2000-12-17  Igor Khristophorov  <igor@atdot.org>
5453
5454         * http.c (check_end): Fix test for '+' or '-'.
5455
5456 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
5457
5458         * url.c (parseurl): Rename inner loop var from i to ind to avoid
5459         clash with the function top-level-declared variable i.
5460         (str_url): Likewise, rename inner-loop i to j.
5461
5462         * recur.c (parse_robots): Don't declare LEN at top of function.
5463         (robots_match): Renamed parameter FORBIDDEN to avoid hiding of
5464         global variable.
5465
5466         * main.c (main): Change erroneous use of bitwise and to logical.
5467
5468         * init.c (cmd_address): Don't heap-allocate `sin'; it can be on
5469         the stack because it will be copied to closure.
5470
5471         Thanks to Csaba Raduly's run of PC-LINT over the sources.
5472
5473 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
5474
5475         * http.c (basic_authentication_encode): Use xmalloc(), not
5476         malloc().  Thanks to Csaba Raduly's run of PC-LINT over the
5477         sources.
5478
5479 2000-12-17  Csaba Raduly  <csaba.raduly@sophos.com>
5480
5481         * sysdep.h: Test for __EMX__ rather than for EMXOS2 for OS/2
5482         compilation.
5483
5484 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
5485
5486         * mswindows.c: Include <errno.h>.
5487
5488         * gen_sslfunc.c: Include <errno.h>.
5489
5490         * ftp-basic.c: Don't attempt to declare errno or h_errno because
5491         they're not used.
5492
5493         * main.c: Include <errno.h> because errno is used.
5494
5495         * ftp.c: Ditto.
5496
5497         * http.c: Include <netdb.h> for h_errno.
5498
5499 2000-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
5500
5501         * html-parse.c (advance_declaration): MSVC assert() chokes on
5502         '\"'.  Use '"' instead.
5503
5504 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5505
5506         * utils.c (xfree_real): Removed.
5507         (xfree_debug): Just call free().
5508
5509         * wget.h (xfree): Make it an alias for free.
5510
5511 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5512
5513         * http.c (http_loop): Furthermore, touch output_document only if
5514         it is known to be an existing regular file.
5515
5516 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5517
5518         * ftp.c (ftp_retrieve_list): Ditto.
5519
5520         * http.c (http_loop): Touch output_document if that is used for
5521         output.
5522
5523 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
5524
5525         * http.c: Include gen_sslfunc.h after including Wget's headers.
5526         (persistent_available_p): Needed coma before `int ssl'.
5527
5528 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
5529
5530         * ftp.c (ftp_loop_internal): Ditto.
5531
5532         * http.c (http_loop): Use it.
5533
5534         * retr.c (sleep_between_retrievals): New function that handles the
5535         logic of opt.wait and opt.waitretry.
5536
5537 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
5538
5539         * rbuf.h: Implement only a single version of RBUF_READCHAR, using
5540         rbuf_read_bufferful when the buffer is depleted.
5541
5542         * rbuf.c (rbuf_read_bufferful): New function.
5543
5544 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
5545
5546         * gen_sslfunc.h: Use ansi2knr style function declarations.
5547
5548         * gen_sslfunc.c: Reformat according to the GNU coding standards.
5549         More should be done.
5550
5551         * http.c (persistent_available_p): Place the cheap SSL test nearer
5552         the top of the function.
5553         (CLOSE_FINISH, CLOSE_INVALIDATE): Define only one version of each.
5554
5555 2000-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
5556
5557         * url.c (init_unsafe_char_table): Reinstate space as an unsafe
5558         char.
5559
5560 2000-12-03  Christian Fraenkel <christian.fraenkel@gmx.net>
5561
5562         * Makefile.in: added gen_sslfunc object
5563         * config.h.in: added HAVE_SSL define
5564         * connect.c: changed select_fd from static int to int
5565         * connect.h: ditto
5566         * gen_sslfunc.h: New file
5567         * gen_sslfunc.c: ditto
5568         * http.c: added HTTPS fuctionality
5569         * retrc.c: ditto
5570         * url.c: ditto
5571         * init.c: added opt.httpsproxy
5572         * options.h: ditto
5573         * rbuf.h: added alternate rbuf struct
5574         * wget.h: added CONSSLERR
5575         * rbuf.c: ditto
5576
5577         * http.c: Added HTTPS fuctionality.
5578
5579         * retrc.c: Ditto.
5580
5581         * url.c: Ditto.
5582
5583         * init.c: Added opt.httpsproxy.
5584
5585         * options.h: Ditto.
5586
5587         * rbuf.h: Added alternate rbuf struct.
5588
5589         * wget.h: Added CONSSLERR.
5590
5591         * rbuf.c: Ditto.
5592
5593 2000-11-30  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
5594
5595         * ftp-ls.c (ftp_parse_unix_ls): Added second parameter
5596         "ignore_perms" to ignore file and directory permissions for
5597         Windows NT FTP server listings.
5598         (ftp_parse_winnt_ls): New function.
5599         (ftp_parse_ls): Parses UNIX and Windows NT listings
5600         separately. Simple heuristics for distinguishing between UNIX and
5601         MS-DOS-like FTP listing provided by Windows NT FTP service.
5602
5603 2000-11-18  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
5604
5605         * ftpparse.c, ftpparse.h: New files.
5606
5607         * ftp-ls.c (ftp_parse_ls): Use ftp_parse_unix_ls for UNIX servers
5608         only. Use ftp_parse_nonunix_ls otherwise.
5609         (ftp_parse_nonunix_ls): Stub to the ftpparse library handling all
5610         exotic FTP servers.
5611
5612         * ftp.h (stype): New enum, distinguishes UNIX, VMS, and "other"
5613         FTP servers.
5614
5615         * ftp.c: New static wariables host_type, pwd, and pwd_len. 
5616         (getftp): Support for VMS. Support for FTP servers that do not
5617         place you in the root directory after login.
5618         (ftp_retrieve_list): VMS is silent about the real file size, issue
5619         a more appropriate message.
5620         (ftp_get_listing): Pass host_type to ftp_parse_ls.
5621
5622         * ftp-basic.c (ftp_pwd, ftp_syst): New functions.
5623
5624 2000-11-30  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
5625
5626         * ftp-ls.c (ftp_parse_unix_ls): Added second parameter
5627         "ignore_perms" to ignore file and directory permissions for
5628         Windows NT FTP server listings.
5629         (ftp_parse_winnt_ls): New function.
5630         (ftp_parse_ls): Parses UNIX and Windows NT listings
5631         separately. Simple heuristics for distinguishing between UNIX
5632         and MS-DOS-like FTP listing provided by Windows NT FTP service.
5633
5634 2000-11-29  John Summerfield  <summer@OS2.ami.com.au>
5635
5636         * netrc.c (parse_netrc): Get rid of line ending.
5637
5638 2000-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
5639
5640         * ftp.c (ftp_retrieve_list): Undo typo "fix" until resolution by
5641         Dan.
5642
5643 2000-11-24  Karl Eichwalder  <ke@suse.de>
5644
5645         * main.c (print_help): Untabify.
5646
5647 2000-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
5648
5649         * utils.c (xrealloc_debug): Do the unregister/register thing only
5650         if the pointer has actually changed.
5651         (xmalloc_real): Declare `static' in DEBUG_MALLOC builds.
5652         (xfree_real): Ditto.
5653         (xrealloc_real): Ditto.
5654         (xstrdup_real): Ditto.
5655
5656 2000-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
5657
5658         * ftp.c (getftp): ftp_getaddress() returns a malloc'ed copy of the
5659         string; no need to strdup() it.
5660         (getftp): Make pwd_len a local variable.
5661         (ftp_loop): Free PWD before returning.
5662
5663         * init.c (cleanup): Free opt.ftp_pass only if it's non-NULL.
5664
5665 2000-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
5666
5667         * all: Use xfree() instead of free.
5668
5669         * utils.c (xfree): New function.
5670
5671 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
5672
5673         * url.c (convert_links): HTML-quote the converted string.
5674
5675         * utils.c (html_quote_string): Move here from ftp-ls.c
5676         (html_quote_string): Make non-static; declare in utils.h.
5677         (html_quote_string): Convert SP to &#32;.
5678
5679 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
5680
5681         * ftp.c (getftp): Reformat Jan's code according to GNU coding
5682         standards; remove (debugging?) printf's; use '\0' for the ASCII
5683         zero character.  Use alloca() instead of malloc() for
5684         inter-function temporary allocations.
5685
5686 2000-11-18  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
5687
5688         * ftpparse.c, ftpparse.h: New files.
5689
5690         * ftp-ls.c (ftp_parse_ls): Use ftp_parse_unix_ls for UNIX servers
5691         only. Use ftp_parse_nonunix_ls otherwise.
5692         (ftp_parse_nonunix_ls): Stub to the ftpparse library handling all
5693         exotic FTP servers.
5694
5695         * ftp.h (stype): New enum, distinguishes UNIX, VMS, and "other"
5696         FTP servers.
5697
5698         * ftp.c: New static wariables host_type, pwd, and pwd_len. 
5699         (getftp): Support for VMS. Support for FTP servers that do not
5700         place you in the root directory after login.
5701         (ftp_retrieve_list): VMS is silent about the real file size, issue
5702         a more appropriate message.
5703         (ftp_get_listing): Pass host_type to ftp_parse_ls.
5704
5705         * ftp-basic.c (ftp_pwd, ftp_syst): New functions.
5706
5707 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
5708
5709         * hash.c (hash_table_put): Don't overwrite deleted mappings.
5710
5711 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
5712
5713         * hash.c (find_mapping): New function.
5714         (hash_table_get): Use it.
5715         (hash_table_get_pair): Ditto.
5716         (hash_table_exists): Ditto.
5717         (hash_table_remove): Ditto.
5718         (hash_table_remove): Really delete the entry if the mapping
5719         following LOCATION is empty.
5720
5721         * utils.c (string_set_add): Check whether the element has existed
5722         before.
5723
5724         * hash.c (hash_table_get_pair): New function.
5725
5726 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
5727
5728         * http.c (http_process_type): Ignore trailing whitespace; use
5729         strdupdelim().
5730
5731         * recur.c (recursive_retrieve): Use the new `convert' field.
5732         (convert_all_links): Ditto.
5733         (convert_all_links): Don't respect meta_disallow_follow.
5734
5735         * html-url.c (handle_link): Fill out link_relative_p and
5736         link_complete_p.
5737
5738         * url.h (struct _urlpos): Make elements more readable.
5739
5740         * recur.c (recursive_retrieve): Call slist_prepend instead of
5741         slist_append.
5742         (convert_all_links): Call slist_nreverse before iterating through
5743         urls_html.
5744
5745         * utils.c (slist_prepend): New function.
5746         (slist_nreverse): Ditto.
5747
5748 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
5749
5750         * http.c (check_end): Constify.
5751
5752 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
5753
5754         * http.c (http_loop): If username and password are known, try the
5755         `Basic' authentication scheme by default.
5756
5757         * connect.h: Declare test_socket_open.
5758
5759 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
5760
5761         * version.c: Bump version from 1.5.3+dev to 1.7-dev.
5762
5763 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
5764
5765         * http.c (gethttp): Don't use the return value of sprintf().
5766         (gethttp): Inhibit keep-alive if opt.http_keep_alive is 0.
5767
5768 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
5769
5770         * recur.c (recursive_retrieve): Print the "so we don't load"
5771         debugging message only if we really don't load.
5772
5773         * http.c (gethttp): Inhibit keep-alive if proxy is being used.
5774         (gethttp): Don't request keep-alive if keep-alive is inhibited.
5775
5776 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
5777
5778         * http.c (gethttp): Make the HTTP persistent connections more
5779         robust.
5780
5781 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
5782
5783         * retr.c (get_contents): If use_expected, make sure that the
5784         appropriate amount of data is being read.
5785
5786         * http.c (gethttp): Check for both `Keep-Alive: ...' and
5787         `Connection: Keep-Alive'.
5788
5789         * wget.h (DEBUGP): Call debug_logprintf only if opt.debug is
5790         turned on.
5791
5792 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
5793
5794         * http.c (connection_available_p): Use it.
5795
5796         * connect.c (test_socket_open): New function.
5797
5798         * http.c (gethttp): Support persistent connections.  Based on the
5799         ideas, and partly on code, by Sam Horrocks <sam@daemoninc.com>.
5800         (register_persistent): New function.
5801         (connection_available_p): Ditto.
5802         (invalidate_connection): Ditto.
5803
5804 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
5805
5806         * url.c (convert_links): Handle UREL2ABS case.
5807
5808         * recur.c (recursive_retrieve): Instead of the list
5809         urls_downloaded, use hash tables dl_file_url_map and
5810         dl_url_file_map.
5811         (convert_all_links): Use them to retrieve data.
5812
5813         * host.c (clean_hosts): Free the hash tables.
5814
5815         * main.c (private_initialize): Call host_init().
5816
5817         * host.c (store_hostaddress): Use a saner, hash table-based data
5818         model.
5819         (realhost): Ditto.
5820         (host_init): Initialize the hash tables.
5821
5822 2000-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
5823
5824         * utils.c (slist_append): Eviscerate NOSORT.  Hash tables are now
5825         used for what the sorted slists used to be used for.
5826         (slist_contains): Don't rely on the list being sorted.
5827         (slist_append): Simplify the code.
5828
5829         * recur.c (recursive_cleanup): Use free_string_set.
5830
5831         * utils.c (string_set_add, string_set_exists, string_set_free):
5832         New functions for easier freeing of hash tables whose keys are
5833         strdup'ed strings.
5834
5835         * recur.c (recursive_retrieve): Use the hash table functions for
5836         storing undesirable URLs.
5837
5838         * hash.c: New file.
5839
5840 2000-11-17  Hrvoje Niksic  <hniksic@arsdigita.com>
5841
5842         * main.c (private_initialize): Call url_init.
5843         (main): Call private_initialize.
5844
5845         * url.c (unsafe_char_table): New table.
5846         (UNSAFE_CHAR): Use it.
5847         (init_unsafe_char_table): New function.
5848         (url_init): New function; call init_unsafe_char_table.
5849
5850 2000-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
5851
5852         * mswindows.h: Define snprintf and vsnprintf to _snprintf and
5853         _vsnprintf respectively.
5854
5855 2000-11-15  Hrvoje Niksic  <hniksic@arsdigita.com>
5856
5857         * config.h.in: Do the _XOPEN_SOURCE and _SVID_SOURCE things only
5858         on Linux.
5859
5860 2000-11-15  Hrvoje Niksic  <hniksic@arsdigita.com>
5861
5862         * html-url.c (handle_link): Handle HTML fragment identifiers.
5863
5864         * recur.c (recursive_retrieve): If norobot info is respected and
5865         the file is specified not to be followed by robots, respect that.
5866
5867         * html-url.c (collect_tags_mapper): Handle <meta name=robots
5868         content=X>.  For us the important cases are where X is NONE or
5869         where X contains NOFOLLOW.
5870         (get_urls_html): Propagate that information to the caller.
5871
5872 2000-11-13  Hrvoje Niksic  <hniksic@arsdigita.com>
5873
5874         * url.c (convert_links): Unlink the file we might be reading from
5875         before writing to it.
5876         (convert_links): Use alloca instead of malloc for
5877         filename_plus_orig_suffix.
5878
5879 2000-11-12  Hrvoje Niksic  <hniksic@arsdigita.com>
5880
5881         * host.c (realhost): Add HOST to the list with quality==0 only if
5882         it wasn't already there.
5883         Based on analysis by Lu Guohan <feng@public.bjnet.edu.cn>.
5884
5885 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
5886
5887         * url.c (get_urls_file): Ditto.
5888         (convert_links): Ditto.
5889
5890         * html-url.c (get_urls_html): Use read_file() instead of
5891         load_file().
5892
5893         * utils.c (read_file): New function, instead of the old
5894         load_file().
5895         (read_file_free): Ditto.
5896
5897         * url.c (findurl): Search only for the supported protocols.
5898         (convert_links): Use fwrite() when writing out a region of
5899         characters.
5900
5901 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
5902
5903         * ftp-ls.c: Move html_quote_string and ftp_index here.
5904
5905         * url.c: Remove get_urls_html, since that's now in html-url.c.
5906
5907         * html-url.c: New file.
5908
5909         * html-parse.c: New file.
5910
5911 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
5912
5913         * init.c (run_wgetrc): Don't bother killing off '\r' since
5914         pars_line() skips whitespace at end of line anyway.
5915         (parse_line): Oops, it didn't.  Now it does.
5916
5917         * recur.c (parse_robots): Ditto here.
5918
5919         * ftp-ls.c (ftp_parse_unix_ls): Kill off the newline character
5920         manually because read_whole_line no longer does.
5921
5922         * utils.c (read_whole_line): Rewrite to: a) use less memory
5923         (reallocates to needed size after work), b) work faster -->
5924         fgets() instead of getc, c) be more correct --> doesn't kill the
5925         newline character at the end of line.
5926
5927 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
5928
5929         * init.c (comind): Initialize MAX to array size - 1.
5930
5931 2000-11-08  Hrvoje Niksic  <hniksic@arsdigita.com>
5932
5933         * url.c (construct): Changed last_slash[-1] to *(last_slash - 1).
5934         Suggested by Edward J. Sabol.
5935
5936 2000-11-08  Hrvoje Niksic  <hniksic@arsdigita.com>
5937
5938         * url.c (construct): Handle the case where host name is not
5939         followed by a slash.
5940
5941 2000-11-06  Hrvoje Niksic  <hniksic@arsdigita.com>
5942
5943         * init.c: commands[] need to be sorted!  ("base" wasn't.)
5944
5945 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
5946
5947         * wget.h (DO_REALLOC_FROM_ALLOCA): Use braces to disambiguate
5948         `if'.
5949
5950 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
5951
5952         * url.c (construct): Insert unneeded initialization for the
5953         compiler to shut up.
5954
5955         * config.h.in: Define _XOPEN_SOURCE to 500 to get the prototype
5956         for strptime() (*duh*).  Define _SVID_SOURCE to get S_IFLNK which
5957         otherwise gets lost when you define _XOPEN_SOURCE.
5958
5959         * utils.c (touch): Include the file name in the error message.
5960         From Debian.
5961
5962 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
5963
5964         * log.c (logvprintf): Use vsnprintf() in all cases.  If necessary,
5965         resize the buffer to fit the formated message.  That way, messages
5966         of arbitrary size may be printed.
5967         (logvprintf): Use saved_append() to optionally log the last
5968         several lines of output.
5969         (logputs): Ditto.
5970         (log_close): Adapt to new data structures.
5971         (log_dump): Ditto.
5972         (redirect_output): Print messages to stderr, not to stdout.
5973
5974         * log.c (saved_append_1): New function.  Replaces the old logging
5975         system ("log all output until 10M characters") with a new, much
5976         more reasonable one ("log last screenful of text").
5977         (saved_append): New function; call saved_append_1.
5978         (free_log_line): New function.
5979
5980 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
5981
5982         * url.c (construct): Fix comment.
5983         (find_last_char): Document.
5984
5985 2000-11-04  Hrvoje Niksic  <hniksic@arsdigita.com>
5986
5987         * snprintf.c: New file.
5988
5989 2000-11-03  Hrvoje Niksic  <hniksic@arsdigita.com>
5990
5991         * wget.h: If HAVE_STDARG_H is not defined, don't declare argument
5992         types to logprintf() and debug_logprintf().
5993
5994 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
5995
5996         * ftp.c (ftp_loop_internal): Hide the password from the URL when
5997         printing non-verbose.  Problem spotted by Dariusz Mlynarczyk
5998         <darekm@bydg.lomac.com.pl>.
5999
6000 2000-11-02  Junio Hamano  <junio@twinsun.com>
6001
6002         * ftp-basic.c (ftp_login): Make comparison case-insensitive.
6003
6004 2000-11-02  Tyler Riddle  <triddle@liquidmarket.com>
6005
6006         * http.c (known_authentication_scheme_p): Recognize NTML
6007         authentication.
6008         (create_authorization_line): Treat NTML the same as `Basic'.
6009
6010 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
6011
6012         * retr.c (retrieve_url): Free url before returning.
6013         (retrieve_url): Free mynewloc before returning.
6014         Spotted by Mark A. Mankins <Mankins_Mark@prc.com>.
6015
6016 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
6017
6018         * url.c (parseurl): Remove possible reading past the end of
6019         sup_protos[].  Spotted by Mark A. Mankins <Mankins_Mark@prc.com>.
6020
6021 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6022
6023         * main.c (main): In case of opt.downloaded overflowing, print
6024         <overflow> instead of a totally bogus random value.
6025
6026         * retr.c (retrieve_from_file): Ditto.
6027
6028         * recur.c (recursive_retrieve): Ditto.
6029
6030         * main.c (main): Ditto.
6031
6032         * http.c (http_loop): Ditto.
6033
6034         * ftp.c (ftp_loop_internal): Use downloaded_increase() instead of
6035         `+=', and downloaded_exceeds_quota() instead of the simple-minded
6036         check.
6037         (ftp_retrieve_list): Ditto.
6038         (ftp_retrieve_dirs): Ditto.
6039         (ftp_retrieve_glob): Ditto.
6040
6041         * retr.c (downloaded_increase): New function.  Notice overflows of
6042         opt.downloaded.
6043         (downloaded_exceeds_quota): Make sure that opt.downloaded is not
6044         used if it overflowed.
6045
6046         * options.h (struct options): New member downloaded_overflow.
6047
6048 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6049
6050         * wget.h (enum): Remove extra space after last enumeration.
6051
6052 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6053
6054         * main.c (main): Use legible_very_long() for printing
6055         opt.downloaded.
6056
6057         * utils.c (legible_1): New function that operates on strings and
6058         does the brunt of legible()'s work.
6059         (legible): Use legible_1().
6060         (legible_very_long): New function; dump the argument with
6061         sprintf(), and call legible_1().
6062
6063         * options.h (struct options): Use VERY_LONG_TYPE for
6064         opt.downloaded.
6065
6066         * sysdep.h (VERY_LONG_TYPE): Define it to have a 64-bit or greater
6067         type.
6068
6069         * config.h.in: Make sure that SIZEOF_LONG and SIZEOF_LONG_LONG get
6070         defined.  Define HAVE_LONG_LONG if long long is available.
6071
6072 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6073
6074         * utils.c (long_to_string): Update with a later, better version.
6075
6076 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6077
6078         * url.c (path_simplify_with_kludge): New function.
6079         (path_simplify_with_kludge): Disable it.  Instead...
6080         (parse_dir): ...make sure that at this point the right thing is
6081         done, i.e. that "query" part of the URL (?...) is always assigned
6082         to the file, never to the directory portion of the path.
6083
6084 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6085
6086         * retr.c (retrieve_url): Detect redirection cycles.
6087
6088 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6089
6090         * url.c (get_urls_html): Decode HTML entities using
6091         html_decode_entities.
6092
6093         * html.c (htmlfindurl): Don't count the `#' in numeric entities
6094         (&#NNN;) as an HTML fragemnt.
6095         (html_decode_entities): New function.
6096
6097 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6098
6099         * html.c (htmlfindurl): Fix recognition of # HTML fragments.
6100
6101 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6102
6103         * url.c (construct): Rewritten for clarity.  Avoids the
6104         unnecessary copying and stack-allocation the old version
6105         performed.
6106
6107 2000-10-31  Hrvoje Niksic  <hniksic@arsdigita.com>
6108
6109         * ftp.c (getftp): Ditto.
6110
6111         * http.c (gethttp): Rewind the stream when retrying from scratch.
6112
6113 2000-10-31  Hrvoje Niksic  <hniksic@arsdigita.com>
6114
6115         * retr.c (retrieve_url): Use url_concat() to handle relative
6116         redirections instead of /ad hoc/ code.
6117
6118         * url.c (url_concat): New function encapsulating weird
6119         construct().
6120         (urllen_http_hack): New function.
6121         (construct): When constructing new URLs, recognize that `?' does
6122         not form part of the file name in HTTP.
6123
6124 2000-10-13  Adrian Aichner  <adrian@xemacs.org>
6125
6126         * retr.c: Add msec timing support for WINDOWS.
6127         * retr.c (reset_timer): GetSystemTime() on WINDOWS.
6128         * retr.c (elapsed_time): Calculate delta time to msec on WINDOWS.
6129
6130 2000-10-27  Dan Harkless  <wget@harkless.org>
6131
6132         * retr.c (retrieve_url): Manually applied T. Bharath
6133         <TBharath@responsenetworks.com>'s patch to get wget to grok
6134         illegal relative URL redirects.  Reformatted and re-commented it.
6135
6136 2000-10-23  Dan Harkless  <wget@harkless.org>
6137
6138         * connect.c (make_connection and bindport): Manually applied Rob
6139         Mayoff <mayoff@dqd.com>'s 1.5.3 patch to add --bind-address,
6140         changing coding style to GNU's.
6141
6142         * ftp.c (ftp_loop_internal): --delete-after wasn't implemented for
6143         files downloaded via FTP.  Per a comment, .listing files were not
6144         counted towards number of bytes and files downloaded because they're 
6145         deleted anyway.  Well, they aren't under -nr, so count them then.
6146
6147         * init.c: Manually applied Rob Mayoff's 1.5.3 patch to add
6148         --bind-address, alphabetizing, changing coding style to GNU's,
6149         commenting, and renaming cmd_ip_address() to cmd_address() to
6150         imply hostnames also okay.
6151                 
6152         * main.c (main): --delete-after didn't delete the root of the
6153         tree.  Ignore --convert-links if --delete-after was specified.
6154         Manually applied Rob Mayoff's 1.5.3 patch to add --bind-address,
6155         fixing duplicate use of added-since-1.5.3 case value.
6156         (print_help): Clarified that --delete-after deletes local files.
6157         Rob forgot to add a line for his new --bind-address option.
6158                 
6159         * options.h (struct options): Manually applied Rob Mayoff's patch
6160         to add --bind-address (bind_address structure member).
6161                 
6162         * recur.c (recursive_retrieve): Improved comment; added DEBUGP().
6163         Ignore --convert-links if --delete-after was specified.
6164                 
6165         * retr.c (retrieve_from_file): Just added a DEBUGP().
6166                 
6167 2000-10-19  Dan Harkless  <wget@harkless.org>
6168
6169         * ftp.c (ftp_loop_internal): downloaded_file() enumerators changed.
6170         (getftp): Applied Piotr Sulecki <Piotr.Sulecki@ios.krakow.pl>'s
6171         patch to work around FTP servers that incorrectly respond to the
6172         "REST" command with the remaining size rather than the total file size.
6173                 
6174         * http.c (gethttp): Improved a comment and added code to tack on
6175         ".html" to text/html files without that extension when -E specified.
6176         (http_loop): Use new downloaded_file() enumerators and deal with
6177         the case of gethttp() called xrealloc() on u->local.
6178
6179         * init.c (commands): Added new "htmlextension" command.
6180         Also renamed John Daily's cmd_quad() to the more descriptive
6181         cmd_lockable_boolean(), alpha-sorted the CMD_DECLARE()s and
6182         removed duplicate cmd_boolean() declaration.
6183
6184         * main.c (print_help): Added my new -E / --html-extension option.
6185         (main): Undocumented --email-address option previously used -E synonym.
6186         Stole it away for the much more deserving --html-extension's use.
6187
6188         * options.h (struct options): Added html_extension field.
6189
6190         * url.c (convert_links): URL X that we saved as X.html locally due
6191         to -E needs to be backed up as X.orig, not X.html.orig.  Added comments.
6192         (downloaded_file): Now remembers if we added .html extension to a file.
6193
6194         * url.h (downloaded_file_t): Added extra enumerators to support above.
6195         (downloaded_file): Now takes and returns a downloaded_file_t.
6196
6197         * wget.h (unnamed "dt" enum): Added ADDED_HTML_EXTENSION enumerator.
6198         
6199 2000-10-09  Dan Harkless  <wget@harkless.org>
6200
6201         * html.c (htmlfindurl): Added unneeded initialization to quiet warning.
6202                 
6203         * main.c (print_help): Clarified what --retr-symlinks does.
6204         
6205 2000-09-15  John Daily  <jdaily@cyberdude.com>
6206
6207         * init.c: Add support for "always" and "never" values to allow
6208         .wgetrc to override commandline (useful e.g. with .pm files
6209         calling `wget --passive-ftp' when your firewall doesn't allow that).
6210
6211         * ftp.c (getftp): passive_ftp is first option to support always/never.
6212
6213 2000-08-30  Dan Harkless  <wget@harkless.org>
6214
6215         * ftp.c (ftp_retrieve_list): Use new INFINITE_RECURSION #define.
6216         
6217         * html.c: htmlfindurl() now takes final `dash_p_leaf_HTML' parameter.
6218         Wrapped some > 80-column lines.  When -p is specified and we're at a 
6219         leaf node, do not traverse <A>, <AREA>, or <LINK> tags other than 
6220         <LINK REL="stylesheet">.
6221         
6222         * html.h (htmlfindurl): Now takes final `dash_p_leaf_HTML' parameter.
6223         
6224         * init.c: Added new -p / --page-requisites / page_requisites option.
6225
6226         * main.c (print_help): Clarified that -l inf and -l 0 both allow
6227         infinite recursion.  Changed the unhelpful --mirrior description
6228         to simply give the options it's equivalent to.  Added new -p option.
6229         (main): Added some comments; handle new -p / --page-requisites.
6230         
6231         * options.h (struct options): Added new page_requisites field.
6232
6233         * recur.c: Changed "URL-s" to "URLs" and "HTML-s" to "HTMLs".
6234         Calculate and pass down new `dash_p_leaf_HTML' parameter to
6235         get_urls_html().  Use new INFINITE_RECURSION #define.
6236
6237         * retr.c: Changed "URL-s" to "URLs".  get_urls_html() now takes
6238         final `dash_p_leaf_HTML' parameter.
6239
6240         * url.c: get_urls_html() and htmlfindurl() now take final
6241         `dash_p_leaf_HTML' parameter.
6242
6243         * url.h (get_urls_html): Now takes final `dash_p_leaf_HTML' parameter.
6244
6245         * wget.h: Added some comments and new INFINITE_RECURSION #define.
6246         
6247 2000-08-23  Dan Harkless  <wget@harkless.org>
6248
6249         * main.c (print_help): -B / --base was not mentioned.
6250
6251 2000-08-22  Dan Harkless  <wget@harkless.org>
6252
6253         * main.c (print_help): Modified -nc description to mention that it
6254         also prevents the creation of multiple versions of the same file
6255         with ".<number>" suffixes.
6256
6257 2000-07-14  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
6258
6259         * retr.c (retrieve_url): Consistently strdup opt.referer when
6260         setting u->referer.
6261
6262 2000-06-09  Dan Harkless  <wget@harkless.org>
6263
6264         * main.c (print_help): --help output for --waitretry was over 80 cols.
6265
6266 2000-06-09  Hrvoje Niksic  <hniksic@iskon.hr>
6267
6268         * url.c (encode_string): Fix comment.
6269         Suggested by Herold Heiko <Heiko.Herold@previnet.it>.
6270
6271 2000-06-01  Const Kaplinsky  <const@ce.cctpu.edu.ru>
6272
6273         * ftp.c (ftp_retrieve_list): Change permissions only on plain
6274         files.
6275
6276 2000-06-01  Hrvoje Niksic  <hniksic@iskon.hr>
6277
6278         * url.c (str_url): Print the port number only if it's different
6279         from the default port number for that protocol.
6280
6281 2000-05-22  Dan Harkless  <wget@harkless.org>
6282
6283         * main.c (print_help): Added --help line for Damir Dzeko
6284         <ddzeko@zesoi.fer.hr>'s until-now-undocumented --referer option.
6285         Removed comments that --referer and --waitretry were undocumented.
6286         Changed "`.wgetrc' command" to "`.wgetrc'-style command" on --help
6287         line for --execute.
6288
6289 2000-05-18  Hrvoje Niksic  <hniksic@iskon.hr>
6290
6291         * ftp.c (getftp): Ditto.
6292
6293         * http.c (gethttp): Check for return value of fclose/fflush.
6294
6295 2000-04-12  Hrvoje Niksic  <hniksic@iskon.hr>
6296
6297         * host.c (store_hostaddress): Instead of shifting ADDR, start
6298         copying from the correct address.
6299
6300 2000-04-12  Hrvoje Niksic  <hniksic@iskon.hr>
6301
6302         * http.c (gethttp): Don't free REQUEST -- it was allocated with
6303         alloca().
6304         Pointed out by Gisle Vanem <gvanem@eunet.no>.
6305
6306 2000-04-04  Dan Harkless  <wget@harkless.org>
6307
6308         * host.c (store_hostaddress): R. K. Owen's patch introduces a
6309         "left shift count >= width of type" warning on 32-bit
6310         architectures.  Got rid of it by tricking the compiler w/ a variable.
6311         
6312         * url.c (UNSAFE_CHAR): The macro didn't include all the illegal
6313         characters per RFC1738, namely everything above '~'.  It also
6314         generated a warning on OSes where char =~ unsigned char.  Fixed.
6315         
6316 1998-10-17  Hrvoje Niksic  <hniksic@srce.hr>
6317
6318         * http.c (http_process_type): Removed needless strdup(), a memory
6319         leak.
6320
6321 1998-09-25  Hrvoje Niksic  <hniksic@srce.hr>
6322
6323         * html.c (htmlfindurl): Set PH to the first occurrence of `#'.
6324
6325 1998-09-25  Simon Munton  <simonm@m4data.co.uk>
6326
6327         * init.c (wgetrc_file_name): Don't free HOME under Windows.
6328
6329 1998-12-01  "R. K. Owen"  <rkowen@Nersc.GOV>
6330
6331         * host.c (store_hostaddress): Fix for big endian 64-bit machines.
6332
6333 1998-12-01  Hrvoje Niksic  <hniksic@srce.hr>
6334
6335         * url.c (UNSAFE_CHAR): New macro.
6336         (contains_unsafe): Use it.
6337         (encode_string): Ditto.
6338
6339 1998-12-01  Hrvoje Niksic  <hniksic@srce.hr>
6340
6341         * main.c (i18n_initialize): Use LC_MESSAGES only if available.
6342
6343 2000-03-31  Hrvoje Niksic  <hniksic@srce.hr>
6344
6345         * Use TOUPPER/TOLOWER.
6346
6347 1998-12-22  Alexander V. Lukyanov  <lav@yars.free.net>
6348
6349         * ftp-opie.c (btoe): Zero-terminate OSTORE.
6350
6351 2000-03-21  Hrvoje Niksic  <hniksic@iskon.hr>
6352
6353         * wget.h (DO_REALLOC_FROM_ALLOCA): Ditto.
6354
6355         * sysdep.h (ISALNUM): New macro.
6356         (TOLOWER): Ditto.
6357         (TOUPPER): Ditto.
6358
6359 2000-03-10  Dan Harkless  <wget@harkless.org>
6360
6361         * html.c (idmatch): Implemented checking of my new --follow-tags
6362         and --ignore-tags options.
6363         
6364         * init.c (commands): Added comment reminding people adding new
6365         entries doing allocation to add corresponding freeing in cleanup().
6366         (commands): Added new followtags and ignoretags commands.
6367         (cleanup): Free storage for new followtags and ignoretags.
6368         
6369         * main.c: Use of "comma-separated list" was random -- normalized
6370         it.  Did some alphabetization.  Added comments pointing out
6371         "Options without arguments" and "Options accepting an argument"
6372         sections of long_options[].  Added new options --follow-tags and
6373         -G / --ignore-tags.  Added comment that Damir's --referer is
6374         currently undocumented.  Added comment that Heiko's --waitretry is
6375         partially undocumented (mentioned in --help but not in
6376         wget.texi).  Moved improperly sorted 24, 129, and 'G' cases.
6377         
6378         * options.h (struct options): Added new fields follow_tags and
6379         ignore_tags. 
6380         
6381         * wget.h: Added "#define EQ 0" so we can say "strcmp(a, b) == EQ".
6382         
6383 2000-03-02  Dan Harkless  <wget@harkless.org>
6384
6385         * ftp.c (ftp_loop_internal): Heiko introduced "suggest explicit
6386         braces to avoid ambiguous `else'" warnings.  Eliminated them.
6387         
6388         * http.c (gethttp): Dan Berger's query string patch is totally
6389         bogus.  If you have two different URLs, gen_page.cgi?page1 and
6390         get_page.cgi?page2, they'll both be saved as get_page.cgi and the
6391         second will overwrite the first.  Also, parameters to implicit
6392         CGIs, like "http://www.host.com/db/?2000-03-02" cause the URLs to
6393         be printed with trailing garbage characters, and could seg fault.
6394         Backing out the patch, which Dan B. informed me by email was just
6395         a kludge to download StarOffice from Sun made necessary due to
6396         wget's unconditional escaping of certain characters (room for an
6397         option there?).
6398         (http_loop): Heiko introduced "suggest explicit braces to avoid
6399         ambiguous `else'" warnings.  Eliminated them.
6400         
6401         * main.c: Heiko's --wait / --waitretry backwards compatibility
6402         code looks to have been totally untested -- automatic variable
6403         'wr' was used without being initialized, and a long int was passed
6404         into setval()'s char* val parameter.
6405         
6406         * recur.c (parse_robots): Applied Edward J. Sabol
6407         <sabol@alderaan.gsfc.nasa.gov>'s patch for Guan Yang's reported
6408         problem with "User-agent:<space>*<space>" lines in robots.txt.
6409         
6410         * url.c (parseurl, str_url): Removing Dan Berger's code (see
6411         http.c above for explanation).
6412         
6413 1999-08-25  Heiko Herold  <Heiko.Herold@previnet.it>
6414
6415         * ftp.c: Respect new option waitretry.
6416
6417 2000-01-30  Damir Dzeko  <ddzeko@zesoi.fer.hr>
6418
6419         * http.c (gethttp): Send custom Referer, if required.
6420
6421 1999-09-24  Charles G Waldman  <cgw@fnal.gov>
6422
6423         * netrc.c (parse_netrc): Allow passwords to contain spaces.
6424
6425         * netrc.c (parse_netrc): New function.
6426
6427 1999-09-17  Dan Berger  <dberger@ix.netcom.com>
6428
6429         * http.c (gethttp): Send it.
6430
6431         * url.c (parseurl): Detect query string in HTTP URL-s.
6432         (str_url): Print it.
6433
6434 2000-03-02  HIROSE Masaaki  <hirose31@t3.rim.or.jp>
6435
6436         * html.c (html_allow): Add <link href=...> and <script src=...>.
6437
6438 1999-05-02  andrew deryabin  <djsf@softhome.net>
6439
6440         * http.c (gethttp): Specify port in `Host' header only if it's
6441         different from 80.
6442
6443 1998-11-03  Edward J. Sabol  <sabol@alderaan.gsfc.nasa.gov>
6444
6445         * recur.c (recursive_retrieve): If a finite maximum depth is
6446         specified, and we're are already at that depth, don't download the
6447         HTML file for parsing.
6448
6449 2000-03-01  Dan Harkless  <wget@harkless.org>
6450
6451         * ftp.c (ftp_loop_internal): Call new downloaded_file() function,
6452         even though we don't do conversion on HTML files retrieved via
6453         FTP, so _current_ usage of downloaded_file() makes this call unneeded. 
6454         (ftp_retrieve_list): Added a comment saying where we need to
6455         stat() a .orig file if FTP'd HTML file conversion is ever implemented.
6456         (ftp_retrieve_list): "Local file '%s' is more recent," is sometimes
6457         a lie -- reworded as "Server file no newer than local file '%s' --".
6458         
6459         * http.c (http_loop): Fixed a typo and clarified a comment.
6460         (http_loop): When -K and -N are specified together, compare size
6461         and timestamp of server file X against local file X.orig (if
6462         extant) rather than converted local file X.
6463         (http_loop): "Local file '%s' is more recent," is sometimes a lie
6464         -- reworded as "Server file no newer than local file '%s' --".
6465         (http_loop): Call new downloaded_file() function to prevent
6466         wrongful overwriting of .orig file when -N is specified.
6467         
6468         * url.c (convert_links): When -K specified, only rename X to
6469         X.orig if downloaded_file() returns TRUE.  Otherwise when we skip
6470         file X due to -N, we clobber an X.orig from a previous invocation.
6471         (convert_links): Call the failsafe xstrdup(), not the real strdup().
6472         (convert_links): Added a note asking anyone who understands how
6473         multiple URLs can correspond to a single file to comment it.
6474         (downloaded_file): Added this new function.
6475         
6476         * url.h (downloaded_file): Added prototype for this new function
6477         as well as its downloaded_file_t enum type.
6478
6479         * wget.h (boolean): Added this new typedef and TRUE and FALSE #defines.
6480
6481 2000-02-29  Dan Harkless  <wget@harkless.org>
6482
6483         * version.c: Upped version to developer-only "1.5.3+dev".
6484
6485 2000-02-18  Dan Harkless  <wget@harkless.org>
6486
6487         * init.c (backup_converted): Added this new option.
6488
6489         * main.c (-K / --backup-converted): Added this new option.
6490
6491         * options.h (backup_converted): Added this new option.
6492
6493         * url.c (convert_links): When backup_converted is specified, save
6494         file X as X.orig before converting.
6495
6496         * url.h (urlpos): Fixed typo -- said "Rekative" instead of "Relative".
6497
6498 1998-09-21  Hrvoje Niksic  <hniksic@srce.hr>
6499
6500         * version.c: Wget 1.5.3 is released.
6501
6502 1998-09-21  Hrvoje Niksic  <hniksic@srce.hr>
6503
6504         * host.c (ftp_getaddress): Don't warn when reverse-lookup of local 
6505         address doesn't yield FQDN.
6506
6507 1998-09-21  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
6508
6509         * cmpt.c (strerror): Fix declaration of sys_errlist.
6510
6511 1998-09-11  Hrvoje Niksic  <hniksic@srce.hr>
6512
6513         * main.c (main): Don't use an array subscript as the first
6514         argument to STRDUP_ALLOCA.
6515         From Kaveh R. Ghazi.
6516
6517 1998-09-11  Szakacsits Szabolcs  <szaka@sienet.hu>
6518
6519         * html.c (htmlfindurl): Download table background.
6520
6521 1998-09-11  Hans Grobler  <grobh@conde.ee.sun.ac.za>
6522
6523         * init.c (parse_line): Would free *com before allocating it.
6524         (parse_line): Would free com instead of *com.
6525
6526 1998-09-10  Howard Gayle  <howard@fjst.com>
6527
6528         * url.c (get_urls_html): Would drop the last character of the
6529         link.
6530
6531 1998-09-10  Hrvoje Niksic  <hniksic@srce.hr>
6532
6533         * http.c (http_loop): Don't print status code if quiet.
6534
6535 1998-09-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6536
6537         * log.c: Use <stdarg.h> only when __STDC__.
6538
6539 1998-09-10  Adam D. Moss  <adam@foxbox.org>
6540
6541         * html.c (htmlfindurl): Download <layer src=...>.
6542
6543 1998-09-10  Howard Gayle  <howard@fjst.com>
6544
6545         * ftp.c (ftp_retrieve_list): Don't update the time stamp of a file 
6546         not retrieved.
6547
6548 1998-06-27  Hrvoje Niksic  <hniksic@srce.hr>
6549
6550         * utils.c: Include <libc.h> on NeXT.
6551
6552 1998-06-26  Heinz Salzmann  <heinz.salzmann@intermetall.de>
6553
6554         * url.c (get_urls_html): Fix calculation of URL position.
6555
6556 1998-06-23  Hrvoje Niksic  <hniksic@srce.hr>
6557
6558         * version.c: Wget 1.5.2 is released.
6559
6560 1998-06-23  Dave Love  <d.love@dl.ac.uk>
6561
6562         * ftp.c, init.c, netrc.c: Include errno.h.
6563
6564         * http.c: Include errno.h and time header.
6565
6566         * Makefile.in (exext): Define.
6567         (install.bin, uninstall.bin): Use it.
6568
6569 1998-06-21  Hrvoje Niksic  <hniksic@srce.hr>
6570
6571         * http.c (http_loop): Don't attempt to compare local and remote
6572         sizes if the remote size is unknown.
6573
6574 1998-06-16  Hrvoje Niksic  <hniksic@srce.hr>
6575
6576         * url.c (get_urls_html): Use malloc() instead of alloca in the
6577         loop.
6578
6579 1998-06-13  Hrvoje Niksic  <hniksic@srce.hr>
6580
6581         * version.c: Wget 1.5.2-b4 is released.
6582
6583 1998-06-13  Hrvoje Niksic  <hniksic@srce.hr>
6584
6585         * url.c (get_urls_html): Ignore spaces before and after the URI.
6586
6587 1998-06-08  Wanderlei Antonio Cavassin  <cavassin@conectiva.com.br>
6588
6589         * ftp.c (getftp): Translate `done'.
6590
6591 1998-06-06  Hrvoje Niksic  <hniksic@srce.hr>
6592
6593         * version.c: Wget 1.5.2-b3 is released.
6594
6595 1998-06-06  Alexander Kourakos  <awk@bnt.com>
6596
6597         * init.c (cleanup): Close dfp, don't free it.
6598
6599 1998-06-06  Hrvoje Niksic  <hniksic@srce.hr>
6600
6601         * utils.c (make_directory): Twiddle.
6602
6603         * config.h.in: Added template for access().
6604
6605 1998-06-05  Mathieu Guillaume  <mat@cythere.com>
6606
6607         * html.c (htmlfindurl): Download <input src=...>
6608
6609 1998-06-03  Hrvoje Niksic  <hniksic@srce.hr>
6610
6611         * utils.c (file_exists_p): Use access() with two arguments.
6612
6613 1998-05-27  Martin Kraemer  <Martin.Kraemer@mch.sni.de>
6614
6615         * netrc.c (parse_netrc): Correct logic.
6616
6617 1998-05-27  Hrvoje Niksic  <hniksic@srce.hr>
6618
6619         * ftp.c (getftp): Added `break'; suggested by Lin Zhe Min
6620         <ljm@ljm.wownet.net>.
6621
6622 1998-05-24  Hrvoje Niksic  <hniksic@srce.hr>
6623
6624         * version.c: Wget 1.5.2-b2 is released.
6625
6626 1998-05-18  Juan Jose Rodriguez  <jcnsoft@jal1.telmex.net.mx>
6627
6628         * mswindows.h: Don't translate mkdir to _mkdir under Borland.
6629
6630 1998-05-17  Hrvoje Niksic  <hniksic@srce.hr>
6631
6632         * retr.c (elapsed_time): Return correct value when
6633         HAVE_GETTIMEOFDAY is undefined.
6634
6635 1998-05-13  Hrvoje Niksic  <hniksic@srce.hr>
6636
6637         * version.c: Wget 1.5.2-b1 is released.
6638
6639 1998-05-08  Hrvoje Niksic  <hniksic@srce.hr>
6640
6641         * getopt.c (_getopt_internal): Use exec_name instead of argv[0].
6642         (_getopt_internal): Don't translate `#if 0'-ed strings.
6643
6644 1998-05-06  Douglas E. Wegscheid  <wegscd@whirlpool.com>
6645
6646         * mswindows.c (ws_handler): Use fork_to_background().
6647
6648 1998-05-05  Hrvoje Niksic  <hniksic@srce.hr>
6649
6650         * version.c: Wget 1.5.1 is released.
6651
6652 1998-05-05  Hrvoje Niksic  <hniksic@srce.hr>
6653
6654         * http.c (parse_http_status_line): Avoid `minor' and `major'
6655         names.
6656
6657 1998-05-02  Hrvoje Niksic  <hniksic@srce.hr>
6658
6659         * utils.c (mkdirhier): Renamed to make_directory.
6660
6661 1998-05-01  Hrvoje Niksic  <hniksic@srce.hr>
6662
6663         * mswindows.c (fork_to_background): Define under Windows.
6664
6665         * utils.c (fork_to_background): New function.
6666
6667         * html.c (htmlfindurl): Removed rerdundant casts.
6668
6669 1998-05-01  Douglas E. Wegscheid  <wegscd@whirlpool.com>
6670
6671         * mswindows.c (ws_mypath): Cache the path.
6672
6673 1998-04-30  Douglas E. Wegscheid  <wegscd@whirlpool.com>
6674
6675         * ftp.h: Prefix enum ftype members with FT_.
6676
6677         * ftp-ls.c, ftp.c, html.h: Adjust accordingly.
6678
6679         * mswindows.h: Use stat under Borland, _stat under MSVC.
6680
6681 1998-04-28  Hrvoje Niksic  <hniksic@srce.hr>
6682
6683         * http.c (known_authentication_scheme_p): New function.
6684         (gethttp): Handle authorization more correctly.
6685
6686         * ftp-basic.h: Removed.
6687
6688         * cmpt.h: Removed.
6689
6690         * utils.c: Include <unistd.h> before <pwd.h>; needed under SunOS
6691         with gcc 2.8.
6692         (numdigit): Use `while' loop.
6693
6694         * http.c (create_authorization_line): Detect authentication
6695         schemes case-insensitively.
6696
6697         * http.c (extract_header_attr): Use strdupdelim().
6698         (digest_authentication_encode): Move declaration of local
6699         variables to smaller scope.
6700         (digest_authentication_encode): Reset REALM, OPAQUE and NONCE.
6701         (create_authorization_line): Detect authentication schemes
6702         case-insensitively.
6703
6704         * utils.c (touch): Constify.
6705
6706         * http.c (gethttp): Report a nicer error when no data is received.
6707
6708         * rbuf.h (RBUF_READCHAR): Ditto.
6709
6710         * ftp-basic.c (ftp_response): Use sizeof.
6711
6712 1998-04-27  Hrvoje Niksic  <hniksic@srce.hr>
6713
6714         * retr.c (print_percentage): EXPECTED is long, not int.
6715         (print_percentage): Use floating-point arithmetic to avoid
6716         overflow with large files' sizes multiplied with 100.
6717
6718 1998-04-27  Gregor Hoffleit  <flight@mathi.uni-heidelberg.de>
6719
6720         * config.h.in: Added pid_t stub.
6721
6722         * sysdep.h (S_ISREG): Moved here from mswindows.h (NeXT doesn't
6723         define it).
6724
6725 1998-04-20  Hrvoje Niksic  <hniksic@srce.hr>
6726
6727         * version.c: Wget 1.5.0 is released.
6728
6729 1998-04-18  Hrvoje Niksic  <hniksic@srce.hr>
6730
6731         * url.c (str_url): Ditto.
6732
6733         * ftp-basic.c (ftp_rest): Use new name.
6734
6735         * utils.c (long_to_string): Renamed from prnum().
6736
6737 1998-04-16  Hrvoje Niksic  <hniksic@srce.hr>
6738
6739         * version.c: Wget 1.5-b17 is released.
6740
6741 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
6742
6743         * headers.c (header_get): New argument FLAGS.
6744
6745         * http.c (gethttp): If request is malformed, bail out of the
6746         header loop.
6747         (gethttp): Check for empty header *after* the status line checks.
6748         (gethttp): Disallow continuations for status line.
6749
6750 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
6751
6752         * version.c: Wget 1.5-b16 is released.
6753
6754 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
6755
6756         * init.c (commands): Renamed `always_rest' to `continue'.
6757
6758 1998-04-05  Hrvoje Niksic  <hniksic@srce.hr>
6759
6760         * all: Use it.
6761
6762         * log.c (logputs): New argument.
6763         (logvprintf): Ditto.
6764         (logprintf): Ditto.
6765
6766 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
6767
6768         * http.c (http_atotm): Update comment.
6769
6770         * main.c (i18n_initialize): Set LC_MESSAGES, not LC_ALL.
6771
6772         * wget.h: Renamed ENABLED_NLS to HAVE_NLS.
6773
6774         * main.c (i18n_initialize): New function.
6775         (main): Use it.
6776
6777         * log.c: Include <unistd.h>.
6778
6779         * retr.c (show_progress): Cast alloca to char *.
6780
6781 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
6782
6783         * version.c: Wget 1.5-b15 is released.
6784
6785 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
6786
6787         * utils.h: Declare file_non_directory_p().
6788
6789 1998-04-03  Hrvoje Niksic  <hniksic@srce.hr>
6790
6791         * main.c (main): It's `tries', not `numtries' now.
6792
6793 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
6794
6795         * init.c (getperms): Removed.
6796
6797 1998-04-01  Tim Charron  <tcharron@interlog.com>
6798
6799         * log.c (logvprintf): Don't use ARGS twice.
6800
6801 1998-04-01  John  <john@futuresguide.com>
6802
6803         * mswindows.c: Cleaned up.
6804
6805 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
6806
6807         * version.c: Wget 1.5-b14 is released.
6808
6809 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
6810
6811         * ftp-opie.c (STRLEN4): New macro.
6812         (btoe): Use it.
6813
6814 1998-04-01  Junio Hamano  <junio@twinsun.com>
6815
6816         * http.c: Document all the Digest functions.
6817
6818 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
6819
6820         * utils.c (file_non_directory_p): Renamed from isfile().
6821
6822         * mswindows.h (S_ISREG): New macro, suggested by Tim Adam.
6823
6824 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
6825
6826         * utils.c (mkdirhier): Use 0777 instead of opt.dirmode.
6827
6828         * init.c (cmd_spec_dotstyle): Use 48 dots per line for binary
6829         style.
6830         (cmd_permissions): Removed.
6831
6832         * config.h.in: Add template for WORDS_BIGENDIAN.
6833
6834 1998-03-31  Junio Hamano  <junio@twinsun.com>
6835
6836         * http.c (HEXD2asc): New macro.
6837         (dump_hash): Use it.
6838
6839 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
6840
6841         * version.c: Wget 1.5-b13 is released.
6842
6843 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
6844
6845         * main.c (main): Don't try to use `com'.
6846
6847 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
6848
6849         * init.c (cmd_permissions): New function.
6850
6851 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
6852
6853         * version.c: Wget 1.5-b12 is released.
6854
6855 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
6856
6857         * init.c (commands): Renamed `numtries' to `tries'.
6858         (cmd_spec_debug): Removed.
6859         (home_dir): Under Windows, return `C:\' if HOME is undefined.
6860
6861 1998-03-29  Hrvoje Niksic  <hniksic@srce.hr>
6862
6863         * config.h.in: Define _XOPEN_SOURCE.
6864
6865         * init.c (check_user_specified_header): New function.
6866         (cmd_spec_header): Use it.
6867         (cmd_spec_useragent): New function.
6868
6869 1998-03-29  Hrvoje Niksic  <hniksic@srce.hr>
6870
6871         * version.c: Wget 1.5-b11 is released.
6872
6873 1998-03-28  Hrvoje Niksic  <hniksic@srce.hr>
6874
6875         * wget.h: Include <libintl.h> only if NLS is enabled.
6876
6877 1998-03-26  Hrvoje Niksic  <hniksic@srce.hr>
6878
6879         * options.h (struct options): Made `wait' a long.
6880         (struct options): Ditto for `timeout'.
6881
6882 1998-03-19  Hrvoje Niksic  <hniksic@srce.hr>
6883
6884         * utils.c (exists): Renamed to file_exists_p.
6885         (file_exists_p): Use access() if available.
6886
6887 1998-03-17  Hrvoje Niksic  <hniksic@srce.hr>
6888
6889         * utils.c (memfatal): Set save_log_p to 0 to avoid potential
6890         infloop.
6891
6892         * log.c: do_logging -> save_log_p.
6893
6894         * config.h.in: Added template for HAVE_VSNPRINTF.
6895
6896 1998-03-16  Hrvoje Niksic  <hniksic@srce.hr>
6897
6898         * init.c: Ditto.
6899
6900         * http.c: Protect declaration against non-ANSI compiler.
6901
6902         * log.c (logvprintf): Use vsnprintf() if available.
6903
6904         * getopt.c (main): Don't translate test stuff.
6905
6906 1998-03-16  Hrvoje Niksic  <hniksic@srce.hr>
6907
6908         * version.c: Wget 1.5-b10 is released.
6909
6910 1998-03-11  Hrvoje Niksic  <hniksic@srce.hr>
6911
6912         * ftp.c (getftp): Don't translate "CWD %s".
6913
6914         * wget.h (GCC_FORMAT_ATTR): Renamed from FORMAT_ATTR.
6915
6916 1998-03-07  Hrvoje Niksic  <hniksic@srce.hr>
6917
6918         * ftp-opie.c (btoe): Use memcpy() instead of strncat().
6919
6920         * log.c (logputs): New function.
6921         (logvprintf): Renamed from vlogmsg; use logputs().
6922
6923         * retr.c (show_progress): Print `[100%]' when the retrieval is
6924         finished.
6925
6926         * init.c (run_wgetrc): Use FILE, not PATH.
6927         (wgetrc_file_name): Ditto.
6928
6929 1998-03-07  Tim Adam  <tma@osa.com.au>
6930
6931         * recur.c (parse_robots): Correctly reset `entries' on empty
6932         disallow.
6933
6934 1998-03-07  Hrvoje Niksic  <hniksic@srce.hr>
6935
6936         * init.c (cmd_spec_debug): Use cmd_boolean().
6937
6938 1998-02-23  Hrvoje Niksic  <hniksic@srce.hr>
6939
6940         * http.c (gethttp): Create proxy-authorization correctly.
6941
6942 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
6943
6944         * md5.c: Ditto.
6945
6946         * getopt.c: Use ANSI function definitions.
6947
6948         * ftp-opie.c: New file.
6949
6950         * options.h: Don't redefine EXTERN.
6951
6952         * init.c: Sort it correctly.
6953
6954 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
6955
6956         * version.c: Wget 1.5-b9 is released.
6957
6958 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
6959
6960         * recur.c (recursive_retrieve): Reset `first_time'.
6961
6962         * ftp.c (getftp): Added `default' clause to switches of uerr_t.
6963
6964         * rbuf.c (rbuf_peek): Simplified.
6965         (rbuf_flush): Use MINVAL.
6966
6967         * wget.h (MINVAL): Moved from url.h.
6968
6969         * rbuf.h (RBUF_FD): New macro.
6970
6971         * url.c (add_url): Add to the head of the list.
6972
6973         * ftp.c (ftp_retrieve_list): Set the permissions to downloaded
6974         file.
6975         (getftp): Set the default permissions to 0600.
6976
6977 1998-02-21  Hrvoje Niksic  <hniksic@srce.hr>
6978
6979         * url.c (get_urls_html): Ditto.
6980         (convert_links): Ditto.
6981
6982         * recur.c (parse_robots): Ditto.
6983
6984         * html.c (ftp_index): Ditto.
6985
6986         * ftp-ls.c (ftp_parse_unix_ls): Open file as binary.
6987
6988         * init.c (defaults): Initialize `opt' to zero via memset.
6989
6990         * http.c (digest_authentication_encode): goto considered harmful.
6991
6992 1998-02-19  Hrvoje Niksic  <hniksic@srce.hr>
6993
6994         * ftp.c (delelement): Simplify and fix leak.
6995
6996 1998-02-18  Hrvoje Niksic  <hniksic@srce.hr>
6997
6998         * http.c (dump_hash): Use HEXD2ASC instead of home-grown stuff.
6999
7000         * url.h (HEXD2ASC): Removed warning.
7001
7002         * init.c (comind): Use binary search.
7003         (commands): Reorganized.
7004         (setval): Ditto.
7005         (cmd_boolean): New function.
7006         (cmd_number): Ditto.
7007         (cmd_number_inf): Ditto.
7008         (cmd_string): Ditto.
7009         (cmd_vector): Ditto.
7010         (cmd_directory_vector): Ditto.
7011         (cmd_bytes): Ditto.
7012         (cmd_time): Ditto.
7013         (cmd_spec_debug): Ditto.
7014         (cmd_spec_dirmode): Ditto.
7015         (cmd_spec_dirstruct): Ditto.
7016         (cmd_spec_dotstyle): Ditto.
7017         (cmd_spec_header): Ditto.
7018         (cmd_spec_htmlify): Ditto.
7019         (cmd_spec_mirror): Ditto.
7020         (cmd_spec_outputdocument): Ditto.
7021         (cmd_spec_recursive): Ditto.
7022         (settime): Merged with cmd_time().
7023         (setbytes): Merged with cmd_bytes().
7024         (setonoff): Merged with cmd_boolean().
7025         (onoff): Ditto.
7026
7027 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
7028
7029         * Makefile.in (distclean): Remove `config.h'.
7030
7031 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
7032
7033         * version.c: Wget 1.5-b8 is released.
7034
7035 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
7036
7037         * http.c (digest_authentication_encode): New function.
7038         (create_authorization_line): Use it.
7039         (dump_hash): New function.
7040         (digest_authentication_encode): Use it.
7041
7042         * fnmatch.c: Renamed from `mtch.c'.
7043
7044 1998-02-15  Karl Eichwalder  <ke@suse.de>
7045
7046         * main.c (main): Tag "Written by..." string as translatable.
7047
7048 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
7049
7050         * wget.h (FREE_MAYBE): New macro.
7051
7052         * http.c (create_authorization_line): Don't use ANSI C string
7053         concatenation feature.
7054         (basic_authentication_encode): Use alloca() for temporary
7055         variables.
7056
7057         * recur.h: Ditto.
7058
7059         * http.c: Ditto.
7060
7061         * headers.h: Ditto.
7062
7063         * ftp-basic.c: Protect declaration against non-ANSI compiler.
7064
7065         * http.c (create_authorization_line): Cast `unsigned char *' to
7066         `char *' for sprintf, to shut up the noisy Digital Unix cc.
7067
7068 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
7069
7070         * version.c: Wget 1.5-b7 is released.
7071
7072 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
7073
7074         * cmpt.c (strstr): Synched with glibc-2.0.6.
7075
7076         * ftp-basic.c (calculate_skey_response): Ditto.
7077         (calculate_skey_response): Use alloca().
7078
7079         * http.c (create_authorization_line): Work with FSF's version of
7080         md5.c.
7081
7082         * md5.c: New file, from GNU libc.
7083
7084 1998-02-14  Hrvoje Niksic  <hniksic@srce.hr>
7085
7086         * url.h (URL_CLEANSE): Name the temporary variable more carefully.
7087
7088 1998-02-13  Hrvoje Niksic  <hniksic@srce.hr>
7089
7090         * http.c (basic_authentication_encode): New function, instead of
7091         the macro.
7092
7093 1998-02-13  Junio Hamano  <junio@twinsun.com>
7094
7095         * http.c: Add HTTP-DA support.
7096         * ftp-basic.c: Add Opie/S-key support.
7097         * config.h.in, Makefile.in: Add HTTP-DA and Opie/S-key support.
7098         * md5.c, md5.h: New files.
7099
7100 1998-02-13  Hrvoje Niksic  <hniksic@srce.hr>
7101
7102         * http.c (http_process_range): Renamed from hprocrange().
7103         (http_process_range): Parse the whole header.
7104
7105         * headers.c: New file.
7106         (header_process): New function.
7107         (header_get): Renamed from fetch_next_header.
7108
7109         * all: Include utils.h only where necessary.
7110
7111         * wget.h: Declare xmalloc(), xrealloc() and xstrdup() here.
7112
7113         * wget.h: Add provisions for dmalloc.
7114
7115 1998-02-12  Hrvoje Niksic  <hniksic@srce.hr>
7116
7117         * version.c: Wget 1.5-b6 is released.
7118
7119 1998-02-12  Hrvoje Niksic  <hniksic@srce.hr>
7120
7121         * ftp.c (ftp_loop): Determine `filename' more precisely.
7122
7123         * init.c (setval): Don't set `opt.quiet' if output-document is
7124         `-'.
7125
7126         * log.c (log_init): Print to STDERR instead of STDOUT.
7127         (vlogmsg): Use STDERR by default.
7128         (logflush): Ditto.
7129
7130 1998-02-11  Simon Josefsson  <jas@pdc.kth.se>
7131
7132         * host.c: Use addr_in again.
7133
7134 1998-02-08  Karl Eichwalder  <karl@suse.de>
7135
7136         * http.c (gethttp): Fixed typo.
7137
7138 1998-02-08  Hrvoje Niksic  <hniksic@srce.hr>
7139
7140         * version.c: Wget 1.5-b5 is released.
7141
7142 1998-02-08  Hrvoje Niksic  <hniksic@srce.hr>
7143
7144         * retr.c (show_progress): Use it.
7145
7146         * log.c (logflush): New function.
7147
7148         * wget.h: Utilize __attribute__ if on gcc.
7149
7150 1998-02-07  Hrvoje Niksic  <hniksic@srce.hr>
7151
7152         * http.c (base64_encode_line): New argument LENGTH.
7153         (BASIC_AUTHENTICATION_ENCODE): Use it.
7154         (BASIC_AUTHENTICATION_ENCODE): Take length of HEADER into account.
7155
7156         * main.c (main): Fixed fprintf() format mismatch.
7157
7158 1998-02-06  Hrvoje Niksic  <hniksic@srce.hr>
7159
7160         * version.c: Wget 1.5-b4 is released.
7161
7162 1998-02-03  Simon Josefsson  <jas@pdc.kth.se>
7163
7164         * host.c: use sockaddr_in instead of addr_in.
7165
7166 1998-02-04  Hrvoje Niksic  <hniksic@srce.hr>
7167
7168         * init.c (cleanup): Use it.
7169
7170         * recur.c (recursive_cleanup): New function.
7171
7172         * retr.c (retrieve_from_file): Ditto.
7173
7174         * main.c (main): Use it.
7175
7176         * recur.c (recursive_reset): New function.
7177
7178         * retr.c (retrieve_from_file): Ditto.
7179
7180         * main.c (main): Simplify call to recursive_retrieve().
7181
7182         * recur.c (recursive_retrieve): Removed FLAGS argument.
7183
7184         * http.c (gethttp): Changed call to iwrite().
7185
7186 1998-02-03  Hrvoje Niksic  <hniksic@srce.hr>
7187
7188         * url.c (get_urls_html): Ditto.
7189         (free_urlpos): Ditto.
7190         (mkstruct): Ditto.
7191         (construct): Ditto.
7192
7193         * retr.c (retrieve_url): Move declaration of local variables to
7194         smaller scope.
7195
7196         * url.c (urlproto): Use it.
7197         (parseurl): Ditto.
7198         (str_url): Ditto.
7199         (get_urls_html): Ditto.
7200
7201         * utils.h (ARRAY_SIZE): New macro.
7202
7203         * url.c (proto): Moved from url.h.
7204
7205         * url.h (URL_CLEANSE): Reformatted.
7206         (USE_PROXY_P): Renamed from USE_PROXY.
7207
7208         * ftp-basic.c: Adjust to the new interface of iwrite().
7209
7210         * ftp-basic.c (ftp_port): Use alloca().
7211
7212 1998-02-03  Hrvoje Niksic  <hniksic@srce.hr>
7213
7214         * version.c: Wget 1.5-b3 is released.
7215
7216         * host.c (ftp_getaddress): Don't print to stderr directly.
7217
7218         * init.c (setbytes): Support `g' for gigabytes.
7219         (cmdtype): New specification CTIME.
7220         (setval): Use it with settime().
7221         (commands): Use it for WAIT and TIMEOUT.
7222
7223 1998-02-02  Hrvoje Niksic  <hniksic@srce.hr>
7224
7225         * http.c (BASIC_AUTHENTICATION_ENCODE): New macro.
7226         (gethttp): Use it.
7227
7228         * utils.c (unique_name_1): Moved from url.c.
7229         (unique_name): Ditto.
7230
7231         * url.c (url_filename): Ditto.
7232
7233         * log.c (redirect_output): Changed call to unique_name().
7234
7235         * url.c (unique_name_1): Renamed from unique_name().
7236         (unique_name): Changed interface.
7237
7238         * init.c (enum cmdid): Moved from init.h.
7239         (cmdtype): Ditto.
7240         (struct cmd): Ditto.
7241
7242         * main.c (main): Use it.
7243         (main): Moved `--backups' to not have a short option.
7244
7245         * options.h (struct options): New member BACKGROUND.
7246
7247         * main.c (print_help): Rearranged.
7248         (main): New long options for -n* short options: --no-directories,
7249         --no-host-directories, --non-verbose, --no-host-lookup and
7250         --dont-remove-listing.
7251
7252 1998-02-01  Hrvoje Niksic  <hniksic@srce.hr>
7253
7254         * main.c (main): Use log_close().
7255
7256         * log.c: New variable LOGFP.
7257         (vlogmsg): Use it.
7258         (redirect_output): Don't open /dev/null; set LOGFP to stdin
7259         instead.
7260         (log_close): New function.
7261
7262         * options.h (struct options): Removed LFILE.
7263
7264         * log.c (log_enable): Removed.
7265
7266         * main.c (main): Use it.
7267
7268         * log.c (log_init): New function.
7269
7270         * url.c (get_urls_html): Removed needless assignment to BASE.
7271
7272         * host.c (add_hlist): Don't set CMP needlessly.
7273
7274         * utils.c (match_backwards): Ditto.
7275         (in_acclist): Ditto.
7276
7277         * url.c (findurl): Ditto.
7278
7279         * netrc.c (parse_netrc): Ditto.
7280
7281         * log.c (log_dump): Ditto.
7282
7283         * html.c (html_quote_string): Ditto.
7284
7285         * ftp-basic.c (ftp_request): Made static.
7286
7287         * connect.c: Made global variables static.
7288
7289         * url.c (construct): Ditto.
7290
7291         * init.c (init_path): Avoid assignment inside `if'-condition.
7292
7293         * ftp.c: Don't include in.h or winsock.h.
7294
7295         * ftp.c (ftp_loop): Use SZ.
7296
7297         * connect.c (bindport): Cast &addrlen to int *.
7298         (conaddr): Ditto.
7299
7300         * init.c (initialize): Don't use SYSTEM_WGETRC unconditionally.
7301
7302 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
7303
7304         * ftp.c (getftp): Initialize opt.ftp_pass here.
7305         (ftp_retrieve_dirs): Use alloca().
7306
7307         * init.c (defaults): Don't initialize opt.ftp_pass.
7308
7309         * sysdep.h (S_ISLNK): Declare for OS/2; ditto for lstat.
7310         From Ivan F. Martinez <ivanfm@ecodigit.com.br>.
7311
7312 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
7313
7314         * recur.c (parse_robots): Check for comments more correctly.
7315
7316         * host.c (ftp_getaddress): Use STRDUP_ALLOCA.
7317         (ftp_getaddress): Add diagnostics when reverse-lookup yields only
7318         hostname.
7319
7320 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
7321
7322         * version.c: Wget 1.5-b2 is released.
7323
7324         * netrc.c (NETRC_FILE_NAME): Moved from netrc.h.
7325
7326         * utils.c (proclist): Pass FNM_PATHNAME to fnmatch().
7327
7328         * ftp-basic.c (ftp_pasv): Avoid unnecessary casting to unsigned
7329         char.
7330
7331         * log.c: Don't attempt to hide arguments from ansi2knr.
7332
7333         * cmpt.c: Synched strptime() and mktime() with glibc-2.0.6.
7334
7335         * ansi2knr.c: Use a later version, from fileutils-3.16l alpha.
7336
7337         * ftp.c (getftp): Ditto.
7338
7339         * http.c (gethttp): Use it.
7340
7341         * retr.c (get_contents): New argument EXPECTED; pass it to
7342         show_progress().
7343         (show_progress): New argument EXPECTED; use it to display
7344         percentages.
7345
7346         * init.c (setval): Ditto.
7347
7348         * http.c (gethttp): Ditto.
7349         (http_loop): Ditto.
7350
7351         * ftp.c (getftp): Ditto.
7352         (ftp_loop_internal): Ditto.
7353
7354         * ftp-ls.c (ftp_parse_unix_ls): Use abort() instead of assert(0).
7355
7356         * sysdep.h (CLOSE): Simplify; use DEBUGP.
7357
7358         * netrc.c (search_netrc): Use alloca().
7359
7360         * init.c (defaults): Initialize no_flush.
7361
7362         * log.c (vlogmsg): Don't flush if no_flush.
7363
7364         * options.h (struct options): New variable no_flush.
7365
7366         * main.c (main): Don't play games with buffering.
7367
7368         * log.c (vlogmsg): Flush the output after every message.
7369
7370 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
7371
7372         * init.c (parse_line): Ditto.
7373
7374         * url.c (get_urls_html): Ditto.
7375
7376         * main.c (main): Don't cast to unsigned char.
7377
7378         * init.c (run_wgetrc): Don't cast to unsigned char.
7379         (parse_line): Accept char instead of unsigned char.
7380
7381         * html.c (htmlfindurl): Use char instead of unsigned char.
7382
7383         * all: Use them.
7384
7385         * sysdep.h: Add wrappers to ctype macros to make them
7386         eight-bit-clean:
7387
7388 1998-01-30  Hrvoje Niksic  <hniksic@srce.hr>
7389
7390         * html.c (htmlfindurl): Download <img lowsrc=...>
7391
7392         * main.c (main): Ignore SIGPIPE.
7393
7394         * connect.c (select_fd): New argument WRITEP.
7395         (iwrite): Call select_fd().
7396
7397 1997-02-27  Fila Kolodny <fila@ibi.com>
7398
7399         * ftp.c (ftp_retrieve_list): If retrieving symlink and the proper
7400         one already exists, just skip it.
7401
7402 1998-01-30  Hrvoje Niksic  <hniksic@srce.hr>
7403
7404         * http.c (gethttp): Cosmetic changes.
7405
7406         * http.c (check_end): Allow `+D...' instead of `GMT'.
7407         From Fabrizio Pollastri <pollastri@cstv.to.cnr.it>.
7408
7409         * url.c (process_ftp_type): New function.
7410         (parseurl): Use it.
7411
7412         * connect.c (iwrite): Allow writing in a few chunks.
7413         (bindport): Made SRV static, so addr can point to it.
7414         (select_fd): Removed HPUX kludge.
7415
7416         * host.c (free_hlist): Incorporated into clean_hosts().
7417
7418 1998-01-29  Hrvoje Niksic  <hniksic@srce.hr>
7419
7420         * host.c (hlist): Made static.
7421         (search_address): Cosmetic change.
7422
7423 1998-01-29  Hrvoje Niksic  <hniksic@srce.hr>
7424
7425         * version.c: Wget v1.5-b1 is released.
7426
7427         * http.c (hgetlen): Use sizeof() to get the header length.
7428         (hgetrange): Ditto.
7429         (hgettype): Ditto.
7430         (hgetlocation): Ditto.
7431         (hgetmodified): Ditto.
7432         (haccepts_none): Ditto.
7433
7434         * main.c (main): Updated `--version' and `--help' output, as per
7435         Francois Pinard's suggestions.
7436
7437         * main.c: Include locale.h; call setlocale(), bindtextdomain() and 
7438         textdomain().
7439
7440         * config.h.in: Define stubs for I18N3.
7441
7442         * wget.h: Include libintl.h.
7443
7444 1998-01-28  Hrvoje Niksic  <hniksic@srce.hr>
7445
7446         * url.c (mkstruct): Check for opt.cut_dirs.
7447         (mkstruct): alloca()-te more, xmalloc() less.
7448
7449         * utils.c (load_file): Check for ferror().
7450
7451         * url.c (get_urls_file): Close only the files we opened.
7452         (get_urls_html): Ditto.
7453         (count_slashes): New function.
7454
7455         * http.h: Removed.
7456
7457         * http.c (gethttp): Respect username and password provided by
7458         proxy URL.
7459         (base64_encode_line): Write into an existing buffer instead of
7460         malloc-ing a new one.
7461         (struct http_stat): Moved from http.h
7462
7463         * retr.c (retrieve_url): Free SUF.
7464
7465         * all: Removed lots of unnecessary .h dependencies.
7466
7467         * html.c (global_state): Made static.
7468
7469         * utils.h (ALLOCA_ARRAY): New macro.
7470
7471         * main.c (main): New option `--cut-dirs'.
7472
7473         * url.c (construct): Use alloca() for T.
7474
7475         * utils.c (mkdirhier): Use STRDUP_ALLOCA.
7476
7477         * host.c (_host_t): Moved from host.h.
7478         (struct host): Renamed from _host_t.
7479         (store_hostaddress): Use STRDUP_ALLOCA for INET_S.
7480         (realhost): Ditto.
7481
7482         * host.h: Don't include url.h.
7483
7484         * ftp.c (LIST_FILENAME): Moved from ftp.h.
7485
7486         * init.c (DEFAULT_FTP_ACCT): Moved from ftp.h.
7487
7488         * main.c (main): Enable log if the output goes to a TTY.
7489
7490         * connect.h: Removed unused constant `BACKLOG'.
7491
7492         * config.h.in: Check for isatty().
7493
7494         * Makefile.in (LINK): Use CFLAGS when linking.
7495
7496 1998-01-27  Hrvoje Niksic  <hniksic@srce.hr>
7497
7498         * mswindows.c (ws_hangup): Use redirect_output().
7499
7500         * main.c (redirect_output_signal): New function; use
7501         redirect_output().
7502
7503         * log.c (redirect_output): New function, based on hangup(), which
7504         is deleted.
7505
7506         * log.c (vlogmsg): New function.
7507
7508         * wget.h (DEBUGP): Use debug_logmsg().
7509
7510         * main.c (hangup): Use it.
7511
7512         * log.c (log_dump): New function.
7513
7514         * utils.h (DO_REALLOC): Use `long' for various sizes.
7515
7516         * http.c (hskip_lws): Use `while', for clarity.
7517         (HTTP_DYNAMIC_LINE_BUFFER): New constant.
7518         (fetch_next_header): Use it instead of DYNAMIC_LINE_BUFFER.
7519
7520         * ftp-basic.c (FTP_DYNAMIC_LINE_BUFFER): New constant.
7521         (ftp_response): Use it instead of DYNAMIC_LINE_BUFFER.
7522
7523         * utils.c (DYNAMIC_LINE_BUFFER): Moved from utils.c.
7524         (LEGIBLE_SEPARATOR): Ditto.
7525         (FILE_BUFFER_SIZE): Ditto.
7526
7527         * retr.c (BUFFER_SIZE): Moved from retr.h.
7528
7529         * log.c: New file.
7530         (logmsg): Moved from utils.c.
7531         (debug_logmsg): New function.
7532
7533         * mswindows.h: Include it here.
7534
7535         * init.c: Ditto.
7536
7537         * utils.c: Don't include <windows.h>.
7538
7539 1998-01-25  Hrvoje Niksic  <hniksic@srce.hr>
7540
7541         * host.c (ftp_getaddress): Ditto.
7542
7543         * main.c (main): Use it.
7544
7545         * utils.h (STRDUP_ALLOCA): New macro.
7546
7547         * init.c: Prepend `wget: ' to error messages printed on stderr.
7548
7549         * utils.c (mkdirhier): Renamed from mymkdir.
7550         (touch): Renamed from my_touch.
7551         (pwd_cuserid): Renamed from my_cuserid().
7552
7553 1998-01-24  Andy Eskilsson  <andy.eskilsson@telelogic.se>
7554
7555         * utils.c (accdir): Process wildcards.
7556         (proclist): New function.
7557         (accdir): Use it to avoid code repetition.
7558
7559 1998-01-24  Hrvoje Niksic  <hniksic@srce.hr>
7560
7561         * recur.c (parse_robots): Respect opt.useragent; use alloca().
7562
7563         * http.c (gethttp): Construct useragent accordingly.
7564
7565         * version.c: Changed version string to numbers-only.
7566
7567         * main.c (print_help): List all the options.
7568
7569         * mswindows.c (windows_main_junk): Initialize argv0 here.
7570
7571 1998-01-24  Karl Heuer  <kwzh@gnu.org>
7572
7573         * netrc.c (search_netrc): Initialize `l' only after processing
7574         netrc.
7575
7576         * main.c (main): Don't trap SIGHUP if it's being ignored.
7577
7578 1998-01-24  Hrvoje Niksic  <hniksic@srce.hr>
7579
7580         * all: Use logmsg().
7581
7582         * utils.c (time_str): Moved from retr.c.
7583         (logmsg): New function.
7584         (logmsg_noflush): Ditto.
7585
7586         * rbuf.c: New file, moved buf_* functions here.
7587
7588         * ftp.c (ftp_expected_bytes): Moved from ftp-basic.c.
7589
7590         * ftp-basic.c (ftp_rest): Use prnum().
7591
7592         * ftp-basic.c: Ditto.
7593
7594         * ftp.c: Use the new reading functions and macros.
7595
7596         * retr.c (buf_initialize): New function.
7597         (buf_initialized_p): Ditto.
7598         (buf_uninitialize): Ditto.
7599         (buf_fd): Ditto.
7600
7601         * http.c (fetch_next_header): Use the BUF_READCHAR macro for
7602         efficiency.
7603         (gethttp): Use alloca() where appropriate.
7604
7605         * retr.c (buf_readchar): Use it.
7606         (buf_peek): Use rstreams.
7607
7608         * retr.h (BUF_READCHAR): New macro.
7609
7610         * init.c (home_dir): Rewritten for clarity.
7611         (init_path): Ditto.
7612
7613         * mswindows.c (ws_backgnd): Made static.
7614         (read_registry): Ditto.
7615         (ws_cleanup): Ditto.
7616         (ws_handler): Ditto.
7617
7618 1998-01-23  Hrvoje Niksic  <hniksic@srce.hr>
7619
7620         * alloca.c: New file.
7621
7622         * Makefile.in (ALLOCA): Define.
7623
7624         * mswindows.c (ws_help): Constify.
7625         (ws_help): Use alloca.
7626
7627         * mswindows.c: Reformat.
7628
7629         * all: Added _(...) annotations for I18N snarfing and translation.
7630
7631         * host.c (ftp_getaddress): Nuke SYSINFO.
7632         (ftp_getaddress): Don't use getdomainname().
7633         (ftp_getaddress): Use uname(), where available.
7634
7635         * http.c (gethttp): Protect a stray fprintf().
7636
7637         * init.c (settime): New function.
7638         (setval): Treat WAIT specially, allowing suffixes like `m' for
7639         minutes, etc.
7640
7641 1998-01-21  Hrvoje Niksic  <hniksic@srce.hr>
7642
7643         * url.c (get_urls_html): Use alloca() for TEMP.
7644
7645 1998-01-21  Jordan Mendelson  <jordy@wserv.com>
7646
7647         * url.c (rotate_backups): New function.
7648
7649         * http.c (gethttp): Ditto.
7650
7651         * ftp.c (getftp): Rotate backups.
7652
7653 1997-12-18  Hrvoje Niksic  <hniksic@srce.hr>
7654
7655         * all: Renamed nmalloc(), nrealloc() and nstrdup() to xmalloc(),
7656         xrealloc() and xstrdup().  Use the new functions.
7657
7658         * url.c (decode_string): Made static.
7659         (has_proto): Ditto.
7660         (parse_dir): Ditto.
7661         (parse_uname): Ditto.
7662         (mkstruct): Ditto.
7663         (construct): Ditto.
7664         (construct_relative): Ditto.
7665
7666         * retr.c (show_progress): Made static.
7667
7668         * recur.c (robots_url): Made static.
7669         (retrieve_robots): Ditto.
7670         (parse_robots): Ditto.
7671         (robots_match): Ditto.
7672
7673         * main.h: Removed.
7674
7675         * main.c (printhelp): Made static.
7676         (hangup): Ditto.
7677
7678         * init.c (comind): Made static.
7679         (defaults): Ditto.
7680         (init_path): Ditto.
7681         (run_wgetrc): Ditto.
7682         (onoff): Ditto.
7683         (setonoff): Ditto.
7684         (setnum): Ditto.
7685         (myatoi): Ditto.
7686         (getperms): Ditto.
7687         (setbytes): Ditto.
7688
7689         * http.c (fetch_next_header): Made static.
7690         (hparsestatline): Ditto.
7691         (hskip_lws): Ditto.
7692         (hgetlen): Ditto.
7693         (hgetrange): Ditto.
7694         (hgettype): Ditto.
7695         (hgetlocation): Ditto.
7696         (hgetmodified): Ditto.
7697         (haccepts_none): Ditto.
7698         (gethttp): Ditto.
7699         (base64_encode_line): Ditto.
7700         (mktime_from_utc): Ditto.
7701         (http_atotm): Ditto.
7702
7703         * html.c (idmatch): Made static.
7704
7705         * host.c (search_host): Made static.
7706         (search_address): Ditto.
7707         (free_hlist): Ditto.
7708
7709         * ftp.c (getftp): Made static.
7710         (ftp_loop_internal): Ditto.
7711         (ftp_get_listing): Ditto.
7712         (ftp_retrieve_list): Ditto.
7713         (ftp_retrieve_dirs): Ditto.
7714         (ftp_retrieve_glob): Ditto.
7715         (freefileinfo): Ditto.
7716         (delelement): Ditto.
7717
7718         * ftp-ls.c (symperms): Made static.
7719         (ftp_parse_unix_ls): Ditto.
7720
7721         * connect.c (select_fd): Made static.
7722
7723         * utils.c (xmalloc): Renamed from nmalloc.
7724         (xrealloc): Renamed from nrealloc.
7725         (xstrdup): Renamed from nstrdup.
7726
7727         * getopt.c (exchange): Use alloca.
7728
7729         * mswindows.c (mycuserid): Use strncpy.
7730
7731         * New files mswindows.c, mswindows.h, sysdep.h.  winjunk.c,
7732         systhings.h, windecl.h and winjunk.h removed.
7733
7734         * mswindows.c (sleep): New function.
7735
7736         * utils.c: Include <windows.h> under Windows.
7737
7738 1997-06-12  Darko Budor  <dbudor@zesoi.fer.hr>
7739
7740         * url.h (URL_UNSAFE): Change default under Windows.
7741
7742         * retr.c (retrieve_from_file): Respect opt.delete_after.
7743
7744         * main.c (main): Call ws_help on Windows.
7745
7746         * winjunk.c (windows_main_junk): New function.
7747
7748         * main.c (main): Junk-process argv[0].
7749
7750         * http.c (mktime_from_utc): Return -1 if mktime failed.
7751
7752         * http.c (http_loop): Ditto.
7753
7754         * ftp.c (ftp_loop_internal): Change title on Windows when using a
7755         new URL.
7756
7757         * winjunk.c (getdomainname): Lots of functions.
7758
7759 1997-06-12  Hrvoje Niksic  <hniksic@srce.hr>
7760
7761         * cmpt.c (strptime_internal): Handle years more correctly for
7762         `%y'.
7763
7764 1997-06-09  Mike Thomas <mthomas@reality.ctron.com>
7765
7766         * http.c (gethttp): Allocate enough space for
7767         `Proxy-Authorization' header.
7768
7769 1997-05-10  Hrvoje Niksic  <hniksic@srce.hr>
7770
7771         * version.c: Wget/1.4.5 is released.
7772
7773 1997-05-10  Hrvoje Niksic  <hniksic@srce.hr>
7774
7775         * retr.c (get_contents): Check return value of fwrite more
7776         carefully.
7777
7778 1997-03-30  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
7779
7780         * cmpt.c (strptime_internal) [case 'Y']: Always subtract 1900 from
7781         year, regardless of century.
7782
7783 1997-03-30  Hrvoje Niksic  <hniksic@srce.hr>
7784
7785         * utils.c (isfile): Use `lstat' instead of `stat'.
7786
7787 1997-03-29  Hrvoje Niksic  <hniksic@srce.hr>
7788
7789         * utils.c (numdigit): Use explicit test.
7790
7791 1997-03-21  Hrvoje Niksic  <hniksic@srce.hr>
7792
7793         * http.c (http_loop): Always use `url_filename' to get u->local.
7794
7795 1997-03-20  Hrvoje Niksic  <hniksic@srce.hr>
7796
7797         * url.c: Recognize https.
7798
7799 1997-03-13  Hrvoje Niksic  <hniksic@srce.hr>
7800
7801         * recur.c (recursive_retrieve): Lowercase just the host name.
7802
7803 1997-03-09  Hrvoje Niksic  <hniksic@srce.hr>
7804
7805         * url.c (get_urls_file): Use the correct test.
7806         (get_urls_html): Ditto.
7807
7808 1997-03-07  Hrvoje Niksic  <hniksic@srce.hr>
7809
7810         * connect.c: Reverted addrlen to int.
7811
7812         * init.c (parse_line): Check for -1 instead of NONE.
7813
7814         * version.c: Changed version to 1.4.5.
7815
7816 1997-02-17  Hrvoje Niksic  <hniksic@srce.hr>
7817
7818         * init.c: New option netrc.
7819         (initialize): Don't parse .netrc.
7820
7821         * cmpt.c (recursive): Return rp.
7822         (strptime_internal): Match the long strings first, the abbreviated
7823         second.
7824
7825 1997-02-16  Hrvoje Niksic  <hniksic@srce.hr>
7826
7827         * http.c (check_end): New function.
7828         (http_atotm): Use it.
7829  
7830 1997-02-13  gilles Cedoc  <gilles@cedocar.fr>
7831
7832         * http.c (gethttp): Use them.
7833
7834         * init.c: New options proxy_user and proxy_passwd.
7835
7836 1997-02-14  Hrvoje Niksic  <hniksic@srce.hr>
7837
7838         * ftp.c (ftp_retrieve_list): Create links even if not relative.
7839
7840 1997-02-10  Hrvoje Niksic  <hniksic@srce.hr>
7841
7842         * recur.c (recursive_retrieve): Lowercase the host name, if the
7843         URL is not "optimized".
7844
7845         * host.c (realhost): Return l->hostname, even if it matches with
7846         host.
7847
7848 1997-02-10  Marin Purgar  <pmc@asgard.hr>
7849
7850         * connect.c: Make addrlen size_t instead of int.
7851         (conaddr): Ditto.
7852
7853 1997-02-09  Gregor Hoffleit  <flight@mathi.uni-heidelberg.DE>
7854
7855         * systhings.h: Define S_ISLNK on NeXT too.
7856
7857 1997-02-09  Hrvoje Niksic  <hniksic@srce.hr>
7858
7859         * version.c: Released 1.4.3.
7860
7861         * url.c: Futher update to list of protostrings.
7862         (skip_proto): Skip `//' correctly for FTP and HTTP.
7863
7864         * url.c (get_urls_html): Handle bogus `http:' things a little
7865         different.
7866
7867         * main.c (main): Removed `follow-ftp' from `f'.
7868         (main): Dumped the `prefix-files' and `file-prefix' options and
7869         features; old and bogus.
7870         (main): Exit on failed setval() in `-e'.
7871
7872         * http.c (fetch_next_header): Use it to detect header continuation
7873         correctly.
7874
7875         * retr.c (buf_peek): New function.
7876
7877 1997-02-08  Hrvoje Niksic  <hniksic@srce.hr>
7878
7879         * wget.h: Include time.h and stuff.
7880
7881 1997-02-08  Roger Beeman  <beeman@cisco.com>
7882
7883         * ftp.c: Include <time.h>
7884
7885 1997-02-07  Hrvoje Niksic  <hniksic@srce.hr>
7886
7887         * url.c (findurl): Would read over buffer limits.
7888
7889 1997-02-06  Hrvoje Niksic  <hniksic@srce.hr>
7890
7891         * ftp-ls.c (ftp_parse_unix_ls): Allow spaces in file names.
7892
7893 1997-02-05  Hrvoje Niksic  <hniksic@srce.hr>
7894
7895         * http.c (http_atotm): Initialize tm.is_dst.
7896
7897 1997-02-02  Hrvoje Niksic  <hniksic@srce.hr>
7898
7899         * http.c (gethttp): Don't print the number of retrieved headers.
7900
7901         * main.c (main): New option `--no-clobber', alias for `-nc'.
7902
7903         * url.c: Recognize `https://'.
7904
7905 1997-02-01  Hrvoje Niksic  <hniksic@srce.hr>
7906
7907         * host.c (herrmsg): Don't use h_errno.
7908
7909 1997-01-30  Hrvoje Niksic  <hniksic@srce.hr>
7910
7911         * host.c (accept_domain): Use it.
7912
7913         * main.c (main): New option `--exclude-domains'.
7914
7915         * retr.c (retrieve_url): Use it.
7916         (retrieve_url): Bail out when an URL is redirecting to itself.
7917
7918         * url.c (url_equal): New function.
7919
7920 1997-01-29  Hrvoje Niksic  <hniksic@srce.hr>
7921
7922         * connect.c: Include arpa/inet.h instead of arpa/nameser.h.
7923
7924         * http.c (mk_utc_time): New function.
7925         (http_atotm): Use it; handle time zones correctly.
7926
7927 1997-01-28  Hrvoje Niksic  <hniksic@srce.hr>
7928
7929         * http.c: Ditto.
7930
7931         * ftp-basic.c: Use it instead of WRITE.
7932
7933         * connect.c (iwrite): New function.
7934
7935 1997-01-27  Hrvoje Niksic  <hniksic@srce.hr>
7936
7937         * cmpt.c (mktime): New function.
7938
7939         * netrc.c: Include <sys/types.h>.
7940
7941         * main.c (main): Wouldn't recognize --spider.
7942
7943         * retr.c (rate): Use `B', `KB' and `MB'.
7944         (reset_timer,elapsed_time): Moved from utils.c.
7945
7946         * ftp.c (ftp_retrieve_list): Ditto.
7947
7948         * http.c (http_loop): Don't touch the file if opt.dfp.
7949
7950 1997-01-24  Hrvoje Niksic  <hniksic@srce.hr>
7951
7952         * cmpt.c: New file.
7953
7954         * ftp.c (ftp_retrieve_glob): New argument semantics.
7955         (ftp_retrieve_dirs): Use it.
7956         (ftp_loop): Ditto.
7957
7958         * html.c (htmlfindurl): Recognize `'' as the quote char.
7959
7960 1997-01-23  Hrvoje Niksic  <hniksic@srce.hr>
7961
7962         * ftp.c (ftp_loop_internal): Use it.
7963
7964         * utils.c (remove_link): New function.
7965
7966 1997-01-22  Hrvoje Niksic  <hniksic@srce.hr>
7967
7968         * retr.c (retrieve_url): Require STRICT redirection URL.
7969
7970         * url.c (parseurl): New argument STRICT.
7971
7972         * http.c (hparsestatline): Be a little-bit less strict about
7973         status line format.
7974
7975 1997-01-21  Hrvoje Niksic  <hniksic@srce.hr>
7976
7977         * http.c (gethttp): Use it.
7978
7979         * main.c (main): Don't use '<digit>' as options.
7980
7981         * init.c: New option ignore_length.
7982
7983         * http.c (gethttp): Ditto.
7984         (http_loop): Check for redirection without Location:.
7985         (gethttp): Don't print Length unless RETROKF.
7986
7987         * ftp.c (getftp): Use it.
7988
7989         * url.c (mkalldirs): New function.
7990
7991         * utils.c (mymkdir): Don't check for existing non-directory.
7992
7993         * url.c (mkstruct): Don't create the directory.
7994
7995 1997-01-20  Hrvoje Niksic  <hniksic@srce.hr>
7996
7997         * init.c (setval): Removed NO_RECURSION checks.
7998
7999 1997-01-19  Hrvoje Niksic  <hniksic@srce.hr>
8000
8001         * version.c: "Released" 1.4.3-pre2.
8002
8003         * recur.c (recursive_retrieve): Bypass host checking only if URL
8004         is ftp AND parent URL is not ftp.
8005
8006         * ftp-basic.c (ftp_request): Print out Turtle Power.
8007
8008         * ftp.c (ftp_loop): Call ftp_retrieve_glob with 0 if there's no
8009         wildcard.
8010         (ftp_retrieve_glob): Call ftp_loop_internal even on empty list, if
8011         not glob.
8012
8013         * http.c (gethttp): Be a little bit smarter about status codes.
8014
8015         * recur.c (recursive_retrieve): Always reset opt.recursive when
8016         dealing with FTP.
8017
8018 1997-01-18  Hrvoje Niksic  <hniksic@srce.hr>
8019
8020         * retr.c (retrieve_url): New variable location_changed; use it for
8021         tests instead of mynewloc.
8022         (retrieve_url): Allow heuristic adding of html.
8023
8024         * url.c (url_filename): Don't use the `%' in Windows file names.
8025
8026         * http.c (http_loop): Always time-stamp the local file.
8027
8028         * http.c (http_loop): Ditto.
8029
8030         * ftp.c (ftp_retrieve_list): Use it.
8031
8032         * utils.c (my_touch): New function.
8033
8034         * ftp.c (ftp_retrieve_list): Use #ifdef HAVE_STRUCT_UTIMBUF
8035         instead of #ifndef NeXT.
8036
8037         * utils.c (strptime): New version, by Ulrich Drepper.
8038
8039 1997-01-17  Hrvoje Niksic  <hniksic@srce.hr>
8040
8041         * http.c (haccepts_none): Renamed from `haccepts_bytes'.
8042         (gethttp): If haccepts_none(), disable ACCEPTRANGES.
8043         (http_loop): Would remove ACCEPTRANGES.
8044
8045         * ftp.c (getftp): Call ftp_list with NULL.
8046
8047 1997-01-15  Hrvoje Niksic  <hniksic@srce.hr>
8048
8049         * html.c (ftp_index): Don't print minutes and seconds if we don't
8050         know them; beautify the output.
8051
8052         * ftp.c (getftp): Don't close the socket on FTPNSFOD.
8053
8054 1997-01-14  Hrvoje Niksic  <hniksic@srce.hr>
8055
8056         * utils.c (strptime): New function.
8057         (strptime): Don't use get_alt_number.
8058         (strptime): Don't use locale.
8059         (match_string): Made it a function.
8060
8061 1997-01-12  Hrvoje Niksic  <hniksic@srce.hr>
8062
8063         * http.c (http_atotm): New function.
8064         (http_loop): Use it.
8065
8066         * atotm.c: Removed from the distribution.
8067
8068         * http.c (base64_encode_line): Rewrite.
8069
8070 1997-01-09  Hrvoje Niksic  <hniksic@srce.hr>
8071
8072         * ftp.c (getftp): Use ftp_expected_bytes; print size.
8073
8074         * ftp-basic.c (ftp_response): Use ftp_last_respline.
8075         (ftp_expected_bytes): New function.
8076
8077         * ftp.c (getftp): Print the unauthoritative file length.
8078
8079         * ftp-ls.c: Renamed from ftp-unix.c.
8080         (ftp_parse_ls): Moved from ftp.c.
8081         (ftp_parse_unix_ls): Recognize seconds in time spec.
8082         (ftp_parse_unix_ls): Recognize year-less dates of the previous
8083         year.
8084
8085 1997-01-08  Hrvoje Niksic  <hniksic@srce.hr>
8086
8087         * ftp-basic.c: Don't declare errno if #defined.
8088
8089         * host.c (ftp_getaddress): Check for sysinfo legally.
8090
8091 1997-01-08  Darko Budor  <dbudor@diana.zems.fer.hr>
8092
8093         * connect.c (iread): Use READ.
8094
8095 1996-12-23  Hrvoje Niksic  <hniksic@srce.hr>
8096
8097         * url.c: Recognize finger, rlogin, tn3270, mid and cid as valid
8098         schemes.
8099
8100 1996-12-22  Hrvoje Niksic  <hniksic@srce.hr>
8101
8102         * host.c (ftp_getaddress): Allow `.' in hostname.
8103
8104 1996-12-26  Darko Budor <dbudor@zems.fer.hr>
8105
8106         * wget.h: READ and WRITE macros for use instead of read and write
8107         on sockets, grep READ *.c, grep WRITE *.c
8108
8109         * wsstartup.c: new file - startup for winsock
8110
8111         * wsstartup.h: new file
8112
8113         * win32decl.h: new file - fixup for <errno.h> and winsock trouble
8114
8115         * configure.bat: Configure utility for MSVC
8116
8117         * src/Makefile.ms,config.h.ms: new files for use with MSVC 4.x
8118
8119 1996-12-22  Hrvoje Niksic  <hniksic@srce.hr>
8120
8121         * version.c: Released 1.4.3-pre.
8122
8123         * utils.c (prnum): Accept long.
8124         (legible): Use prnum().
8125
8126         * connect.c (make_connection): Accept port as short.
8127         (bindport): Ditto.
8128
8129         * http.c (gethttp): Use search_netrc.
8130
8131 1996-12-21  Hrvoje Niksic  <hniksic@srce.hr>
8132
8133         * ftp.c (getftp): Use search_netrc.
8134
8135         * netrc.c (free_netrc): New function.
8136
8137         * init.c (home_dir): New function.
8138
8139         * url.c (convert_links): Allow REL2ABS changes.
8140
8141 1996-12-21  Gordon Matzigkeit  <gord@gnu.ai.mit.edu>
8142
8143         * netrc.c: New file.
8144         (parse_netrc, maybe_add_to_list): New functions.
8145
8146 1996-12-17  Hrvoje Niksic  <hniksic@srce.hr>
8147
8148         * retr.c (retrieve_url): Reset opt.recursion before calling
8149         ftp_loop if it is reached through newloc.
8150
8151         * init.c (run_wgetrc): Print the wgetrc path too, when reporting
8152         error; don't use "Syntax error", since we don't know if it is
8153         really a syntax error.
8154
8155 1996-12-16  Hrvoje Niksic  <hniksic@srce.hr>
8156
8157         * utils.c (acceptable): Extract the filename part of the path.
8158
8159         * recur.c (recursive_retrieve): Call acceptable() with the right
8160         argument; would bug out on wildcards.
8161
8162         * init.c (parse_line): Likewise.
8163
8164         * html.c (htmlfindurl): Cast to char * when calling stuff.
8165
8166 1996-12-15  Hrvoje Niksic  <hniksic@srce.hr>
8167
8168         * ftp.c (getftp): Use ftp_pasv.
8169
8170         * ftp-basic.c (ftp_request): Accept NULL value.
8171         (ftp_pasv): New function.
8172
8173         * options.h (struct options): Add passive FTP option.
8174
8175 1996-12-15  Hrvoje Niksic  <hniksic@srce.hr>
8176
8177         * url.c (parseurl): Debug output.
8178
8179         * utils.c (path_simplify): New one, adapted from bash's
8180         canonicalize_pathname().
8181
8182 1996-12-14  Hrvoje Niksic  <hniksic@srce.hr>
8183
8184         * ftp.c (getftp): Don't discard the buffer.
8185
8186         * retr.c (get_contents): New parameter nobuf.
8187
8188 1996-12-13  Shawn McHorse  <riffraff@txdirect.net>
8189
8190         * html.c (htmlfindurl): Recognize <meta contents="d; URL=...".
8191
8192         * init.c (setval): Strip the trailing slashes on CVECDIR.
8193
8194 1996-12-13  Hrvoje Niksic  <hniksic@srce.hr>
8195
8196         * init.c: Make excludes and includes under CVECDIR instead of
8197         CVEC.
8198
8199 1996-12-13  Shawn McHorse  <riffraff@txdirect.net>
8200
8201         * url.c (get_urls_html): Skip "http:".
8202
8203 1996-12-13  Hrvoje Niksic  <hniksic@srce.hr>
8204
8205         * utils.c (strcasecmp): From glibc.
8206         (strncasecmp): Also.
8207         (strstr): Also.
8208
8209         * url.c: Added javascript: to the list of URLs prefixes.
8210
8211 1996-12-12  Shawn McHorse  <riffraff@txdirect.net>
8212
8213         * recur.c (retrieve_robots): Print the warning message only if
8214         verbose.
8215
8216 1996-12-12  Gregor Hoffleit  <flight@mathi.uni-heidelberg.DE>
8217
8218         * ftp.c (ftp_retrieve_list): Use NeXT old utime interface.
8219
8220 1996-12-12  Hrvoje Niksic  <hniksic@srce.hr>
8221
8222         * systhings.h: New file.
8223
8224         * ../configure.in: Check for utime.h
8225
8226         * ftp.c: Check whether we have unistd.h.
8227
8228 1996-11-27  Hrvoje Niksic  <hniksic@srce.hr>
8229
8230         * recur.c (recursive_retrieve): Send the canonical URL as referer.
8231         (recursive_retrieve): Call get_urls_html with the canonical URL.
8232
8233 1996-12-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8234
8235         * (configure.in, config.h.in, src/Makefile.in, src/*.[ch]): Add
8236         ansi2knr support for compilers which don't support ANSI style
8237         function prototypes and signatures.
8238
8239         * (aclocal.m4, src/ansi2knr.c, src/ansi2knr.1): New files.
8240
8241 1996-11-26  Hrvoje Niksic  <hniksic@srce.hr>
8242
8243         * url.c: Use it; Recognize paths ending with "." and ".." as
8244         directories.
8245         (url_filename): Append .n whenever file exists and could be a
8246         directory.
8247
8248         * url.h (ISDDOT): New macro.
8249
8250         * init.c (parse_line): Use unsigned char.
8251
8252         * url.c (get_urls_html): Cast to unsigned char * when calling
8253         htmlfindurl.
8254
8255         * html.c (htmlfindurl): Use unsigned char.
8256
8257         * version.c: Changed version to 1.4.3.
8258
8259 1996-11-25  Hrvoje Niksic  <hniksic@srce.hr>
8260
8261         * version.c: Released 1.4.2.
8262
8263         * ftp.c (getftp): Simplified assertion.
8264         (ftp_loop_internal): Remove symlink before downloading.
8265         (ftp_retrieve_list): Unlink the symlink name before attempting to
8266         create a symlink!
8267
8268         * options.h (struct options): Renamed print_server_response to
8269         server_response.
8270
8271         * ftp.c (rel_constr): Removed.
8272         (ftp_retrieve_list): Don't use it.
8273         (ftp_retrieve_list): Use opt.retr_symlinks.
8274
8275 1996-11-24  Hrvoje Niksic  <hniksic@srce.hr>
8276
8277         * main.c (main): New option retr_symlinks.
8278
8279         * url.c (convert_links): Print verbose message.
8280
8281 1996-11-24  Hrvoje Niksic  <hniksic@srce.hr>
8282
8283         * http.c (http_loop): Reset newloc in the beginning of function;
8284         would cause FMR in retrieve_url.
8285
8286 1996-11-23  Hrvoje Niksic  <hniksic@srce.hr>
8287
8288         * recur.c (convert_all_links): Find the URL of each HTML document,
8289         and feed it to get_urls_html; would bug out.
8290         (convert_all_links): Check for l2 instead of dl; removed dl.
8291
8292         * url.c (convert_links): Don't refer to freed newname.
8293
8294         * recur.c (recursive_retrieve): Add this_url to urls_downloaded.
8295
8296         * main.c (main): Print the OS_TYPE in the debug output, too.
8297
8298         * recur.c (recursive_retrieve): Check for opt.delete_after.
8299
8300         * main.c (main): New option delete-after.
8301
8302         * init.c (setval): Cleaned up.
8303
8304 1996-11-21  Hrvoje Niksic  <hniksic@srce.hr>
8305
8306         * Makefile.in (wget): Make `wget' the default target.
8307
8308         * ftp.c (ftp_loop_internal): Move noclobber checking out of the
8309         loop.
8310         (ftp_retrieve_list): Warn about non-matching sizes.
8311
8312         * http.c (http_loop): Made -nc non-dependent on opt.recursive.
8313
8314         * init.c (setnum): Renamed from setnuminf; New argument flags.
8315         (setval): Use it.
8316
8317         * main.c (main): Sorted the options.
8318         (main): New option --wait.
8319
8320 1996-11-21  Shawn McHorse  <riffraff@txdirect.net>
8321
8322         * html.c (htmlfindurl): Reset s->in_quote after getting out of
8323         quotes.
8324
8325 1996-11-20  Hrvoje Niksic  <hniksic@srce.hr>
8326
8327         * version.c: Changed version to 1.4.2.
8328
8329 1996-11-20  Hrvoje Niksic  <hniksic@srce.hr>
8330
8331         * version.c: Released 1.4.1.
8332
8333         * html.c (html_quote_string): New function.
8334         (ftp_index): Use it.
8335         (htmlfindurl): A more gentle ending debug message.
8336
8337         * ftp.c (ftp_loop): Check for opt.htmlify.
8338
8339         * init.c: New command htmlify.
8340
8341         * ftp.c (getftp): Nicer error messages, with `'-encapsulated
8342         strings.
8343         (ftp_loop): Print size of index.html.
8344
8345         * init.c (setval): Implement "styles".
8346
8347         * main.c (main): New option dotstyle.
8348
8349 1996-11-19  Hrvoje Niksic  <hniksic@srce.hr>
8350
8351         * ftp.c (getftp): Close the master socket in case of errors, after
8352         bindport().
8353
8354         * connect.c (bindport): Initialize msock to -1.
8355
8356         * ftp.c (getftp): Initialize dtsock to -1.
8357
8358         * connect.c (closeport): Don't close sock if sock == -1.
8359
8360 1996-11-18  Hrvoje Niksic  <hniksic@srce.hr>
8361
8362         * init.c (setnuminf): Nuked default value -- just leave unchanged.
8363         (setval): Don't send default values.
8364         (defaults): Use DEFAULT_TIMEOUT -- aaargh.
8365
8366         * options.h (struct options): Use long for dot_bytes.
8367
8368         * init.c (setquota): Renamed to setbytes.
8369         (setval): Use setbytes on DOTBYTES.
8370
8371 1996-11-17  Hrvoje Niksic  <hniksic@srce.hr>
8372
8373         * ftp.c (getftp): Initialize con->dltime.
8374
8375         * recur.c (recursive_retrieve): Use same_host instead of
8376         try_robots; simply load robots_txt whenever the host is changed.
8377         (recursive_retrieve): Free forbidden before calling parse_robots.
8378
8379 1996-11-16  Hrvoje Niksic  <hniksic@srce.hr>
8380
8381         * retr.c (show_progress): Use them.
8382
8383         * options.h (struct options): New options dot_bytes, dots_on_line
8384         and dot_spacing.
8385
8386 1996-11-16  Mark Boyns  <boyns@sdsu.edu>
8387
8388         * recur.c (recursive_retrieve): Retrieve directories regardless of
8389         acc/rej rules; check for empty u->file.
8390
8391 1996-11-14  Hrvoje Niksic  <hniksic@srce.hr>
8392
8393         * init.c (setval): Use it.
8394
8395         * utils.c (merge_vecs): New function.
8396
8397         * init.c (setval): Reset the list-type functions when encountering
8398         "".
8399
8400 1996-11-14  Shawn McHorse  <riffraff@txdirect.net>
8401
8402         * recur.c (recursive_retrieve): Use base_url instead of this_url
8403         for no_parent.
8404
8405 1996-11-14  Shawn McHorse  <riffraff@txdirect.net>
8406
8407         * html.c (htmlfindurl): Reset s->in_quote after exiting the quote.
8408
8409 1996-11-13  Hrvoje Niksic  <hniksic@srce.hr>
8410
8411         * utils.c (sepstring): Rewrote; don't use strtok.
8412
8413         * recur.c (recursive_retrieve): Enter assorted this_url to slist
8414         when running the first time.
8415         (retrieve_robots): Warn to ignore errors when robots are loaded.
8416
8417         * utils.c (load_file): Moved from url.c.
8418
8419         * http.c: Made static variables const too in h* functions.
8420
8421         * main.c (main): Renamed --continue-ftp to --continue.
8422
8423         * recur.c (recursive_retrieve): Use it.
8424
8425         * utils.c (frontcmp): New function.
8426
8427         * url.c (accdir): New function.
8428
8429         * html.c (htmlfindurl): Recognize <area href=...>.
8430
8431         * ftp.c (ftp_retrieve_dirs): Implemented opt.includes.
8432
8433         * init.c (setval): Free the existing opt.excludes and
8434         opt.includes, if available.
8435
8436         * main.c (main): New option -I.
8437
8438 1996-11-12  Hrvoje Niksic  <hniksic@srce.hr>
8439
8440         * ftp.c (ftp_retrieve_glob): Do not weed out directories.
8441
8442         * version.c: Changed version to 1.4.1.
8443
8444 1996-11-11  Hrvoje Niksic  <hniksic@srce.hr>
8445
8446         * version.c: Released 1.4.0.
8447
8448 1996-11-10  Hrvoje Niksic  <hniksic@srce.hr>
8449
8450         * main.c (main): Free com and val after parse_line.
8451         (printhelp): Reorder the listing.
8452
8453         * http.c: More robust header parsing.
8454
8455         * http.c: Allow any number of spaces, or no spaces, precede ':'.
8456         (hskip_lws): New function.
8457         (haccepts_bytes): New function.
8458         (gethttp): Use it.
8459
8460         * init.c (setval): Check header sanity.
8461         (setval): Allow resetting of headers.
8462
8463 1996-11-10  Hrvoje Niksic  <hniksic@srce.hr>
8464
8465         * http.c (http_loop): Don't use has_wildcards.
8466
8467         * http.c (gethttp): Free all_headers -- would leak.
8468
8469         * recur.c (recursive_retrieve): Initialize depth to 1 instead of
8470         0 -- this fixes a long-standing bug in -rl.
8471
8472 1996-11-09  Hrvoje Niksic  <hniksic@srce.hr>
8473
8474         * ftp.c: Use -1 as "impossible" value for con->fd.
8475
8476         * url.h (URL_SEPARATOR): Don't treat `*' and `+' as separators.
8477
8478         * init.c (parse_line): Use isalpha.
8479
8480         * ftp-unix.c: Use HAVE_UNISTD_H.
8481
8482         * mtch.c (has_wildcards): Don't match \.
8483
8484         * http.c (http_loop): Warn on HTTP wildcard usage.
8485
8486 1996-11-08  Hrvoje Niksic  <hniksic@srce.hr>
8487
8488         * url.c (url_filename): Do not create numbered suffixes if
8489         opt.noclobber -- would bug out on -nc.
8490
8491 1996-11-07  Hrvoje Niksic  <hniksic@srce.hr>
8492
8493         * recur.c (parse_robots): Don't chuck out the commands without
8494         arguments (`Disallow:<empty>' didn't work).
8495         (parse_robots): Compare versions lowercase.
8496         (parse_robots): Match on base_version, not version_string!
8497         (parse_robots): Handle comments properly.
8498         (parse_robots): Match versions in a sane way.
8499
8500         * init.c: Print nicer error messages.
8501
8502         * version.c: Changed version to 1.4.0.
8503
8504 1996-11-06  Hrvoje Niksic  <hniksic@srce.hr>
8505
8506         * version.c: Released 1.4.0-test2.
8507
8508         * init.c (run_wgetrc): Close fp.
8509
8510         * ftp.c (ftp_retrieve_dirs): Allocate the correct length for
8511         u->dir.
8512
8513 1996-11-06  Hrvoje Niksic  <hniksic@srce.hr>
8514
8515         * init.c (setquota): Allow inf as quota specification.
8516
8517 1996-11-05  Hrvoje Niksic  <hniksic@srce.hr>
8518
8519         * ftp.c (ftp_retrieve_dirs): Return QUOTEXC if quota exceeded.
8520         (ftp_retrieve_glob): Return QUOTEXC on quota exceeded.
8521
8522         * main.c (main): Check for quota by comparison with downloaded
8523         stuff, not from status.
8524
8525         * connect.c (select_fd): Should compile on HPUX without warnings now.
8526
8527         * ftp.c (ftp_get_listing): Check whether ftp_loop_internal
8528         returned RETROK.
8529
8530 1996-11-04  Hrvoje Niksic  <hniksic@srce.hr>
8531
8532         * ftp.c (ftp_retrieve_glob): Print the pattern nicely.
8533         (getftp): Return FTPRETRINT on control connection error.
8534
8535         * html.c (htmlfindurl): Recognize <embed src=...> and
8536         <bgsound src=...>.
8537         (ftp_index): Handle username and password correctly.
8538
8539         * main.c (main): Made `-np' a synonim for --no-parent.
8540
8541 1996-11-02  Hrvoje Niksic  <hniksic@srce.hr>
8542
8543         * ftp.c (ftp_loop): Check for opt.ftp_glob too before calling
8544         ftp_retrieve_glob.
8545
8546         * version.c: Changed version to 1.4.0-test2.
8547
8548 1996-11-02  Hrvoje Niksic  <hniksic@srce.hr>
8549
8550         * version.c: Released 1.4.0-test1.
8551
8552         * url.c (str_url): Don't use sprintf when creating %2F-prefixed
8553         directory.
8554         (convert_links): Removed definition of make_backup.
8555
8556         * http.h: Removed definition of MAX_ERROR_LENGTH.
8557
8558         * host.c (ftp_getaddress): Check for "(none)" domains.
8559
8560         * ftp.c (ftp_retrieve_dirs): Docfix.
8561
8562         * http.c (gethttp): Use ou->referer instead of u->referer.
8563
8564         * retr.c (retrieve_url): Reset u to avoid freeing pointers twice;
8565         this was known to cause coredumps on Linux.
8566
8567         * html.c (ftp_index): Cast the argument to local_time to time_t *.
8568
8569 1996-11-01  Hrvoje Niksic  <hniksic@srce.hr>
8570
8571         * connect.c (select_fd): Use exceptfds -- once and for all.
8572
8573         * retr.c (retrieve_from_file): Free filename after
8574         recursive_retrieve.
8575         (retrieve_from_file): Send RFIRST_TIME to recursive_retrieve on
8576         first-time retrieval.
8577         (retrieve_from_file): Return uerr_t; new argument, count.
8578         (retrieve_from_file): Break on QUOTEXC.
8579
8580         * init.c (setquota): Fixed a bug that caused rejection of
8581         non-postfixed values..
8582
8583 1996-10-30  Hrvoje Niksic  <hniksic@srce.hr>
8584
8585         * version.c: Changed name to wget.
8586
8587         * connect.c (iread): Smarter use of select.
8588         (select_fd): Set errno on timeout.  If not timeout, return 1
8589         instead of 0.
8590
8591 1996-10-29  Hrvoje Niksic  <hniksic@srce.hr>
8592
8593         * ftp.c (ftp_loop_internal): Don't use con->cmd before
8594         establishing it.
8595
8596 1996-10-26  Hrvoje Niksic  <hniksic@srce.hr>
8597
8598         * http.c (gethttp): Send correct referer when using proxy.
8599         (gethttp): Use struct urlinfo ou to access the relevant data; send
8600         correct authorization in all cases.
8601
8602         * host.c (same_host): Use skip_uname to skip username and
8603         password.
8604
8605         * url.c (skip_uname): New function.
8606         (parseurl): Use it.
8607
8608         * host.c (same_host): Do not assume HTTP -- same_host should now
8609         be totally foolproof.
8610
8611         * url.c (skip_proto): New function.
8612         (parse_uname): Use it.
8613
8614         * http.c (gethttp): Create local user and passwd from what is
8615         given.
8616
8617         * url.c (parseurl): Check for HTTP username and password too.
8618
8619 1996-10-25  Hrvoje Niksic  <hniksic@srce.hr>
8620
8621         * config.h.in: Removed #define gethostbyname R...
8622
8623 1996-10-22  Hrvoje Niksic  <hniksic@srce.hr>
8624
8625         * version.c: Changed version to 1.4.0-test1.
8626
8627 1996-10-21  Hrvoje Niksic  <hniksic@srce.hr>
8628
8629         * version.c: "Released" 1.4b29.
8630
8631         * recur.c (recursive_retrieve): Check for no_parent.
8632
8633         * init.c (setval): Option update.
8634
8635         * main.c (main): New option no-parent.
8636
8637         * options.h (struct options): New variable no_parent.
8638
8639         * recur.c (recursive_retrieve): Only files are checked for
8640         opt.accepts and opt.rejects.
8641         (recursive_retrieve): Check directories for opt.excludes.
8642         (recursive_retrieve): Make the dir absolute when checking
8643         opt.excludes.
8644
8645         * html.c (htmlfindurl): Recognize <applet code=...> and <script
8646         src=...>
8647
8648 1996-10-18  Hrvoje Niksic  <hniksic@srce.hr>
8649
8650         * ftp.c (getftp): Do not line-break assert entries at all.
8651         (ftp_retrieve_dirs): docfix.
8652
8653         * connect.c (select_fd): Use fd + 1 as nfds.
8654
8655         * version.c: Changed version to 1.4b29.
8656
8657 1996-10-18  Hrvoje Niksic  <hniksic@srce.hr>
8658
8659         * version.c: "Released" 1.4b28.
8660
8661         * ftp.c (ftp_loop_internal): Check whether f->size == len and
8662         don't continue the loop if it is.
8663         (ftp_get_listing): Remove list_filename on unsuccesful loop.
8664
8665 1996-10-17  Hrvoje Niksic  <hniksic@srce.hr>
8666
8667         * ftp.c (ftp_loop_internal): Use strcpy to initialize tmp.
8668         (getftp): Do not use multiline assert.
8669
8670         * http.c (hparsestatline): Use mjr and mnr instead of major and
8671         minor, which don't compile on Ultrix.
8672         (http_loop): Use strcpy() to initialize tmp.
8673
8674         * all: Geturl -> Fetch
8675
8676 1996-10-17  Hrvoje Niksic  <hniksic@srce.hr>
8677
8678         * recur.c (parse_robots): Fixed an off-by-one bug when looking for
8679         ':'.
8680
8681         * html.c (htmlfindurl): Fixed several possible off-by-one bugs by
8682         moving `bufsize &&' to the beginning of each check in for-loops.
8683
8684         * recur.c (parse_robots): Close fp on exit.
8685
8686         * url.c (mymkdir): Check for each directory before creating.
8687
8688 1996-10-16  Hrvoje Niksic  <hniksic@srce.hr>
8689
8690         * version.c: Changed version to 1.4b28.
8691
8692 1996-10-16  Hrvoje Niksic  <hniksic@srce.hr>
8693
8694         * version.c: "Released" 1.4b27.
8695
8696         * init.c (parse_line): Use isspace.
8697         (parse_line): Free *com on all errors.
8698
8699         * ftp.c (ftp_loop): Change FTPOK to RETROK before exiting.
8700         (delelement): Use next instead of f->next and prev instead of
8701         f->prev.
8702         (delelement): Free the members of the deleted element.
8703
8704         * http.c (http_loop): Do not return RETROK on code != 20x.
8705
8706         * init.c (cleanup): Free opt.user_header.
8707         (cleanup): Free opt.domains.
8708
8709         * url.c (freelists): Moved to cleanup().
8710
8711         * http.c (hparsestatline): Docfix.
8712
8713         * main.c (main): Return with error status on unsuccesful
8714         retrieval.
8715
8716         * init.c (setval): Do not remove listing when mirroring.
8717
8718         * url.c (url_filename): Use opt.fileprefix.
8719
8720         * ftp.c (ftp_get_listing): Use url_filename to get filename for
8721         .listing.
8722
8723         * main.c (main): New option: -rn.
8724
8725 1996-10-15  Hrvoje Niksic  <hniksic@srce.hr>
8726
8727         * Makefile.in (RM): Added RM = rm -f.
8728
8729         * host.c (clean_hosts): New function.
8730         (free_hlist): Just free the list, no reset.
8731
8732         * version.c: Changed version to 1.4b27.
8733
8734 1996-10-13  Hrvoje Niksic  <hniksic@srce.hr>
8735
8736         * version.c: "Released" 1.4b26.
8737
8738         * retr.c (retrieve_from_file): If call get_urls_html with
8739         opt.spider to make it silent in spider mode.
8740
8741         * url.c (str_url): Use CLEANDUP instead of URL_CLEANSE.
8742
8743         * url.h (CLEANDUP): New macro.
8744
8745         * http.c (gethttp): Fixed a bug that freed location only when it
8746         was NULL.
8747
8748         * retr.c (retrieve_url): Free url if it will not be stored,
8749         i.e. newloc is NULL.
8750
8751         * html.c (htmlfindurl): Handle exiting from quotes correctly; the
8752         old version would bug out on <a href="x#a"href="y">.
8753
8754         * html.h (state_t): New member in_quote.
8755
8756         * html.c (htmlfindurl): Free s->attr at the beginning of
8757         attr-loop.
8758
8759         * recur.c (recursive_retrieve): Recognize RCLEANUP.
8760         (tried_robots): Make hosts a global variable.
8761         (recursive_retrieve): Free constr after URL host optimization.
8762         (tried_robots): Free urlinfo before exiting.
8763
8764         * utils.c (free_slist): New function.
8765
8766         * recur.c (recursive_retrieve): Use flags to add cleanup
8767         possibility.
8768
8769         * main.c (main): Free filename after recursive_retrieve.
8770
8771         * http.c (gethttp): Store successful responses too.
8772
8773 1996-10-12  Hrvoje Niksic  <hniksic@srce.hr>
8774
8775         * all: Constified the whole source.  This required some minor
8776         changes in many functions in url.c, possibly introducing bugs -- I
8777         hope not.
8778
8779         * ftp-basic.c: Removed last_respline.
8780
8781         * http.c (gethttp): Free type.
8782
8783         * host.c (same_host): Free real1 and real2.
8784
8785         * main.c (main): New option --spider.
8786
8787         * retr.c (get_contents): Don't reset errno.
8788
8789         * main.c (main): Sorted the options.
8790
8791         * connect.c (iread): Set errno to ETIMEDOUT only if it was left
8792         uninitialized by select().
8793
8794         * http.c (http_loop): Print the time when the connection is
8795         closed.
8796         (gethttp): Debug-print the HTTP request.
8797
8798 1996-10-11  Hrvoje Niksic  <hniksic@srce.hr>
8799
8800         * connect.c (iread): Do not try reading after timeout.
8801
8802         * main.c (main): Would bug out on -T.
8803
8804         * connect.c (select_fd): Do not use exceptfds.
8805         (iread): Set ETIMEDOUT on select_fd <= 0.
8806
8807         * version.c: Changed version to 1.4b26.
8808
8809 1996-10-10  Hrvoje Niksic  <hniksic@srce.hr>
8810
8811         * version.c: "Released" 1.4b25.
8812
8813         * ftp-unix.c (ftp_parse_unix_ls): Ignore lines without file name
8814         or link name.
8815
8816         * http.c (gethttp): Add errcode to struct hstat.
8817         (http_loop): Use it.
8818
8819         * url.c (no_proxy_match): Simplify using char** for no_proxy.
8820
8821         * options.h (struct options): Make opt.no_proxy a vector.
8822
8823         * utils.c (sepstring): Use !*s instead of !strlen(s).
8824
8825         * init.c (setval): Set opt.maxreclevel to 0 on --mirror.
8826         (getperms): Use ISODIGIT instead of isdigit.
8827
8828         * ftp.c (getftp): Print time.
8829
8830         * main.c (main): Use legible output of downloaded quantity.
8831
8832         * ftp.c (getftp): Use elapsed_time().
8833         (ftp_loop_internal): Use rate().
8834
8835         * http.c (http_loop): Add download ratio output; Use rate().
8836
8837         * utils.c (rate): New function.
8838
8839 1996-10-09  Hrvoje Niksic  <hniksic@srce.hr>
8840
8841         * http.c (http_loop): Use timer.
8842
8843         * ftp.c: Split to ftp-basic.c and ftp.c
8844
8845         * utils.c (reset_timer): New function.
8846         (elapsed_time): New function.
8847
8848         * retr.c (show_progress): Make bytes_in_line and offs long; should
8849         work on 16-bit machines.
8850
8851 1996-10-08  Hrvoje Niksic  <hniksic@srce.hr>
8852
8853         * url.c (in_acclist): New argument backward.
8854
8855         * ftp.c (ftp_retrieve_glob): Use acceptable() to determine whether
8856         a file should be retrieved according to suffix.
8857         (ftp_get_listing): Check the return value of unlink; Do not call
8858         ftp_retrieve_dirs if depth reached maxreclevel.
8859         (ftp_retrieve_dirs): Check whether the directory is in
8860         exclude-list.
8861
8862         * main.c (main): Print the version number at the beginning of
8863         DEBUG output.
8864         (main): Use strrchr when creating exec_name.
8865
8866         * ftp.c (ftp_retrieve_glob): Do not close control connection.
8867
8868         * version.c: Changed version to 1.4b25.
8869
8870 1996-10-07  Hrvoje Niksic  <hniksic@srce.hr>
8871
8872         * version.c: "Released" 1.4b24.
8873
8874         * Makefile.in: Rewrite.
8875
8876         * ftp.c (ftp_loop_internal): Likewise.
8877
8878         * retr.c (time_str): Check for failed time().
8879
8880         * html.c (htmlfindurl): Recognize <fig src> and <overlay src> from
8881         HTML3.0.
8882
8883         * retr.c (time_str): Return time_t *.
8884
8885         * connect.c (bindport): Close msock on unsuccesful bind.
8886         (bindport): The same for getsockname and listen.
8887
8888         * retr.c (retrieve_url): Allow any number of retries on
8889         proxy.
8890
8891         * http.c (gethttp): Do not treat errno == 0 as timeout.
8892         (http_loop): Likewise.
8893         (http_loop): Cosmetic changes.
8894
8895         * connect.c (iread): Set errno to ETIMEDOUT in case of timeout.
8896
8897         * retr.c (get_contents): Reset errno.
8898
8899         * ftp.c (getftp): Minor fixes.
8900
8901 1996-10-06  Hrvoje Niksic  <hniksic@srce.hr>
8902
8903         * http.c: Do not use backups.
8904
8905         * geturl.1 (WARNING): Warn that man-page could be obsolete.
8906
8907         * getopt.c (getopt_long): Moved to getopt.c
8908
8909         * geturl.texi: Enhanced.
8910
8911         * main.c (main): Use it.
8912
8913         * recur.c (convert_all_links): New function.
8914
8915         * utils.c (add_slist): New argument flags.
8916
8917         * recur.c (recursive_retrieve): Update a list of downloaded URLs.
8918         (parse_robots): Do not chuck out empty value fields.
8919         (parse_robots): Make yourself welcome on empty Disallow.
8920
8921         * version.c: Changed version to 1.4b24.
8922
8923 1996-10-06  Hrvoje Niksic  <hniksic@srce.hr>
8924
8925         * version.c: "Released" 1.4b23.
8926
8927         * ftp.c (ftp_loop_internal): Get the time after getftp.
8928
8929         * Makefile.in (install.info): New target.
8930         (install): Use it.
8931
8932         * http.c (http_loop): Fix output when doing -O.
8933
8934 1996-10-05  Hrvoje Niksic  <hniksic@srce.hr>
8935
8936         * geturl.texi: New file.
8937
8938         * main.c (main): Do not print the warnings and download summary if
8939         opt.quiet is set.
8940
8941         * version.c: Changed version to 1.4b23.
8942
8943 1996-10-05  Hrvoje Niksic  <hniksic@srce.hr>
8944
8945         * "Released" 1.4b22.
8946
8947         * atotm.c (atotm): Use True and False instead of TRUE and FALSE,
8948         to avoid redefinition warnings.
8949
8950         * host.c (store_hostaddress): Use memcpy() to copy the address
8951         returned by inet_addr.
8952
8953         * version.c: Changed version to 1.4b22.
8954
8955 1996-10-04  Hrvoje Niksic  <hniksic@srce.hr>
8956
8957         * version.c: "Released" 1.4b21.
8958
8959         * ftp-unix.c (ftp_parse_ls): Renamed to ftp_parse_unix_ls.
8960
8961         * ftp.c (ftp_port): Use conaddr.
8962         (getftp): Print the file length.
8963         (ftp_retrieve_list): Check the stamps of plain files only.
8964
8965         * connect.c (closeport): Do not call shutdown().
8966         (conaddr): New function.
8967
8968         * html.c (ftp_index): Made it dfp-aware.
8969
8970         * init.c (cleanup): New name of freemem. Close opt.dfp.
8971
8972         * ftp.c (getftp): Use opt.dfp if it is set.
8973
8974         * ftp-unix.c (ftp_parse_ls): Recognize time in h:mm format.
8975
8976         * ftp.c (ftp_retrieve_dirs): Fixed a bug that caused incorrect
8977         CWDs to be sent with recursive FTP retrievals.
8978
8979 1996-10-03  Hrvoje Niksic  <hniksic@srce.hr>
8980
8981         * recur.c (parse_robots): Made it more compliant with "official"
8982         specifications.
8983
8984         * http.c: New function.
8985
8986         * ftp-unix.c (ftp_parse_ls): Added better debug output.
8987
8988         * ftp.c (getftp): Print out the LIST in case of
8989         opt.print_server_response.
8990
8991         * version.c: Changed version to 1.4b21.
8992
8993 1996-10-01  Hrvoje Niksic  <hniksic@srce.hr>
8994
8995         * version.c: "Released" 1.4b20.
8996
8997         * README: Update.
8998
8999         * http.c (gethttp): Preset lengths of various headers instead of
9000         calculating them dynamically.
9001         (gethttp): Check for 206 partial contents.
9002
9003 1996-09-30  Hrvoje Niksic  <hniksic@srce.hr>
9004
9005         * configure.in: Set SYSTEM_GETURLRC to $libdir/geturlrc
9006
9007         * http.c (gethttp): Send the port number in the Host: header.
9008
9009 1996-09-29  Hrvoje Niksic  <hniksic@srce.hr>
9010
9011         * http.c (gethttp): Send host: header.
9012         (gethttp): Add the possibility of user-defined headers.
9013         (gethttp): Move decision about pragma: no-cache to http_loop,
9014         where it belongs.
9015         (gethttp): Pass a struct instead of enormous argument list.
9016         (http_loop): Use a new, fancier display format.
9017         (ftp_loop): Likewise.
9018
9019         * main.c: (hangup): Turn off buffering of the new log file.
9020
9021         * install-sh: Likewise.
9022
9023         * config.sub: Replace with the one in autoconf-2.10
9024
9025         * geturl.1: Update.
9026
9027         * init.c: New options httpuser and httppasswd.
9028
9029         * http.c: (base64_encode_line): New function.
9030         (gethttp): Send authentication.
9031
9032         * connect.c (make_connection): Use store_hostaddress.
9033
9034 1996-09-28  Hrvoje Niksic  <hniksic@srce.hr>
9035
9036         * host.c (store_hostaddress): New function.
9037
9038         * NEWS: Update.
9039
9040         * http.c (hgetrange): New function.
9041         (gethttp): Use ranges.
9042
9043         * utils.c (numdigit): Accept long instead of int.
9044
9045         * http.c (http_loop): Add restart capabilities.
9046
9047         * ftp.c (ftp_retrieve_glob): Fixed a bug that could cause matchres
9048         being used uninitialized.
9049         (ftp_retrieve_list): Similar fix.
9050
9051         * host.c (add_hlist): Fixed a bug that could cause cmp being used
9052         uninitialized.
9053
9054         * url.c (construct_relative): New function.
9055
9056         * recur.c (recursive_retrieve): Use it.
9057
9058         * retr.c (convert_links): New function.
9059
9060 1996-09-27  Hrvoje Niksic  <hniksic@srce.hr>
9061
9062         * url.c (free_urlpos): New function.
9063
9064         * recur.c (recursive_retrieve): Adapt.
9065
9066         * url.c (get_urls_html): Return a linked list instead of a vector.
9067
9068         * url.c (get_urls_file): Return a linked list instead of a vector.
9069
9070         * geturl.1: Update.
9071
9072         * http.c (gethttp): Implement it.
9073
9074         * init.c (setval): New option: SAVEHEADERS
9075
9076         * ftp.c (ftp_loop_internal): Do not set restval if listing is to
9077         be retrieved. Lack of this test caused bugs when the connection
9078         was lost during listing.
9079
9080         * retr.c (retrieve_url): Fixed a bug that caused
9081         coredumps. *newloc is now reset by default.
9082         (retrieve_url): Lift the twenty-tries limit on proxies.
9083
9084         * version.c: Changed version to 1.4b20.
9085
9086 1996-09-20  Hrvoje Niksic  <hniksic@srce.hr>
9087
9088         * version.c: "Released" 1.4b19.
9089
9090 1996-09-19  Hrvoje Niksic  <hniksic@srce.hr>
9091
9092         * ftp.c (ftp_loop_internal): Renamed from ftp_1fl_loop.
9093         (getftp): Changed prototype to accept ccon *.
9094
9095 1996-09-17  Hrvoje Niksic  <hniksic@srce.hr>
9096
9097         * ftp.c (ftp_retrieve_list): Fixed a bug that caused setting
9098         incorrect values to files pointed to by symbolic links.
9099         (ftp_1fl_loop): Do not count listings among the downloaded URL-s.
9100
9101 1996-09-16  Hrvoje Niksic  <hniksic@srce.hr>
9102
9103         * url.c (mkstruct): Do not prepend "./" in front of a pathname.
9104
9105         * main.c (main): New option: --user-agent.
9106
9107         * geturl.1: Ditto.
9108
9109         * init.h: Ditto.
9110
9111         * init.c (setval): Ditto.
9112
9113         * main.c (main): Rename "server-headers" to "server-response".
9114
9115         * ftp-unix.c (ftp_parse_ls): Check for asterisks at the end of
9116         executables in 'ls -F' listings.
9117
9118 1996-09-15  Hrvoje Niksic  <hniksic@srce.hr>
9119
9120         * url.c (parseurl): Remove realloc() and sprintf().
9121         (str_url): Get rid of sprintf().
9122
9123         * recur.c (recursive_retrieve): Enable FTP recursion through proxy
9124         servers.
9125
9126         * url.h (URL_CLEANSE): Made it else-resistant.
9127         (USE_PROXY): New macro.
9128
9129 1996-09-14  Hrvoje Niksic  <hniksic@srce.hr>
9130
9131         * NEWS: Update.
9132
9133         * version.c: Changed version to 1.4b19.
9134
9135 1996-09-14  Hrvoje Niksic  <hniksic@srce.hr>
9136
9137         * version.c: "Released" 1.4b18.
9138
9139         * url.c: Made it reallocate space exponentially.
9140
9141 1996-09-14  Drazen Kacar  <dave@fly.cc.fer.hr>
9142
9143         * html.c (htmlfindurl): Added <frame src> and <iframe src> among
9144         the list of stuff to fetch.
9145
9146 1996-09-13  Hrvoje Niksic  <hniksic@srce.hr>
9147
9148         * url.c (get_urls_html): Fixed a bug that caused SIGSEGV's with
9149         -Fi.
9150
9151         * html.c (htmlfindurl): Rewrite.
9152
9153         * http.c (gethttp): Use opt.proxy_cache.
9154
9155         * main.c (main): Added --cache option.
9156
9157         * ftp.c (ftp_response): Print server response if opt.print_server
9158         response is set.
9159         (getftp): Print newlines after each request if the server response
9160         is to be printed.
9161         (ftp_response): Copy the last response line to last_respline.
9162
9163         * http.c (gethttp): Add Pragma: nocache for retried
9164         proxy-retrievals.
9165
9166         * ftp.c (getftp): Use it.
9167
9168         * retr.c (buf_discard): New function.
9169
9170         * ftp.c (ftp_response): Use buf_readchar().
9171         (getftp): Flush the control connection buffer before calling
9172         get_contents().
9173
9174         * retr.c (buf_readchar): New function.
9175         (buf_flush): New function.
9176         (get_contents): Use buf_readchar() instead of read(x, x, 1).
9177         (get_contents): Use buf_flush.
9178
9179 1996-09-12  Hrvoje Niksic  <hniksic@srce.hr>
9180
9181         * ftp.c: Incorporate changes to ftp_response.
9182
9183         * ftp.c (ftp_response): Allocate the server response dynamically,
9184         as in read_whole_line and fetch_next_header.
9185
9186         * utils.c (read_whole_line): Fixed a bug that prevented reading
9187         the last line if it is not \n-terminated. Also fixed a possible
9188         memory overflow.
9189
9190         * http.c (fetch_next_header): Return malloc-ed string as large as
9191         needed.
9192         (gethttp): Use new fetch_next_header.
9193
9194 1996-09-12  Hrvoje Niksic  <hniksic@srce.hr>
9195
9196         * http.c (hgetlen): Compute the header length the first time only.
9197         (hgettype): Ditto.
9198         (hgetlocation): Ditto.
9199         (hgetmodified): Ditto.
9200
9201 1996-09-11  Hrvoje Niksic  <hniksic@srce.hr>
9202
9203         * sample.geturlrc: Update.
9204
9205 1996-09-10  Hrvoje Niksic  <hniksic@srce.hr>
9206
9207         * http.c (http_loop): Ditto.
9208
9209         * ftp.c (getftp): Open the output file as binary.
9210
9211         * version.c: Changed version to 1.4b18.
9212
9213 1996-09-10  Hrvoje Niksic  <hniksic@srce.hr>
9214
9215         * version.c: "Released" 1.4b17.
9216
9217         * ftp-unix.c (ftp_parse_ls): If unable to open file, return NULL
9218         instead of failed assertion.
9219
9220 1996-09-09  Hrvoje Niksic  <hniksic@srce.hr>
9221
9222         * ftp.c (ftp_get_listing): Add a numbered suffix to LIST_FILENAME
9223         if a file of that name already exists.
9224
9225 1996-09-05  Hrvoje Niksic  <hniksic@srce.hr>
9226
9227         * ftp.c (ftp_1fl_loop): Handler FTPPORTERR and FOPENERR correctly.
9228
9229         * config.h.in: Define gethostbyname as Rgethostbyname when using
9230         Socks.
9231
9232         * configure.in: Check for -lresolv if using Socks.
9233
9234         * version.c: Changed version to 1.4b17.
9235
9236 1996-07-15  Hrvoje Niksic  <hniksic@srce.hr>
9237
9238         * version.c: "Released" 1.4b16.
9239
9240         * http.c (gethttp): More intelligent check for first line of HTTP
9241         response.
9242         (gethttp): Would bug out on time-stamping.
9243
9244         * version.c: Changed version to 1.4b16.
9245
9246 1996-07-11  Hrvoje Niksic  <hniksic@srce.hr>
9247
9248         * version.c: Released 1.4b15.
9249
9250         * http.c (http_loop): Print \n after the loop entry, not before.
9251
9252         * url.c (url_filename): Use ISDOT.
9253
9254         * url.h (ISDOT): New macro.
9255
9256         * recur.c (recursive_retrieve): Change only opt.recursive for
9257         following FTP.
9258
9259 1996-07-11  Antonio Rosella <antonio.rosella@agip.it>
9260
9261         * socks/geturl.cgi: Fixed version No.
9262
9263         * socks/download-netscape.html: Ditto.
9264
9265         * socks/download.html: Changed socks.html to download.html.
9266
9267 1996-07-11  Hrvoje Niksic  <hniksic@srce.hr>
9268
9269         * url.c (url_filename): Check for opt.dirstruct instead for
9270         opt.recursive && opt.dirstruct.
9271
9272         * init.c (defaults): Ditto.
9273         (defaults): Reset dirstruct by default.
9274         (setval): Set opt.dirstruct whenever setting recursive.
9275
9276         * init.h: Removed FORCEDIRHIER.
9277
9278         * INSTALL: Added -L to socks-description.
9279
9280         * version.c: Changed version to 1.4b15.
9281
9282 1996-07-10  Hrvoje Niksic  <hniksic@srce.hr>
9283
9284         * version.c: "Released" 1.4b14.
9285
9286         * geturl.1: Update AUTHOR to include Rosella as contributor.
9287
9288         * NEWS: Update.
9289
9290         * socks/geturl.cgi: Simplified command creation, nuked <blink>.
9291
9292         * socks/geturl.cgi: Wrap nutscape extensions within if $netscape.
9293         (cal_time): Fix == to eq.
9294
9295         * socks/geturl.cgi: GPL-ized with permission of A. Rosella.
9296
9297         * geturl.1 (hostname): Moved URL CONVENTIONS to the beginning.
9298
9299         * Makefile.in: Use @VERSION@.
9300
9301         * configure.in: Check version from version.c.
9302
9303         * socks/geturl.cgi: Changed /pub/bin/perl to /usr/bin/perl.
9304
9305         * socks/download.html: Created from download-netscape.html, made
9306         HTML-2.0 compliant.
9307
9308         * recur.c (recursive_retrieve): Set opt.force_dir_hier when
9309         following FTP links from recursions.
9310
9311 1996-07-09  Hrvoje Niksic  <hniksic@srce.hr>
9312
9313         * url.c (mymkdir): Fixed a bug that prevented mymkdir() to create
9314         absolute directories correctly.
9315
9316         * version.c: Changed version to 1.4b14.
9317
9318 1996-07-09  Hrvoje Niksic  <hniksic@srce.hr>
9319
9320         * version.c: "Released" 1.4b13.
9321
9322         * url.c (make_backup): New function.
9323
9324         * http.c (http_loop): Make a backup copy of the local file (using
9325         rename(2)) before opening it.
9326
9327         * main.c (main): Added --backups.
9328
9329         * host.c (ftp_getaddress): Bail out on failed mycuserid().
9330         (ftp_getaddress): Check for leading dot on MY_DOMAIN.
9331         (ftp_getaddress): Check for empty, null or (null) domain.
9332
9333         * url.c (get_urls_html): If this_url is NULL, the base must have a
9334         protocol.
9335         (parseurl): Use has_proto.
9336
9337         * retr.c (retrieve_url): Warn when proxy is used with more than 20
9338         retries.
9339
9340         * url.c (mkstruct): Create the directory (calling mymkdir()) only
9341         if it is not already there.
9342         (has_proto): New function.
9343         (get_urls_html): Eliminate the remaining call to findurl -- use
9344         has_proto.
9345
9346         * geturl.1: Ditto.
9347
9348         * main.c: Change -X to -x.
9349
9350         * url.c (url_filename): Simplify creation of filename if
9351         prefix_files is set.
9352         (url_filename): Simplify everything. And I do mean *everything*.
9353         (mkstruct): Add dir_prefix before hostname.
9354         (path_simplify): Fixed a bug that caused writing outside the path
9355         string in case of "." and ".." path strings.
9356
9357 1996-07-06  Hrvoje Niksic  <hniksic@srce.hr>
9358
9359         * init.c: Added --mirror.
9360
9361         * main.c (main): Added -X to force saving of directory hierarchy.
9362
9363         * ftp.c (ftp_retrieve_list): Added recursion depth counter.
9364         (ftp_retrieve_list): Check whether quota is exceeded.
9365
9366         * url.c (get_urls_html): Skip leading blanks for absolute URIs.
9367
9368         * http.c (gethttp): Use referer if present.
9369
9370         * recur.c (recursive_retrieve): Set u->referer before calling
9371         retrieve_url.
9372
9373         * url.c (newurl): Use memset to nullify the struct members.
9374         (freeurl): Free the referer field too.
9375
9376         * url.h: Added referer to urlinfo.
9377
9378         * geturl.1: Updated the manual to document some of the new features.
9379
9380         * utils.c (numdigit): Moved from url.c.
9381
9382         * README: Rewritten.
9383
9384         * config.h.in: Add the support for socks.
9385
9386         * configure.in: Add the support for socks.
9387
9388         * url.c (url_filename): If the dir_prefix is ".", work with just
9389         the file name.
9390         (url_filename): Do not look for .n extensions if timestamping if
9391         turned on.
9392
9393         * retr.c (show_progress): Skip the over-abundant restval data, and
9394         print the rest of it with ',' instead of '.'.
9395
9396 1996-07-05  Hrvoje Niksic  <hniksic@srce.hr>
9397
9398         * retr.c (show_progress): Changed second arg. to long (as it
9399         should be).
9400         (show_progress): Moved to retr.c.
9401         (get_contents): Moved to retr.c.
9402
9403         * version.c: Change version to 1.4b13.
9404
9405 1996-07-05  Hrvoje Lacko <hlacko@fly.cc.fer.hr>
9406
9407         * url.c (in_acclist): Would return after the first suffix.
9408
9409 1996-07-04  Hrvoje Niksic  <hniksic@srce.hr>
9410
9411         * version.c: "Released" 1.4b12.
9412
9413         * url.c (path_simplify): More kludgifications.
9414         (get_urls_html): Use new parameters for htmlfindurl.
9415
9416         * html.c: Removed memorizing "parser states", since the new
9417         organization does not require them.
9418
9419         * init.c (run_geturlrc): Use read_whole_line.
9420
9421         * ftp-unix.c (ftp_parse_ls): Use read_whole_line.
9422
9423         * recur.c (parse_robots): Use read_whole_line.
9424
9425         * utils.c (read_whole_line): New function.
9426
9427         * recur.c (tried_robots): Use add_slist/in_slist, *much* cleaner.
9428
9429         * host.c (ngethostbyname): Call inet_addr just once. Yet to be
9430         tested on OSF and Ultrix.
9431         (add_hlist): New function.
9432         (free_hlist): New function.
9433         (search_host): New function.
9434         (search_address): New function.
9435         (realhost): Use search_host, search_address and add_hlist.
9436         (same_host): Replaced realloc() with strdupdelim(), made
9437         case-insensitive, fixed a memory leak.
9438
9439         * html.c (ftp_index): Fixed tm_min and tm_sec to be tm_hour and
9440         tm_min, like intended.
9441
9442         * version.c: Change user agent information to
9443         Geturl/version.
9444
9445 1996-07-03  Hrvoje Niksic  <hniksic@srce.hr>
9446
9447         * utils.c: Renamed nmalloc.c to utils.c, .h likewise.
9448
9449         * url.c (acceptable): Always accept directories.
9450
9451         * ftp-unix.c (ftp_parse_ls): Support brain-damaged "ls -F"-loving
9452         servers by stripping trailing @ from symlinks and trailing / from
9453         directories.
9454
9455         * ftp.c (ftp_loop): Debugged the "enhanced" heuristics. :-)
9456
9457         * url.c (skip_url): Use toupper instead of UCASE.
9458
9459         * host.c (sufmatch): Made it case-insensitive.
9460
9461         * url.c (match_backwards_or_pattern): Fixed i == -1 to j == -1.
9462         (match_backwards): New function, instead of
9463         match_backwards_or_pattern.
9464
9465         * recur.c (recursive_retrieve): Increased performance by
9466         introducing inl, which reduces number of calls to in_slist to only
9467         one.
9468
9469         * ftp.c (ftp_loop): Enhanced the heuristics that decides which
9470         routine to use.
9471
9472         * main.c (printhelp): Removed the warranty stuff.
9473
9474 1996-07-02  Hrvoje Niksic  <hniksic@srce.hr>
9475
9476         * url.c (add_slist): Simplify.
9477         (match_backwards_or_pattern): New function.
9478         (in_acclist): Use match_backwards_or_pattern.
9479         (matches): Remove.
9480
9481 1996-06-30  Hrvoje Niksic  <hniksic@srce.hr>
9482
9483         * ftp.c (ftp_loop): Call ftp_index on empty file names, if not
9484         recursive.
9485
9486         * html.c (ftp_index): Fixed to work. Beautified the output.
9487
9488         * ftp.c (ftp_retrieve_glob): Another argument to control whether
9489         globbing is to be used.
9490         (ftp_retrieve_list): Compare the time-stamps of local and remote
9491         files to determine whether to download.
9492
9493 1996-06-29  Hrvoje Niksic  <hniksic@srce.hr>
9494
9495         * ftp.c (rel_constr): New function.
9496
9497         * retr.c (retrieve_from_file): Check for text/html before
9498         retrieving recursively.
9499
9500         * main.c (main): Check whether the file is HTML before going into
9501         recursive HTML retrieving.
9502
9503         * ftp.c (ftp_retrieve_list): Manage directories.
9504         (ftp_retrieve_glob): Pass all the file-types to ftp_retrieve_list.
9505         (ftp_1fl_loop): Fixed a bug that caused con->com to be incorrectly
9506         initialized, causing bugchecks in getftp to fail.
9507
9508         * configure.in: Check for symlink.
9509
9510         * ftp.c (ftp_retrieve_list): Added support for symlinks.
9511
9512         * version.c: "Released" 1.4b10.
9513
9514         * atotm.c (atotm): Redeclared as time_t.
9515
9516         * init.c: New variable "timestamping".
9517
9518         * main.c (main): New option 'N'.
9519
9520         * http.c (hgetlocation): Case-insensitive match.
9521         (hgetmodified): New function.
9522         (http_loop): Implement time-stamping.
9523
9524 1996-06-28  Hrvoje Niksic  <hniksic@srce.hr>
9525
9526         * version.c: Changed version to 1.4b10
9527
9528         * atotm.c: New file, from phttpd.
9529
9530         * options.h (struct options): New parameter timestamping.
9531
9532         * version.c: 1.4b9 "released".
9533
9534         * recur.c (recursive_retrieve): Used linked list (ulist) for
9535         faster storing of URLs.
9536
9537         * url.c (get_urls_html): Removed the old kludge with comparing the
9538         outputs of htmlfindurl and findurl.
9539         (get_urls_html): Added better protocol support here.
9540         (create_hash): Removed, as well as add_hash and in_hash.
9541         (addslist): New function.
9542         (in_slist): ditto
9543
9544         * version.c: Released 1.4b8, changed version to b9.
9545
9546 1996-06-27  Hrvoje Niksic  <hniksic@srce.hr>
9547
9548         * ftp.c (freefileinfo): New function.
9549         (delelement): New function.
9550
9551         * everywhere: GPL!
9552
9553         * ftp.c (ftp_loop): Use ccon.
9554         (ftp_retrieve_glob): Likewise.
9555
9556         * ftp.h: Define ccon, to define status of control connection.
9557
9558         * ftp.c (ftp_get_listing): New function.
9559         (ftp_retrieve_more): New function.
9560         (ftp_retrieve_glob): New function.
9561
9562 1996-06-25  Hrvoje Niksic  <hniksic@srce.hr>
9563
9564         * configure.in: Removed the search for cuserid().
9565
9566         * init.c (getmode): Renamed to getperms.
9567
9568 1996-06-24  Hrvoje Niksic  <hniksic@srce.hr>
9569
9570         * version.c: New version.
9571
9572         * main.c (hangup): New function, that handles hangup. Hangup
9573         signal now causes geturl to stop writing on stdout, and to write
9574         to a log file.
9575
9576         * ftp.c (getftp): "Released" 1.4b7.
9577
9578         * html.c (htmlfindurl): Ignore everything inside <head>...</head>.
9579         (ftp_index): Use fileinfo/urlinfo.
9580
9581         * ftp-unix.c (ftp_parse_ls): New function.
9582         (symperms): New function.
9583
9584         * ftp.c (ftp_1fl_loop): New function, to handle 1-file loops.
9585
9586         * retr.c (retrieve_url): Added FTP support.
9587
9588 1996-06-23  Hrvoje Niksic  <hniksic@srce.hr>
9589
9590         * geturl.h: Removed NOTFTP2HTML enum.
9591         Added DO_LOGIN, DO_CWD and DO_LIST. LIST_ONLY is obsolete.
9592
9593         * ftp.c (getftp): Resynched with urlinfo.
9594         (getftp): Removed HMTL-ization of index.html from getftp.
9595
9596         * version.c: 1.4b6 "released".
9597
9598         * options.h (options): New struct, to keep options in.
9599
9600         * http.c (http_loop,gethttp): Synched with proxy.
9601
9602         * retr.c (retrieve_url): Implemented proxy retrieval.
9603
9604         * main.c (main): Use retrieve_from_file.
9605
9606 1996-06-22  Hrvoje Niksic  <hniksic@srce.hr>
9607
9608         * retr.c (retrieve_from_file): New function.
9609
9610         * url.c (parseurl): Modified to return URLOK if all OK. Protocol
9611         can be found in u->proto.
9612
9613         * ftp.c (ftp_response): Fixed to accept multi-line responses as
9614         per RFC 959.
9615
9616         * recr.c (recursive_retrieve): Take newloc from retrieve_url.
9617
9618         * url.c (mymkdir): Removed the file of the same name, if one
9619         exists.
9620         (isfile): New function.
9621         (mkstruct): Fixed the '/' glitches.
9622         (path_simplify): Hacked to treat something/.. correctly.
9623
9624 1996-06-21  Hrvoje Niksic  <hniksic@srce.hr>
9625
9626         * http.c (gethttp): Close the socket after error in headers.
9627         (http_loop): HEOF no longer a fatal header.
9628
9629         * loop.c (retrieve_url): When dt is NULL, do not modify it. This
9630         simplifies the syntax of calling retrieve_url.
9631
9632         * recr.c (recursive_retrieve): Modified to use get_urls_html.
9633
9634         * url.c (get_urls_file): New function.
9635         (get_urls_html): New function.
9636
9637         * recr.c (recursive_retrieve): Patched up to conform to the
9638         standards.
9639
9640         * http.c (gethttp): Synched with the rest...
9641         (gethttp): Treat only CONREFUSED specially, with connection
9642         errors.
9643
9644         * init.c,geturl.1,http.c (http_loop): Removed kill_error.
9645
9646 1996-06-20  Hrvoje Niksic  <hniksic@srce.hr>
9647
9648         * http.c (http_loop): New function.
9649
9650         * loop.c: Removed *lots* of stuff from retrieve_url.
9651
9652         * url.c (parseurl): Changed to work with urlinfo. Integrated
9653         username finding and path parsing.
9654         (newurl): New function.
9655         (freeurl): New function.
9656         (mkstruct): Removed the old bogosities, made it urlinfo-compliant.
9657         (url_filename): Likewise.
9658         (path_simplify): Accept relative paths too.
9659         (opt_url): Made urlinfo-compliant, removed bogosities.
9660         (path_simplify): Expanded to accept relative paths.
9661         (str_url): A replacement for hide_url
9662         (decode_string): Fixed a bug that caused malfunctioning when
9663         encountering an illegal %.. combination.
9664         (opt_url): Removed the argument. Dot-optimizations are now default.
9665
9666         * nmalloc.c (strdupdelim): New function.
9667
9668         * url.h: Added the urlinfo structure
9669
9670 1996-06-19  Hrvoje Niksic  <hniksic@srce.hr>
9671
9672         * url.c (hide_url): Thrown out the protocol assertion. Do not
9673         change the URL if the protocol if not recognized.
9674         (findurl): Put continue instead of break.
9675
9676 1996-06-18  Hrvoje Niksic  <hniksic@srce.hr>
9677
9678         * sample.geturlrc: Changed the defaults to be commented out and
9679         harmless (previous defaults caused pains if copied to
9680         ~/.geturlrc).
9681
9682         * http.c (gethttp): Print the HTTP request in debug mode.
9683
9684         * connect.c (iread): Added EINTR check loop to select-ing
9685         too. EINTR is now correctly handled with select().
9686
9687         * TODO: new file
9688
9689 1996-05-07  Hrvoje Niksic  <hniksic@srce.hr>
9690
9691         * host.c (same_host): Made the function a little bit more
9692         intelligent regarding diversified URL syntaxes.
9693
9694         * url.c (skip_url): Spaces are now skipped after URL:
9695
9696         * Released 1.3.1 with the patch to prevent crashing when sending
9697         NULL to robot* functions and the patch to compile "out of the box"
9698         on AIX.
9699
9700         * recr.c (recursive_retrieve): Added checking whether this_url is
9701         NULL when calling the robot functions.
9702
9703         * ChangeLog: New file.