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