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