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