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