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