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