]> sjero.net Git - wget/blob - src/ChangeLog
PATH_MAX from sys/param.h, when not available from limits.h.
[wget] / src / ChangeLog
1 2010-01-09  Jeremy Olexa  <darkside@gentoo.org>  (tiny change)
2
3         * init.c: Deal with systems which provide PATH_MAX in
4         sys/param.h rather than limits.h.
5
6 2009-10-09  Steven Schweda  <sms@antinode.info>
7
8         * utils.c: Added characters " : \ | to the list of normal
9         caret-escaped (ODS5) characters in the char_prop[] table.
10
11 2009-09-22  Arvind Jamuna Dixit  <ardsrk@gmail.com>
12
13         * http.c (extract_param, parse_content_disposition): Support
14         RFC 2231 while parsing Content-Disposition header
15
16 2009-10-24  Petr Pisar  <petr.pisar@atlas.cz>
17
18         * openssl.c: Implement support for (multiple) subjectAltNames in
19         X509 certificates, not just the commonName.
20
21 2009-10-09  Micah Cowan  <micah@cowan.name>
22
23         * main.c: Fix declaration of compiled_features.
24
25         * build_info.c.in: Adapt to new input format. Added a check for
26         large-file support. Replaced the "openssl" and "gnutls"
27         advertisements with a single "ssl/foo" advertisement.
28
29 2009-09-30  Micah Cowan  <micah@cowan.name>
30
31         * sysdep.h: Unconditionally include stdbool.h (gnulib has it for
32         systems that don't supply it.)
33
34         * vms.c: Added functions vms_basename(), used to extract the
35         bare executable name from argv[0], and vms_getpass(), a
36         VMS-specific replacement for GNU getpass().
37
38          vms.c: Added global string constants: compilation_string
39         (NULL), link_string (NULL), and version_string (real).
40
41 2009-09-24  Micah Cowan  <micah@cowan.name>
42
43         * vms.c: Moved from vms/vms.c.
44
45         * sysdep.h: Use proper prototypes for snprintf, vsnprintf (thanks
46         to Steven Schweda).
47
48 2009-09-24  Steven Schweda  <sms@antinode.info>
49
50         * main.c (print_version): Remove VMS-conditional build info
51         string; the new VMS builders use OS_TYPE.
52
53         * ftp.c (getftp): Fix accidental use of target -> targ.
54
55 2009-09-24  Micah Cowan  <micah@cowan.name>
56
57         * host.c (host_errstr): host_errstr should return const char *.
58
59 2009-09-22  Micah Cowan  <micah@cowan.name>
60
61         * Makefile.am (version.c): Explicitly tell Mercurial where the
62         top-source repository should be, so it doesn't accidentally use
63         the repository for a containing directory (for instance, if the
64         user's home directory is managed by a Mercurial repo). Also
65         ensures we find the repository, even if the build directory is
66         outside the source directory.
67
68         * wget.h: define WINDOWS if _WIN32 or __WIN32__ is defined, but
69         not __CYGWIN__.
70
71         * mswindows.c (xsleep): Check for availability of the sleep
72         function, in addition to the usleep function.
73         (get_winsock_error, windows_strerror): Removed (gnulib already
74         supplies this functionality).
75
76         * mswindows.h [NEED_GAI_STRERROR]: define gai_strerror
77         to (gnulib's) strerror, rather than windows_strerror. Removed
78         error macro definitions provided by gnulib.
79         (windows_strerror): Removed (gnulib already supplies this
80         functionality).
81
82         * host.c: Don't declare h_errno when building on Windows.
83
84         * Makefile.am (LIBS): Added @W32LIBS@.
85         (EXTRA_wget_SOURCES): Removed (it's in LIBOBJ now).
86         (version.c): Removed dependency on $(LDADD), since it may include
87         dependencies that are not part of the Wget sources (-lwsock32, for
88         instance).
89
90         * openssl.c (ssl_check_certificate): Avoid reusing the same buffer
91         space for successive quoted arguments. Thanks to Steven Schweda
92         for pointing out the problem.
93
94 2009-09-21  Micah Cowan  <micah@cowan.name>
95
96         * progress.c (update_speed_ring): "the the" -> "the".
97
98         * css-url.c, iri.c, mswindows.c: Removed assert.h inclusion (not
99         using it).
100
101 2009-09-11  Steven Schweda  <sms@antinode.info>
102
103         * utils.c, utils.h (fopen_excl): Make second argument an int,
104         rather than a bool (so it can handle the appropriate VMS version
105         of the flag).
106
107         * main.c (print_version): Don't print LOCALEDIR unless NLS is
108         enabled.
109
110         * http.c (gethttp): Pass FOPEN_BIN_FLAG, instead of true.
111
112         * ftp.c (ftp_retrieve_glob): Cast strcmp to assign to cmp, for a
113         silly HP build environment.
114
115 2009-09-08  Steven Schubiger  <stsc@member.fsf.org>
116
117         * main.c, init.c: Mark the --preserve-permissions and 
118         --html-extension option as deprecated.
119
120 2009-09-06  Micah Cowan  <micah@cowan.name>
121
122         * ftp.c (getftp, ftp_loop_internal): Separate "len" input/output
123         parameter (with different meanings for input and output), into two
124         separate parameters, one input (passed_expected_bytes) and one
125         output (qtyread). Fixes bug #26870.
126
127 2009-09-05  Steven Schubiger  <stsc@member.fsf.org>
128
129         * retr.h: Declare set_local_file() to avoid build warnings.
130
131 2009-09-05  Gisle Vanem  <gvanem@broadpark.no>
132
133         * connect.c, init.c, main.c, openssl.c, options.h:  Replace
134         "ifdef MSDOS" with "ifdef USE_WATT32" since DOS-targets in fact
135         use the Watt-32 tcp/ip stack.
136
137 2009-09-04  Micah Cowan  <micah@cowan.name>
138
139         * Makefile.am: Move build_info.c to wget_SOURCES from
140         nodist_wget_SOURCES, reduce dependencies, and invoke build_info.pl
141         in its new home, $(top_srcdir)/build-aux.
142
143 2009-09-03  Micah Cowan  <micah@cowan.name>
144
145         * ftp-ls.c (ftp_parse_vms_ls): Replace use of localtime_r with
146         localtime, as not all platforms have localtime_r.
147
148         * Makefile.am (wget_SOURCES): Rearranged some of the file order,
149         so .c files and .h files are apart. Added gettext.h, so that it
150         shows up in the dist.
151
152 2009-09-02  Micah Cowan  <micah@cowan.name>
153
154         * gettext.h: Refreshed from gettext 0.17.
155
156         * test.c: Added definition of program_name variable, required by
157         lib/error.c (libgnu.a). Doesn't cause problems until you try to
158         build on a non-GNU system...
159
160         * build_info.c.in: Removed useless "+gettext" feature ad.
161
162 2009-08-29  Steven Schubiger  <stsc@member.fsf.org>
163
164         * convert.c (local_quote_string): Percent-encode semicolons
165         in local file strings.
166
167 2009-08-27  Micah Cowan  <micah@cowan.name>
168
169         * wget.h (uerr_t): added new VERIFCERTERR code for SSL certificate
170         problems. Marked exit codes that are defined but never used (at
171         least, the ones I could find).
172
173         * retr.c, retr.h (retrieve_url): Added a new boolean argument to
174         determine whether an exit status should be recorded.
175         (retrieve_from_file): Adjust to new retrieve_url signature.
176
177         * res.c (res_retrieve_file): Don't have retrieve_url record an
178         exit status for robots.txt.
179
180         * recur.c (retrieve_tree): Adjust to new retrieve_url signature.
181
182         * main.c (main): Use the exit status stored by retrieve_url.
183
184         * http.c (gethttp): Distinguish certificate verification problems
185         from SSL connection issues.
186         (http_loop): Handle newly-created VERIFCERTERR error code.
187
188         * exits.c, exits.h: Newly added.
189         
190         * Makefile.am (wget_SOURCES): Add exits.c and exits.h.
191
192 2009-08-27  Micah Cowan  <micah@cowan.name>
193
194         * http.c (gethttp): Make sure Wget heeds cookies when they
195         are sent with a 401 response; or any other sort of response for
196         that matter (#26775).
197
198 2009-08-19  Micah Cowan  <micah@cowan.name>
199
200         * openssl.c (ssl_check_certificate): Only warn about an attack if
201         the hostname would otherwise have matched. Also some formatting
202         cleanup.
203
204 2009-08-19  Joao Ferreira  <joao@joaoff.com>
205
206         * openssl.c (ssl_check_certificate): Detect embedded NUL
207         characters in the SSL certificate common name.
208
209 2009-08-17  Tony Lewis  <tlewis@exelana.com>
210
211         * http.c (gethttp): Ensure that we parse Content-Length before we
212         attempt to refer to its value. Without this fix, NTLM support was
213         completely buggered. #27192
214
215 2009-08-09  Michael Baeuerle  <michael.baeuerle@gmx.net>
216
217         * ftp.c: #include <strings.h> for strcasecmp.
218
219 2009-07-28  Micah Cowan  <micah@cowan.name>
220
221         * main.c (option_data): Rename --html-extension to
222         --adjust-extension.
223         (print_help): Ditto.
224         
225         * options.h (struct option): Rename html_extension to
226         adjust_extension.
227         * http.c (gethttp): Ditto.
228         * convert.c (local_quote_string): Ditto.
229
230         * init.c (commands): Add "adjustextension", and reflect rename
231         change for opt.adjust_extension, for both "adjustextension" and
232         "htmlextension".
233
234 2009-07-27  Micah Cowan  <micah@cowan.name>
235
236         * options.h (struct options): Added restrict_files_nonascii
237         boolean field.
238
239         * url.c (FILE_CHAR_TEST): Add check for chars outside the ASCII
240         range.
241
242         * init.c (defaults): Add restrict_files_nonascii to initialization.
243         (cmd_spec_restrict_file_names): Allow parsing of "ascii" keyword.
244
245 2009-07-27  Marcel Telka  <marcel@telka.sk>
246
247         * iri.c (do_conversion): Typo: invalide -> invalid
248
249 2009-07-27  Petr Pisar  <petr.pisar@atlas.cz>
250
251         * main.c (print_help): Fixed a couple typos.
252
253 2009-07-26  Micah Cowan  <micah@cowan.name>
254
255         * main.c (option_data): Rename --locale option to --local-encoding
256         (print_help): Document --no-iri, --local-encoding, and
257         --remote-encoding, within usage message. Remove defunct
258         --preserve-permissions.
259
260 2009-07-23  Micah Cowan  <micah@cowan.name>
261
262         * progress.c (get_eta): Change "Translation note" in comment to
263         "TRANSLATORS", so it actually appears in wget.pot.
264
265 2009-07-06  Micah Cowan  <micah@cowan.name>
266
267         * main.c (print_help): Improve documentation of --base.
268
269 2009-07-05  Micah Cowan  <micah@cowan.name>
270
271         * html-url.c (tag_handle_meta): Handle meta name="robots"
272         properly: deal with whitespace, commas after...
273
274         * netrc.c (parse_netrc): Rename local-scope variable "quote" to
275         "qmark", to avoid conflict with the function name.
276
277 2009-07-05  Petr Pisar  <petr.pisar@atlas.cz>
278
279         * main.c (print_version): Mark initial line for translation, along
280         with (env), (user), and (system). Change copyright year to 2009.
281
282         * http.c (http_loop): Space after colon.
283
284         * gnutls.c (ssl_check_certificate): Use quote function, rather
285         than explicit quotes.
286
287 2009-07-05  Micah Cowan  <micah@cowan.name>
288
289         * Makefile.am (version.c): Add dependency on configure.ac.
290
291         * iri.c: Mark some strings for translation.
292
293 2009-07-04  Steven Schweda  <sms@antinode.info>
294
295         * wget.h (ORIG_SFX): Macro added, to supply an alternative "_orig"
296         suffix on VMS.
297         
298         * connect.c, host.c, host.h, main.c: Include "vms_ip.h" rather
299         than <netdb.h> on VMS systems.
300
301         * convert.c (write_backup_file): Use "_orig" rather than ".orig"
302         on VMS.
303
304         * ftp-basic.c (ftp_list): Don't use LIST -a on VMS servers.
305
306         * ftp.c [__VMS]: Include "vms.h"
307         * ftp.c (getftp): Disable some unhelpful "for VMS" code. Pass the
308         OS type to ftp_list.
309         (getftp) [__VMS]: Alter the filename as required, and invoke fopen
310         with extra optional arguments.
311         (ftp_retrieve_list): Set permissions before setting the times.
312
313         * ftp-ls.c [__VMS]: Various improvements.
314
315         * http.c (SET_USER_AGENT): Added. Include operating-system info in
316         the User-Agent header.
317         (gethttp): Use ORIG_SFX macro.
318         (gethttp) [__VMS]: invoke fopen with extra arguments to
319         communicate file type.
320         (http_loop): Add cast to time_t.
321
322         * init.c (wgetrc_user_file_name) [__VMS]: Adjustments for where to
323         find the .wgetrc.
324
325         * log.c: Adjustments to improve handling of log files on VMS.
326
327         * main.c [__VMS]: Added --ftp-stmlf option (and associated
328         documentation). Adjust description of backup-suffixes, as they now
329         differ for VMS.
330         (print_help, print_version): Include OS type in version
331         information.
332         (main) [__VMS]: Invoke fopen with extra options, to specify file
333         type information.
334
335         * netrc.c (search_netrc) [__VMS]: Fix .netrc-finding.
336
337         * openssl.c, openssl.h (ssl_connect_wget): Renamed from ssl_connect.
338
339         * options.h (struct options): Add ftp_stmlf field.
340
341         * retr.c (write_data) [__VMS]: Avoid fflush.
342
343         * url.c [__VMS]: Include vms.h.
344         * url.c (url_file_name) [__VMS]: Handle naming as required for VMS.
345
346         * utils.c [__VMS]: Include vms.h. Various added facilities for VMS
347         needs.
348
349 2009-07-04  Micah Cowan  <micah@cowan.name>
350
351         * main.c (print_version): Allow localization of the version-info
352         labels, eschew attempts at alignment (which is complicated when
353         handling translated strings), and avoid using printf() with
354         variable-stored format strings that lack conversion
355         specifications.
356         (format_and_print_line): For similar reasons, don't calculate
357         line-continuation tabulation based on the number of bytes in a
358         string.
359
360 2009-07-04  Steven Schubiger  <stsc@member.fsf.org>
361
362         * url.c (url_parse): If an URL scheme is invalid, distinguish
363         between an unsupported or missing scheme.
364
365         * url.c: Add a "missing scheme" entry to parse_errors.
366
367 2009-07-03  Micah Cowan  <micah@cowan.name>
368
369         * iri.h (iri_dup): Provide macro definition for when IRIs are
370         disabled.
371
372         * Makefile.am (LIBS): Added @LIBICONV@.
373         (wget_SOURCES): Added iri.h.
374         (EXTRA_wget_SOURCES): Added iri.c, so it gets packaged even if IRI
375         support was disabled.
376
377 2009-07-02  Micah Cowan  <micah@cowan.name>
378
379         * recur.c (url_enqueue): Quote enqueue/dequeue debug messages.
380
381         * html-url.c (append_url): Change "merge()" quoting style from
382         locale_quoting_style to escape_quoting_style.
383
384 2009-07-01  Micah Cowan  <micah@cowan.name>
385
386         * retr.c (retrieve_url): Use the existing "redirect" label,
387         instead of superfluous "second_try". Removed no-longer-accurate
388         debug statement. Use the "newloc" parameter to store the fallback
389         URL, when IRI version was rejected.
390
391         * recur.c (retrieve_tree): Always use the parsed URL for tracking
392         the Referer, since that's the one we actually requested (if
393         there's a difference in terms of percent-encodings and such).
394
395 2009-07-01  Steven Schubiger  <stsc@member.fsf.org>
396
397         * Makefile.am: Add a rule to generate build_info.c and list
398         the build_info.c.in file in EXTRA_DIST. Adjust elsewhere
399         where needed.
400         
401         * build_info.c: Remove this static source file.
402         
403         * build_info.c.in: Data for generation of build_info.c.
404
405 2009-06-29  Micah Cowan  <micah@cowan.name>
406
407         * html-url.c (append_url): Quote some more arguments that might
408         contain characters that are inappropriate to display for the
409         current locale.
410
411         * retr.c (retrieve_from_file): Be sure to pass iri information
412         when parsing an input-fle url, and be sure to hand a clean iri
413         struct, off to retrieve_tree and retrieve_url.
414
415         * iri.c, iri.h (iri_dup): Added.
416
417         * retr.c (retrieve_url): Re-parse for IRI fallback.
418
419         * main.c (main): Set up iri before the url_parse invocation (so we
420         can use it).
421
422 2009-06-20  Jay Krell  <jay.krell@cornell.edu>
423
424         * sysdep.h (_ALL_SOURCE): (small change) Define the _ALL_SOURCE
425         macro on INTERIX systems. (I switched the location from ftp.c to
426         sysdep.h --mjc)
427
428 2009-06-15  Micah Cowan  <micah@cowan.name>
429
430         * ftp.c (getftp): If we can't accept the connection, return
431         CONERROR, not whatever the contents of err happens to be. Fixes
432         bug #25015.
433
434         * retr.c (fd_read_body): Make both args to progress_create
435         consistent, resulting in an accurate progress display. Fixes bug
436         #24948.
437
438 2009-06-14  Micah Cowan  <micah@cowan.name>
439
440         * Makefile.am (wget_SOURCES): css-tokens.h needs to ship with
441         dist, too.
442
443 2009-06-13  Micah Cowan  <micah@cowan.name>
444
445         * init.c: Rename setval_internal_wrapper to setval_internal_tilde,
446         ensure we don't "replace" the tilde unless it's actually
447         present. Clean up some minor GNU style issues.
448
449 2009-06-13  Julien Pichon  <julienpichon7@gmail.com>
450
451         * init.c: Handle tilde-expansion in wgetrc commands, without
452         resorting to setting/unsetting globals to change behavior in one
453         call location.
454
455 2009-06-12  Micah Cowan  <micah@cowan.name>
456
457         * host.c: Include <sys/types.h> before <sys/socket.h>. Not
458         required by POSIX any more, but some older systems (such as
459         FreeBSD 4.1) still need it, and it doesn't seem like it could
460         hurt...
461
462         * build_info.c (library): Handle "https" as a feature in its own
463         right, apart from "gnutls" and "openssl".
464
465         * host.c: Declare h_errno if no declaration is provided. Idea
466         thanks to Maciej W. Rozycki.
467
468 2009-06-11  Xin Zou  <zouxin2008@gmail.com>     
469         
470         * http.c (gethttp): Fix some memory leaks.
471         
472 2009-06-11  Micah Cowan  <micah@cowan.name>
473
474         * http.c (http_atotm): Handle potential for setlocale's return
475         value to be static storage. Thanks to Benjamin Wolsey
476         <bwy@benjaminwolsey.de>.
477
478         * sysdep.h: Need NAMESPACE_TWEAKS on non-Linux glibc-based
479         systems, too. Thanks to Robert Millan.
480
481 2009-05-28  Steven Schubiger  <stsc@member.fsf.org>
482
483         * ftp.c (ftp_get_listing): Update the "listing file" 
484         string after calling ftp_loop_internal().
485
486 2009-05-27  Steven Schubiger  <stsc@member.fsf.org>
487
488         * ftp.c (ftp_get_listing): Duplicate the "listing file"
489         string to avoid memory corruption when FOPEN_EXCL_ERR is
490         encountered.
491
492 2009-05-17  Steven Schubiger  <stsc@member.fsf.org>
493
494         * progress.c (eta_to_human_short): Fix the remaining hours
495         to be displayed. Spotted by Tadeu Martins (#26411).
496
497 2009-04-24  Micah Cowan  <micah@cowan.name>
498
499         * hash.c: Change stdint.h inclusion to use HAVE_STDINT_H, not C99
500         check.
501
502         * connect.c: stdint.h inclusion added.
503
504         Thanks to Markus Duft <mduft@gentoo.org> for a similar patch.
505         
506 2009-04-20  Micah Cowan  <micah@cowan.name>
507
508         * Makefile.am (version.c): Fix unportable use of "echo -n".
509
510 2009-04-13  Steven Schubiger  <stsc@member.fsf.org>
511
512         * ftp.c (ftp_retrieve_list): Move the duplicated code that
513         determines the local file to a function.
514         
515         * http.c (http_loop): Likewise.
516
517         * retr.c (set_local_file): New function.
518
519 2009-04-11  Steven Schubiger  <stsc@member.fsf.org>
520
521         * init.c (initialize): Run a custom SYSTEM_WGETRC when 
522         provided as an environment variable.
523
524 2009-02-27  Gisle Vanem  <gvanem@broadpark.no>
525
526         * main.c (main): "freopen (NULL,.." causes an assertion in MSVC
527         debug-mode.  I.e. NULL isn't legal. But the "CONOUT$" device works
528         fine.
529
530 2009-02-27  Steven Schubiger  <stsc@member.fsf.org>
531
532         * ftp.c (ftp_loop_internal): Don't claim for FTP retrievals
533         when writing to standard output either that the document
534         has been saved. Addresses bug #20520 again.
535
536 2009-02-21  Steven Schubiger  <stsc@member.fsf.org>
537
538         * http.c (http_loop): When a document is written to 
539         standard output, don't claim it has been saved to a file.
540         Addresses bug #20520.
541
542 2009-02-18  Steven Schubiger  <stsc@members.fsf.org>
543
544         * recur.h: Remove the dangling declaration for recursive_cleanup().
545
546 2009-02-01  Gerardo E. Gidoni  <gerel@gnu.org>
547
548         * main.c, recur.c, recur.h, res.c, retr.c, retr.h: restructured code to
549         avoid multiple 'url_parse' calls.
550
551 2008-11-13  Micah Cowan  <micah@cowan.name>
552
553         * http.c (gethttp): Don't do anything when content-length >= our
554         requested range.
555
556 2008-11-27  Saint Xavier  <wget@sxav.eu>
557
558         * http.c (gethttp): Move authentication code before filename
559         allocation avoiding fallbacking on default filename because
560         "Content-Disposition" header wasn't present before authentcation
561         has been completed. Fixes bug #24862.
562
563 2008-11-16  Steven Schubiger  <stsc@members.fsf.org>
564
565         * main.c: Declare and initialize the numurls counter.
566
567         * ftp.c, http.c: Make the counter visible here and use it.
568         
569         * options.h: Remove old declaration from options struct.
570
571 2008-11-15  Steven Schubiger  <stsc@members.fsf.org>
572
573         * init.c (defaults): Set default waitretry value.
574
575 2008-11-14  Steven Schubiger  <stsc@members.fsf.org>
576
577         * main.c (format_and_print_line): Use a custom format 
578         string for printing leading spaces.
579
580 2008-11-12  Micah Cowan  <micah@cowan.name>
581
582         * ftp-ls.c (ftp_index): HTML-escape dir name in title, h1, a:href.
583
584 2008-11-12  Alexander Belopolsky  <alexander.belopolsky@gmail.com>
585
586         * url.c, url.h (url_escape_unsafe_and_reserved): Added.
587
588         * ftp-ls.c (ftp_index): URL-escape, rather than HTML-escape, the
589         filename appearing in the link.
590
591 2008-11-12  Steven Schubiger  <stsc@members.fsf.org>
592
593         * main.c (print_version): Hand the relevant
594         xstrdup/xfree calls back to format_and_print_line().
595
596 2008-11-11  Steven Schubiger  <stsc@members.fsf.org>
597
598         * main.c (format_and_print_line): Move both the memory
599         allocating and freeing bits upwards to print_version().
600
601 2008-11-10  Saint Xavier  <wget@sxav.eu>
602
603         * http.c: Make --auth-no-challenge works with user:pass@ in URLs.
604
605 2008-11-05  Micah Cowan  <micah@cowan.name>
606
607         * ftp.c (print_length): Should print humanized "size remaining"
608         only when it's at least 1k.
609
610 2008-10-31  Micah Cowan  <micah@cowan.name>
611
612         * main.c (print_version): Add information about the mailing list.
613
614 2008-10-31  Alexander Drozdov  <dzal_mail@mtu-net.ru>
615
616         * retr.c (fd_read_hunk): Make assert deal with maxsize == 0.
617
618         * ftp-ls.c (clean_line): Prevent underflow on empty lines.
619
620 2008-10-26  Gisle Vanem  <gvanem@broadpark.no>
621
622         * main.c (format_and_print_line): Put variables on top of
623         blocks (not all compilers are C99). Add an extra '\n' if
624         SYSTEM_WGETRC isn't defined and printed.
625
626 2008-09-09  Gisle Vanem  <gvanem@broadpark.no>
627
628         * url.c (url_error): Use aprintf, not asprintf.
629         
630 2008-09-09  Micah Cowan  <micah@cowan.name>
631
632         * init.c (home_dir): Save the calculated value for home,
633         to avoid duplicated work on repeated calls.
634         (wgetrc_file_name) [WINDOWS]: Define and initialize home var.
635
636         * build_info.c, main.c: Remove unnecessary extern vars
637         system_wgetrc and locale_dir.
638
639         * main.c: Define program_name for lib/error.c.
640
641 2008-09-02  Gisle Vanem  <gvanem@broadpark.no>
642
643         * mswindows.h: Must ensure <stdio.h> is included before
644         we redefine ?vsnprintf().
645
646 2008-08-08  Steven Schubiger  <stsc@members.fsf.org>
647
648         * main.c, utils.h: Removed some dead conditional DEBUG_MALLOC code.
649
650 2008-08-03  Micah Cowan  <micah@cowan.name>
651
652         * main.c (print_help): Added --default-page.
653
654 2008-08-01  Joao Ferreira  <joao@joaoff.com>
655
656         * init.c, main.c, options.h, url.c: Added option --default-page
657         to support alternative default names for index.html
658
659 2008-08-03  Micah Cowan  <micah@cowan.name>
660
661         * build_info.c, css-url.c: #include wget.h, not config.h.
662
663 2008-08-03  Steven Schubiger  <stsc@members.fsf.org>
664
665         * url.c, url.h (url_error): Better messages for unsupported
666         schemes, especially https.
667
668         * html-url.c, recur.c, retr.c: Adjust to new url_error
669         invocation, and free result.
670
671 2008-07-17  Steven Schubiger  <stsc@members.fsf.org>
672
673         * retr.c (retrieve_from_file): When given an URL as input file,
674         use it as baseref if none was specified and treat the input file
675         as HTML if its content type is text/html.
676
677         * init.c (cleanup): Free the memory associated with the base
678         option (when DEBUG_MALLOC is defined).
679
680 2008-07-02  Xavier Saint  <wget@sxav.eu>
681
682         * iri.c, iri.h  : New function idn_decode() to decode ASCII
683         encoded hostname to the locale.
684
685         * host.c : Show hostname to be resolved both in locale and
686         ASCII encoded.
687
688 2008-06-28  Steven Schubiger  <stsc@members.fsf.org>
689
690         * retr.c (retrieve_from_file): Allow for reading the links from
691         an external file (HTTP/FTP).
692
693 2008-06-26  Xavier Saint  <wget@sxav.eu>
694
695         * iri.c, iri.h : New functions locale_to_utf8() and
696         idn_encode() adding basic capabilities of IRI/IDN.
697
698         * url.c : Convert URLs from locale to UTF-8 allowing a basic
699         support of IRI/IDN
700
701 2008-06-25  Steven Schubiger  <stsc@members.fsf.org>
702
703         * ftp.c (getftp): When spidering a FTP URL, emit a diagnostic
704         message if the remote file exists.
705
706 2008-06-24  Steven Schubiger  <stsc@members.fsf.org>
707
708         * http.c (http_loop): Replace escnonprint() occurence with
709         a quotearg_style() call.
710
711 2008-06-24  Micah Cowan  <micah@cowan.name>
712
713         * ftp-ls.c (ftp_index): Don't assume time_t* is compatible with
714         long*. Fixes crash on Windows, and probably other systems.
715
716 2008-06-22  Steven Schubiger  <stsc@members.fsf.org>
717
718         * http.c: Explicitly initialize and deallocate the message
719         string used by the -nv --spider functionality.
720
721 2008-06-22  Steven Schubiger  <schubiger@gmail.com>
722
723         * http.c: Make -nv --spider include the file's name when it
724         exists.
725
726 2008-06-22  Micah Cowan  <micah@cowan.name>
727
728         * Makefile.am (version.c): Fixed version string invocation so it
729         once again can't result in unterminated strings, made all the
730         string vars pointers-to-const, and moved line lengths
731         below 80 (in Makefile.am, not in version.c).
732
733 2008-06-19  Xavier Saint  <wget@sxav.eu>
734
735         * iri.c, iri.h : New function check_encoding_name() as
736         a preliminary encoding name check.
737
738         * main.c, iri.c : Make use of check_encoding_name().
739
740 2008-06-19  Xavier Saint  <wget@sxav.eu>
741
742         * iri.c : Include missing stringprep.h file and add a
743         cast.
744
745         * init.c : set a default initial value for opt.enable_iri,
746         opt.locale and opt.encoding_remote.
747
748 2008-06-19  Xavier Saint  <wget@sxav.eu>
749
750         * iri.c, iri.h : Add a new function find_locale() to find
751         out the local system encoding.
752
753         * main.c : Make use of find_locale().
754
755 2008-06-19  Xavier Saint  <wget@sxav.eu>
756
757         * html-url.c : Add "content-type" meta tag parsing for
758         retrieving page encoding.
759
760         * iri.h : Make no-op version of parse_charset() return
761         NULL.
762
763 2008-06-16  Micah Cowan  <micah@cowan.name>
764
765         * http.c (http_loop): When hstat.len is higher than the
766         successfully completed content's length, but it's because we
767         _set_ it that way, don't abort.
768
769 2008-06-14  Xavier Saint  <wget@sxav.eu>
770
771         * iri.c, iri.h : New files.
772
773         * Makefile.am : Add files iri.h and conditional iri.c.
774
775         * build_info.c : Add compiled feature "iri".
776
777         * http.c : include iri.h and parse charset from Content-Type
778         header.
779
780         * init.c, main.c, options.h : if an options isn't supported
781         at compiled time, don't get rid off it and show a dummy
782         message instead if they are used.
783
784 2008-06-13  Micah Cowan  <micah@cowan.name>
785
786         * build_info.c: ENABLE_NTLM, not HAVE_NTLM; distinguish OpenSSL
787         from "ssl".
788
789 2008-06-13  Madhusudan Hosaagrahara <com.gmail.hrmadhu>
790
791         * Makefile.am, main.c, init.c, init.h, build_info.c: Adds build
792         information to the --version command line option. Fixes bug
793         #20636.
794
795 2008-06-01  Micah Cowan  <micah@cowan.name>
796
797         * main.c [WINDOWS]: Reopen stdout in binary mode, when -O - is
798         given.
799
800 2008-05-31 Micah Cowan  <micah@cowan.name>
801
802         * html-url.c, http.c: Avoid casts in a couple spots.
803
804 2008-05-30 Henri Häkkinen  <henux@users.sourceforge.net>
805
806         * cookies.c, ftp-basic.c, hash.c, html-url.c, http-ntlm.c, http.c,
807         init.c, log.c, main.c, progress.c, ptimer.c, spider.c, url.c,
808         utils.c: Minor changes to silence warnings when using -Wall.
809
810 2008-05-26  Steven Schubiger  <schubiger@gmail.com>
811
812         * ftp.c (getftp): Replace last remaining invocation of escnonprint
813         with gnulib quote.
814
815 2008-05-19  Micah Cowan  <micah@cowan.name>
816
817         * main.c (main): Password prompt should be done only once (not
818         once per argument), and should be done prior to the background
819         fork.
820
821 2008-05-17  Steven Schubiger  <schubiger@gmail.com>
822
823         * init.c (defaults): Set the preferred IP family to `none' by
824         default.
825
826 2008-05-17  Kenny Parnell  <k.parnell@gmail.com>
827
828         (cmd_spec_prefer_family): Initialize prefer_family to prefer_none.
829
830 2008-05-17  Micah Cowan  <micah@cowan.name>
831
832         * main.c (main): Handle Ctrl-D on command-line.
833
834 2008-05-15  Steven Schubiger  <schubiger@gmail.com>
835
836         * ftp.c (getftp): Verify that the file actually exists in FTP, by
837         checking it against the listing.
838
839 2008-05-15  Micah Cowan  <micah@cowan.name>
840
841         * main.c (prompt_for_password): Use the quote module.
842
843 2008-05-14  Micah Cowan  <micah@cowan.name>
844
845         * ftp.c (ftp_retrieve_list): Symlinks and other filenames
846         should be fully quoted.
847
848 2008-05-12  Micah Cowan  <micah@cowan.name>
849
850         * main.c (main): Downgrade "-N with -O" to a warning, and switch
851         it off to avoid confusing messages.
852
853 2008-04-30  Micah Cowan  <micah@cowan.name>
854
855         * progress.c (create_image): Fix glitch where too many spaces are
856         printed on lines that don't display the ETA, in multibyte
857         locales.
858
859 2008-04-30  Steven Schubiger  <stsc@members.fsf.org>
860
861         * main.c (main): New code that handles prompting for passwords
862         when specified explicitly via command-line option (using gnulib's
863         getpass-gnu module).
864         (main): Include the getpass header.
865
866         * init.c: Add "ask-password" to the list of recognized commands.
867
868         * options.h: Add an according boolean member to the options
869         struct.
870
871         * sysdep.h: Comment the defines __EXTENSIONS__ and _GNU_SOURCE
872         out, because they're now defined independently by config.h.
873
874 2008-04-27  Rabin Vincent  <rabin@rab.in>
875
876         * http.c (http_loop): Fix return for the case where we don't
877         download a file because of -nc.
878
879 2008-04-27  Micah Cowan  <micah@cowan.name>
880
881         * url.c (path_simplify): Go back to allowing leading ".." in
882         paths, but only for FTP URLs.
883         (test_path_simplify): Add scheme-specificness to tests, adapt for
884         mu_run_test.
885
886         * test.c (all_tests): Add test_path_simplify.
887
888         * main.c (main): Downgrade -r, -p with -O to a warning rather than
889         an error; elaborate just a bit more for other -O combination
890         cases.
891
892 2008-04-26  Micah Cowan  <micah@cowan.name>
893
894         * http.c (gethttp): Move proxy CONNECT handling to below the
895         retry_with_auth label, to deal with properly reconnecting to
896         proxies when we need to authenticate.
897
898 2008-04-25  Micah Cowan  <micah@cowan.name>
899
900         * Makefile.am: -I foo -> -Ifoo.
901
902 2008-04-24  Micah Cowan  <micah@cowan.name>
903
904         * main.c: Revised usage description of --convert-links to apply
905         to CSS as well as to HTML.
906
907 2008-04-23  Micah Cowan  <micah@cowan.name>
908
909         * utils.c (test_dir_matches_p): Added a test for the case
910         described in issue #20518.
911
912 2008-04-22  Micah Cowan  <micah@cowan.name>
913
914         * Makefile.am, css.lex, css.l: Renamed css.lex to css.l.
915         * recur.c (retrieve_tree): Fix typo to allow text/css files to
916         be parsed.
917
918 2008-04-22  Ted Mielczarek  <ted.mielczarek@gmail.com>
919
920         * css.lex, css-url.c, css-url.h: Added to implement support for
921         parsing CSS in Wget.
922         * convert.c: Convert links in CSS files, too.
923         * convert.h (convert_options): Added for options link_css_p,
924         link_expect_css.
925         * convert.h: Added prototype for new register_css function.
926         * html-parse.c: Added support for parsing element content, in
927         addition to tag starts and ends.
928         * html-parse.h (taginfo): Added delimiter fields for element
929         content.
930         * html-url.h: Added.
931         * html-url.c (append_url): No longer internal-linkage only. Now
932         takes position and size as explicit parameters.
933         * html-url.c: Use new html-url.h header, add support for
934         handling of "style" HTML attributes. Mark URIs obtained from
935         link tags with rel="stylesheet" with link_expect_css. Adapt
936         uses of append_url to supply the newly-added parameters for
937         position and size.
938         * http.c: Add detection for when the content-type is text/css;
939         and ensure that such files have the ".css" filename extension,
940         when --convert-links is active.
941         * recur.h: Remove declarations for functions found in
942         html-url.c (moved to html-url.h).
943         * recur.c: Add support for culling links from CSS files, too,
944         and tracking for when we're expecting the file to be CSS (even
945         when its content type isn't text/css).
946         * retr.c (retrieve_url): Add registration of CSS files.
947         * wget.h: Added TEXTCSS to dt flags enum.
948         * Makefile.am: Added css.lex, css-url.c, css-url.h, html-url.h
949         to wget_SOURCES.
950
951 2008-04-22  Jim Paris  <jim@jtan.com>
952
953         * openssl.c (ssl_init): Enable combined certificate/key in
954         single file (apparent regression from ~1.9). Resolves issue
955         #22767.
956
957 2008-04-22  Steven Schubiger  <schubiger@gmail.com>
958
959         * http.c (print_response_line): Changed to make responses always
960         be logged, even in --quiet mode, if --server-response was
961         specified. This is to bring http.c's handling of the situation
962         in line with ftp.c's.
963
964 2008-04-22  Pranab Shenoy  <pranab.loosinit.shenoy@gmail.com>
965
966         * init.c: Added test_commands_sorted unit test to check is
967         commands are sorted.  Fixes bug #21245.
968
969         * test.c: Added test_commands_sorted to the test suite.
970
971 2008-04-22  Rabin Vincent  <rabin@rab.in>
972
973         * ftp.c (ftp_get_listing): Only remove .listing if it has been
974         created. 
975
976 2008-04-22  Alain Guibert  <alguibert+bts@free.fr>
977
978         * test.h (mu_run_test): Move declaration before statements, for
979         C90 conformance. Fixes bug #22789.
980
981 2008-04-22  Mike Frysinger  <vapier@gentoo.org>
982
983         * Makefile.am: Move @LIBS@ after other libraries, for better
984         static-linking support. Fixes bug #22143.
985
986 2008-04-16  Steven Schubiger  <schubiger@gmail.com>
987
988         * ftp.c: Use Gnulib's quote function for printing filenames and
989         such.
990         * connect.c: Likewise.
991         * convert.c: Likewise.
992         * cookies.c: Likewise.
993         * ftp-opie.c: Likewise.
994         * gnutls.c: Likewise.
995         * init.c: Likewise.
996         * log.c: Likewise.
997         * mswindows.c: Likewise.
998         * openssl.c: Likewise.
999         * progress.c: Likewise.
1000         * recur.c: Likewise.
1001         * res.c: Likewise.
1002         * utils.c: Likewise.
1003
1004 2008-04-16  Steven Schubiger  <schubiger@gmail.com>
1005
1006         * sysdep.h: Comment the defines __EXTENSIONS__ and _GNU_SOURCE 
1007         out, because they're now defined independently by config.h.
1008
1009 2008-04-14  Steven Schubiger  <schubiger@gmail.com>
1010
1011         * http.c: Use Gnulib's quote function for printing filenames and
1012         such.
1013         * wget.h: #include "quote.h".
1014
1015 2008-04-12  Rabin Vincent  <rabin@rab.in>
1016
1017         * mswindows.c (fake_fork_child): Don't create a logfile for
1018         --background when --quiet is used, but not --server-response.
1019         Fixes bug #20917.
1020
1021         * utils.c (fork_to_background): Likewise.
1022
1023 2008-04-12  Micah Cowan  <micah@cowan.name>
1024
1025         * utils.c (aprintf): Minor formatting changes to Alex's code (80-
1026         column limit, concatenated string literals, avoiding nesting
1027         levels), and removed invocation of free (since we're aborting
1028         anyway).
1029
1030 2008-04-11  Alexander Dergachev  <cy6erbr4in@gmail.com>
1031
1032         * utils.c (aprintf): Now we are setting limits (1 Mb) for text
1033         buffer when we use non-C99 vsnprintf.
1034         
1035 2008-04-11  Micah Cowan  <micah@cowan.name>
1036
1037         * ftp.c (getftp, ftp_loop_internal): Don't append to an existing
1038         .listing when --continue is used.  Fixes bug #22825. Thanks to
1039         Rabin Vincent <rabin@rab.in> for pointing the way with a
1040         suggested fix!
1041
1042 2008-04-10  Alexander Dergachev  <cy6erbr4in@gmail.com>
1043
1044         * xmalloc.c, xmalloc.h (memfatal): Now exported; accepts an
1045         "unknown" value for the attempted allocation size.
1046         * utils.c (aprintf): Now calls memfatal, instead of aborting.
1047
1048 2008-03-19  Micah Cowan  <micah@cowan.name>
1049
1050         * utils.c (test_dir_matches_p): More tests related for
1051         dir_matches_p.
1052
1053 2008-03-17  Micah Cowan  <micah@cowan.name>
1054
1055         * connect.c: Include sys/time.h to support use of the select
1056         function on older systems.
1057
1058 2008-02-11  Benno Schulenberg  <bensberg@justemail.net>
1059
1060         * http.c: More accurate and descriptive messages for when a file
1061         won't be retrieved during spider-mode.
1062
1063 2008-02-10  Micah Cowan  <micah@cowan.name>
1064
1065         * http.c: Added existence_checked member to the http_stat
1066         struct.
1067         (gethttp): Mark hs->existence_checked when we've checked whether
1068         a file-to-download exists; so we don't check it again if the
1069         connection gets lost (and potentially pick a new "unique" name).
1070         This fixes bug 22251.
1071         * progress.c (create_image): Add space for an extra column in
1072         the "eta" portion of the progress bar image; to deal with
1073         too-long Czech translation.
1074         * main.c, http.c, init.c: Added --auth-no-challenge option, to
1075         bring back 1.10.2 unsafe auth behavior when needed. This fixes
1076         bug #22242.
1077
1078 2008-02-07  Micah Cowan  <micah@cowan.name>
1079
1080         * progress.c (create_image): Remove assertion on exceeding
1081         screen width, which given the less-than-robust code there, can
1082         be broken by a number of factors (such as large file downloads).
1083
1084 2008-02-06  Micah Cowan  <micah@cowan.name>
1085
1086         * progress.c (countcols): Use strlen() when mbtowc or wcwidth
1087         not available (or not using NLS).
1088         * utils.c: Ensure we use single-byte separators when not doing
1089         NLS progress-bars.
1090         * wget.h: Determine whether to use NLS for progress-bars, based
1091         on whether wcwidth and mbtowc are available.
1092
1093 2008-02-03  Micah Cowan  <micah@cowan.name>
1094
1095         * progress.c (create_image): Use number of characters/columns
1096         consumed, rather than number of bytes, to determine how much of
1097         a line we've used. Fixes assertion errors and field alignment
1098         bugs (#22161, #20481)
1099         (get_eta, count_cols): Added to support the changes for
1100         create_image.
1101         * http.c (http_loop): Put no-clobber logic back into http_loop,
1102         before starting to fetch, for when we're not doing
1103         content-disposition.
1104
1105 2008-01-31  Micah Cowan  <micah@cowan.name>
1106
1107         * http.c (gethttp): Don't derive hs->contlen from possibly
1108         invalid/missing Content-Length; instead, get the appropriate
1109         value from the Content-Range header values.
1110         (parse_content_range): Handle '*' instance-length field.
1111
1112 2008-01-25  Micah Cowan  <micah@cowan.name>
1113
1114         * main.c: Added notes to translators regarding (C), diacritics
1115         in names.
1116         * Makefile.am, cmpt.c, connect.c, connect.h, convert.c,
1117         cookies.c, cookies.h, ftp-basic.c, ftp-ls.c, ftp-opie.c, ftp.c,
1118         ftp.h, gen-md5.c, gen-md5.h, gnutls.c, hash.c, hash.h, host.c,
1119         host.h, html-parse.c, html-parse.h, html-url.c, http-ntlm.c,
1120         http-ntlm.h, http.c, http.h, init.c, init.h, log.c, log.h,
1121         main.c, mswindows.c, mswindows.h, netrc.c, netrc.h, openssl.c,
1122         options.h, progress.c, progress.h, ptimer.c, ptimer.h, recur.c,
1123         recur.h, res.c, res.h, retr.c, retr.h, spider.c, spider.h,
1124         ssl.h, sysdep.h, test.c, test.h, url.c, url.h, utils.c,
1125         utils.h, wget.h, xmalloc.c, xmalloc.h: Updated copyright year.
1126
1127 2007-12-10  Micah Cowan  <micah@cowan.name>
1128
1129         * main.c: The option is --content-disposition, not
1130         --no-content-disposition (at the moment).
1131
1132 2007-12-08  Hrvoje Niksic  <hniksic@xemacs.org>
1133
1134         * ftp.c (ftp_retrieve_glob): Print both arguments of fnmatch in
1135         fnmatch error message.
1136         (ftp_retrieve_glob): Don't match with fnmatch if we're only
1137         supposed to get one file.
1138
1139 2007-12-07  Micah Cowan  <micah@cowan.name>
1140
1141         * Makefile.am: Plug in vars to include stuff from
1142         $(top_srcdir)/md5 when appropriate.
1143
1144 2007-12-05  Micah Cowan  <micah@cowan.name>
1145
1146         * utils.c (subdir_p): Handle the case where d1 is "".
1147         * convert.c (convert_all_links): Don't return without
1148         deallocating timer.
1149
1150 2007-11-28  Micah Cowan  <micah@cowan.name>
1151
1152         * Makefile.am, cmpt.c, connect.c, connect.h, convert.c,
1153         convert.h, cookies.c, cookies.h, ftp-basic.c, ftp-ls.c,
1154         ftp-opie.c, ftp.c, ftp.h, gen-md5.c, gen-md5.h, gnutls.c,
1155         hash.c, hash.h, host.c, host.h, html-parse.c, html-parse.h,
1156         html-url.c, http-ntlm.c, http-ntlm.h, http.c, http.h, init.c,
1157         init.h, log.c, log.h, main.c, mswindows.c, mswindows.h,
1158         netrc.c, netrc.h, openssl.c, options.h, progress.c, progress.h,
1159         ptimer.c, ptimer.h, recur.c, recur.h, res.c, res.h, retr.c,
1160         retr.h, safe-ctype.c, safe-ctype.h, spider.c, spider.h, ssl.h,
1161         sysdep.h, test.c, test.h, url.c, url.h, utils.c, utils.h,
1162         wget.h, xmalloc.c, xmalloc.h: Updated license exception for
1163         OpenSSL, per the SFLC.
1164
1165 2007-10-30  Micah Cowan  <micah@cowan.name>
1166
1167         * main.c (main): Declare argv parameter as char **argv, rather
1168         than char *const *argv. This fixes usage of getopt_long,
1169         regardless of whether getopt_long has a constified argv or not.
1170
1171 2007-10-22  Gisle Vanem  <gvanem@broadpark.no>
1172
1173         * mswindows.c: Move INHIBIT_WRAP macro definition up with wget.h
1174         inclusion.
1175
1176 2007-10-18  Steven Schweda  <sms@antinode.org>
1177
1178         * sysdep.h: #include <stdint.h> as well as <inttypes.h>, to work
1179         around a glitch on Tru64 systems.
1180
1181 2007-10-18  Micah Cowan  <micah@cowan.name>
1182
1183         * Makefile.am: version.c should not be distributed. Removed
1184         config-post.h. Add version.c dependency and gnulib include path
1185         for libunittest.a.
1186         * sysdep.h: Got contents of config-post.h
1187         * config-post.h: Removed.
1188         * wget.h: #include "config.h".
1189         * alloca.c, cmpt.c, connect.c, convert.c, cookies.c,
1190         ftp-basic.c, ftp-ls.c, ftp-opie.c, ftp.c, gen-md5.c, gnutls.c,
1191         hash.c, host.c, html-parse.c, html-url.c, http-ntlm.c, http.c,
1192         init.c, log.c, main.c, mswindows.c, netrc.c, openssl.c,
1193         progress.c, ptimer.c, recur.c, res.c, retr.c, spider.c, url.c,
1194         utils.c, xmalloc.c: Use wget.h at very top, and instead of
1195         config.h.
1196
1197 2007-10-15  Micah Cowan  <micah@cowan.name>
1198
1199         * Makefile.am: Remove intermediary hg-id file generation, make
1200         version.c-generation more portable.
1201
1202 2007-10-14  Micah Cowan  <micah@cowan.name>
1203
1204         * cmpt.c, cookies.c, ftp-basic.c, ftp-ls.c, ftp.c, hash.c,
1205         host.c, html-parse.c, html-url.c, http-ntlm.c, http.c, init.c,
1206         log.c, main.c, netrc.c, openssl.c, res.c, url.c, utils.c,
1207         wget.h: Replace uses of ISSPACE, etc with c_isspace, etc.
1208         * gnu-md5.c, gnu-md5.h: Removed, in deference to gnulib.
1209         * Makefile.am: Removed gnu-md5.h from wget_SOURCES.
1210         * gen-md5.c: Changed #inclusion of gnu-md5.h to md5.h (gnulib's).
1211         * recur.c (download_child_p): Print error if unlink of
1212         robots.txt fails.
1213         * main.c (main): --spider or --delete-after now implies
1214         --no-directories (thanks, Josh Williams).
1215
1216 2007-10-14  Joshua David Williams  <yurimxpxman@gmail.com>
1217
1218         * recur.c (download_child_p): Remove robots.txt if
1219         --delete-after or --spider is on.
1220
1221 2007-10-13  Micah Cowan  <micah@cowan.name>
1222
1223         * Makefile.am: Make version.c depend on Wget dependencies (source
1224         files, plus such things as LIBOBJS so we get things like
1225         http-ntlm.c). Removed getopt.[ch], as we're now using gnulib for
1226         these.
1227
1228 2007-10-10  Micah Cowan  <micah@cowan.name>
1229
1230         * http-ntlm.c: Include openssl/opensslv.h explicitly, instead of
1231         hoping it'll be included by accident in openssl/des.h.
1232
1233 2007-10-09  Gisle Vanem  <gvanem@broadpark.no>
1234
1235         * mswindows.c: 'argc' and 'argv' in 'windows_main()' are no longer
1236         needed.  Hence simply the prototype. Free 'exec_name' at exit.
1237
1238 2007-10-09  Micah Cowan  <micah@cowan.name>
1239
1240         * gettext.h: Imported from /usr/share/gettext, fuller handling
1241         of --disable-nls.
1242         * wget.h: Remove logic for handling lack of NLS (now in
1243         gettext.h).
1244         * main.c: Use gettext's ENABLE_NLS rather than HAVE_NLS.
1245         * Makefile.am: added @LIBINTL@ to LIBS (though it probably
1246         belongs in LDADD, along with everything else currently assigned
1247         to LIBS).
1248
1249 2007-10-08  Micah Cowan  <micah@cowan.name>
1250
1251         * http.c (http_loop): Add send_head_first conditional back
1252         around code that needs it, but not around the last-modified
1253         header-parsing stuff this time. Removed no-longer-useful (was it
1254         ever?) restart_loop boolean, continuing unconditionally at end
1255         of send_head_first conditional block (if we haven't jumped out).
1256
1257 2007-10-04  Micah Cowan  <micah@cowan.name>
1258
1259         * http.c (http_loop): We've got_name if content_disposition
1260         support isn't on; make sure we continue properly in that case,
1261         even though we're not sending HEAD.
1262         * Makefile.in: Removed, replaced by Makefile.am.
1263         * Makefile.am: Converted from Makefile.in.
1264
1265 2007-10-02  Gisle Vanem  <gvanem@broadpark.no>
1266         
1267         * ftp.c: Use "_listing" for MSDOS (".listing" is illegal).
1268
1269         * url.c: Update comment for 'filechr_not_windows'.
1270
1271         * utils.c: Include <process.h> for 'getpid()' on Watcom.
1272
1273 2007-10-02  Micah Cowan  <micah@cowan.name>
1274
1275         * ftp.c (getftp, ftp_loop_internal), http.c (http_loop), main
1276         (main): Use datetime_str instead of time_str, for those who have
1277         potentially long-running sessions. Based on suggestions by Saso
1278         Tomat <miskox@hotmail.com> and Steven M. Schweda
1279         <sms@antinode.org>.
1280         * http.c (gethttp): Warn about host lookup failures. Adjusted
1281         from Stephen Gildea's patch.
1282
1283 2007-10-02  Stephen Gildea  <stepheng+wget@gildea.com>
1284
1285         * connect.c (connect_to_host): Warn about host lookup failures.
1286
1287 2007-09-25  Micah Cowan  <micah@cowan.name>
1288
1289         * Makefile.in: Use EXEEXT instead of exeext.
1290
1291 2007-09-24  Gisle Vanem  <giva@bgnett.no>
1292
1293         * connect.c, init.c, main.c, openssl.c, options.h, sysdep.h,
1294         url.c, utils.c: Added support for building on MS-DOS.
1295
1296 2007-09-24  Jochen Roderburg  <roderburg@uni-koeln.de>
1297
1298         * http.c (http_zero): Remove no-longer-used local_size variable.
1299         Fixes bug #21057.
1300
1301 2007-09-12  Micah Cowan  <micah@cowan.name>
1302
1303         * http.c (http_loop): Remove send_head_first from condition for
1304         parsing timestamp.
1305
1306 2007-08-29  Micah Cowan  <micah@cowan.name>
1307
1308         * openssl.c (ssl_init): Re un-const-ified the meth local
1309         variable, to match current versions of openssl.
1310         * spider.c: Removed visited_url function, as it may be very
1311         inefficient.
1312         (print_broken_links): Removed traversal of referrers, until such
1313         time as a more efficient implementation can be written.
1314         * spider.h: Replaced declaration of visited_url with an
1315         empty-bodied, function-like macro.
1316
1317 2007-08-27  Gisle Vanem  <giva@bgnett.no>
1318
1319         * mswindows.c (run_with_timeout): Ensure that the correct
1320         conversion specification is used for the return result of
1321         the GetLastError function.
1322         * getopt.c: Fix missing (but, accidentally, legal) comment
1323         delimiter after licensing text.
1324         * recur.c (retrieve_tree): Inserted missing cast for strip_auth.
1325         Includes adjustment by Ralf Wildenhues.
1326         * openssl.c (ssl_init): const-ified the meth local variable.
1327         * main.c: Include all the static function definitions in the
1328         "#ifndef TESTING" clause, leaving just the definitions for
1329         exec_name (not set), and opt.
1330         * utils.c (run_with_timeout): Now returns bool, to align with
1331         declaration in utils.h.
1332
1333 2007-08-27  Micah Cowan  <micah@cowan.name>
1334
1335         * wget.h: Added macro replacement for ngettext, for environs
1336         that lack NLS.
1337
1338 2007-08-26  Micah Cowan  <micah@cowan.name>
1339
1340         * spider.c (print_broken_links): Fixed incorrect plurals msgid
1341         usage, switched to use ngettext function.
1342
1343 2007-08-24  Micah Cowan  <micah@cowan.name>
1344
1345         * http.c (http_loop): Introduced time_came_from_head boolean
1346         flag, to help avoid parsing the same Last-Modified header twice.
1347         Replaced spidering returns of RETRUNNEEDED for some situations,
1348         to RETROK, as otherwise it will be interpreted as an error.
1349         RETRUNNEEDED appears never to be referenced outside of
1350         http.c (and wget.h), and, when returned by gethttp, is
1351         translated by http_loop to RETROK.
1352         * url.c (are_urls_equal): Don't call getchar_from_escaped_string
1353         if u2 is shorter than u1.
1354         (getchar_from_escaped_string): Don't decode reserved characters.
1355         Handle illegally appearing '%'s as literal '%'s. Ensure hex
1356         digits before attempting to decode.
1357         (test_are_urls_equal): Added tests to handle u2 shorter than u1,
1358         and %2f not treated the same as /.
1359         * spider.c (in_url_list_p): Don't call are_urls_equal if one of
1360         them is NULL.
1361
1362 2007-08-23  Joshua David Williams  <yurimxpxman@gmail.com>
1363
1364         * spider.c (in_url_list_p): Removed the bool verbose argument
1365
1366 2007-08-22  Mauro Tortonesi  <mauro@ferrara.linux.it>
1367
1368         * http.c (http_loop): Fall back to GET if HEAD fails with a 500 or 501
1369         error code.
1370
1371 2007-08-21  Mauro Tortonesi  <mauro@ferrara.linux.it>
1372         
1373         * http.c (http_loop): Send preliminary HEAD request if -N is given and
1374         the destination file exists already.
1375
1376 2007-08-10  Mauro Tortonesi  <mauro@ferrara.linux.it>
1377
1378         * http.c (http_loop): Fixed HTTP HEAD requests logic when --spider is
1379         given.
1380
1381 2007-08-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1382
1383         * url.c (append_uri_pathel): Do not assume dest string to be
1384         zero-terminated.
1385         (test_append_uri_pathel): Terminate string to fix test failure.
1386
1387 2007-08-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1388
1389         * url.c (url_string): Use comparison, not assignment, in
1390         check for auth_mode == URL_AUTH_HIDE_PASSWD.
1391
1392 2007-08-09  Micah Cowan  <micah@cowan.name>
1393
1394         * http.c (http_loop): If we got a HEAD and then a GET, and the
1395         GET had a timestamp, use that one, not any we may have gotten
1396         from the HEAD.
1397
1398 2007-08-08  Micah Cowan  <micah@cowan.name>
1399
1400         * init.c (defaults): Content disposition will not be default,
1401         since it currently results in extra round-trips.
1402
1403 2007-07-31  Micah Cowan  <micah@cowan.name>
1404
1405         * http.c (gethttp): Set contlen = -1 when we encounter a
1406         negative-valued Content-Length header, so we don't consider it
1407         an internal error later on and call abort().
1408
1409 2007-07-29  Micah Cowan  <micah@cowan.name>
1410
1411         * url.h, url.c (url_string): Replaced bool arg of the url_string
1412         function with enum url_auth_mode, with added option to
1413         completely remove user/pass auth information.
1414         * http.c, ftp.c, url.c, recur.c: Adapted call to url_string
1415         function to fit new usage.
1416         * recur.c (retrieve_tree): Remove auth info from Referer header.
1417
1418 2007-07-28  Micah Cowan  <micah@cowan.name>
1419
1420         * options.h, init.c, retr.c, main.c: renamed opt maxredirect
1421         field to max_redirect, for improved consistency.
1422         * init.c: changed max_redirect parser from cmd_number_inf to
1423         cmd_number, as infinite redirects may not be appropriate.
1424         Alternatively, if cmd_number_inf should be used, then
1425         opt.max_redirect's value should be checked a bit differently in
1426         retr.c, to allow for the "infinite" meaning of zero.
1427
1428 2007-07-25  Micah Cowan  <micah@cowan.name>
1429
1430         * http.c (create_authorization_line)
1431         (basic_authentication_encode, known_authentication_scheme_p)
1432         (load_cookies): Moved declarations up.
1433         (basic_authed_hosts): Added. Tracks what hosts have issued Basic
1434         challenge and been given the global username, password.
1435         (maybe_send_basic_creds): Added. Sends Basic creds for hosts that
1436         have issued Basic challenges.
1437         (register_basic_auth_host): Added. Instantiates
1438         basic_authed_hosts if necessary, then registers the host that
1439         has issued a challenge.
1440         (gethttp) <auth>: Only send authentication credentials after
1441         we've received a challenge from that host. This is a stop-gap
1442         fix until a proper fix can be implemented; still isn't quite
1443         right, as we should only be sending credentials automatically
1444         for authenticated paths and below, and not for the entire host.
1445
1446 2007-07-16  Joshua David Williams  <yurimxpxman@gmail.com>
1447
1448         * options.h: added maxredirect to options struct
1449         * init.c: added maxredirect to list of variables
1450         * retr.c (retrieve_url): replaced MAX_REDIRECTIONS with opt.maxredirect
1451         * main.c: added option --max-redirect
1452
1453 2007-07-16  Joshua David Williams  <yurimxpxman@gmail.com>
1454
1455         * test.h: tests made more verbose; now displays the name
1456         of each test run.
1457
1458 2007-07-10  Mauro Tortonesi  <mauro@ferrara.linux.it>
1459
1460         * http.c (http_loop): Fixed the HTTP requests logic. Now it skips the 
1461         preliminary HEAD request if either -O or --no-content-disposition are 
1462         given, and neither --spider and -N are given.
1463
1464 2007-07-05  Micah Cowan  <micah@cowan.name>
1465
1466         * cmpt.c, connect.c, connect.h, convert.c, convert.h:
1467         * cookies.c, cookies.h, ftp-basic.c, ftp.c, ftp.h, ftp-ls.c:
1468         * ftp-opie.c, gen-md5.c, gen-md5.h, getopt.c, getopt.h, gnu-md5.c:
1469         * gnu-md5.h, gnutls.c, hash.c, hash.h, host.c, host.h:
1470         * html-parse.c, html-parse.h, html-url.c, http.c, http.h:
1471         * http-ntlm.c, http-ntlm.h, init.c, init.h, log.c, log.h, main.c:
1472         * Makefile.in, mswindows.c, mswindows.h, netrc.c, netrc.h:
1473         * openssl.c, options.h, progress.c, progress.h, ptimer.c:
1474         * ptimer.h, recur.c, recur.h, res.c, res.h, retr.c, retr.h:
1475         * safe-ctype.c, safe-ctype.h, spider.c, spider.h, ssl.h, sysdep.h:
1476         * test.c, test.h, url.c, url.h, utils.c, utils.h, wget.h:
1477         * xmalloc.c, xmalloc.h:
1478         Updated GPL reference to version 3 or later, removed FSF
1479         address.
1480
1481 2007-07-04  Mauro Tortonesi  <mauro@ferrara.linux.it>
1482
1483         * http.c (http_loop): Skip HEAD request and start immediately with GET
1484         if -O is given.
1485
1486 2007-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
1487
1488         * http.c (print_server_response): Escape non-printable characters
1489         in server respone.
1490
1491 2007-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
1492
1493         * netrc.c: Don't make netrc_list static, as it prevents
1494         compilation with DEBUG_MALLOC.
1495
1496         * utils.c (aprintf): Don't use vasprintf when DEBUG_MALLOC is
1497         requested because, in that case, we want the calls to malloc to be
1498         coming from us.
1499
1500 2007-01-23  Hrvoje Niksic  <hniksic@xemacs.org>
1501
1502         * cookies.c (parse_set_cookie): Would erroneously discard cookies
1503         with unparsable expiry time.
1504
1505 2007-01-23  Hrvoje Niksic  <hniksic@xemacs.org>
1506
1507         * progress.c (create_image): Check for ETA overflow.
1508         (print_row_stats): Ditto.
1509
1510 2007-01-09  Mauro Tortonesi  <mauro@ferrara.linux.it>
1511
1512         * init.c (cmd_spec_prefer_family): Small fix to get rid of a gcc
1513         warning about strict-aliasing violation.
1514
1515 2007-01-09  Steven M. Schweda  <sms@antinode.org>
1516
1517         * ftp-basic.c (ftp_syst): Fixed segfault if response text is missing.
1518
1519 2006-12-29  Gisle Vanem  <giva@bgnett.no>
1520
1521         * mswindows.c: Avoid a warning if 'ws_hangup()' is unused.
1522
1523 2006-12-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
1524
1525         * http.c (parse_content_disposition): Consider directory prefix, if
1526         specified.
1527
1528 2006-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
1529
1530         * retr.c (retrieve_from_file): Ditto.
1531         (url_uses_proxy): New function.
1532
1533         * main.c (main): Don't check for opt.use_proxy when deciding
1534         whether to call retrieve_url or retrieve_tree; check whether the
1535         proxy would be used for *this* URL.
1536
1537 2006-10-17  Mike Grant  <mggr@pml.ac.uk>
1538
1539         * ftp.c (ftp_loop_internal): Would incorrectly skip changing
1540         working directory when retrying after a failed FTP attempt.
1541         Originally reported by Nate Eldredge.
1542
1543 2006-10-12  Mauro Tortonesi  <mauro@ferrara.linux.it>
1544
1545         * convert.c (downloaded_file): Fixed bug which used to break -E -k -K 
1546         mode.
1547
1548 2006-08-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
1549
1550         * http.c: #include'd spider.h to get rid of compiler warnings.
1551
1552         * main.c: Ditto.
1553
1554         * recur.c: Ditto.
1555
1556 2006-08-24  Mauro Tortonesi  <mauro@ferrara.linux.it>
1557
1558         * Makefile.in: Added spider.c to the list of files to compile and
1559         spider.h to the list of header files. Updated copyright information.
1560
1561         * http.c: Major changes to recursive spider mode. Now for every
1562         resource we are supposed to check, we send a HEAD request to find out
1563         if it exists. If the resource is a HTML file, we retrieve it and parse
1564         it to discover links to other resources.
1565
1566         * recur.c: Ditto.
1567
1568         * res.c (res_retrieve_file): Disable opt.timestamping and opt.spider
1569         when retrieving robots.txt. Updated copyright information.
1570
1571         * convert.c: Moved code tracking broken links to spider.c.
1572
1573         * convert.h: Ditto.
1574
1575         * spider.c: Created new file to keep track of visited URLs in spider
1576         mode.
1577
1578         * spider.h: Ditto.
1579
1580 2006-08-21  Mauro Tortonesi  <mauro@ferrara.linux.it>
1581
1582         * http.c: Fixed timestamping-related bug.
1583
1584 2006-08-16  Mauro Tortonesi  <mauro@ferrara.linux.it>
1585
1586         * http.c: Fixed bug which broke --continue feature. Now if -c is
1587         given, http_loop sends a HEAD request to find out the destination
1588         filename before resuming download.
1589
1590 2006-08-08  Hrvoje Niksic  <hniksic@xemacs.org>
1591
1592         * utils.c (datetime_str): Avoid code repetition with time_str.
1593
1594 2006-07-21  Hrvoje Niksic  <hniksic@xemacs.org>
1595
1596         * init.c (commands): Correctly place "contentdisposition".
1597
1598 2006-07-14  Mauro Tortonesi  <mauro@ferrara.linux.it>
1599         
1600         * sysdep.h: If intptr_t isn't defined, simply typedef it to long.
1601
1602         * http.c: Added explicit cast to int in logprintf call to remove
1603         compiler warnings on 64-bit platforms.
1604
1605         * connect.c: Added a few casts to intptr_t to remove compiler warnings
1606         on 64-bit platforms.
1607         
1608         * main.c: Disable -r, -p and -N when -O is used. Disable -k when -O is
1609         used and multiple URLs are given. Update maintainer information.
1610         
1611         * all: Update copyright information.
1612         
1613 2006-07-10  KJKHyperion  <hackbunny@reactos.com>
1614
1615         * url.c (filechr_table): Mark DEL (0x7f) as a control character
1616         and | as a character Windows can't handle.
1617
1618 2006-06-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
1619
1620         * res.c: Implemented is_robots_txt_url function for detection of
1621         robots.txt URLs and related test routine.
1622
1623         * res.h: Ditto.
1624
1625         * url.c: Implemented are_urls_equal function for URL comparison and
1626         related testing routine.
1627
1628         * url.h: Ditto.
1629
1630         * convert.c: Fixes for recursive spider mode: don't consider
1631         non-existing robots.txt as a broken link, and use are_urls_equal
1632         instead of strcasecmp for referrer URLs comparison.
1633
1634         * test.c: Call tests routines for are_urls_equal and 
1635         is_robots_txt_url.
1636
1637 2006-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
1638
1639         * wget.h (wgint): Typedef to any 64-bit (or larger) type we can
1640         find, not necessarily off_t or long.
1641
1642 2006-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
1643
1644         * cmpt.c (strtoll): Check for overflow and underflow without
1645         relying on (technically) undefined behavior.  Don't assume that
1646         strtoll_type is 64 bits wide.
1647
1648 2006-06-21  Hrvoje Niksic  <hniksic@xemacs.org>
1649
1650         * utils.c (base64_encode): Cast void pointer to char * before
1651         doing arithmetic.
1652
1653 2006-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
1654
1655         * utils.c (base64_encode): Made TBL const.
1656         (base64_decode): Made the base64_char_to_value table const.
1657
1658 2006-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
1659
1660         * utils.c (base64_encode): Made the DATA pointer void * so the
1661         callers can pass it any kind of pointer (including both signed and
1662         unsigned char pointers).
1663         (base64_decode): Ditto for DEST.
1664
1665 2006-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
1666
1667         * utils.c (base64_encode): Would read past end of STR.
1668         Reported by rick@eckle.org.
1669
1670 2006-06-13  Mauro Tortonesi  <mauro@ferrara.linux.it>
1671
1672         * options.h (struct options): Introduced member restrict_files_case to
1673         keep track of preferences on character case restrictions for
1674         filenames.
1675
1676         * init.c: Modified defaults and cmd_spec_restrict_file_names to
1677         support character case restrictions for filenames. Added
1678         test_cmd_spec_restrict_file_names unit test.
1679
1680         * url.c: Modified append_uri_pathel to support character case
1681         restrictions for filenames. Added test_append_uri_pathel unit test.
1682
1683         * test.c: Added test_cmd_spec_restrict_file_names and
1684         test_append_uri_pathel to the list of unit tests to run.
1685
1686 2006-06-12  Mauro Tortonesi  <mauro@ferrara.linux.it>
1687
1688         * retr.c (retrieve_from_file): Use retrieve_tree and automatically
1689         turn on opt.follow_ftp in case of recursive FTP retrieval through HTTP
1690         proxy.
1691
1692         * main.c: Automatically turn on opt.follow_ftp in case of recursive
1693         FTP retrieval through HTTP proxy.
1694
1695 2006-06-12  Tony Lewis  <tlewis@exelana.com>
1696
1697         * main.c: Improved CHEN Peng's patch by proposing a simpler logic.
1698
1699 2006-06-12  CHEN Peng  <chenpeng@alumni.nus.edu.sg>
1700
1701         * main.c: Use retrieve_tree in case of recursive FTP retrieval through
1702         HTTP proxy.
1703
1704 2006-05-25  Mauro Tortonesi  <mauro@ferrara.linux.it>
1705
1706         * convert.c: Added mechanisms to keep track broken links.
1707
1708         * convert.h: Ditto.
1709
1710         * wget.h: Reordered and enumerated uerr_t constants.
1711
1712         * recur.c: Fixes to support recursive spider mode.
1713
1714         * http.c: Ditto.
1715
1716         * main.c: Print broken links in case of recursive spider mode.
1717
1718         * retr.c: Changed interface of retrieve_url.
1719
1720         * retr.h: Ditto.
1721
1722         * ftp.c: Changed interface of ftp_loop.
1723
1724         * ftp.h: Ditto.
1725
1726         * res.c: Minor change to reflect changes in interface of retrieve_url.
1727
1728 2006-05-18  Lawrence Jones  <lawrence.jones@ugs.com>
1729
1730         * ftp-ls.c (ftp_parse_unix_ls): Correct size parsing, add size
1731         and filename debugging output.
1732
1733 2006-04-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
1734
1735         * http.c: If Content-Disposition header is present, allow unique
1736         filename generation unless -nc is given. Permit to disable parsing of
1737         Content-Disposition header.
1738
1739         * options.h: Added option --no-content-disposition to disable parsing
1740         of HTTP Content-Disposition header.
1741
1742         * init.c: Ditto.
1743         
1744         * main.c: Ditto.
1745
1746 2006-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
1747
1748         * hash.c (TOLOWER): Wrap macro arg in parentheses.
1749
1750 2006-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
1751
1752         * http.c (parse_content_disposition): Doc fix.
1753
1754 2006-03-15  Mauro Tortonesi  <mauro@ferrara.linux.it>
1755
1756         * utils.c: Restricted operational semantics of frontcmp and proclist
1757         from generic strings to directory names and them to subdir_p and
1758         dir_matches_p respectively.  Applied George Ogata's one line patch to
1759         restrict algorithm of subdir_p to full directory name matching.  Added
1760         testcases for subdir_p and dir_matches_p.
1761
1762         * utils.h: Changed all frontcmp occurrences to subdir_p.
1763         
1764         * recur.c: Ditto.
1765         
1766         * test.c: Changed type returned by test functions from char * to const
1767         char *.  Added test_subdir_p and test_dir_matches_p to the list of
1768         tests to run.
1769
1770         * http.c (test_parse_content_disposition): Changed return type from
1771         char * to const char *. 
1772
1773 2006-03-14  Mauro Tortonesi  <mauro@ferrara.linux.it>
1774
1775         * recur.c (struct queue_element): Changed type of html_allowed member
1776         to bool.
1777         
1778 2006-03-09  Mauro Tortonesi  <mauro@ferrara.linux.it>
1779
1780         * ftp.c (ftp_list): Try `LIST -a' command first and revert to `LIST'
1781         in case of failure.
1782
1783 2006-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
1784
1785         * hash.c (TOLOWER): Fix definition when STANDALONE.
1786         Reported by Beni Serfaty.
1787
1788 2006-03-02  Mauro Tortonesi  <mauro@ferrara.linux.it>
1789
1790         * http.c (http_loop): Fixed recursive HTTP retrieval.
1791
1792 2006-02-28  Hrvoje Niksic  <hniksic@xemacs.org>
1793
1794         * http.c (extract_param): Declare extern so it can be used from
1795         other files.
1796         (extract_param): Return error for empty name.
1797
1798 2006-02-28  Hrvoje Niksic  <hniksic@xemacs.org>
1799
1800         * url.c (find_last_char): Define in terms of memrchr.
1801
1802         * cmpt.c (memrchr): Define it on systems that don't have it.
1803
1804         * http.c (extract_param): New function for parsing header values
1805         with parameters.
1806         (parse_content_disposition): Use it.  Don't allow slashes and
1807         backslashes in the file name.
1808
1809 2006-02-27  Hrvoje Niksic  <hniksic@xemacs.org>
1810
1811         * url.c (path_simplify): Don't preserve ".." at beginning of path.
1812         Suggested by Frank McCown.
1813
1814 2006-02-25  Hrvoje Niksic  <hniksic@xemacs.org>
1815
1816         * http.c (gethttp): Only use FILE.N.html if FILE.html exists.
1817
1818 2006-02-09  Hrvoje Niksic  <hniksic@xemacs.org>
1819
1820         * mswindows.c (run_with_timeout): Made thread_hnd non-static.
1821
1822 2006-02-05  Hrvoje Niksic  <hniksic@xemacs.org>
1823
1824         * retr.c (sleep_between_retrievals): Sleep at a minimum of 1/2 of
1825         the specified wait period.
1826
1827 2006-02-03  Hrvoje Niksic  <hniksic@xemacs.org>
1828
1829         * utils.c (number_to_string): Don't use sprintf for printing
1830         WGINT_MIN; simply divide n by 10 and defer printing the last
1831         digit.
1832         (number_to_string): Removed the SPRINTF_WGINT macro.
1833
1834 2006-02-03  Mauro Tortonesi  <mauro@ferrara.linux.it>
1835
1836         * http.c: Fixed support for Content-Disposition header.
1837
1838         * test.c: Added test_parse_content_disposition to the list of unit
1839         tests to run.
1840
1841 2006-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
1842
1843         * hash.c: Don't define countof if it's already defined.
1844
1845         * hash.c: Obtain the definition of uintptr_t when standalone.
1846
1847 2006-01-30  Mauro Tortonesi  <mauro@ferrara.linux.it>
1848
1849         * http.c: Changed output format. Removed excessively verbose debugging
1850         output.
1851
1852 2005-12-07  Mauro Tortonesi  <mauro@ferrara.linux.it>
1853
1854         * http.c: Fixed pre-download verbose output which was broken by 
1855         HTTP code refactoring.
1856
1857 2005-11-23  Mauro Tortonesi  <mauro@ferrara.linux.it>
1858
1859         * http.c: Refactored HTTP code.  If -O is not used, the new code
1860         delays the choice of the file name where the downloaded resource
1861         will be saved until the HTTP headers have been retrieved.
1862         Added support for Content-Disposition header. 
1863
1864 2005-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
1865
1866         * hash.c (INVALID_PTR): Use uintptr_t instead of unsigned long.
1867         (hash_pointer): Don't assume a pointer fits in `unsigned long'.
1868
1869 2005-11-02  Mauro Tortonesi  <mauro@ferrara.linux.it>
1870
1871         * Makefile.in: Removed support for unit testing (now it is in
1872         tests/Makefile.in).
1873
1874 2005-10-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
1875
1876         * Makefile.in: Added basic support for unit testing.
1877
1878         * test.c: Ditto.
1879         
1880         * test.h: Ditto.
1881         
1882 2005-10-13  Daniel Stenberg  <daniel@haxx.se>
1883
1884         * http-ntlm.c (ntlm_output): Fixed buffer overflow vulnerability.
1885
1886 2005-10-09  Russ Allbery  <rra@stanford.edu>
1887
1888         * snprintf.c: Remove round to round_int and pow10 to pow10_int, to
1889         avoid warnings from GCC 4.0.
1890
1891 2005-10-05  Mauro Tortonesi  <mauro@ferrara.linux.it>
1892
1893         * retr.c: Changed semantics of no_proxy_match.
1894
1895 2005-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
1896
1897         * main.c (main): Don't print the summary if nothing has been downloaded.
1898
1899 2005-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
1900
1901         * retr.c (retr_rate): Rename parameter from MSECS to SECS since it
1902         no longer holds milliseconds.
1903
1904 2005-09-01  Hrvoje Niksic  <hniksic@xemacs.org>
1905
1906         * progress.c: Introduce symbolic constants for "magic" values of
1907         0.2 and 0.9, REFRESH_INTERVAL and ETA_REFRESH_INTERVAL.
1908
1909 2005-08-27  Hrvoje Niksic  <hniksic@xemacs.org>
1910
1911         * cmpt.c (strtoll): Correctly handle strtoll("0x", ptr, 0) and
1912         strtoll("0x<nonhexchar>", ptr, 0) -- in both cases *ptr must be
1913         set to the position of 'x', not after it.
1914
1915 2005-08-27  Hrvoje Niksic  <hniksic@xemacs.org>
1916
1917         * hash.c (hash_table_map): Rename to hash_table_for_each and
1918         update callers.
1919         Document the meaning of the callback's return value.
1920         (hash_table_iterate): New function.
1921         (hash_table_iter_next): Likewise.
1922         Update most places that used hash_table_for_each to use the
1923         iteration, which doesn't require a temporary function with
1924         explicit state management.
1925
1926 2005-08-26  Albert Chin  <wget@mlists.thewrittenword.com>
1927
1928         * Makefile.in: Use @datadir@.  Define localedir as $(datadir)/locale.
1929
1930 2005-08-26  Jeremy Shapiro  <jnshapiro@gmail.com>
1931
1932         * openssl.c (ssl_init): Set SSL_MODE_AUTO_RETRY.
1933
1934 2005-08-23  Hrvoje Niksic  <hniksic@xemacs.org>
1935
1936         * host.c (address_list_from_ipv4_addresses): Use IP_INADDR_DATA.
1937
1938 2005-08-12  Hrvoje Niksic  <hniksic@xemacs.org>
1939
1940         * wget.h: Renamed strtoll_return to strtoll_type.
1941
1942 2005-08-11  Hrvoje Niksic  <hniksic@xemacs.org>
1943
1944         * progress.c (eta_to_human_short): Switch to days when printing
1945         more than 48h rather than 100h.  (It's not immediately apparent
1946         how many days there are in 83h.)
1947
1948 2005-08-11  Hrvoje Niksic  <hniksic@xemacs.org>
1949
1950         * cmpt.c (strtoll): Define it if missing on the system and if Wget
1951         needs it.
1952
1953         * mswindows.c (str_to_int64): Move to cmpt.c and rename to strtoll.
1954
1955 2005-08-10  Hrvoje Niksic  <hniksic@xemacs.org>
1956
1957         * host.c (print_address): Always use inet_ntop when IPv6 is
1958         enabled.
1959
1960         * host.h (ip_address): Simplify the data union.
1961
1962 2005-08-09  Hrvoje Niksic  <hniksic@xemacs.org>
1963
1964         * mswindows.c (inet_ntop): Also handle IPv4 addresses for
1965         completeness.
1966
1967 2005-08-09  Hrvoje Niksic  <hniksic@xemacs.org>
1968
1969         * http.c (gethttp): Don't read more than the amount of data
1970         specified by the content-length header.
1971
1972 2005-08-09  Vasil Dimov  <vd@datamax.bg>
1973
1974         * ftp.c (getftp): Don't free RESPLINE if ftp_response returns a
1975         status other than FTPOK.
1976
1977 2005-08-04  Giuseppe Bonacci  <g.bonacci@libero.it>
1978
1979         * ftp-ls.c (ftp_parse_unix_ls): Remember the position of the
1980         previous token instead of backtracking back to it.
1981
1982 2005-07-08  Gisle Vanem  <giva@bgnett.no>
1983
1984         * mswindows.h: Include process.h to get getpid() declaration.
1985
1986 2005-07-08  Hrvoje Niksic  <hniksic@xemacs.org>
1987
1988         * utils.c (aprintf): Use vasprintf where available.
1989
1990 2005-07-08  Hrvoje Niksic  <hniksic@xemacs.org>
1991
1992         * url.c (rewrite_shorthand_url): Simplify code using aprintf and
1993         strspn.
1994
1995 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
1996
1997         * gnutls.c (ssl_check_certificate): Check for the validity of the
1998         presented X509 certificate.
1999
2000 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
2001
2002         * openssl.c (ssl_check_certificate): Print custom error messages
2003         for frequent X509 certificate problems.
2004
2005 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
2006
2007         * mswindows.h: Define an alias for stat and fstat, as requested by
2008         config-compiler.h.
2009         (gai_strerror): Define to windows_strerror if NEED_GAI_STRERROR is
2010         defined.
2011
2012 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2013
2014         * mswindows.h: Use strtoll where available.
2015
2016 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2017
2018         * sysdep.h: Add a full declaration of fnmatch.h.
2019
2020 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2021
2022         * utils.c: Unconditionally include <setjmp.h>.
2023
2024 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2025
2026         * utils.c (fnmatch_nocase): New function.
2027         (proclist): Use it instead of fnmatch when opt.ignore_case is
2028         requested.
2029         (in_acclist): Respect opt.ignore_case.
2030         (frontcmp): Respect opt.ignore_case.
2031
2032         * options.h (struct options): New flag opt.ignore_case.
2033
2034 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2035
2036         * ptimer.c: Measure time in seconds rather than milliseconds.
2037         Adjusted all callers.
2038
2039 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2040
2041         * http.c (gethttp): When freeing MESSAGE, take into account that
2042         it can be NULL.
2043
2044 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2045
2046         * cmpt.c (timegm): Handle years after 2099.
2047
2048 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2049
2050         * cmpt.c (timegm): Remove unused variable.
2051
2052 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2053
2054         * cmpt.c (timegm): Don't call mktime; simply count the seconds
2055         between 1970-01-01 and the specified date.
2056
2057 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2058
2059         * wget.h (or): Define HAVE_SSL when either HAVE_OPENSSL or
2060         HAVE_GNUTLS are defined.
2061
2062         * gnutls.c: New file.
2063
2064 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2065
2066         * http.c (gethttp): Don't print the request write error message
2067         twice.
2068
2069 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2070
2071         * openssl.c (openssl_errstr): Instead of always using a large
2072         static buffer, only allocate the error string when there is an
2073         actual error.
2074
2075 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2076
2077         * xmalloc.c (debugging_free): Prefix hex pointer value with "0x"
2078         when printing.
2079
2080 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2081
2082         * utils.c (NEXT_BASE64_CHAR): Rename to NEXT_CHAR and simplify to
2083         get the next non-whitespace character.
2084
2085 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2086
2087         * utils.c (base64_decode): Don't silently tolerate non-base64
2088         non-white-space characters in the base64 stream.
2089
2090 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2091
2092         * connect.c (LAZY_RETRIEVE_INFO): Make last_tick unsigned to match
2093         transport_map_modified_tick.
2094
2095 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2096
2097         * config-post.h (alloca): Updated declaration to not enumerate all
2098         Windows compilers.
2099
2100 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2101
2102         * openssl.c (openssl_errstr): Separate error messages with "; ".
2103
2104 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
2105
2106         * ftp.c (getftp): Ditto.
2107
2108         * http.c (gethttp): Use fd_errstr.
2109
2110         * connect.c (fd_register_transport): Restructure parameters to
2111         include only a single structure that describes transport
2112         implementation.
2113
2114         * openssl.c (openssl_errstr): New function: dump SSL error strings
2115         into a static buffer and return a pointer to the buffer.
2116
2117         * connect.c (fd_errstr): New function; returns transport-specific
2118         error message, or strerror(errno) if transport doesn't supply one.
2119
2120 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
2121
2122         * mswindows.h: Also wrap accept() and listen().
2123
2124 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
2125
2126         * url.c (path_end): Skip separators appropriate for the scheme.
2127         (strpbrk_or_eos): Remove gcc-specific version, as the optimization
2128         it tried to perform no longer applies.
2129
2130 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2131
2132         * host.c: Don't include "connect.h" now that we no longer have
2133         socket_has_inet6.
2134
2135 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2136
2137         * host.c: Remove extraneous definition of netdb.h.
2138
2139 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2140
2141         * http.c (gethttp): Skip error message body in the keep-alive
2142         case.
2143
2144 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2145
2146         * url.c (url_parse): Would crash when parsing fragments.  Support
2147         fragments for FTP URLs too.
2148
2149 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2150
2151         * version.c: Don't use "cvs" in version name, since we're not
2152         using CVS anymore.
2153
2154 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2155
2156         * progress.c (create_image): Ditto.
2157
2158         * retr.c (retr_rate): Display smaller rate numbers with greater
2159         precision.
2160
2161 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2162
2163         * http.c (response_head_terminator): Minor optimization.
2164
2165         * retr.c (fd_read_hunk): Call terminator with pointer to the start
2166         of the data and the pointer to the current data.  Changed all
2167         callers.
2168
2169 2005-07-01  Hrvoje Niksic  <hniksic@xemacs.org>
2170
2171         * url.c (url_parse): Make sure u->params is not initialized for
2172         http/https URLs.
2173         (url_parse): Don't crash on garbage following []-delimited IPv6
2174         addresses.
2175
2176 2005-07-01  Hrvoje Niksic  <hniksic@xemacs.org>
2177
2178         * main.c (print_help): Don't refer to the non-existent -nr in
2179         description of --mirror.
2180
2181 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
2182
2183         * host.c (pretty_print_address): Renamed to just print_address.
2184         Clarify documentation.
2185
2186 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
2187
2188         * http.c (gethttp): Explicitly document the different cases when
2189         generating the Host header.
2190
2191 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
2192
2193         * host.c (pretty_print_address): Handle error result from
2194         inet_ntop.
2195
2196 2005-06-30  Gisle Vanem  <giva@bgnett.no>
2197
2198         * mswindows.c (inet_ntop): New function.  Print IPv6 addresses
2199         using WSAAddressToString.
2200
2201 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2202
2203         * progress.c (dot_update): Remove unused variable row_qty.
2204
2205 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2206
2207         * main.c: Check for both SIGHUP and SIGUSR1 before using them.
2208
2209 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2210
2211         * utils.c: Unconditionally include locale.h.
2212
2213 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2214
2215         * ptimer.c: Include sys/time.h to get struct timeval.
2216
2217 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2218
2219         * wget.h: Remove obsolete definition of with_thousand_seps_sum.
2220
2221 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2222
2223         * gnu-md5.h: Unconditionally include limits.h.
2224
2225 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2226
2227         * utils.c (random_number): Use lrand48 if available.
2228         (random_float): Use drand48 if available.
2229
2230 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2231
2232         * main.c (secs_to_human_time): Use print_decimal when printing
2233         total download time in seconds.
2234
2235         * progress.c (print_row_stats): Use it to print total download
2236         time at the end of the download.
2237         (create_image): Ditto.
2238
2239         * utils.c (print_decimal): New function; print small decimal
2240         numbers with more precision than large ones.
2241
2242         * progress.c (print_row_stats): New function.  Print ETA after the
2243         download rate at the end of each row.
2244
2245 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
2246
2247         * init.c (parse_line): Check for alphanumerics.
2248
2249 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
2250
2251         * (dot_create): Remove unnecessary casts.
2252
2253 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
2254
2255         * ftp.c (getftp): Delete trailing newlines from LIST output so
2256         lines don't come out with trailing \015\012 with -S.
2257
2258 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2259
2260         * mswindows.h: Remove superfluous includes.
2261
2262 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2263
2264         * config-post.h (alloca): Amend alloca declaration to take care of
2265         all Win32 compilers, not just MSVC and MinGW.
2266
2267 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2268
2269         * utils.c (get_grouping_data): Force separator to "." rather than
2270         " " when "," is taken.
2271
2272 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2273
2274         * wget.h (PTR_FORMAT): Cast the result of sizeof to int before
2275         passing it to printf's %*.
2276
2277         * retr.h: Declare output_stream and output_stream_regular.
2278
2279         * ftp.h: Declare ftp_last_respline.
2280
2281         * convert.h: Declare dl_url_file_map.
2282
2283         * http.h: New file.
2284
2285 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2286
2287         * cookies.c: Make cookies_now static.
2288
2289 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2290
2291         * utils.c (human_readable): Remove intermediary cast to long; MSVC
2292         has problems casting *unsigned* __int64 to double.
2293
2294 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2295
2296         * sysdep.h: Use the system-provided fnmatch by default.
2297
2298 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2299
2300         * http.c (mktime_from_utc): Renamed to timegm and moved to cmpt.c.
2301         Don't compile it if GNU timegm is available.
2302         (http_atotm): Use timegm.
2303
2304 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2305
2306         * http.c (http_atotm): Correctly query the old locale value.
2307
2308 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2309
2310         * config-post.h (alloca): Don't #define alloca under MinGW32,
2311         which defines it in malloc.h, included from mswindows.h.
2312
2313 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2314
2315         * utils.c (get_grouping_data): Force the use of separators in C
2316         locale.
2317
2318 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2319
2320         * main.c (i18n_initialize): Set all locale categories.
2321
2322         * http.c (http_atotm): Temporarily set locale to "C".
2323
2324 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2325
2326         * http.c (gethttp): Improve "POST data file missing" error
2327         message.
2328
2329 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2330
2331         * progress.c (set_progress_implementation): Type COLON as const
2332         char *.
2333
2334 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2335
2336         * utils.c (with_thousand_seps): Handle negative numbers.
2337
2338 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2339
2340         * progress.c (create_image): Mark the "eta" string for translation.
2341
2342 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2343
2344         * html-url.c (get_urls_file): Don't explicitly set entry->next to
2345         NULL since entry is already zeroed out.
2346
2347 2005-06-26  Gisle Vanem  <giva@bgnett.no>
2348
2349         * mswindows.h: Define gai_strerror under MinGW.
2350
2351 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2352
2353         * utils.c (with_thousand_seps): Correctly implement thousand seps
2354         consisting of more than one character.
2355
2356 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2357
2358         * main.c (secs_to_human_time): Ditto.
2359
2360         * progress.c (create_image): Print more exact duration of very
2361         short downloads.
2362
2363         * main.c (secs_to_human_time): Don't translate time suffixes "h",
2364         "m", and "s", which are not strictly SI, but are "accepted for use
2365         with SI".
2366         (secs_to_human_time): Print really small intervals as 0s, not
2367         0.00s.
2368
2369 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2370
2371         * config-post.h: Replace the alloca declaration with the one from
2372         the latest Autoconf manual.  This should remove a warning with GCC
2373         on AIX.
2374
2375 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2376
2377         * ftp.c (getftp): Always invoke SIZE, not only when continuing a
2378         download.
2379
2380         * main.c (main): Ditto here.
2381
2382         * progress.c (create_image): When the download is finished, print
2383         how long it took.
2384
2385 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2386
2387         * main.c (main): Print the downloaded and quota amounts with the
2388         "human_readable" function.
2389
2390         * ftp.c (print_length): Ditto.
2391
2392         * http.c (gethttp): Don't display thousand separators.
2393
2394         * utils.c (with_thousand_seps): Rewritten to respect locale
2395         settings and to be type size agnostic.
2396
2397 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2398
2399         * utils.c (human_readable): Divide with 1024 instead of shifting
2400         so the operation can work with non-integer N.
2401
2402 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2403
2404         * progress.c (eta_to_human): New logic for more human-readable
2405         ETA.
2406
2407 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2408
2409         * utils.c (with_thousand_seps_sum): Decrease buffer size so it
2410         cannot overrun add_thousand_seps's buffer.
2411
2412 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2413
2414         * utils.c (SPRINTF_WGINT): The correct format is %I64d, not just
2415         %I64.
2416
2417 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2418
2419         * http.c (http_loop): Don't warn about wildcards in HTTP URLs if
2420         globbing isn't requested in the first place.
2421
2422         * retr.c (retrieve_url): Temporarily turn off globbing when
2423         processing HTTP->FTP redirects.
2424
2425 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2426
2427         * utils.c (with_thousand_seps_sum): Now defined only if
2428         SUM_SIZE_INT is double.
2429
2430         * wget.h (SUM_SIZE_INT): Instead of bothering with long, long
2431         long, __int64, and friends, simply either use wgint or double, end
2432         of story.  Since we know how to print either, we no longer need
2433         LARGE_INT_FMT.
2434
2435         * sysdeps.h (LARGE_INT): Renamed to SUM_SIZE_INT to better reflect
2436         its intent, and moved to wget.h.
2437
2438 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2439
2440         * Makefile.in: No need to clean .libs.
2441
2442 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2443
2444         * cookies.c (parse_set_cookies): Cast pointer subtraction to int
2445         before using it with %d; AIX compiler warns on this.
2446         Reported by Jens Schleusener.
2447
2448 2005-06-24  Hrvoje Niksic  <hniksic@xemacs.org>
2449
2450         * http.c (gethttp): Don't prepend / here.
2451
2452         * cookies.c (cookie_handle_set_cookie): Prepend / to PATH.
2453         (cookie_header): Ditto.
2454
2455 2005-06-24  Hrvoje Niksic  <hniksic@xemacs.org>
2456
2457         * init.c: opt.verbose must be declared as int.
2458
2459 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
2460
2461         * cmpt.c (strpbrk): Removed.
2462         (mktime): Removed.
2463         Include <time.h>.
2464
2465 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
2466
2467         * utils.c (read_file): Ditto.
2468
2469         * main.c (main): Use struct_fstat.
2470
2471         * mswindows.h (struct_fstat): Define a struct_fstat to deal with
2472         the fact that Borland 5.5 has 64-bit stat, but not 64-bit fstat!
2473
2474 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
2475
2476         * sysdep.h: Remove code that deals with Watcom.
2477
2478 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2479
2480         * all: Use bool instead of int and false/true instead of 0/non-0
2481         for boolean variables and values.
2482
2483 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2484
2485         * sysdep.h: Include the stdbool.h/_Bool/bool blurb from Autoconf.
2486
2487 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2488
2489         * init.c (cmd_lockable_boolean): Removed.
2490
2491 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2492
2493         * cookies.c (struct cookie): Use 1-bit bitfields for booleans
2494         which makes the structure takes less space at no cost in
2495         complexity.
2496
2497 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2498
2499         * Makefile.in ($(OBJ)): Add the config.h dependency.
2500
2501 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2502
2503         * openssl.c, connect.c, host.c: Replace instances of #ifdef
2504         ENABLE_DEBUG if (opt.debug) {...} #endif with IF_DEBUG {...}.
2505
2506         * main.c: Rename the IF_DEBUG defined here to WHEN_DEBUG.
2507
2508         * wget.h (IF_DEBUG): New macro.
2509         (DEBUGP): Define in terms of IF_DEBUG.
2510
2511 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2512
2513         * http.c (gethttp): Only handle --set-cookies (and assert that
2514         cookie jar exists) if opt.cookies is true.  Failure to do so
2515         triggered the assert when --no-cookies was used and the server
2516         sent a Set-Cookie header.  Ouch!
2517
2518 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2519
2520         * connect.c (select_fd): Expect select() to exist.
2521
2522         * utils.c (xsleep): Always use select() as sleep fallback on
2523         non-Windows platforms.
2524
2525         * ptimer.c: Delete the implementation of PTIMER_TIME.
2526
2527         * main.c: Assume existence of signal(), test for different signal
2528         names instead.
2529
2530         * cmpt.c: Better document reasons why certain functions are
2531         included.
2532
2533 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2534
2535         * Makefile.in: Remove the manually maintained dependency list;
2536         make all object files depend on every header.
2537
2538 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
2539
2540         * hash.c: Rename "mapping" to "cell" to avoid confusion with the
2541         term "mapping" (or "map") sometimes being used for the entire hash
2542         table.  Also rename "non-empty" to "occupied" for easier reading
2543         of if (!NON_EMPTY (...)) ... .
2544
2545 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
2546
2547         * main.c, ptimer.c, sysdep.h, utils.c: Use #elif to simplify reading of
2548         chained if-else-else-else-... statements.
2549
2550 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
2551
2552         * all: Return type of signal handlers is `void'.  Include signal.h
2553         unconditionally.
2554
2555         * all: Don't explicitly cast values returned by malloc.  We no
2556         longer support ancient compilers that don't declare malloc, and we
2557         never supported C++ builds.
2558
2559 2005-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
2560
2561         * all: Don't declare errno.  Include both time.h and sys/time.h,
2562         as long as sys/time.h exists.  Don't dereference function pointers
2563         when invoking the functions they point to.
2564
2565         * cmpt.c (memmove): Remove function mandated by C89.
2566         (strerror): Ditto.
2567         (strstr): Ditto.
2568
2569         * all: Undo the K&R-ization changes from 2005-05-03.
2570
2571         * all: Remove support for K&R compilers: use C89 function
2572         declarations, remove definition of PARAMS, remove support for
2573         varargs, and remove ansi2knr.  Assume the presence of time.h,
2574         string.h, and other headers mandated by C89.
2575
2576 2005-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
2577
2578         * init.c (cmd_lockable_boolean): Don't recognize literal "2" and
2579         "-1" values; unlike 0 and 1, those should never be exposed to the
2580         user.  Update the error message to be more self-consistent, as
2581         proposed by Benno Schulenberg.
2582
2583 2005-06-18  Hrvoje Niksic  <hniksic@xemacs.org>
2584
2585         * http.c (gethttp): Don't free "head" before using it to save
2586         headers.
2587
2588 2005-06-18  Hrvoje Niksic  <hniksic@xemacs.org>
2589
2590         * http.c (gethttp): When -E is in use, check for file existence
2591         after appending ".html" to the name and modify the file name if
2592         necessary.
2593
2594 2005-06-17  Hrvoje Niksic  <hniksic@xemacs.org>
2595
2596         * connect.c (socket_has_inet6): Removed.
2597
2598         * host.c (lookup_host): Don't use the AI_ADDRCONFIG getaddrinfo
2599         hint.
2600
2601 2005-06-16  Hrvoje Niksic  <hniksic@xemacs.org>
2602
2603         * init.c (cmd_lockable_boolean): Improve the error message so it
2604         lists the more useful values first.
2605
2606 2005-06-15  Hrvoje Niksic  <hniksic@xemacs.org>
2607
2608         * http.c (gethttp): Also report the system error when the POST
2609         data file is missing.
2610
2611 2005-06-15  Benno Schulenberg  <benno@nietvergeten.nl>
2612
2613         * ftp.c, http.c, connect.c, cookies.c, html-url.c, init.c, res.c:
2614         Gettext-ize messages that were previously missed.
2615
2616 2005-06-15  Hrvoje Niksic  <hniksic@xemacs.org>
2617
2618         * host.h (ip_address): Remove the trailing comma from the type
2619         enum in the no-IPv6 case.
2620
2621         * main.c (struct cmdline_option): Remove the trailing comma from
2622         the enum.
2623
2624         Reported by Jens Schleusener.
2625
2626 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
2627
2628         * url.c (strpbrk_or_eos): Check for a recent GCC version before
2629         using the statement-as-expression extension.
2630
2631 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
2632
2633         * http.c (gethttp): Don't attempt to "skip short body" if we're
2634         issuing a HEAD request (in which case the response head is not
2635         followed by a body).
2636
2637 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
2638
2639         * init.c (cmd_spec_header): Don't split the string along the
2640         commas using cmd_vector; just append the new value using
2641         vec_append instead.
2642
2643         * utils.c (vec_append): New function.
2644
2645 2005-05-27  Andreas Beckmann  <debian@abeckmann.de>
2646
2647         * html-url.c (tag_handle_link): Mark the content from the <link
2648         src="..."> tag as expecting HTML.
2649
2650 2005-05-24  Hrvoje Niksic  <hniksic@xemacs.org>
2651
2652         * http.c (http_atotm): Document the origin of the "cookie date"
2653         format.
2654
2655 2005-05-21  Hrvoje Niksic  <hniksic@xemacs.org>
2656
2657         * init.c (setval_internal): Report exact command name alongside
2658         the "display name".
2659
2660 2005-05-18  Hrvoje Niksic  <hniksic@xemacs.org>
2661
2662         * cookies.c (update_cookie_field): Explicitly cast -1 to time_t to
2663         cope with systems where time_t is unsigned.
2664
2665         * cookies.c: Remove unnecessary casts to time_t from values
2666         already of that type.
2667
2668 2005-05-17  Hrvoje Niksic  <hniksic@xemacs.org>
2669
2670         * ftp.c (ftp_loop_internal): Same here.
2671
2672         * http.c (http_loop): Don't clobber the file when -c is specified
2673         and the first attempt to retrieve the file fails.
2674
2675 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
2676
2677         * openssl.c (ssl_check_certificate): Print all issues with a
2678         certificate.
2679
2680 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
2681
2682         * ftp-basic.c: Don't xfree() the line returned by ftp_response if
2683         the returned code is not FTPOK.
2684
2685 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
2686
2687         * init.c (cleanup): Don't free the non-existent opt.ftp_acc.  Free
2688         the SSL-related stuff.
2689
2690 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
2691
2692         * ftp.c (print_length): Consistently print \n at end of the
2693         "Length" line.
2694
2695 2005-05-14  Hrvoje Niksic  <hniksic@xemacs.org>
2696
2697         * openssl.c (ssl_connect): Announce the beginning and the end of
2698         the SSL handshake when in debug mode.
2699
2700         * wget.h (PTR_FORMAT): New macro for easier printing of pointer
2701         values.  Use %0*lx along with PTR_FORMAT instead of %p.
2702
2703 2005-05-14  Hrvoje Niksic  <hniksic@xemacs.org>
2704
2705         * http.c (gethttp): Would forget to close the connection when
2706         keep_alive was not used.
2707
2708 2005-05-13  Hrvoje Niksic  <hniksic@xemacs.org>
2709
2710         * openssl.c (pattern_match): Document the code that decides
2711         whether "*" matches ".".
2712
2713 2005-05-12  Hrvoje Niksic  <hniksic@xemacs.org>
2714
2715         * ftp-ls.c (ftp_index): Use %d to print the port number, which is
2716         now int.
2717         From Steven M. Schweda's VMS patches.
2718
2719 2005-05-12  Hrvoje Niksic  <hniksic@xemacs.org>
2720
2721         * url.c (rewrite_shorthand_url): Don't rewrite "https://host" to
2722         "ftp://https//host" when SSL is not used.
2723
2724 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
2725
2726         * openssl.c (ssl_check_server_identity): Renamed to
2727         ssl_check_certificate because it does more than just checking the
2728         server's identity.
2729         (ssl_check_certificate): Tell the user about
2730         --no-check-certificate.
2731
2732 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
2733
2734         * openssl.c (ssl_init): Always use SSL_VERIFY_NONE, so that the
2735         handshake finishes even if the certificate is invalid.  That way
2736         ssl_check_server_identity can provide better diagnostics on why
2737         the verification failed.
2738
2739 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
2740
2741         * openssl.c (pattern_match): New function.
2742         (ssl_check_server_identity): Treat peer certificate common name as
2743         wildcard.
2744
2745 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
2746
2747         * openssl.c (ssl_check_server_identity): Print certificate subject
2748         and issuer.
2749
2750 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
2751
2752         * res.c (res_register_specs): Correctly pass pointers to
2753         hash_table_get_pair.
2754
2755 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
2756
2757         * http.c (gethttp): Call ssl_check_server_identity.
2758
2759         * openssl.c (ssl_check_server_identity): New function, verifies
2760         that the host name in the certificate matches the actual host
2761         name.
2762         (verify_cert_callback): Removed, since it didn't do anything
2763         except returning the preverify_ok argument.
2764
2765         * connect.c (fd_transport_context): Allow retrieval of the context
2766         pointer registered with fd_register_transport.
2767
2768 2005-05-09  Hrvoje Niksic  <hniksic@xemacs.org>
2769
2770         * openssl.c (verify_cert_callback): Renamed from verify_callback.
2771         Always return the received "ok" value.  Print the X509 name in
2772         debug mode.
2773         (ssl_init): Enable partial writes in SSL context.
2774
2775 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
2776
2777         * http.c (http_loop): Check for wildcards in the URL path
2778         component, not in the whole URL.
2779
2780         * ftp.c (ftp_loop): Check for wildcards in URL path before
2781         unescaping, so the users can escape globbing metacharacters with %
2782         escapes.
2783
2784 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
2785
2786         * init.c (run_command): Correctly interpret the return value of
2787         parse_line.
2788         (commands): Re-alphabetize.
2789
2790 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
2791
2792         * netrc.c (parse_netrc): Explicitly check for assignment != NULL
2793         to silence warning from Borland C.
2794
2795         * url.c (sync_path): Don't unnecessarily increment p.
2796         (url_parse): Don't unnecessarily set url_encode to NULL just
2797         prior to return from the function.
2798
2799 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
2800
2801         * log.c (escnonprint_internal): Place variable declarations
2802         before other statements.
2803
2804 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
2805
2806         * html-url.c: Include recur.h.
2807
2808         * http.c (request_new): Define as accepting no args.
2809
2810 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
2811
2812         * url.c (strpbrk_or_eos): Made inline.  Use strchr(s, '\0') for
2813         finding the NUL char position.
2814
2815 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
2816
2817         * url.c (decide_copy_method): Renamed to char_needs_escaping.
2818         Since it now returns only two possible values, change it to return
2819         boolean (int).
2820
2821 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
2822
2823         * ftp-basic.c (ftp_request): Prevent newlines in VALUE causing
2824         inadvertent sending of multiple FTP commands.
2825
2826 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
2827
2828         * url.c (decide_copy_method): Never cause reencode_escapes to
2829         decode % escapes; it is too intrusive and breaks some servers.
2830
2831 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
2832
2833         * http.c (gethttp): When tunnelling SSL traffic over proxy with
2834         CONNECT, we're really talking to the remote server directly.
2835         Because of this, the request-line argument must be the URL path
2836         rather than the whole URL, as it would be when using regular
2837         proxies.
2838         Reported by Charles Lane.
2839
2840 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
2841
2842         * init.c (cmd_spec_useragent): Allow empty User-Agent.
2843
2844         * http.c (gethttp): Don't print "unknown authentication scheme"
2845         for failed Basic authentication.
2846         (SET_USER_AGENT): Don't set user-agent if opt.useragent is empty.
2847         (gethttp): Use alloca for allocation of www_authenticate.
2848
2849 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
2850
2851         * main.c (print_help): Fix wording of --secure-protocol help text.
2852
2853 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
2854
2855         * cmpt.c (strstr): Updated from glibc 2.3.5.
2856
2857 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2858
2859         * http.c (http_atotm): Zero out the whole struct tm being passed
2860         to strptime.
2861
2862 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2863
2864         * main.c (main): Propagate option name to setoptval.
2865
2866         * init.c (setoptval): Accept another argument, OPTNAME.  Propagate
2867         that argument as the option name independently of the actual
2868         command, determined by command_by_name(com).
2869
2870 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2871
2872         * init.c (parse_line): Make the return value indicate whether
2873         there was a syntax error or a setter failed.
2874         (run_wgetrc): Return an indication on whether an error has been
2875         encountered.
2876         (initialize): Abort if there have been errors running either
2877         .wgetrc file.
2878
2879 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2880
2881         * log.c (copy_and_escape): Slightly reduce code repetition between
2882         the two loops.
2883
2884 2005-05-05  Charles C.Fu  <ccwf@bacchus.com>
2885
2886         * utils.c (proclist): Strip leading slash when calling fnmatch
2887         too, otherwise wildcard comparisons always fail.
2888
2889 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2890
2891         * utils.c (touch): Set access time to current time.
2892
2893 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2894
2895         * url.c (url_unescape): Don't unescape %00, it effectively
2896         truncates the string.
2897
2898 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2899
2900         * log.c (copy_and_escape): Replace the FOR_URI argument with a
2901         slightly more general mechanism for specifying different kinds of
2902         escape.
2903
2904 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2905
2906         * ftp-basic.c (ftp_response): Fix printing FTP server response.
2907
2908 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2909
2910         * retr.c (limit_bandwidth_reset): Reset sleep_adjust.
2911         (limit_bandwidth): Don't allow huge "adjustment" values that
2912         result from being suspended for a while.
2913
2914 2005-05-04  Hrvoje Niksic  <hniksic@xemacs.org>
2915
2916         * wget.h: If gettext was found but libtintl.h wasn't, declare
2917         gettext's return type to avoid type mismatches.
2918
2919 2005-05-03  Hrvoje Niksic  <hniksic@xemacs.org>
2920
2921         * url.c (url_parse): Rename label `error' to avoid conflict with
2922         identifier.
2923
2924         * retr.c (fd_read_body): Rename label `out' to avoid conflict with
2925         identifier.
2926         (fd_read_hunk): Use explicit double constant.
2927         (retrieve_from_file): Don't use string concatenation.
2928         (sleep_between_retrievals): Make sure xsleep is called with a
2929         `double' argument.
2930         (no_proxy_match): Define as static, like it is declared.
2931
2932         * progress.c (bar_create): Use 0.0 instead of 0 because K&R
2933         compilers can't automatically promote it.
2934
2935         * http-ntlm.c (ntlm_output): Replace \xHH sequences with \OOO for
2936         the sake of old compilers.
2937
2938         * ftp.c (ftp_loop_internal): Don't use string concatenation.
2939
2940         * http.c (request_send): Use explicit double constants when
2941         calling fd_read and fd_write.
2942         (post_file): Ditto.
2943         (gethttp): Ditto.
2944         (skip_short_body): Ditto.
2945
2946         * ftp-basic.c: When calling fd_write, specify the last argument as
2947         a `double' constant for the sake of K&R compilers which don't see
2948         the prototype and therefore can't promote it to double
2949         automatically.
2950
2951         * cookies.c (cookie_jar_load): Rename abort label to abort_cookie
2952         to avoid name conflict in K&R compilers.
2953
2954 2005-04-29  Hrvoje Niksic  <hniksic@xemacs.org>
2955
2956         * ptimer.c (posix_init): Since we allow _POSIX_MONOTONIC_CLOCK==0,
2957         it is not enough to check for _POSIX_MONOTONIC_CLOCK-0, we must
2958         also check for defined(_POSIX_MONOTONIC_CLOCK).
2959
2960 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
2961
2962         * ftp.c, hash.c, connect.c, host.c, http.c: Remove unreached code,
2963         such as "break" following return or abort.
2964
2965 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
2966
2967         * init.c (commands): Wrap the use of opt.random_file in #ifdef
2968         HAVE_SSL.
2969
2970 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
2971
2972         * http.c (gethttp): Correctly set the user agent.
2973
2974 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
2975
2976         * init.c (cmd_spec_useragent): Free the old value of
2977         opt.useragent before setting the new one.
2978
2979 2005-04-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
2980
2981         * main.c: Map --ftp-password, --http-password and --proxy-password to
2982         the new ftppassword, httppassword and proxypassword commands
2983         respectively.  Document the --user and --password options in the help
2984         string.
2985         
2986 2005-04-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
2987
2988         * ftp.c: Add support for --user and --password.
2989         
2990         * http.c: Add support for --user and --password.
2991         
2992         * init.c: Deprecated ftppasswd, httppasswd, login, passwd and
2993         proxypasswd commands.  Added ftppassword, ftpuser, httppassword,
2994         password, proxypassword and user commands.
2995
2996         * main.c: Renamed --ftp-passwd to --ftp-password.  Added --ftp-user,
2997         --http-password, --password, --proxy-password and --user.  Deprecated
2998         --http-passwd and --proxy-passwd.  Added documentation for new options
2999         and removed documentation for deprecated options in the help string.
3000         
3001         * options.h (struct options): Added user and passwd members to handle
3002         --user and --password respectively.  Renamed ftp_acc and ftp_pass
3003         members to ftp_user and ftp_passwd for consistency.
3004
3005 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
3006
3007         * main.c (print_help): Advertise "DER", not "ASN1".
3008
3009 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
3010
3011         * openssl.c (init_prng): Disable the weak random seed by default.
3012
3013         * http.c (gethttp): Simplify SSL initialization; disable SSL when
3014         anything goes wrong with the initialization.
3015
3016         * options.h (struct options): New option opt.random_file.
3017
3018 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
3019
3020         * init.c: Wrap private key commands in IF_SSL.
3021
3022 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
3023
3024         * openssl.c (ssl_init): Ditto.
3025
3026         * options.h (struct options): Allow separate specification of key
3027         type and certificate type.
3028
3029         * init.c (cmd_spec_cert_type): Provide a "der" synonym for "asn1"
3030         certificate encoding.
3031
3032 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3033
3034         * openssl.c: Renamed "gen_sslfunc.c" to "openssl.c" and
3035         "gen_sslfunc.h" to "openssl.h".  This reflects the intent of
3036         openssl.c encapsulating the OpenSSL-specific code.
3037
3038 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3039
3040         * init.c: Renamed "closure" (a synonym for context in some
3041         cultures) to "place", which more accurately reflects the usage.
3042
3043 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3044
3045         * gen_sslfunc.c (ssl_init): Use default locations for loading the
3046         certificate bundles.
3047         (ssl_init_prng): Disable the cryptographically weak PRNG
3048         initialization fallback.
3049
3050         * init.c: Renamed SSL command-line arguments and wgetrc commands.
3051         (defaults): Check the server certificate by default.
3052
3053 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3054
3055         * cookies.c (cookie_handle_set_cookie): Delete the part of the
3056         path after the trailing slash.
3057
3058         * http.c (gethttp): Call cookie_handle_set_cookie with path that
3059         begins with '/'.
3060
3061 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3062
3063         * http.c (gethttp): Call skip_short_body only if keep_alive is in
3064         use.
3065         (gethttp): Send the User-Agent header with the CONNECT request as
3066         well.
3067
3068 2005-04-25  Hrvoje Niksic  <hniksic@xemacs.org>
3069
3070         * main.c (option_data): Removed support for the undocumented flag
3071         --use-proxy.
3072
3073 2005-04-25  Hrvoje Niksic  <hniksic@xemacs.org>
3074
3075         * main.c (option_data): Don't treat -Y as a boolean switch; treat
3076         it as a value switch instead, so "-Y off" continues to work.
3077
3078 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
3079
3080         * utils.c (aprintf): Delete unreachable statement.
3081
3082 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
3083
3084         * host.c (cmp_prefer_ipv4): New function.
3085         (cmp_prefer_ipv6): New function.
3086         (lookup_host): Use the appropriate comparator according to
3087         opt.prefer_family.
3088
3089         * init.c: New option prefer_family.
3090
3091         * host.c (is_valid_ipv6_address): Spell NS_* constants in lower
3092         case to avoid clash with system headers.
3093         (lookup_host): Reorder the addresses so that IPv4 ones come first.
3094
3095         * utils.c (stable_sort): New function.
3096
3097 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
3098
3099         * connect.c (retryable_socket_connect_error): Return 0 for
3100         ENETUNREACH and EHOSTUNREACH.
3101
3102 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
3103
3104         * cmpt.c: Reenable the memmove implementation for systems that
3105         lack it.
3106
3107         * http.c (gethttp): Store the "authorized" state of the persistent
3108         connection.
3109         (request_remove_header): New function.
3110         (gethttp): Don't send the "Basic" authentication if the connection
3111         is already authorized.
3112
3113 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
3114
3115         * utils.c (base64_encode): Treat input as unsigned chars.
3116         Required for correct encoding of binary stuff.
3117
3118 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
3119
3120         * http-ntlm.c: Format the function definitions in an
3121         ansi2knr-friendly fashion.
3122
3123 2005-04-22  Hrvoje Niksic  <hniksic@xemacs.org>
3124
3125         * http.c (gethttp): Handle multiple WWW-Authentication headers,
3126         only one of which is recognized.  Those are sent by IIS with NTLM
3127         authorization.
3128         (create_authorization_line): Propagate information whether
3129         authorization is finished.
3130         (gethttp): Only stop authorization when it's really finished, not
3131         after fixed two steps.
3132
3133 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
3134
3135         * gen_sslfunc.c (ssl_init): Fix warning message text; mark the
3136         message as translatable.
3137
3138 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
3139
3140         * main.c (print_help): Print the EGD option outside the cluster of
3141         SSL options.
3142
3143 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
3144
3145         * http-ntlm.c (ntlm_output): Fix setting the domain.
3146         Suggested by Sami Krank.
3147
3148 2005-04-20  Mauro Tortonesi  <mauro@ferrara.linux.it>
3149
3150         * connect.c: Set IPV6_V6ONLY socket option when -6 switch is used.
3151
3152 2005-04-20  FUJISHIMA Satsuki  <sf@FreeBSD.org>
3153
3154         * http.c (request_set_header): Fix the check whether a new header
3155         needs to be allocated.
3156
3157 2005-04-18  Hrvoje Niksic  <hniksic@xemacs.org>
3158
3159         * utils.c (base64_encode): Use the parameter order that makes more
3160         sense.  Return the length of the base64 written.  Updated all
3161         callers.
3162
3163 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
3164
3165         * http.c (request_set_header): Free NAME when VALUE is NULL and
3166         freeing the header name is requested.
3167
3168 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
3169
3170         * snprintf.c (fmtstr): Declare VALUE as const char *.
3171         Based on patch by Russ Allbery.
3172
3173 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
3174
3175         * snprintf.c (fmtfp): More correct handling of significant digit
3176         count with %g -- 0.002 has one significant digit, not three.
3177
3178 2005-04-16  Hrvoje Niksic  <hniksic@xemacs.org>
3179
3180         * retr.c (fd_read_body): Respect read timeout with non-interactive
3181         or no progress gauge -- treat ETIMEDOUT specially only when
3182         progress_interactive.
3183         Reported by FUJISHIMA Satsuki.
3184
3185 2005-04-16  FUJISHIMA Satsuki  <sf@FreeBSD.org>
3186
3187         * http.c (gethttp): Don't use HTTP/1.0 persistent connections over
3188         proxy.
3189
3190 2005-04-16  Hrvoje Niksic  <hniksic@xemacs.org>
3191
3192         * snprintf.c: Use the PARAMS macro to handle prototypes.  Write
3193         function definitions in the ansi2knr-friendly way.
3194         (fmtstr): If string precision is specified, don't read VALUE past
3195         it.
3196         (dopr): Actually print %g and %e formats.
3197         (fmtfp): Fix a bug that caused 0.01 to be printed as 0.1.
3198         (fmtfp): Use LLONG in floating point conversions to be able to
3199         convert more digits.
3200         (fmtfp): Interpret precision as number of significant digits with
3201         %g.
3202         (fmtfp): Omit trailing decimal zeros with %g.
3203
3204         * snprintf.c: Don't include <ctype.h> because none of it is used.
3205         Include strings.h/string.h, as per Autoconf.
3206
3207 2005-04-15  Hrvoje Niksic  <hniksic@xemacs.org>
3208
3209         * ptimer.c: Use _POSIX_TIMERS - 0 > 0, which handles the case when
3210         _POSIX_TIMERS is defined but empty, as well as the case when it is
3211         undefined.  Do the same with the check for _POSIX_MONOTONIC_CLOCK.
3212         Suggested by Larry Jones.
3213
3214 2005-04-15  Hrvoje Niksic  <hniksic@xemacs.org>
3215
3216         * ptimer.c: Check that _POSIX_TIMERS is defined as well as > 0.
3217         Problem reported by Steven M. Schweda.
3218
3219 2005-04-14  Hrvoje Niksic  <hniksic@xemacs.org>
3220
3221         * http.c (skip_short_body): Print the skipped body data in debug
3222         mode.
3223         (skip_short_body): Don't skip more than 4k of body data.
3224         (skip_short_body): Return whether the skipping was successful.
3225         (gethttp): If skip_short_body failed, invalidate the connection.
3226
3227 2005-04-12  Gisle Vanem  <giva@bgnett.no>
3228
3229         * ftp.c (getftp): Ditto.
3230
3231         * http.c (gethttp): Open the output file in binary mode.
3232
3233 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3234
3235         * hash.c: Conditionalize including config.h on HAVE_CONFIG_H
3236         instead of on STANDALONE.
3237
3238 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3239
3240         * gen_sslfunc.c (ssl_print_errors): Made static.
3241         (ssl_print_errors): Eliminate potentially dangerous fixed-size
3242         error buffer.  Passing NULL to ERR_error_string causes it to use
3243         its own static buffer, which is fine for our purposes.
3244
3245         * gen_sslfunc.c: Include gen_sslfunc.h.  Make the declarations of
3246         ssl_init and ssl_conect match the actual definitions.
3247         (ssl_connect): Simply return a boolean, the SSL context is no
3248         longer useful as a return value.
3249
3250         * retr.c: Don't include SSL headers; we don't need them.
3251
3252 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3253
3254         * config-post.h: Don't define _VA_LIST under Solaris; it breaks
3255         compilation with GCC 3.4 under Solaris 10.  (It was defined to
3256         avoid a warning with previous versions of GCC.)
3257
3258 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3259
3260         * xmalloc.c (register_ptr): Warn the user to increase SZ prior to
3261         aborting.
3262
3263 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3264
3265         * convert.c (convert_cleanup): Free converted_files.
3266
3267 2005-04-10  Hrvoje Niksic  <hniksic@xemacs.org>
3268
3269         * wget.h (DEBUGP): Use __builtin_expect to give a hint to GCC that
3270         opt.debug is false in the vast majority of cases.
3271
3272 2005-04-10  Hrvoje Niksic  <hniksic@xemacs.org>
3273
3274         * config-post.h: Declare alloca as void *, not char *.
3275
3276 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
3277
3278         * recur.c (download_child_p): When -p is used, (temporarily)
3279         ignore accept/reject rules for HTMLs, even when they are at the
3280         maximum recursion depth.  That is because with -p we are, if
3281         necessary, overstepping the max. depth to get the requisites.
3282
3283 2004-06-12  Larry Jones <lawrence.jones@ugsplm.com>
3284
3285         * recur.c (download_child_p): Correct the logic in check number 6:
3286         test opt.reclevel (not DEPTH) against INFINITE_RECURSION.
3287
3288 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
3289
3290         * url.c: Use "static const" in preference to "const static".
3291         Sun's cc warns that "storage class after type is obsolescent".
3292
3293         * url.c (urlchr_table): Don't mark ~ as unsafe, too many broken
3294         web sites are confused when ~ is changed to %7E.  Their servers
3295         redirect /%7Efoo/ to /~foo/, which Wget again accesses using %7E,
3296         causing further redirections, therefore looping infinitely.  See
3297         Debian bug #301624 for an example.
3298
3299 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
3300
3301         * alloca.c: Include wget.h to be able to use xmalloc.  In addition
3302         to defining malloc to xmalloc, also define free to xfree.
3303
3304 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
3305
3306         * http-ntlm.c (ntlm_output): Use "char", not "unsigned char" for
3307         ntlmbuf.  Our base64 functions accept char anyway.
3308         (ntlm_output): Join up the format string, since we nominally
3309         support K&R compilers.
3310         (ntlm_output): Ditto.
3311
3312 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3313
3314         * ptimer.c: Use Windows timers under Cygwin, whose POSIX timer
3315         implementation is incomplete.
3316
3317 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3318
3319         * ptimer.c (struct ptimer): Remove the unused initialized field.
3320
3321         * ptimer.c: Renamed function parameters from WT (which used to
3322         stand for wget_timer or wtimer) to PT.
3323
3324 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3325
3326         * ptimer.c (posix_init): Be smarter about choosing clocks.  In
3327         decreasing order of preference, use CLOCK_MONOTONIC,
3328         CLOCK_HIGHRES, and CLOCK_REALTIME.
3329         (ptimer_allocate): Removed.
3330
3331         * ptimer.c: Refactor the code by cleanly separating the
3332         architecture-dependent code from the architecture-independent
3333         code.
3334
3335 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3336
3337         * ptimer.c (ptimer_init): Explicitly check that
3338         _POSIX_MONOTONIC_CLOCK is *both* defined and >=0.  (Undefined
3339         symbols are >=0.)
3340
3341 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3342
3343         * ptimer.c (ptimer_diff): Fix typo affecting Windows build.
3344
3345 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3346
3347         * ptimer.c (ptimer_init): In fact, _POSIX_MONOTONIC_CLOCK needs to
3348         be >= 0.
3349
3350         * ptimer.c (ptimer_init): Check whether _POSIX_MONOTONIC_CLOCK is
3351         defined instead of whether it's greater than 0.  glibc defines it
3352         to 0, but still makes it available via sysconf.
3353
3354 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3355
3356         * mswindows.c (str_to_int64): Rename OVERFLOW and UNDERFLOW to
3357         INT64_OVERFLOW and INT64_UNDERFLOW, since those names are used.
3358
3359 2005-04-07  Hrvoje Niksic  <hniksic@xemacs.org>
3360
3361         * ptimer.c: New file.  Move the "wtimer" functions from utils.c to
3362         this file and rename them to ptimer_.
3363
3364 2005-04-07  Hrvoje Niksic  <hniksic@xemacs.org>
3365
3366         * host.c (NO_ADDRESS): Define NO_ADDRESS only after the system
3367         headers have been included.
3368
3369 2005-04-06  Hrvoje Niksic  <hniksic@xemacs.org>
3370
3371         * http.c (pconn): Include NTLM data, which is per-connection.
3372         (known_authentication_scheme_p): Recognize NTLM authorization.
3373         (create_authorization_line): Call ntlm_input and ntlm_output.
3374
3375         * http-ntlm.c: New file, donated by Daniel Stenberg and originally
3376         written for curl, heavily modified for Wget.
3377
3378         * utils.c (base64_encode): Relocated from http.c, since it is now
3379         used by http-ntlm.c, and will possibly be used elsewhere.
3380         (base64_decode): New function, originally based on code from GNU
3381         recode.
3382
3383 2005-04-02  Hrvoje Niksic  <hniksic@xemacs.org>
3384
3385         * ftp.c (ftp_loop): Ditto.
3386
3387         * ftp-basic.c (ftp_pasv): Use the xzero shorthand for memset(0).
3388         (ftp_lpsv): Ditto.
3389
3390 2005-04-05  Mauro Tortonesi  <mauro@ferrara.linux.it>
3391
3392         * Makefile.in: removed string_t.c from list of source files.
3393
3394 2005-04-04  Mauro Tortonesi  <mauro@ferrara.linux.it>
3395
3396         * string_t.c: Removed.
3397         
3398         * string_t.h: Removed.
3399
3400 2005-04-02  Hrvoje Niksic  <hniksic@xemacs.org>
3401
3402         * url.c (rewrite_shorthand_url): Only accept recognized schemes.
3403         That way "foo:80" will correctly be rewritten to "http://foo:80"
3404         instead of left unchanged and ultimately rejected because of
3405         "unsupported scheme foo".
3406
3407 2005-03-31  Hrvoje Niksic  <hniksic@xemacs.org>
3408
3409         * utils.c (number_to_string): Avoid explicit 64-bit constants;
3410         construct them by multiplication at compile-time.
3411
3412         * utils.c, elsewhere: Don't append "L" to 32-bit integer
3413         constants; we aren't really compilable on 16-bit systems anyway.
3414
3415         * hash.c (prime_size): Remove primes larger than 2^31, but include
3416         2^31-1, which is prime.
3417
3418 2005-03-30  Hrvoje Niksic  <hniksic@xemacs.org>
3419
3420         * utils.c (string_set_to_array): New function.
3421
3422         * convert.c: Replace the use of "slists" with sets/hash-tables,
3423         which in fact suit the intended purpose much better.
3424         downloaded_html_list is removed altogether.
3425
3426 2005-03-29  Hrvoje Niksic  <hniksic@xemacs.org>
3427
3428         * ftp.h (enum): Rename GLOBALL, GETALL, and GETONE to
3429         GLOB_GLOBALL, GLOB_GETALL, and GLOB_GETONE to avoid conflict with
3430         Linux headers.
3431
3432 2005-03-29  Hrvoje Niksic  <hniksic@xemacs.org>
3433
3434         * utils.c (numdigit): More correct handling of negative numbers.
3435
3436 2005-03-21  Hrvoje Niksic  <hniksic@xemacs.org>
3437
3438         * http.c (gethttp): Print the human-readable size.
3439
3440         * ftp.c (getftp): Print the human-readable size of the file to be
3441         downloaded.
3442
3443         * utils.c (human_readable): New function.
3444
3445         * utils.c: Renamed "legible" to "with_thousand_seps",
3446         "legible_large_int" to "with_thousand_seps_large", and "legible_1"
3447         to "add_thousand_seps".
3448
3449 2005-03-21  Hrvoje Niksic  <hniksic@xemacs.org>
3450
3451         * http.c (gethttp): Inhibit persistent connections when talking to
3452         proxies, as mandated by RFC 2068.
3453
3454 2005-03-20  Hrvoje Niksic  <hniksic@xemacs.org>
3455
3456         * url.c (unescape_single_char): New function.
3457         (url_escape_dir): Use it to unescape slashes in directory
3458         components.
3459         (url_string): Escape unsafe chars in host name, except for the ':'
3460         charaters, which can appear in IPv6 addresses.
3461
3462         * main.c (main): Don't access the cookie jar directly.
3463
3464         * log.c (escnonprint_internal): Correctly calculate the needed
3465         string size.  Don't forget the buffer's new size after having
3466         reallocated it.
3467         (log_cleanup): New function.  Free the escnonprint ring data.
3468
3469         * init.c (cleanup): Don't free the cookie jar explicitly, it is
3470         now done by http_cleanup.
3471         (cleanup): opt.user_headers is now a vector, free it with
3472         free_vec.
3473
3474         * http.c (gethttp): Make sure to free the request data, the status
3475         message, and the response data before returning from the function.
3476         (save_cookies): New function.
3477         (http_cleanup): Free the cookie jar here.
3478
3479         * hash.c: Renamed string_hash to hash_string and ptrhash to
3480         hash_pointer.  Exported hash_pointer.
3481
3482         * xmalloc.c: Organized malloc_table (previously malloc_debug) as a
3483         simple EQ hash table.  register_ptr and unregister_ptr are now of
3484         O(1) complexity.
3485
3486         * xmalloc.c: Renamed "*_debug" to debugging_* and "*_real" to
3487         checking_*.
3488
3489 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
3490
3491         * utils.c (debug_test_md5): Moved to gen-md5.c.
3492
3493         * mswindows.h: Don't declare inet_ntop, since we don't use it.
3494
3495         * mswindows.h: For consistency, also wrap closesocket, it being
3496         a Winsock call.
3497
3498         * mswindows.h: Don't declare sleep and usleep; we're defining
3499         xsleep now.
3500
3501         * mswindows.h (mkdir): Don't special-case Borland C, _mkdir
3502         works there as well.
3503
3504         * host.c: Don't include winsock header files; the correct ones
3505         are already included by mswindows.h.
3506
3507         * mswindows.c (xsleep): Round toward the nearest millisecond
3508         in an attempt to avoid average short sleeps.
3509
3510         * utils.c (wtimer_granularity): Report correct values for
3511         Windows timers and for high-resolution timers.
3512
3513         * utils.c (wtimer_initialize_once): New function, called to
3514         initialize the timer frequency.
3515
3516         * utils.c: Replace the use of GetSystemTime with high-resolution
3517         counters under Windows.  When high-resolution counters are
3518         unavailable, use GetTickCount().
3519
3520 2005-03-15  Hrvoje Niksic  <hniksic@xemacs.org>
3521
3522         * retr.c (fd_read_body): Undo the 2004-11-18 change.  Instead,
3523         always be "exact".
3524
3525 2005-03-17  Hrvoje Niksic  <hniksic@xemacs.org>
3526
3527         * ftp-basic.c (ftp_login): Don't free the string if ftp_response
3528         returned an error status because the line didn't get allocated in
3529         the first place.
3530
3531 2005-03-15  Hrvoje Niksic  <hniksic@xemacs.org>
3532
3533         * http.c (read_http_response_head): Limit the response size to 64k
3534         bytes.
3535
3536         * retr.c (fd_read_hunk): Accept a MAXSIZE argument that limits the
3537         number of bytes the function is allowed to allocate.
3538         (fd_read_line): Limit the line to 4096 bytes.
3539
3540 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
3541
3542         * wget.h: Include options.h after wgint has been defined.
3543
3544         * options.h (struct options): Declare options processed with
3545         cmd_bytes as wgint, not long.
3546
3547 2005-03-18  Hrvoje Niksic  <hniksic@xemacs.org>
3548
3549         * init.c (cmd_file): Use concat_strings.
3550
3551         * http.c (basic_authentication_encode): Use concat_strings.
3552
3553         * ftp-ls.c (ftp_index): Use concat_strings.
3554
3555         * ftp-basic.c (ftp_request): Use concat_strings.
3556
3557         * utils.c (concat_strings): New function.
3558
3559 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
3560
3561         * init.c (simple_atof): Handle negative numbers; skip whitespace
3562         before the number.
3563         (simple_atoi): Ditto.  Also, check for overflow and underflow.
3564         (cmd_number): Bail out on negative numbers.
3565         (parse_bytes_helper): Ditto.
3566
3567 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3568
3569         * http.c (gethttp): Handle multiple Set-Cookie headers sent by
3570         remote server.
3571
3572 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3573
3574         * init.c (defaults): Use passive FTP by default.
3575
3576 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3577
3578         * mswindows.c: Provide wrappers to Winsock functions that set
3579         errno to WSAGetLastError() in case of failure.  Also provide a
3580         Windows-specific version of strerror.
3581
3582         * mswindows.h: Wrap calls to socket, bind, connect, recv, send,
3583         select, getsockname, getpeername, and setsockopt.
3584
3585 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3586
3587         * url.c (url_parse): Reject port numbers larger than 65535.  We
3588         also check for overflow while parsing port numbers.
3589
3590 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3591
3592         * utils.c (read_file): Don't use wgint for file size; LFS won't
3593         work since the file is mmap'ed as a whole.
3594
3595         * options.h: Don't include stdio.h.
3596
3597         * log.c: Ditto.
3598
3599         * init.c: Disambiguate assignment from non-zero test to avoid
3600         Borland C warning.
3601
3602         * http.c (response_new): Don't needlessly post-increment count.
3603
3604         * hash.c: Include stdio.h.
3605
3606         * gnu-md5.h: Don't include stdio.h.
3607
3608         * getopt.h (struct option): Always use const.
3609
3610         * ftp.c (getftp): Avoid unnecessary assignment to RES to avoid
3611         Borland C warning.
3612
3613         * ftp-ls.c: Disambiguate assignment from non-zero test to avoid
3614         Borland C warning.
3615
3616         * cmpt.c (strptime_internal): Don't initialize rp_backup when
3617         !_NL_CURRENT to avoid Borland C warning.
3618
3619 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3620
3621         * utils.c (fopen_excl): Fix parse error when O_BINARY is
3622         available.
3623
3624 2005-03-05  Hrvoje Niksic  <hniksic@xemacs.org>
3625
3626         * url.c (url_file_name): Don't allow hosts named ".." to be
3627         appended as path elements.
3628
3629 2005-03-03  Hrvoje Niksic  <hniksic@xemacs.org>
3630
3631         * retr.c (retrieve_url): Escape location header.
3632
3633         * http.c (print_server_response_1): Escape server response when
3634         printing it.
3635         (gethttp): Escape host name, status message, location header, and
3636         content type.
3637         (http_loop): Escape error message from server.
3638
3639         * host.c (lookup_host): Escape host name when printing it.
3640
3641         * ftp.c (getftp): Escape user name when printing it.
3642         (getftp): Escape remote file and directory for printing.
3643         (getftp): Escape server listing when printing it.
3644         (ftp_retrieve_list): Escape link name and file name.
3645         (ftp_retrieve_glob): Escape file name.
3646
3647         * ftp-basic.c (ftp_response): Escape server response when printing
3648         it.
3649
3650         * cookies.c (parse_set_cookies): Escape the cookie field when
3651         printing it.
3652         (parse_set_cookies): Escape contents of remote header.
3653         (cookie_handle_set_cookie): Escape host name and cookie domain.
3654
3655         * connect.c (connect_to_ip): Escape the host name.
3656
3657         * log.c (escnonprint): New function, used for printing strings
3658         coming from the server that possibly contain non-ASCII characters.
3659         (escnonprint_uri): Ditto.
3660
3661 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
3662
3663         * ftp.c (getftp): Ditto.
3664
3665         * http.c (gethttp): When we're not supposed to overwrite files,
3666         use fopen_excl to open the file and recompute the file name.
3667
3668         * log.c (redirect_output): Use unique_create to avoid a race
3669         condition.
3670
3671         * mswindows.c (fake_fork_child): Use unique_create.
3672
3673         * utils.c (fopen_excl): New function that opens a stdio stream
3674         with the O_EXCL flag (where available).
3675         (unique_create): New function, like unique_name, but also creating
3676         the file and returning a file pointer.
3677         (fork_to_background): Use unique_create to create the file
3678         immediately to avoid race condition with multiple instances of
3679         wget -b.
3680
3681 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
3682
3683         * host.c (lookup_host): Test for AI_ADDRCONFIG directly, instead
3684         of checking for HAVE_GETADDRINFO_AI_ADDRCONFIG.
3685
3686 2005-02-23  Hrvoje Niksic  <hniksic@xemacs.org>
3687
3688         * host.c (is_valid_ipv6_address): Move here from url.c.
3689         (lookup_host): If the address is numeric, don't print the
3690         "resolving..." line, don't set up DNS timeouts, and set the
3691         AI_NUMERICHOST hint, where available.
3692
3693 2005-02-26  Gisle Vanem  <giva@bgnett.no>
3694
3695         * utils.c: Use the nnnLL syntax under GCC.  Define struct_stat to
3696         struct _stati64 under __MINGW32__ as well as under MS VC.
3697
3698 2005-02-26  Hrvoje Niksic  <hniksic@xemacs.org>
3699
3700         * utils.c: Use the nnnI64 syntax for __int64 constants under all
3701         Windows compilers.
3702         (SPRINTF_WGINT): Use "%I64" under all Windows compilers.
3703
3704         * mswindows.h (WGINT_MAX): Use the nnnI64 syntax for
3705         __int64 constants under all Windows compilers.
3706         (struct_stat): Use `struct stati64' under Borland C.
3707         (fstat): Don't redefine to _fstati64 under Borland.
3708
3709         * mswindows.c: Define str_to_int64 under Borland C as well as
3710         under (older) Visual C.
3711
3712 2005-02-25  Hrvoje Niksic  <hniksic@xemacs.org>
3713
3714         * ftp.c (getftp): Initialize err to suppress compiler warning.
3715
3716 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
3717
3718         * ftp.c (ftp_expected_bytes): Fix bug that caused infloop because
3719         of not correctly skipping the '(' character.
3720
3721 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
3722
3723         * mswindows.c (wget_ftello): Removed.
3724
3725         * mswindows.h: Remove bogus definition of stat.
3726         (wget_ftello): Remove the leftover ftello replacement.
3727
3728 2005-02-20  Hrvoje Niksic  <hniksic@xemacs.org>
3729
3730         * mswindows.c (wget_ftello): Wget's replacement for ftello.
3731
3732         * utils.c (file_size): Use ftello where available.
3733
3734         * ftp-ls.c (ftp_parse_unix_ls): Use str_to_wgint to parse the file
3735         size.
3736         (ftp_parse_winnt_ls): Ditto.
3737
3738         * ftp-basic.c (ftp_size): Use str_to_wgint to convert number to
3739         wgint; pass 10 instead of 0 as the BASE argument.
3740
3741         * ftp.c (ftp_expected_bytes): Use str_to_wgint to parse the file
3742         size.
3743
3744         * sysdep.h (LARGE_INT_FMT): Use __int64 as LARGE_INT on
3745         MSVC/Windows; print it with "%I64".
3746
3747         * wget.h: Define a `wgint' type, normally aliased to (the possibly
3748         64-bit variant of) off_t.
3749
3750         * all: Use `wgint' instead of `long' for numeric variables that
3751         can hold file sizes.
3752
3753         * utils.c (number_to_string): Support printing of `wgint'
3754         argument.
3755         (number_to_static_string): New function.
3756
3757         * all: Replace printf("%ld", long_value) with printf("%s",
3758         number_to_static_string(wgint_value)).
3759
3760 2005-02-18  Mauro Tortonesi <mauro@ferrara.linux.it>
3761
3762         * main.c: Added the --ftp-passwd command line option.
3763
3764         * init.c: Renamed command passwd to ftppasswd.
3765
3766 2005-02-11  Mauro Tortonesi <mauro@ferrara.linux.it>
3767         
3768         * string_t.c: Fixed a bug in do_escape and triggered escape of
3769         backslashes in string_escape to avoid ambiguities in the result
3770         string.
3771         
3772 2005-02-10  Mauro Tortonesi <mauro@ferrara.linux.it>
3773
3774         * string.h: Renamed to string_t.h to fix a compilation conflict 
3775         with the string.h header in the standard C library.
3776         
3777         * string.c: Renamed to string_t.c for consistency with string.h.
3778         
3779         * string_t.c: Ditto.
3780
3781         * string_t.h: Ditto.
3782         
3783 2004-12-31  Mauro Tortonesi <mauro@ferrara.linux.it>
3784
3785         * string.c: New file.
3786
3787         * string.h: New file.
3788
3789         * Makefile.in: Added string.c to the list of modules to compile.
3790
3791         * main.c: Updated copyright.
3792
3793 2004-11-18  Ulf Harnhammar <ulf.harnhammar.9485@student.uu.se>
3794
3795         * ftp-ls.c: Fixed a problem in ftp_parse_winnt_ls that could allow a
3796         malicious remote FTP server to crash wget.
3797
3798 2004-11-18  Hans-Andreas Engel <engel@node.ch>
3799
3800         * http.c: Enable --convert-links (-k) when a single page is downloaded
3801         via --output-document (-O).
3802
3803 2004-11-18  Mauro Tortonesi <mauro@deepspace6.net>
3804
3805         * connect.c: Minor correction to the comment in front of fd_peek.
3806
3807 2004-11-18  Leonid Petrov <nouser@lpetrov.net>
3808
3809         * retr.c: Fix a timeout problem in fd_read_body when using http_proxy.
3810
3811 2004-11-15  YAMAZAKI Makoto <Yamazaki.Makoto@fujixerox.co.jp>
3812
3813         * netrc.c: Fix termination by assertion bug in netrc parsing.
3814
3815 2004-05-09  David Fritz  <zeroxdf@att.net>
3816
3817         * mswindows.c (fake_fork): Pass entire command line to the child
3818         process.
3819
3820 2004-03-31  Hrvoje Niksic  <hniksic@xemacs.org>
3821
3822         * http.c (gethttp): Fix typo: SCHEME_SSL -> SCHEME_HTTPS.
3823
3824 2004-03-30  Hrvoje Niksic  <hniksic@xemacs.org>
3825
3826         * http.c (gethttp): Send the Proxy-Authorization header over
3827         non-SSL connections too.
3828
3829 2004-03-25  David Fritz  <zeroxdf@att.net>
3830
3831         * mswindows.c (fake_fork_child): Ignore error code when
3832         OpenFileMapping() fails; assume it failed because the object does
3833         not exist.
3834
3835 2004-03-24  David Fritz  <zeroxdf@att.net>
3836
3837         * mswindows.c (fake_fork): New function.
3838
3839         * mswindows.c (fork_to_background): Use it.
3840
3841 2004-03-19  David Fritz  <zeroxdf@att.net>
3842
3843         * mswindows.c (ws_hangup): Incorporate old fork_to_background()
3844         code.  Add event name argument.
3845         (fork_to_backgorund): Now a simple wrapper around ws_hangup().
3846         (ws_handler): Correctly handle the case when neither CTRLC_BACKGND
3847         nor CTRLBREAK_BACKGND are defined.  Don't bother handling close,
3848         logoff, or shutdown events.  Call ws_hangup() with the correct
3849         event name; don't assume it was CTRL+Break.
3850
3851 2004-03-19  Hrvoje Niksic  <hniksic@xemacs.org>
3852
3853         * url.c (url_parse): Decode %HH sequences in host name.
3854
3855 2004-03-04  Hrvoje Niksic  <hniksic@xemacs.org>
3856
3857         * convert.c (local_quote_string): Quote "#" as "%23" and "%" as
3858         "%25" when creating links to local files.
3859
3860 2004-03-02  David Fritz  <zeroxdf@att.net>
3861
3862         * mswindows.c (ws_percenttitle): Guard against future changes by
3863         doing nothing if the proper variables have not been initialized.
3864         Clamp percentage value.
3865
3866 2004-03-04  Gisle Vanem  <giva@bgnett.no>
3867
3868         * retr.c (fd_read_body): Don't change console title if quiet.
3869
3870 2004-02-25  David Fritz  <zeroxdf@att.net>
3871
3872         * mswindows.c (set_sleep_mode): Remove argument and return value.
3873         Call GetModuleHandle() instead of LoadLibrary()/FreeLibrary() for
3874         kernel32.dll.  Use typedef for function-pointer.  Don't cast
3875         l-value.  Don't use dereference operator when calling through
3876         function-pointer.
3877         (ws_startup): Update call to set_sleep_mode().
3878         (ws_cleanup): Remove call to set_sleep_mode().
3879
3880 2004-02-23  David Fritz  <zeroxdf@att.net>
3881
3882         * http.c (http_loop): Ditto.
3883
3884         * ftp.c (ftp_loop_internal): Update call to ws_changetitle().
3885
3886         * main.c (main): Don't bother calling ws_changetitle().
3887
3888         * mswindows.h (ws_changetitle): Update prototype.
3889
3890         * mswindows.c (ws_changetitle): Remove second argument.  Use
3891         xfree_null().
3892         (ws_percenttitle): Only update title when percentage has changed.
3893
3894 2004-02-23  David Fritz  <zeroxdf@att.net>
3895
3896         * mswindows.h: Ditto.
3897
3898         * mswindows.c: Misc. formatting/comment tweaks throughout.
3899
3900 2004-02-20  David Fritz  <zeroxdf@att.net>
3901
3902         * main.c (print_help): Remove call to ws_help().
3903
3904         * mswindows.c (ws_help): Remove.
3905
3906         * mswindows.h (ws_help): Remove.
3907
3908 2004-02-16  David Fritz  <zeroxdf@att.net>
3909
3910         * init.c (home_dir): Use aprintf() instead of xmalloc()/sprintf().
3911         Under Windows, if $HOME is not defined, use the directory that
3912         contains the Wget binary instead of hard-coded `C:\'.
3913         (wgetrc_file_name): Under Windows, look for $HOME/.wgetrc then, if
3914         not found, look for wget.ini in the directory of the Wget binary.
3915
3916         * mswindows.c (ws_mypath): Employ slightly more robust methodology.
3917         Strip trailing path separator.
3918
3919 2004-02-06  Hrvoje Niksic  <hniksic@xemacs.org>
3920
3921         * http.c (gethttp): Respect --ignore-length.
3922         (gethttp): Inhibit keep-alive if --ignore-length is specified.
3923
3924 2004-02-06  Hrvoje Niksic  <hniksic@xemacs.org>
3925
3926         * connect.c (sockaddr_set_data): Zero out
3927         sockaddr_in/sockaddr_in6.  Apparently BSD-derived stacks need this
3928         when binding a socket to local address.
3929
3930 2004-02-04  Hrvoje Niksic  <hniksic@xemacs.org>
3931
3932         * hash.c: Make the file compilable outside Wget source tree when
3933         -DSTANDALONE is used.
3934
3935 2004-01-29  Hrvoje Niksic  <hniksic@xemacs.org>
3936
3937         * utils.c (determine_screen_width): Return 0 if not running on
3938         Windows or on a TIOCGWINSZ-capable system.
3939
3940 2004-01-28  David Fritz  <zeroxdf@att.net>
3941
3942         * utils.c (determine_screen_width): Correctly determine console
3943         width under Windows.
3944
3945 2004-01-28  Christian Biere  <christianbiere@gmx.de>
3946
3947         * progress.c (bar_set_params): Fixed syntax error when HAVE_ISATTY
3948         was undefined.
3949
3950         * ftp.c (ftp_loop_internal): Allocate a larger buffer in case
3951         "try" gets translated to something large.  Ditto in http_loop in
3952         http.c.
3953
3954         * http.c (response_header_copy): Don't write to buf[BUFSIZE].
3955
3956         * ftp-opie.c (skey_response): Eliminate unnecessary string
3957         concatenation; just call gen_md5_update twice.
3958
3959 2004-01-25  Hrvoje Niksic  <hniksic@xemacs.org>
3960
3961         * utils.c (xsleep): Don't call usleep with values larger than
3962         1,000,000.
3963
3964 2003-12-16  Hrvoje Niksic  <hniksic@xemacs.org>
3965
3966         * http.c (gethttp): Fix generation of `Content-Length'.
3967
3968 2003-12-15  Gisle Vanem  <giva@bgnett.no>
3969
3970         * url.c (url_skip_credentials): Fixed return value; 'url' if no
3971         credentials.
3972
3973 2003-12-14  Hrvoje Niksic  <hniksic@xemacs.org>
3974
3975         * url.c (url_skip_credentials): Return a pointer directly.
3976
3977 2003-12-14  Hrvoje Niksic  <hniksic@xemacs.org>
3978
3979         * url.c (url_file_name): Ditto.
3980         (parse_errors): Ditto.
3981
3982         * retr.c (retr_rate): Ditto.
3983
3984         * progress.c (create_image): Ditto.
3985
3986         * netrc.c (parse_netrc): Ditto.
3987
3988         * main.c (struct cmdline_option): Ditto.
3989         (redirect_output_signal): Ditto.
3990
3991         * init.c (commands): Ditto.
3992
3993         * ftp-ls.c (ftp_index): Ditto.
3994
3995         * cookies.c (check_domain_match): Declare the pointer to a literal
3996         string as `const'.
3997
3998 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
3999
4000         * retr.c (fd_read_body): Pass total size to progress_create, not
4001         the remaining amount.
4002
4003 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
4004
4005         * retr.c (fd_read_body): Don't fiddle with "interactive timeout"
4006         if read timeout is unset.
4007
4008 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
4009
4010         * connect.c (bind_local): Don't set the IPV6_V6ONLY option on the
4011         socket.
4012
4013 2003-12-06  Hrvoje Niksic  <hniksic@xemacs.org>
4014
4015         * url.c (url_file_name): Respect the setting of
4016         opt.protocol_directories.
4017
4018         * main.c (main): Only check for ret=='?' when longindex is unset.
4019         (option_data): New option --protocol-directories.
4020
4021 2003-12-06  Hrvoje Niksic  <hniksic@xemacs.org>
4022
4023         * ftp.c (getftp): Ditto.
4024
4025         * http.c (gethttp): Correctly calculate bandwidth as total data
4026         read divided with download time.
4027
4028         * retr.c (fd_read_body): Separate the return values for data
4029         written and read.
4030
4031 2003-12-05  Hrvoje Niksic  <hniksic@xemacs.org>
4032
4033         * http.c (H_REDIRECTED): Respect the HTTP/1.1 "303 See Other"
4034         response code.
4035         Suggested by Dan Razzell.
4036
4037 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
4038
4039         * retr.c (fd_read_body): Report the amount of data *written* as
4040         amount_read.  This is not entirely logical, but that's what the
4041         callers expect, and it's not easy to change.
4042
4043         * ftp.c (ftp_loop_internal): Ditto.
4044
4045         * http.c (http_loop): Be smarter about assigning restval; if we're
4046         in the nth pass of a download, simply use the information we have
4047         about how much data has been retrieved as restval.
4048
4049         * ftp.c (getftp): Ditto for FTP "REST" command.
4050
4051         * http.c (gethttp): When the server doesn't respect range, skip
4052         the first RESTVAL bytes of the read body.  Never truncate the
4053         output file.
4054
4055         * retr.c (fd_read_body): Support skipping initial STARTPOS octets.
4056
4057 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
4058
4059         * http.c (skip_short_body): Renamed skip_body to skip_short_body;
4060         don't bother calling fd_read_body.
4061
4062 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
4063
4064         * retr.c (fd_read_body): Sanitize arguments and document them
4065         better.  Make sure the timer is created and updated only if
4066         necessary.  Updated callers.
4067
4068 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
4069
4070         * http.c (skip_body): New function.
4071         (gethttp): Use it to skip the body of the responses we don't care
4072         to download.  That allows us to reuse the connection.
4073         (gethttp): Trust that the HEAD requests will not generate body
4074         data.
4075
4076         * retr.c (fd_read_body): Don't write to OUT if it's NULL.
4077
4078 2003-11-29  Hrvoje Niksic  <hniksic@xemacs.org>
4079
4080         * http.c (gethttp): Initialize SSL only the first time when SSL
4081         URL is downloaded.
4082
4083 2003-11-29  Hrvoje Niksic  <hniksic@xemacs.org>
4084
4085         * cookies.c (cookie_header): Only generate the contents of the
4086         header, not the leading "Cookie: " or the trailing "\r\n".
4087
4088         * http.c (gethttp): When adding headers specified with `--header',
4089         allow them to override the headers generated by Wget.
4090
4091         * init.c (cmd_spec_header): Made opt.user_headers a vector.
4092
4093         * http.c (request_new): New function.  Returns a request structure
4094         which can be modified in various ways, most notably by adding HTTP
4095         headers to the request.
4096         (request_set_header): New function for adding the header to the
4097         request.  If the header is already available, it gets replaced.
4098         (request_send): Construct and send the request.
4099         (gethttp): Use the request_* functions to generate the request.
4100
4101 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
4102
4103         * http.c (gethttp): Don't include the Proxy-Authorization header
4104         in the request tunneled through proxy.
4105
4106 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
4107
4108         * http.c (gethttp): Use the CONNECT handle to establish SSL
4109         passthrough through non-SSL proxies.
4110
4111 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
4112
4113         * init.c: Don't #include netinet/Winsock stuff.
4114
4115 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
4116
4117         * http.c: Deleted the old functions header_process,
4118         header_extract_number, header_exists, header_strdup,
4119         http_process_range, http_process_none, http_process_type, and
4120         http_process_connection.
4121
4122         * http.c (response_new): New function.
4123         (response_header_bounds): Ditto.
4124         (response_header_copy): Ditto.
4125         (response_header_strdup): Ditto.
4126         (response_status): Ditto.
4127         (gethttp): Use the new response_* functions to parse the response.
4128         Support HTTP/0.9 responses.
4129
4130 2003-11-27  Hrvoje Niksic  <hniksic@xemacs.org>
4131
4132         * progress.c (create_image): Don't calculate ETA if nothing has
4133         been downloaded yet, because it causes division by zero.
4134
4135 2003-11-27  Hrvoje Niksic  <hniksic@xemacs.org>
4136
4137         * connect.c (bind_local): Rename sa_len to addrlen because IRIX
4138         headers define sa_len as a macro.
4139
4140 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
4141
4142         * html-parse.c (convert_and_copy): Remove embedded newlines when
4143         AP_TRIM_BLANKS is specified.
4144
4145 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
4146
4147         * ftp.c: Set con->csock to -1 where rbuf_uninitialize was
4148         previously used.
4149
4150 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
4151
4152         * Makefile.in (http$o): Added the trailing backslash that was
4153         missing.
4154
4155 2003-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
4156
4157         * headers.c: Removed.  The file is no longer relevant, now that no
4158         special handling of headers is done by the rbuf code.  Moved
4159         portions to http.c.
4160
4161 2003-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
4162
4163         * rbuf.c: Removed.
4164
4165         * ftp-basic.c (ftp_response): Use fd_read_line.  No longer use
4166         struct rbuf.  Updated all callers.
4167
4168         * http.c (gethttp): Use fd_read_head to read all the headers in
4169         one go.
4170         (next_header): New function.
4171
4172         * retr.c (fd_read_line): New function: reads a line from FD,
4173         leaving the rest of the data unread.
4174         (fd_read_head): New function.
4175
4176         * connect.c (fd_peek): New function, implements peeking.
4177         (poll_internal): New function.
4178         (fd_read): Use it.
4179         (fd_write): Ditto.
4180         (fd_peek): Ditto.
4181         (fd_register_transport): Allow registering a "peeker" callback.
4182
4183 2003-11-20  Hrvoje Niksic  <hniksic@xemacs.org>
4184
4185         * connect.c: Renamed xread/xwrite/xclose to
4186         fd_read/fd_write/fd_close.  The "x" prefix is not appropriate
4187         because the semantics have diverged from read/write/close too
4188         significantly.  Updated all callers.
4189
4190 2003-11-20  Hrvoje Niksic  <hniksic@xemacs.org>
4191
4192         * connect.c (sock_write): It's not necessary to initialize RES.
4193
4194 2003-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
4195
4196         * main.c (main): Don't reference opt.ipv4_only and opt.ipv6_only
4197         if IPv6 is disabled.
4198
4199 2003-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
4200
4201         * connect.c (socket_has_inet6): Only compile it if IPv6 is enabled
4202         and AI_ADDRCONFIG is missing.
4203
4204 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
4205
4206         * gen_sslfunc.c (ssl_init_prng): Warn the user when using a weak
4207         random seed.
4208
4209 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
4210
4211         * host.c (address_list_contains): Renamed address_list_find to
4212         address_list_contains because its result is boolean.
4213
4214 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
4215
4216         * connect.c (select_fd): Return 1 if select is not available.
4217
4218 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
4219
4220         * connect.c (connect_to_host): Don't reference address list after
4221         releasing it.
4222
4223 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
4224
4225         * main.c (print_help): Fix alignment of FTP options output.
4226
4227 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
4228
4229         * host.c (lookup_host): Check for the ability to create IPv6
4230         sockets here.
4231
4232         * init.c (defaults): Don't auto-set --inet4-only on IPv6-less
4233         systems.
4234
4235 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
4236
4237         * main.c (print_help): Fix typo in `-O' help message.  Fix docs of
4238         -Y/--proxy.  Fix docs of `--cookies' and `--glob'.  Improve docs
4239         of --convert-links.  Fix docs of SSL options.
4240
4241 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
4242
4243         * ftp-basic.c: Don't include <arpa/inet.h> and others because
4244         they're no longer needed.
4245
4246 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
4247
4248         * main.c (main): Don't allow setting of both opt.ipv4_only and
4249         opt.ipv6_only.
4250
4251         * init.c (defaults): Mark opt.ipv4_only specially when set
4252         automatically.
4253
4254 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
4255
4256         * host.c (lookup_host): Use AI_ADDRCONFIG only if the family is
4257         unspecified.  This ensures that specifying `--no-inet4' on systems
4258         where IPv6 resolves, but doesn't work behaves the same regardless
4259         of the availability of AI_ADDRCONFIG.
4260
4261 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
4262
4263         * host.c: Don't refer to the now-removed function
4264         forget_host_lookup in the documentation of lookup_host.
4265
4266 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
4267
4268         * http.c (persistent_available_p): Correctly specify the endpoint
4269         argument to socket_ip_address.
4270         (gethttp): When printing the "reusing connection to..." message,
4271         specify the host name of the reused connection, not the current
4272         host name.  That makes more sense because it provides a useful
4273         piece of information -- we know to which host we're supposed to
4274         connect anyway!
4275
4276 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
4277
4278         * init.c: Make sure the options are in alphabetic order!
4279
4280         * host.c (lookup_host): Merge lookup_host_passive and lookup_host
4281         after all -- having both would result in some code duplication.
4282         (lookup_host): Set hints.ai_family to AF_INET if ipv4_only is
4283         requested.  Likewise, set it to AF_INET6 for ipv6_only.  Specify
4284         AI_ADDRCONFIG where available.
4285         (lookup_host): New flag LH_REFRESH that specifies that a cached
4286         entry for HOST should be refreshed.
4287         (cache_query): New function.
4288         (cache_store): Ditto.
4289         (cache_remove): Ditto.
4290         (forget_host_lookup): No longer necessary, replaced with static
4291         function cache_remove.
4292
4293 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
4294
4295         * main.c: Enable -4 and -6 only if IPv6 is enabled.
4296
4297 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
4298
4299         * connect.c (register_transport): Renamed from register_extended.
4300         Explain the intended usage.
4301
4302 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
4303
4304         * url.c (uri_merge): Merging "foo" and "bar" should result in
4305         "bar", not in "foo/bar".
4306         (path_simplify): Don't remove empty path elements; don't
4307         special-case leading slash.
4308         (path_simplify): Don't swallow ".."'s at the beginning of string.
4309         E.g. simplify "foo/../../bar" as "../bar", not as "bar".
4310         (append_uri_pathel): Defang ".." path element upon encountering
4311         it.
4312
4313 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4314
4315         * http.c (persistent_available_p): Don't attempt to talk to two
4316         different SSL sites over the same secure connection.
4317
4318 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4319
4320         * http.c (gethttp): Ditto.
4321
4322         * ftp.c (getftp): Use retryable_socket_connect_error instead of
4323         CONNECT_ERROR.
4324
4325         * wget.h (CONNECT_ERROR): Removed.
4326
4327         * connect.c (retryable_socket_connect_error): New function instead
4328         of unsupported_socket_family_error.
4329
4330 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4331
4332         * wget.h (CONNECT_ERROR): Use it.
4333
4334         * connect.c (unsupported_socket_family_error): New function.
4335
4336 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4337
4338         * connect.c (bind_local): Renamed bindport to bind_local; return
4339         the socket directly.  Updated callers.
4340         (accept_connection): Renamed acceptport to accept_connection;
4341         return the created socket directly.  Updated callers.
4342
4343 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4344
4345         * init.c (defaults): Turn on opt.ipv4_only if we're compiling with
4346         IPv6, and AI_ADDRINFO is not available, and AF_INET6 sockets can't
4347         be created.
4348
4349 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4350
4351         * host.c (lookup_host): Document the fact that the addresses are
4352         returned in order.
4353
4354 2003-11-12  Hrvoje Niksic  <hniksic@xemacs.org>
4355
4356         * utils.c: Use limits.h only where available.
4357
4358         * hash.c: Use INVALID_PTR and INVALID_PTR_BYTE.  Include limits.h.
4359
4360 2003-11-11  Hrvoje Niksic  <hniksic@xemacs.org>
4361
4362         * main.c: Added options --inet4-only and --inet6-only.
4363
4364 2003-11-11  Hrvoje Niksic  <hniksic@xemacs.org>
4365
4366         * host.c (host_errstr): Use the more standard message "Unknown
4367         host".
4368
4369 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
4370
4371         * connect.c (connect_to_host): Use that flag to decide whether to
4372         re-resolve the host name.
4373
4374         * host.c (struct address_list): Added a flag that maintains
4375         whether the connection worked at some point.
4376
4377 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
4378
4379         * host.c (lookup_host): Special-case the numeric addresses only in
4380         the non-IPv6 case.
4381
4382 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
4383
4384         * connect.c (resolve_bind_address): Call lookup_host_passive.
4385         Make sure that opt.bind_address is resolved only once.
4386
4387         * host.c (lookup_host_passive): New function, handles "passive"
4388         lookups.
4389         (lookup_host): Remove the passive flags.  Remove the
4390         family-related flags -- use ip_default_family instead.
4391
4392 2003-11-09  Hrvoje Niksic  <hniksic@xemacs.org>
4393
4394         * html-url.c: Get URLs from <object data="...">.
4395
4396 2003-11-09  Hrvoje Niksic  <hniksic@xemacs.org>
4397
4398         * main.c (option_data): Specify the command to use for --mirror.
4399
4400 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4401
4402         * cookies.c (cookie_handle_set_cookie): Specify exact match for
4403         unspecified domains.
4404
4405 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4406
4407         * main.c (main): Removed one-letter options `-C', `-g', `-G', and
4408         `-s'.
4409
4410 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4411
4412         * main.c (main): Add --dont-remove-listing for backward
4413         compatibility with previous versions.
4414         (print_help): Fix typo, spotted by Dennis Smit.
4415
4416 2003-11-08  Gisle Vanem  <giva@bgnett.no>
4417
4418         * ftp-basic.c: Support Windows-2000 ftp servers. Win-2000 *is*
4419         Win-NT 5.0 so calling it ST_WINNT is okay I guess.
4420
4421 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4422
4423         * progress.c (update_speed_ring): Clear the speed ring when the
4424         download stalls.
4425
4426         * retr.c (get_contents): Specify 0.95s read timeout, so that the
4427         progress gauge can be updated even when data arrives very slowly
4428         or stalls.
4429
4430 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4431
4432         * utils.c (wtimer_allocate): Bless the use of wtimer_read on a
4433         timer that has merely been allocated because get_contents() does
4434         that.
4435         (wtimer_update): Abort if the timer is not initialized.
4436
4437 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4438
4439         * retr.c (get_contents): Pass the timer to limit_bandwidth().
4440
4441         * utils.c (wtimer_update): New function instead of wget_elapsed;
4442         just update the timer, but don't return anything.
4443         (wtimer_read): Read and return the last known value of the timer.
4444
4445 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4446
4447         * http.c (persistent_available_p): Instead of matching all the
4448         addresses of HOST and last host, determine the peer's IP address
4449         with socket_ip_address and see if that address is one of those
4450         HOST resolves to.
4451
4452         * host.c (address_list_match_all): Removed.
4453         (address_list_find): New function, finds an IP address in the
4454         address list.
4455
4456         * ftp.c (ftp_do_pasv): Get the peer's address here, and pass it to
4457         ftp_epsv so it doesn't need to call getpeername.
4458
4459         * ftp-basic.c (ftp_port): Use socket_ip_address instead of
4460         getpeername.
4461         (ftp_lprt): Ditto.
4462
4463         * connect.c (socket_ip_address): Replaces conaddr, generalized to
4464         either get peer's or local address.
4465         (sockaddr_get_data): Made local to this file.
4466
4467 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4468
4469         * hash.c (HASH_POSITION): Explicitly accept the hash function.
4470         (grow_hash_table): Extract ht->hash_function outside the loop.
4471         (hash_table_remove): Ditto.
4472         (hash_table_clear): Fill entries with 0xff to clear them.
4473         (hash_table_remove): Mark entries as deleted with the correct
4474         marker.
4475
4476 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4477
4478         * http.c (persistent_available_p): No reason for the host lookup
4479         to be silent -- it's a lookup like any other.
4480
4481 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4482
4483         * connect.c (register_extended): Check that fd >= 0.
4484
4485 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
4486
4487         * connect.c (LAZY_RETRIEVE_INFO): Set LAST_INFO.
4488
4489 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
4490
4491         * hash.c (NON_EMPTY): Use the all-bit-set value as the marker that
4492         the field is empty.  This allows NULL pointer and 0 value to be
4493         used as keys, which is necessary for the connect.c code to work
4494         when fd==0.
4495         (hash_table_new): Fill mappings with 0xff.
4496         (grow_hash_table): Ditto.
4497
4498 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
4499
4500         * url.c (url_parse): Allow empty ports.
4501
4502 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
4503
4504         * main.c (print_help): Break the help string into multiple chunks.
4505         (cmdline_option): New option handler OPT_FUNCALL.  Generalized
4506         HANDLE_CMD to generic DATA.
4507         (option_data): Use the new OPT_FUNCALL feature.
4508
4509 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
4510
4511         * log.h: Declare log_init, log_close, and
4512         log_request_redirect_output here.
4513
4514 2003-11-05  Dennis Smit  <ds@nerds-incorporated.org>
4515
4516         * main.c: (main): added --preserve-permissions option.
4517
4518         * ftp.c (ftp_retrieve_list): added support for
4519         --preserve-permissions option.
4520
4521         * init.c: added support for --preserve-permission option.
4522
4523         * option.h: added support for --preserve-permission option.
4524
4525 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
4526
4527         * main.c (init_switches): New function.  Convert option_data to
4528         long_options and short_options, which can be fed to getopt_long.
4529         (main): Execute command-line options by consulting option_data.
4530
4531 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
4532
4533         * gen_sslfunc.c (ssl_read): Implement a more correct check for
4534         EINTR.
4535         (ssl_write): Ditto.
4536         (init_ssl): Use a global SSL context.
4537
4538 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
4539
4540         * connect.c (xclose): Free INFO even if it doesn't provide a
4541         closer.
4542
4543 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
4544
4545         * connect.c: Updated all callers of
4546         iread/ssl_iread/iwrite/ssl_iwrite to use xread and xwrite instead.
4547
4548         * rbuf.h (struct rbuf): Removed the SSL member because SSL is
4549         handled automatically by xread.
4550
4551         * hash.c (ptrhash): Made private.
4552         (ptrcmp): Ditto.
4553         (inthash): Removed.
4554
4555         * connect.c (select_fd): Don't set errno, leave it to the caller.
4556
4557         * gen_sslfunc.c (connect_ssl): Use register_extended to register
4558         SSL callbacks for communication with SSL-enabled endpoints.
4559         (ssl_read): New function.
4560         (ssl_write): Ditto.
4561         (ssl_poll): Ditto.
4562         (ssl_close): Ditto.
4563
4564         * connect.c (register_extended): New function -- register
4565         callbacks for basic socket operations.
4566         (xread): Ditto.
4567         (xwrite): Ditto.
4568         (xclose): Ditto.
4569         (sock_read): New function, default implementation for reading.
4570         (sock_write): Ditto for writing.
4571         (sock_poll): Ditto for polling.
4572         (sock_close): Ditto for closing.
4573
4574 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
4575
4576         * connect.c (bindport): Fix compilation under pre-C99 compilers.
4577
4578 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
4579
4580         * connect.c (connect_to_ip): More compact error checking.
4581         (bindport): Don't treat failed setsockopt as a fatal error.
4582
4583 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
4584
4585         * connect.c (resolve_bind_address): Use a more accurate error
4586         message -- we're not binding to ANY, we're disabling bind
4587         altogether.
4588
4589 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
4590
4591         * cookies.c (save_cookies_mapper): Respect the setting of
4592         keep-session-cookies.
4593         (cookie_jar_load): Import session cookies.
4594         Based on code submitted by Nicolas Schodet.
4595
4596         * utils.c (datetime_str): Use information in TM when it's
4597         non-NULL.
4598
4599         * main.c (main): New option `--keep-session-cookies'.
4600
4601 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
4602
4603         * Makefile.in (realclean): Delete config.h.in.
4604
4605 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
4606
4607         * config-post.h: New file, included from now autogenerated
4608         config.h.in.
4609
4610 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
4611
4612         * progress.c (progress_handle_sigwinch): Don't call
4613         determine_screen_width() from the signal handler.  Instead, just
4614         set a volatile variable.
4615         (bar_create): Check whether SIGWINCH was received.
4616         (bar_update): Ditto.
4617
4618         * sysdep.h: Define SYSTEM_FNMATCH only if HAVE_FNMATCH_H is true.
4619
4620 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4621
4622         * utils.c (xsleep): New function.  Uses nanosleep where available,
4623         resuming sleeps interrupted by signals.  Updated callers of sleep
4624         and usleep to use xsleep.
4625
4626 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4627
4628         * ftp-basic.c (ftp_login): Remove shadowing (and bogus)
4629         declaration of SEED.
4630
4631 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4632
4633         * log.c (logvprintf): Documented better.  Renamed to
4634         log_vprintf_internal to avoid confusion with the public API
4635         functions logprintf and logputs.
4636
4637 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4638
4639         * wget.h (N_): Don't parenthesize argument.
4640
4641 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4642
4643         * host.h (ADDRESS_IPV4_DATA): Don't take the address of in.s_addr
4644         because that doesn't work on machines that define it as bitfield.
4645
4646 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4647
4648         * connect.c (select_fd): Generalize the third argument into WAIT,
4649         so that the caller can request waiting for both read and write.
4650         Updated callers.
4651
4652 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
4653
4654         * html-url.c (cleanup_html_url): Destroy the hash tables, don't
4655         just call free on them.
4656         (init_interesting): Use hash_table_put instead of string_set_add
4657         because we don't need the strdup that the latter function
4658         performs.
4659
4660         * init.c (cleanup): Don't pass NULL to cookie_jar_delete.
4661
4662         * xmalloc.c (xfree_real): Abort when passed a NULL pointer.
4663         (xfree_debug): Print at the file and line of the offending call to
4664         free.
4665
4666 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
4667
4668         * wget.h: Retired the `boolean' type.  Moved the DEFAULT_LOGFILE
4669         define to log.h.  Moved the INFINITE_RECURSION define to recur.h.
4670
4671         * xmalloc.h: Renamed FREE_MAYBE to xfree_null and moved the
4672         definition from wget.h to xmalloc.h.
4673
4674 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
4675
4676         * html-parse.c (decode_entity): New function; split the decoding
4677         of entities here.
4678         (convert_and_copy): Use it to decode entities.
4679         (decode_entity): Handle the &apos entity.
4680         (decode_entity): Don't decode Latin 1 numeric entities.  Don't
4681         decode &#0.
4682
4683 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
4684
4685         * ftp-opie.c (calculate_skey_response): Use uint32_t instead of
4686         `unsigned long' for the cheksum array.  Document the function.
4687
4688 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
4689
4690         * connect.c (acceptport): Don't call select_fd when timeout is not
4691         requested.
4692
4693 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
4694
4695         * host.c: Removed the ip_default_family global variable.
4696
4697         * host.c (lookup_host): Document the function.  Fixed declaration
4698         of VEC.
4699
4700 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
4701
4702         * various: Use new macros xnew, xnew0, xnew_array, and xnew0_array
4703         in various places.
4704
4705 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
4706
4707         * wget.h: Move declarations of malloc and logging code to
4708         xmalloc.h and log.h respectively to unclutter this file.
4709         (STRDUP_ALLOCA): Made it side-effect free.
4710
4711         * xmalloc.h: New files.  Define macros xnew, xnew0, xnew_array,
4712         and xnew0_array.
4713
4714         * xmalloc.c: New file.  Move the xmalloc routines here.
4715
4716 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
4717
4718         * connect.c (sockaddr_set_data): Remove the broken code that
4719         checked for NULL address.
4720
4721 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
4722
4723         * host.c (address_list_from_single): Removed.
4724         (address_list_from_ipv4_addresses): Renamed from
4725         address_list_from_vector.
4726
4727 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
4728
4729         * sysdep.h (CLOSE): Don't call close on file descriptors less than
4730         0, i.e. on uncreated sockets.
4731
4732         * connect.c (resolve_bind_address): Work on struct sockaddr
4733         directly.
4734         (connect_to_host): Replacement for connect_to_many.  Resolve HOST
4735         and connect to any of its addresses.  If we can't connect and the
4736         host name lookup was cached, try to resolve it again.  This should
4737         fix problems with hosts behind dynamic DNS.  Updated all callers.
4738         (connect_to_ip): Replacement for connect_to_one.  Removed SILENT;
4739         added the argument PRINT instead.  Updated all callers.
4740         (set_connection_host_name): Removed.
4741
4742         * host.c (address_list_address_at): New function instead of
4743         address_list_copy_one. It returns a pointer to ip_address *, so
4744         it's not necessary to copy the data.
4745         (address_list_cached_p): New function.
4746         (forget_host_lookup): Ditto.
4747
4748         * connect.c: Got rid of the MSOCK global variable.  Made bindport
4749         return the local socket it creates.  Added a new argument to
4750         acceptport, the socket to call accept on.  Updated callers.
4751         (closeport): Removed.
4752
4753         * connect.c: Moved the sockaddr code from host.c to this file,
4754         because most of that stuff is used for connecting, and has nothing
4755         to do with host names anyway.
4756         (sockaddr_set_data, sockaddr_get_data): New functions, replace the
4757         old sockaddr_set_address, sockaddr_set_port, sockaddr_get_address,
4758         and sockaddr_get_port.
4759
4760 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
4761
4762         * sysdep.h: Use `S >= 8' rather than `S == 8' when looking for
4763         large integers.
4764
4765 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
4766
4767         * url.c (append_uri_pathel): New argument ESCAPED_P that says
4768         whether [B, E) is to be treated as URL-escaped or not.  If
4769         ESCAPED_P is false, don't unescape the region.
4770         (url_file_name): u->file is not URL-escaped.
4771
4772 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
4773
4774         * retr.c (retrieve_from_file): Use retrieve_tree for
4775         page-requisites.
4776
4777         * main.c (main): Don't define opt.recursive when -p is used.
4778         Instead, make sure that recursion is used for HTTP in that case.
4779
4780 2003-10-29  Hrvoje Niksic  <hniksic@xemacs.org>
4781
4782         * host.h: Defined accessors for elements of ip_address.  Updated
4783         all callers.
4784         (address_list_match_all): Use memcmp in the non-IPv6 case.
4785
4786         * wget.h (CONNECT_ERROR): Don't retry connecting if connect()
4787         returned EAFNOSUPPORT.
4788
4789 2003-10-27  Mauro Tortonesi <mauro@deepspace6.net>
4790
4791         * connect.h: changed bindport prototype and added the related
4792         BIND_ON_IPV4_ONLY and BIND_ON_IPV6_ONLY flags.
4793
4794         * connect.c: changed bindport and resolve_bind_address to allow
4795         protocol-version specific DNS resolution. modified conaddr,
4796         acceptport and connect_to_one to make use of struct
4797         sockaddr_storage and of the new ip_address structure.
4798
4799         * ftp-basic.c: added LPRT/LPSV (RFC1639) support, refactored
4800         PORT/PASV (RFC959) and EPRT/EPSV (RFC2428) support code.
4801
4802         * ftp.c: added the ftp_do_port and ftp_do_pasv functions to
4803         handle FTP over IPv6.
4804
4805         * ftp.h: changed prototype of ftp_epsv and added prototypes for
4806         ftp_lpsv, ftp_lprt and ftp_eprt.
4807
4808         * host.c: renamed the
4809         wget_sockaddr_set_address and wget_sockaddr_get_addr, and
4810         wget_sockaddr_{s,g}et_port couples to sockaddr_{s,g}et_address and
4811         sockaddr_{g,s}et_port respectively.  changed
4812         address_list_match_all, address_list_from_addrinfo sockaddr_len,
4813         pretty_print_address, lookup_host, sockaddr_{s,g}et_address and
4814         sockaddr_{g,s}et_port to make use of struct sockaddr_storage and
4815         of the new ip_address structure.  removed map_ipv4_to_ip and
4816         map_ip_to_ipv4.
4817
4818         * host.h: redefined structure ip_address and removed structure
4819         wget_sockaddr.
4820
4821 2003-10-26  Hrvoje Niksic  <hniksic@xemacs.org>
4822
4823         * sysdep.h: Include inttypes.h where available.
4824
4825         * host.c: Switch from u_int32_t to uint32_t.
4826
4827 2003-10-26  Hrvoje Niksic  <hniksic@xemacs.org>
4828
4829         * netrc.c (parse_netrc): Reset the QUOTE flag after the closing
4830         quote.
4831
4832 2003-10-25  Hrvoje Niksic  <hniksic@xemacs.org>
4833
4834         * url.c (is_valid_ipv6_address): Reformat to GNU coding style.
4835         Use enums for NS_IN* constants.  Use ISXDIGIT.
4836
4837         * convert.c (construct_relative): Document better how the function
4838         works.
4839
4840 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
4841
4842         * config.h.in: Deploy preprocessor magic to avoid Ultrix's
4843         <netdb.h> include <bitypes.h> which defines its own u_int32_t.
4844         Reported by Bernhard Simon.
4845
4846 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
4847
4848         * version.c: Bump version.
4849
4850 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
4851
4852         * url.c: Ditto.
4853
4854         * html-parse.c (advance_declaration): Don't use trailing comma in
4855         enum because older compilers don't support it.
4856
4857         * utils.c: Don't redefine HAVE_SIGSETJMP.
4858
4859 2003-10-16  Hrvoje Niksic  <hniksic@xemacs.org>
4860
4861         * convert.c (construct_relative): Don't handle absolute files
4862         specially -- for example, -P/tmp/foo shouldn't imply that
4863         converted files must refer to "/tmp/foo/..."!
4864
4865 2003-10-15  Hrvoje Niksic  <hniksic@xemacs.org>
4866
4867         * http.c: Consider status 307 a valid redirect.
4868
4869 2003-10-15  Philip Stadermann  <philip.stadermann@credativ.de>
4870
4871         * ftp.c (ftp_retrieve_glob): Correctly loop through the list whose
4872         elements might have been deleted.
4873
4874 2003-10-13  Hrvoje Niksic  <hniksic@xemacs.org>
4875
4876         * html-url.c (tag_handle_meta): Set the Refresh link to expect
4877         HTML.
4878         (append_one_url): Renamed to append_url.
4879
4880 2003-10-13  Hrvoje Niksic  <hniksic@xemacs.org>
4881
4882         * sysdep.h: Only define u_int32_t.
4883
4884 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
4885
4886         * utils.c (large_int_to_string): Use snprintf() to print the
4887         number.  This will work even on systems where libc doesn't
4888         understand %lld, but the compiler does, because it will use our
4889         snprintf replacement.
4890
4891         * init.c (parse_bytes_helper): New function.
4892         (cmd_bytes): Use it to parse bytes, but cast the result to long.
4893         (cmd_bytes_large): Ditto, but store the result to LARGE_INT.  Used
4894         for --quota so that --quota=10G works even on machines without
4895         long long.
4896
4897         * options.h (struct options): Declare quota as LARGE_INT.
4898
4899         * retr.c (downloaded_exceeds_quota): Removed.
4900         (downloaded_increase): Ditto.
4901         (total_downloaded_bytes): New variable, replaces opt.downloaded,
4902         which was the wrong place for it anyway.  Updated callers of
4903         downloaded_exceeds_quota and downloaded_increase to check this
4904         variable directly.
4905
4906         * sysdep.h: Get rid of VERY_LONG_TYPE.  Use LARGE_INT for the same
4907         purpose, defined as `long', `long long' or `double', depending on
4908         size of long and whether long long is available.
4909
4910 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
4911
4912         * sysdep.h: Also check size of short for int32_t.
4913
4914 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
4915
4916         * host.c (lookup_host): Use u_int32_t to store the result of
4917         inet_addr().  That removes the need for offset fiddling, caring
4918         about endian-ness, etc.
4919
4920         * sysdep.h: Define int32_t and u_int32_t if not available.
4921
4922 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
4923
4924         * ftp-basic.c (ftp_epsv): Use socklen_t * as the third argument to
4925         getpeername.
4926
4927         * config.h.in: Define socklen_t stub.
4928
4929         * host.c (sockaddr_len): Return socklen_t.
4930
4931         * connect.c (conaddr): Use socklen_t as the third argument to
4932         accept, getsockname, and connect.
4933
4934 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
4935
4936         * recur.c (retrieve_tree): Don't descend into documents that are
4937         not expected to contain HTML, regardless of their content-type.
4938
4939         * html-url.c (tag_url_attributes): Record which attributes are
4940         supposed to yield HTML links that can be followed.
4941         (tag_find_urls): Propagate that information to the caller through
4942         struct urlpos.
4943
4944 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
4945
4946         * hash.c (find_mapping): Return the next available mapping when
4947         the key is not found, not NULL.
4948         (hash_table_put): Use find_mapping to find the storage for the new
4949         data.
4950         (hash_table_put): Grow the table before exceeding maximum
4951         fullness, not afterwards.
4952
4953 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
4954
4955         * hash.c (hash_table_new): Slightly change the meaning of the
4956         first parameter.  Instead of being the minimum initial size, it is
4957         now the minimum number of items that the hash table can take
4958         without needing to resize.
4959
4960 2003-10-09  Hrvoje Niksic  <hniksic@xemacs.org>
4961
4962         * html-url.c (init_interesting): Initialize interesting_tags and
4963         interesting_attributes as hash tables.  This simplifies the code
4964         immensely because hash tables handle allocation and remove
4965         duplicates automatically.
4966         (find_tag): Removed.
4967         (collect_tags_mapper): Instead of calling find_tag, simply get the
4968         entry from interesting_tags hash table, which is both simpler and
4969         faster.
4970
4971 2003-10-09  Hrvoje Niksic  <hniksic@xemacs.org>
4972
4973         * hash.c (hash_table_get): Declare hash-table argument as const.
4974         (find_mapping): Ditto.
4975         (hash_table_get_pair): Ditto.
4976         (hash_table_contains): Ditto.
4977         (hash_table_count): Ditto.
4978
4979 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
4980
4981         * html-url.c (get_urls_html): Parse the appropriate flags to
4982         html-parse.c.
4983
4984         * html-parse.c (map_html_tags): Accept FLAGS from the caller
4985         instead of examining OPT.
4986
4987 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
4988
4989         * html-url.c (find_tag): Switch to binary search.
4990
4991 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
4992
4993         * main.c (print_help): Fix typo; stured -> stored.
4994
4995 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
4996
4997         * getopt.c: Add definitions of getopt_long and getopt_long_only.
4998
4999 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5000
5001         * config.h.in: Renamed DEBUG to ENABLE_DEBUG.  ENABLE_DEBUG is, I
5002         think, a better name, because it implies that debugging output is
5003         merely possible, not "on by default", as might be construed from
5004         just DEBUG.
5005
5006 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5007
5008         * ftp.c (has_insecure_name_p): Define it here.
5009
5010         * utils.c (has_wildcards_p): Define it here.
5011
5012         * sysdep.h: Declare fnmatch-related macros here, if not using
5013         system fnmatch().  Update .c files to not declare fnmatch.h
5014         directly.
5015
5016         * cmpt.c (fnmatch): Moved here.  Use it only under non-GNU libc.
5017
5018 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5019
5020         * getopt.c: Newer version, imported from Free libit.
5021
5022 2003-10-07  Hrvoje Niksic  <hniksic@xemacs.org>
5023
5024         * cookies.c (struct cookie): Remove unused backpointer to cookie
5025         jar.
5026
5027 2003-10-07  Hrvoje Niksic  <hniksic@xemacs.org>
5028
5029         * cmpt.c (memmove): Comment out, since it's no longer used.
5030
5031         * cookies.c (cookie_jar_generate_cookie_header): Allocate room for
5032         chains in one pass.
5033         (find_chains_of_host): Assume that the caller has allocated DEST
5034         to be sufficiently large to take all the data.
5035         (eliminate_dups): Run through the array and eliminate dups on the
5036         fly instead of using memmove.
5037         (cookie_jar_process_set_cookie): Free cookie->domain before
5038         re-setting it.
5039
5040 2003-10-05  Gisle Vanem  <giva@bgnett.no>
5041
5042         * mswindows.c (set_sleep_mode): Fix type of
5043         _SetThreadExecutionState.
5044
5045 2003-10-05  Hrvoje Niksic  <hniksic@xemacs.org>
5046
5047         * utils.c (file_size): Return -1 if fopen() returns NULL.  Prior
5048         to this patch, wget --post-file=nosuchfile dumped core.
5049
5050 2003-10-04  Gisle Vanem  <giva@bgnett.no>
5051
5052         * mswindows.c (run_with_timeout): Use WaitForSingleObject to wait
5053         for thread termination.
5054
5055 2003-10-04  Hrvoje Niksic  <hniksic@xemacs.org>
5056
5057         * log.c: Use `...' in function definitions; ansi2knr will convert
5058         them to va_dcl.  This allowed removal of the ugly VA_START_1 and
5059         VA_START_2 macros.
5060
5061 2003-10-03  Gisle Vanem  <giva@bgnett.no>
5062
5063         * connect.c: And don't include them here.
5064
5065         * mswindows.h: Include winsock headers here.
5066
5067 2003-10-03  Hrvoje Niksic  <hniksic@xemacs.org>
5068
5069         * html-parse.c (convert_and_copy): Move variable declarations
5070         before statements.
5071
5072 2003-10-02  Gisle Vanem  <giva@bgnett.no>
5073         
5074         * mswindows.c (run_with_timeout): For Windows: Run the 'fun' in a
5075         thread via a helper function. Continually query the thread's
5076         exit-code until finished or timed out.
5077
5078 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
5079
5080         * wget.h (XMALLOC_ARRAY): Removed.
5081         (ALLOCA_ARRAY): Ditto.
5082
5083         * html-parse.c: Renamed alloca_p to resized.
5084         (GROW_ARRAY): Renamed DO_REALLOC_FROM_ALLOCA to GROW_ARRAY and
5085         returned it to html-parse.c, since nothing else was using it.
5086
5087 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
5088
5089         * retr.c (retrieve_url): Initialize DUMMY storage for DT.  Caught
5090         by valgrind.
5091
5092 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
5093
5094         * html-parse.c (convert_and_copy): Handle numeric entities in
5095         hexadecimal, &#xHH.
5096         (convert_and_copy): Copy the contents directly to the pool without
5097         a stack-allocated intermediary.
5098
5099 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
5100
5101         * utils.c (alarm_set): New function; use either setitimer or alarm
5102         to set up the alarm.
5103         (alarm_cancel): New function; cancel the alarm set up by
5104         alarm_set.
5105         (run_with_timeout): Use them.
5106
5107 2003-10-01  Hrvoje Niksic  <hniksic@xemacs.org>
5108
5109         * url.c (url_parse): Don't leak memory when a reencoded URL turns
5110         out to be invalid.
5111
5112         * url.c (parse_errors): Mark error messages for translation.
5113         (url_error): Translate error messages returned to the caller.
5114
5115 2003-10-01  Hrvoje Niksic  <hniksic@xemacs.org>
5116
5117         * ftp.c (ftp_loop_internal): Initialize TMRATE to NULL to shut up
5118         the compiler.
5119
5120 2003-09-26  Gisle Vanem  <giva@bgnett.no>
5121
5122         * src/mswindows.c: Added ws_percenttitle() showing progress in the
5123         window titlebar. Called from retr.c. Secured ws_mypath().
5124
5125         * windows/config.h.ms: alloca() prototype not needed.  Removed
5126         "#undef ENABLE_NLS"; should be in Makefile IMHO. Moved
5127         WGET_USE_STDARG from mswindows.h to config.ms.h because of #ifdef
5128         in log.c. (MSVC's vararg.h and stdarg.h are incompatible).
5129
5130 2003-09-29  Aaron Hawley <Aaron.Hawley@uvm.edu>
5131
5132         * ftp.c (getftp): --spider option should now work with FTP
5133         downloads.
5134         (ftp_loop_internal): quiet reports and calculations of downloads
5135         when --spider option set, nor try deleting when --delete-after
5136         also set.
5137         (ftp_loop): --spider will skip HTML-ification of .listing file.
5138
5139 2003-09-26  Gisle Vanem  <giva@bgnett.no>
5140
5141         * mswindows.c (read_registry): Removed.
5142         (set_sleep_mode): New function.
5143         (windows_main_junk): Call it.
5144
5145 2003-09-26  Gisle Vanem  <giva@bgnett.no>
5146
5147         * mswindows.c (read_registry): Fix invocation of registry
5148         functions.
5149
5150         * mswindows.c (read_registry): Condition definitions of sleep and
5151         usleep with not HAVE_SLEEP and HAVE_USLEEP respectively.  Define
5152         HAVE_SLEEP and HAVE_USLEEP under __DMC__.
5153
5154 2003-09-24  Hrvoje Niksic  <hniksic@xemacs.org>
5155
5156         * url.c (url_escape_1): Revert unintentional change to lowercase
5157         xdigit escapes.
5158         (url_escape_dir): Document that this function depends on the
5159         output of url_escape_1.
5160
5161 2003-09-23  Hrvoje Niksic  <hniksic@xemacs.org>
5162
5163         * progress.c (create_image): Print the current ETA if we're done
5164         with the download.
5165         (create_image): Change '-' display char to '+' in the progress bar.
5166
5167         * Makefile.in (clean): Remove .libs.
5168
5169 2003-09-23  Hrvoje Niksic  <hniksic@xemacs.org>
5170
5171         * cookies.c (struct cookie): New flag domain_exact.
5172         (update_cookie_field): Skip leading dot in domain.
5173         (find_matching_chains): Match numeric addresses exactly; don't
5174         needlessly copy HOST to the stack.
5175         (matching_cookie): Added argument HOST.  If cookie->domain_exact
5176         is set, check that HOST is equal to cookie->domain.
5177         (cookie_jar_load): Only use TAB as delimiter.  Document the
5178         meaning of DOMAIN-FLAG.  Skip leading dot in domain.
5179         (cookie_jar_load): Don't ignore DOMAIN-FLAG -- instead, set
5180         domain_exact to true if DOMAIN-FLAG is false.
5181         (save_cookies_mapper): If domain_exact is false, prepend the
5182         domain with dot, like Mozilla does.
5183
5184 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
5185
5186         * progress.c (create_image): Print the initial part of the
5187         download with '-' characters, analogous to how dot progress prints
5188         the initial part with ','.
5189
5190         * hash.c (ptrhash): New function.
5191         (ptrcmp): Ditto.
5192         (hash_table_new): Default to identity hash table.
5193
5194 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
5195
5196         * safe-ctype.h (_sch_test): The cast of BIT to unsigned char was
5197         broken -- _sch_istable bitmasks are 16-bit, not 8-bit!  Cast BIT
5198         to unsigned short instead.
5199
5200 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
5201
5202         * url.c (path_simplify): Instead of calls to memmove, handle "./"
5203         and "../" by advancing pointers.
5204
5205 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
5206
5207         * retr.c (getproxy): Moved from url.c.
5208
5209         * convert.c: Split off link conversion from url.c into separate
5210         file.  Also included the book-keeping stuff from recur.c.
5211
5212 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5213
5214         * init.c: Improved documentation of functions.
5215         (cmd_boolean): Attempt to make code that tries to avoid calling
5216         strcmp for "speed" a bit more readable.
5217
5218         * init.c (simple_atof): Report error on encountering non-digit,
5219         non-"." character.
5220         (simple_atoi): Replacement for myatoi(), calling interface
5221         compatible with simple_atof.  Updated myatoi's callers.
5222
5223 2003-09-21  Bertrand Demiddelaer  <bert@b3rt.org>
5224
5225         * url.c (path_simplify): Would read two bytes past the end of the
5226         string in the "./" case.
5227
5228 2003-09-21  Matthew J. Mellon  <mellon@tymenet.com>
5229
5230         * http.c (gethttp): Recognize content-type "application/xhtml+xml"
5231         as what Wget considers "text/html".
5232
5233 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5234
5235         * connect.c (connect_with_timeout): Made timeout type double.
5236
5237         * options.h (struct options): New members read_timeout,
5238         dns_timeout, and connect_timeout.
5239         Use them.
5240
5241 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5242
5243         * init.c (simple_atof): New function.
5244         (cmd_time): Use it.
5245         (cmd_bytes): Accept things like "1.5k" and such.  Use simple_atof
5246         to parse decimals.
5247
5248         * retr.c (limit_bandwidth): Adjust each sleep by the error of the
5249         previous one.
5250
5251 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5252
5253         * main.c (main): Use setoptval() for setting the options.  Use
5254         run_command for `-e'.
5255
5256         * init.c (parse_line): Rewritten to return COMIND right away.
5257         Changed linkage to static.
5258         (run_wgetrc): Use the available comind when calling setval, so it
5259         doesn't have to be computed twice.
5260         (setval_internal): New function, runs the command's action without
5261         any error checking.
5262         (setoptval): New function, does what setval used to do, but exits
5263         in case of error.
5264         (run_command): New function.
5265
5266 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5267
5268         * connect.c (select_fd): Change MAXTIME's type to double.  Handle
5269         its decimal part.
5270
5271         * retr.c (sleep_between_retrievals): In the random-wait case, use
5272         random_float() to wait between 0 and 2*opt.wait seconds.
5273
5274         * utils.c (run_with_timeout): Accept `double' timeouts.  Correctly
5275         handle timeout values in (0, 1) range.
5276         (random_float): New function.
5277
5278         * options.h (struct options): Change the types of wait, waitretry,
5279         and timeout to double.
5280
5281         * init.c (cmd_time): Accept floating point time.
5282
5283 2003-09-20  Hrvoje Niksic  <hniksic@xemacs.org>
5284
5285         * retr.c (get_contents): Cosmetic fixes.
5286
5287 2003-09-20  Hrvoje Niksic  <hniksic@xemacs.org>
5288
5289         * url.c (uri_merge): Get rid of uri_merge_1.
5290         (uri_merge): Merge "foo//", "bar" as "foo//bar", not "foo///bar",
5291         i.e. don't add an extra slash merely because BASE ends with two
5292         slashes.
5293         (parse_credentials): Renamed from parse_uname.  Rewrittern in
5294         standard [beg, end) calling style.
5295         (url_skip_credentials): Renamed from url_skip_uname.  Made static.
5296         (url_skip_credentials): Include # and ; as terminators.  Old code
5297         would mistakenly consider "http://foo.com#hniksic@iskon.hr" to
5298         contain a username.
5299         (url_skip_scheme): Removed because it was unused.
5300         (url_has_scheme): Require "scheme" to be at least one char long.
5301
5302 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
5303
5304         * url.c (url_file_name): Expect NULL dir_prefix.
5305
5306         * init.c (cmd_file): Use a macro to prevent multiple #ifdef
5307         WINDOWS.
5308         (defaults): Set dir_prefix to NULL by default.
5309
5310 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
5311
5312         * safe-ctype.h (_sch_test): Cast BIT to unsigned char, like latest
5313         gcc does.
5314
5315 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
5316
5317         * wget.h (BOUNDED_TO_ALLOCA): Evaluate PLACE only once.
5318         (ARRAY_SIZE): Renamed to countof.  All callers updated.
5319
5320 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
5321
5322         * main.c (main): New option --strict-comments.
5323
5324         * html-parse.c (find_comment_end): New function: simple BM search
5325         for "-->".
5326         (map_html_tags): Use it if looking at a comment and not in strict
5327         comments mode.
5328
5329 2003-09-17  Aurelien Marchand  <artaxerxes@users.sf.net>
5330
5331         * ftp.h: Added OS400 system in enum
5332         * ftp-basic.c: recognize OS400 systems
5333         * ftp.c: don't prepend the CWD if talking to OS400, since it
5334         breaks the change in library
5335
5336 2003-09-18  Hrvoje Niksic  <hniksic@xemacs.org>
5337
5338         * retr.c (get_contents): Pass the correct argument to ssl_iread.
5339
5340 2003-09-18  Hrvoje Niksic  <hniksic@xemacs.org>
5341
5342         * safe-ctype.h: Don't #define ctype.h macros to errors because
5343         that loses when someone #include's ctype.h after safe-ctype.h.
5344
5345 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
5346
5347         * url.c: Undef U, W, C after use.
5348
5349 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
5350
5351         * init.c (cmd_spec_restrict_file_names): Allow the OS setting to
5352         be augmented by ",nocontrol" which means don't escape the control
5353         characters, but otherwise keep OS settings.
5354
5355         * url.c (file_unsafe_char): Deleted.
5356         (append_uri_pathel): Query filechr_table directly.
5357         (filechr_table): Separated Unix, Windows, and control-unsafe
5358         characters.
5359
5360 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
5361
5362         * url.c (url_escape_1): New function.
5363         (url_escape): Use it.
5364         (sync_path): Handle pathological cases where u->file and u->dir
5365         contain really strange characters.
5366         (ENCODE): Deleted.
5367         (REENCODE): Deleted.
5368
5369 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
5370
5371         * url.c (url_file_name): Don't reallocate FNAME if the file
5372         doesn't exist, as is usually the case.
5373
5374         * utils.c (unique_name): New flag allow_passthrough.
5375
5376 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
5377
5378         * utils.c (wtimer_sys_diff): Convert the time difference to signed
5379         __int64, then to double.  This works around MS VC++ 6 which can't
5380         convert unsigned __int64 to double directly.
5381
5382 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
5383
5384         * Makefile.in (clean): Also remove the core.<number> files
5385         produced by recent Linux systems.
5386
5387 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
5388
5389         * http.c (post_file): Don't pad the file if it's not large
5390         enough.  Bail out instead.
5391
5392 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5393
5394         * retr.c (get_contents): Reduce the buffer size to the amount of
5395         data that may pass through for one second.  This prevents long
5396         sleeps when limiting bandwidth.
5397
5398         * connect.c (connect_to_one): Reduce the socket's RCVBUF when
5399         bandwidth limitation to small values is requested.
5400
5401 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5402
5403         * progress.c (update_speed_ring): Moved the speed ring update to a
5404         separate function and documented it better.
5405
5406         * progress.c: Use `double' for most timers to support granularity
5407         smaller than 1ms.
5408
5409 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5410
5411         * wget.h (XDIGIT_TO_XCHAR): Implement as index into a literal
5412         string.
5413         (XDIGIT_TO_xchar): Ditto.
5414
5415 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5416
5417         * utils.c: Change the type of timer-related functions from long to
5418         double, for better precision.  On machines supporting gettimeofday
5419         the timers now work with granularity of less than one millisecond.
5420
5421 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5422
5423         * cookies.c (parse_set_cookies): Fixed the parser to handle more
5424         edge conditions.
5425         (test_cookies): New function, contains a test suite for
5426         parse_set_cookies.
5427
5428 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5429
5430         * url.c (strpbrk_or_eos): Implement as a macro under Gcc.
5431
5432 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5433
5434         * cookies.c (parse_set_cookies): Allow trailing space in
5435         set-cookies header.  Also, allow any amount of whitespace, not
5436         only one character.  Allow empty set-cookies header without
5437         spewing an error.
5438
5439 2003-09-14  Hrvoje Niksic  <hniksic@xemacs.org>
5440
5441         * url.c (append_uri_pathel): Use opt.restrict_file_names when
5442         calling file_unsafe_char.
5443
5444         * init.c: New command restrict_file_names.
5445
5446         * main.c (main): New option --restrict-file-names[=windows,unix].
5447
5448         * url.c (url_file_name): Renamed from url_filename.
5449         (url_file_name): Add directory and hostdir prefix here, not in
5450         mkstruct.
5451         (append_dir_structure): New function, does part of the work that
5452         used to be in mkstruct.  Iterates over path elements in u->path,
5453         calling append_uri_pathel on each one to append it to the file
5454         name.
5455         (append_uri_pathel): URL-unescape a path element and reencode it
5456         with a different set of rules, more appropriate for handling of
5457         files.
5458         (file_unsafe_char): New function, uses a lookup table to decide
5459         whether a character should be escaped for use in file name.
5460         (append_string): New utility function.
5461         (append_char): Ditto.
5462         (file_unsafe_char): New argument restrict_for_windows, decide
5463         whether Windows file names should be escaped in run-time.
5464
5465         * connect.c: Include <stdlib.h> to get prototype for abort().
5466
5467 2003-09-14  Hrvoje Niksic  <hniksic@xemacs.org>
5468
5469         * utils.c (wtimer_sys_set): Extracted the code that sets the
5470         current time here.
5471         (wtimer_reset): Call it.
5472         (wtimer_sys_diff): Extracted the code that calculates the
5473         difference between two system times here.
5474         (wtimer_elapsed): Call it.
5475         (wtimer_elapsed): Don't return a value smaller than the previous
5476         one, which could previously happen when system time is set back.
5477         Instead, reset start time to current time and note the elapsed
5478         offset for future calculations.  The returned times are now
5479         guaranteed to be monotonically nondecreasing.
5480
5481 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
5482
5483         * host.c (lookup_host): Print the result of the DNS lookup.
5484
5485 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
5486
5487         * init.c (cmd_boolean): Accept yes/no along with on/off.
5488         (cmd_lockable_boolean): Ditto.
5489
5490 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
5491
5492         * init.c: New command dns_cache.
5493
5494         * main.c (main): New option --dns-cache[=off].
5495
5496 2003-09-09  Hrvoje Niksic  <hniksic@xemacs.org>
5497
5498         * config.h.in: Initialize HAVE_GETADDRINFO and ENABLE_IPV6.
5499
5500         * all: Use #ifdef ENABLE_IPV6 instead of the older INET6.  Use
5501         HAVE_GETADDRINFO for getaddrinfo-related stuff.
5502
5503 2003-09-09  Hrvoje Niksic  <hniksic@xemacs.org>
5504
5505         * url.c (url_parse): Return an error if the URL contains a [...]
5506         IPv6 numeric address and we don't support IPv6.
5507
5508 2003-09-05  Hrvoje Niksic  <hniksic@xemacs.org>
5509
5510         * url.c (is_valid_ipv6_address): Modified to not require
5511         zero-terminated strings.
5512         (is_valid_ipv4_address): Ditto.
5513
5514 2003-09-05  Mauro Tortonesi <mauro@deepspace6.net>
5515
5516         src/url.c: added RFC 2732 compliance for URL parsing. The
5517         functions is_*_address valid are a modified version of
5518         glibc 2.3.2 inet_pton's code.
5519
5520 2003-09-03  Ahmon Dancy  <dancy@dancysoft.com>
5521
5522         * main.c init.c options.h: Added --retry-connrefused option so
5523         that Connection Refused failures are treated as non-fatal (when
5524         trying to retrieve from busy servers).
5525
5526         * wget.h: New CONNECT_ERROR macro for encapsulating this
5527         modification.
5528
5529         * ftp.c http.c : Use CONNECT_ERROR macro in places where
5530         ECONNREFUSED was checked.
5531
5532 2003-01-11  Ian Abbott  <abbotti@mev.co.uk>
5533
5534         * ftp.c (ftp_retrieve_glob): Reject insecure filenames as determined
5535         by calling new function has_insecure_name_p.  This is based on a
5536         patch by Red Hat.
5537
5538         * fnmatch.c (has_insecure_name_p): New function: returns non-zero
5539         if filename starts with `/' or contains `../' and is therefore
5540         considered insecure.
5541
5542         * fnmatch.h: Declare has_insecure_name_p().
5543
5544 2002-08-03  Hrvoje Niksic  <hniksic@xemacs.org>
5545
5546         * init.c (cmd_file): Allocate RESULT correctly.
5547
5548 2002-07-24  Hrvoje Niksic  <hniksic@xemacs.org>
5549
5550         * recur.c (retrieve_tree): Check whether downloaded_html_set is
5551         non-NULL before using it.
5552
5553 2002-05-27  Hrvoje Niksic  <hniksic@arsdigita.com>
5554
5555         * html-parse.c (NAME_CHAR_P): Allow almost any character here.
5556
5557 2002-05-24  Hrvoje Niksic  <hniksic@arsdigita.com>
5558
5559         * progress.c (bar_set_params): Fall back to dot progress if the
5560         terminal type is "emacs".
5561
5562 2002-05-20  Hrvoje Niksic  <hniksic@arsdigita.com>
5563
5564         * log.c: Don't #undef WGET_USE_STDARG.
5565
5566 2002-05-16  Hrvoje Niksic  <hniksic@arsdigita.com>
5567
5568         * hash.c (prime_size): Store the offset of the prime number in the
5569         prime table.  When searching, start with the given offset.
5570         (hash_table_new): Pass the pointer to ht->prime_offset to
5571         prime_size.
5572         (grow_hash_table): Ditto.
5573         (prime_size): Make 13 the first prime to make empty hash tables
5574         slightly smaller.
5575
5576 2002-05-16  Ian Abbott  <abbotti@mev.co.uk>
5577
5578         * recur.c (download_child_p): Minor optimization to avoid an
5579         unnecessary additional call to schemes_are_similar_p function.
5580
5581 2002-05-16  Ian Abbott  <abbotti@mev.co.uk>
5582
5583         * url.c (schemes_are_similar_p): New function to test enumerated
5584         scheme codes for similarity.
5585
5586         * url.h: Declare it.
5587
5588         * recur.c (download_child_p): Use it to compare schemes.  This
5589         also fixes a bug that allows hosts to be spanned (without the
5590         -H option) when the parent scheme is https and the child's is
5591         http or vice versa.
5592
5593 2002-05-14  Bill Richardson  <bill@riverstonenet.com>
5594
5595         * ftp.c (getftp): Don't ftruncate stdout.
5596
5597         * http.c (gethttp): Don't ftruncate stdout.
5598
5599 2002-05-09  Ian Abbott  <abbotti@mev.co.uk>
5600
5601         * cmpt.c (strptime_internal): Synched with glibc-2.1.3.
5602         (get_number): Ditto.
5603         (get_alt_number): Ditto.
5604         (__isleap): New function-like macro used by strptime.
5605         (day_of_the_week): New function used by strptime.
5606         (day_of_the_year): Ditto.
5607         (__mon_yday): Now shared by mktime and strptime implementations.
5608
5609 2002-05-08  Hrvoje Niksic  <hniksic@arsdigita.com>
5610
5611         * cookies.c (check_domain_match): Use match_tail in case
5612         insensitive mode.
5613
5614         * utils.c (match_tail): Allow the caller to specify case
5615         insensitive mode.
5616
5617         * cookies.c (store_cookie): When expiry_time is 0, print it as
5618         undefined, not indefinite.
5619
5620 2002-05-07  Ian Abbott  <abbotti@mev.co.uk>
5621
5622         * cookies.c (cookie_jar_process_set_cookie): Do not store
5623         discarded cookie.
5624
5625 2002-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
5626
5627         * cookies.c (check_domain_match): Allow cookies to be set for
5628         subdomains of unknown top-level domains under some circumstances.
5629
5630 2002-04-21  Thomas Lussnig  <thomas.lussnig@bewegungsmelder.de>
5631
5632         * gen_ssl.c:
5633         - allow checking of server cert
5634         - allow defining client cert type
5635         - allow limit of ssl protocol
5636         - check more return values
5637         - added debug message on break
5638
5639 2002-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
5640
5641         * recur.c (download_child_p): Revert order of items in check
5642         number 6 for clarity.
5643
5644 2002-04-20  Hrvoje Niksic  <hniksic@arsdigita.com>
5645
5646         * init.c: Ditto.
5647
5648         * main.c: Ditto.
5649
5650         * http.c: Use the new interface.
5651
5652         * cookies.c: Provide an OO-style "cookie jar" interface to enable
5653         separate cookie jars.
5654
5655         * http.c (http_atotm): Declare argument as const.
5656
5657 2002-04-20  Hrvoje Niksic  <hniksic@arsdigita.com>
5658
5659         * cookies.c (cookie_new): Default to PORT_ANY.
5660         (find_cookie_chain_exact): Only search by DOMAIN.
5661         (find_matching_cookie): Also check that PORT matches.
5662         (store_cookie): Only match the domain.
5663         (set_cookie_header_cb): When a cookie "fakes" a domain, assume it
5664         is valid for that host rather than discarding it completely.
5665         (find_matching_chains): Don't search by PORT.
5666         (matching_cookie): Also match PORT.
5667         (load_cookies): Set the port if specified, otherwise leave it as
5668         ANY.
5669         (save_cookies_mapper): Save the port if specified, otherwise leave
5670         it empty.
5671
5672 2002-04-19  Thomas Lussnig  <thomas.lussnig@bewegungsmelder.de>
5673
5674         * init.c: The option `egdfile' was not in sort order.
5675
5676 2002-04-16  Hrvoje Niksic  <hniksic@arsdigita.com>
5677
5678         * ftp.c (getftp): Treat directories that begin with <letter>: as
5679         absolute.
5680         (getftp): Strip trailing slashes from con->id before merging it
5681         with TARGET.
5682
5683 2002-04-16  Hrvoje Niksic  <hniksic@arsdigita.com>
5684
5685         * http.c (gethttp): If Content-Type is not given, assume
5686         text/html.
5687
5688 2002-04-15  Hrvoje Niksic  <hniksic@arsdigita.com>
5689
5690         * recur.c (download_child_p): Don't ignore rejection of HTML
5691         documents that are themselves leaves of recursion.
5692
5693 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
5694
5695         Makefile.in: Updated several dependencies for object files to take
5696         account of nested include files.
5697
5698 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
5699
5700         Makefile.in: The target `connect$o' (connect.o) now depends on
5701         `utils.h'
5702
5703 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
5704
5705         * host.c (SET_H_ERRNO): New function-like macro to set `h_errno'.
5706         (gethostbyname_with_timeout): Use it.
5707
5708         * utils.c: Don't define `SETJMP()', `run_with_timeout_env' or
5709         `abort_run_with_timeout()' when `USE_SIGNAL_TIMEOUT' is undefined.
5710
5711 2002-04-15  Hrvoje Niksic  <hniksic@arsdigita.com>
5712
5713         * host.c (getaddrinfo_with_timeout): New function.
5714         (gethostbyname_with_timeout): Ditto.
5715         (lookup_host): Use them.
5716
5717 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5718
5719         * utils.c (number_to_string): Handle the case when n < -INT_MAX.
5720
5721 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5722
5723         * init.c (comind): Use a marginally faster implementation of
5724         binary search.  To quote Martin Buchholz, "a nanosecond saved is a
5725         nanosecond earned."
5726
5727 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5728
5729         * main.c (print_help): Document `--post-data' and `--post-file'.
5730
5731 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5732
5733         * http.c (gethttp): Ditto.
5734
5735         * retr.c (retrieve_url): Initialize variables to appease the
5736         compiler.
5737
5738         * gen_sslfunc.c (ssl_iread): Don't handle EINTR when calling
5739         select_fd.
5740         (ssl_iwrite): Ditto.
5741
5742         * connect.c (select_fd): Rewrite to handle EINTR.  Set errno to
5743         ETIMEDOUT in case of timeout.
5744         (iread): No need to handle EINTR when calling select_fd.
5745         (iwrite): Ditto.
5746
5747 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5748
5749         * retr.c (retrieve_url): Make sure that POST is not honored for
5750         redirections.
5751
5752         * http.c (gethttp): Send the POST data when requested.
5753         (post_file): New function.
5754         (gethttp): Use it.
5755
5756         * main.c (main): Ditto.
5757
5758         * init.c: Add new options.
5759
5760         * options.h (struct options): New options post_data and
5761         post_file_name.
5762
5763 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5764
5765         * connect.c (connect_with_timeout): Firing SIGALRM can result in
5766         connect() exiting with EINTR.  Treat EINTR the same as ETIMEDOUT.
5767
5768 2002-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
5769
5770         * connect.c (connect_with_timeout): Use it.
5771
5772         * utils.c (run_with_timeout): New function.
5773
5774 2002-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
5775
5776         * url.c (getproxy): Accept a struct url argument.  This obviates
5777         the need for USE_PROXY_P.
5778
5779         * retr.c (retrieve_url): Allow proxy to be a non-FTP URL.
5780
5781         * ftp.c (getftp): Recognize FWTK-style proxy.
5782
5783 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
5784
5785         * config.h.in: Only define _VA_LIST when compiled with gcc.
5786
5787 2002-04012  Ian Abbott  <abbotti@mev.co.uk>
5788
5789         * http.c (http_loop): Compensate for MS Windows two-second
5790         granularity of file modification time when comparing timestamps.
5791
5792         * ftp.c (ftp_retrieve_list): Ditto.
5793
5794 2002-04-12  Ian Abbott  <abbotti@mev.co.uk>
5795
5796         * utils.c (has_html_suffix_p): New function to test filename for
5797         common html extensions.
5798
5799         * utils.h: Declare it.
5800
5801         * http.c (http_loop): Use it instead of previous test.
5802
5803         * retr.c (retrieve_url): Ditto.
5804
5805         * recur.c (download_child_p): Ditto.
5806
5807 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
5808
5809         * config.h.in: Define _VA_LIST on Solaris to prevent stdio.h from
5810         declaring va_list.
5811         From Kevin Rodgers <kevinr@ihs.com>.
5812
5813 2002-04-12  Ian Abbott  <abbotti@mev.co.uk>
5814
5815         * Makefile.in: Specify libtool mode explicitly when linking.
5816
5817 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
5818
5819         * connect.c (connect_with_timeout): New function.
5820         (connect_to_one): Use it.
5821
5822         * config.h.in: Add stubs for HAVE_SIGSETJMP, HAVE_SIGBLOCK, and
5823         HAVE_SETJMP_H.
5824
5825 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5826
5827         * log.c: Set WGET_USE_STDARG if __STDC__ is defined and stdarg.h
5828         is present.
5829
5830 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5831
5832         * progress.c (bar_create): If INITIAL is larger than TOTAL, fix
5833         TOTAL.
5834         (bar_finish): Likewise.
5835
5836 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5837
5838         * html-url.c (tag_handle_form): New function.  Pick up form
5839         actions and mark them for conversion only.
5840
5841 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5842
5843         * progress.c (struct progress_implementation): Use PARAMS when
5844         declaring the parameters of *create, *update, *finish, and
5845         *set_params.
5846
5847         * netrc.c: Ditto.
5848
5849         * http.c: Reformat some function definitions so that ansi2knr can
5850         read them.
5851
5852         * hash.c (struct hash_table): Use the PARAMS macro around
5853         parameters in the declaration of hash_function and test_function.
5854         (prime_size): Spell 2580823717UL and 3355070839UL as (unsigned
5855         long)0x99d43ea5 and (unsigned long)0xc7fa5177 respectively, so
5856         that pre-ANSI compilers can read them.
5857         (find_mapping): Use PARAMS when declaring EQUALS.
5858         (hash_table_put): Ditto.
5859
5860         * ftp.h: Wrap the parameters of ftp_index declaration in PARAMS.
5861
5862         * cookies.c (cookie_new): Use (unsigned long)0 instead of 0UL,
5863         which was unsupported by pre-ANSI compilers.
5864
5865         From Nelson H. F. Beebe <beebe@math.utah.edu>, for the most part.
5866
5867 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5868
5869         * url.c (url_filename): Use compose_file_name regardless of
5870         whether opt.dirstruct is set.
5871         (mkstruct): Don't handle the query and the reencoding of DIR; that
5872         is done in compose_file_name.
5873
5874 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
5875
5876         * wget.h: Ditto for extern char *exec_name.
5877
5878         * options.h: Don't guard against OPTIONS_DEFINED_HERE -- it is
5879         perfectly legal to follow an `extern' with a non-`extern' ones,
5880         provided the types match.
5881
5882         * main.c: Don't define OPTIONS_DEFINED_HERE.
5883
5884 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
5885
5886         * progress.c (create_image): Revert to calculating ETA based on
5887         average download speed.
5888         (create_image): Don't print ETA until the download has been active
5889         for at least 3 seconds.
5890         (create_image): When ETA is not available, don't print anything.
5891         The previous version would print --:--.
5892
5893 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
5894
5895         * progress.c (bar_update): Keep updating a subinterval until it
5896         reaches or exceeds a watermark.  That way the measurement will be
5897         guaranteed to span a configurable minimum of time.  The current
5898         default is 3s in 30 100ms intervals.
5899
5900 2002-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
5901
5902         * progress.c (bar_update): Maintain an array of the time it took
5903         to perform previous 30 network reads.
5904         (create_image): Calculate the download speed and ETA based on the
5905         last 30 reads, not the entire download.
5906         (create_image): Make sure that the ETA is not changed more than
5907         once per second.
5908
5909 2002-04-09  Ian Abbott  <abbotti@mev.co.uk>
5910
5911         * mswindows.c (borland_utime): New function conditionally defined
5912         when `HACK_BCC_UTIME_BUG' is defined.  A reimplementation of
5913         `utime()' as Borland's `utime()' function is broken on Windows 9x
5914         systems.  (Original patch by Chin-yuan Kuo <sr1111111@yahoo.com.tw>.)
5915
5916 2002-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
5917
5918         * ftp.c (ftp_loop): Propagate the result of ftp_retrieve_glob.
5919
5920 2002-03-26  Ian Abbott  <abbotti@mev.co.uk>
5921
5922         * Makefile.in: Updated several dependencies for object files.
5923
5924 2002-03-20  Ian Abbott  <abbotti@mev.co.uk>
5925
5926         * mswindows.c: Include "utils.h".
5927
5928 2002-03-18  Ian Abbott  <abbotti@mev.co.uk>
5929
5930         * host.h: Don't include netdb.h on windows.
5931
5932 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
5933
5934         * recur.c (retrieve_tree): Handle the case when start_url doesn't
5935         parse.
5936
5937 2002-02-19  Andreas Damm  <andreas-sourceforge@radab.org>
5938
5939         * wget.h (DO_REALLOC_FROM_ALLOCA): Multiply with sizeof(type) when
5940         calling xmalloc and memcpy.
5941
5942 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
5943
5944         * host.h: Include Unix-specific includes #ifndef WINDOWS.
5945         Patch originally provided by Christian Lackas.
5946
5947 2002-02-11  Christian Lackas  <delta@lackas.net>
5948
5949         * recur.c: recurive downloading for https fixed.
5950
5951 2002-02-19  Alan Eldridge  <alane@geeksrus.net>
5952
5953         * host.h: Also include <netinet/in.h> and <sys/socket.h>.
5954
5955         * ftp-basic.c: Also include <netinet/in.h>.
5956
5957 2002-02-05  Ian Abbott  <abbotti@mev.co.uk>
5958
5959         * http.c (gethttp): when -c used, mark already fully retrieved
5960         file as successfully retrieved.
5961
5962 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
5963
5964         * url.c (url_parse): Don't treat '?' as query string separator
5965         when parsing FTP URLs.
5966
5967 2002-02-01  Hrvoje Niksic  <hniksic@arsdigita.com>
5968
5969         * html-url.c (tag_handle_meta): Don't crash on <meta
5970         http-equiv=refresh> where content is missing.
5971
5972 2002-01-31  Herold Heiko  <Heiko.Herold@previnet.it>
5973
5974         * ftp-basic.c, host.c: don't include sys/socket.h, arpa/inet.h,
5975         netdb.h on windows.
5976
5977 2002-01-30  Hrvoje Niksic  <hniksic@arsdigita.com>
5978
5979         * retr.c (retrieve_url): Remove redirection cycle detection.  This
5980         is because some sites legitimately redirect the user back to the
5981         same location, e.g. after an authorization check performed by
5982         another page.  MAX_REDIRECTIONS is still used to prevent infinite
5983         redirection loops.
5984
5985 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
5986
5987         * http.c (gethttp): Wrap host name in square brackets if it
5988         contains a colon.
5989
5990 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
5991
5992         * url.c (url_parse): Allow all hex digits, not only decimal ones,
5993         to form an IP address.
5994
5995 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
5996
5997         * url.c (urlchr_table): Make square braces reserved, so we can
5998         parse http://[::1]/.
5999         (url_parse): Handle host in braces.
6000         (url_string): If url->host contains colons, wrap it in braces.
6001
6002 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6003
6004         * connect.c (resolve_bind_address): New function.
6005         (connect_to_one): Use it.
6006         (bindport): Ditto.
6007
6008         * init.c: Don't resolve bind-address here.
6009
6010         * host.c (wget_sockaddr_set_address): Would bug out with ADDR == NULL.
6011
6012 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6013
6014         * host.c (lookup_host): Use sizeof(ip4_address) to calculate the
6015         offset.
6016         (address_list_new): Use map_ipv4_to_ip.
6017         (wget_sockaddr_set_address): Convert ADDR to IPv4 before using it
6018         in IPv4 context.
6019
6020 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6021
6022         * source: Integrated IPv6 support.
6023         Written by Thomas Lussnig <thomas.lussnig@bewegungsmelder.de>.
6024
6025 2002-01-15  Ian Abbott  <abbotti@mev.co.uk>
6026
6027         * init.c (cmd_file): Change `\' to `/' for Windows (yes, really!)
6028         (cmd_directory): New function. Like cmd_file(), but strips
6029         trailing directory separators.
6030         (commands): Change action for "dirprefix" from `cmd_file' to
6031         `cmd_directory'.
6032
6033         * utils.c (make_directory): Allow intermediate `mkdir' calls to
6034         fail, as not all path components that do not exist should be
6035         directory components, especially under Windows.
6036
6037 2002-01-17  Hrvoje Niksic  <hniksic@arsdigita.com>
6038
6039         * netrc.c (parse_netrc): Skip leading whitespace before testing
6040         whether the line is empty.  Empty lines still contain the line
6041         terminator.
6042
6043 2002-01-15  Hrvoje Niksic  <hniksic@arsdigita.com>
6044
6045         * gen_sslfunc.c (ssl_iread): Call select on the file descriptor
6046         only if no data is pending in SSL buffers.
6047         From tony@bluetail.com.
6048
6049 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6050
6051         * headers.c (header_get): Strip trailing whitespace from the
6052         header.
6053
6054 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6055
6056         * url.c (parse_uname): URL-decode *USER and *PASSWD.
6057
6058 2002-01-07  Ian Abbott <abbotti@mev.co.uk>
6059
6060         * url.c (uri_merge_1): Deal with "net path" relative URL (one that
6061         starts with "//").
6062
6063 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6064
6065         * http.c (gethttp): Invalidate SOCK if get_contents encountered an
6066         error.
6067
6068 2001-12-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6069
6070         * version.c: Wget 1.8.1 is released.
6071
6072 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6073
6074         * version.c: Wget 1.8.1-pre3 is released.
6075
6076 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6077
6078         * recur.c (retrieve_tree): Enqueue the canonical representation of
6079         start_url, so that the test against dl_url_file_map works.
6080
6081 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6082
6083         * log.c (logputs): Check for requested verbosity before printing
6084         anything.
6085
6086 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6087
6088         * html-url.c (tag_handle_link): Treat the "shortcut icon" link as
6089         inline.
6090
6091 2001-12-18  Hrvoje Niksic  <hniksic@arsdigita.com>
6092
6093         * recur.c (retrieve_tree): Make a copy of file obtained from
6094         dl_url_file_map because the code calls xfree(file) later.
6095
6096 2001-12-18  Hrvoje Niksic  <hniksic@arsdigita.com>
6097
6098         * recur.c (register_html): Maintain a hash table of HTML files
6099         along with the list.  Disallow duplicates.
6100         (retrieve_tree): Use downloaded_html_set to check whether the file
6101         found in dl_url_file_map is an HTML file, and descend into it if
6102         so.
6103         (convert_all_links): Don't guard against duplicates in
6104         downloaded_html_list, since they are no longer possible.
6105
6106 2001-12-18  Ian Abbott  <abbotti@mev.co.uk>
6107
6108         * recur.c (retrieve_tree): Pass on referring URL when retrieving
6109         recursed URL.
6110
6111 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
6112
6113         * version.c: Wget 1.8.1-pre2 is released.
6114
6115 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
6116
6117         * retr.c (sleep_between_retrievals): Simplify indentation.
6118
6119 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
6120
6121         * gen_sslfunc.c (ssl_init_prng): Use random_number to get a byte
6122         of "randomness" at a time.
6123         (ssl_init_prng): Don't seed the PRNG; random_number will do that.
6124
6125         * retr.c (sleep_between_retrievals): Use it.  Make sure that the
6126         random amount averages in opt.wait.
6127         (sleep_between_retrievals): Don't seed the PRNG; random_number
6128         will do that.
6129
6130         * utils.c (random_number): New function.
6131
6132 2001-12-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6133
6134         * url.c (path_simplify): Move here from utils.c, and make static.
6135
6136 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6137
6138         * init.c (wgetrc_file_name): Print correct message when loading
6139         getenv("WGETRC") fails.
6140
6141 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6142
6143         * recur.c (register_download): Don't abort when one URL references
6144         two different files.
6145
6146 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6147
6148         * http.c (gethttp): Check for conn->scheme, not u->scheme, before
6149         calling ssl_iwrite.
6150
6151 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6152
6153         * version.c: Wget 1.8.1-pre1 is released.
6154
6155 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6156
6157         * res.c (matches): Fix broken URL in the docstring.
6158
6159 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6160
6161         * html-url.c (tag_url_attributes): Mark <embed href=...> as
6162         external.
6163
6164 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6165
6166         * url.c (get_urls_file): Cosmetic changes.
6167
6168 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6169
6170         * html-url.c (append_one_url): Resurrect warning when unable to
6171         resolve a relative link.
6172
6173 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6174
6175         * html-url.c (collect_tags_mapper): Break into several functions.
6176         (tag_url_attributes): Collect <embed href=...>.
6177
6178 2001-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6179
6180         * host.c: New type ipv4_address.  Use it consistently instead of
6181         `unsigned char[4]' and `unsigned char *'.
6182         (pretty_print_address): Accept a `const void *', to require even
6183         less casting.
6184
6185 2001-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6186
6187         * ftp-ls.c (ftp_parse_vms_ls): Fix obvious memory leaks.
6188
6189 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6190
6191         * main.c (main): Initialize progress after fork_to_background, so
6192         that it knows when to use dots.
6193
6194         * mswindows.c (ws_hangup): Call log_request_redirect_output.
6195
6196         * utils.c (fork_to_background): Print the PID of the child
6197         process.
6198
6199         * log.c (log_request_redirect_output): Set a flag that output
6200         redirection has been requested.  Doing anything else in a signal
6201         handler is unsafe.
6202         (check_redirect_output): New function: check whether redirection
6203         has been requested and, if so, call redirect_output().
6204         (logputs): Call check_redirect_output.
6205         (logprintf): Ditto.
6206         (debug_logprintf): Ditto.
6207         (redirect_output): Print clearer messages.
6208
6209         * main.c (redirect_output_signal): Don't call
6210         redirect_output_signal directly.  Instead, call
6211         log_request_redirect_output.
6212
6213         * utils.c (memfatal): Ditto.
6214
6215         * progress.c (display_image): Use it.
6216
6217         * log.c (log_set_save_context): New function: allow the caller to
6218         turn off saving log context lines.
6219
6220 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6221
6222         * host.c (address_list_set_faulty): Uncomment a sanity check.
6223
6224 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6225
6226         * utils.c (long_to_string): Return a pointer after where the
6227         number ends.
6228         (long_to_string): Rename to number_to_string.
6229
6230 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6231
6232         * utils.c (path_simplify): Correctly handle the unlikely case that
6233         b starts out as path + 1.
6234
6235 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6236
6237         * utils.c (path_simplify): Rewrite, with better comments, and
6238         without the use of strcpy to move overlapping blocks.
6239
6240 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6241
6242         * init.c (cmd_spec_progress): Resurrect.  Check whether VAL is a
6243         valid progress type before setting it.
6244
6245 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6246
6247         * main.c (main): Remove stray debugging message.
6248
6249 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6250
6251         * progress.c (create_image): Fix ETA padding when hours are prined.
6252
6253 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6254
6255         * version.c: Wget 1.8 is released.
6256
6257 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6258
6259         * url.c (reencode_string): Declare static.
6260
6261         * res.c (registered_specs): Declare static.
6262
6263         * progress.c (current_impl_locked): Declare static.
6264
6265         * log.c (flush_log_p): Declare static.
6266         (needs_flushing): Ditto.
6267
6268         * http.c (digest_authentication_encode): Declare static.
6269
6270         * html-url.c (init_interesting): Declare static.
6271
6272         * host.c (host_name_addresses_map): Declare static.
6273
6274         * cookies.c (find_matching_chains): Declare static.
6275
6276         * ftp-ls.c (ftp_parse_vms_ls): Warn about the memory leak
6277         indicated by lint.
6278
6279         * utils.c (path_simplify): Remove unused variable STUB_CHAR.
6280
6281         * host.c (address_list_set_faulty): Document that INDEX is
6282         currently unused.
6283
6284         * url.c (rewrite_shorthand_url): Remove unused variable PATH.
6285
6286 2001-12-08  Hrvoje Niksic  <hniksic@arsdigita.com>
6287
6288         * version.c: Wget 1.8-pre2 is released.
6289
6290 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6291
6292         * progress.c (progress_handle_sigwinch): Set up the signal again.
6293
6294         * utils.c: Include <sys/termios.h>, where Solaris defines
6295         TIOCGWINSZ.
6296
6297         * progress.c (bar_create): Don't use the last column on the screen.
6298         (create_image): Pad ETA to constant size.  Pad SIZE to nine digits
6299         only until it exceeded them.
6300
6301 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6302
6303         * version.c: Wget 1.8-pre1 is released.
6304
6305 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6306
6307         * progress.c (progress_create): Make sure that, when the output is
6308         redirected, the progress implementation gets changed to the
6309         fallback one.
6310         (bar_set_params): Set current_impl_locked to 1 when "force" is
6311         specified.
6312         (progress_create): Don't change the progress implementation if
6313         current_impl_locked is non-zero.
6314
6315         * main.c (redirect_output_signal): Call
6316         progress_schedule_redirect.
6317
6318         * progress.c (progress_schedule_redirect): New function.
6319
6320 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6321
6322         * log.c (logvprintf): Restructure to allow being called multiple
6323         times.
6324         (logprintf): Call logvprintf in a loop.
6325         (debug_logprintf): Ditto.
6326
6327 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6328
6329         * gen_sslfunc.c (ssl_init_prng): Allow the user to disable EGD by
6330         setting egd_file it to empty string.
6331
6332         * main.c (main): Change the option name from --sslegdsock to
6333         --egd-file.
6334
6335 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6336
6337         * gen_sslfunc.c (ssl_init_prng): Make the printed message
6338         translatable.
6339
6340 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6341
6342         * url.c (scheme_disable): New function.
6343
6344         * main.c (main): Call ssl_init_prng from here rather than from
6345         init_ssl, so that it has a chance to disable support for https
6346         before a URL has been resolved.
6347
6348         * gen_sslfunc.c (ssl_init_prng): Seed with rand() if all else
6349         failed.
6350         (ssl_init_prng): Disable support for https if seeding the PRNG
6351         fails.
6352
6353 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6354
6355         * utils.c (read_whole_line): Handle lines beginning with \0.
6356
6357 2001-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
6358
6359         * recur.c (convert_all_links): Guard against duplicates in
6360         downloaded_html_files.
6361         (register_download): Don't invalidate similar-looking URLs.
6362         (match_except_index): New function.
6363
6364 2001-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
6365
6366         * utils.c (path_simplify): Document with test cases.
6367
6368 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
6369
6370         * gen_sslfunc.c: Ditto.
6371
6372         * rbuf.c: Include <string.h>.
6373
6374 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
6375
6376         * recur.c (retrieve_tree): Check whether the URL was already
6377         downloaded before downloading it again.
6378         (descend_child_p): Renamed to download_child_p.
6379         (register_download): When one URL is downloaded to a file already
6380         "owned" by another URL, delete all references that map any URL to
6381         that file.
6382         (register_delete_file): New function.
6383         (retrieve_tree): Use it after deleting a file.
6384
6385         * url.c (url_parse): Re-canonicalize the URL also if the path is
6386         empty, so that e.g. "http://www.server.com" ->
6387         "http://www.server.com/".
6388         (lowercase_str): Use ISUPPER instead of !ISLOWER.
6389
6390         * retr.c (retrieve_url): Use the canonical URL form when calling
6391         register_download().
6392
6393 2001-12-04  Ian Abbott <abbotti@mev.co.uk>
6394
6395         * snprintf.c (dopr): Use `unsigned int' as the second argument to
6396         va_arg when casting to `unsigned short' is intended.
6397
6398 2001-12-04  Herold Heiko  <Heiko.Herold@previnet.it>
6399
6400         * gen_sslfunc.c: on windows provide ssl crypto random 
6401           initialization through RAND_screen(); could possibly
6402           be not enough for strong ssl communication (see the 
6403           relevant manual page from the openssl package).
6404
6405 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
6406
6407         * url.c (local_quote_string): Reenable quoting of question marks,
6408         but only when `--html-extension' is used.
6409
6410 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
6411
6412         * version.c: Wget 1.8-beta3 is released.
6413
6414 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
6415
6416         * snprintf.c (dopr): Cast the result of va_arg to short int and
6417         short unsigned int where these types are expected to be used.
6418
6419 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
6420
6421         * snprintf.c (dopr): Replace `short int' and `unsigned short int'
6422         with `int' when using it as the second argument to `va_arg'.
6423
6424 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
6425
6426         * host.c (address_list_new_one): New function.
6427         (lookup_host): Use it.
6428
6429 2001-12-03  Andre Majorel  <amajorel@teaser.fr>
6430
6431         * host.c (lookup_host): Don't initialize TMPSTORE directly because
6432         it's not legal C.
6433
6434 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
6435
6436         * ftp-basic.c (ftp_port): Don't return HOSTERR if we fail getting
6437         the socket data.
6438
6439         * ftp.c: Ditto.
6440
6441         * http.c: No need to declare h_errno.
6442
6443         * host.c: Declare h_errno.
6444
6445 2001-12-02  Hrvoje Niksic  <hniksic@arsdigita.com>
6446
6447         * utils.c (file_merge): If BASE doesn't contain a slash, just
6448         return a copy of FILE.
6449
6450 2001-12-02  Hrvoje Niksic  <hniksic@arsdigita.com>
6451
6452         * version.c: Wget 1.8-beta2 is released.
6453
6454 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6455
6456         * ftp.c (getftp): When PWD fails, assume "/".
6457
6458         * ftp-basic.c (ftp_syst): Fix indentation.
6459
6460 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6461
6462         * url.c (get_urls_file): If opt.base_href is specified, merge each
6463         URL with the base.
6464
6465 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6466
6467         * main.c (print_help): Don't document the removed `-nh'.
6468
6469 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6470
6471         * url.c (url_full_path): Document better.
6472
6473         * http.c (gethttp): Use the full path when creating digest
6474         authorization.
6475
6476 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6477
6478         * cookies.c (path_matches): Return 0 if PREFIX doesn't begin with
6479         '/'.
6480
6481 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6482
6483         * cookies.c (path_matches): FULL_PATH doesn't begin with '/', but
6484         PREFIX does.
6485
6486 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6487
6488         * cookies.c (check_domain_match): Reimplement to match Netscape's
6489         "preliminary specification" for cookies.
6490
6491 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6492
6493         * url.c (replace_attr_refresh_hack): New function.
6494         (convert_links): Call replace_attr_refresh_hack for Refresh
6495         links.  It will add the "TMOUT; URL=" junk before the link.
6496
6497         * html-url.c (collect_tags_mapper): Set ID to the ID of the
6498         "content" attribute, not "http-equiv".
6499         (collect_tags_mapper): Don't use OFFSET to hack the raw_* values;
6500         instead, store the information that this entry belongs to a
6501         "refresh" link.
6502
6503 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6504
6505         * version.c: Wget 1.8-beta1 is released.
6506
6507 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6508
6509         * recur.c (retrieve_tree): Allow -p retrievals to exceed maximum
6510         depth by more than one.
6511
6512 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
6513
6514         * retr.c (retrieve_url): Don't allow more than 20 redirections.
6515
6516 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
6517
6518         * recur.c (retrieve_tree): Skip the non-inline entries when
6519         enqueuing the children of a leaf HTML node in -p mode.
6520         (descend_url_p): Ignore opt.no_parent when in -p mode and UPOS is
6521         "inline".
6522
6523         * html-url.c (get_urls_html): Don't accept dash_p_leaf_HTML.
6524         (collect_tags_mapper): When an entry is "inline", mark it as such.
6525
6526         * recur.c (descend_url_p): Fix test when checking for
6527         acceptance/rejection rules.
6528
6529 2001-10-31 Daniel BODEA <dali@dali-designs.com>
6530
6531         * netrc.c (search_netrc): When slack_default is 0, still look for
6532         an account with matching password, just not the "default account".
6533         HTTP Authorization using .netrc should now work as expected.
6534
6535 2001-11-30  T. Bharath  <TBharath@responsenetworks.com>
6536
6537         * http.c (persistent_available_p): Call SHUTDOWN_SSL if
6538         test_socket_open fails.
6539
6540 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
6541
6542         * progress.c (display_image): Just print one CR to reset the
6543         cursor position.
6544
6545 2001-11-30  Christian Fraenkel  <c.fraenkel@gmx.net>
6546
6547         * init.c: New command `ssl_egd_sock'.
6548
6549         * main.c (main): New option `--sslegdsock'.
6550
6551         * gen_sslfunc.c (ssl_init_prng): Seed the RNG using EGD.
6552
6553 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6554
6555         * cmpt.c (memmove): Include a simple memmove implementation.
6556
6557 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6558
6559         * headers: Guard against header files being included twice.
6560
6561 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6562
6563         * gen-md5.c: Use unsigned char * as the buffer argument to
6564         gen_md5_update.
6565
6566 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6567
6568         * connect.h: Declare select_fd.
6569
6570 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6571
6572         * recur.c (descend_url_p): When resolving no_parent, compare with
6573         start_url, not parent url.  Otherwise link from /a/b/ to /a/c/
6574         wouldn't be followed, although the download started from /a/.
6575
6576 2001-01-23  Herold Heiko  <Heiko.Herold@previnet.it>
6577
6578         * config.h.ms, mswindows.h: defined HAVE_ISATTY, use _isatty for
6579         MS VC; somebody with Borland compiler please check and provide
6580         patch if possible;
6581
6582         * cmpt.c: provided a usleep emulation.
6583
6584 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6585
6586         * host.c (address_list_new): Initialize al->faulty.
6587
6588 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6589
6590         * http.c (http_process_range): Accept the broken output of
6591         "JavaWebServer/1.1.1".
6592
6593 2001-11-28  Hrvoje Niksic  <hniksic@arsdigita.com>
6594
6595         * progress.c (dot_set_params): If PARAMS is unspecified, use
6596         dot_style, if available.
6597
6598         * init.c: Ditto.
6599
6600         * main.c (main): Resurect --dot-style.
6601
6602         * progress.c (dot_finish): Print the quantity if we're left at the
6603         beginning of a row.
6604
6605 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6606
6607         * cmpt.c (random): Removed.
6608
6609         * retr.c (sleep_between_retrievals): Use the more portable rand()
6610         instead of random().
6611
6612 2001-11-27  Ian Abbott <abbotti@mev.co.uk>
6613
6614         * retr.c (retrieve_from_file): Initialize `new_file' to NULL to
6615         prevent seg fault.
6616
6617 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6618
6619         * connect.c (connect_to_many): Use address_list_set_faulty to
6620         prevent the faulty address from being reused.
6621
6622         * host.c (address_list_set_faulty): New function.
6623         (address_list_get_bounds): New function, instead of
6624         address_list_count.
6625
6626 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6627
6628         * url.c (convert_links): Don't translate %d-%d.
6629
6630         * main.c (print_help): Remove stray HAVE_RANDOM code.
6631
6632 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6633
6634         * ftp.c (getftp): Improve output after sending PASV.  Don't
6635         attempt to "look up" the IP address we already know; call
6636         connect_to_one directly.
6637
6638 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6639
6640         * progress.c: Change the default progress implementation to "bar".
6641
6642 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6643
6644         * progress.c (bar_create): Print two newlines.
6645
6646 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6647
6648         * cmpt.c (random): New function, a simple-minded replacement for
6649         random() on systems that don't have it.
6650
6651 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6652
6653         * config.h.in: Put a HAVE_USLEEP stub.
6654
6655         * cmpt.c (usleep): Replacement implementation of usleep using
6656         select.
6657
6658         * init.c: New option init_rate.
6659
6660         * main.c (main): New option --limit-rate.
6661
6662         * retr.c (limit_bandwidth): New function.
6663         (get_contents): Call it to limit the bandwidth used when
6664         downloading.
6665
6666         * progress.c (dot_update): Would print the wrong download speed on
6667         rows other than the first one when the download was continued.
6668         (dot_finish): Ditto.
6669
6670 2001-11-26  Ian Abbott <abbotti@mev.co.uk>
6671
6672         * http.c (gethttp): fix undeclared variable 'err' when compiled
6673         with HAVE_SSL.
6674
6675 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6676
6677         * progress.c: Don't allocate new timers; use the timing data
6678         propagated from the caller.
6679
6680         * retr.c (get_contents): Allocate and use a timer.
6681
6682 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6683
6684         * http.c (last_host_ip): Made into an address_list.
6685         (invalidate_persistent): Release pc_last_host_ip.
6686         (register_persistent): Use lookup_host.
6687         (persistent_available_p): Check for equality of hosts using
6688         address_list_match_all.  Call address_list_release.
6689         (http_cleanup): New function.
6690
6691         * ftp.c (getftp): Use lookup_host and connect_to_many.
6692
6693         * http.c (gethttp): Use lookup_host and connect_to_many.
6694
6695         * connect.c (make_connection): Removed.
6696         (connect_to_one): New function.
6697         (connect_to_many): Ditto.
6698         (set_connection_host_name): Ditto.
6699
6700         * host.c (lookup_host): New function; new return type.
6701         (address_list_new): New function.
6702         (address_list_count): Ditto.
6703         (address_list_copy_one): Ditto.
6704         (address_list_delete): Ditto.
6705         (address_list_release): Ditto.
6706         (pretty_print_address): Ditto.
6707
6708 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6709
6710         * recur.c (retrieve_tree): In case of followed redirection,
6711         blacklist the pre-redirection URL.
6712
6713 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6714
6715         * recur.c (descend_redirect_p): New function.
6716         (retrieve_tree): Make sure redirections are not blindly followed.
6717
6718 2001-11-04  Alan Eldridge  <alane@geeksrus.net>
6719
6720         * config.h.in: added HAVE_RANDOM.
6721
6722         * options.h: added random_wait to struct options.
6723
6724         * main.c (print_help [HAVE_RANDOM], main): added arg parsing, help
6725         for --random-wait.
6726
6727         * retr.c (sleep_between_retrievals) [HAVE_RANDOM]: added
6728         implementation of random wait times.
6729
6730         * init.c (commands): added "randomwait" keyword.
6731
6732 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6733
6734         * recur.c (descend_url_p): Be more conservative with blacklisting
6735         URLs.
6736         (convert_all_links): Print how many files have been converted, and
6737         how long it took.
6738
6739         * progress.c (create_image): Place the number of downloaded bytes
6740         right after the progress bar.
6741
6742         * utils.c (suffix): Return a pointer into the string.
6743
6744 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6745
6746         * url.c (convert_links): Handle CO_NULLIFY_BASE.
6747
6748         * recur.c (retrieve_tree): Ignore download-ignorable children.
6749         (convert_all_links): Specify CO_NULLIFY_BASE when link_base_p.
6750
6751         * html-url.c (handle_link): Return the newly created urlpos.
6752         (collect_tags_mapper): When dealing with BASE, store the base
6753         reference and mark it as download-ignorable.
6754
6755 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6756
6757         * url.c (convert_links): Attempt to quote '?' as "%3F" when
6758         linking to local files.  Given up on the attempt, as it breaks
6759         local browsing.
6760
6761 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6762
6763         * main.c (private_initialize): Removed.
6764         (main): Don't call private_initialize.
6765
6766         * http.c: Call lookup_host.
6767
6768         * host.c (host_init): Removed.
6769         (add_host_to_cache): Initialize host_name_address_map here, on
6770         demand.
6771         (ngethostbyname): Commented out.
6772
6773         * connect.c (make_connection): Remove dead code; use lookup_host.
6774
6775         * host.c (store_hostaddress): Renamed to lookup_host and reversed
6776         the args.
6777         Removed host_address_name_map and host_slave_master_map.
6778
6779 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6780
6781         * progress.c (dot_create): Align the "[ skipping ... ]" string
6782         with the dots.
6783
6784         * retr.c (rate): Split into two functions: calc_rate and
6785         retr_rate.
6786
6787         * progress.c (create_image): Draw a dummy progress bar even when
6788         total size is unknown.
6789         (display_image): Place the text cursor at the end of the "image".
6790
6791 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6792
6793         * url.c (reencode_string): Use unsigned char, not char --
6794         otherwise the hex digits come out wrong for 8-bit chars such as
6795         nbsp.
6796         (lowercase_str): New function.
6797         (url_parse): Canonicalize u->url if needed.
6798         (get_urls_file): Parse each URL, and return only the valid ones.
6799         (free_urlpos): Call url_free.
6800         (mkstruct): Add :port if the port is non-standard.
6801         (mkstruct): Append the query string to the file name, if any.
6802         (urlpath_length): Use strpbrk_or_eos.
6803         (uri_merge_1): Handle the cases where LINK is an empty string,
6804         where LINK consists only of query, and where LINK consists only of
6805         fragment.
6806         (convert_links): Count and report both kinds of conversion.
6807         (downloaded_file): Use a hash table, not a list.
6808         (downloaded_files_free): Free the hash table.
6809
6810         * retr.c (retrieve_from_file): Ditto.
6811
6812         * main.c (main): Call either retrieve_url or retrieve_tree
6813         for each URL, not both.
6814
6815         * retr.c (register_all_redirections): New function.
6816         (register_redirections_mapper): Ditto.
6817         (retrieve_url): Register the redirections.
6818         (retrieve_url): Make the string "Error parsing proxy ..." 
6819         translatable.
6820
6821         * res.c (add_path): Strip leading slash from robots.txt paths so
6822         that the path representations are "compatible".
6823         (free_specs): Free each individual path, too.
6824         (res_cleanup): New function.
6825         (cleanup_hash_table_mapper): Ditto.
6826
6827         * recur.c (url_queue_new): New function.
6828         (url_queue_delete): Ditto.
6829         (url_enqueue): Ditto.
6830         (url_dequeue): Ditto.
6831         (retrieve_tree): New function, replacement for recursive_retrieve.
6832         (descend_url_p): New function.
6833         (register_redirection): New function.
6834
6835         * progress.c (create_image): Cosmetic changes.
6836
6837         * init.c (cleanup): Do all those complex cleanups only if
6838         DEBUG_MALLOC is defined.
6839
6840         * main.c: Removed --simple-check and the corresponding
6841         simple_host_check in init.c.
6842
6843         * html-url.c (handle_link): Parse the URL here, and propagate the
6844         parsed URL to the caller, who would otherwise have to parse it
6845         again.
6846
6847         * host.c (xstrdup_lower): Moved to utils.c.
6848         (realhost): Removed.
6849         (same_host): Ditto.
6850
6851 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6852
6853         * utils.c (path_simplify): Preserver the (non-)existence of
6854         leading slash.  Return non-zero if changes were made.
6855
6856 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6857
6858         * progress.c (bar_update): Don't modify bp->total_length if it is
6859         zero.
6860
6861 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6862
6863         * retr.c (retrieve_url): When the redirection URL doesn't parse,
6864         print the correct error message rather than "UNKNOWN".
6865
6866 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6867
6868         * progress.c (bar_finish): If the timer didn't record any time
6869         since the download beginning, fake 1ms.
6870
6871 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6872
6873         * recur.c (recursive_retrieve): Fix typo.
6874
6875 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
6876
6877         * progress.c (create_image): Don't translate "%ld ".
6878
6879 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
6880
6881         * progress.c (bar_set_params): Allow the user to force the use of
6882         the bar.
6883
6884 2001-11-23  Lemble Gregory  <gregory.lemble@st.com>
6885
6886         * gen_sslfunc.c (ssl_init_prng): New function; seed the SSL RNG.
6887
6888 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
6889
6890         * progress.c: Renamed dp_* functions to dot_* for greater clarity
6891         and consistency with bar_*.
6892         (print_download_speed): Get rid of the unneeded '@' character.
6893         (create_image): Fix download rate geometry.
6894
6895         * progress.c (print_elapsed): Remove spurious space.
6896         (print_elapsed): Renamed to print_download_speed, since that's
6897         what it does.
6898
6899 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
6900
6901         * progress.c (bar_update): If the downloaded amount becomes larger
6902         than the expected amount, adjust the expected amount accordingly.
6903
6904 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
6905
6906         * utils.c (determine_screen_width): New function.
6907
6908         * main.c (main): New option `--progress=TYPE'.
6909         (main): Implement compatibility with the old option `--dot-style'.
6910
6911         * init.c: Removed cmd_spec_dotstyle -- that logic is now in
6912         dp_set_params.
6913         (cmd_spec_progress): New function.
6914
6915         * retr.c (get_contents): Use the progress_* functions instead of
6916         the old show_progress().
6917         (show_progress): Removed.
6918         (rate): Print "xxxx.xx K/s" instead of "KB/s".  Ditto for MB/s,
6919         etc.
6920
6921         * progress.c (set_progress_implementation): New function.
6922         (valid_progress_implementation_p): Ditto.
6923         (progress_create): Ditto.
6924         (progress_update): Ditto.
6925         (progress_finish): Ditto.
6926         (dp_create): Ditto.
6927         (dp_update): Ditto.
6928         (dp_finish): Ditto.
6929         (dp_set_params): Ditto.
6930         (print_elapsed): Ditto.
6931
6932 2001-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
6933
6934         * retr.c (show_progress): Use it.
6935
6936         * log.c (log_set_flush): New function.
6937
6938 2001-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
6939
6940         * utils.c (path_simplify): Don't remove trailing slashes.
6941
6942         * ftp.c (ftp_get_listing): Use it.
6943
6944         * utils.c (file_merge): New function.
6945
6946         * url.c (opt_url): Removed.
6947
6948         * recur.c (recursive_retrieve): Inline "opt_url" logic.
6949
6950         * main.c (main): Use xfree(), not free().
6951
6952         * url.c (rewrite_url_maybe): Renamed to rewrite_shorthand_url.
6953
6954         * ftp.c (ccon): Move `ccon' typedef here, since it's only used
6955         internally.
6956
6957         * config.h.in: Include a stub for HAVE_STRPBRK.
6958
6959         * cmpt.c (strpbrk): Include a replacement for systems without
6960         strpbrk().
6961
6962         * ftp.c: Use url_set_dir and url_set_file when modifying the URL.
6963
6964         * url.c (url_set_dir): New function.
6965         (url_set_file): Ditto.
6966
6967         * ftp-basic.c (ftp_process_type): Process FTP type here; the URL
6968         parser makes the URL "params" available, so we can do that in this
6969         function.
6970
6971         * retr.c: Ditto.
6972
6973         * ftp.c: Ditto; pass the local file information in `ccon'.
6974
6975         * http.c: Get rid of the ugly kludge that had URL being replaced
6976         with the proxy URL when proxy retrieval was requested.  Use a
6977         separate parameter to http_loop and gethttp for the proxy URL.
6978
6979         * http.c: Changed to reflect the fact that local file, proxy, and
6980         referer information are no longer stored in struct url.  The local
6981         file information is passed in `struct hstat' now.
6982
6983         * url.c: Reworked URL parsing to be more regular.  Reencode the
6984         URL using reencode_string.
6985         Removed non-URL-related information from struct url.  This
6986         includes fields `proxy', `local', and `referer'.
6987
6988 2001-11-22  Jochen Hein  <jochen@jochen.org>
6989
6990         * main.c (main): Split the copyright notice for easier
6991         translation.
6992
6993 2001-08-21  Dave Turner <dct25@hermes.cam.ac.uk>
6994
6995         * ftp-basic.c (ftp_size): New function to send non-standard SIZE
6996           command to server to request file size.
6997         * ftp.h (ftp_size): Export it.
6998         * ftp.c (getftp): Use new ftp_size function if restoring
6999           transfer of a file with unknown size.
7000
7001 2001-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
7002
7003         * url.c (parseurl): Don't depend on the now-obsolete TYPE.
7004
7005 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7006
7007         * url.c (getproxy): Handle URL shorthands.
7008
7009 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7010
7011         * main.c: Remove --wait / --waitretry backwards compatibility
7012         code.
7013         
7014 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7015
7016         * main.c (main): Use it.
7017
7018         * url.c (rewrite_url_maybe): New function.
7019
7020 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7021
7022         * url.c: Clean up handling of URL schemes.
7023
7024 2001-05-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7025
7026         * url.c: Get rid of `protostrings'.
7027         (skip_proto): Don't use protostrings.
7028         (has_proto): Ditto.
7029
7030 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7031
7032         * Makefile.in: Conditionally compile getopt.o.
7033
7034 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7035
7036         * md5.h: Renamed to gnu-md5.h.
7037
7038         * md5.c: Renamed to gnu-md5.c.
7039
7040         * http.c: Ditto.
7041
7042         * ftp-opie.c: Use the new macros.
7043
7044         * sysdep.h: Define md5-related macros.
7045
7046         * config.h.in: Define HAVE_SOLARIS_MD5 or HAVE_BUILTIN_MD5
7047         depending on which md5 implementation is used.
7048
7049 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7050
7051         * res.c (res_register_specs): Initialize OLD and HP_OLD to appease
7052         the compiler.
7053
7054 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7055
7056         * http.c (gethttp): Print the whole response line when printing
7057         headers is requested.
7058
7059 2001-05-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7060
7061         * res.c: New file.  Implement all RES-related code here.
7062
7063 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7064
7065         * version.c: Wget 1.7.1 is released.
7066
7067 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
7068
7069         * headers.c (header_extract_number): Ignore trailing whitespace.
7070
7071 2001-08-24  Ian Abbott  <abbotti@mev.co.uk>
7072
7073         * html-url.c (collect_tags_mapper): Fix bug converting links
7074         with -k option for tags with multiple link attributes by
7075         handling links in the order they appear.
7076
7077 2001-08-15  Ian Abbott  <abbotti@mev.co.uk>
7078
7079         * ftp.c (ftp_loop_internal): Avoid a potential buffer overflow in
7080           the call to the 'rate' function by moving it past the error
7081           checking for the 'getftp' function return value.
7082
7083 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
7084
7085         * html-parse.c (advance_declaration): Use 0x22 instead of '"' or
7086         '\"'.  Different compilers' assert macros are broken in different
7087         ways.
7088
7089 2001-09-29  Christian Fraenkel  <c.fraenkel@gmx.net>
7090
7091         * http.c (gethttp): print debug output for errors occuring during
7092         the ssl handshake.
7093
7094 2001-11-16  Chris Seawood  <cls@seawood.org>
7095
7096         * init.c: Ditto.
7097
7098         * host.c: Ditto.
7099
7100         * connect.c: Ditto.
7101
7102         * sysdep.h: Support compilation under BEOS.
7103
7104 2001-06-08  Edward J. Sabol  <sabol@alderaan.gsfc.nasa.gov>
7105
7106         * url.c (url_equal): Fix a memory leak when parseurl returns an
7107         error on the second URL. Also, since url_equal is not used at the
7108         moment, do not compile it.
7109
7110         * url.h: Ditto for the prototype of url_equal.
7111
7112 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
7113
7114         * html-parse.c (map_html_tags): Support XML-style empty tags.
7115
7116 2001-06-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7117
7118         * wget.h (DO_REALLOC_FROM_ALLOCA): Check for do_realloc_newsize in
7119         loop condition because we're no longer setting SIZEVAR here.
7120
7121 2001-06-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7122
7123         * wget.h (DO_REALLOC_FROM_ALLOCA): Set SIZEVAR after the memcpy()
7124         call because it needs the old value.
7125
7126 2001-06-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7127
7128         * cookies.c (ATTR_NAME_CHAR): Allow almost any character to be in
7129         an attribute name.
7130
7131 2001-06-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7132
7133         * url.c (url_filename): Make sure that slashes that sneak in to
7134         u->file via query string get protected.
7135         (file_name_protect_query_string): New function.
7136
7137 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7138
7139         * recur.c (recursive_retrieve): Also check undesirable_urls with
7140         canonicalized URL.
7141
7142 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7143
7144         * http.c (gethttp): Search `.netrc' with real host, not the proxy
7145         one.
7146
7147 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7148
7149         * sysdep.h (MAP_FAILED): Provide MAP_FAILED for systems that don't
7150         define it.
7151
7152 2001-06-09  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7153
7154         * ftp.h: Provide correct prototype for ftp_parse_ls().
7155
7156 2001-06-04  Hrvoje Niksic  <hniksic@arsdigita.com>
7157
7158         * version.c: Wget 1.7 is released.
7159
7160 2001-06-03  Karl Eichwalder  <ke@suse.de>
7161
7162         * ftp-ls.c (ftp_parse_ls): Fix typo.
7163
7164 2001-05-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7165
7166         * all: Update copyright information.
7167
7168 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7169
7170         * http.c (gethttp): Indicate that the continued download failed
7171         for *this* file.
7172
7173 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7174
7175         * version.c: Wget 1.7-pre1 is released.
7176
7177 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7178
7179         * version.c: Updated version to 1.7-pre1.
7180
7181 2001-05-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7182
7183         * gen_sslfunc.c: Don't include <sys/time.h> directly.
7184
7185 2001-05-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7186
7187         * http.c (gethttp): Use real URL data for cookies, not the proxy
7188         stuff.
7189
7190 2001-05-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7191
7192         * main.c (print_help): Document `--no-http-keep-alive'.
7193
7194         * utils.c (numdigit): Handle negative numbers *correctly*.
7195
7196         * hash.c (make_nocase_string_hash_table): Use term "nocase" rather
7197         than the confusing "unsigned".
7198
7199         * utils.c (string_set_contains): Renamed from string_set_exists.
7200
7201         * hash.c (hash_table_contains): Renamed from hash_table_exists.
7202
7203         * cookies.c: Move case-insensitive hash tables to hash.c.
7204
7205 2001-05-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7206
7207         * http.c (gethttp): Before concluding that the file is already
7208         fully retrieved, make sure that the file existed and `Range' was
7209         actually requested.
7210
7211 2001-05-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7212
7213         * cookies.c (eliminate_dups): New function.
7214         (build_cookies_request): Use it.
7215         (build_cookies_request): Set chain_store_size after reallocating
7216         all_chains.
7217         (check_domain_match): Annotated for easier future debugging.
7218         (store_cookie): In the debug message, print whether the cookie is
7219         permanent.
7220
7221 2001-05-08  Hrvoje Niksic  <hniksic@arsdigita.com>
7222
7223         * http.c (http_loop): Reset no_truncate before deciding whether to
7224         set it.
7225         (gethttp): Further clarify "-c conflicts with existing file" error
7226         message, based on input from Herold Heiko.
7227
7228 2001-05-07  Hrvoje Niksic  <hniksic@arsdigita.com>
7229
7230         * http.c (http_loop): If restval is set, set no_truncate to 1
7231         unconditionally.
7232
7233 2001-05-02  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7234
7235         * ftp-ls.c (ftp_parse_winnt_ls): Assure months are being correctly
7236         converted. Pointed out by <Stefan.Weil@de.heidelberg.com>.
7237         (ftp_parse_vms_ls): Ditto.
7238
7239 2001-04-30  Hrvoje Niksic  <hniksic@arsdigita.com>
7240
7241         * init.c (cmd_address): Zero SIN before using it; apparently
7242         needed on *BSD.
7243
7244 2001-04-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7245
7246         * ftp.c (ftp_loop_internal): Don't set NO_TRUNCATE if the file is
7247         empty.
7248
7249 2001-04-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7250
7251         * main.c (main): Make `--cookies' respect its argument.
7252
7253 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
7254
7255         * main.c (main): Removed undocumented option `--email-address'.
7256
7257         * netrc.c: Use the latest read_whole_line.
7258
7259         * init.c (defaults): Set opt.ftp_pass to "-wget@".
7260
7261         * mswindows.c (pwd_cuserid): Ditto.
7262
7263         * utils.c (pwd_cuserid): Removed.
7264
7265         * host.c (ftp_getaddress): Removed.
7266
7267 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
7268
7269         (http_loop): Allocate space for filename_plus_orig_suffix with
7270         alloca; this is more efficient and removes the need to free it
7271         before each and every return.
7272
7273 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
7274
7275         * http.c (gethttp): Return RETRUNNEEDED when the retrieval is
7276         unneeded because the file is already there and fully downloaded,
7277         and -c is specified.
7278         (http_loop): Handle RETRUNNEEDED.
7279
7280         * wget.h (uerr_t): New value RETRUNNEEDED.
7281
7282         * http.c (http_loop): Set no_truncate for files that both exist
7283         and are non-empty.
7284         (gethttp): Consider the download finished when restval >= contlen,
7285         not only when restval==contlen.
7286         (gethttp): Handle redirection before giving up due to -c.
7287         (gethttp): Clarify error message which explains that -c will not
7288         truncate the file.
7289         (gethttp): When returning CONTNOTSUPPORTED, don't forget to free
7290         the stuff that needs freeing and release the socket.
7291
7292 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7293
7294         * main.c (print_help): Wget booleans accept "off", not "no".
7295
7296 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7297
7298         * http.c (http_loop): If allow_cache is zero, always disable
7299         caching, not only when retrieving through proxy.
7300
7301         * init.c: Ditto.
7302
7303         * options.h (struct options): Rename proxy_cache to allow_cache.
7304
7305 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7306
7307         * http.c (mktime_from_utc): Improve documentation.
7308         (http_atotm): Put format strings into a separate array.
7309
7310 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7311
7312         * safe-ctype.h: Instead of throwing #error when isalpha is
7313         defined, redefine it to something that will throw a compile-time
7314         error if actually *used*.  Do the same for the rest of the
7315         standard C macros.
7316
7317 2001-04-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7318
7319         * url.c (getproxy): Ignore empty proxy vars.
7320
7321 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7322
7323         * http.c (http_loop): Would load cookies every time.
7324
7325         * cookies.c (load_cookies): Handle cookies whose values contain
7326         embedded spaces.
7327
7328 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7329
7330         * utils.c: Define each DIGITS_* in one line.
7331
7332 2001-04-25  Roger L. Beeman  <beeman@cisco.com>
7333
7334         * http.c (http_atotm): Initialize t.tm_isdst to 0.
7335         (mktime_from_utc): Prevent mktime() from having discontinuities at
7336         DST transition points.
7337
7338 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7339
7340         * html-url.c (get_urls_html): Fix documentation.
7341
7342 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7343
7344         * url.c (UNSAFE_CHAR): Reimplement using a static table.
7345         (url_init): Removed.
7346         (init_unsafe_char_table): Removed.
7347
7348 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7349
7350         * snprintf.c (dopr): Replace ISDIGIT with '0' <= ch && ch <= '9'.
7351
7352 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7353
7354         * utils.c: Document timer functions.
7355
7356         * retr.c (rate): Use it.
7357         (rate): Print in GB/s if transfer rate exceeds 1 GB/s.
7358
7359         * utils.c (wtimer_granularity): New function.
7360
7361 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7362
7363         * retr.c (show_progress): Ditto.
7364
7365         * ftp.c (getftp): Ditto.
7366
7367         * http.c (gethttp): Use new timer functions.
7368
7369         * utils.c (wtimer_allocate): New function.
7370         (wtimer_new): Ditto.
7371         (wtimer_delete): Ditto.
7372         (wtimer_reset): Ditto.
7373         (wtimer_elapsed): Ditto.
7374
7375 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7376
7377         * utils.c (long_to_string): New, faster version.  Favors smaller
7378         numbers; much of the calculation is now done at compile-time.
7379
7380 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7381
7382         * utils.c (numdigit): Handle negative numbers.
7383
7384 2001-04-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7385
7386         * retr.c (show_progress): Print the download rate even when the
7387         percentages are not available.
7388
7389 2001-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
7390
7391         * ftp.c (getftp): Adjust expected_bytes if the length is
7392         authoritative.
7393
7394 2001-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7395
7396         * url.c: Don't declare `construct'.
7397
7398         * hash.c (grow_hash_table): Speed up rehashing; inline storing of
7399         mappings to new locations.
7400         (hash_table_new): Make resize_threshold a field in the hash table,
7401         so we don't have to recalculate it in each hash_table_put.
7402         (grow_hash_table): Update resize_threshold.
7403         (MAX): Remove unused macro.
7404         (prime_size): Made static.
7405
7406 2001-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7407
7408         * retr.c (retrieve_url): Call uri_merge, not url_concat.
7409
7410         * html-url.c (collect_tags_mapper): Call uri_merge, not
7411         url_concat.
7412
7413         * url.c (mkstruct): Use encode_string instead of xstrdup followed
7414         by URL_CLEANSE.
7415         (path_simplify_with_kludge): Deleted.
7416         (contains_unsafe): Deleted.
7417         (construct): Renamed to uri_merge_1.
7418         (url_concat): Renamed to uri_merge.
7419
7420 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7421
7422         * url.c (str_url): Use encode_string instead of the unnecessary
7423         CLEANDUP.
7424         (encode_string_maybe): New function, returns input string if no
7425         encoding is needed.
7426         (encode_string): Call encode_string_maybe to do the dirty work,
7427         xstrdup if no work needed.
7428
7429 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7430
7431         * wget.h (XDIGIT_TO_xchar): Define here.
7432
7433         * url.c (decode_string): Use new name.
7434         (encode_string): Ditto.
7435
7436         * http.c (XDIGIT_TO_xchar): Rename HEXD2asc to XDIGIT_TO_xchar.
7437         (dump_hash): Use new name.
7438
7439         * wget.h: Rename ASC2HEXD and HEXD2ASC to XCHAR_TO_XDIGIT and
7440         XDIGIT_TO_XCHAR respectively.
7441
7442 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7443
7444         * init.c: Include cookies.h.
7445
7446         * cookies.h: Declare cookies_cleanup.
7447
7448         * cookies.c (check_domain_match): Remove unused variable.
7449         (save_cookies): Remove extraneous argument from debug statement.
7450
7451         * host.c (same_host): Don't call skip_url.
7452
7453         * url.c (skip_url): Removed.  Removed its calls from various
7454         functions in url.c.
7455
7456 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7457
7458         * cookies.c (unsigned_string_hash): Use the new code in
7459         string_hash as reference.
7460
7461         * hash.c (hash_table_map): Allow deletion and change of the
7462         element processed by MAPFUN.
7463         (string_hash): Use the function from glib.
7464
7465 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7466
7467         * config.h.in: Include #undef stub.
7468
7469         * hash.c (hash_table_remove): Rewrite to actually clear deleted
7470         entries instead of just marking them as deleted.
7471
7472 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7473
7474         * hash.h: Declare hash_table_get_pair and hash_table_count.
7475
7476 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7477
7478         * cookies.c: Declare http_atotm.
7479
7480 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7481
7482         * ftp-ls.c (ftp_parse_unix_ls): Use octal constants for
7483         permissions.  A compiler that doesn't accept octal constants is
7484         seriously broken and shouldn't be used -- octal constants were
7485         present in K&R C!
7486
7487 2001-01-20  Karl Eichwalder  <ke@suse.de>
7488
7489         * Makefile.in: Provide and use DESTDIR according to the Coding
7490         Standards.
7491
7492 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7493
7494         * ftp-ls.c (ftp_parse_vms_ls): Make seconds optional in time
7495         specification.
7496
7497 2001-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7498
7499         * url.c (parseurl): Don't strip trailing slash when u->dir is "/"
7500         because that strips the *leading* slash, thus forcing relative
7501         FTP retrieval.
7502
7503 2001-04-10  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7504
7505         * ftp.c (getftp): Convert initial FTP directory from VMS to UNIX
7506         notation for VMS servers. 
7507         (ftp_retrieve_dirs): Do not prepend '/' to f->name when
7508         odir is an empty string.
7509
7510 2001-04-10  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7511
7512         * ftp-ls.c (ftp_parse_winnt_ls): Made the fix for AM/PM more
7513         effective. Suggested by Edward J. Sabol.
7514
7515 2001-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
7516
7517         * cookies.c (build_cookies_request): Use and sort cookies from all
7518         matching domains.
7519         (build_cookies_request): Check for duplicates before generating
7520         the `Cookies' header.
7521
7522         * main.c (main): Don't load cookies here.
7523         (main): Make loadcookies and savecookies call the correct command.
7524
7525         * http.c (http_loop): Load cookies on-demand.
7526
7527 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7528
7529         * http.c (gethttp): Fix indentation of SSL ifdef.
7530
7531 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7532
7533         * ftp.c (ftp_retrieve_dirs): Don't forcibly prepend "/" to u->dir;
7534         that hack is no longer necessary.
7535         (getftp): Prepend initial directory to *non*-absolute u->dir's.
7536
7537 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7538
7539         * init.c (cmd_file): New function.
7540         (enable_tilde_expansion): New variable.
7541         (run_wgetrc): Use it.
7542         (cmd_file): Use it.
7543
7544 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
7545
7546         * init.c: Include cookie-related options.
7547
7548         * main.c (main): Include cookie-specific options.
7549         (main): Load cookies before download is finished.
7550         (main): Save cookies when done.
7551
7552         * http.c (gethttp): Process the `Set-Cookie' header.
7553         (gethttp): Include cookies in the response.
7554
7555         * cookies.c: New file.
7556
7557 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
7558
7559         * utils.c (datetime_str): New function.
7560
7561 2001-04-08  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7562
7563         * ftp-ls.c (ftp_parse_winnt_ls): The AM/PM change did assume
7564         12:01PM == 00:01, which was obviously wrong. Taken care of this
7565         anomaly.
7566
7567         * ChangeLog: Removed an excess conflict marker. Reformatted the
7568         entry by Philipp Thomas from 2001-03-09.
7569
7570         * ftp-ls.c (ftp_parse_winnt_ls): Ensure that adjusted PM hours lay
7571         between 0 and 23. Elminate unused variable `sec'.
7572
7573 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
7574
7575         * hash.c (hash_table_count): New function.
7576
7577 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7578
7579         * utils.c (read_file): Cast MAP_FAILED to char *.  Enforced by
7580         Digital Unix cc.
7581
7582 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7583
7584         * config.h.in: Oops, do the namespace tweaks only on systems we
7585         know about.
7586
7587 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7588
7589         * hash.c: Include <string.h>.
7590
7591 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7592
7593         * config.h.in: Define "compilation environment" options that work
7594         under Linux and Solaris.  To be reviewed on other OS'es.
7595
7596 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7597
7598         * http.c (gethttp): Prepend literal newline with `\n\'.
7599
7600 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7601
7602         * sysdep.h: Don't define VERY_LONG_FORMAT.
7603
7604         * utils.c (very_long_to_string): New function.
7605         (legible_very_long): Use it; don't use VERY_LONG_FORMAT.
7606
7607 2001-04-04  Christian Fraenkel  <christian.fraenkel@gmx.net>
7608
7609         * url.c (parse_uname): Would run past the end of the string if the
7610         username was present, but the URL did not contain a slash, e.g.
7611         http://foo:bar@myhost.
7612
7613 2001-04-03  KOJIMA Hajime  <kjm@rins.ryukoku.ac.jp>
7614
7615         * http.c (http_atotm): Use %A instead of %a to match full
7616         weekday.  (On most systems there is no difference.)
7617
7618 2001-04-03  Paul Bludov  <paul@ozero.net>
7619
7620         * mswindows.c (sleep): Use SleepEx() instead of Sleep().
7621         (ws_changetitle): Use alloca() instead of malloc() to avoid memory
7622         leak.
7623         (ws_mypath): Use GetModuleFileName instead of argv[0].
7624         (ws_startup): Use data.wVersion for comparison.
7625
7626 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7627
7628         * http.c (http_loop): Ditto.
7629
7630         * ftp.c (ftp_loop_internal): Made the check whether to continue
7631         retrieval `-O'-friendly.
7632
7633 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7634
7635         * netrc.c (parse_netrc): Don't trim the line endings explicitly;
7636         they will be handled as whitespace.
7637         (parse_netrc): Correctly handle lines that end with whitespace.
7638
7639 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7640
7641         * retr.c (retrieve_url): New variable global_download_count used
7642         to identify first retrieval.
7643
7644         * ftp.c (getftp): Ditto.
7645
7646         * http.c (gethttp): Rewind opt.dfp only on first retrieval.
7647
7648 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7649
7650         * init.c (cmd_address): Heap-allocate the address that gets stored
7651         to CLOSURE.  Old code would simply assign an address on the stack.
7652
7653 2001-04-01  Nicolas Lichtmaier <nick@debian.org>
7654
7655         * ftp.c (ftp_get_listing): Propagate error status.
7656         (ftp_retrieve_glob): Use it.
7657         (ftp_loop): Ditto.
7658
7659 2001-04-01  Nicolas Lichtmaier <nick@debian.org>
7660
7661         * main.c (main): Add -C to the string that is the third arg to
7662         getopt_long().
7663
7664 2001-04-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7665
7666         * ftp.c (getftp): Don't start the download from scratch if `-c'
7667         was specified, but the file is already fully downloaded.
7668
7669         * http.c (gethttp): Don't truncate a pre-existing file if `-c' was
7670         specified and the server doesn't support continued download.
7671         (gethttp): Don't start the download from scratch if `-c' was
7672         specified, but the file is already fully downloaded.
7673
7674 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7675
7676         (recursive_retrieve): Don't clear the hash tables at this point at
7677         all; it interferes with the normal operation of register_download.
7678
7679 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7680
7681         * recur.c (recursive_retrieve): Clear the hash tables only when
7682         they are defined.
7683
7684 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7685
7686         * http.c (gethttp): Make sure the socket is closed with
7687         CLOSE_INVALIDATE before we have drained the body.
7688
7689 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7690
7691         * retr.c (retrieve_url): Call register_download() for downloaded
7692         files and register_html() for downloaded HTML files.
7693
7694         * recur.c (register_download): New function; register here that a
7695         file has been downloaded, rather than in recursive_retrieve().
7696         (register_html): New function; enqueue the location of HTML files
7697         here rather than in recursive_retrieve().
7698
7699 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7700
7701         * main.c (print_help): Use multiple fputs instead of a single ugly
7702         printf().
7703         (main): Consistently assign numbers >128 to options without a
7704         corresponding character.
7705
7706 2001-03-09  Philipp Thomas  <pthomas@suse.de>
7707
7708         * safe-ctype.h: New file. Locale independent ctype.h replacement
7709         taken from libiberty.
7710
7711         * safe-ctype.c: New file. Tables for above.
7712
7713         * Makefile.in: Add safe-ctype$o to OBJS.  Add dependencies for
7714         safe-ctype$o.
7715
7716         * cmpt.c: Remove include of ctype.h. Use ISSPACE instead of
7717         isspace.
7718
7719         * ftp-basic.c: Don't include ctype.h.
7720
7721         * ftp-ls.c: Likewise.
7722
7723         * ftp.c: Likewise.
7724
7725         * headers.c: Likewise.
7726
7727         * host.c: Likewise.
7728
7729         * html-parse.c: Likewise.
7730
7731         * html-url.c: Likewise.
7732
7733         * http.c: Likewise.
7734
7735         * init.c: Likewise.
7736
7737         * main.c: Likewise. Set LC_CTYPE along with LC_MESSAGES.
7738
7739         * netrc.c: Likewise.
7740
7741         * recur.c: Likewise.
7742
7743         * retr.c: Likewise.
7744
7745         * snprintf.c: Replace ctype.h with safe-ctype.h. Use ISDIGIT
7746         instead of isdigit.
7747
7748         * sysdep.h: Remove defines of ctype macros as they aren't needed
7749         for safe-ctype-h.
7750
7751         * url.c: Don't include ctype.h.
7752
7753         * utils.c: Likewise.
7754
7755         * wget.h: Include safe-ctype.h.
7756
7757 2001-03-27  Dan Harkless  <wget@harkless.org>
7758
7759         * Makefile.in: Moved top_builddir out of "User configuration
7760         section" of top Makefile and analogous spot in this one.
7761
7762 2001-03-17  Dan Harkless  <wget@harkless.org>
7763
7764         * Makefile.in: Include @SSL_INCLUDES@ substition in INCLUDES.
7765         Define top_builddir.  Link wget with libtool so the user doesn't
7766         have to supply a bunch of custom environment variables to 
7767         correctly link with the OpenSSL shared libraries.
7768
7769 2001-03-06  Hack Kampbjorn  <hack@hackdata.com>
7770
7771         * http.c (gethttp): skip :port in host header if it is the
7772         DEFAULT_HTTPS_PORT when using SSL.
7773
7774         * url.c: move the #define of DEFAULT_HTTP_PORT, DEFAULT_FTP_PORT
7775         and DEFAULT_HTTPS_PORT to the header file so it can be use in the
7776         rest of the code. 
7777         * url.h: Ditto
7778
7779 2001-03-01  Jonas Jensen  <bones@huleboer.dk>
7780
7781         * retr.c (show_progress): Correctly calculate the number of bytes
7782         in the first line of the download that have been actually
7783         downloaded in this run.
7784
7785 2001-02-23  Dan Harkless  <wget@harkless.org>
7786
7787         * main.c (print_help): --help documentation for -N said it would
7788         re-download files if they had the _same_ timestamp on server.
7789         (print_help): -nr belongs in "FTP options" section of --help
7790         output, not "Recursive retrieval" section.  Alphabetized FTP
7791         options by long option name.
7792
7793 2001-02-16  Dan Harkless  <wget@harkless.org>
7794
7795         * init.c (commands): Hack Kampbjørn <hack@hackdata.com> discovered
7796         that "httpsproxy" had been inserted into commands[] out of
7797         alphabetical order, causing "BUG: unknown command `httpuser'".
7798
7799 2001-02-13  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7800
7801         * ftp-ls.c (ftp_parse_ls): Added support of ST_MACOS (Unix-like
7802         listing without correct permissons).
7803
7804         * ftp.h (stype): Added ST_MACOS to identify the NetPresenz MacOS
7805         FTP server. 
7806
7807         * ftp.c (ftp_retrieve_list): New mirroring logic: A remote file
7808         shall be donwloaded only when it's newer than the local copy or
7809         when it has the same timeestamp but its size is different. ST_VMS
7810         and ST_MACOS as special cases that lie about file size. 
7811
7812         * ftp-ls.c (ftp_parse_ls): Support for ST_MACOS.
7813
7814         * Makefile.in: Removed dependency on ftpparse library due to unclear
7815         copyright issues and absence of any feedback to our queries. 
7816
7817         * ftp-ls.c: Removed dependency on ftpparse library due to unclear
7818         copyright issues and absence of any feedback to our queries.   
7819         (ftp_parse_ls): Added a warning message when remote server system
7820         does not seem to be suported by wget. 
7821         (ftp_parse_vms_ls): New function for parsing VMS ftp
7822         server listing output.
7823         (clean_line): New function responsible for removing
7824         end-of-line characters from FTP listing texts.
7825
7826         * ftp.c (getftp): Global variables pwd and host_type are now
7827         member of the ccon structure under names ccon.id and ccon.rs. 
7828
7829         * ftp.h (struct ccon): Added formed global variables from ftp.c,
7830         enum stype rs (remote system identification) and char *id (initial
7831         working directory), as suggested by Hrvoje.
7832
7833         * url.c (parse_uname): Added support for passwords containing '@'
7834         characters.
7835         (skip_uname): Ditto.
7836
7837 2001-02-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7838
7839         * ftp.c (ftp_loop): Reset con.
7840
7841 2001-01-06  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7842
7843         * url.c (parse_uname): Added support for passwords containing '@'
7844         characters.
7845         (skip_uname): Ditto.
7846
7847 2001-02-11  Hack Kampbjørn  <hack@hackdata.com>
7848
7849         * url.c (parseurl): Debug-print u->ftp_type.
7850
7851 2001-02-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7852
7853         * ftp.c (ftp_loop_internal): Disable padding.
7854         (getftp): Ditto.
7855
7856         * http.c (http_loop): Disable padding.
7857
7858         * retr.c (show_progress): Use it to enable padding.
7859
7860         * retr.c (rate): Optional parameter PAD for padding the rate.
7861
7862 2001-02-10  Hrvoje Niksic  <hniksic@arsdigita.com>
7863
7864         * retr.c (show_progress): Make sure that the last output line
7865         includes progress.
7866
7867 2001-02-10  Jonas Jensen  <bones@huleboer.dk>
7868
7869         * retr.c (show_progress): Print the download rate along with the
7870         percentages.
7871         Along with Anders Thorsby <anders@thorsby.dk>.
7872
7873 2001-02-10  Tim Mooney  <mooney@dogbert.cc.ndsu.NoDak.edu>
7874
7875         * ftp.h: Rename enums `command' to `wget_ftp_command' and
7876         `fstatus' to `wget_ftp_status' because old names clash with Tru64
7877         net/if.h.
7878
7879 2001-02-08  Christian Fraenkel <christian.fraenkel@gmx.net>
7880
7881         * gen_sslfunc.c: verify_callback is now static
7882
7883         * gen_sslfunc.c (init_ssl): load certificate if specified
7884
7885         * gen_sslfunc.c (ssl_printerr): new function
7886
7887         * init.c: added new --sslcertfile and --sslcertkey switches
7888
7889         * main.c: ditto
7890
7891         * options.h: ditto
7892
7893         * http.c (gethttp): abort when init_ssl fails
7894
7895 2001-01-23  Herold Heiko  <Heiko.Herold@previnet.it>
7896
7897         * mswindows.h: Include <malloc.h>; it's needed for alloca().
7898
7899 2001-01-10  Dan Harkless  <wget@harkless.org>
7900
7901         * url.c (str_url): Clarified this function's comment header after
7902         Hrvoje answered my question on the list as to when hide != 1.
7903         Also Hrvoje pointed out I need to use xstrdup() on the string literal.
7904
7905 2001-01-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7906
7907         * connect.c (bindport): Declare addrlen as int.  Diagnosed by
7908         Drazen Kacar <dave@arsdigita.com>.
7909         (conaddr): Ditto.
7910
7911 2001-01-09  Dan Harkless  <wget@harkless.org>
7912
7913         * html-url.c: A bunch of fixup of `--page-requisites'-related
7914         comments to reflect Hrvoje's changes to my code when transplanting
7915         it into this new file, to fix spelling mistakes, to clarify, etc.
7916
7917         * url.c (write_backup_file): Clarified a comment.
7918         (str_url): Henrik van Ginhoven pointed out on the list that we
7919         shouldn't give away the number of characters in the password by
7920         replacing each character with a 'x'.  Use "<password>" instead.
7921
7922         * ftp.c (ftp_retrieve_dirs): The bug where recursion into FTP
7923         directories didn't work if logging in put you in a directory other
7924         than "/" is fixed now.  Removed the comment here warning of the bug.
7925
7926         * main.c (print_help): --continue's description was misleading.
7927         We don't "restart", we "resume".  Also, better to say
7928         "partially-downloaded file" rather than just "existing file".
7929
7930 2001-01-06  Dan Harkless  <wget@harkless.org>
7931
7932         * ChangeLog: The '[Not in 1.6 branch.]'s were decided not to be
7933         the best way to go about my aim.  Removed them in favor of:
7934
7935         * ChangeLog-branches/1.6_branch.ChangeLog: New file.
7936
7937 2001-01-04  Hrvoje Niksic  <hniksic@arsdigita.com>
7938
7939         * url.c (replace_attr): New function, to be used by both
7940         TO_COMPLETE and TO_RELATIVE case in convert_links.
7941         (find_fragment): New function for finding URL fragments.
7942         (replace_attr): Better handle the case where the original string
7943         is not quoted.  Use find_fragment.
7944         (convert_links): Use replace_attr().
7945
7946 2000-12-31  Dan Harkless  <wget@harkless.org>
7947
7948         * ChangeLog: Since this flat file doesn't have multiple branches,
7949         looking at the dates would make you think that things went into
7950         1.6 that actually just went into the 1.7-dev branch.  Added "[Not
7951         in 1.6 branch.]" where appropriate to clarify.
7952         
7953 2000-12-30  Dan Harkless  <wget@harkless.org>
7954
7955         * ftp.c, http.c:  Applied Hack Kampbjørn <hack@hackdata.com>'s
7956         patch to deal with h_errno not being defined in netdb.h under Cygwin.
7957
7958 2000-12-18  Csaba Raduly  <csaba.raduly@sophos.com>
7959
7960         * sysdep.h: Include <malloc.h> and <io.h> under Watcom.
7961
7962 2000-12-17  Igor Khristophorov  <igor@atdot.org>
7963
7964         * http.c (check_end): Fix test for '+' or '-'.
7965
7966 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
7967
7968         * url.c (parseurl): Rename inner loop var from i to ind to avoid
7969         clash with the function top-level-declared variable i.
7970         (str_url): Likewise, rename inner-loop i to j.
7971
7972         * recur.c (parse_robots): Don't declare LEN at top of function.
7973         (robots_match): Renamed parameter FORBIDDEN to avoid hiding of
7974         global variable.
7975
7976         * main.c (main): Change erroneous use of bitwise and to logical.
7977
7978         * init.c (cmd_address): Don't heap-allocate `sin'; it can be on
7979         the stack because it will be copied to closure.
7980
7981         Thanks to Csaba Raduly's run of PC-LINT over the sources.
7982
7983 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
7984
7985         * http.c (basic_authentication_encode): Use xmalloc(), not
7986         malloc().  Thanks to Csaba Raduly's run of PC-LINT over the
7987         sources.
7988
7989 2000-12-17  Csaba Raduly  <csaba.raduly@sophos.com>
7990
7991         * sysdep.h: Test for __EMX__ rather than for EMXOS2 for OS/2
7992         compilation.
7993
7994 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
7995
7996         * mswindows.c: Include <errno.h>.
7997
7998         * gen_sslfunc.c: Include <errno.h>.
7999
8000         * ftp-basic.c: Don't attempt to declare errno or h_errno because
8001         they're not used.
8002
8003         * main.c: Include <errno.h> because errno is used.
8004
8005         * ftp.c: Ditto.
8006
8007         * http.c: Include <netdb.h> for h_errno.
8008
8009 2000-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
8010
8011         * html-parse.c (advance_declaration): MSVC assert() chokes on
8012         '\"'.  Use '"' instead.
8013
8014 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8015
8016         * utils.c (xfree_real): Removed.
8017         (xfree_debug): Just call free().
8018
8019         * wget.h (xfree): Make it an alias for free.
8020
8021 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8022
8023         * http.c (http_loop): Furthermore, touch output_document only if
8024         it is known to be an existing regular file.
8025
8026 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8027
8028         * ftp.c (ftp_retrieve_list): Ditto.
8029
8030         * http.c (http_loop): Touch output_document if that is used for
8031         output.
8032
8033 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8034
8035         * http.c: Include gen_sslfunc.h after including Wget's headers.
8036         (persistent_available_p): Needed coma before `int ssl'.
8037
8038 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8039
8040         * ftp.c (ftp_loop_internal): Ditto.
8041
8042         * http.c (http_loop): Use it.
8043
8044         * retr.c (sleep_between_retrievals): New function that handles the
8045         logic of opt.wait and opt.waitretry.
8046
8047 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8048
8049         * rbuf.h: Implement only a single version of RBUF_READCHAR, using
8050         rbuf_read_bufferful when the buffer is depleted.
8051
8052         * rbuf.c (rbuf_read_bufferful): New function.
8053
8054 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8055
8056         * gen_sslfunc.h: Use ansi2knr style function declarations.
8057
8058         * gen_sslfunc.c: Reformat according to the GNU coding standards.
8059         More should be done.
8060
8061         * http.c (persistent_available_p): Place the cheap SSL test nearer
8062         the top of the function.
8063         (CLOSE_FINISH, CLOSE_INVALIDATE): Define only one version of each.
8064
8065 2000-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
8066
8067         * url.c (init_unsafe_char_table): Reinstate space as an unsafe
8068         char.
8069
8070 2000-12-03  Christian Fraenkel <christian.fraenkel@gmx.net>
8071
8072         * Makefile.in: added gen_sslfunc object
8073         * config.h.in: added HAVE_SSL define
8074         * connect.c: changed select_fd from static int to int
8075         * connect.h: ditto
8076         * gen_sslfunc.h: New file
8077         * gen_sslfunc.c: ditto
8078         * http.c: added HTTPS fuctionality
8079         * retrc.c: ditto
8080         * url.c: ditto
8081         * init.c: added opt.httpsproxy
8082         * options.h: ditto
8083         * rbuf.h: added alternate rbuf struct
8084         * wget.h: added CONSSLERR
8085         * rbuf.c: ditto
8086
8087         * http.c: Added HTTPS fuctionality.
8088
8089         * retrc.c: Ditto.
8090
8091         * url.c: Ditto.
8092
8093         * init.c: Added opt.httpsproxy.
8094
8095         * options.h: Ditto.
8096
8097         * rbuf.h: Added alternate rbuf struct.
8098
8099         * wget.h: Added CONSSLERR.
8100
8101         * rbuf.c: Ditto.
8102
8103 2000-11-30  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8104
8105         * ftp-ls.c (ftp_parse_unix_ls): Added second parameter
8106         "ignore_perms" to ignore file and directory permissions for
8107         Windows NT FTP server listings.
8108         (ftp_parse_winnt_ls): New function.
8109         (ftp_parse_ls): Parses UNIX and Windows NT listings
8110         separately. Simple heuristics for distinguishing between UNIX and
8111         MS-DOS-like FTP listing provided by Windows NT FTP service.
8112
8113 2000-11-18  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8114
8115         * ftpparse.c, ftpparse.h: New files.
8116
8117         * ftp-ls.c (ftp_parse_ls): Use ftp_parse_unix_ls for UNIX servers
8118         only. Use ftp_parse_nonunix_ls otherwise.
8119         (ftp_parse_nonunix_ls): Stub to the ftpparse library handling all
8120         exotic FTP servers.
8121
8122         * ftp.h (stype): New enum, distinguishes UNIX, VMS, and "other"
8123         FTP servers.
8124
8125         * ftp.c: New static wariables host_type, pwd, and pwd_len. 
8126         (getftp): Support for VMS. Support for FTP servers that do not
8127         place you in the root directory after login.
8128         (ftp_retrieve_list): VMS is silent about the real file size, issue
8129         a more appropriate message.
8130         (ftp_get_listing): Pass host_type to ftp_parse_ls.
8131
8132         * ftp-basic.c (ftp_pwd, ftp_syst): New functions.
8133
8134 2000-11-30  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8135
8136         * ftp-ls.c (ftp_parse_unix_ls): Added second parameter
8137         "ignore_perms" to ignore file and directory permissions for
8138         Windows NT FTP server listings.
8139         (ftp_parse_winnt_ls): New function.
8140         (ftp_parse_ls): Parses UNIX and Windows NT listings
8141         separately. Simple heuristics for distinguishing between UNIX
8142         and MS-DOS-like FTP listing provided by Windows NT FTP service.
8143
8144 2000-11-29  John Summerfield  <summer@OS2.ami.com.au>
8145
8146         * netrc.c (parse_netrc): Get rid of line ending.
8147
8148 2000-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
8149
8150         * ftp.c (ftp_retrieve_list): Undo typo "fix" until resolution by
8151         Dan.
8152
8153 2000-11-24  Karl Eichwalder  <ke@suse.de>
8154
8155         * main.c (print_help): Untabify.
8156
8157 2000-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
8158
8159         * utils.c (xrealloc_debug): Do the unregister/register thing only
8160         if the pointer has actually changed.
8161         (xmalloc_real): Declare `static' in DEBUG_MALLOC builds.
8162         (xfree_real): Ditto.
8163         (xrealloc_real): Ditto.
8164         (xstrdup_real): Ditto.
8165
8166 2000-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
8167
8168         * ftp.c (getftp): ftp_getaddress() returns a malloc'ed copy of the
8169         string; no need to strdup() it.
8170         (getftp): Make pwd_len a local variable.
8171         (ftp_loop): Free PWD before returning.
8172
8173         * init.c (cleanup): Free opt.ftp_pass only if it's non-NULL.
8174
8175 2000-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
8176
8177         * all: Use xfree() instead of free.
8178
8179         * utils.c (xfree): New function.
8180
8181 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
8182
8183         * url.c (convert_links): HTML-quote the converted string.
8184
8185         * utils.c (html_quote_string): Move here from ftp-ls.c
8186         (html_quote_string): Make non-static; declare in utils.h.
8187         (html_quote_string): Convert SP to &#32;.
8188
8189 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
8190
8191         * ftp.c (getftp): Reformat Jan's code according to GNU coding
8192         standards; remove (debugging?) printf's; use '\0' for the ASCII
8193         zero character.  Use alloca() instead of malloc() for
8194         inter-function temporary allocations.
8195
8196 2000-11-18  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8197
8198         * ftpparse.c, ftpparse.h: New files.
8199
8200         * ftp-ls.c (ftp_parse_ls): Use ftp_parse_unix_ls for UNIX servers
8201         only. Use ftp_parse_nonunix_ls otherwise.
8202         (ftp_parse_nonunix_ls): Stub to the ftpparse library handling all
8203         exotic FTP servers.
8204
8205         * ftp.h (stype): New enum, distinguishes UNIX, VMS, and "other"
8206         FTP servers.
8207
8208         * ftp.c: New static wariables host_type, pwd, and pwd_len. 
8209         (getftp): Support for VMS. Support for FTP servers that do not
8210         place you in the root directory after login.
8211         (ftp_retrieve_list): VMS is silent about the real file size, issue
8212         a more appropriate message.
8213         (ftp_get_listing): Pass host_type to ftp_parse_ls.
8214
8215         * ftp-basic.c (ftp_pwd, ftp_syst): New functions.
8216
8217 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
8218
8219         * hash.c (hash_table_put): Don't overwrite deleted mappings.
8220
8221 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
8222
8223         * hash.c (find_mapping): New function.
8224         (hash_table_get): Use it.
8225         (hash_table_get_pair): Ditto.
8226         (hash_table_exists): Ditto.
8227         (hash_table_remove): Ditto.
8228         (hash_table_remove): Really delete the entry if the mapping
8229         following LOCATION is empty.
8230
8231         * utils.c (string_set_add): Check whether the element has existed
8232         before.
8233
8234         * hash.c (hash_table_get_pair): New function.
8235
8236 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8237
8238         * http.c (http_process_type): Ignore trailing whitespace; use
8239         strdupdelim().
8240
8241         * recur.c (recursive_retrieve): Use the new `convert' field.
8242         (convert_all_links): Ditto.
8243         (convert_all_links): Don't respect meta_disallow_follow.
8244
8245         * html-url.c (handle_link): Fill out link_relative_p and
8246         link_complete_p.
8247
8248         * url.h (struct _urlpos): Make elements more readable.
8249
8250         * recur.c (recursive_retrieve): Call slist_prepend instead of
8251         slist_append.
8252         (convert_all_links): Call slist_nreverse before iterating through
8253         urls_html.
8254
8255         * utils.c (slist_prepend): New function.
8256         (slist_nreverse): Ditto.
8257
8258 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8259
8260         * http.c (check_end): Constify.
8261
8262 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8263
8264         * http.c (http_loop): If username and password are known, try the
8265         `Basic' authentication scheme by default.
8266
8267         * connect.h: Declare test_socket_open.
8268
8269 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8270
8271         * version.c: Bump version from 1.5.3+dev to 1.7-dev.
8272
8273 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8274
8275         * http.c (gethttp): Don't use the return value of sprintf().
8276         (gethttp): Inhibit keep-alive if opt.http_keep_alive is 0.
8277
8278 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8279
8280         * recur.c (recursive_retrieve): Print the "so we don't load"
8281         debugging message only if we really don't load.
8282
8283         * http.c (gethttp): Inhibit keep-alive if proxy is being used.
8284         (gethttp): Don't request keep-alive if keep-alive is inhibited.
8285
8286 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8287
8288         * http.c (gethttp): Make the HTTP persistent connections more
8289         robust.
8290
8291 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8292
8293         * retr.c (get_contents): If use_expected, make sure that the
8294         appropriate amount of data is being read.
8295
8296         * http.c (gethttp): Check for both `Keep-Alive: ...' and
8297         `Connection: Keep-Alive'.
8298
8299         * wget.h (DEBUGP): Call debug_logprintf only if opt.debug is
8300         turned on.
8301
8302 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8303
8304         * http.c (connection_available_p): Use it.
8305
8306         * connect.c (test_socket_open): New function.
8307
8308         * http.c (gethttp): Support persistent connections.  Based on the
8309         ideas, and partly on code, by Sam Horrocks <sam@daemoninc.com>.
8310         (register_persistent): New function.
8311         (connection_available_p): Ditto.
8312         (invalidate_connection): Ditto.
8313
8314 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8315
8316         * url.c (convert_links): Handle UREL2ABS case.
8317
8318         * recur.c (recursive_retrieve): Instead of the list
8319         urls_downloaded, use hash tables dl_file_url_map and
8320         dl_url_file_map.
8321         (convert_all_links): Use them to retrieve data.
8322
8323         * host.c (clean_hosts): Free the hash tables.
8324
8325         * main.c (private_initialize): Call host_init().
8326
8327         * host.c (store_hostaddress): Use a saner, hash table-based data
8328         model.
8329         (realhost): Ditto.
8330         (host_init): Initialize the hash tables.
8331
8332 2000-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
8333
8334         * utils.c (slist_append): Eviscerate NOSORT.  Hash tables are now
8335         used for what the sorted slists used to be used for.
8336         (slist_contains): Don't rely on the list being sorted.
8337         (slist_append): Simplify the code.
8338
8339         * recur.c (recursive_cleanup): Use free_string_set.
8340
8341         * utils.c (string_set_add, string_set_exists, string_set_free):
8342         New functions for easier freeing of hash tables whose keys are
8343         strdup'ed strings.
8344
8345         * recur.c (recursive_retrieve): Use the hash table functions for
8346         storing undesirable URLs.
8347
8348         * hash.c: New file.
8349
8350 2000-11-17  Hrvoje Niksic  <hniksic@arsdigita.com>
8351
8352         * main.c (private_initialize): Call url_init.
8353         (main): Call private_initialize.
8354
8355         * url.c (unsafe_char_table): New table.
8356         (UNSAFE_CHAR): Use it.
8357         (init_unsafe_char_table): New function.
8358         (url_init): New function; call init_unsafe_char_table.
8359
8360 2000-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
8361
8362         * mswindows.h: Define snprintf and vsnprintf to _snprintf and
8363         _vsnprintf respectively.
8364
8365 2000-11-15  Hrvoje Niksic  <hniksic@arsdigita.com>
8366
8367         * config.h.in: Do the _XOPEN_SOURCE and _SVID_SOURCE things only
8368         on Linux.
8369
8370 2000-11-15  Hrvoje Niksic  <hniksic@arsdigita.com>
8371
8372         * html-url.c (handle_link): Handle HTML fragment identifiers.
8373
8374         * recur.c (recursive_retrieve): If norobot info is respected and
8375         the file is specified not to be followed by robots, respect that.
8376
8377         * html-url.c (collect_tags_mapper): Handle <meta name=robots
8378         content=X>.  For us the important cases are where X is NONE or
8379         where X contains NOFOLLOW.
8380         (get_urls_html): Propagate that information to the caller.
8381
8382 2000-11-13  Hrvoje Niksic  <hniksic@arsdigita.com>
8383
8384         * url.c (convert_links): Unlink the file we might be reading from
8385         before writing to it.
8386         (convert_links): Use alloca instead of malloc for
8387         filename_plus_orig_suffix.
8388
8389 2000-11-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8390
8391         * host.c (realhost): Add HOST to the list with quality==0 only if
8392         it wasn't already there.
8393         Based on analysis by Lu Guohan <feng@public.bjnet.edu.cn>.
8394
8395 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8396
8397         * url.c (get_urls_file): Ditto.
8398         (convert_links): Ditto.
8399
8400         * html-url.c (get_urls_html): Use read_file() instead of
8401         load_file().
8402
8403         * utils.c (read_file): New function, instead of the old
8404         load_file().
8405         (read_file_free): Ditto.
8406
8407         * url.c (findurl): Search only for the supported protocols.
8408         (convert_links): Use fwrite() when writing out a region of
8409         characters.
8410
8411 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8412
8413         * ftp-ls.c: Move html_quote_string and ftp_index here.
8414
8415         * url.c: Remove get_urls_html, since that's now in html-url.c.
8416
8417         * html-url.c: New file.
8418
8419         * html-parse.c: New file.
8420
8421 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8422
8423         * init.c (run_wgetrc): Don't bother killing off '\r' since
8424         pars_line() skips whitespace at end of line anyway.
8425         (parse_line): Oops, it didn't.  Now it does.
8426
8427         * recur.c (parse_robots): Ditto here.
8428
8429         * ftp-ls.c (ftp_parse_unix_ls): Kill off the newline character
8430         manually because read_whole_line no longer does.
8431
8432         * utils.c (read_whole_line): Rewrite to: a) use less memory
8433         (reallocates to needed size after work), b) work faster -->
8434         fgets() instead of getc, c) be more correct --> doesn't kill the
8435         newline character at the end of line.
8436
8437 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8438
8439         * init.c (comind): Initialize MAX to array size - 1.
8440
8441 2000-11-08  Hrvoje Niksic  <hniksic@arsdigita.com>
8442
8443         * url.c (construct): Changed last_slash[-1] to *(last_slash - 1).
8444         Suggested by Edward J. Sabol.
8445
8446 2000-11-08  Hrvoje Niksic  <hniksic@arsdigita.com>
8447
8448         * url.c (construct): Handle the case where host name is not
8449         followed by a slash.
8450
8451 2000-11-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8452
8453         * init.c: commands[] need to be sorted!  ("base" wasn't.)
8454
8455 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
8456
8457         * wget.h (DO_REALLOC_FROM_ALLOCA): Use braces to disambiguate
8458         `if'.
8459
8460 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
8461
8462         * url.c (construct): Insert unneeded initialization for the
8463         compiler to shut up.
8464
8465         * config.h.in: Define _XOPEN_SOURCE to 500 to get the prototype
8466         for strptime() (*duh*).  Define _SVID_SOURCE to get S_IFLNK which
8467         otherwise gets lost when you define _XOPEN_SOURCE.
8468
8469         * utils.c (touch): Include the file name in the error message.
8470         From Debian.
8471
8472 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
8473
8474         * log.c (logvprintf): Use vsnprintf() in all cases.  If necessary,
8475         resize the buffer to fit the formated message.  That way, messages
8476         of arbitrary size may be printed.
8477         (logvprintf): Use saved_append() to optionally log the last
8478         several lines of output.
8479         (logputs): Ditto.
8480         (log_close): Adapt to new data structures.
8481         (log_dump): Ditto.
8482         (redirect_output): Print messages to stderr, not to stdout.
8483
8484         * log.c (saved_append_1): New function.  Replaces the old logging
8485         system ("log all output until 10M characters") with a new, much
8486         more reasonable one ("log last screenful of text").
8487         (saved_append): New function; call saved_append_1.
8488         (free_log_line): New function.
8489
8490 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
8491
8492         * url.c (construct): Fix comment.
8493         (find_last_char): Document.
8494
8495 2000-11-04  Hrvoje Niksic  <hniksic@arsdigita.com>
8496
8497         * snprintf.c: New file.
8498
8499 2000-11-03  Hrvoje Niksic  <hniksic@arsdigita.com>
8500
8501         * wget.h: If HAVE_STDARG_H is not defined, don't declare argument
8502         types to logprintf() and debug_logprintf().
8503
8504 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8505
8506         * ftp.c (ftp_loop_internal): Hide the password from the URL when
8507         printing non-verbose.  Problem spotted by Dariusz Mlynarczyk
8508         <darekm@bydg.lomac.com.pl>.
8509
8510 2000-11-02  Junio Hamano  <junio@twinsun.com>
8511
8512         * ftp-basic.c (ftp_login): Make comparison case-insensitive.
8513
8514 2000-11-02  Tyler Riddle  <triddle@liquidmarket.com>
8515
8516         * http.c (known_authentication_scheme_p): Recognize NTML
8517         authentication.
8518         (create_authorization_line): Treat NTML the same as `Basic'.
8519
8520 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8521
8522         * retr.c (retrieve_url): Free url before returning.
8523         (retrieve_url): Free mynewloc before returning.
8524         Spotted by Mark A. Mankins <Mankins_Mark@prc.com>.
8525
8526 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8527
8528         * url.c (parseurl): Remove possible reading past the end of
8529         sup_protos[].  Spotted by Mark A. Mankins <Mankins_Mark@prc.com>.
8530
8531 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8532
8533         * main.c (main): In case of opt.downloaded overflowing, print
8534         <overflow> instead of a totally bogus random value.
8535
8536         * retr.c (retrieve_from_file): Ditto.
8537
8538         * recur.c (recursive_retrieve): Ditto.
8539
8540         * main.c (main): Ditto.
8541
8542         * http.c (http_loop): Ditto.
8543
8544         * ftp.c (ftp_loop_internal): Use downloaded_increase() instead of
8545         `+=', and downloaded_exceeds_quota() instead of the simple-minded
8546         check.
8547         (ftp_retrieve_list): Ditto.
8548         (ftp_retrieve_dirs): Ditto.
8549         (ftp_retrieve_glob): Ditto.
8550
8551         * retr.c (downloaded_increase): New function.  Notice overflows of
8552         opt.downloaded.
8553         (downloaded_exceeds_quota): Make sure that opt.downloaded is not
8554         used if it overflowed.
8555
8556         * options.h (struct options): New member downloaded_overflow.
8557
8558 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8559
8560         * wget.h (enum): Remove extra space after last enumeration.
8561
8562 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8563
8564         * main.c (main): Use legible_very_long() for printing
8565         opt.downloaded.
8566
8567         * utils.c (legible_1): New function that operates on strings and
8568         does the brunt of legible()'s work.
8569         (legible): Use legible_1().
8570         (legible_very_long): New function; dump the argument with
8571         sprintf(), and call legible_1().
8572
8573         * options.h (struct options): Use VERY_LONG_TYPE for
8574         opt.downloaded.
8575
8576         * sysdep.h (VERY_LONG_TYPE): Define it to have a 64-bit or greater
8577         type.
8578
8579         * config.h.in: Make sure that SIZEOF_LONG and SIZEOF_LONG_LONG get
8580         defined.  Define HAVE_LONG_LONG if long long is available.
8581
8582 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8583
8584         * utils.c (long_to_string): Update with a later, better version.
8585
8586 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8587
8588         * url.c (path_simplify_with_kludge): New function.
8589         (path_simplify_with_kludge): Disable it.  Instead...
8590         (parse_dir): ...make sure that at this point the right thing is
8591         done, i.e. that "query" part of the URL (?...) is always assigned
8592         to the file, never to the directory portion of the path.
8593
8594 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8595
8596         * retr.c (retrieve_url): Detect redirection cycles.
8597
8598 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8599
8600         * url.c (get_urls_html): Decode HTML entities using
8601         html_decode_entities.
8602
8603         * html.c (htmlfindurl): Don't count the `#' in numeric entities
8604         (&#NNN;) as an HTML fragemnt.
8605         (html_decode_entities): New function.
8606
8607 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8608
8609         * html.c (htmlfindurl): Fix recognition of # HTML fragments.
8610
8611 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8612
8613         * url.c (construct): Rewritten for clarity.  Avoids the
8614         unnecessary copying and stack-allocation the old version
8615         performed.
8616
8617 2000-10-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8618
8619         * ftp.c (getftp): Ditto.
8620
8621         * http.c (gethttp): Rewind the stream when retrying from scratch.
8622
8623 2000-10-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8624
8625         * retr.c (retrieve_url): Use url_concat() to handle relative
8626         redirections instead of /ad hoc/ code.
8627
8628         * url.c (url_concat): New function encapsulating weird
8629         construct().
8630         (urllen_http_hack): New function.
8631         (construct): When constructing new URLs, recognize that `?' does
8632         not form part of the file name in HTTP.
8633
8634 2000-10-13  Adrian Aichner  <adrian@xemacs.org>
8635
8636         * retr.c: Add msec timing support for WINDOWS.
8637         * retr.c (reset_timer): GetSystemTime() on WINDOWS.
8638         * retr.c (elapsed_time): Calculate delta time to msec on WINDOWS.
8639
8640 2000-10-27  Dan Harkless  <wget@harkless.org>
8641
8642         * retr.c (retrieve_url): Manually applied T. Bharath
8643         <TBharath@responsenetworks.com>'s patch to get wget to grok
8644         illegal relative URL redirects.  Reformatted and re-commented it.
8645
8646 2000-10-23  Dan Harkless  <wget@harkless.org>
8647
8648         * connect.c (make_connection and bindport): Manually applied Rob
8649         Mayoff <mayoff@dqd.com>'s 1.5.3 patch to add --bind-address,
8650         changing coding style to GNU's.
8651
8652         * ftp.c (ftp_loop_internal): --delete-after wasn't implemented for
8653         files downloaded via FTP.  Per a comment, .listing files were not
8654         counted towards number of bytes and files downloaded because they're 
8655         deleted anyway.  Well, they aren't under -nr, so count them then.
8656
8657         * init.c: Manually applied Rob Mayoff's 1.5.3 patch to add
8658         --bind-address, alphabetizing, changing coding style to GNU's,
8659         commenting, and renaming cmd_ip_address() to cmd_address() to
8660         imply hostnames also okay.
8661                 
8662         * main.c (main): --delete-after didn't delete the root of the
8663         tree.  Ignore --convert-links if --delete-after was specified.
8664         Manually applied Rob Mayoff's 1.5.3 patch to add --bind-address,
8665         fixing duplicate use of added-since-1.5.3 case value.
8666         (print_help): Clarified that --delete-after deletes local files.
8667         Rob forgot to add a line for his new --bind-address option.
8668                 
8669         * options.h (struct options): Manually applied Rob Mayoff's patch
8670         to add --bind-address (bind_address structure member).
8671                 
8672         * recur.c (recursive_retrieve): Improved comment; added DEBUGP().
8673         Ignore --convert-links if --delete-after was specified.
8674                 
8675         * retr.c (retrieve_from_file): Just added a DEBUGP().
8676                 
8677 2000-10-19  Dan Harkless  <wget@harkless.org>
8678
8679         * ftp.c (ftp_loop_internal): downloaded_file() enumerators changed.
8680         (getftp): Applied Piotr Sulecki <Piotr.Sulecki@ios.krakow.pl>'s
8681         patch to work around FTP servers that incorrectly respond to the
8682         "REST" command with the remaining size rather than the total file size.
8683                 
8684         * http.c (gethttp): Improved a comment and added code to tack on
8685         ".html" to text/html files without that extension when -E specified.
8686         (http_loop): Use new downloaded_file() enumerators and deal with
8687         the case of gethttp() called xrealloc() on u->local.
8688
8689         * init.c (commands): Added new "htmlextension" command.
8690         Also renamed John Daily's cmd_quad() to the more descriptive
8691         cmd_lockable_boolean(), alpha-sorted the CMD_DECLARE()s and
8692         removed duplicate cmd_boolean() declaration.
8693
8694         * main.c (print_help): Added my new -E / --html-extension option.
8695         (main): Undocumented --email-address option previously used -E synonym.
8696         Stole it away for the much more deserving --html-extension's use.
8697
8698         * options.h (struct options): Added html_extension field.
8699
8700         * url.c (convert_links): URL X that we saved as X.html locally due
8701         to -E needs to be backed up as X.orig, not X.html.orig.  Added comments.
8702         (downloaded_file): Now remembers if we added .html extension to a file.
8703
8704         * url.h (downloaded_file_t): Added extra enumerators to support above.
8705         (downloaded_file): Now takes and returns a downloaded_file_t.
8706
8707         * wget.h (unnamed "dt" enum): Added ADDED_HTML_EXTENSION enumerator.
8708         
8709 2000-10-09  Dan Harkless  <wget@harkless.org>
8710
8711         * html.c (htmlfindurl): Added unneeded initialization to quiet warning.
8712                 
8713         * main.c (print_help): Clarified what --retr-symlinks does.
8714         
8715 2000-09-15  John Daily  <jdaily@cyberdude.com>
8716
8717         * init.c: Add support for "always" and "never" values to allow
8718         .wgetrc to override commandline (useful e.g. with .pm files
8719         calling `wget --passive-ftp' when your firewall doesn't allow that).
8720
8721         * ftp.c (getftp): passive_ftp is first option to support always/never.
8722
8723 2000-08-30  Dan Harkless  <wget@harkless.org>
8724
8725         * ftp.c (ftp_retrieve_list): Use new INFINITE_RECURSION #define.
8726         
8727         * html.c: htmlfindurl() now takes final `dash_p_leaf_HTML' parameter.
8728         Wrapped some > 80-column lines.  When -p is specified and we're at a 
8729         leaf node, do not traverse <A>, <AREA>, or <LINK> tags other than 
8730         <LINK REL="stylesheet">.
8731         
8732         * html.h (htmlfindurl): Now takes final `dash_p_leaf_HTML' parameter.
8733         
8734         * init.c: Added new -p / --page-requisites / page_requisites option.
8735
8736         * main.c (print_help): Clarified that -l inf and -l 0 both allow
8737         infinite recursion.  Changed the unhelpful --mirrior description
8738         to simply give the options it's equivalent to.  Added new -p option.
8739         (main): Added some comments; handle new -p / --page-requisites.
8740         
8741         * options.h (struct options): Added new page_requisites field.
8742
8743         * recur.c: Changed "URL-s" to "URLs" and "HTML-s" to "HTMLs".
8744         Calculate and pass down new `dash_p_leaf_HTML' parameter to
8745         get_urls_html().  Use new INFINITE_RECURSION #define.
8746
8747         * retr.c: Changed "URL-s" to "URLs".  get_urls_html() now takes
8748         final `dash_p_leaf_HTML' parameter.
8749
8750         * url.c: get_urls_html() and htmlfindurl() now take final
8751         `dash_p_leaf_HTML' parameter.
8752
8753         * url.h (get_urls_html): Now takes final `dash_p_leaf_HTML' parameter.
8754
8755         * wget.h: Added some comments and new INFINITE_RECURSION #define.
8756         
8757 2000-08-23  Dan Harkless  <wget@harkless.org>
8758
8759         * main.c (print_help): -B / --base was not mentioned.
8760
8761 2000-08-22  Dan Harkless  <wget@harkless.org>
8762
8763         * main.c (print_help): Modified -nc description to mention that it
8764         also prevents the creation of multiple versions of the same file
8765         with ".<number>" suffixes.
8766
8767 2000-07-14  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8768
8769         * retr.c (retrieve_url): Consistently strdup opt.referer when
8770         setting u->referer.
8771
8772 2000-06-09  Dan Harkless  <wget@harkless.org>
8773
8774         * main.c (print_help): --help output for --waitretry was over 80 cols.
8775
8776 2000-06-09  Hrvoje Niksic  <hniksic@iskon.hr>
8777
8778         * url.c (encode_string): Fix comment.
8779         Suggested by Herold Heiko <Heiko.Herold@previnet.it>.
8780
8781 2000-06-01  Const Kaplinsky  <const@ce.cctpu.edu.ru>
8782
8783         * ftp.c (ftp_retrieve_list): Change permissions only on plain
8784         files.
8785
8786 2000-06-01  Hrvoje Niksic  <hniksic@iskon.hr>
8787
8788         * url.c (str_url): Print the port number only if it's different
8789         from the default port number for that protocol.
8790
8791 2000-05-22  Dan Harkless  <wget@harkless.org>
8792
8793         * main.c (print_help): Added --help line for Damir Dzeko
8794         <ddzeko@zesoi.fer.hr>'s until-now-undocumented --referer option.
8795         Removed comments that --referer and --waitretry were undocumented.
8796         Changed "`.wgetrc' command" to "`.wgetrc'-style command" on --help
8797         line for --execute.
8798
8799 2000-05-18  Hrvoje Niksic  <hniksic@iskon.hr>
8800
8801         * ftp.c (getftp): Ditto.
8802
8803         * http.c (gethttp): Check for return value of fclose/fflush.
8804
8805 2000-04-12  Hrvoje Niksic  <hniksic@iskon.hr>
8806
8807         * host.c (store_hostaddress): Instead of shifting ADDR, start
8808         copying from the correct address.
8809
8810 2000-04-12  Hrvoje Niksic  <hniksic@iskon.hr>
8811
8812         * http.c (gethttp): Don't free REQUEST -- it was allocated with
8813         alloca().
8814         Pointed out by Gisle Vanem <gvanem@eunet.no>.
8815
8816 2000-04-04  Dan Harkless  <wget@harkless.org>
8817
8818         * host.c (store_hostaddress): R. K. Owen's patch introduces a
8819         "left shift count >= width of type" warning on 32-bit
8820         architectures.  Got rid of it by tricking the compiler w/ a variable.
8821         
8822         * url.c (UNSAFE_CHAR): The macro didn't include all the illegal
8823         characters per RFC1738, namely everything above '~'.  It also
8824         generated a warning on OSes where char =~ unsigned char.  Fixed.
8825         
8826 1998-10-17  Hrvoje Niksic  <hniksic@srce.hr>
8827
8828         * http.c (http_process_type): Removed needless strdup(), a memory
8829         leak.
8830
8831 1998-09-25  Hrvoje Niksic  <hniksic@srce.hr>
8832
8833         * html.c (htmlfindurl): Set PH to the first occurrence of `#'.
8834
8835 1998-09-25  Simon Munton  <simonm@m4data.co.uk>
8836
8837         * init.c (wgetrc_file_name): Don't free HOME under Windows.
8838
8839 1998-12-01  "R. K. Owen"  <rkowen@Nersc.GOV>
8840
8841         * host.c (store_hostaddress): Fix for big endian 64-bit machines.
8842
8843 1998-12-01  Hrvoje Niksic  <hniksic@srce.hr>
8844
8845         * url.c (UNSAFE_CHAR): New macro.
8846         (contains_unsafe): Use it.
8847         (encode_string): Ditto.
8848
8849 1998-12-01  Hrvoje Niksic  <hniksic@srce.hr>
8850
8851         * main.c (i18n_initialize): Use LC_MESSAGES only if available.
8852
8853 2000-03-31  Hrvoje Niksic  <hniksic@srce.hr>
8854
8855         * Use TOUPPER/TOLOWER.
8856
8857 1998-12-22  Alexander V. Lukyanov  <lav@yars.free.net>
8858
8859         * ftp-opie.c (btoe): Zero-terminate OSTORE.
8860
8861 2000-03-21  Hrvoje Niksic  <hniksic@iskon.hr>
8862
8863         * wget.h (DO_REALLOC_FROM_ALLOCA): Ditto.
8864
8865         * sysdep.h (ISALNUM): New macro.
8866         (TOLOWER): Ditto.
8867         (TOUPPER): Ditto.
8868
8869 2000-03-10  Dan Harkless  <wget@harkless.org>
8870
8871         * html.c (idmatch): Implemented checking of my new --follow-tags
8872         and --ignore-tags options.
8873         
8874         * init.c (commands): Added comment reminding people adding new
8875         entries doing allocation to add corresponding freeing in cleanup().
8876         (commands): Added new followtags and ignoretags commands.
8877         (cleanup): Free storage for new followtags and ignoretags.
8878         
8879         * main.c: Use of "comma-separated list" was random -- normalized
8880         it.  Did some alphabetization.  Added comments pointing out
8881         "Options without arguments" and "Options accepting an argument"
8882         sections of long_options[].  Added new options --follow-tags and
8883         -G / --ignore-tags.  Added comment that Damir's --referer is
8884         currently undocumented.  Added comment that Heiko's --waitretry is
8885         partially undocumented (mentioned in --help but not in
8886         wget.texi).  Moved improperly sorted 24, 129, and 'G' cases.
8887         
8888         * options.h (struct options): Added new fields follow_tags and
8889         ignore_tags. 
8890         
8891         * wget.h: Added "#define EQ 0" so we can say "strcmp(a, b) == EQ".
8892         
8893 2000-03-02  Dan Harkless  <wget@harkless.org>
8894
8895         * ftp.c (ftp_loop_internal): Heiko introduced "suggest explicit
8896         braces to avoid ambiguous `else'" warnings.  Eliminated them.
8897         
8898         * http.c (gethttp): Dan Berger's query string patch is totally
8899         bogus.  If you have two different URLs, gen_page.cgi?page1 and
8900         get_page.cgi?page2, they'll both be saved as get_page.cgi and the
8901         second will overwrite the first.  Also, parameters to implicit
8902         CGIs, like "http://www.host.com/db/?2000-03-02" cause the URLs to
8903         be printed with trailing garbage characters, and could seg fault.
8904         Backing out the patch, which Dan B. informed me by email was just
8905         a kludge to download StarOffice from Sun made necessary due to
8906         wget's unconditional escaping of certain characters (room for an
8907         option there?).
8908         (http_loop): Heiko introduced "suggest explicit braces to avoid
8909         ambiguous `else'" warnings.  Eliminated them.
8910         
8911         * main.c: Heiko's --wait / --waitretry backwards compatibility
8912         code looks to have been totally untested -- automatic variable
8913         'wr' was used without being initialized, and a long int was passed
8914         into setval()'s char* val parameter.
8915         
8916         * recur.c (parse_robots): Applied Edward J. Sabol
8917         <sabol@alderaan.gsfc.nasa.gov>'s patch for Guan Yang's reported
8918         problem with "User-agent:<space>*<space>" lines in robots.txt.
8919         
8920         * url.c (parseurl, str_url): Removing Dan Berger's code (see
8921         http.c above for explanation).
8922         
8923 1999-08-25  Heiko Herold  <Heiko.Herold@previnet.it>
8924
8925         * ftp.c: Respect new option waitretry.
8926
8927 2000-01-30  Damir Dzeko  <ddzeko@zesoi.fer.hr>
8928
8929         * http.c (gethttp): Send custom Referer, if required.
8930
8931 1999-09-24  Charles G Waldman  <cgw@fnal.gov>
8932
8933         * netrc.c (parse_netrc): Allow passwords to contain spaces.
8934
8935         * netrc.c (parse_netrc): New function.
8936
8937 1999-09-17  Dan Berger  <dberger@ix.netcom.com>
8938
8939         * http.c (gethttp): Send it.
8940
8941         * url.c (parseurl): Detect query string in HTTP URL-s.
8942         (str_url): Print it.
8943
8944 2000-03-02  HIROSE Masaaki  <hirose31@t3.rim.or.jp>
8945
8946         * html.c (html_allow): Add <link href=...> and <script src=...>.
8947
8948 1999-05-02  andrew deryabin  <djsf@softhome.net>
8949
8950         * http.c (gethttp): Specify port in `Host' header only if it's
8951         different from 80.
8952
8953 1998-11-03  Edward J. Sabol  <sabol@alderaan.gsfc.nasa.gov>
8954
8955         * recur.c (recursive_retrieve): If a finite maximum depth is
8956         specified, and we're are already at that depth, don't download the
8957         HTML file for parsing.
8958
8959 2000-03-01  Dan Harkless  <wget@harkless.org>
8960
8961         * ftp.c (ftp_loop_internal): Call new downloaded_file() function,
8962         even though we don't do conversion on HTML files retrieved via
8963         FTP, so _current_ usage of downloaded_file() makes this call unneeded. 
8964         (ftp_retrieve_list): Added a comment saying where we need to
8965         stat() a .orig file if FTP'd HTML file conversion is ever implemented.
8966         (ftp_retrieve_list): "Local file '%s' is more recent," is sometimes
8967         a lie -- reworded as "Server file no newer than local file '%s' --".
8968         
8969         * http.c (http_loop): Fixed a typo and clarified a comment.
8970         (http_loop): When -K and -N are specified together, compare size
8971         and timestamp of server file X against local file X.orig (if
8972         extant) rather than converted local file X.
8973         (http_loop): "Local file '%s' is more recent," is sometimes a lie
8974         -- reworded as "Server file no newer than local file '%s' --".
8975         (http_loop): Call new downloaded_file() function to prevent
8976         wrongful overwriting of .orig file when -N is specified.
8977         
8978         * url.c (convert_links): When -K specified, only rename X to
8979         X.orig if downloaded_file() returns TRUE.  Otherwise when we skip
8980         file X due to -N, we clobber an X.orig from a previous invocation.
8981         (convert_links): Call the failsafe xstrdup(), not the real strdup().
8982         (convert_links): Added a note asking anyone who understands how
8983         multiple URLs can correspond to a single file to comment it.
8984         (downloaded_file): Added this new function.
8985         
8986         * url.h (downloaded_file): Added prototype for this new function
8987         as well as its downloaded_file_t enum type.
8988
8989         * wget.h (boolean): Added this new typedef and TRUE and FALSE #defines.
8990
8991 2000-02-29  Dan Harkless  <wget@harkless.org>
8992
8993         * version.c: Upped version to developer-only "1.5.3+dev".
8994
8995 2000-02-18  Dan Harkless  <wget@harkless.org>
8996
8997         * init.c (backup_converted): Added this new option.
8998
8999         * main.c (-K / --backup-converted): Added this new option.
9000
9001         * options.h (backup_converted): Added this new option.
9002
9003         * url.c (convert_links): When backup_converted is specified, save
9004         file X as X.orig before converting.
9005
9006         * url.h (urlpos): Fixed typo -- said "Rekative" instead of "Relative".
9007
9008 1998-09-21  Hrvoje Niksic  <hniksic@srce.hr>
9009
9010         * version.c: Wget 1.5.3 is released.
9011
9012 1998-09-21  Hrvoje Niksic  <hniksic@srce.hr>
9013
9014         * host.c (ftp_getaddress): Don't warn when reverse-lookup of local 
9015         address doesn't yield FQDN.
9016
9017 1998-09-21  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
9018
9019         * cmpt.c (strerror): Fix declaration of sys_errlist.
9020
9021 1998-09-11  Hrvoje Niksic  <hniksic@srce.hr>
9022
9023         * main.c (main): Don't use an array subscript as the first
9024         argument to STRDUP_ALLOCA.
9025         From Kaveh R. Ghazi.
9026
9027 1998-09-11  Szakacsits Szabolcs  <szaka@sienet.hu>
9028
9029         * html.c (htmlfindurl): Download table background.
9030
9031 1998-09-11  Hans Grobler  <grobh@conde.ee.sun.ac.za>
9032
9033         * init.c (parse_line): Would free *com before allocating it.
9034         (parse_line): Would free com instead of *com.
9035
9036 1998-09-10  Howard Gayle  <howard@fjst.com>
9037
9038         * url.c (get_urls_html): Would drop the last character of the
9039         link.
9040
9041 1998-09-10  Hrvoje Niksic  <hniksic@srce.hr>
9042
9043         * http.c (http_loop): Don't print status code if quiet.
9044
9045 1998-09-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9046
9047         * log.c: Use <stdarg.h> only when __STDC__.
9048
9049 1998-09-10  Adam D. Moss  <adam@foxbox.org>
9050
9051         * html.c (htmlfindurl): Download <layer src=...>.
9052
9053 1998-09-10  Howard Gayle  <howard@fjst.com>
9054
9055         * ftp.c (ftp_retrieve_list): Don't update the time stamp of a file 
9056         not retrieved.
9057
9058 1998-06-27  Hrvoje Niksic  <hniksic@srce.hr>
9059
9060         * utils.c: Include <libc.h> on NeXT.
9061
9062 1998-06-26  Heinz Salzmann  <heinz.salzmann@intermetall.de>
9063
9064         * url.c (get_urls_html): Fix calculation of URL position.
9065
9066 1998-06-23  Hrvoje Niksic  <hniksic@srce.hr>
9067
9068         * version.c: Wget 1.5.2 is released.
9069
9070 1998-06-23  Dave Love  <d.love@dl.ac.uk>
9071
9072         * ftp.c, init.c, netrc.c: Include errno.h.
9073
9074         * http.c: Include errno.h and time header.
9075
9076         * Makefile.in (exext): Define.
9077         (install.bin, uninstall.bin): Use it.
9078
9079 1998-06-21  Hrvoje Niksic  <hniksic@srce.hr>
9080
9081         * http.c (http_loop): Don't attempt to compare local and remote
9082         sizes if the remote size is unknown.
9083
9084 1998-06-16  Hrvoje Niksic  <hniksic@srce.hr>
9085
9086         * url.c (get_urls_html): Use malloc() instead of alloca in the
9087         loop.
9088
9089 1998-06-13  Hrvoje Niksic  <hniksic@srce.hr>
9090
9091         * version.c: Wget 1.5.2-b4 is released.
9092
9093 1998-06-13  Hrvoje Niksic  <hniksic@srce.hr>
9094
9095         * url.c (get_urls_html): Ignore spaces before and after the URI.
9096
9097 1998-06-08  Wanderlei Antonio Cavassin  <cavassin@conectiva.com.br>
9098
9099         * ftp.c (getftp): Translate `done'.
9100
9101 1998-06-06  Hrvoje Niksic  <hniksic@srce.hr>
9102
9103         * version.c: Wget 1.5.2-b3 is released.
9104
9105 1998-06-06  Alexander Kourakos  <awk@bnt.com>
9106
9107         * init.c (cleanup): Close dfp, don't free it.
9108
9109 1998-06-06  Hrvoje Niksic  <hniksic@srce.hr>
9110
9111         * utils.c (make_directory): Twiddle.
9112
9113         * config.h.in: Added template for access().
9114
9115 1998-06-05  Mathieu Guillaume  <mat@cythere.com>
9116
9117         * html.c (htmlfindurl): Download <input src=...>
9118
9119 1998-06-03  Hrvoje Niksic  <hniksic@srce.hr>
9120
9121         * utils.c (file_exists_p): Use access() with two arguments.
9122
9123 1998-05-27  Martin Kraemer  <Martin.Kraemer@mch.sni.de>
9124
9125         * netrc.c (parse_netrc): Correct logic.
9126
9127 1998-05-27  Hrvoje Niksic  <hniksic@srce.hr>
9128
9129         * ftp.c (getftp): Added `break'; suggested by Lin Zhe Min
9130         <ljm@ljm.wownet.net>.
9131
9132 1998-05-24  Hrvoje Niksic  <hniksic@srce.hr>
9133
9134         * version.c: Wget 1.5.2-b2 is released.
9135
9136 1998-05-18  Juan Jose Rodriguez  <jcnsoft@jal1.telmex.net.mx>
9137
9138         * mswindows.h: Don't translate mkdir to _mkdir under Borland.
9139
9140 1998-05-17  Hrvoje Niksic  <hniksic@srce.hr>
9141
9142         * retr.c (elapsed_time): Return correct value when
9143         HAVE_GETTIMEOFDAY is undefined.
9144
9145 1998-05-13  Hrvoje Niksic  <hniksic@srce.hr>
9146
9147         * version.c: Wget 1.5.2-b1 is released.
9148
9149 1998-05-08  Hrvoje Niksic  <hniksic@srce.hr>
9150
9151         * getopt.c (_getopt_internal): Use exec_name instead of argv[0].
9152         (_getopt_internal): Don't translate `#if 0'-ed strings.
9153
9154 1998-05-06  Douglas E. Wegscheid  <wegscd@whirlpool.com>
9155
9156         * mswindows.c (ws_handler): Use fork_to_background().
9157
9158 1998-05-05  Hrvoje Niksic  <hniksic@srce.hr>
9159
9160         * version.c: Wget 1.5.1 is released.
9161
9162 1998-05-05  Hrvoje Niksic  <hniksic@srce.hr>
9163
9164         * http.c (parse_http_status_line): Avoid `minor' and `major'
9165         names.
9166
9167 1998-05-02  Hrvoje Niksic  <hniksic@srce.hr>
9168
9169         * utils.c (mkdirhier): Renamed to make_directory.
9170
9171 1998-05-01  Hrvoje Niksic  <hniksic@srce.hr>
9172
9173         * mswindows.c (fork_to_background): Define under Windows.
9174
9175         * utils.c (fork_to_background): New function.
9176
9177         * html.c (htmlfindurl): Removed rerdundant casts.
9178
9179 1998-05-01  Douglas E. Wegscheid  <wegscd@whirlpool.com>
9180
9181         * mswindows.c (ws_mypath): Cache the path.
9182
9183 1998-04-30  Douglas E. Wegscheid  <wegscd@whirlpool.com>
9184
9185         * ftp.h: Prefix enum ftype members with FT_.
9186
9187         * ftp-ls.c, ftp.c, html.h: Adjust accordingly.
9188
9189         * mswindows.h: Use stat under Borland, _stat under MSVC.
9190
9191 1998-04-28  Hrvoje Niksic  <hniksic@srce.hr>
9192
9193         * http.c (known_authentication_scheme_p): New function.
9194         (gethttp): Handle authorization more correctly.
9195
9196         * ftp-basic.h: Removed.
9197
9198         * cmpt.h: Removed.
9199
9200         * utils.c: Include <unistd.h> before <pwd.h>; needed under SunOS
9201         with gcc 2.8.
9202         (numdigit): Use `while' loop.
9203
9204         * http.c (create_authorization_line): Detect authentication
9205         schemes case-insensitively.
9206
9207         * http.c (extract_header_attr): Use strdupdelim().
9208         (digest_authentication_encode): Move declaration of local
9209         variables to smaller scope.
9210         (digest_authentication_encode): Reset REALM, OPAQUE and NONCE.
9211         (create_authorization_line): Detect authentication schemes
9212         case-insensitively.
9213
9214         * utils.c (touch): Constify.
9215
9216         * http.c (gethttp): Report a nicer error when no data is received.
9217
9218         * rbuf.h (RBUF_READCHAR): Ditto.
9219
9220         * ftp-basic.c (ftp_response): Use sizeof.
9221
9222 1998-04-27  Hrvoje Niksic  <hniksic@srce.hr>
9223
9224         * retr.c (print_percentage): EXPECTED is long, not int.
9225         (print_percentage): Use floating-point arithmetic to avoid
9226         overflow with large files' sizes multiplied with 100.
9227
9228 1998-04-27  Gregor Hoffleit  <flight@mathi.uni-heidelberg.de>
9229
9230         * config.h.in: Added pid_t stub.
9231
9232         * sysdep.h (S_ISREG): Moved here from mswindows.h (NeXT doesn't
9233         define it).
9234
9235 1998-04-20  Hrvoje Niksic  <hniksic@srce.hr>
9236
9237         * version.c: Wget 1.5.0 is released.
9238
9239 1998-04-18  Hrvoje Niksic  <hniksic@srce.hr>
9240
9241         * url.c (str_url): Ditto.
9242
9243         * ftp-basic.c (ftp_rest): Use new name.
9244
9245         * utils.c (long_to_string): Renamed from prnum().
9246
9247 1998-04-16  Hrvoje Niksic  <hniksic@srce.hr>
9248
9249         * version.c: Wget 1.5-b17 is released.
9250
9251 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
9252
9253         * headers.c (header_get): New argument FLAGS.
9254
9255         * http.c (gethttp): If request is malformed, bail out of the
9256         header loop.
9257         (gethttp): Check for empty header *after* the status line checks.
9258         (gethttp): Disallow continuations for status line.
9259
9260 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
9261
9262         * version.c: Wget 1.5-b16 is released.
9263
9264 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
9265
9266         * init.c (commands): Renamed `always_rest' to `continue'.
9267
9268 1998-04-05  Hrvoje Niksic  <hniksic@srce.hr>
9269
9270         * all: Use it.
9271
9272         * log.c (logputs): New argument.
9273         (logvprintf): Ditto.
9274         (logprintf): Ditto.
9275
9276 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
9277
9278         * http.c (http_atotm): Update comment.
9279
9280         * main.c (i18n_initialize): Set LC_MESSAGES, not LC_ALL.
9281
9282         * wget.h: Renamed ENABLED_NLS to HAVE_NLS.
9283
9284         * main.c (i18n_initialize): New function.
9285         (main): Use it.
9286
9287         * log.c: Include <unistd.h>.
9288
9289         * retr.c (show_progress): Cast alloca to char *.
9290
9291 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
9292
9293         * version.c: Wget 1.5-b15 is released.
9294
9295 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
9296
9297         * utils.h: Declare file_non_directory_p().
9298
9299 1998-04-03  Hrvoje Niksic  <hniksic@srce.hr>
9300
9301         * main.c (main): It's `tries', not `numtries' now.
9302
9303 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
9304
9305         * init.c (getperms): Removed.
9306
9307 1998-04-01  Tim Charron  <tcharron@interlog.com>
9308
9309         * log.c (logvprintf): Don't use ARGS twice.
9310
9311 1998-04-01  John  <john@futuresguide.com>
9312
9313         * mswindows.c: Cleaned up.
9314
9315 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
9316
9317         * version.c: Wget 1.5-b14 is released.
9318
9319 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
9320
9321         * ftp-opie.c (STRLEN4): New macro.
9322         (btoe): Use it.
9323
9324 1998-04-01  Junio Hamano  <junio@twinsun.com>
9325
9326         * http.c: Document all the Digest functions.
9327
9328 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
9329
9330         * utils.c (file_non_directory_p): Renamed from isfile().
9331
9332         * mswindows.h (S_ISREG): New macro, suggested by Tim Adam.
9333
9334 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
9335
9336         * utils.c (mkdirhier): Use 0777 instead of opt.dirmode.
9337
9338         * init.c (cmd_spec_dotstyle): Use 48 dots per line for binary
9339         style.
9340         (cmd_permissions): Removed.
9341
9342         * config.h.in: Add template for WORDS_BIGENDIAN.
9343
9344 1998-03-31  Junio Hamano  <junio@twinsun.com>
9345
9346         * http.c (HEXD2asc): New macro.
9347         (dump_hash): Use it.
9348
9349 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
9350
9351         * version.c: Wget 1.5-b13 is released.
9352
9353 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
9354
9355         * main.c (main): Don't try to use `com'.
9356
9357 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
9358
9359         * init.c (cmd_permissions): New function.
9360
9361 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
9362
9363         * version.c: Wget 1.5-b12 is released.
9364
9365 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
9366
9367         * init.c (commands): Renamed `numtries' to `tries'.
9368         (cmd_spec_debug): Removed.
9369         (home_dir): Under Windows, return `C:\' if HOME is undefined.
9370
9371 1998-03-29  Hrvoje Niksic  <hniksic@srce.hr>
9372
9373         * config.h.in: Define _XOPEN_SOURCE.
9374
9375         * init.c (check_user_specified_header): New function.
9376         (cmd_spec_header): Use it.
9377         (cmd_spec_useragent): New function.
9378
9379 1998-03-29  Hrvoje Niksic  <hniksic@srce.hr>
9380
9381         * version.c: Wget 1.5-b11 is released.
9382
9383 1998-03-28  Hrvoje Niksic  <hniksic@srce.hr>
9384
9385         * wget.h: Include <libintl.h> only if NLS is enabled.
9386
9387 1998-03-26  Hrvoje Niksic  <hniksic@srce.hr>
9388
9389         * options.h (struct options): Made `wait' a long.
9390         (struct options): Ditto for `timeout'.
9391
9392 1998-03-19  Hrvoje Niksic  <hniksic@srce.hr>
9393
9394         * utils.c (exists): Renamed to file_exists_p.
9395         (file_exists_p): Use access() if available.
9396
9397 1998-03-17  Hrvoje Niksic  <hniksic@srce.hr>
9398
9399         * utils.c (memfatal): Set save_log_p to 0 to avoid potential
9400         infloop.
9401
9402         * log.c: do_logging -> save_log_p.
9403
9404         * config.h.in: Added template for HAVE_VSNPRINTF.
9405
9406 1998-03-16  Hrvoje Niksic  <hniksic@srce.hr>
9407
9408         * init.c: Ditto.
9409
9410         * http.c: Protect declaration against non-ANSI compiler.
9411
9412         * log.c (logvprintf): Use vsnprintf() if available.
9413
9414         * getopt.c (main): Don't translate test stuff.
9415
9416 1998-03-16  Hrvoje Niksic  <hniksic@srce.hr>
9417
9418         * version.c: Wget 1.5-b10 is released.
9419
9420 1998-03-11  Hrvoje Niksic  <hniksic@srce.hr>
9421
9422         * ftp.c (getftp): Don't translate "CWD %s".
9423
9424         * wget.h (GCC_FORMAT_ATTR): Renamed from FORMAT_ATTR.
9425
9426 1998-03-07  Hrvoje Niksic  <hniksic@srce.hr>
9427
9428         * ftp-opie.c (btoe): Use memcpy() instead of strncat().
9429
9430         * log.c (logputs): New function.
9431         (logvprintf): Renamed from vlogmsg; use logputs().
9432
9433         * retr.c (show_progress): Print `[100%]' when the retrieval is
9434         finished.
9435
9436         * init.c (run_wgetrc): Use FILE, not PATH.
9437         (wgetrc_file_name): Ditto.
9438
9439 1998-03-07  Tim Adam  <tma@osa.com.au>
9440
9441         * recur.c (parse_robots): Correctly reset `entries' on empty
9442         disallow.
9443
9444 1998-03-07  Hrvoje Niksic  <hniksic@srce.hr>
9445
9446         * init.c (cmd_spec_debug): Use cmd_boolean().
9447
9448 1998-02-23  Hrvoje Niksic  <hniksic@srce.hr>
9449
9450         * http.c (gethttp): Create proxy-authorization correctly.
9451
9452 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
9453
9454         * md5.c: Ditto.
9455
9456         * getopt.c: Use ANSI function definitions.
9457
9458         * ftp-opie.c: New file.
9459
9460         * options.h: Don't redefine EXTERN.
9461
9462         * init.c: Sort it correctly.
9463
9464 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
9465
9466         * version.c: Wget 1.5-b9 is released.
9467
9468 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
9469
9470         * recur.c (recursive_retrieve): Reset `first_time'.
9471
9472         * ftp.c (getftp): Added `default' clause to switches of uerr_t.
9473
9474         * rbuf.c (rbuf_peek): Simplified.
9475         (rbuf_flush): Use MINVAL.
9476
9477         * wget.h (MINVAL): Moved from url.h.
9478
9479         * rbuf.h (RBUF_FD): New macro.
9480
9481         * url.c (add_url): Add to the head of the list.
9482
9483         * ftp.c (ftp_retrieve_list): Set the permissions to downloaded
9484         file.
9485         (getftp): Set the default permissions to 0600.
9486
9487 1998-02-21  Hrvoje Niksic  <hniksic@srce.hr>
9488
9489         * url.c (get_urls_html): Ditto.
9490         (convert_links): Ditto.
9491
9492         * recur.c (parse_robots): Ditto.
9493
9494         * html.c (ftp_index): Ditto.
9495
9496         * ftp-ls.c (ftp_parse_unix_ls): Open file as binary.
9497
9498         * init.c (defaults): Initialize `opt' to zero via memset.
9499
9500         * http.c (digest_authentication_encode): goto considered harmful.
9501
9502 1998-02-19  Hrvoje Niksic  <hniksic@srce.hr>
9503
9504         * ftp.c (delelement): Simplify and fix leak.
9505
9506 1998-02-18  Hrvoje Niksic  <hniksic@srce.hr>
9507
9508         * http.c (dump_hash): Use HEXD2ASC instead of home-grown stuff.
9509
9510         * url.h (HEXD2ASC): Removed warning.
9511
9512         * init.c (comind): Use binary search.
9513         (commands): Reorganized.
9514         (setval): Ditto.
9515         (cmd_boolean): New function.
9516         (cmd_number): Ditto.
9517         (cmd_number_inf): Ditto.
9518         (cmd_string): Ditto.
9519         (cmd_vector): Ditto.
9520         (cmd_directory_vector): Ditto.
9521         (cmd_bytes): Ditto.
9522         (cmd_time): Ditto.
9523         (cmd_spec_debug): Ditto.
9524         (cmd_spec_dirmode): Ditto.
9525         (cmd_spec_dirstruct): Ditto.
9526         (cmd_spec_dotstyle): Ditto.
9527         (cmd_spec_header): Ditto.
9528         (cmd_spec_htmlify): Ditto.
9529         (cmd_spec_mirror): Ditto.
9530         (cmd_spec_outputdocument): Ditto.
9531         (cmd_spec_recursive): Ditto.
9532         (settime): Merged with cmd_time().
9533         (setbytes): Merged with cmd_bytes().
9534         (setonoff): Merged with cmd_boolean().
9535         (onoff): Ditto.
9536
9537 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
9538
9539         * Makefile.in (distclean): Remove `config.h'.
9540
9541 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
9542
9543         * version.c: Wget 1.5-b8 is released.
9544
9545 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
9546
9547         * http.c (digest_authentication_encode): New function.
9548         (create_authorization_line): Use it.
9549         (dump_hash): New function.
9550         (digest_authentication_encode): Use it.
9551
9552         * fnmatch.c: Renamed from `mtch.c'.
9553
9554 1998-02-15  Karl Eichwalder  <ke@suse.de>
9555
9556         * main.c (main): Tag "Written by..." string as translatable.
9557
9558 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
9559
9560         * wget.h (FREE_MAYBE): New macro.
9561
9562         * http.c (create_authorization_line): Don't use ANSI C string
9563         concatenation feature.
9564         (basic_authentication_encode): Use alloca() for temporary
9565         variables.
9566
9567         * recur.h: Ditto.
9568
9569         * http.c: Ditto.
9570
9571         * headers.h: Ditto.
9572
9573         * ftp-basic.c: Protect declaration against non-ANSI compiler.
9574
9575         * http.c (create_authorization_line): Cast `unsigned char *' to
9576         `char *' for sprintf, to shut up the noisy Digital Unix cc.
9577
9578 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
9579
9580         * version.c: Wget 1.5-b7 is released.
9581
9582 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
9583
9584         * cmpt.c (strstr): Synched with glibc-2.0.6.
9585
9586         * ftp-basic.c (calculate_skey_response): Ditto.
9587         (calculate_skey_response): Use alloca().
9588
9589         * http.c (create_authorization_line): Work with FSF's version of
9590         md5.c.
9591
9592         * md5.c: New file, from GNU libc.
9593
9594 1998-02-14  Hrvoje Niksic  <hniksic@srce.hr>
9595
9596         * url.h (URL_CLEANSE): Name the temporary variable more carefully.
9597
9598 1998-02-13  Hrvoje Niksic  <hniksic@srce.hr>
9599
9600         * http.c (basic_authentication_encode): New function, instead of
9601         the macro.
9602
9603 1998-02-13  Junio Hamano  <junio@twinsun.com>
9604
9605         * http.c: Add HTTP-DA support.
9606         * ftp-basic.c: Add Opie/S-key support.
9607         * config.h.in, Makefile.in: Add HTTP-DA and Opie/S-key support.
9608         * md5.c, md5.h: New files.
9609
9610 1998-02-13  Hrvoje Niksic  <hniksic@srce.hr>
9611
9612         * http.c (http_process_range): Renamed from hprocrange().
9613         (http_process_range): Parse the whole header.
9614
9615         * headers.c: New file.
9616         (header_process): New function.
9617         (header_get): Renamed from fetch_next_header.
9618
9619         * all: Include utils.h only where necessary.
9620
9621         * wget.h: Declare xmalloc(), xrealloc() and xstrdup() here.
9622
9623         * wget.h: Add provisions for dmalloc.
9624
9625 1998-02-12  Hrvoje Niksic  <hniksic@srce.hr>
9626
9627         * version.c: Wget 1.5-b6 is released.
9628
9629 1998-02-12  Hrvoje Niksic  <hniksic@srce.hr>
9630
9631         * ftp.c (ftp_loop): Determine `filename' more precisely.
9632
9633         * init.c (setval): Don't set `opt.quiet' if output-document is
9634         `-'.
9635
9636         * log.c (log_init): Print to STDERR instead of STDOUT.
9637         (vlogmsg): Use STDERR by default.
9638         (logflush): Ditto.
9639
9640 1998-02-11  Simon Josefsson  <jas@pdc.kth.se>
9641
9642         * host.c: Use addr_in again.
9643
9644 1998-02-08  Karl Eichwalder  <karl@suse.de>
9645
9646         * http.c (gethttp): Fixed typo.
9647
9648 1998-02-08  Hrvoje Niksic  <hniksic@srce.hr>
9649
9650         * version.c: Wget 1.5-b5 is released.
9651
9652 1998-02-08  Hrvoje Niksic  <hniksic@srce.hr>
9653
9654         * retr.c (show_progress): Use it.
9655
9656         * log.c (logflush): New function.
9657
9658         * wget.h: Utilize __attribute__ if on gcc.
9659
9660 1998-02-07  Hrvoje Niksic  <hniksic@srce.hr>
9661
9662         * http.c (base64_encode_line): New argument LENGTH.
9663         (BASIC_AUTHENTICATION_ENCODE): Use it.
9664         (BASIC_AUTHENTICATION_ENCODE): Take length of HEADER into account.
9665
9666         * main.c (main): Fixed fprintf() format mismatch.
9667
9668 1998-02-06  Hrvoje Niksic  <hniksic@srce.hr>
9669
9670         * version.c: Wget 1.5-b4 is released.
9671
9672 1998-02-03  Simon Josefsson  <jas@pdc.kth.se>
9673
9674         * host.c: use sockaddr_in instead of addr_in.
9675
9676 1998-02-04  Hrvoje Niksic  <hniksic@srce.hr>
9677
9678         * init.c (cleanup): Use it.
9679
9680         * recur.c (recursive_cleanup): New function.
9681
9682         * retr.c (retrieve_from_file): Ditto.
9683
9684         * main.c (main): Use it.
9685
9686         * recur.c (recursive_reset): New function.
9687
9688         * retr.c (retrieve_from_file): Ditto.
9689
9690         * main.c (main): Simplify call to recursive_retrieve().
9691
9692         * recur.c (recursive_retrieve): Removed FLAGS argument.
9693
9694         * http.c (gethttp): Changed call to iwrite().
9695
9696 1998-02-03  Hrvoje Niksic  <hniksic@srce.hr>
9697
9698         * url.c (get_urls_html): Ditto.
9699         (free_urlpos): Ditto.
9700         (mkstruct): Ditto.
9701         (construct): Ditto.
9702
9703         * retr.c (retrieve_url): Move declaration of local variables to
9704         smaller scope.
9705
9706         * url.c (urlproto): Use it.
9707         (parseurl): Ditto.
9708         (str_url): Ditto.
9709         (get_urls_html): Ditto.
9710
9711         * utils.h (ARRAY_SIZE): New macro.
9712
9713         * url.c (proto): Moved from url.h.
9714
9715         * url.h (URL_CLEANSE): Reformatted.
9716         (USE_PROXY_P): Renamed from USE_PROXY.
9717
9718         * ftp-basic.c: Adjust to the new interface of iwrite().
9719
9720         * ftp-basic.c (ftp_port): Use alloca().
9721
9722 1998-02-03  Hrvoje Niksic  <hniksic@srce.hr>
9723
9724         * version.c: Wget 1.5-b3 is released.
9725
9726         * host.c (ftp_getaddress): Don't print to stderr directly.
9727
9728         * init.c (setbytes): Support `g' for gigabytes.
9729         (cmdtype): New specification CTIME.
9730         (setval): Use it with settime().
9731         (commands): Use it for WAIT and TIMEOUT.
9732
9733 1998-02-02  Hrvoje Niksic  <hniksic@srce.hr>
9734
9735         * http.c (BASIC_AUTHENTICATION_ENCODE): New macro.
9736         (gethttp): Use it.
9737
9738         * utils.c (unique_name_1): Moved from url.c.
9739         (unique_name): Ditto.
9740
9741         * url.c (url_filename): Ditto.
9742
9743         * log.c (redirect_output): Changed call to unique_name().
9744
9745         * url.c (unique_name_1): Renamed from unique_name().
9746         (unique_name): Changed interface.
9747
9748         * init.c (enum cmdid): Moved from init.h.
9749         (cmdtype): Ditto.
9750         (struct cmd): Ditto.
9751
9752         * main.c (main): Use it.
9753         (main): Moved `--backups' to not have a short option.
9754
9755         * options.h (struct options): New member BACKGROUND.
9756
9757         * main.c (print_help): Rearranged.
9758         (main): New long options for -n* short options: --no-directories,
9759         --no-host-directories, --non-verbose, --no-host-lookup and
9760         --dont-remove-listing.
9761
9762 1998-02-01  Hrvoje Niksic  <hniksic@srce.hr>
9763
9764         * main.c (main): Use log_close().
9765
9766         * log.c: New variable LOGFP.
9767         (vlogmsg): Use it.
9768         (redirect_output): Don't open /dev/null; set LOGFP to stdin
9769         instead.
9770         (log_close): New function.
9771
9772         * options.h (struct options): Removed LFILE.
9773
9774         * log.c (log_enable): Removed.
9775
9776         * main.c (main): Use it.
9777
9778         * log.c (log_init): New function.
9779
9780         * url.c (get_urls_html): Removed needless assignment to BASE.
9781
9782         * host.c (add_hlist): Don't set CMP needlessly.
9783
9784         * utils.c (match_backwards): Ditto.
9785         (in_acclist): Ditto.
9786
9787         * url.c (findurl): Ditto.
9788
9789         * netrc.c (parse_netrc): Ditto.
9790
9791         * log.c (log_dump): Ditto.
9792
9793         * html.c (html_quote_string): Ditto.
9794
9795         * ftp-basic.c (ftp_request): Made static.
9796
9797         * connect.c: Made global variables static.
9798
9799         * url.c (construct): Ditto.
9800
9801         * init.c (init_path): Avoid assignment inside `if'-condition.
9802
9803         * ftp.c: Don't include in.h or winsock.h.
9804
9805         * ftp.c (ftp_loop): Use SZ.
9806
9807         * connect.c (bindport): Cast &addrlen to int *.
9808         (conaddr): Ditto.
9809
9810         * init.c (initialize): Don't use SYSTEM_WGETRC unconditionally.
9811
9812 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
9813
9814         * ftp.c (getftp): Initialize opt.ftp_pass here.
9815         (ftp_retrieve_dirs): Use alloca().
9816
9817         * init.c (defaults): Don't initialize opt.ftp_pass.
9818
9819         * sysdep.h (S_ISLNK): Declare for OS/2; ditto for lstat.
9820         From Ivan F. Martinez <ivanfm@ecodigit.com.br>.
9821
9822 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
9823
9824         * recur.c (parse_robots): Check for comments more correctly.
9825
9826         * host.c (ftp_getaddress): Use STRDUP_ALLOCA.
9827         (ftp_getaddress): Add diagnostics when reverse-lookup yields only
9828         hostname.
9829
9830 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
9831
9832         * version.c: Wget 1.5-b2 is released.
9833
9834         * netrc.c (NETRC_FILE_NAME): Moved from netrc.h.
9835
9836         * utils.c (proclist): Pass FNM_PATHNAME to fnmatch().
9837
9838         * ftp-basic.c (ftp_pasv): Avoid unnecessary casting to unsigned
9839         char.
9840
9841         * log.c: Don't attempt to hide arguments from ansi2knr.
9842
9843         * cmpt.c: Synched strptime() and mktime() with glibc-2.0.6.
9844
9845         * ansi2knr.c: Use a later version, from fileutils-3.16l alpha.
9846
9847         * ftp.c (getftp): Ditto.
9848
9849         * http.c (gethttp): Use it.
9850
9851         * retr.c (get_contents): New argument EXPECTED; pass it to
9852         show_progress().
9853         (show_progress): New argument EXPECTED; use it to display
9854         percentages.
9855
9856         * init.c (setval): Ditto.
9857
9858         * http.c (gethttp): Ditto.
9859         (http_loop): Ditto.
9860
9861         * ftp.c (getftp): Ditto.
9862         (ftp_loop_internal): Ditto.
9863
9864         * ftp-ls.c (ftp_parse_unix_ls): Use abort() instead of assert(0).
9865
9866         * sysdep.h (CLOSE): Simplify; use DEBUGP.
9867
9868         * netrc.c (search_netrc): Use alloca().
9869
9870         * init.c (defaults): Initialize no_flush.
9871
9872         * log.c (vlogmsg): Don't flush if no_flush.
9873
9874         * options.h (struct options): New variable no_flush.
9875
9876         * main.c (main): Don't play games with buffering.
9877
9878         * log.c (vlogmsg): Flush the output after every message.
9879
9880 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
9881
9882         * init.c (parse_line): Ditto.
9883
9884         * url.c (get_urls_html): Ditto.
9885
9886         * main.c (main): Don't cast to unsigned char.
9887
9888         * init.c (run_wgetrc): Don't cast to unsigned char.
9889         (parse_line): Accept char instead of unsigned char.
9890
9891         * html.c (htmlfindurl): Use char instead of unsigned char.
9892
9893         * all: Use them.
9894
9895         * sysdep.h: Add wrappers to ctype macros to make them
9896         eight-bit-clean:
9897
9898 1998-01-30  Hrvoje Niksic  <hniksic@srce.hr>
9899
9900         * html.c (htmlfindurl): Download <img lowsrc=...>
9901
9902         * main.c (main): Ignore SIGPIPE.
9903
9904         * connect.c (select_fd): New argument WRITEP.
9905         (iwrite): Call select_fd().
9906
9907 1997-02-27  Fila Kolodny <fila@ibi.com>
9908
9909         * ftp.c (ftp_retrieve_list): If retrieving symlink and the proper
9910         one already exists, just skip it.
9911
9912 1998-01-30  Hrvoje Niksic  <hniksic@srce.hr>
9913
9914         * http.c (gethttp): Cosmetic changes.
9915
9916         * http.c (check_end): Allow `+D...' instead of `GMT'.
9917         From Fabrizio Pollastri <pollastri@cstv.to.cnr.it>.
9918
9919         * url.c (process_ftp_type): New function.
9920         (parseurl): Use it.
9921
9922         * connect.c (iwrite): Allow writing in a few chunks.
9923         (bindport): Made SRV static, so addr can point to it.
9924         (select_fd): Removed HPUX kludge.
9925
9926         * host.c (free_hlist): Incorporated into clean_hosts().
9927
9928 1998-01-29  Hrvoje Niksic  <hniksic@srce.hr>
9929
9930         * host.c (hlist): Made static.
9931         (search_address): Cosmetic change.
9932
9933 1998-01-29  Hrvoje Niksic  <hniksic@srce.hr>
9934
9935         * version.c: Wget v1.5-b1 is released.
9936
9937         * http.c (hgetlen): Use sizeof() to get the header length.
9938         (hgetrange): Ditto.
9939         (hgettype): Ditto.
9940         (hgetlocation): Ditto.
9941         (hgetmodified): Ditto.
9942         (haccepts_none): Ditto.
9943
9944         * main.c (main): Updated `--version' and `--help' output, as per
9945         Francois Pinard's suggestions.
9946
9947         * main.c: Include locale.h; call setlocale(), bindtextdomain() and 
9948         textdomain().
9949
9950         * config.h.in: Define stubs for I18N3.
9951
9952         * wget.h: Include libintl.h.
9953
9954 1998-01-28  Hrvoje Niksic  <hniksic@srce.hr>
9955
9956         * url.c (mkstruct): Check for opt.cut_dirs.
9957         (mkstruct): alloca()-te more, xmalloc() less.
9958
9959         * utils.c (load_file): Check for ferror().
9960
9961         * url.c (get_urls_file): Close only the files we opened.
9962         (get_urls_html): Ditto.
9963         (count_slashes): New function.
9964
9965         * http.h: Removed.
9966
9967         * http.c (gethttp): Respect username and password provided by
9968         proxy URL.
9969         (base64_encode_line): Write into an existing buffer instead of
9970         malloc-ing a new one.
9971         (struct http_stat): Moved from http.h
9972
9973         * retr.c (retrieve_url): Free SUF.
9974
9975         * all: Removed lots of unnecessary .h dependencies.
9976
9977         * html.c (global_state): Made static.
9978
9979         * utils.h (ALLOCA_ARRAY): New macro.
9980
9981         * main.c (main): New option `--cut-dirs'.
9982
9983         * url.c (construct): Use alloca() for T.
9984
9985         * utils.c (mkdirhier): Use STRDUP_ALLOCA.
9986
9987         * host.c (_host_t): Moved from host.h.
9988         (struct host): Renamed from _host_t.
9989         (store_hostaddress): Use STRDUP_ALLOCA for INET_S.
9990         (realhost): Ditto.
9991
9992         * host.h: Don't include url.h.
9993
9994         * ftp.c (LIST_FILENAME): Moved from ftp.h.
9995
9996         * init.c (DEFAULT_FTP_ACCT): Moved from ftp.h.
9997
9998         * main.c (main): Enable log if the output goes to a TTY.
9999
10000         * connect.h: Removed unused constant `BACKLOG'.
10001
10002         * config.h.in: Check for isatty().
10003
10004         * Makefile.in (LINK): Use CFLAGS when linking.
10005
10006 1998-01-27  Hrvoje Niksic  <hniksic@srce.hr>
10007
10008         * mswindows.c (ws_hangup): Use redirect_output().
10009
10010         * main.c (redirect_output_signal): New function; use
10011         redirect_output().
10012
10013         * log.c (redirect_output): New function, based on hangup(), which
10014         is deleted.
10015
10016         * log.c (vlogmsg): New function.
10017
10018         * wget.h (DEBUGP): Use debug_logmsg().
10019
10020         * main.c (hangup): Use it.
10021
10022         * log.c (log_dump): New function.
10023
10024         * utils.h (DO_REALLOC): Use `long' for various sizes.
10025
10026         * http.c (hskip_lws): Use `while', for clarity.
10027         (HTTP_DYNAMIC_LINE_BUFFER): New constant.
10028         (fetch_next_header): Use it instead of DYNAMIC_LINE_BUFFER.
10029
10030         * ftp-basic.c (FTP_DYNAMIC_LINE_BUFFER): New constant.
10031         (ftp_response): Use it instead of DYNAMIC_LINE_BUFFER.
10032
10033         * utils.c (DYNAMIC_LINE_BUFFER): Moved from utils.c.
10034         (LEGIBLE_SEPARATOR): Ditto.
10035         (FILE_BUFFER_SIZE): Ditto.
10036
10037         * retr.c (BUFFER_SIZE): Moved from retr.h.
10038
10039         * log.c: New file.
10040         (logmsg): Moved from utils.c.
10041         (debug_logmsg): New function.
10042
10043         * mswindows.h: Include it here.
10044
10045         * init.c: Ditto.
10046
10047         * utils.c: Don't include <windows.h>.
10048
10049 1998-01-25  Hrvoje Niksic  <hniksic@srce.hr>
10050
10051         * host.c (ftp_getaddress): Ditto.
10052
10053         * main.c (main): Use it.
10054
10055         * utils.h (STRDUP_ALLOCA): New macro.
10056
10057         * init.c: Prepend `wget: ' to error messages printed on stderr.
10058
10059         * utils.c (mkdirhier): Renamed from mymkdir.
10060         (touch): Renamed from my_touch.
10061         (pwd_cuserid): Renamed from my_cuserid().
10062
10063 1998-01-24  Andy Eskilsson  <andy.eskilsson@telelogic.se>
10064
10065         * utils.c (accdir): Process wildcards.
10066         (proclist): New function.
10067         (accdir): Use it to avoid code repetition.
10068
10069 1998-01-24  Hrvoje Niksic  <hniksic@srce.hr>
10070
10071         * recur.c (parse_robots): Respect opt.useragent; use alloca().
10072
10073         * http.c (gethttp): Construct useragent accordingly.
10074
10075         * version.c: Changed version string to numbers-only.
10076
10077         * main.c (print_help): List all the options.
10078
10079         * mswindows.c (windows_main_junk): Initialize argv0 here.
10080
10081 1998-01-24  Karl Heuer  <kwzh@gnu.org>
10082
10083         * netrc.c (search_netrc): Initialize `l' only after processing
10084         netrc.
10085
10086         * main.c (main): Don't trap SIGHUP if it's being ignored.
10087
10088 1998-01-24  Hrvoje Niksic  <hniksic@srce.hr>
10089
10090         * all: Use logmsg().
10091
10092         * utils.c (time_str): Moved from retr.c.
10093         (logmsg): New function.
10094         (logmsg_noflush): Ditto.
10095
10096         * rbuf.c: New file, moved buf_* functions here.
10097
10098         * ftp.c (ftp_expected_bytes): Moved from ftp-basic.c.
10099
10100         * ftp-basic.c (ftp_rest): Use prnum().
10101
10102         * ftp-basic.c: Ditto.
10103
10104         * ftp.c: Use the new reading functions and macros.
10105
10106         * retr.c (buf_initialize): New function.
10107         (buf_initialized_p): Ditto.
10108         (buf_uninitialize): Ditto.
10109         (buf_fd): Ditto.
10110
10111         * http.c (fetch_next_header): Use the BUF_READCHAR macro for
10112         efficiency.
10113         (gethttp): Use alloca() where appropriate.
10114
10115         * retr.c (buf_readchar): Use it.
10116         (buf_peek): Use rstreams.
10117
10118         * retr.h (BUF_READCHAR): New macro.
10119
10120         * init.c (home_dir): Rewritten for clarity.
10121         (init_path): Ditto.
10122
10123         * mswindows.c (ws_backgnd): Made static.
10124         (read_registry): Ditto.
10125         (ws_cleanup): Ditto.
10126         (ws_handler): Ditto.
10127
10128 1998-01-23  Hrvoje Niksic  <hniksic@srce.hr>
10129
10130         * alloca.c: New file.
10131
10132         * Makefile.in (ALLOCA): Define.
10133
10134         * mswindows.c (ws_help): Constify.
10135         (ws_help): Use alloca.
10136
10137         * mswindows.c: Reformat.
10138
10139         * all: Added _(...) annotations for I18N snarfing and translation.
10140
10141         * host.c (ftp_getaddress): Nuke SYSINFO.
10142         (ftp_getaddress): Don't use getdomainname().
10143         (ftp_getaddress): Use uname(), where available.
10144
10145         * http.c (gethttp): Protect a stray fprintf().
10146
10147         * init.c (settime): New function.
10148         (setval): Treat WAIT specially, allowing suffixes like `m' for
10149         minutes, etc.
10150
10151 1998-01-21  Hrvoje Niksic  <hniksic@srce.hr>
10152
10153         * url.c (get_urls_html): Use alloca() for TEMP.
10154
10155 1998-01-21  Jordan Mendelson  <jordy@wserv.com>
10156
10157         * url.c (rotate_backups): New function.
10158
10159         * http.c (gethttp): Ditto.
10160
10161         * ftp.c (getftp): Rotate backups.
10162
10163 1997-12-18  Hrvoje Niksic  <hniksic@srce.hr>
10164
10165         * all: Renamed nmalloc(), nrealloc() and nstrdup() to xmalloc(),
10166         xrealloc() and xstrdup().  Use the new functions.
10167
10168         * url.c (decode_string): Made static.
10169         (has_proto): Ditto.
10170         (parse_dir): Ditto.
10171         (parse_uname): Ditto.
10172         (mkstruct): Ditto.
10173         (construct): Ditto.
10174         (construct_relative): Ditto.
10175
10176         * retr.c (show_progress): Made static.
10177
10178         * recur.c (robots_url): Made static.
10179         (retrieve_robots): Ditto.
10180         (parse_robots): Ditto.
10181         (robots_match): Ditto.
10182
10183         * main.h: Removed.
10184
10185         * main.c (printhelp): Made static.
10186         (hangup): Ditto.
10187
10188         * init.c (comind): Made static.
10189         (defaults): Ditto.
10190         (init_path): Ditto.
10191         (run_wgetrc): Ditto.
10192         (onoff): Ditto.
10193         (setonoff): Ditto.
10194         (setnum): Ditto.
10195         (myatoi): Ditto.
10196         (getperms): Ditto.
10197         (setbytes): Ditto.
10198
10199         * http.c (fetch_next_header): Made static.
10200         (hparsestatline): Ditto.
10201         (hskip_lws): Ditto.
10202         (hgetlen): Ditto.
10203         (hgetrange): Ditto.
10204         (hgettype): Ditto.
10205         (hgetlocation): Ditto.
10206         (hgetmodified): Ditto.
10207         (haccepts_none): Ditto.
10208         (gethttp): Ditto.
10209         (base64_encode_line): Ditto.
10210         (mktime_from_utc): Ditto.
10211         (http_atotm): Ditto.
10212
10213         * html.c (idmatch): Made static.
10214
10215         * host.c (search_host): Made static.
10216         (search_address): Ditto.
10217         (free_hlist): Ditto.
10218
10219         * ftp.c (getftp): Made static.
10220         (ftp_loop_internal): Ditto.
10221         (ftp_get_listing): Ditto.
10222         (ftp_retrieve_list): Ditto.
10223         (ftp_retrieve_dirs): Ditto.
10224         (ftp_retrieve_glob): Ditto.
10225         (freefileinfo): Ditto.
10226         (delelement): Ditto.
10227
10228         * ftp-ls.c (symperms): Made static.
10229         (ftp_parse_unix_ls): Ditto.
10230
10231         * connect.c (select_fd): Made static.
10232
10233         * utils.c (xmalloc): Renamed from nmalloc.
10234         (xrealloc): Renamed from nrealloc.
10235         (xstrdup): Renamed from nstrdup.
10236
10237         * getopt.c (exchange): Use alloca.
10238
10239         * mswindows.c (mycuserid): Use strncpy.
10240
10241         * New files mswindows.c, mswindows.h, sysdep.h.  winjunk.c,
10242         systhings.h, windecl.h and winjunk.h removed.
10243
10244         * mswindows.c (sleep): New function.
10245
10246         * utils.c: Include <windows.h> under Windows.
10247
10248 1997-06-12  Darko Budor  <dbudor@zesoi.fer.hr>
10249
10250         * url.h (URL_UNSAFE): Change default under Windows.
10251
10252         * retr.c (retrieve_from_file): Respect opt.delete_after.
10253
10254         * main.c (main): Call ws_help on Windows.
10255
10256         * winjunk.c (windows_main_junk): New function.
10257
10258         * main.c (main): Junk-process argv[0].
10259
10260         * http.c (mktime_from_utc): Return -1 if mktime failed.
10261
10262         * http.c (http_loop): Ditto.
10263
10264         * ftp.c (ftp_loop_internal): Change title on Windows when using a
10265         new URL.
10266
10267         * winjunk.c (getdomainname): Lots of functions.
10268
10269 1997-06-12  Hrvoje Niksic  <hniksic@srce.hr>
10270
10271         * cmpt.c (strptime_internal): Handle years more correctly for
10272         `%y'.
10273
10274 1997-06-09  Mike Thomas <mthomas@reality.ctron.com>
10275
10276         * http.c (gethttp): Allocate enough space for
10277         `Proxy-Authorization' header.
10278
10279 1997-05-10  Hrvoje Niksic  <hniksic@srce.hr>
10280
10281         * version.c: Wget/1.4.5 is released.
10282
10283 1997-05-10  Hrvoje Niksic  <hniksic@srce.hr>
10284
10285         * retr.c (get_contents): Check return value of fwrite more
10286         carefully.
10287
10288 1997-03-30  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
10289
10290         * cmpt.c (strptime_internal) [case 'Y']: Always subtract 1900 from
10291         year, regardless of century.
10292
10293 1997-03-30  Hrvoje Niksic  <hniksic@srce.hr>
10294
10295         * utils.c (isfile): Use `lstat' instead of `stat'.
10296
10297 1997-03-29  Hrvoje Niksic  <hniksic@srce.hr>
10298
10299         * utils.c (numdigit): Use explicit test.
10300
10301 1997-03-21  Hrvoje Niksic  <hniksic@srce.hr>
10302
10303         * http.c (http_loop): Always use `url_filename' to get u->local.
10304
10305 1997-03-20  Hrvoje Niksic  <hniksic@srce.hr>
10306
10307         * url.c: Recognize https.
10308
10309 1997-03-13  Hrvoje Niksic  <hniksic@srce.hr>
10310
10311         * recur.c (recursive_retrieve): Lowercase just the host name.
10312
10313 1997-03-09  Hrvoje Niksic  <hniksic@srce.hr>
10314
10315         * url.c (get_urls_file): Use the correct test.
10316         (get_urls_html): Ditto.
10317
10318 1997-03-07  Hrvoje Niksic  <hniksic@srce.hr>
10319
10320         * connect.c: Reverted addrlen to int.
10321
10322         * init.c (parse_line): Check for -1 instead of NONE.
10323
10324         * version.c: Changed version to 1.4.5.
10325
10326 1997-02-17  Hrvoje Niksic  <hniksic@srce.hr>
10327
10328         * init.c: New option netrc.
10329         (initialize): Don't parse .netrc.
10330
10331         * cmpt.c (recursive): Return rp.
10332         (strptime_internal): Match the long strings first, the abbreviated
10333         second.
10334
10335 1997-02-16  Hrvoje Niksic  <hniksic@srce.hr>
10336
10337         * http.c (check_end): New function.
10338         (http_atotm): Use it.
10339
10340 1997-02-13  gilles Cedoc  <gilles@cedocar.fr>
10341
10342         * http.c (gethttp): Use them.
10343
10344         * init.c: New options proxy_user and proxy_passwd.
10345
10346 1997-02-14  Hrvoje Niksic  <hniksic@srce.hr>
10347
10348         * ftp.c (ftp_retrieve_list): Create links even if not relative.
10349
10350 1997-02-10  Hrvoje Niksic  <hniksic@srce.hr>
10351
10352         * recur.c (recursive_retrieve): Lowercase the host name, if the
10353         URL is not "optimized".
10354
10355         * host.c (realhost): Return l->hostname, even if it matches with
10356         host.
10357
10358 1997-02-10  Marin Purgar  <pmc@asgard.hr>
10359
10360         * connect.c: Make addrlen size_t instead of int.
10361         (conaddr): Ditto.
10362
10363 1997-02-09  Gregor Hoffleit  <flight@mathi.uni-heidelberg.DE>
10364
10365         * systhings.h: Define S_ISLNK on NeXT too.
10366
10367 1997-02-09  Hrvoje Niksic  <hniksic@srce.hr>
10368
10369         * version.c: Released 1.4.3.
10370
10371         * url.c: Futher update to list of protostrings.
10372         (skip_proto): Skip `//' correctly for FTP and HTTP.
10373
10374         * url.c (get_urls_html): Handle bogus `http:' things a little
10375         different.
10376
10377         * main.c (main): Removed `follow-ftp' from `f'.
10378         (main): Dumped the `prefix-files' and `file-prefix' options and
10379         features; old and bogus.
10380         (main): Exit on failed setval() in `-e'.
10381
10382         * http.c (fetch_next_header): Use it to detect header continuation
10383         correctly.
10384
10385         * retr.c (buf_peek): New function.
10386
10387 1997-02-08  Hrvoje Niksic  <hniksic@srce.hr>
10388
10389         * wget.h: Include time.h and stuff.
10390
10391 1997-02-08  Roger Beeman  <beeman@cisco.com>
10392
10393         * ftp.c: Include <time.h>
10394
10395 1997-02-07  Hrvoje Niksic  <hniksic@srce.hr>
10396
10397         * url.c (findurl): Would read over buffer limits.
10398
10399 1997-02-06  Hrvoje Niksic  <hniksic@srce.hr>
10400
10401         * ftp-ls.c (ftp_parse_unix_ls): Allow spaces in file names.
10402
10403 1997-02-05  Hrvoje Niksic  <hniksic@srce.hr>
10404
10405         * http.c (http_atotm): Initialize tm.is_dst.
10406
10407 1997-02-02  Hrvoje Niksic  <hniksic@srce.hr>
10408
10409         * http.c (gethttp): Don't print the number of retrieved headers.
10410
10411         * main.c (main): New option `--no-clobber', alias for `-nc'.
10412
10413         * url.c: Recognize `https://'.
10414
10415 1997-02-01  Hrvoje Niksic  <hniksic@srce.hr>
10416
10417         * host.c (herrmsg): Don't use h_errno.
10418
10419 1997-01-30  Hrvoje Niksic  <hniksic@srce.hr>
10420
10421         * host.c (accept_domain): Use it.
10422
10423         * main.c (main): New option `--exclude-domains'.
10424
10425         * retr.c (retrieve_url): Use it.
10426         (retrieve_url): Bail out when an URL is redirecting to itself.
10427
10428         * url.c (url_equal): New function.
10429
10430 1997-01-29  Hrvoje Niksic  <hniksic@srce.hr>
10431
10432         * connect.c: Include arpa/inet.h instead of arpa/nameser.h.
10433
10434         * http.c (mk_utc_time): New function.
10435         (http_atotm): Use it; handle time zones correctly.
10436
10437 1997-01-28  Hrvoje Niksic  <hniksic@srce.hr>
10438
10439         * http.c: Ditto.
10440
10441         * ftp-basic.c: Use it instead of WRITE.
10442
10443         * connect.c (iwrite): New function.
10444
10445 1997-01-27  Hrvoje Niksic  <hniksic@srce.hr>
10446
10447         * cmpt.c (mktime): New function.
10448
10449         * netrc.c: Include <sys/types.h>.
10450
10451         * main.c (main): Wouldn't recognize --spider.
10452
10453         * retr.c (rate): Use `B', `KB' and `MB'.
10454         (reset_timer,elapsed_time): Moved from utils.c.
10455
10456         * ftp.c (ftp_retrieve_list): Ditto.
10457
10458         * http.c (http_loop): Don't touch the file if opt.dfp.
10459
10460 1997-01-24  Hrvoje Niksic  <hniksic@srce.hr>
10461
10462         * cmpt.c: New file.
10463
10464         * ftp.c (ftp_retrieve_glob): New argument semantics.
10465         (ftp_retrieve_dirs): Use it.
10466         (ftp_loop): Ditto.
10467
10468         * html.c (htmlfindurl): Recognize `'' as the quote char.
10469
10470 1997-01-23  Hrvoje Niksic  <hniksic@srce.hr>
10471
10472         * ftp.c (ftp_loop_internal): Use it.
10473
10474         * utils.c (remove_link): New function.
10475
10476 1997-01-22  Hrvoje Niksic  <hniksic@srce.hr>
10477
10478         * retr.c (retrieve_url): Require STRICT redirection URL.
10479
10480         * url.c (parseurl): New argument STRICT.
10481
10482         * http.c (hparsestatline): Be a little-bit less strict about
10483         status line format.
10484
10485 1997-01-21  Hrvoje Niksic  <hniksic@srce.hr>
10486
10487         * http.c (gethttp): Use it.
10488
10489         * main.c (main): Don't use '<digit>' as options.
10490
10491         * init.c: New option ignore_length.
10492
10493         * http.c (gethttp): Ditto.
10494         (http_loop): Check for redirection without Location:.
10495         (gethttp): Don't print Length unless RETROKF.
10496
10497         * ftp.c (getftp): Use it.
10498
10499         * url.c (mkalldirs): New function.
10500
10501         * utils.c (mymkdir): Don't check for existing non-directory.
10502
10503         * url.c (mkstruct): Don't create the directory.
10504
10505 1997-01-20  Hrvoje Niksic  <hniksic@srce.hr>
10506
10507         * init.c (setval): Removed NO_RECURSION checks.
10508
10509 1997-01-19  Hrvoje Niksic  <hniksic@srce.hr>
10510
10511         * version.c: "Released" 1.4.3-pre2.
10512
10513         * recur.c (recursive_retrieve): Bypass host checking only if URL
10514         is ftp AND parent URL is not ftp.
10515
10516         * ftp-basic.c (ftp_request): Print out Turtle Power.
10517
10518         * ftp.c (ftp_loop): Call ftp_retrieve_glob with 0 if there's no
10519         wildcard.
10520         (ftp_retrieve_glob): Call ftp_loop_internal even on empty list, if
10521         not glob.
10522
10523         * http.c (gethttp): Be a little bit smarter about status codes.
10524
10525         * recur.c (recursive_retrieve): Always reset opt.recursive when
10526         dealing with FTP.
10527
10528 1997-01-18  Hrvoje Niksic  <hniksic@srce.hr>
10529
10530         * retr.c (retrieve_url): New variable location_changed; use it for
10531         tests instead of mynewloc.
10532         (retrieve_url): Allow heuristic adding of html.
10533
10534         * url.c (url_filename): Don't use the `%' in Windows file names.
10535
10536         * http.c (http_loop): Always time-stamp the local file.
10537
10538         * http.c (http_loop): Ditto.
10539
10540         * ftp.c (ftp_retrieve_list): Use it.
10541
10542         * utils.c (my_touch): New function.
10543
10544         * ftp.c (ftp_retrieve_list): Use #ifdef HAVE_STRUCT_UTIMBUF
10545         instead of #ifndef NeXT.
10546
10547         * utils.c (strptime): New version, by Ulrich Drepper.
10548
10549 1997-01-17  Hrvoje Niksic  <hniksic@srce.hr>
10550
10551         * http.c (haccepts_none): Renamed from `haccepts_bytes'.
10552         (gethttp): If haccepts_none(), disable ACCEPTRANGES.
10553         (http_loop): Would remove ACCEPTRANGES.
10554
10555         * ftp.c (getftp): Call ftp_list with NULL.
10556
10557 1997-01-15  Hrvoje Niksic  <hniksic@srce.hr>
10558
10559         * html.c (ftp_index): Don't print minutes and seconds if we don't
10560         know them; beautify the output.
10561
10562         * ftp.c (getftp): Don't close the socket on FTPNSFOD.
10563
10564 1997-01-14  Hrvoje Niksic  <hniksic@srce.hr>
10565
10566         * utils.c (strptime): New function.
10567         (strptime): Don't use get_alt_number.
10568         (strptime): Don't use locale.
10569         (match_string): Made it a function.
10570
10571 1997-01-12  Hrvoje Niksic  <hniksic@srce.hr>
10572
10573         * http.c (http_atotm): New function.
10574         (http_loop): Use it.
10575
10576         * atotm.c: Removed from the distribution.
10577
10578         * http.c (base64_encode_line): Rewrite.
10579
10580 1997-01-09  Hrvoje Niksic  <hniksic@srce.hr>
10581
10582         * ftp.c (getftp): Use ftp_expected_bytes; print size.
10583
10584         * ftp-basic.c (ftp_response): Use ftp_last_respline.
10585         (ftp_expected_bytes): New function.
10586
10587         * ftp.c (getftp): Print the unauthoritative file length.
10588
10589         * ftp-ls.c: Renamed from ftp-unix.c.
10590         (ftp_parse_ls): Moved from ftp.c.
10591         (ftp_parse_unix_ls): Recognize seconds in time spec.
10592         (ftp_parse_unix_ls): Recognize year-less dates of the previous
10593         year.
10594
10595 1997-01-08  Hrvoje Niksic  <hniksic@srce.hr>
10596
10597         * ftp-basic.c: Don't declare errno if #defined.
10598
10599         * host.c (ftp_getaddress): Check for sysinfo legally.
10600
10601 1997-01-08  Darko Budor  <dbudor@diana.zems.fer.hr>
10602
10603         * connect.c (iread): Use READ.
10604
10605 1996-12-23  Hrvoje Niksic  <hniksic@srce.hr>
10606
10607         * url.c: Recognize finger, rlogin, tn3270, mid and cid as valid
10608         schemes.
10609
10610 1996-12-22  Hrvoje Niksic  <hniksic@srce.hr>
10611
10612         * host.c (ftp_getaddress): Allow `.' in hostname.
10613
10614 1996-12-26  Darko Budor <dbudor@zems.fer.hr>
10615
10616         * wget.h: READ and WRITE macros for use instead of read and write
10617         on sockets, grep READ *.c, grep WRITE *.c
10618
10619         * wsstartup.c: new file - startup for winsock
10620
10621         * wsstartup.h: new file
10622
10623         * win32decl.h: new file - fixup for <errno.h> and winsock trouble
10624
10625         * configure.bat: Configure utility for MSVC
10626
10627         * src/Makefile.ms,config.h.ms: new files for use with MSVC 4.x
10628
10629 1996-12-22  Hrvoje Niksic  <hniksic@srce.hr>
10630
10631         * version.c: Released 1.4.3-pre.
10632
10633         * utils.c (prnum): Accept long.
10634         (legible): Use prnum().
10635
10636         * connect.c (make_connection): Accept port as short.
10637         (bindport): Ditto.
10638
10639         * http.c (gethttp): Use search_netrc.
10640
10641 1996-12-21  Hrvoje Niksic  <hniksic@srce.hr>
10642
10643         * ftp.c (getftp): Use search_netrc.
10644
10645         * netrc.c (free_netrc): New function.
10646
10647         * init.c (home_dir): New function.
10648
10649         * url.c (convert_links): Allow REL2ABS changes.
10650
10651 1996-12-21  Gordon Matzigkeit  <gord@gnu.ai.mit.edu>
10652
10653         * netrc.c: New file.
10654         (parse_netrc, maybe_add_to_list): New functions.
10655
10656 1996-12-17  Hrvoje Niksic  <hniksic@srce.hr>
10657
10658         * retr.c (retrieve_url): Reset opt.recursion before calling
10659         ftp_loop if it is reached through newloc.
10660
10661         * init.c (run_wgetrc): Print the wgetrc path too, when reporting
10662         error; don't use "Syntax error", since we don't know if it is
10663         really a syntax error.
10664
10665 1996-12-16  Hrvoje Niksic  <hniksic@srce.hr>
10666
10667         * utils.c (acceptable): Extract the filename part of the path.
10668
10669         * recur.c (recursive_retrieve): Call acceptable() with the right
10670         argument; would bug out on wildcards.
10671
10672         * init.c (parse_line): Likewise.
10673
10674         * html.c (htmlfindurl): Cast to char * when calling stuff.
10675
10676 1996-12-15  Hrvoje Niksic  <hniksic@srce.hr>
10677
10678         * ftp.c (getftp): Use ftp_pasv.
10679
10680         * ftp-basic.c (ftp_request): Accept NULL value.
10681         (ftp_pasv): New function.
10682
10683         * options.h (struct options): Add passive FTP option.
10684
10685 1996-12-15  Hrvoje Niksic  <hniksic@srce.hr>
10686
10687         * url.c (parseurl): Debug output.
10688
10689         * utils.c (path_simplify): New one, adapted from bash's
10690         canonicalize_pathname().
10691
10692 1996-12-14  Hrvoje Niksic  <hniksic@srce.hr>
10693
10694         * ftp.c (getftp): Don't discard the buffer.
10695
10696         * retr.c (get_contents): New parameter nobuf.
10697
10698 1996-12-13  Shawn McHorse  <riffraff@txdirect.net>
10699
10700         * html.c (htmlfindurl): Recognize <meta contents="d; URL=...".
10701
10702         * init.c (setval): Strip the trailing slashes on CVECDIR.
10703
10704 1996-12-13  Hrvoje Niksic  <hniksic@srce.hr>
10705
10706         * init.c: Make excludes and includes under CVECDIR instead of
10707         CVEC.
10708
10709 1996-12-13  Shawn McHorse  <riffraff@txdirect.net>
10710
10711         * url.c (get_urls_html): Skip "http:".
10712
10713 1996-12-13  Hrvoje Niksic  <hniksic@srce.hr>
10714
10715         * utils.c (strcasecmp): From glibc.
10716         (strncasecmp): Also.
10717         (strstr): Also.
10718
10719         * url.c: Added javascript: to the list of URLs prefixes.
10720
10721 1996-12-12  Shawn McHorse  <riffraff@txdirect.net>
10722
10723         * recur.c (retrieve_robots): Print the warning message only if
10724         verbose.
10725
10726 1996-12-12  Gregor Hoffleit  <flight@mathi.uni-heidelberg.DE>
10727
10728         * ftp.c (ftp_retrieve_list): Use NeXT old utime interface.
10729
10730 1996-12-12  Hrvoje Niksic  <hniksic@srce.hr>
10731
10732         * systhings.h: New file.
10733
10734         * ../configure.in: Check for utime.h
10735
10736         * ftp.c: Check whether we have unistd.h.
10737
10738 1996-11-27  Hrvoje Niksic  <hniksic@srce.hr>
10739
10740         * recur.c (recursive_retrieve): Send the canonical URL as referer.
10741         (recursive_retrieve): Call get_urls_html with the canonical URL.
10742
10743 1996-12-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10744
10745         * (configure.in, config.h.in, src/Makefile.in, src/*.[ch]): Add
10746         ansi2knr support for compilers which don't support ANSI style
10747         function prototypes and signatures.
10748
10749         * (aclocal.m4, src/ansi2knr.c, src/ansi2knr.1): New files.
10750
10751 1996-11-26  Hrvoje Niksic  <hniksic@srce.hr>
10752
10753         * url.c: Use it; Recognize paths ending with "." and ".." as
10754         directories.
10755         (url_filename): Append .n whenever file exists and could be a
10756         directory.
10757
10758         * url.h (ISDDOT): New macro.
10759
10760         * init.c (parse_line): Use unsigned char.
10761
10762         * url.c (get_urls_html): Cast to unsigned char * when calling
10763         htmlfindurl.
10764
10765         * html.c (htmlfindurl): Use unsigned char.
10766
10767         * version.c: Changed version to 1.4.3.
10768
10769 1996-11-25  Hrvoje Niksic  <hniksic@srce.hr>
10770
10771         * version.c: Released 1.4.2.
10772
10773         * ftp.c (getftp): Simplified assertion.
10774         (ftp_loop_internal): Remove symlink before downloading.
10775         (ftp_retrieve_list): Unlink the symlink name before attempting to
10776         create a symlink!
10777
10778         * options.h (struct options): Renamed print_server_response to
10779         server_response.
10780
10781         * ftp.c (rel_constr): Removed.
10782         (ftp_retrieve_list): Don't use it.
10783         (ftp_retrieve_list): Use opt.retr_symlinks.
10784
10785 1996-11-24  Hrvoje Niksic  <hniksic@srce.hr>
10786
10787         * main.c (main): New option retr_symlinks.
10788
10789         * url.c (convert_links): Print verbose message.
10790
10791 1996-11-24  Hrvoje Niksic  <hniksic@srce.hr>
10792
10793         * http.c (http_loop): Reset newloc in the beginning of function;
10794         would cause FMR in retrieve_url.
10795
10796 1996-11-23  Hrvoje Niksic  <hniksic@srce.hr>
10797
10798         * recur.c (convert_all_links): Find the URL of each HTML document,
10799         and feed it to get_urls_html; would bug out.
10800         (convert_all_links): Check for l2 instead of dl; removed dl.
10801
10802         * url.c (convert_links): Don't refer to freed newname.
10803
10804         * recur.c (recursive_retrieve): Add this_url to urls_downloaded.
10805
10806         * main.c (main): Print the OS_TYPE in the debug output, too.
10807
10808         * recur.c (recursive_retrieve): Check for opt.delete_after.
10809
10810         * main.c (main): New option delete-after.
10811
10812         * init.c (setval): Cleaned up.
10813
10814 1996-11-21  Hrvoje Niksic  <hniksic@srce.hr>
10815
10816         * Makefile.in (wget): Make `wget' the default target.
10817
10818         * ftp.c (ftp_loop_internal): Move noclobber checking out of the
10819         loop.
10820         (ftp_retrieve_list): Warn about non-matching sizes.
10821
10822         * http.c (http_loop): Made -nc non-dependent on opt.recursive.
10823
10824         * init.c (setnum): Renamed from setnuminf; New argument flags.
10825         (setval): Use it.
10826
10827         * main.c (main): Sorted the options.
10828         (main): New option --wait.
10829
10830 1996-11-21  Shawn McHorse  <riffraff@txdirect.net>
10831
10832         * html.c (htmlfindurl): Reset s->in_quote after getting out of
10833         quotes.
10834
10835 1996-11-20  Hrvoje Niksic  <hniksic@srce.hr>
10836
10837         * version.c: Changed version to 1.4.2.
10838
10839 1996-11-20  Hrvoje Niksic  <hniksic@srce.hr>
10840
10841         * version.c: Released 1.4.1.
10842
10843         * html.c (html_quote_string): New function.
10844         (ftp_index): Use it.
10845         (htmlfindurl): A more gentle ending debug message.
10846
10847         * ftp.c (ftp_loop): Check for opt.htmlify.
10848
10849         * init.c: New command htmlify.
10850
10851         * ftp.c (getftp): Nicer error messages, with `'-encapsulated
10852         strings.
10853         (ftp_loop): Print size of index.html.
10854
10855         * init.c (setval): Implement "styles".
10856
10857         * main.c (main): New option dotstyle.
10858
10859 1996-11-19  Hrvoje Niksic  <hniksic@srce.hr>
10860
10861         * ftp.c (getftp): Close the master socket in case of errors, after
10862         bindport().
10863
10864         * connect.c (bindport): Initialize msock to -1.
10865
10866         * ftp.c (getftp): Initialize dtsock to -1.
10867
10868         * connect.c (closeport): Don't close sock if sock == -1.
10869
10870 1996-11-18  Hrvoje Niksic  <hniksic@srce.hr>
10871
10872         * init.c (setnuminf): Nuked default value -- just leave unchanged.
10873         (setval): Don't send default values.
10874         (defaults): Use DEFAULT_TIMEOUT -- aaargh.
10875
10876         * options.h (struct options): Use long for dot_bytes.
10877
10878         * init.c (setquota): Renamed to setbytes.
10879         (setval): Use setbytes on DOTBYTES.
10880
10881 1996-11-17  Hrvoje Niksic  <hniksic@srce.hr>
10882
10883         * ftp.c (getftp): Initialize con->dltime.
10884
10885         * recur.c (recursive_retrieve): Use same_host instead of
10886         try_robots; simply load robots_txt whenever the host is changed.
10887         (recursive_retrieve): Free forbidden before calling parse_robots.
10888
10889 1996-11-16  Hrvoje Niksic  <hniksic@srce.hr>
10890
10891         * retr.c (show_progress): Use them.
10892
10893         * options.h (struct options): New options dot_bytes, dots_on_line
10894         and dot_spacing.
10895
10896 1996-11-16  Mark Boyns  <boyns@sdsu.edu>
10897
10898         * recur.c (recursive_retrieve): Retrieve directories regardless of
10899         acc/rej rules; check for empty u->file.
10900
10901 1996-11-14  Hrvoje Niksic  <hniksic@srce.hr>
10902
10903         * init.c (setval): Use it.
10904
10905         * utils.c (merge_vecs): New function.
10906
10907         * init.c (setval): Reset the list-type functions when encountering
10908         "".
10909
10910 1996-11-14  Shawn McHorse  <riffraff@txdirect.net>
10911
10912         * recur.c (recursive_retrieve): Use base_url instead of this_url
10913         for no_parent.
10914
10915 1996-11-14  Shawn McHorse  <riffraff@txdirect.net>
10916
10917         * html.c (htmlfindurl): Reset s->in_quote after exiting the quote.
10918
10919 1996-11-13  Hrvoje Niksic  <hniksic@srce.hr>
10920
10921         * utils.c (sepstring): Rewrote; don't use strtok.
10922
10923         * recur.c (recursive_retrieve): Enter assorted this_url to slist
10924         when running the first time.
10925         (retrieve_robots): Warn to ignore errors when robots are loaded.
10926
10927         * utils.c (load_file): Moved from url.c.
10928
10929         * http.c: Made static variables const too in h* functions.
10930
10931         * main.c (main): Renamed --continue-ftp to --continue.
10932
10933         * recur.c (recursive_retrieve): Use it.
10934
10935         * utils.c (frontcmp): New function.
10936
10937         * url.c (accdir): New function.
10938
10939         * html.c (htmlfindurl): Recognize <area href=...>.
10940
10941         * ftp.c (ftp_retrieve_dirs): Implemented opt.includes.
10942
10943         * init.c (setval): Free the existing opt.excludes and
10944         opt.includes, if available.
10945
10946         * main.c (main): New option -I.
10947
10948 1996-11-12  Hrvoje Niksic  <hniksic@srce.hr>
10949
10950         * ftp.c (ftp_retrieve_glob): Do not weed out directories.
10951
10952         * version.c: Changed version to 1.4.1.
10953
10954 1996-11-11  Hrvoje Niksic  <hniksic@srce.hr>
10955
10956         * version.c: Released 1.4.0.
10957
10958 1996-11-10  Hrvoje Niksic  <hniksic@srce.hr>
10959
10960         * main.c (main): Free com and val after parse_line.
10961         (printhelp): Reorder the listing.
10962
10963         * http.c: More robust header parsing.
10964
10965         * http.c: Allow any number of spaces, or no spaces, precede ':'.
10966         (hskip_lws): New function.
10967         (haccepts_bytes): New function.
10968         (gethttp): Use it.
10969
10970         * init.c (setval): Check header sanity.
10971         (setval): Allow resetting of headers.
10972
10973 1996-11-10  Hrvoje Niksic  <hniksic@srce.hr>
10974
10975         * http.c (http_loop): Don't use has_wildcards.
10976
10977         * http.c (gethttp): Free all_headers -- would leak.
10978
10979         * recur.c (recursive_retrieve): Initialize depth to 1 instead of
10980         0 -- this fixes a long-standing bug in -rl.
10981
10982 1996-11-09  Hrvoje Niksic  <hniksic@srce.hr>
10983
10984         * ftp.c: Use -1 as "impossible" value for con->fd.
10985
10986         * url.h (URL_SEPARATOR): Don't treat `*' and `+' as separators.
10987
10988         * init.c (parse_line): Use isalpha.
10989
10990         * ftp-unix.c: Use HAVE_UNISTD_H.
10991
10992         * mtch.c (has_wildcards): Don't match \.
10993
10994         * http.c (http_loop): Warn on HTTP wildcard usage.
10995
10996 1996-11-08  Hrvoje Niksic  <hniksic@srce.hr>
10997
10998         * url.c (url_filename): Do not create numbered suffixes if
10999         opt.noclobber -- would bug out on -nc.
11000
11001 1996-11-07  Hrvoje Niksic  <hniksic@srce.hr>
11002
11003         * recur.c (parse_robots): Don't chuck out the commands without
11004         arguments (`Disallow:<empty>' didn't work).
11005         (parse_robots): Compare versions lowercase.
11006         (parse_robots): Match on base_version, not version_string!
11007         (parse_robots): Handle comments properly.
11008         (parse_robots): Match versions in a sane way.
11009
11010         * init.c: Print nicer error messages.
11011
11012         * version.c: Changed version to 1.4.0.
11013
11014 1996-11-06  Hrvoje Niksic  <hniksic@srce.hr>
11015
11016         * version.c: Released 1.4.0-test2.
11017
11018         * init.c (run_wgetrc): Close fp.
11019
11020         * ftp.c (ftp_retrieve_dirs): Allocate the correct length for
11021         u->dir.
11022
11023 1996-11-06  Hrvoje Niksic  <hniksic@srce.hr>
11024
11025         * init.c (setquota): Allow inf as quota specification.
11026
11027 1996-11-05  Hrvoje Niksic  <hniksic@srce.hr>
11028
11029         * ftp.c (ftp_retrieve_dirs): Return QUOTEXC if quota exceeded.
11030         (ftp_retrieve_glob): Return QUOTEXC on quota exceeded.
11031
11032         * main.c (main): Check for quota by comparison with downloaded
11033         stuff, not from status.
11034
11035         * connect.c (select_fd): Should compile on HPUX without warnings now.
11036
11037         * ftp.c (ftp_get_listing): Check whether ftp_loop_internal
11038         returned RETROK.
11039
11040 1996-11-04  Hrvoje Niksic  <hniksic@srce.hr>
11041
11042         * ftp.c (ftp_retrieve_glob): Print the pattern nicely.
11043         (getftp): Return FTPRETRINT on control connection error.
11044
11045         * html.c (htmlfindurl): Recognize <embed src=...> and
11046         <bgsound src=...>.
11047         (ftp_index): Handle username and password correctly.
11048
11049         * main.c (main): Made `-np' a synonim for --no-parent.
11050
11051 1996-11-02  Hrvoje Niksic  <hniksic@srce.hr>
11052
11053         * ftp.c (ftp_loop): Check for opt.ftp_glob too before calling
11054         ftp_retrieve_glob.
11055
11056         * version.c: Changed version to 1.4.0-test2.
11057
11058 1996-11-02  Hrvoje Niksic  <hniksic@srce.hr>
11059
11060         * version.c: Released 1.4.0-test1.
11061
11062         * url.c (str_url): Don't use sprintf when creating %2F-prefixed
11063         directory.
11064         (convert_links): Removed definition of make_backup.
11065
11066         * http.h: Removed definition of MAX_ERROR_LENGTH.
11067
11068         * host.c (ftp_getaddress): Check for "(none)" domains.
11069
11070         * ftp.c (ftp_retrieve_dirs): Docfix.
11071
11072         * http.c (gethttp): Use ou->referer instead of u->referer.
11073
11074         * retr.c (retrieve_url): Reset u to avoid freeing pointers twice;
11075         this was known to cause coredumps on Linux.
11076
11077         * html.c (ftp_index): Cast the argument to local_time to time_t *.
11078
11079 1996-11-01  Hrvoje Niksic  <hniksic@srce.hr>
11080
11081         * connect.c (select_fd): Use exceptfds -- once and for all.
11082
11083         * retr.c (retrieve_from_file): Free filename after
11084         recursive_retrieve.
11085         (retrieve_from_file): Send RFIRST_TIME to recursive_retrieve on
11086         first-time retrieval.
11087         (retrieve_from_file): Return uerr_t; new argument, count.
11088         (retrieve_from_file): Break on QUOTEXC.
11089
11090         * init.c (setquota): Fixed a bug that caused rejection of
11091         non-postfixed values..
11092
11093 1996-10-30  Hrvoje Niksic  <hniksic@srce.hr>
11094
11095         * version.c: Changed name to wget.
11096
11097         * connect.c (iread): Smarter use of select.
11098         (select_fd): Set errno on timeout.  If not timeout, return 1
11099         instead of 0.
11100
11101 1996-10-29  Hrvoje Niksic  <hniksic@srce.hr>
11102
11103         * ftp.c (ftp_loop_internal): Don't use con->cmd before
11104         establishing it.
11105
11106 1996-10-26  Hrvoje Niksic  <hniksic@srce.hr>
11107
11108         * http.c (gethttp): Send correct referer when using proxy.
11109         (gethttp): Use struct urlinfo ou to access the relevant data; send
11110         correct authorization in all cases.
11111
11112         * host.c (same_host): Use skip_uname to skip username and
11113         password.
11114
11115         * url.c (skip_uname): New function.
11116         (parseurl): Use it.
11117
11118         * host.c (same_host): Do not assume HTTP -- same_host should now
11119         be totally foolproof.
11120
11121         * url.c (skip_proto): New function.
11122         (parse_uname): Use it.
11123
11124         * http.c (gethttp): Create local user and passwd from what is
11125         given.
11126
11127         * url.c (parseurl): Check for HTTP username and password too.
11128
11129 1996-10-25  Hrvoje Niksic  <hniksic@srce.hr>
11130
11131         * config.h.in: Removed #define gethostbyname R...
11132
11133 1996-10-22  Hrvoje Niksic  <hniksic@srce.hr>
11134
11135         * version.c: Changed version to 1.4.0-test1.
11136
11137 1996-10-21  Hrvoje Niksic  <hniksic@srce.hr>
11138
11139         * version.c: "Released" 1.4b29.
11140
11141         * recur.c (recursive_retrieve): Check for no_parent.
11142
11143         * init.c (setval): Option update.
11144
11145         * main.c (main): New option no-parent.
11146
11147         * options.h (struct options): New variable no_parent.
11148
11149         * recur.c (recursive_retrieve): Only files are checked for
11150         opt.accepts and opt.rejects.
11151         (recursive_retrieve): Check directories for opt.excludes.
11152         (recursive_retrieve): Make the dir absolute when checking
11153         opt.excludes.
11154
11155         * html.c (htmlfindurl): Recognize <applet code=...> and <script
11156         src=...>
11157
11158 1996-10-18  Hrvoje Niksic  <hniksic@srce.hr>
11159
11160         * ftp.c (getftp): Do not line-break assert entries at all.
11161         (ftp_retrieve_dirs): docfix.
11162
11163         * connect.c (select_fd): Use fd + 1 as nfds.
11164
11165         * version.c: Changed version to 1.4b29.
11166
11167 1996-10-18  Hrvoje Niksic  <hniksic@srce.hr>
11168
11169         * version.c: "Released" 1.4b28.
11170
11171         * ftp.c (ftp_loop_internal): Check whether f->size == len and
11172         don't continue the loop if it is.
11173         (ftp_get_listing): Remove list_filename on unsuccesful loop.
11174
11175 1996-10-17  Hrvoje Niksic  <hniksic@srce.hr>
11176
11177         * ftp.c (ftp_loop_internal): Use strcpy to initialize tmp.
11178         (getftp): Do not use multiline assert.
11179
11180         * http.c (hparsestatline): Use mjr and mnr instead of major and
11181         minor, which don't compile on Ultrix.
11182         (http_loop): Use strcpy() to initialize tmp.
11183
11184         * all: Geturl -> Fetch
11185
11186 1996-10-17  Hrvoje Niksic  <hniksic@srce.hr>
11187
11188         * recur.c (parse_robots): Fixed an off-by-one bug when looking for
11189         ':'.
11190
11191         * html.c (htmlfindurl): Fixed several possible off-by-one bugs by
11192         moving `bufsize &&' to the beginning of each check in for-loops.
11193
11194         * recur.c (parse_robots): Close fp on exit.
11195
11196         * url.c (mymkdir): Check for each directory before creating.
11197
11198 1996-10-16  Hrvoje Niksic  <hniksic@srce.hr>
11199
11200         * version.c: Changed version to 1.4b28.
11201
11202 1996-10-16  Hrvoje Niksic  <hniksic@srce.hr>
11203
11204         * version.c: "Released" 1.4b27.
11205
11206         * init.c (parse_line): Use isspace.
11207         (parse_line): Free *com on all errors.
11208
11209         * ftp.c (ftp_loop): Change FTPOK to RETROK before exiting.
11210         (delelement): Use next instead of f->next and prev instead of
11211         f->prev.
11212         (delelement): Free the members of the deleted element.
11213
11214         * http.c (http_loop): Do not return RETROK on code != 20x.
11215
11216         * init.c (cleanup): Free opt.user_header.
11217         (cleanup): Free opt.domains.
11218
11219         * url.c (freelists): Moved to cleanup().
11220
11221         * http.c (hparsestatline): Docfix.
11222
11223         * main.c (main): Return with error status on unsuccesful
11224         retrieval.
11225
11226         * init.c (setval): Do not remove listing when mirroring.
11227
11228         * url.c (url_filename): Use opt.fileprefix.
11229
11230         * ftp.c (ftp_get_listing): Use url_filename to get filename for
11231         .listing.
11232
11233         * main.c (main): New option: -rn.
11234
11235 1996-10-15  Hrvoje Niksic  <hniksic@srce.hr>
11236
11237         * Makefile.in (RM): Added RM = rm -f.
11238
11239         * host.c (clean_hosts): New function.
11240         (free_hlist): Just free the list, no reset.
11241
11242         * version.c: Changed version to 1.4b27.
11243
11244 1996-10-13  Hrvoje Niksic  <hniksic@srce.hr>
11245
11246         * version.c: "Released" 1.4b26.
11247
11248         * retr.c (retrieve_from_file): If call get_urls_html with
11249         opt.spider to make it silent in spider mode.
11250
11251         * url.c (str_url): Use CLEANDUP instead of URL_CLEANSE.
11252
11253         * url.h (CLEANDUP): New macro.
11254
11255         * http.c (gethttp): Fixed a bug that freed location only when it
11256         was NULL.
11257
11258         * retr.c (retrieve_url): Free url if it will not be stored,
11259         i.e. newloc is NULL.
11260
11261         * html.c (htmlfindurl): Handle exiting from quotes correctly; the
11262         old version would bug out on <a href="x#a"href="y">.
11263
11264         * html.h (state_t): New member in_quote.
11265
11266         * html.c (htmlfindurl): Free s->attr at the beginning of
11267         attr-loop.
11268
11269         * recur.c (recursive_retrieve): Recognize RCLEANUP.
11270         (tried_robots): Make hosts a global variable.
11271         (recursive_retrieve): Free constr after URL host optimization.
11272         (tried_robots): Free urlinfo before exiting.
11273
11274         * utils.c (free_slist): New function.
11275
11276         * recur.c (recursive_retrieve): Use flags to add cleanup
11277         possibility.
11278
11279         * main.c (main): Free filename after recursive_retrieve.
11280
11281         * http.c (gethttp): Store successful responses too.
11282
11283 1996-10-12  Hrvoje Niksic  <hniksic@srce.hr>
11284
11285         * all: Constified the whole source.  This required some minor
11286         changes in many functions in url.c, possibly introducing bugs -- I
11287         hope not.
11288
11289         * ftp-basic.c: Removed last_respline.
11290
11291         * http.c (gethttp): Free type.
11292
11293         * host.c (same_host): Free real1 and real2.
11294
11295         * main.c (main): New option --spider.
11296
11297         * retr.c (get_contents): Don't reset errno.
11298
11299         * main.c (main): Sorted the options.
11300
11301         * connect.c (iread): Set errno to ETIMEDOUT only if it was left
11302         uninitialized by select().
11303
11304         * http.c (http_loop): Print the time when the connection is
11305         closed.
11306         (gethttp): Debug-print the HTTP request.
11307
11308 1996-10-11  Hrvoje Niksic  <hniksic@srce.hr>
11309
11310         * connect.c (iread): Do not try reading after timeout.
11311
11312         * main.c (main): Would bug out on -T.
11313
11314         * connect.c (select_fd): Do not use exceptfds.
11315         (iread): Set ETIMEDOUT on select_fd <= 0.
11316
11317         * version.c: Changed version to 1.4b26.
11318
11319 1996-10-10  Hrvoje Niksic  <hniksic@srce.hr>
11320
11321         * version.c: "Released" 1.4b25.
11322
11323         * ftp-unix.c (ftp_parse_unix_ls): Ignore lines without file name
11324         or link name.
11325
11326         * http.c (gethttp): Add errcode to struct hstat.
11327         (http_loop): Use it.
11328
11329         * url.c (no_proxy_match): Simplify using char** for no_proxy.
11330
11331         * options.h (struct options): Make opt.no_proxy a vector.
11332
11333         * utils.c (sepstring): Use !*s instead of !strlen(s).
11334
11335         * init.c (setval): Set opt.maxreclevel to 0 on --mirror.
11336         (getperms): Use ISODIGIT instead of isdigit.
11337
11338         * ftp.c (getftp): Print time.
11339
11340         * main.c (main): Use legible output of downloaded quantity.
11341
11342         * ftp.c (getftp): Use elapsed_time().
11343         (ftp_loop_internal): Use rate().
11344
11345         * http.c (http_loop): Add download ratio output; Use rate().
11346
11347         * utils.c (rate): New function.
11348
11349 1996-10-09  Hrvoje Niksic  <hniksic@srce.hr>
11350
11351         * http.c (http_loop): Use timer.
11352
11353         * ftp.c: Split to ftp-basic.c and ftp.c
11354
11355         * utils.c (reset_timer): New function.
11356         (elapsed_time): New function.
11357
11358         * retr.c (show_progress): Make bytes_in_line and offs long; should
11359         work on 16-bit machines.
11360
11361 1996-10-08  Hrvoje Niksic  <hniksic@srce.hr>
11362
11363         * url.c (in_acclist): New argument backward.
11364
11365         * ftp.c (ftp_retrieve_glob): Use acceptable() to determine whether
11366         a file should be retrieved according to suffix.
11367         (ftp_get_listing): Check the return value of unlink; Do not call
11368         ftp_retrieve_dirs if depth reached maxreclevel.
11369         (ftp_retrieve_dirs): Check whether the directory is in
11370         exclude-list.
11371
11372         * main.c (main): Print the version number at the beginning of
11373         DEBUG output.
11374         (main): Use strrchr when creating exec_name.
11375
11376         * ftp.c (ftp_retrieve_glob): Do not close control connection.
11377
11378         * version.c: Changed version to 1.4b25.
11379
11380 1996-10-07  Hrvoje Niksic  <hniksic@srce.hr>
11381
11382         * version.c: "Released" 1.4b24.
11383
11384         * Makefile.in: Rewrite.
11385
11386         * ftp.c (ftp_loop_internal): Likewise.
11387
11388         * retr.c (time_str): Check for failed time().
11389
11390         * html.c (htmlfindurl): Recognize <fig src> and <overlay src> from
11391         HTML3.0.
11392
11393         * retr.c (time_str): Return time_t *.
11394
11395         * connect.c (bindport): Close msock on unsuccesful bind.
11396         (bindport): The same for getsockname and listen.
11397
11398         * retr.c (retrieve_url): Allow any number of retries on
11399         proxy.
11400
11401         * http.c (gethttp): Do not treat errno == 0 as timeout.
11402         (http_loop): Likewise.
11403         (http_loop): Cosmetic changes.
11404
11405         * connect.c (iread): Set errno to ETIMEDOUT in case of timeout.
11406
11407         * retr.c (get_contents): Reset errno.
11408
11409         * ftp.c (getftp): Minor fixes.
11410
11411 1996-10-06  Hrvoje Niksic  <hniksic@srce.hr>
11412
11413         * http.c: Do not use backups.
11414
11415         * geturl.1 (WARNING): Warn that man-page could be obsolete.
11416
11417         * getopt.c (getopt_long): Moved to getopt.c
11418
11419         * geturl.texi: Enhanced.
11420
11421         * main.c (main): Use it.
11422
11423         * recur.c (convert_all_links): New function.
11424
11425         * utils.c (add_slist): New argument flags.
11426
11427         * recur.c (recursive_retrieve): Update a list of downloaded URLs.
11428         (parse_robots): Do not chuck out empty value fields.
11429         (parse_robots): Make yourself welcome on empty Disallow.
11430
11431         * version.c: Changed version to 1.4b24.
11432
11433 1996-10-06  Hrvoje Niksic  <hniksic@srce.hr>
11434
11435         * version.c: "Released" 1.4b23.
11436
11437         * ftp.c (ftp_loop_internal): Get the time after getftp.
11438
11439         * Makefile.in (install.info): New target.
11440         (install): Use it.
11441
11442         * http.c (http_loop): Fix output when doing -O.
11443
11444 1996-10-05  Hrvoje Niksic  <hniksic@srce.hr>
11445
11446         * geturl.texi: New file.
11447
11448         * main.c (main): Do not print the warnings and download summary if
11449         opt.quiet is set.
11450
11451         * version.c: Changed version to 1.4b23.
11452
11453 1996-10-05  Hrvoje Niksic  <hniksic@srce.hr>
11454
11455         * "Released" 1.4b22.
11456
11457         * atotm.c (atotm): Use True and False instead of TRUE and FALSE,
11458         to avoid redefinition warnings.
11459
11460         * host.c (store_hostaddress): Use memcpy() to copy the address
11461         returned by inet_addr.
11462
11463         * version.c: Changed version to 1.4b22.
11464
11465 1996-10-04  Hrvoje Niksic  <hniksic@srce.hr>
11466
11467         * version.c: "Released" 1.4b21.
11468
11469         * ftp-unix.c (ftp_parse_ls): Renamed to ftp_parse_unix_ls.
11470
11471         * ftp.c (ftp_port): Use conaddr.
11472         (getftp): Print the file length.
11473         (ftp_retrieve_list): Check the stamps of plain files only.
11474
11475         * connect.c (closeport): Do not call shutdown().
11476         (conaddr): New function.
11477
11478         * html.c (ftp_index): Made it dfp-aware.
11479
11480         * init.c (cleanup): New name of freemem. Close opt.dfp.
11481
11482         * ftp.c (getftp): Use opt.dfp if it is set.
11483
11484         * ftp-unix.c (ftp_parse_ls): Recognize time in h:mm format.
11485
11486         * ftp.c (ftp_retrieve_dirs): Fixed a bug that caused incorrect
11487         CWDs to be sent with recursive FTP retrievals.
11488
11489 1996-10-03  Hrvoje Niksic  <hniksic@srce.hr>
11490
11491         * recur.c (parse_robots): Made it more compliant with "official"
11492         specifications.
11493
11494         * http.c: New function.
11495
11496         * ftp-unix.c (ftp_parse_ls): Added better debug output.
11497
11498         * ftp.c (getftp): Print out the LIST in case of
11499         opt.print_server_response.
11500
11501         * version.c: Changed version to 1.4b21.
11502
11503 1996-10-01  Hrvoje Niksic  <hniksic@srce.hr>
11504
11505         * version.c: "Released" 1.4b20.
11506
11507         * README: Update.
11508
11509         * http.c (gethttp): Preset lengths of various headers instead of
11510         calculating them dynamically.
11511         (gethttp): Check for 206 partial contents.
11512
11513 1996-09-30  Hrvoje Niksic  <hniksic@srce.hr>
11514
11515         * configure.in: Set SYSTEM_GETURLRC to $libdir/geturlrc
11516
11517         * http.c (gethttp): Send the port number in the Host: header.
11518
11519 1996-09-29  Hrvoje Niksic  <hniksic@srce.hr>
11520
11521         * http.c (gethttp): Send host: header.
11522         (gethttp): Add the possibility of user-defined headers.
11523         (gethttp): Move decision about pragma: no-cache to http_loop,
11524         where it belongs.
11525         (gethttp): Pass a struct instead of enormous argument list.
11526         (http_loop): Use a new, fancier display format.
11527         (ftp_loop): Likewise.
11528
11529         * main.c: (hangup): Turn off buffering of the new log file.
11530
11531         * install-sh: Likewise.
11532
11533         * config.sub: Replace with the one in autoconf-2.10
11534
11535         * geturl.1: Update.
11536
11537         * init.c: New options httpuser and httppasswd.
11538
11539         * http.c: (base64_encode_line): New function.
11540         (gethttp): Send authentication.
11541
11542         * connect.c (make_connection): Use store_hostaddress.
11543
11544 1996-09-28  Hrvoje Niksic  <hniksic@srce.hr>
11545
11546         * host.c (store_hostaddress): New function.
11547
11548         * NEWS: Update.
11549
11550         * http.c (hgetrange): New function.
11551         (gethttp): Use ranges.
11552
11553         * utils.c (numdigit): Accept long instead of int.
11554
11555         * http.c (http_loop): Add restart capabilities.
11556
11557         * ftp.c (ftp_retrieve_glob): Fixed a bug that could cause matchres
11558         being used uninitialized.
11559         (ftp_retrieve_list): Similar fix.
11560
11561         * host.c (add_hlist): Fixed a bug that could cause cmp being used
11562         uninitialized.
11563
11564         * url.c (construct_relative): New function.
11565
11566         * recur.c (recursive_retrieve): Use it.
11567
11568         * retr.c (convert_links): New function.
11569
11570 1996-09-27  Hrvoje Niksic  <hniksic@srce.hr>
11571
11572         * url.c (free_urlpos): New function.
11573
11574         * recur.c (recursive_retrieve): Adapt.
11575
11576         * url.c (get_urls_html): Return a linked list instead of a vector.
11577
11578         * url.c (get_urls_file): Return a linked list instead of a vector.
11579
11580         * geturl.1: Update.
11581
11582         * http.c (gethttp): Implement it.
11583
11584         * init.c (setval): New option: SAVEHEADERS
11585
11586         * ftp.c (ftp_loop_internal): Do not set restval if listing is to
11587         be retrieved. Lack of this test caused bugs when the connection
11588         was lost during listing.
11589
11590         * retr.c (retrieve_url): Fixed a bug that caused
11591         coredumps. *newloc is now reset by default.
11592         (retrieve_url): Lift the twenty-tries limit on proxies.
11593
11594         * version.c: Changed version to 1.4b20.
11595
11596 1996-09-20  Hrvoje Niksic  <hniksic@srce.hr>
11597
11598         * version.c: "Released" 1.4b19.
11599
11600 1996-09-19  Hrvoje Niksic  <hniksic@srce.hr>
11601
11602         * ftp.c (ftp_loop_internal): Renamed from ftp_1fl_loop.
11603         (getftp): Changed prototype to accept ccon *.
11604
11605 1996-09-17  Hrvoje Niksic  <hniksic@srce.hr>
11606
11607         * ftp.c (ftp_retrieve_list): Fixed a bug that caused setting
11608         incorrect values to files pointed to by symbolic links.
11609         (ftp_1fl_loop): Do not count listings among the downloaded URL-s.
11610
11611 1996-09-16  Hrvoje Niksic  <hniksic@srce.hr>
11612
11613         * url.c (mkstruct): Do not prepend "./" in front of a pathname.
11614
11615         * main.c (main): New option: --user-agent.
11616
11617         * geturl.1: Ditto.
11618
11619         * init.h: Ditto.
11620
11621         * init.c (setval): Ditto.
11622
11623         * main.c (main): Rename "server-headers" to "server-response".
11624
11625         * ftp-unix.c (ftp_parse_ls): Check for asterisks at the end of
11626         executables in 'ls -F' listings.
11627
11628 1996-09-15  Hrvoje Niksic  <hniksic@srce.hr>
11629
11630         * url.c (parseurl): Remove realloc() and sprintf().
11631         (str_url): Get rid of sprintf().
11632
11633         * recur.c (recursive_retrieve): Enable FTP recursion through proxy
11634         servers.
11635
11636         * url.h (URL_CLEANSE): Made it else-resistant.
11637         (USE_PROXY): New macro.
11638
11639 1996-09-14  Hrvoje Niksic  <hniksic@srce.hr>
11640
11641         * NEWS: Update.
11642
11643         * version.c: Changed version to 1.4b19.
11644
11645 1996-09-14  Hrvoje Niksic  <hniksic@srce.hr>
11646
11647         * version.c: "Released" 1.4b18.
11648
11649         * url.c: Made it reallocate space exponentially.
11650
11651 1996-09-14  Drazen Kacar  <dave@fly.cc.fer.hr>
11652
11653         * html.c (htmlfindurl): Added <frame src> and <iframe src> among
11654         the list of stuff to fetch.
11655
11656 1996-09-13  Hrvoje Niksic  <hniksic@srce.hr>
11657
11658         * url.c (get_urls_html): Fixed a bug that caused SIGSEGV's with
11659         -Fi.
11660
11661         * html.c (htmlfindurl): Rewrite.
11662
11663         * http.c (gethttp): Use opt.proxy_cache.
11664
11665         * main.c (main): Added --cache option.
11666
11667         * ftp.c (ftp_response): Print server response if opt.print_server
11668         response is set.
11669         (getftp): Print newlines after each request if the server response
11670         is to be printed.
11671         (ftp_response): Copy the last response line to last_respline.
11672
11673         * http.c (gethttp): Add Pragma: nocache for retried
11674         proxy-retrievals.
11675
11676         * ftp.c (getftp): Use it.
11677
11678         * retr.c (buf_discard): New function.
11679
11680         * ftp.c (ftp_response): Use buf_readchar().
11681         (getftp): Flush the control connection buffer before calling
11682         get_contents().
11683
11684         * retr.c (buf_readchar): New function.
11685         (buf_flush): New function.
11686         (get_contents): Use buf_readchar() instead of read(x, x, 1).
11687         (get_contents): Use buf_flush.
11688
11689 1996-09-12  Hrvoje Niksic  <hniksic@srce.hr>
11690
11691         * ftp.c: Incorporate changes to ftp_response.
11692
11693         * ftp.c (ftp_response): Allocate the server response dynamically,
11694         as in read_whole_line and fetch_next_header.
11695
11696         * utils.c (read_whole_line): Fixed a bug that prevented reading
11697         the last line if it is not \n-terminated. Also fixed a possible
11698         memory overflow.
11699
11700         * http.c (fetch_next_header): Return malloc-ed string as large as
11701         needed.
11702         (gethttp): Use new fetch_next_header.
11703
11704 1996-09-12  Hrvoje Niksic  <hniksic@srce.hr>
11705
11706         * http.c (hgetlen): Compute the header length the first time only.
11707         (hgettype): Ditto.
11708         (hgetlocation): Ditto.
11709         (hgetmodified): Ditto.
11710
11711 1996-09-11  Hrvoje Niksic  <hniksic@srce.hr>
11712
11713         * sample.geturlrc: Update.
11714
11715 1996-09-10  Hrvoje Niksic  <hniksic@srce.hr>
11716
11717         * http.c (http_loop): Ditto.
11718
11719         * ftp.c (getftp): Open the output file as binary.
11720
11721         * version.c: Changed version to 1.4b18.
11722
11723 1996-09-10  Hrvoje Niksic  <hniksic@srce.hr>
11724
11725         * version.c: "Released" 1.4b17.
11726
11727         * ftp-unix.c (ftp_parse_ls): If unable to open file, return NULL
11728         instead of failed assertion.
11729
11730 1996-09-09  Hrvoje Niksic  <hniksic@srce.hr>
11731
11732         * ftp.c (ftp_get_listing): Add a numbered suffix to LIST_FILENAME
11733         if a file of that name already exists.
11734
11735 1996-09-05  Hrvoje Niksic  <hniksic@srce.hr>
11736
11737         * ftp.c (ftp_1fl_loop): Handler FTPPORTERR and FOPENERR correctly.
11738
11739         * config.h.in: Define gethostbyname as Rgethostbyname when using
11740         Socks.
11741
11742         * configure.in: Check for -lresolv if using Socks.
11743
11744         * version.c: Changed version to 1.4b17.
11745
11746 1996-07-15  Hrvoje Niksic  <hniksic@srce.hr>
11747
11748         * version.c: "Released" 1.4b16.
11749
11750         * http.c (gethttp): More intelligent check for first line of HTTP
11751         response.
11752         (gethttp): Would bug out on time-stamping.
11753
11754         * version.c: Changed version to 1.4b16.
11755
11756 1996-07-11  Hrvoje Niksic  <hniksic@srce.hr>
11757
11758         * version.c: Released 1.4b15.
11759
11760         * http.c (http_loop): Print \n after the loop entry, not before.
11761
11762         * url.c (url_filename): Use ISDOT.
11763
11764         * url.h (ISDOT): New macro.
11765
11766         * recur.c (recursive_retrieve): Change only opt.recursive for
11767         following FTP.
11768
11769 1996-07-11  Antonio Rosella <antonio.rosella@agip.it>
11770
11771         * socks/geturl.cgi: Fixed version No.
11772
11773         * socks/download-netscape.html: Ditto.
11774
11775         * socks/download.html: Changed socks.html to download.html.
11776
11777 1996-07-11  Hrvoje Niksic  <hniksic@srce.hr>
11778
11779         * url.c (url_filename): Check for opt.dirstruct instead for
11780         opt.recursive && opt.dirstruct.
11781
11782         * init.c (defaults): Ditto.
11783         (defaults): Reset dirstruct by default.
11784         (setval): Set opt.dirstruct whenever setting recursive.
11785
11786         * init.h: Removed FORCEDIRHIER.
11787
11788         * INSTALL: Added -L to socks-description.
11789
11790         * version.c: Changed version to 1.4b15.
11791
11792 1996-07-10  Hrvoje Niksic  <hniksic@srce.hr>
11793
11794         * version.c: "Released" 1.4b14.
11795
11796         * geturl.1: Update AUTHOR to include Rosella as contributor.
11797
11798         * NEWS: Update.
11799
11800         * socks/geturl.cgi: Simplified command creation, nuked <blink>.
11801
11802         * socks/geturl.cgi: Wrap nutscape extensions within if $netscape.
11803         (cal_time): Fix == to eq.
11804
11805         * socks/geturl.cgi: GPL-ized with permission of A. Rosella.
11806
11807         * geturl.1 (hostname): Moved URL CONVENTIONS to the beginning.
11808
11809         * Makefile.in: Use @VERSION@.
11810
11811         * configure.in: Check version from version.c.
11812
11813         * socks/geturl.cgi: Changed /pub/bin/perl to /usr/bin/perl.
11814
11815         * socks/download.html: Created from download-netscape.html, made
11816         HTML-2.0 compliant.
11817
11818         * recur.c (recursive_retrieve): Set opt.force_dir_hier when
11819         following FTP links from recursions.
11820
11821 1996-07-09  Hrvoje Niksic  <hniksic@srce.hr>
11822
11823         * url.c (mymkdir): Fixed a bug that prevented mymkdir() to create
11824         absolute directories correctly.
11825
11826         * version.c: Changed version to 1.4b14.
11827
11828 1996-07-09  Hrvoje Niksic  <hniksic@srce.hr>
11829
11830         * version.c: "Released" 1.4b13.
11831
11832         * url.c (make_backup): New function.
11833
11834         * http.c (http_loop): Make a backup copy of the local file (using
11835         rename(2)) before opening it.
11836
11837         * main.c (main): Added --backups.
11838
11839         * host.c (ftp_getaddress): Bail out on failed mycuserid().
11840         (ftp_getaddress): Check for leading dot on MY_DOMAIN.
11841         (ftp_getaddress): Check for empty, null or (null) domain.
11842
11843         * url.c (get_urls_html): If this_url is NULL, the base must have a
11844         protocol.
11845         (parseurl): Use has_proto.
11846
11847         * retr.c (retrieve_url): Warn when proxy is used with more than 20
11848         retries.
11849
11850         * url.c (mkstruct): Create the directory (calling mymkdir()) only
11851         if it is not already there.
11852         (has_proto): New function.
11853         (get_urls_html): Eliminate the remaining call to findurl -- use
11854         has_proto.
11855
11856         * geturl.1: Ditto.
11857
11858         * main.c: Change -X to -x.
11859
11860         * url.c (url_filename): Simplify creation of filename if
11861         prefix_files is set.
11862         (url_filename): Simplify everything. And I do mean *everything*.
11863         (mkstruct): Add dir_prefix before hostname.
11864         (path_simplify): Fixed a bug that caused writing outside the path
11865         string in case of "." and ".." path strings.
11866
11867 1996-07-06  Hrvoje Niksic  <hniksic@srce.hr>
11868
11869         * init.c: Added --mirror.
11870
11871         * main.c (main): Added -X to force saving of directory hierarchy.
11872
11873         * ftp.c (ftp_retrieve_list): Added recursion depth counter.
11874         (ftp_retrieve_list): Check whether quota is exceeded.
11875
11876         * url.c (get_urls_html): Skip leading blanks for absolute URIs.
11877
11878         * http.c (gethttp): Use referer if present.
11879
11880         * recur.c (recursive_retrieve): Set u->referer before calling
11881         retrieve_url.
11882
11883         * url.c (newurl): Use memset to nullify the struct members.
11884         (freeurl): Free the referer field too.
11885
11886         * url.h: Added referer to urlinfo.
11887
11888         * geturl.1: Updated the manual to document some of the new features.
11889
11890         * utils.c (numdigit): Moved from url.c.
11891
11892         * README: Rewritten.
11893
11894         * config.h.in: Add the support for socks.
11895
11896         * configure.in: Add the support for socks.
11897
11898         * url.c (url_filename): If the dir_prefix is ".", work with just
11899         the file name.
11900         (url_filename): Do not look for .n extensions if timestamping if
11901         turned on.
11902
11903         * retr.c (show_progress): Skip the over-abundant restval data, and
11904         print the rest of it with ',' instead of '.'.
11905
11906 1996-07-05  Hrvoje Niksic  <hniksic@srce.hr>
11907
11908         * retr.c (show_progress): Changed second arg. to long (as it
11909         should be).
11910         (show_progress): Moved to retr.c.
11911         (get_contents): Moved to retr.c.
11912
11913         * version.c: Change version to 1.4b13.
11914
11915 1996-07-05  Hrvoje Lacko <hlacko@fly.cc.fer.hr>
11916
11917         * url.c (in_acclist): Would return after the first suffix.
11918
11919 1996-07-04  Hrvoje Niksic  <hniksic@srce.hr>
11920
11921         * version.c: "Released" 1.4b12.
11922
11923         * url.c (path_simplify): More kludgifications.
11924         (get_urls_html): Use new parameters for htmlfindurl.
11925
11926         * html.c: Removed memorizing "parser states", since the new
11927         organization does not require them.
11928
11929         * init.c (run_geturlrc): Use read_whole_line.
11930
11931         * ftp-unix.c (ftp_parse_ls): Use read_whole_line.
11932
11933         * recur.c (parse_robots): Use read_whole_line.
11934
11935         * utils.c (read_whole_line): New function.
11936
11937         * recur.c (tried_robots): Use add_slist/in_slist, *much* cleaner.
11938
11939         * host.c (ngethostbyname): Call inet_addr just once. Yet to be
11940         tested on OSF and Ultrix.
11941         (add_hlist): New function.
11942         (free_hlist): New function.
11943         (search_host): New function.
11944         (search_address): New function.
11945         (realhost): Use search_host, search_address and add_hlist.
11946         (same_host): Replaced realloc() with strdupdelim(), made
11947         case-insensitive, fixed a memory leak.
11948
11949         * html.c (ftp_index): Fixed tm_min and tm_sec to be tm_hour and
11950         tm_min, like intended.
11951
11952         * version.c: Change user agent information to
11953         Geturl/version.
11954
11955 1996-07-03  Hrvoje Niksic  <hniksic@srce.hr>
11956
11957         * utils.c: Renamed nmalloc.c to utils.c, .h likewise.
11958
11959         * url.c (acceptable): Always accept directories.
11960
11961         * ftp-unix.c (ftp_parse_ls): Support brain-damaged "ls -F"-loving
11962         servers by stripping trailing @ from symlinks and trailing / from
11963         directories.
11964
11965         * ftp.c (ftp_loop): Debugged the "enhanced" heuristics. :-)
11966
11967         * url.c (skip_url): Use toupper instead of UCASE.
11968
11969         * host.c (sufmatch): Made it case-insensitive.
11970
11971         * url.c (match_backwards_or_pattern): Fixed i == -1 to j == -1.
11972         (match_backwards): New function, instead of
11973         match_backwards_or_pattern.
11974
11975         * recur.c (recursive_retrieve): Increased performance by
11976         introducing inl, which reduces number of calls to in_slist to only
11977         one.
11978
11979         * ftp.c (ftp_loop): Enhanced the heuristics that decides which
11980         routine to use.
11981
11982         * main.c (printhelp): Removed the warranty stuff.
11983
11984 1996-07-02  Hrvoje Niksic  <hniksic@srce.hr>
11985
11986         * url.c (add_slist): Simplify.
11987         (match_backwards_or_pattern): New function.
11988         (in_acclist): Use match_backwards_or_pattern.
11989         (matches): Remove.
11990
11991 1996-06-30  Hrvoje Niksic  <hniksic@srce.hr>
11992
11993         * ftp.c (ftp_loop): Call ftp_index on empty file names, if not
11994         recursive.
11995
11996         * html.c (ftp_index): Fixed to work. Beautified the output.
11997
11998         * ftp.c (ftp_retrieve_glob): Another argument to control whether
11999         globbing is to be used.
12000         (ftp_retrieve_list): Compare the time-stamps of local and remote
12001         files to determine whether to download.
12002
12003 1996-06-29  Hrvoje Niksic  <hniksic@srce.hr>
12004
12005         * ftp.c (rel_constr): New function.
12006
12007         * retr.c (retrieve_from_file): Check for text/html before
12008         retrieving recursively.
12009
12010         * main.c (main): Check whether the file is HTML before going into
12011         recursive HTML retrieving.
12012
12013         * ftp.c (ftp_retrieve_list): Manage directories.
12014         (ftp_retrieve_glob): Pass all the file-types to ftp_retrieve_list.
12015         (ftp_1fl_loop): Fixed a bug that caused con->com to be incorrectly
12016         initialized, causing bugchecks in getftp to fail.
12017
12018         * configure.in: Check for symlink.
12019
12020         * ftp.c (ftp_retrieve_list): Added support for symlinks.
12021
12022         * version.c: "Released" 1.4b10.
12023
12024         * atotm.c (atotm): Redeclared as time_t.
12025
12026         * init.c: New variable "timestamping".
12027
12028         * main.c (main): New option 'N'.
12029
12030         * http.c (hgetlocation): Case-insensitive match.
12031         (hgetmodified): New function.
12032         (http_loop): Implement time-stamping.
12033
12034 1996-06-28  Hrvoje Niksic  <hniksic@srce.hr>
12035
12036         * version.c: Changed version to 1.4b10
12037
12038         * atotm.c: New file, from phttpd.
12039
12040         * options.h (struct options): New parameter timestamping.
12041
12042         * version.c: 1.4b9 "released".
12043
12044         * recur.c (recursive_retrieve): Used linked list (ulist) for
12045         faster storing of URLs.
12046
12047         * url.c (get_urls_html): Removed the old kludge with comparing the
12048         outputs of htmlfindurl and findurl.
12049         (get_urls_html): Added better protocol support here.
12050         (create_hash): Removed, as well as add_hash and in_hash.
12051         (addslist): New function.
12052         (in_slist): ditto
12053
12054         * version.c: Released 1.4b8, changed version to b9.
12055
12056 1996-06-27  Hrvoje Niksic  <hniksic@srce.hr>
12057
12058         * ftp.c (freefileinfo): New function.
12059         (delelement): New function.
12060
12061         * everywhere: GPL!
12062
12063         * ftp.c (ftp_loop): Use ccon.
12064         (ftp_retrieve_glob): Likewise.
12065
12066         * ftp.h: Define ccon, to define status of control connection.
12067
12068         * ftp.c (ftp_get_listing): New function.
12069         (ftp_retrieve_more): New function.
12070         (ftp_retrieve_glob): New function.
12071
12072 1996-06-25  Hrvoje Niksic  <hniksic@srce.hr>
12073
12074         * configure.in: Removed the search for cuserid().
12075
12076         * init.c (getmode): Renamed to getperms.
12077
12078 1996-06-24  Hrvoje Niksic  <hniksic@srce.hr>
12079
12080         * version.c: New version.
12081
12082         * main.c (hangup): New function, that handles hangup. Hangup
12083         signal now causes geturl to stop writing on stdout, and to write
12084         to a log file.
12085
12086         * ftp.c (getftp): "Released" 1.4b7.
12087
12088         * html.c (htmlfindurl): Ignore everything inside <head>...</head>.
12089         (ftp_index): Use fileinfo/urlinfo.
12090
12091         * ftp-unix.c (ftp_parse_ls): New function.
12092         (symperms): New function.
12093
12094         * ftp.c (ftp_1fl_loop): New function, to handle 1-file loops.
12095
12096         * retr.c (retrieve_url): Added FTP support.
12097
12098 1996-06-23  Hrvoje Niksic  <hniksic@srce.hr>
12099
12100         * geturl.h: Removed NOTFTP2HTML enum.
12101         Added DO_LOGIN, DO_CWD and DO_LIST. LIST_ONLY is obsolete.
12102
12103         * ftp.c (getftp): Resynched with urlinfo.
12104         (getftp): Removed HMTL-ization of index.html from getftp.
12105
12106         * version.c: 1.4b6 "released".
12107
12108         * options.h (options): New struct, to keep options in.
12109
12110         * http.c (http_loop,gethttp): Synched with proxy.
12111
12112         * retr.c (retrieve_url): Implemented proxy retrieval.
12113
12114         * main.c (main): Use retrieve_from_file.
12115
12116 1996-06-22  Hrvoje Niksic  <hniksic@srce.hr>
12117
12118         * retr.c (retrieve_from_file): New function.
12119
12120         * url.c (parseurl): Modified to return URLOK if all OK. Protocol
12121         can be found in u->proto.
12122
12123         * ftp.c (ftp_response): Fixed to accept multi-line responses as
12124         per RFC 959.
12125
12126         * recr.c (recursive_retrieve): Take newloc from retrieve_url.
12127
12128         * url.c (mymkdir): Removed the file of the same name, if one
12129         exists.
12130         (isfile): New function.
12131         (mkstruct): Fixed the '/' glitches.
12132         (path_simplify): Hacked to treat something/.. correctly.
12133
12134 1996-06-21  Hrvoje Niksic  <hniksic@srce.hr>
12135
12136         * http.c (gethttp): Close the socket after error in headers.
12137         (http_loop): HEOF no longer a fatal header.
12138
12139         * loop.c (retrieve_url): When dt is NULL, do not modify it. This
12140         simplifies the syntax of calling retrieve_url.
12141
12142         * recr.c (recursive_retrieve): Modified to use get_urls_html.
12143
12144         * url.c (get_urls_file): New function.
12145         (get_urls_html): New function.
12146
12147         * recr.c (recursive_retrieve): Patched up to conform to the
12148         standards.
12149
12150         * http.c (gethttp): Synched with the rest...
12151         (gethttp): Treat only CONREFUSED specially, with connection
12152         errors.
12153
12154         * init.c,geturl.1,http.c (http_loop): Removed kill_error.
12155
12156 1996-06-20  Hrvoje Niksic  <hniksic@srce.hr>
12157
12158         * http.c (http_loop): New function.
12159
12160         * loop.c: Removed *lots* of stuff from retrieve_url.
12161
12162         * url.c (parseurl): Changed to work with urlinfo. Integrated
12163         username finding and path parsing.
12164         (newurl): New function.
12165         (freeurl): New function.
12166         (mkstruct): Removed the old bogosities, made it urlinfo-compliant.
12167         (url_filename): Likewise.
12168         (path_simplify): Accept relative paths too.
12169         (opt_url): Made urlinfo-compliant, removed bogosities.
12170         (path_simplify): Expanded to accept relative paths.
12171         (str_url): A replacement for hide_url
12172         (decode_string): Fixed a bug that caused malfunctioning when
12173         encountering an illegal %.. combination.
12174         (opt_url): Removed the argument. Dot-optimizations are now default.
12175
12176         * nmalloc.c (strdupdelim): New function.
12177
12178         * url.h: Added the urlinfo structure
12179
12180 1996-06-19  Hrvoje Niksic  <hniksic@srce.hr>
12181
12182         * url.c (hide_url): Thrown out the protocol assertion. Do not
12183         change the URL if the protocol if not recognized.
12184         (findurl): Put continue instead of break.
12185
12186 1996-06-18  Hrvoje Niksic  <hniksic@srce.hr>
12187
12188         * sample.geturlrc: Changed the defaults to be commented out and
12189         harmless (previous defaults caused pains if copied to
12190         ~/.geturlrc).
12191
12192         * http.c (gethttp): Print the HTTP request in debug mode.
12193
12194         * connect.c (iread): Added EINTR check loop to select-ing
12195         too. EINTR is now correctly handled with select().
12196
12197         * TODO: new file
12198
12199 1996-05-07  Hrvoje Niksic  <hniksic@srce.hr>
12200
12201         * host.c (same_host): Made the function a little bit more
12202         intelligent regarding diversified URL syntaxes.
12203
12204         * url.c (skip_url): Spaces are now skipped after URL:
12205
12206         * Released 1.3.1 with the patch to prevent crashing when sending
12207         NULL to robot* functions and the patch to compile "out of the box"
12208         on AIX.
12209
12210         * recr.c (recursive_retrieve): Added checking whether this_url is
12211         NULL when calling the robot functions.
12212
12213         * ChangeLog: New file.