]> sjero.net Git - wget/blob - src/ChangeLog
Copy build_info.c.in only if we are working in a VPATH.
[wget] / src / ChangeLog
1 2010-05-07  Giuseppe Scrivano  <gscrivano@gnu.org>
2
3         * Makefile.am: Copy build_info.c.in only if we are working in a VPATH.
4
5 2010-05-06  Giuseppe Scrivano  <gscrivano@gnu.org>
6
7         * Makefile.am (build_info.c): Generate build_info.c in the builddir,
8         not srcdir.
9
10 2010-05-05  Giuseppe Scrivano  <gscrivano@gnu.org>
11
12         * http.c (gethttp): Give a nicer message on a malformed status line.
13
14 2010-05-04  Giuseppe Scrivano  <gscrivano@gnu.org>
15
16         * http.c (gethttp): Check `resp_status' return code and handle
17         errors.
18
19 2010-05-01  Giuseppe Scrivano <gscrivano@gnu.org>
20
21         * http.c (request_send): Specify 1.1 as HTTP version for requests.
22         (skip_short_body): Accept new parameter `chunked'.  New variable
23         `remaining_chunk_size'.  Handle the chunked transfer encoding.
24         (gethttp): New variable `chunked_transfer_encoding`.  Set `keepalive'
25         by default to true.  Check if the server is using the chunked transfer
26         encoding.
27
28         * retr.h: Define `rb_chunked_transfer_encoding'.
29
30         * retr.c (fd_read_body): New variable `chunked'.  New variable
31         `remaining_chunk_size'.  Handle the chunked transfer encoding.
32
33 2010-03-04  Steven Schubiger  <stsc@member.fsf.org>
34
35         * ftp.c (ftp_loop_internal): Omit input file from being
36         deleted after retrieval.
37
38         * retr.c (input_file_url): New function.
39
40         * retr.h: Add declaration for input_file_url.
41
42 2010-03-02  Steven Schubiger  <stsc@member.fsf.org>
43
44         * retr.c (retrieve_from_file): Improve checking for a URL
45         by invoking url_valid_scheme instead of url_has_scheme.
46
47         * url.c (url_valid_scheme): New function.
48
49         * url.h: Add declaration for url_valid_scheme.
50
51 2010-03-02  Steven Schubiger  <stsc@member.fsf.org>
52
53         * retr.c (retrieve_from_file): Free memory of input file.
54
55 2010-03-01  Steven Schubiger  <stsc@member.fsf.org>
56
57         * retr.c (retrieve_url): Retrieve the local filename from ftp_loop.
58         (retrieve_from_file): Return if there's no input file.
59
60         * ftp.c (ftp_loop_internal): Duplicate the local filename into
61         retrieve_url's scope when a valid reference is being passed.
62         (ftp_loop): Call ftp_loop_internal here with passing a
63         reference to the local filename, elsewhere with NULL.
64
65         * ftp.h: Adjust declaration of ftp_loop.
66
67 2010-01-27  Paul Townsend  <aab@purdue.edu>  (tiny change)
68
69         * retr.c (fd_read_body): Be sure to measure timer when time has
70         elapsed, too, not just when we've made progress.
71
72 2010-01-13  Micah Cowan  <micah@cowan.name>
73
74         * openssl.c: Fixed some mixed declarations-and-code.
75
76 2010-01-09  Micah Cowan  <micah@cowan.name>
77
78         * init.c, main.c, http.c, ftp.c, options.h: Renamed
79         --no-match-server-timestamps to --no-use-server-timestamps, and
80         add it to print_help.
81
82 2010-01-09  David Holman  <holman.david@gmail.com>  (tiny change)
83
84         * init.c, main.c, http.c, ftp.c, options.h: Added support for
85         --no-match-server-timestamps.
86
87 2009-12-03  Peter Rosin  <peda@lysator.liu.se>
88
89         * snprintf.c (dopr): Output %p as unsigned.
90
91 2010-01-09  Jeremy Olexa  <darkside@gentoo.org>  (tiny change)
92
93         * init.c: Deal with systems which provide PATH_MAX in
94         sys/param.h rather than limits.h.
95
96 2009-10-09  Steven Schweda  <sms@antinode.info>
97
98         * utils.c: Added characters " : \ | to the list of normal
99         caret-escaped (ODS5) characters in the char_prop[] table.
100
101 2009-09-22  Arvind Jamuna Dixit  <ardsrk@gmail.com>
102
103         * http.c (extract_param, parse_content_disposition): Support
104         RFC 2231 while parsing Content-Disposition header
105
106 2009-10-24  Petr Pisar  <petr.pisar@atlas.cz>
107
108         * openssl.c: Implement support for (multiple) subjectAltNames in
109         X509 certificates, not just the commonName.
110
111 2009-10-09  Micah Cowan  <micah@cowan.name>
112
113         * main.c: Fix declaration of compiled_features.
114
115         * build_info.c.in: Adapt to new input format. Added a check for
116         large-file support. Replaced the "openssl" and "gnutls"
117         advertisements with a single "ssl/foo" advertisement.
118
119 2009-09-30  Micah Cowan  <micah@cowan.name>
120
121         * sysdep.h: Unconditionally include stdbool.h (gnulib has it for
122         systems that don't supply it.)
123
124         * vms.c: Added functions vms_basename(), used to extract the
125         bare executable name from argv[0], and vms_getpass(), a
126         VMS-specific replacement for GNU getpass().
127
128          vms.c: Added global string constants: compilation_string
129         (NULL), link_string (NULL), and version_string (real).
130
131 2009-09-24  Micah Cowan  <micah@cowan.name>
132
133         * vms.c: Moved from vms/vms.c.
134
135         * sysdep.h: Use proper prototypes for snprintf, vsnprintf (thanks
136         to Steven Schweda).
137
138 2009-09-24  Steven Schweda  <sms@antinode.info>
139
140         * main.c (print_version): Remove VMS-conditional build info
141         string; the new VMS builders use OS_TYPE.
142
143         * ftp.c (getftp): Fix accidental use of target -> targ.
144
145 2009-09-24  Micah Cowan  <micah@cowan.name>
146
147         * host.c (host_errstr): host_errstr should return const char *.
148
149 2009-09-22  Micah Cowan  <micah@cowan.name>
150
151         * Makefile.am (version.c): Explicitly tell Mercurial where the
152         top-source repository should be, so it doesn't accidentally use
153         the repository for a containing directory (for instance, if the
154         user's home directory is managed by a Mercurial repo). Also
155         ensures we find the repository, even if the build directory is
156         outside the source directory.
157
158         * wget.h: define WINDOWS if _WIN32 or __WIN32__ is defined, but
159         not __CYGWIN__.
160
161         * mswindows.c (xsleep): Check for availability of the sleep
162         function, in addition to the usleep function.
163         (get_winsock_error, windows_strerror): Removed (gnulib already
164         supplies this functionality).
165
166         * mswindows.h [NEED_GAI_STRERROR]: define gai_strerror
167         to (gnulib's) strerror, rather than windows_strerror. Removed
168         error macro definitions provided by gnulib.
169         (windows_strerror): Removed (gnulib already supplies this
170         functionality).
171
172         * host.c: Don't declare h_errno when building on Windows.
173
174         * Makefile.am (LIBS): Added @W32LIBS@.
175         (EXTRA_wget_SOURCES): Removed (it's in LIBOBJ now).
176         (version.c): Removed dependency on $(LDADD), since it may include
177         dependencies that are not part of the Wget sources (-lwsock32, for
178         instance).
179
180         * openssl.c (ssl_check_certificate): Avoid reusing the same buffer
181         space for successive quoted arguments. Thanks to Steven Schweda
182         for pointing out the problem.
183
184 2009-09-21  Micah Cowan  <micah@cowan.name>
185
186         * progress.c (update_speed_ring): "the the" -> "the".
187
188         * css-url.c, iri.c, mswindows.c: Removed assert.h inclusion (not
189         using it).
190
191 2009-09-11  Steven Schweda  <sms@antinode.info>
192
193         * utils.c, utils.h (fopen_excl): Make second argument an int,
194         rather than a bool (so it can handle the appropriate VMS version
195         of the flag).
196
197         * main.c (print_version): Don't print LOCALEDIR unless NLS is
198         enabled.
199
200         * http.c (gethttp): Pass FOPEN_BIN_FLAG, instead of true.
201
202         * ftp.c (ftp_retrieve_glob): Cast strcmp to assign to cmp, for a
203         silly HP build environment.
204
205 2009-09-08  Steven Schubiger  <stsc@member.fsf.org>
206
207         * main.c, init.c: Mark the --preserve-permissions and
208         --html-extension option as deprecated.
209
210 2009-09-06  Micah Cowan  <micah@cowan.name>
211
212         * ftp.c (getftp, ftp_loop_internal): Separate "len" input/output
213         parameter (with different meanings for input and output), into two
214         separate parameters, one input (passed_expected_bytes) and one
215         output (qtyread). Fixes bug #26870.
216
217 2009-09-05  Steven Schubiger  <stsc@member.fsf.org>
218
219         * retr.h: Declare set_local_file() to avoid build warnings.
220
221 2009-09-05  Gisle Vanem  <gvanem@broadpark.no>
222
223         * connect.c, init.c, main.c, openssl.c, options.h:  Replace
224         "ifdef MSDOS" with "ifdef USE_WATT32" since DOS-targets in fact
225         use the Watt-32 tcp/ip stack.
226
227 2009-09-04  Micah Cowan  <micah@cowan.name>
228
229         * Makefile.am: Move build_info.c to wget_SOURCES from
230         nodist_wget_SOURCES, reduce dependencies, and invoke build_info.pl
231         in its new home, $(top_srcdir)/build-aux.
232
233 2009-09-03  Micah Cowan  <micah@cowan.name>
234
235         * ftp-ls.c (ftp_parse_vms_ls): Replace use of localtime_r with
236         localtime, as not all platforms have localtime_r.
237
238         * Makefile.am (wget_SOURCES): Rearranged some of the file order,
239         so .c files and .h files are apart. Added gettext.h, so that it
240         shows up in the dist.
241
242 2009-09-02  Micah Cowan  <micah@cowan.name>
243
244         * gettext.h: Refreshed from gettext 0.17.
245
246         * test.c: Added definition of program_name variable, required by
247         lib/error.c (libgnu.a). Doesn't cause problems until you try to
248         build on a non-GNU system...
249
250         * build_info.c.in: Removed useless "+gettext" feature ad.
251
252 2009-08-29  Steven Schubiger  <stsc@member.fsf.org>
253
254         * convert.c (local_quote_string): Percent-encode semicolons
255         in local file strings.
256
257 2009-08-27  Micah Cowan  <micah@cowan.name>
258
259         * wget.h (uerr_t): added new VERIFCERTERR code for SSL certificate
260         problems. Marked exit codes that are defined but never used (at
261         least, the ones I could find).
262
263         * retr.c, retr.h (retrieve_url): Added a new boolean argument to
264         determine whether an exit status should be recorded.
265         (retrieve_from_file): Adjust to new retrieve_url signature.
266
267         * res.c (res_retrieve_file): Don't have retrieve_url record an
268         exit status for robots.txt.
269
270         * recur.c (retrieve_tree): Adjust to new retrieve_url signature.
271
272         * main.c (main): Use the exit status stored by retrieve_url.
273
274         * http.c (gethttp): Distinguish certificate verification problems
275         from SSL connection issues.
276         (http_loop): Handle newly-created VERIFCERTERR error code.
277
278         * exits.c, exits.h: Newly added.
279
280         * Makefile.am (wget_SOURCES): Add exits.c and exits.h.
281
282 2009-08-27  Micah Cowan  <micah@cowan.name>
283
284         * http.c (gethttp): Make sure Wget heeds cookies when they
285         are sent with a 401 response; or any other sort of response for
286         that matter (#26775).
287
288 2009-08-19  Micah Cowan  <micah@cowan.name>
289
290         * openssl.c (ssl_check_certificate): Only warn about an attack if
291         the hostname would otherwise have matched. Also some formatting
292         cleanup.
293
294 2009-08-19  Joao Ferreira  <joao@joaoff.com>
295
296         * openssl.c (ssl_check_certificate): Detect embedded NUL
297         characters in the SSL certificate common name.
298
299 2009-08-17  Tony Lewis  <tlewis@exelana.com>
300
301         * http.c (gethttp): Ensure that we parse Content-Length before we
302         attempt to refer to its value. Without this fix, NTLM support was
303         completely buggered. #27192
304
305 2009-08-09  Michael Baeuerle  <michael.baeuerle@gmx.net>
306
307         * ftp.c: #include <strings.h> for strcasecmp.
308
309 2009-07-28  Micah Cowan  <micah@cowan.name>
310
311         * main.c (option_data): Rename --html-extension to
312         --adjust-extension.
313         (print_help): Ditto.
314
315         * options.h (struct option): Rename html_extension to
316         adjust_extension.
317         * http.c (gethttp): Ditto.
318         * convert.c (local_quote_string): Ditto.
319
320         * init.c (commands): Add "adjustextension", and reflect rename
321         change for opt.adjust_extension, for both "adjustextension" and
322         "htmlextension".
323
324 2009-07-27  Micah Cowan  <micah@cowan.name>
325
326         * options.h (struct options): Added restrict_files_nonascii
327         boolean field.
328
329         * url.c (FILE_CHAR_TEST): Add check for chars outside the ASCII
330         range.
331
332         * init.c (defaults): Add restrict_files_nonascii to initialization.
333         (cmd_spec_restrict_file_names): Allow parsing of "ascii" keyword.
334
335 2009-07-27  Marcel Telka  <marcel@telka.sk>
336
337         * iri.c (do_conversion): Typo: invalide -> invalid
338
339 2009-07-27  Petr Pisar  <petr.pisar@atlas.cz>
340
341         * main.c (print_help): Fixed a couple typos.
342
343 2009-07-26  Micah Cowan  <micah@cowan.name>
344
345         * main.c (option_data): Rename --locale option to --local-encoding
346         (print_help): Document --no-iri, --local-encoding, and
347         --remote-encoding, within usage message. Remove defunct
348         --preserve-permissions.
349
350 2009-07-23  Micah Cowan  <micah@cowan.name>
351
352         * progress.c (get_eta): Change "Translation note" in comment to
353         "TRANSLATORS", so it actually appears in wget.pot.
354
355 2009-07-06  Micah Cowan  <micah@cowan.name>
356
357         * main.c (print_help): Improve documentation of --base.
358
359 2009-07-05  Micah Cowan  <micah@cowan.name>
360
361         * html-url.c (tag_handle_meta): Handle meta name="robots"
362         properly: deal with whitespace, commas after...
363
364         * netrc.c (parse_netrc): Rename local-scope variable "quote" to
365         "qmark", to avoid conflict with the function name.
366
367 2009-07-05  Petr Pisar  <petr.pisar@atlas.cz>
368
369         * main.c (print_version): Mark initial line for translation, along
370         with (env), (user), and (system). Change copyright year to 2009.
371
372         * http.c (http_loop): Space after colon.
373
374         * gnutls.c (ssl_check_certificate): Use quote function, rather
375         than explicit quotes.
376
377 2009-07-05  Micah Cowan  <micah@cowan.name>
378
379         * Makefile.am (version.c): Add dependency on configure.ac.
380
381         * iri.c: Mark some strings for translation.
382
383 2009-07-04  Steven Schweda  <sms@antinode.info>
384
385         * wget.h (ORIG_SFX): Macro added, to supply an alternative "_orig"
386         suffix on VMS.
387
388         * connect.c, host.c, host.h, main.c: Include "vms_ip.h" rather
389         than <netdb.h> on VMS systems.
390
391         * convert.c (write_backup_file): Use "_orig" rather than ".orig"
392         on VMS.
393
394         * ftp-basic.c (ftp_list): Don't use LIST -a on VMS servers.
395
396         * ftp.c [__VMS]: Include "vms.h"
397         * ftp.c (getftp): Disable some unhelpful "for VMS" code. Pass the
398         OS type to ftp_list.
399         (getftp) [__VMS]: Alter the filename as required, and invoke fopen
400         with extra optional arguments.
401         (ftp_retrieve_list): Set permissions before setting the times.
402
403         * ftp-ls.c [__VMS]: Various improvements.
404
405         * http.c (SET_USER_AGENT): Added. Include operating-system info in
406         the User-Agent header.
407         (gethttp): Use ORIG_SFX macro.
408         (gethttp) [__VMS]: invoke fopen with extra arguments to
409         communicate file type.
410         (http_loop): Add cast to time_t.
411
412         * init.c (wgetrc_user_file_name) [__VMS]: Adjustments for where to
413         find the .wgetrc.
414
415         * log.c: Adjustments to improve handling of log files on VMS.
416
417         * main.c [__VMS]: Added --ftp-stmlf option (and associated
418         documentation). Adjust description of backup-suffixes, as they now
419         differ for VMS.
420         (print_help, print_version): Include OS type in version
421         information.
422         (main) [__VMS]: Invoke fopen with extra options, to specify file
423         type information.
424
425         * netrc.c (search_netrc) [__VMS]: Fix .netrc-finding.
426
427         * openssl.c, openssl.h (ssl_connect_wget): Renamed from ssl_connect.
428
429         * options.h (struct options): Add ftp_stmlf field.
430
431         * retr.c (write_data) [__VMS]: Avoid fflush.
432
433         * url.c [__VMS]: Include vms.h.
434         * url.c (url_file_name) [__VMS]: Handle naming as required for VMS.
435
436         * utils.c [__VMS]: Include vms.h. Various added facilities for VMS
437         needs.
438
439 2009-07-04  Micah Cowan  <micah@cowan.name>
440
441         * main.c (print_version): Allow localization of the version-info
442         labels, eschew attempts at alignment (which is complicated when
443         handling translated strings), and avoid using printf() with
444         variable-stored format strings that lack conversion
445         specifications.
446         (format_and_print_line): For similar reasons, don't calculate
447         line-continuation tabulation based on the number of bytes in a
448         string.
449
450 2009-07-04  Steven Schubiger  <stsc@member.fsf.org>
451
452         * url.c (url_parse): If an URL scheme is invalid, distinguish
453         between an unsupported or missing scheme.
454
455         * url.c: Add a "missing scheme" entry to parse_errors.
456
457 2009-07-03  Micah Cowan  <micah@cowan.name>
458
459         * iri.h (iri_dup): Provide macro definition for when IRIs are
460         disabled.
461
462         * Makefile.am (LIBS): Added @LIBICONV@.
463         (wget_SOURCES): Added iri.h.
464         (EXTRA_wget_SOURCES): Added iri.c, so it gets packaged even if IRI
465         support was disabled.
466
467 2009-07-02  Micah Cowan  <micah@cowan.name>
468
469         * recur.c (url_enqueue): Quote enqueue/dequeue debug messages.
470
471         * html-url.c (append_url): Change "merge()" quoting style from
472         locale_quoting_style to escape_quoting_style.
473
474 2009-07-01  Micah Cowan  <micah@cowan.name>
475
476         * retr.c (retrieve_url): Use the existing "redirect" label,
477         instead of superfluous "second_try". Removed no-longer-accurate
478         debug statement. Use the "newloc" parameter to store the fallback
479         URL, when IRI version was rejected.
480
481         * recur.c (retrieve_tree): Always use the parsed URL for tracking
482         the Referer, since that's the one we actually requested (if
483         there's a difference in terms of percent-encodings and such).
484
485 2009-07-01  Steven Schubiger  <stsc@member.fsf.org>
486
487         * Makefile.am: Add a rule to generate build_info.c and list
488         the build_info.c.in file in EXTRA_DIST. Adjust elsewhere
489         where needed.
490
491         * build_info.c: Remove this static source file.
492
493         * build_info.c.in: Data for generation of build_info.c.
494
495 2009-06-29  Micah Cowan  <micah@cowan.name>
496
497         * html-url.c (append_url): Quote some more arguments that might
498         contain characters that are inappropriate to display for the
499         current locale.
500
501         * retr.c (retrieve_from_file): Be sure to pass iri information
502         when parsing an input-fle url, and be sure to hand a clean iri
503         struct, off to retrieve_tree and retrieve_url.
504
505         * iri.c, iri.h (iri_dup): Added.
506
507         * retr.c (retrieve_url): Re-parse for IRI fallback.
508
509         * main.c (main): Set up iri before the url_parse invocation (so we
510         can use it).
511
512 2009-06-20  Jay Krell  <jay.krell@cornell.edu>
513
514         * sysdep.h (_ALL_SOURCE): (small change) Define the _ALL_SOURCE
515         macro on INTERIX systems. (I switched the location from ftp.c to
516         sysdep.h --mjc)
517
518 2009-06-15  Micah Cowan  <micah@cowan.name>
519
520         * ftp.c (getftp): If we can't accept the connection, return
521         CONERROR, not whatever the contents of err happens to be. Fixes
522         bug #25015.
523
524         * retr.c (fd_read_body): Make both args to progress_create
525         consistent, resulting in an accurate progress display. Fixes bug
526         #24948.
527
528 2009-06-14  Micah Cowan  <micah@cowan.name>
529
530         * Makefile.am (wget_SOURCES): css-tokens.h needs to ship with
531         dist, too.
532
533 2009-06-13  Micah Cowan  <micah@cowan.name>
534
535         * init.c: Rename setval_internal_wrapper to setval_internal_tilde,
536         ensure we don't "replace" the tilde unless it's actually
537         present. Clean up some minor GNU style issues.
538
539 2009-06-13  Julien Pichon  <julienpichon7@gmail.com>
540
541         * init.c: Handle tilde-expansion in wgetrc commands, without
542         resorting to setting/unsetting globals to change behavior in one
543         call location.
544
545 2009-06-12  Micah Cowan  <micah@cowan.name>
546
547         * host.c: Include <sys/types.h> before <sys/socket.h>. Not
548         required by POSIX any more, but some older systems (such as
549         FreeBSD 4.1) still need it, and it doesn't seem like it could
550         hurt...
551
552         * build_info.c (library): Handle "https" as a feature in its own
553         right, apart from "gnutls" and "openssl".
554
555         * host.c: Declare h_errno if no declaration is provided. Idea
556         thanks to Maciej W. Rozycki.
557
558 2009-06-11  Xin Zou  <zouxin2008@gmail.com>
559
560         * http.c (gethttp): Fix some memory leaks.
561
562 2009-06-11  Micah Cowan  <micah@cowan.name>
563
564         * http.c (http_atotm): Handle potential for setlocale's return
565         value to be static storage. Thanks to Benjamin Wolsey
566         <bwy@benjaminwolsey.de>.
567
568         * sysdep.h: Need NAMESPACE_TWEAKS on non-Linux glibc-based
569         systems, too. Thanks to Robert Millan.
570
571 2009-05-28  Steven Schubiger  <stsc@member.fsf.org>
572
573         * ftp.c (ftp_get_listing): Update the "listing file"
574         string after calling ftp_loop_internal().
575
576 2009-05-27  Steven Schubiger  <stsc@member.fsf.org>
577
578         * ftp.c (ftp_get_listing): Duplicate the "listing file"
579         string to avoid memory corruption when FOPEN_EXCL_ERR is
580         encountered.
581
582 2009-05-17  Steven Schubiger  <stsc@member.fsf.org>
583
584         * progress.c (eta_to_human_short): Fix the remaining hours
585         to be displayed. Spotted by Tadeu Martins (#26411).
586
587 2009-04-24  Micah Cowan  <micah@cowan.name>
588
589         * hash.c: Change stdint.h inclusion to use HAVE_STDINT_H, not C99
590         check.
591
592         * connect.c: stdint.h inclusion added.
593
594         Thanks to Markus Duft <mduft@gentoo.org> for a similar patch.
595
596 2009-04-20  Micah Cowan  <micah@cowan.name>
597
598         * Makefile.am (version.c): Fix unportable use of "echo -n".
599
600 2009-04-13  Steven Schubiger  <stsc@member.fsf.org>
601
602         * ftp.c (ftp_retrieve_list): Move the duplicated code that
603         determines the local file to a function.
604
605         * http.c (http_loop): Likewise.
606
607         * retr.c (set_local_file): New function.
608
609 2009-04-11  Steven Schubiger  <stsc@member.fsf.org>
610
611         * init.c (initialize): Run a custom SYSTEM_WGETRC when
612         provided as an environment variable.
613
614 2009-02-27  Gisle Vanem  <gvanem@broadpark.no>
615
616         * main.c (main): "freopen (NULL,.." causes an assertion in MSVC
617         debug-mode.  I.e. NULL isn't legal. But the "CONOUT$" device works
618         fine.
619
620 2009-02-27  Steven Schubiger  <stsc@member.fsf.org>
621
622         * ftp.c (ftp_loop_internal): Don't claim for FTP retrievals
623         when writing to standard output either that the document
624         has been saved. Addresses bug #20520 again.
625
626 2009-02-21  Steven Schubiger  <stsc@member.fsf.org>
627
628         * http.c (http_loop): When a document is written to
629         standard output, don't claim it has been saved to a file.
630         Addresses bug #20520.
631
632 2009-02-18  Steven Schubiger  <stsc@members.fsf.org>
633
634         * recur.h: Remove the dangling declaration for recursive_cleanup().
635
636 2009-02-01  Gerardo E. Gidoni  <gerel@gnu.org>
637
638         * main.c, recur.c, recur.h, res.c, retr.c, retr.h: restructured code to
639         avoid multiple 'url_parse' calls.
640
641 2008-11-13  Micah Cowan  <micah@cowan.name>
642
643         * http.c (gethttp): Don't do anything when content-length >= our
644         requested range.
645
646 2008-11-27  Saint Xavier  <wget@sxav.eu>
647
648         * http.c (gethttp): Move authentication code before filename
649         allocation avoiding fallbacking on default filename because
650         "Content-Disposition" header wasn't present before authentcation
651         has been completed. Fixes bug #24862.
652
653 2008-11-16  Steven Schubiger  <stsc@members.fsf.org>
654
655         * main.c: Declare and initialize the numurls counter.
656
657         * ftp.c, http.c: Make the counter visible here and use it.
658
659         * options.h: Remove old declaration from options struct.
660
661 2008-11-15  Steven Schubiger  <stsc@members.fsf.org>
662
663         * init.c (defaults): Set default waitretry value.
664
665 2008-11-14  Steven Schubiger  <stsc@members.fsf.org>
666
667         * main.c (format_and_print_line): Use a custom format
668         string for printing leading spaces.
669
670 2008-11-12  Micah Cowan  <micah@cowan.name>
671
672         * ftp-ls.c (ftp_index): HTML-escape dir name in title, h1, a:href.
673
674 2008-11-12  Alexander Belopolsky  <alexander.belopolsky@gmail.com>
675
676         * url.c, url.h (url_escape_unsafe_and_reserved): Added.
677
678         * ftp-ls.c (ftp_index): URL-escape, rather than HTML-escape, the
679         filename appearing in the link.
680
681 2008-11-12  Steven Schubiger  <stsc@members.fsf.org>
682
683         * main.c (print_version): Hand the relevant
684         xstrdup/xfree calls back to format_and_print_line().
685
686 2008-11-11  Steven Schubiger  <stsc@members.fsf.org>
687
688         * main.c (format_and_print_line): Move both the memory
689         allocating and freeing bits upwards to print_version().
690
691 2008-11-10  Saint Xavier  <wget@sxav.eu>
692
693         * http.c: Make --auth-no-challenge works with user:pass@ in URLs.
694
695 2008-11-05  Micah Cowan  <micah@cowan.name>
696
697         * ftp.c (print_length): Should print humanized "size remaining"
698         only when it's at least 1k.
699
700 2008-10-31  Micah Cowan  <micah@cowan.name>
701
702         * main.c (print_version): Add information about the mailing list.
703
704 2008-10-31  Alexander Drozdov  <dzal_mail@mtu-net.ru>
705
706         * retr.c (fd_read_hunk): Make assert deal with maxsize == 0.
707
708         * ftp-ls.c (clean_line): Prevent underflow on empty lines.
709
710 2008-10-26  Gisle Vanem  <gvanem@broadpark.no>
711
712         * main.c (format_and_print_line): Put variables on top of
713         blocks (not all compilers are C99). Add an extra '\n' if
714         SYSTEM_WGETRC isn't defined and printed.
715
716 2008-09-09  Gisle Vanem  <gvanem@broadpark.no>
717
718         * url.c (url_error): Use aprintf, not asprintf.
719
720 2008-09-09  Micah Cowan  <micah@cowan.name>
721
722         * init.c (home_dir): Save the calculated value for home,
723         to avoid duplicated work on repeated calls.
724         (wgetrc_file_name) [WINDOWS]: Define and initialize home var.
725
726         * build_info.c, main.c: Remove unnecessary extern vars
727         system_wgetrc and locale_dir.
728
729         * main.c: Define program_name for lib/error.c.
730
731 2008-09-02  Gisle Vanem  <gvanem@broadpark.no>
732
733         * mswindows.h: Must ensure <stdio.h> is included before
734         we redefine ?vsnprintf().
735
736 2008-08-08  Steven Schubiger  <stsc@members.fsf.org>
737
738         * main.c, utils.h: Removed some dead conditional DEBUG_MALLOC code.
739
740 2008-08-03  Micah Cowan  <micah@cowan.name>
741
742         * main.c (print_help): Added --default-page.
743
744 2008-08-01  Joao Ferreira  <joao@joaoff.com>
745
746         * init.c, main.c, options.h, url.c: Added option --default-page
747         to support alternative default names for index.html
748
749 2008-08-03  Micah Cowan  <micah@cowan.name>
750
751         * build_info.c, css-url.c: #include wget.h, not config.h.
752
753 2008-08-03  Steven Schubiger  <stsc@members.fsf.org>
754
755         * url.c, url.h (url_error): Better messages for unsupported
756         schemes, especially https.
757
758         * html-url.c, recur.c, retr.c: Adjust to new url_error
759         invocation, and free result.
760
761 2008-07-17  Steven Schubiger  <stsc@members.fsf.org>
762
763         * retr.c (retrieve_from_file): When given an URL as input file,
764         use it as baseref if none was specified and treat the input file
765         as HTML if its content type is text/html.
766
767         * init.c (cleanup): Free the memory associated with the base
768         option (when DEBUG_MALLOC is defined).
769
770 2008-07-02  Xavier Saint  <wget@sxav.eu>
771
772         * iri.c, iri.h  : New function idn_decode() to decode ASCII
773         encoded hostname to the locale.
774
775         * host.c : Show hostname to be resolved both in locale and
776         ASCII encoded.
777
778 2008-06-28  Steven Schubiger  <stsc@members.fsf.org>
779
780         * retr.c (retrieve_from_file): Allow for reading the links from
781         an external file (HTTP/FTP).
782
783 2008-06-26  Xavier Saint  <wget@sxav.eu>
784
785         * iri.c, iri.h : New functions locale_to_utf8() and
786         idn_encode() adding basic capabilities of IRI/IDN.
787
788         * url.c : Convert URLs from locale to UTF-8 allowing a basic
789         support of IRI/IDN
790
791 2008-06-25  Steven Schubiger  <stsc@members.fsf.org>
792
793         * ftp.c (getftp): When spidering a FTP URL, emit a diagnostic
794         message if the remote file exists.
795
796 2008-06-24  Steven Schubiger  <stsc@members.fsf.org>
797
798         * http.c (http_loop): Replace escnonprint() occurence with
799         a quotearg_style() call.
800
801 2008-06-24  Micah Cowan  <micah@cowan.name>
802
803         * ftp-ls.c (ftp_index): Don't assume time_t* is compatible with
804         long*. Fixes crash on Windows, and probably other systems.
805
806 2008-06-22  Steven Schubiger  <stsc@members.fsf.org>
807
808         * http.c: Explicitly initialize and deallocate the message
809         string used by the -nv --spider functionality.
810
811 2008-06-22  Steven Schubiger  <schubiger@gmail.com>
812
813         * http.c: Make -nv --spider include the file's name when it
814         exists.
815
816 2008-06-22  Micah Cowan  <micah@cowan.name>
817
818         * Makefile.am (version.c): Fixed version string invocation so it
819         once again can't result in unterminated strings, made all the
820         string vars pointers-to-const, and moved line lengths
821         below 80 (in Makefile.am, not in version.c).
822
823 2008-06-19  Xavier Saint  <wget@sxav.eu>
824
825         * iri.c, iri.h : New function check_encoding_name() as
826         a preliminary encoding name check.
827
828         * main.c, iri.c : Make use of check_encoding_name().
829
830 2008-06-19  Xavier Saint  <wget@sxav.eu>
831
832         * iri.c : Include missing stringprep.h file and add a
833         cast.
834
835         * init.c : set a default initial value for opt.enable_iri,
836         opt.locale and opt.encoding_remote.
837
838 2008-06-19  Xavier Saint  <wget@sxav.eu>
839
840         * iri.c, iri.h : Add a new function find_locale() to find
841         out the local system encoding.
842
843         * main.c : Make use of find_locale().
844
845 2008-06-19  Xavier Saint  <wget@sxav.eu>
846
847         * html-url.c : Add "content-type" meta tag parsing for
848         retrieving page encoding.
849
850         * iri.h : Make no-op version of parse_charset() return
851         NULL.
852
853 2008-06-16  Micah Cowan  <micah@cowan.name>
854
855         * http.c (http_loop): When hstat.len is higher than the
856         successfully completed content's length, but it's because we
857         _set_ it that way, don't abort.
858
859 2008-06-14  Xavier Saint  <wget@sxav.eu>
860
861         * iri.c, iri.h : New files.
862
863         * Makefile.am : Add files iri.h and conditional iri.c.
864
865         * build_info.c : Add compiled feature "iri".
866
867         * http.c : include iri.h and parse charset from Content-Type
868         header.
869
870         * init.c, main.c, options.h : if an options isn't supported
871         at compiled time, don't get rid off it and show a dummy
872         message instead if they are used.
873
874 2008-06-13  Micah Cowan  <micah@cowan.name>
875
876         * build_info.c: ENABLE_NTLM, not HAVE_NTLM; distinguish OpenSSL
877         from "ssl".
878
879 2008-06-13  Madhusudan Hosaagrahara <com.gmail.hrmadhu>
880
881         * Makefile.am, main.c, init.c, init.h, build_info.c: Adds build
882         information to the --version command line option. Fixes bug
883         #20636.
884
885 2008-06-01  Micah Cowan  <micah@cowan.name>
886
887         * main.c [WINDOWS]: Reopen stdout in binary mode, when -O - is
888         given.
889
890 2008-05-31 Micah Cowan  <micah@cowan.name>
891
892         * html-url.c, http.c: Avoid casts in a couple spots.
893
894 2008-05-30 Henri Häkkinen  <henux@users.sourceforge.net>
895
896         * cookies.c, ftp-basic.c, hash.c, html-url.c, http-ntlm.c, http.c,
897         init.c, log.c, main.c, progress.c, ptimer.c, spider.c, url.c,
898         utils.c: Minor changes to silence warnings when using -Wall.
899
900 2008-05-26  Steven Schubiger  <schubiger@gmail.com>
901
902         * ftp.c (getftp): Replace last remaining invocation of escnonprint
903         with gnulib quote.
904
905 2008-05-19  Micah Cowan  <micah@cowan.name>
906
907         * main.c (main): Password prompt should be done only once (not
908         once per argument), and should be done prior to the background
909         fork.
910
911 2008-05-17  Steven Schubiger  <schubiger@gmail.com>
912
913         * init.c (defaults): Set the preferred IP family to `none' by
914         default.
915
916 2008-05-17  Kenny Parnell  <k.parnell@gmail.com>
917
918         (cmd_spec_prefer_family): Initialize prefer_family to prefer_none.
919
920 2008-05-17  Micah Cowan  <micah@cowan.name>
921
922         * main.c (main): Handle Ctrl-D on command-line.
923
924 2008-05-15  Steven Schubiger  <schubiger@gmail.com>
925
926         * ftp.c (getftp): Verify that the file actually exists in FTP, by
927         checking it against the listing.
928
929 2008-05-15  Micah Cowan  <micah@cowan.name>
930
931         * main.c (prompt_for_password): Use the quote module.
932
933 2008-05-14  Micah Cowan  <micah@cowan.name>
934
935         * ftp.c (ftp_retrieve_list): Symlinks and other filenames
936         should be fully quoted.
937
938 2008-05-12  Micah Cowan  <micah@cowan.name>
939
940         * main.c (main): Downgrade "-N with -O" to a warning, and switch
941         it off to avoid confusing messages.
942
943 2008-04-30  Micah Cowan  <micah@cowan.name>
944
945         * progress.c (create_image): Fix glitch where too many spaces are
946         printed on lines that don't display the ETA, in multibyte
947         locales.
948
949 2008-04-30  Steven Schubiger  <stsc@members.fsf.org>
950
951         * main.c (main): New code that handles prompting for passwords
952         when specified explicitly via command-line option (using gnulib's
953         getpass-gnu module).
954         (main): Include the getpass header.
955
956         * init.c: Add "ask-password" to the list of recognized commands.
957
958         * options.h: Add an according boolean member to the options
959         struct.
960
961         * sysdep.h: Comment the defines __EXTENSIONS__ and _GNU_SOURCE
962         out, because they're now defined independently by config.h.
963
964 2008-04-27  Rabin Vincent  <rabin@rab.in>
965
966         * http.c (http_loop): Fix return for the case where we don't
967         download a file because of -nc.
968
969 2008-04-27  Micah Cowan  <micah@cowan.name>
970
971         * url.c (path_simplify): Go back to allowing leading ".." in
972         paths, but only for FTP URLs.
973         (test_path_simplify): Add scheme-specificness to tests, adapt for
974         mu_run_test.
975
976         * test.c (all_tests): Add test_path_simplify.
977
978         * main.c (main): Downgrade -r, -p with -O to a warning rather than
979         an error; elaborate just a bit more for other -O combination
980         cases.
981
982 2008-04-26  Micah Cowan  <micah@cowan.name>
983
984         * http.c (gethttp): Move proxy CONNECT handling to below the
985         retry_with_auth label, to deal with properly reconnecting to
986         proxies when we need to authenticate.
987
988 2008-04-25  Micah Cowan  <micah@cowan.name>
989
990         * Makefile.am: -I foo -> -Ifoo.
991
992 2008-04-24  Micah Cowan  <micah@cowan.name>
993
994         * main.c: Revised usage description of --convert-links to apply
995         to CSS as well as to HTML.
996
997 2008-04-23  Micah Cowan  <micah@cowan.name>
998
999         * utils.c (test_dir_matches_p): Added a test for the case
1000         described in issue #20518.
1001
1002 2008-04-22  Micah Cowan  <micah@cowan.name>
1003
1004         * Makefile.am, css.lex, css.l: Renamed css.lex to css.l.
1005         * recur.c (retrieve_tree): Fix typo to allow text/css files to
1006         be parsed.
1007
1008 2008-04-22  Ted Mielczarek  <ted.mielczarek@gmail.com>
1009
1010         * css.lex, css-url.c, css-url.h: Added to implement support for
1011         parsing CSS in Wget.
1012         * convert.c: Convert links in CSS files, too.
1013         * convert.h (convert_options): Added for options link_css_p,
1014         link_expect_css.
1015         * convert.h: Added prototype for new register_css function.
1016         * html-parse.c: Added support for parsing element content, in
1017         addition to tag starts and ends.
1018         * html-parse.h (taginfo): Added delimiter fields for element
1019         content.
1020         * html-url.h: Added.
1021         * html-url.c (append_url): No longer internal-linkage only. Now
1022         takes position and size as explicit parameters.
1023         * html-url.c: Use new html-url.h header, add support for
1024         handling of "style" HTML attributes. Mark URIs obtained from
1025         link tags with rel="stylesheet" with link_expect_css. Adapt
1026         uses of append_url to supply the newly-added parameters for
1027         position and size.
1028         * http.c: Add detection for when the content-type is text/css;
1029         and ensure that such files have the ".css" filename extension,
1030         when --convert-links is active.
1031         * recur.h: Remove declarations for functions found in
1032         html-url.c (moved to html-url.h).
1033         * recur.c: Add support for culling links from CSS files, too,
1034         and tracking for when we're expecting the file to be CSS (even
1035         when its content type isn't text/css).
1036         * retr.c (retrieve_url): Add registration of CSS files.
1037         * wget.h: Added TEXTCSS to dt flags enum.
1038         * Makefile.am: Added css.lex, css-url.c, css-url.h, html-url.h
1039         to wget_SOURCES.
1040
1041 2008-04-22  Jim Paris  <jim@jtan.com>
1042
1043         * openssl.c (ssl_init): Enable combined certificate/key in
1044         single file (apparent regression from ~1.9). Resolves issue
1045         #22767.
1046
1047 2008-04-22  Steven Schubiger  <schubiger@gmail.com>
1048
1049         * http.c (print_response_line): Changed to make responses always
1050         be logged, even in --quiet mode, if --server-response was
1051         specified. This is to bring http.c's handling of the situation
1052         in line with ftp.c's.
1053
1054 2008-04-22  Pranab Shenoy  <pranab.loosinit.shenoy@gmail.com>
1055
1056         * init.c: Added test_commands_sorted unit test to check is
1057         commands are sorted.  Fixes bug #21245.
1058
1059         * test.c: Added test_commands_sorted to the test suite.
1060
1061 2008-04-22  Rabin Vincent  <rabin@rab.in>
1062
1063         * ftp.c (ftp_get_listing): Only remove .listing if it has been
1064         created.
1065
1066 2008-04-22  Alain Guibert  <alguibert+bts@free.fr>
1067
1068         * test.h (mu_run_test): Move declaration before statements, for
1069         C90 conformance. Fixes bug #22789.
1070
1071 2008-04-22  Mike Frysinger  <vapier@gentoo.org>
1072
1073         * Makefile.am: Move @LIBS@ after other libraries, for better
1074         static-linking support. Fixes bug #22143.
1075
1076 2008-04-16  Steven Schubiger  <schubiger@gmail.com>
1077
1078         * ftp.c: Use Gnulib's quote function for printing filenames and
1079         such.
1080         * connect.c: Likewise.
1081         * convert.c: Likewise.
1082         * cookies.c: Likewise.
1083         * ftp-opie.c: Likewise.
1084         * gnutls.c: Likewise.
1085         * init.c: Likewise.
1086         * log.c: Likewise.
1087         * mswindows.c: Likewise.
1088         * openssl.c: Likewise.
1089         * progress.c: Likewise.
1090         * recur.c: Likewise.
1091         * res.c: Likewise.
1092         * utils.c: Likewise.
1093
1094 2008-04-16  Steven Schubiger  <schubiger@gmail.com>
1095
1096         * sysdep.h: Comment the defines __EXTENSIONS__ and _GNU_SOURCE
1097         out, because they're now defined independently by config.h.
1098
1099 2008-04-14  Steven Schubiger  <schubiger@gmail.com>
1100
1101         * http.c: Use Gnulib's quote function for printing filenames and
1102         such.
1103         * wget.h: #include "quote.h".
1104
1105 2008-04-12  Rabin Vincent  <rabin@rab.in>
1106
1107         * mswindows.c (fake_fork_child): Don't create a logfile for
1108         --background when --quiet is used, but not --server-response.
1109         Fixes bug #20917.
1110
1111         * utils.c (fork_to_background): Likewise.
1112
1113 2008-04-12  Micah Cowan  <micah@cowan.name>
1114
1115         * utils.c (aprintf): Minor formatting changes to Alex's code (80-
1116         column limit, concatenated string literals, avoiding nesting
1117         levels), and removed invocation of free (since we're aborting
1118         anyway).
1119
1120 2008-04-11  Alexander Dergachev  <cy6erbr4in@gmail.com>
1121
1122         * utils.c (aprintf): Now we are setting limits (1 Mb) for text
1123         buffer when we use non-C99 vsnprintf.
1124
1125 2008-04-11  Micah Cowan  <micah@cowan.name>
1126
1127         * ftp.c (getftp, ftp_loop_internal): Don't append to an existing
1128         .listing when --continue is used.  Fixes bug #22825. Thanks to
1129         Rabin Vincent <rabin@rab.in> for pointing the way with a
1130         suggested fix!
1131
1132 2008-04-10  Alexander Dergachev  <cy6erbr4in@gmail.com>
1133
1134         * xmalloc.c, xmalloc.h (memfatal): Now exported; accepts an
1135         "unknown" value for the attempted allocation size.
1136         * utils.c (aprintf): Now calls memfatal, instead of aborting.
1137
1138 2008-03-19  Micah Cowan  <micah@cowan.name>
1139
1140         * utils.c (test_dir_matches_p): More tests related for
1141         dir_matches_p.
1142
1143 2008-03-17  Micah Cowan  <micah@cowan.name>
1144
1145         * connect.c: Include sys/time.h to support use of the select
1146         function on older systems.
1147
1148 2008-02-11  Benno Schulenberg  <bensberg@justemail.net>
1149
1150         * http.c: More accurate and descriptive messages for when a file
1151         won't be retrieved during spider-mode.
1152
1153 2008-02-10  Micah Cowan  <micah@cowan.name>
1154
1155         * http.c: Added existence_checked member to the http_stat
1156         struct.
1157         (gethttp): Mark hs->existence_checked when we've checked whether
1158         a file-to-download exists; so we don't check it again if the
1159         connection gets lost (and potentially pick a new "unique" name).
1160         This fixes bug 22251.
1161         * progress.c (create_image): Add space for an extra column in
1162         the "eta" portion of the progress bar image; to deal with
1163         too-long Czech translation.
1164         * main.c, http.c, init.c: Added --auth-no-challenge option, to
1165         bring back 1.10.2 unsafe auth behavior when needed. This fixes
1166         bug #22242.
1167
1168 2008-02-07  Micah Cowan  <micah@cowan.name>
1169
1170         * progress.c (create_image): Remove assertion on exceeding
1171         screen width, which given the less-than-robust code there, can
1172         be broken by a number of factors (such as large file downloads).
1173
1174 2008-02-06  Micah Cowan  <micah@cowan.name>
1175
1176         * progress.c (countcols): Use strlen() when mbtowc or wcwidth
1177         not available (or not using NLS).
1178         * utils.c: Ensure we use single-byte separators when not doing
1179         NLS progress-bars.
1180         * wget.h: Determine whether to use NLS for progress-bars, based
1181         on whether wcwidth and mbtowc are available.
1182
1183 2008-02-03  Micah Cowan  <micah@cowan.name>
1184
1185         * progress.c (create_image): Use number of characters/columns
1186         consumed, rather than number of bytes, to determine how much of
1187         a line we've used. Fixes assertion errors and field alignment
1188         bugs (#22161, #20481)
1189         (get_eta, count_cols): Added to support the changes for
1190         create_image.
1191         * http.c (http_loop): Put no-clobber logic back into http_loop,
1192         before starting to fetch, for when we're not doing
1193         content-disposition.
1194
1195 2008-01-31  Micah Cowan  <micah@cowan.name>
1196
1197         * http.c (gethttp): Don't derive hs->contlen from possibly
1198         invalid/missing Content-Length; instead, get the appropriate
1199         value from the Content-Range header values.
1200         (parse_content_range): Handle '*' instance-length field.
1201
1202 2008-01-25  Micah Cowan  <micah@cowan.name>
1203
1204         * main.c: Added notes to translators regarding (C), diacritics
1205         in names.
1206         * Makefile.am, cmpt.c, connect.c, connect.h, convert.c,
1207         cookies.c, cookies.h, ftp-basic.c, ftp-ls.c, ftp-opie.c, ftp.c,
1208         ftp.h, gen-md5.c, gen-md5.h, gnutls.c, hash.c, hash.h, host.c,
1209         host.h, html-parse.c, html-parse.h, html-url.c, http-ntlm.c,
1210         http-ntlm.h, http.c, http.h, init.c, init.h, log.c, log.h,
1211         main.c, mswindows.c, mswindows.h, netrc.c, netrc.h, openssl.c,
1212         options.h, progress.c, progress.h, ptimer.c, ptimer.h, recur.c,
1213         recur.h, res.c, res.h, retr.c, retr.h, spider.c, spider.h,
1214         ssl.h, sysdep.h, test.c, test.h, url.c, url.h, utils.c,
1215         utils.h, wget.h, xmalloc.c, xmalloc.h: Updated copyright year.
1216
1217 2007-12-10  Micah Cowan  <micah@cowan.name>
1218
1219         * main.c: The option is --content-disposition, not
1220         --no-content-disposition (at the moment).
1221
1222 2007-12-08  Hrvoje Niksic  <hniksic@xemacs.org>
1223
1224         * ftp.c (ftp_retrieve_glob): Print both arguments of fnmatch in
1225         fnmatch error message.
1226         (ftp_retrieve_glob): Don't match with fnmatch if we're only
1227         supposed to get one file.
1228
1229 2007-12-07  Micah Cowan  <micah@cowan.name>
1230
1231         * Makefile.am: Plug in vars to include stuff from
1232         $(top_srcdir)/md5 when appropriate.
1233
1234 2007-12-05  Micah Cowan  <micah@cowan.name>
1235
1236         * utils.c (subdir_p): Handle the case where d1 is "".
1237         * convert.c (convert_all_links): Don't return without
1238         deallocating timer.
1239
1240 2007-11-28  Micah Cowan  <micah@cowan.name>
1241
1242         * Makefile.am, cmpt.c, connect.c, connect.h, convert.c,
1243         convert.h, cookies.c, cookies.h, ftp-basic.c, ftp-ls.c,
1244         ftp-opie.c, ftp.c, ftp.h, gen-md5.c, gen-md5.h, gnutls.c,
1245         hash.c, hash.h, host.c, host.h, html-parse.c, html-parse.h,
1246         html-url.c, http-ntlm.c, http-ntlm.h, http.c, http.h, init.c,
1247         init.h, log.c, log.h, main.c, mswindows.c, mswindows.h,
1248         netrc.c, netrc.h, openssl.c, options.h, progress.c, progress.h,
1249         ptimer.c, ptimer.h, recur.c, recur.h, res.c, res.h, retr.c,
1250         retr.h, safe-ctype.c, safe-ctype.h, spider.c, spider.h, ssl.h,
1251         sysdep.h, test.c, test.h, url.c, url.h, utils.c, utils.h,
1252         wget.h, xmalloc.c, xmalloc.h: Updated license exception for
1253         OpenSSL, per the SFLC.
1254
1255 2007-10-30  Micah Cowan  <micah@cowan.name>
1256
1257         * main.c (main): Declare argv parameter as char **argv, rather
1258         than char *const *argv. This fixes usage of getopt_long,
1259         regardless of whether getopt_long has a constified argv or not.
1260
1261 2007-10-22  Gisle Vanem  <gvanem@broadpark.no>
1262
1263         * mswindows.c: Move INHIBIT_WRAP macro definition up with wget.h
1264         inclusion.
1265
1266 2007-10-18  Steven Schweda  <sms@antinode.org>
1267
1268         * sysdep.h: #include <stdint.h> as well as <inttypes.h>, to work
1269         around a glitch on Tru64 systems.
1270
1271 2007-10-18  Micah Cowan  <micah@cowan.name>
1272
1273         * Makefile.am: version.c should not be distributed. Removed
1274         config-post.h. Add version.c dependency and gnulib include path
1275         for libunittest.a.
1276         * sysdep.h: Got contents of config-post.h
1277         * config-post.h: Removed.
1278         * wget.h: #include "config.h".
1279         * alloca.c, cmpt.c, connect.c, convert.c, cookies.c,
1280         ftp-basic.c, ftp-ls.c, ftp-opie.c, ftp.c, gen-md5.c, gnutls.c,
1281         hash.c, host.c, html-parse.c, html-url.c, http-ntlm.c, http.c,
1282         init.c, log.c, main.c, mswindows.c, netrc.c, openssl.c,
1283         progress.c, ptimer.c, recur.c, res.c, retr.c, spider.c, url.c,
1284         utils.c, xmalloc.c: Use wget.h at very top, and instead of
1285         config.h.
1286
1287 2007-10-15  Micah Cowan  <micah@cowan.name>
1288
1289         * Makefile.am: Remove intermediary hg-id file generation, make
1290         version.c-generation more portable.
1291
1292 2007-10-14  Micah Cowan  <micah@cowan.name>
1293
1294         * cmpt.c, cookies.c, ftp-basic.c, ftp-ls.c, ftp.c, hash.c,
1295         host.c, html-parse.c, html-url.c, http-ntlm.c, http.c, init.c,
1296         log.c, main.c, netrc.c, openssl.c, res.c, url.c, utils.c,
1297         wget.h: Replace uses of ISSPACE, etc with c_isspace, etc.
1298         * gnu-md5.c, gnu-md5.h: Removed, in deference to gnulib.
1299         * Makefile.am: Removed gnu-md5.h from wget_SOURCES.
1300         * gen-md5.c: Changed #inclusion of gnu-md5.h to md5.h (gnulib's).
1301         * recur.c (download_child_p): Print error if unlink of
1302         robots.txt fails.
1303         * main.c (main): --spider or --delete-after now implies
1304         --no-directories (thanks, Josh Williams).
1305
1306 2007-10-14  Joshua David Williams  <yurimxpxman@gmail.com>
1307
1308         * recur.c (download_child_p): Remove robots.txt if
1309         --delete-after or --spider is on.
1310
1311 2007-10-13  Micah Cowan  <micah@cowan.name>
1312
1313         * Makefile.am: Make version.c depend on Wget dependencies (source
1314         files, plus such things as LIBOBJS so we get things like
1315         http-ntlm.c). Removed getopt.[ch], as we're now using gnulib for
1316         these.
1317
1318 2007-10-10  Micah Cowan  <micah@cowan.name>
1319
1320         * http-ntlm.c: Include openssl/opensslv.h explicitly, instead of
1321         hoping it'll be included by accident in openssl/des.h.
1322
1323 2007-10-09  Gisle Vanem  <gvanem@broadpark.no>
1324
1325         * mswindows.c: 'argc' and 'argv' in 'windows_main()' are no longer
1326         needed.  Hence simply the prototype. Free 'exec_name' at exit.
1327
1328 2007-10-09  Micah Cowan  <micah@cowan.name>
1329
1330         * gettext.h: Imported from /usr/share/gettext, fuller handling
1331         of --disable-nls.
1332         * wget.h: Remove logic for handling lack of NLS (now in
1333         gettext.h).
1334         * main.c: Use gettext's ENABLE_NLS rather than HAVE_NLS.
1335         * Makefile.am: added @LIBINTL@ to LIBS (though it probably
1336         belongs in LDADD, along with everything else currently assigned
1337         to LIBS).
1338
1339 2007-10-08  Micah Cowan  <micah@cowan.name>
1340
1341         * http.c (http_loop): Add send_head_first conditional back
1342         around code that needs it, but not around the last-modified
1343         header-parsing stuff this time. Removed no-longer-useful (was it
1344         ever?) restart_loop boolean, continuing unconditionally at end
1345         of send_head_first conditional block (if we haven't jumped out).
1346
1347 2007-10-04  Micah Cowan  <micah@cowan.name>
1348
1349         * http.c (http_loop): We've got_name if content_disposition
1350         support isn't on; make sure we continue properly in that case,
1351         even though we're not sending HEAD.
1352         * Makefile.in: Removed, replaced by Makefile.am.
1353         * Makefile.am: Converted from Makefile.in.
1354
1355 2007-10-02  Gisle Vanem  <gvanem@broadpark.no>
1356
1357         * ftp.c: Use "_listing" for MSDOS (".listing" is illegal).
1358
1359         * url.c: Update comment for 'filechr_not_windows'.
1360
1361         * utils.c: Include <process.h> for 'getpid()' on Watcom.
1362
1363 2007-10-02  Micah Cowan  <micah@cowan.name>
1364
1365         * ftp.c (getftp, ftp_loop_internal), http.c (http_loop), main
1366         (main): Use datetime_str instead of time_str, for those who have
1367         potentially long-running sessions. Based on suggestions by Saso
1368         Tomat <miskox@hotmail.com> and Steven M. Schweda
1369         <sms@antinode.org>.
1370         * http.c (gethttp): Warn about host lookup failures. Adjusted
1371         from Stephen Gildea's patch.
1372
1373 2007-10-02  Stephen Gildea  <stepheng+wget@gildea.com>
1374
1375         * connect.c (connect_to_host): Warn about host lookup failures.
1376
1377 2007-09-25  Micah Cowan  <micah@cowan.name>
1378
1379         * Makefile.in: Use EXEEXT instead of exeext.
1380
1381 2007-09-24  Gisle Vanem  <giva@bgnett.no>
1382
1383         * connect.c, init.c, main.c, openssl.c, options.h, sysdep.h,
1384         url.c, utils.c: Added support for building on MS-DOS.
1385
1386 2007-09-24  Jochen Roderburg  <roderburg@uni-koeln.de>
1387
1388         * http.c (http_zero): Remove no-longer-used local_size variable.
1389         Fixes bug #21057.
1390
1391 2007-09-12  Micah Cowan  <micah@cowan.name>
1392
1393         * http.c (http_loop): Remove send_head_first from condition for
1394         parsing timestamp.
1395
1396 2007-08-29  Micah Cowan  <micah@cowan.name>
1397
1398         * openssl.c (ssl_init): Re un-const-ified the meth local
1399         variable, to match current versions of openssl.
1400         * spider.c: Removed visited_url function, as it may be very
1401         inefficient.
1402         (print_broken_links): Removed traversal of referrers, until such
1403         time as a more efficient implementation can be written.
1404         * spider.h: Replaced declaration of visited_url with an
1405         empty-bodied, function-like macro.
1406
1407 2007-08-27  Gisle Vanem  <giva@bgnett.no>
1408
1409         * mswindows.c (run_with_timeout): Ensure that the correct
1410         conversion specification is used for the return result of
1411         the GetLastError function.
1412         * getopt.c: Fix missing (but, accidentally, legal) comment
1413         delimiter after licensing text.
1414         * recur.c (retrieve_tree): Inserted missing cast for strip_auth.
1415         Includes adjustment by Ralf Wildenhues.
1416         * openssl.c (ssl_init): const-ified the meth local variable.
1417         * main.c: Include all the static function definitions in the
1418         "#ifndef TESTING" clause, leaving just the definitions for
1419         exec_name (not set), and opt.
1420         * utils.c (run_with_timeout): Now returns bool, to align with
1421         declaration in utils.h.
1422
1423 2007-08-27  Micah Cowan  <micah@cowan.name>
1424
1425         * wget.h: Added macro replacement for ngettext, for environs
1426         that lack NLS.
1427
1428 2007-08-26  Micah Cowan  <micah@cowan.name>
1429
1430         * spider.c (print_broken_links): Fixed incorrect plurals msgid
1431         usage, switched to use ngettext function.
1432
1433 2007-08-24  Micah Cowan  <micah@cowan.name>
1434
1435         * http.c (http_loop): Introduced time_came_from_head boolean
1436         flag, to help avoid parsing the same Last-Modified header twice.
1437         Replaced spidering returns of RETRUNNEEDED for some situations,
1438         to RETROK, as otherwise it will be interpreted as an error.
1439         RETRUNNEEDED appears never to be referenced outside of
1440         http.c (and wget.h), and, when returned by gethttp, is
1441         translated by http_loop to RETROK.
1442         * url.c (are_urls_equal): Don't call getchar_from_escaped_string
1443         if u2 is shorter than u1.
1444         (getchar_from_escaped_string): Don't decode reserved characters.
1445         Handle illegally appearing '%'s as literal '%'s. Ensure hex
1446         digits before attempting to decode.
1447         (test_are_urls_equal): Added tests to handle u2 shorter than u1,
1448         and %2f not treated the same as /.
1449         * spider.c (in_url_list_p): Don't call are_urls_equal if one of
1450         them is NULL.
1451
1452 2007-08-23  Joshua David Williams  <yurimxpxman@gmail.com>
1453
1454         * spider.c (in_url_list_p): Removed the bool verbose argument
1455
1456 2007-08-22  Mauro Tortonesi  <mauro@ferrara.linux.it>
1457
1458         * http.c (http_loop): Fall back to GET if HEAD fails with a 500 or 501
1459         error code.
1460
1461 2007-08-21  Mauro Tortonesi  <mauro@ferrara.linux.it>
1462
1463         * http.c (http_loop): Send preliminary HEAD request if -N is given and
1464         the destination file exists already.
1465
1466 2007-08-10  Mauro Tortonesi  <mauro@ferrara.linux.it>
1467
1468         * http.c (http_loop): Fixed HTTP HEAD requests logic when --spider is
1469         given.
1470
1471 2007-08-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1472
1473         * url.c (append_uri_pathel): Do not assume dest string to be
1474         zero-terminated.
1475         (test_append_uri_pathel): Terminate string to fix test failure.
1476
1477 2007-08-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1478
1479         * url.c (url_string): Use comparison, not assignment, in
1480         check for auth_mode == URL_AUTH_HIDE_PASSWD.
1481
1482 2007-08-09  Micah Cowan  <micah@cowan.name>
1483
1484         * http.c (http_loop): If we got a HEAD and then a GET, and the
1485         GET had a timestamp, use that one, not any we may have gotten
1486         from the HEAD.
1487
1488 2007-08-08  Micah Cowan  <micah@cowan.name>
1489
1490         * init.c (defaults): Content disposition will not be default,
1491         since it currently results in extra round-trips.
1492
1493 2007-07-31  Micah Cowan  <micah@cowan.name>
1494
1495         * http.c (gethttp): Set contlen = -1 when we encounter a
1496         negative-valued Content-Length header, so we don't consider it
1497         an internal error later on and call abort().
1498
1499 2007-07-29  Micah Cowan  <micah@cowan.name>
1500
1501         * url.h, url.c (url_string): Replaced bool arg of the url_string
1502         function with enum url_auth_mode, with added option to
1503         completely remove user/pass auth information.
1504         * http.c, ftp.c, url.c, recur.c: Adapted call to url_string
1505         function to fit new usage.
1506         * recur.c (retrieve_tree): Remove auth info from Referer header.
1507
1508 2007-07-28  Micah Cowan  <micah@cowan.name>
1509
1510         * options.h, init.c, retr.c, main.c: renamed opt maxredirect
1511         field to max_redirect, for improved consistency.
1512         * init.c: changed max_redirect parser from cmd_number_inf to
1513         cmd_number, as infinite redirects may not be appropriate.
1514         Alternatively, if cmd_number_inf should be used, then
1515         opt.max_redirect's value should be checked a bit differently in
1516         retr.c, to allow for the "infinite" meaning of zero.
1517
1518 2007-07-25  Micah Cowan  <micah@cowan.name>
1519
1520         * http.c (create_authorization_line)
1521         (basic_authentication_encode, known_authentication_scheme_p)
1522         (load_cookies): Moved declarations up.
1523         (basic_authed_hosts): Added. Tracks what hosts have issued Basic
1524         challenge and been given the global username, password.
1525         (maybe_send_basic_creds): Added. Sends Basic creds for hosts that
1526         have issued Basic challenges.
1527         (register_basic_auth_host): Added. Instantiates
1528         basic_authed_hosts if necessary, then registers the host that
1529         has issued a challenge.
1530         (gethttp) <auth>: Only send authentication credentials after
1531         we've received a challenge from that host. This is a stop-gap
1532         fix until a proper fix can be implemented; still isn't quite
1533         right, as we should only be sending credentials automatically
1534         for authenticated paths and below, and not for the entire host.
1535
1536 2007-07-16  Joshua David Williams  <yurimxpxman@gmail.com>
1537
1538         * options.h: added maxredirect to options struct
1539         * init.c: added maxredirect to list of variables
1540         * retr.c (retrieve_url): replaced MAX_REDIRECTIONS with opt.maxredirect
1541         * main.c: added option --max-redirect
1542
1543 2007-07-16  Joshua David Williams  <yurimxpxman@gmail.com>
1544
1545         * test.h: tests made more verbose; now displays the name
1546         of each test run.
1547
1548 2007-07-10  Mauro Tortonesi  <mauro@ferrara.linux.it>
1549
1550         * http.c (http_loop): Fixed the HTTP requests logic. Now it skips the
1551         preliminary HEAD request if either -O or --no-content-disposition are
1552         given, and neither --spider and -N are given.
1553
1554 2007-07-05  Micah Cowan  <micah@cowan.name>
1555
1556         * cmpt.c, connect.c, connect.h, convert.c, convert.h:
1557         * cookies.c, cookies.h, ftp-basic.c, ftp.c, ftp.h, ftp-ls.c:
1558         * ftp-opie.c, gen-md5.c, gen-md5.h, getopt.c, getopt.h, gnu-md5.c:
1559         * gnu-md5.h, gnutls.c, hash.c, hash.h, host.c, host.h:
1560         * html-parse.c, html-parse.h, html-url.c, http.c, http.h:
1561         * http-ntlm.c, http-ntlm.h, init.c, init.h, log.c, log.h, main.c:
1562         * Makefile.in, mswindows.c, mswindows.h, netrc.c, netrc.h:
1563         * openssl.c, options.h, progress.c, progress.h, ptimer.c:
1564         * ptimer.h, recur.c, recur.h, res.c, res.h, retr.c, retr.h:
1565         * safe-ctype.c, safe-ctype.h, spider.c, spider.h, ssl.h, sysdep.h:
1566         * test.c, test.h, url.c, url.h, utils.c, utils.h, wget.h:
1567         * xmalloc.c, xmalloc.h:
1568         Updated GPL reference to version 3 or later, removed FSF
1569         address.
1570
1571 2007-07-04  Mauro Tortonesi  <mauro@ferrara.linux.it>
1572
1573         * http.c (http_loop): Skip HEAD request and start immediately with GET
1574         if -O is given.
1575
1576 2007-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
1577
1578         * http.c (print_server_response): Escape non-printable characters
1579         in server respone.
1580
1581 2007-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
1582
1583         * netrc.c: Don't make netrc_list static, as it prevents
1584         compilation with DEBUG_MALLOC.
1585
1586         * utils.c (aprintf): Don't use vasprintf when DEBUG_MALLOC is
1587         requested because, in that case, we want the calls to malloc to be
1588         coming from us.
1589
1590 2007-01-23  Hrvoje Niksic  <hniksic@xemacs.org>
1591
1592         * cookies.c (parse_set_cookie): Would erroneously discard cookies
1593         with unparsable expiry time.
1594
1595 2007-01-23  Hrvoje Niksic  <hniksic@xemacs.org>
1596
1597         * progress.c (create_image): Check for ETA overflow.
1598         (print_row_stats): Ditto.
1599
1600 2007-01-09  Mauro Tortonesi  <mauro@ferrara.linux.it>
1601
1602         * init.c (cmd_spec_prefer_family): Small fix to get rid of a gcc
1603         warning about strict-aliasing violation.
1604
1605 2007-01-09  Steven M. Schweda  <sms@antinode.org>
1606
1607         * ftp-basic.c (ftp_syst): Fixed segfault if response text is missing.
1608
1609 2006-12-29  Gisle Vanem  <giva@bgnett.no>
1610
1611         * mswindows.c: Avoid a warning if 'ws_hangup()' is unused.
1612
1613 2006-12-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
1614
1615         * http.c (parse_content_disposition): Consider directory prefix, if
1616         specified.
1617
1618 2006-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
1619
1620         * retr.c (retrieve_from_file): Ditto.
1621         (url_uses_proxy): New function.
1622
1623         * main.c (main): Don't check for opt.use_proxy when deciding
1624         whether to call retrieve_url or retrieve_tree; check whether the
1625         proxy would be used for *this* URL.
1626
1627 2006-10-17  Mike Grant  <mggr@pml.ac.uk>
1628
1629         * ftp.c (ftp_loop_internal): Would incorrectly skip changing
1630         working directory when retrying after a failed FTP attempt.
1631         Originally reported by Nate Eldredge.
1632
1633 2006-10-12  Mauro Tortonesi  <mauro@ferrara.linux.it>
1634
1635         * convert.c (downloaded_file): Fixed bug which used to break -E -k -K
1636         mode.
1637
1638 2006-08-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
1639
1640         * http.c: #include'd spider.h to get rid of compiler warnings.
1641
1642         * main.c: Ditto.
1643
1644         * recur.c: Ditto.
1645
1646 2006-08-24  Mauro Tortonesi  <mauro@ferrara.linux.it>
1647
1648         * Makefile.in: Added spider.c to the list of files to compile and
1649         spider.h to the list of header files. Updated copyright information.
1650
1651         * http.c: Major changes to recursive spider mode. Now for every
1652         resource we are supposed to check, we send a HEAD request to find out
1653         if it exists. If the resource is a HTML file, we retrieve it and parse
1654         it to discover links to other resources.
1655
1656         * recur.c: Ditto.
1657
1658         * res.c (res_retrieve_file): Disable opt.timestamping and opt.spider
1659         when retrieving robots.txt. Updated copyright information.
1660
1661         * convert.c: Moved code tracking broken links to spider.c.
1662
1663         * convert.h: Ditto.
1664
1665         * spider.c: Created new file to keep track of visited URLs in spider
1666         mode.
1667
1668         * spider.h: Ditto.
1669
1670 2006-08-21  Mauro Tortonesi  <mauro@ferrara.linux.it>
1671
1672         * http.c: Fixed timestamping-related bug.
1673
1674 2006-08-16  Mauro Tortonesi  <mauro@ferrara.linux.it>
1675
1676         * http.c: Fixed bug which broke --continue feature. Now if -c is
1677         given, http_loop sends a HEAD request to find out the destination
1678         filename before resuming download.
1679
1680 2006-08-08  Hrvoje Niksic  <hniksic@xemacs.org>
1681
1682         * utils.c (datetime_str): Avoid code repetition with time_str.
1683
1684 2006-07-21  Hrvoje Niksic  <hniksic@xemacs.org>
1685
1686         * init.c (commands): Correctly place "contentdisposition".
1687
1688 2006-07-14  Mauro Tortonesi  <mauro@ferrara.linux.it>
1689
1690         * sysdep.h: If intptr_t isn't defined, simply typedef it to long.
1691
1692         * http.c: Added explicit cast to int in logprintf call to remove
1693         compiler warnings on 64-bit platforms.
1694
1695         * connect.c: Added a few casts to intptr_t to remove compiler warnings
1696         on 64-bit platforms.
1697
1698         * main.c: Disable -r, -p and -N when -O is used. Disable -k when -O is
1699         used and multiple URLs are given. Update maintainer information.
1700
1701         * all: Update copyright information.
1702
1703 2006-07-10  KJKHyperion  <hackbunny@reactos.com>
1704
1705         * url.c (filechr_table): Mark DEL (0x7f) as a control character
1706         and | as a character Windows can't handle.
1707
1708 2006-06-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
1709
1710         * res.c: Implemented is_robots_txt_url function for detection of
1711         robots.txt URLs and related test routine.
1712
1713         * res.h: Ditto.
1714
1715         * url.c: Implemented are_urls_equal function for URL comparison and
1716         related testing routine.
1717
1718         * url.h: Ditto.
1719
1720         * convert.c: Fixes for recursive spider mode: don't consider
1721         non-existing robots.txt as a broken link, and use are_urls_equal
1722         instead of strcasecmp for referrer URLs comparison.
1723
1724         * test.c: Call tests routines for are_urls_equal and
1725         is_robots_txt_url.
1726
1727 2006-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
1728
1729         * wget.h (wgint): Typedef to any 64-bit (or larger) type we can
1730         find, not necessarily off_t or long.
1731
1732 2006-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
1733
1734         * cmpt.c (strtoll): Check for overflow and underflow without
1735         relying on (technically) undefined behavior.  Don't assume that
1736         strtoll_type is 64 bits wide.
1737
1738 2006-06-21  Hrvoje Niksic  <hniksic@xemacs.org>
1739
1740         * utils.c (base64_encode): Cast void pointer to char * before
1741         doing arithmetic.
1742
1743 2006-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
1744
1745         * utils.c (base64_encode): Made TBL const.
1746         (base64_decode): Made the base64_char_to_value table const.
1747
1748 2006-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
1749
1750         * utils.c (base64_encode): Made the DATA pointer void * so the
1751         callers can pass it any kind of pointer (including both signed and
1752         unsigned char pointers).
1753         (base64_decode): Ditto for DEST.
1754
1755 2006-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
1756
1757         * utils.c (base64_encode): Would read past end of STR.
1758         Reported by rick@eckle.org.
1759
1760 2006-06-13  Mauro Tortonesi  <mauro@ferrara.linux.it>
1761
1762         * options.h (struct options): Introduced member restrict_files_case to
1763         keep track of preferences on character case restrictions for
1764         filenames.
1765
1766         * init.c: Modified defaults and cmd_spec_restrict_file_names to
1767         support character case restrictions for filenames. Added
1768         test_cmd_spec_restrict_file_names unit test.
1769
1770         * url.c: Modified append_uri_pathel to support character case
1771         restrictions for filenames. Added test_append_uri_pathel unit test.
1772
1773         * test.c: Added test_cmd_spec_restrict_file_names and
1774         test_append_uri_pathel to the list of unit tests to run.
1775
1776 2006-06-12  Mauro Tortonesi  <mauro@ferrara.linux.it>
1777
1778         * retr.c (retrieve_from_file): Use retrieve_tree and automatically
1779         turn on opt.follow_ftp in case of recursive FTP retrieval through HTTP
1780         proxy.
1781
1782         * main.c: Automatically turn on opt.follow_ftp in case of recursive
1783         FTP retrieval through HTTP proxy.
1784
1785 2006-06-12  Tony Lewis  <tlewis@exelana.com>
1786
1787         * main.c: Improved CHEN Peng's patch by proposing a simpler logic.
1788
1789 2006-06-12  CHEN Peng  <chenpeng@alumni.nus.edu.sg>
1790
1791         * main.c: Use retrieve_tree in case of recursive FTP retrieval through
1792         HTTP proxy.
1793
1794 2006-05-25  Mauro Tortonesi  <mauro@ferrara.linux.it>
1795
1796         * convert.c: Added mechanisms to keep track broken links.
1797
1798         * convert.h: Ditto.
1799
1800         * wget.h: Reordered and enumerated uerr_t constants.
1801
1802         * recur.c: Fixes to support recursive spider mode.
1803
1804         * http.c: Ditto.
1805
1806         * main.c: Print broken links in case of recursive spider mode.
1807
1808         * retr.c: Changed interface of retrieve_url.
1809
1810         * retr.h: Ditto.
1811
1812         * ftp.c: Changed interface of ftp_loop.
1813
1814         * ftp.h: Ditto.
1815
1816         * res.c: Minor change to reflect changes in interface of retrieve_url.
1817
1818 2006-05-18  Lawrence Jones  <lawrence.jones@ugs.com>
1819
1820         * ftp-ls.c (ftp_parse_unix_ls): Correct size parsing, add size
1821         and filename debugging output.
1822
1823 2006-04-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
1824
1825         * http.c: If Content-Disposition header is present, allow unique
1826         filename generation unless -nc is given. Permit to disable parsing of
1827         Content-Disposition header.
1828
1829         * options.h: Added option --no-content-disposition to disable parsing
1830         of HTTP Content-Disposition header.
1831
1832         * init.c: Ditto.
1833
1834         * main.c: Ditto.
1835
1836 2006-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
1837
1838         * hash.c (TOLOWER): Wrap macro arg in parentheses.
1839
1840 2006-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
1841
1842         * http.c (parse_content_disposition): Doc fix.
1843
1844 2006-03-15  Mauro Tortonesi  <mauro@ferrara.linux.it>
1845
1846         * utils.c: Restricted operational semantics of frontcmp and proclist
1847         from generic strings to directory names and them to subdir_p and
1848         dir_matches_p respectively.  Applied George Ogata's one line patch to
1849         restrict algorithm of subdir_p to full directory name matching.  Added
1850         testcases for subdir_p and dir_matches_p.
1851
1852         * utils.h: Changed all frontcmp occurrences to subdir_p.
1853
1854         * recur.c: Ditto.
1855
1856         * test.c: Changed type returned by test functions from char * to const
1857         char *.  Added test_subdir_p and test_dir_matches_p to the list of
1858         tests to run.
1859
1860         * http.c (test_parse_content_disposition): Changed return type from
1861         char * to const char *.
1862
1863 2006-03-14  Mauro Tortonesi  <mauro@ferrara.linux.it>
1864
1865         * recur.c (struct queue_element): Changed type of html_allowed member
1866         to bool.
1867
1868 2006-03-09  Mauro Tortonesi  <mauro@ferrara.linux.it>
1869
1870         * ftp.c (ftp_list): Try `LIST -a' command first and revert to `LIST'
1871         in case of failure.
1872
1873 2006-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
1874
1875         * hash.c (TOLOWER): Fix definition when STANDALONE.
1876         Reported by Beni Serfaty.
1877
1878 2006-03-02  Mauro Tortonesi  <mauro@ferrara.linux.it>
1879
1880         * http.c (http_loop): Fixed recursive HTTP retrieval.
1881
1882 2006-02-28  Hrvoje Niksic  <hniksic@xemacs.org>
1883
1884         * http.c (extract_param): Declare extern so it can be used from
1885         other files.
1886         (extract_param): Return error for empty name.
1887
1888 2006-02-28  Hrvoje Niksic  <hniksic@xemacs.org>
1889
1890         * url.c (find_last_char): Define in terms of memrchr.
1891
1892         * cmpt.c (memrchr): Define it on systems that don't have it.
1893
1894         * http.c (extract_param): New function for parsing header values
1895         with parameters.
1896         (parse_content_disposition): Use it.  Don't allow slashes and
1897         backslashes in the file name.
1898
1899 2006-02-27  Hrvoje Niksic  <hniksic@xemacs.org>
1900
1901         * url.c (path_simplify): Don't preserve ".." at beginning of path.
1902         Suggested by Frank McCown.
1903
1904 2006-02-25  Hrvoje Niksic  <hniksic@xemacs.org>
1905
1906         * http.c (gethttp): Only use FILE.N.html if FILE.html exists.
1907
1908 2006-02-09  Hrvoje Niksic  <hniksic@xemacs.org>
1909
1910         * mswindows.c (run_with_timeout): Made thread_hnd non-static.
1911
1912 2006-02-05  Hrvoje Niksic  <hniksic@xemacs.org>
1913
1914         * retr.c (sleep_between_retrievals): Sleep at a minimum of 1/2 of
1915         the specified wait period.
1916
1917 2006-02-03  Hrvoje Niksic  <hniksic@xemacs.org>
1918
1919         * utils.c (number_to_string): Don't use sprintf for printing
1920         WGINT_MIN; simply divide n by 10 and defer printing the last
1921         digit.
1922         (number_to_string): Removed the SPRINTF_WGINT macro.
1923
1924 2006-02-03  Mauro Tortonesi  <mauro@ferrara.linux.it>
1925
1926         * http.c: Fixed support for Content-Disposition header.
1927
1928         * test.c: Added test_parse_content_disposition to the list of unit
1929         tests to run.
1930
1931 2006-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
1932
1933         * hash.c: Don't define countof if it's already defined.
1934
1935         * hash.c: Obtain the definition of uintptr_t when standalone.
1936
1937 2006-01-30  Mauro Tortonesi  <mauro@ferrara.linux.it>
1938
1939         * http.c: Changed output format. Removed excessively verbose debugging
1940         output.
1941
1942 2005-12-07  Mauro Tortonesi  <mauro@ferrara.linux.it>
1943
1944         * http.c: Fixed pre-download verbose output which was broken by
1945         HTTP code refactoring.
1946
1947 2005-11-23  Mauro Tortonesi  <mauro@ferrara.linux.it>
1948
1949         * http.c: Refactored HTTP code.  If -O is not used, the new code
1950         delays the choice of the file name where the downloaded resource
1951         will be saved until the HTTP headers have been retrieved.
1952         Added support for Content-Disposition header.
1953
1954 2005-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
1955
1956         * hash.c (INVALID_PTR): Use uintptr_t instead of unsigned long.
1957         (hash_pointer): Don't assume a pointer fits in `unsigned long'.
1958
1959 2005-11-02  Mauro Tortonesi  <mauro@ferrara.linux.it>
1960
1961         * Makefile.in: Removed support for unit testing (now it is in
1962         tests/Makefile.in).
1963
1964 2005-10-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
1965
1966         * Makefile.in: Added basic support for unit testing.
1967
1968         * test.c: Ditto.
1969
1970         * test.h: Ditto.
1971
1972 2005-10-13  Daniel Stenberg  <daniel@haxx.se>
1973
1974         * http-ntlm.c (ntlm_output): Fixed buffer overflow vulnerability.
1975
1976 2005-10-09  Russ Allbery  <rra@stanford.edu>
1977
1978         * snprintf.c: Remove round to round_int and pow10 to pow10_int, to
1979         avoid warnings from GCC 4.0.
1980
1981 2005-10-05  Mauro Tortonesi  <mauro@ferrara.linux.it>
1982
1983         * retr.c: Changed semantics of no_proxy_match.
1984
1985 2005-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
1986
1987         * main.c (main): Don't print the summary if nothing has been downloaded.
1988
1989 2005-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
1990
1991         * retr.c (retr_rate): Rename parameter from MSECS to SECS since it
1992         no longer holds milliseconds.
1993
1994 2005-09-01  Hrvoje Niksic  <hniksic@xemacs.org>
1995
1996         * progress.c: Introduce symbolic constants for "magic" values of
1997         0.2 and 0.9, REFRESH_INTERVAL and ETA_REFRESH_INTERVAL.
1998
1999 2005-08-27  Hrvoje Niksic  <hniksic@xemacs.org>
2000
2001         * cmpt.c (strtoll): Correctly handle strtoll("0x", ptr, 0) and
2002         strtoll("0x<nonhexchar>", ptr, 0) -- in both cases *ptr must be
2003         set to the position of 'x', not after it.
2004
2005 2005-08-27  Hrvoje Niksic  <hniksic@xemacs.org>
2006
2007         * hash.c (hash_table_map): Rename to hash_table_for_each and
2008         update callers.
2009         Document the meaning of the callback's return value.
2010         (hash_table_iterate): New function.
2011         (hash_table_iter_next): Likewise.
2012         Update most places that used hash_table_for_each to use the
2013         iteration, which doesn't require a temporary function with
2014         explicit state management.
2015
2016 2005-08-26  Albert Chin  <wget@mlists.thewrittenword.com>
2017
2018         * Makefile.in: Use @datadir@.  Define localedir as $(datadir)/locale.
2019
2020 2005-08-26  Jeremy Shapiro  <jnshapiro@gmail.com>
2021
2022         * openssl.c (ssl_init): Set SSL_MODE_AUTO_RETRY.
2023
2024 2005-08-23  Hrvoje Niksic  <hniksic@xemacs.org>
2025
2026         * host.c (address_list_from_ipv4_addresses): Use IP_INADDR_DATA.
2027
2028 2005-08-12  Hrvoje Niksic  <hniksic@xemacs.org>
2029
2030         * wget.h: Renamed strtoll_return to strtoll_type.
2031
2032 2005-08-11  Hrvoje Niksic  <hniksic@xemacs.org>
2033
2034         * progress.c (eta_to_human_short): Switch to days when printing
2035         more than 48h rather than 100h.  (It's not immediately apparent
2036         how many days there are in 83h.)
2037
2038 2005-08-11  Hrvoje Niksic  <hniksic@xemacs.org>
2039
2040         * cmpt.c (strtoll): Define it if missing on the system and if Wget
2041         needs it.
2042
2043         * mswindows.c (str_to_int64): Move to cmpt.c and rename to strtoll.
2044
2045 2005-08-10  Hrvoje Niksic  <hniksic@xemacs.org>
2046
2047         * host.c (print_address): Always use inet_ntop when IPv6 is
2048         enabled.
2049
2050         * host.h (ip_address): Simplify the data union.
2051
2052 2005-08-09  Hrvoje Niksic  <hniksic@xemacs.org>
2053
2054         * mswindows.c (inet_ntop): Also handle IPv4 addresses for
2055         completeness.
2056
2057 2005-08-09  Hrvoje Niksic  <hniksic@xemacs.org>
2058
2059         * http.c (gethttp): Don't read more than the amount of data
2060         specified by the content-length header.
2061
2062 2005-08-09  Vasil Dimov  <vd@datamax.bg>
2063
2064         * ftp.c (getftp): Don't free RESPLINE if ftp_response returns a
2065         status other than FTPOK.
2066
2067 2005-08-04  Giuseppe Bonacci  <g.bonacci@libero.it>
2068
2069         * ftp-ls.c (ftp_parse_unix_ls): Remember the position of the
2070         previous token instead of backtracking back to it.
2071
2072 2005-07-08  Gisle Vanem  <giva@bgnett.no>
2073
2074         * mswindows.h: Include process.h to get getpid() declaration.
2075
2076 2005-07-08  Hrvoje Niksic  <hniksic@xemacs.org>
2077
2078         * utils.c (aprintf): Use vasprintf where available.
2079
2080 2005-07-08  Hrvoje Niksic  <hniksic@xemacs.org>
2081
2082         * url.c (rewrite_shorthand_url): Simplify code using aprintf and
2083         strspn.
2084
2085 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
2086
2087         * gnutls.c (ssl_check_certificate): Check for the validity of the
2088         presented X509 certificate.
2089
2090 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
2091
2092         * openssl.c (ssl_check_certificate): Print custom error messages
2093         for frequent X509 certificate problems.
2094
2095 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
2096
2097         * mswindows.h: Define an alias for stat and fstat, as requested by
2098         config-compiler.h.
2099         (gai_strerror): Define to windows_strerror if NEED_GAI_STRERROR is
2100         defined.
2101
2102 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2103
2104         * mswindows.h: Use strtoll where available.
2105
2106 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2107
2108         * sysdep.h: Add a full declaration of fnmatch.h.
2109
2110 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2111
2112         * utils.c: Unconditionally include <setjmp.h>.
2113
2114 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2115
2116         * utils.c (fnmatch_nocase): New function.
2117         (proclist): Use it instead of fnmatch when opt.ignore_case is
2118         requested.
2119         (in_acclist): Respect opt.ignore_case.
2120         (frontcmp): Respect opt.ignore_case.
2121
2122         * options.h (struct options): New flag opt.ignore_case.
2123
2124 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2125
2126         * ptimer.c: Measure time in seconds rather than milliseconds.
2127         Adjusted all callers.
2128
2129 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2130
2131         * http.c (gethttp): When freeing MESSAGE, take into account that
2132         it can be NULL.
2133
2134 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2135
2136         * cmpt.c (timegm): Handle years after 2099.
2137
2138 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2139
2140         * cmpt.c (timegm): Remove unused variable.
2141
2142 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2143
2144         * cmpt.c (timegm): Don't call mktime; simply count the seconds
2145         between 1970-01-01 and the specified date.
2146
2147 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2148
2149         * wget.h (or): Define HAVE_SSL when either HAVE_OPENSSL or
2150         HAVE_GNUTLS are defined.
2151
2152         * gnutls.c: New file.
2153
2154 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2155
2156         * http.c (gethttp): Don't print the request write error message
2157         twice.
2158
2159 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2160
2161         * openssl.c (openssl_errstr): Instead of always using a large
2162         static buffer, only allocate the error string when there is an
2163         actual error.
2164
2165 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2166
2167         * xmalloc.c (debugging_free): Prefix hex pointer value with "0x"
2168         when printing.
2169
2170 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2171
2172         * utils.c (NEXT_BASE64_CHAR): Rename to NEXT_CHAR and simplify to
2173         get the next non-whitespace character.
2174
2175 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2176
2177         * utils.c (base64_decode): Don't silently tolerate non-base64
2178         non-white-space characters in the base64 stream.
2179
2180 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2181
2182         * connect.c (LAZY_RETRIEVE_INFO): Make last_tick unsigned to match
2183         transport_map_modified_tick.
2184
2185 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2186
2187         * config-post.h (alloca): Updated declaration to not enumerate all
2188         Windows compilers.
2189
2190 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2191
2192         * openssl.c (openssl_errstr): Separate error messages with "; ".
2193
2194 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
2195
2196         * ftp.c (getftp): Ditto.
2197
2198         * http.c (gethttp): Use fd_errstr.
2199
2200         * connect.c (fd_register_transport): Restructure parameters to
2201         include only a single structure that describes transport
2202         implementation.
2203
2204         * openssl.c (openssl_errstr): New function: dump SSL error strings
2205         into a static buffer and return a pointer to the buffer.
2206
2207         * connect.c (fd_errstr): New function; returns transport-specific
2208         error message, or strerror(errno) if transport doesn't supply one.
2209
2210 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
2211
2212         * mswindows.h: Also wrap accept() and listen().
2213
2214 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
2215
2216         * url.c (path_end): Skip separators appropriate for the scheme.
2217         (strpbrk_or_eos): Remove gcc-specific version, as the optimization
2218         it tried to perform no longer applies.
2219
2220 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2221
2222         * host.c: Don't include "connect.h" now that we no longer have
2223         socket_has_inet6.
2224
2225 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2226
2227         * host.c: Remove extraneous definition of netdb.h.
2228
2229 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2230
2231         * http.c (gethttp): Skip error message body in the keep-alive
2232         case.
2233
2234 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2235
2236         * url.c (url_parse): Would crash when parsing fragments.  Support
2237         fragments for FTP URLs too.
2238
2239 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2240
2241         * version.c: Don't use "cvs" in version name, since we're not
2242         using CVS anymore.
2243
2244 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2245
2246         * progress.c (create_image): Ditto.
2247
2248         * retr.c (retr_rate): Display smaller rate numbers with greater
2249         precision.
2250
2251 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2252
2253         * http.c (response_head_terminator): Minor optimization.
2254
2255         * retr.c (fd_read_hunk): Call terminator with pointer to the start
2256         of the data and the pointer to the current data.  Changed all
2257         callers.
2258
2259 2005-07-01  Hrvoje Niksic  <hniksic@xemacs.org>
2260
2261         * url.c (url_parse): Make sure u->params is not initialized for
2262         http/https URLs.
2263         (url_parse): Don't crash on garbage following []-delimited IPv6
2264         addresses.
2265
2266 2005-07-01  Hrvoje Niksic  <hniksic@xemacs.org>
2267
2268         * main.c (print_help): Don't refer to the non-existent -nr in
2269         description of --mirror.
2270
2271 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
2272
2273         * host.c (pretty_print_address): Renamed to just print_address.
2274         Clarify documentation.
2275
2276 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
2277
2278         * http.c (gethttp): Explicitly document the different cases when
2279         generating the Host header.
2280
2281 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
2282
2283         * host.c (pretty_print_address): Handle error result from
2284         inet_ntop.
2285
2286 2005-06-30  Gisle Vanem  <giva@bgnett.no>
2287
2288         * mswindows.c (inet_ntop): New function.  Print IPv6 addresses
2289         using WSAAddressToString.
2290
2291 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2292
2293         * progress.c (dot_update): Remove unused variable row_qty.
2294
2295 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2296
2297         * main.c: Check for both SIGHUP and SIGUSR1 before using them.
2298
2299 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2300
2301         * utils.c: Unconditionally include locale.h.
2302
2303 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2304
2305         * ptimer.c: Include sys/time.h to get struct timeval.
2306
2307 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2308
2309         * wget.h: Remove obsolete definition of with_thousand_seps_sum.
2310
2311 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2312
2313         * gnu-md5.h: Unconditionally include limits.h.
2314
2315 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2316
2317         * utils.c (random_number): Use lrand48 if available.
2318         (random_float): Use drand48 if available.
2319
2320 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2321
2322         * main.c (secs_to_human_time): Use print_decimal when printing
2323         total download time in seconds.
2324
2325         * progress.c (print_row_stats): Use it to print total download
2326         time at the end of the download.
2327         (create_image): Ditto.
2328
2329         * utils.c (print_decimal): New function; print small decimal
2330         numbers with more precision than large ones.
2331
2332         * progress.c (print_row_stats): New function.  Print ETA after the
2333         download rate at the end of each row.
2334
2335 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
2336
2337         * init.c (parse_line): Check for alphanumerics.
2338
2339 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
2340
2341         * (dot_create): Remove unnecessary casts.
2342
2343 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
2344
2345         * ftp.c (getftp): Delete trailing newlines from LIST output so
2346         lines don't come out with trailing \015\012 with -S.
2347
2348 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2349
2350         * mswindows.h: Remove superfluous includes.
2351
2352 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2353
2354         * config-post.h (alloca): Amend alloca declaration to take care of
2355         all Win32 compilers, not just MSVC and MinGW.
2356
2357 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2358
2359         * utils.c (get_grouping_data): Force separator to "." rather than
2360         " " when "," is taken.
2361
2362 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2363
2364         * wget.h (PTR_FORMAT): Cast the result of sizeof to int before
2365         passing it to printf's %*.
2366
2367         * retr.h: Declare output_stream and output_stream_regular.
2368
2369         * ftp.h: Declare ftp_last_respline.
2370
2371         * convert.h: Declare dl_url_file_map.
2372
2373         * http.h: New file.
2374
2375 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2376
2377         * cookies.c: Make cookies_now static.
2378
2379 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2380
2381         * utils.c (human_readable): Remove intermediary cast to long; MSVC
2382         has problems casting *unsigned* __int64 to double.
2383
2384 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2385
2386         * sysdep.h: Use the system-provided fnmatch by default.
2387
2388 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2389
2390         * http.c (mktime_from_utc): Renamed to timegm and moved to cmpt.c.
2391         Don't compile it if GNU timegm is available.
2392         (http_atotm): Use timegm.
2393
2394 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2395
2396         * http.c (http_atotm): Correctly query the old locale value.
2397
2398 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2399
2400         * config-post.h (alloca): Don't #define alloca under MinGW32,
2401         which defines it in malloc.h, included from mswindows.h.
2402
2403 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2404
2405         * utils.c (get_grouping_data): Force the use of separators in C
2406         locale.
2407
2408 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2409
2410         * main.c (i18n_initialize): Set all locale categories.
2411
2412         * http.c (http_atotm): Temporarily set locale to "C".
2413
2414 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2415
2416         * http.c (gethttp): Improve "POST data file missing" error
2417         message.
2418
2419 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2420
2421         * progress.c (set_progress_implementation): Type COLON as const
2422         char *.
2423
2424 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2425
2426         * utils.c (with_thousand_seps): Handle negative numbers.
2427
2428 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2429
2430         * progress.c (create_image): Mark the "eta" string for translation.
2431
2432 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2433
2434         * html-url.c (get_urls_file): Don't explicitly set entry->next to
2435         NULL since entry is already zeroed out.
2436
2437 2005-06-26  Gisle Vanem  <giva@bgnett.no>
2438
2439         * mswindows.h: Define gai_strerror under MinGW.
2440
2441 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2442
2443         * utils.c (with_thousand_seps): Correctly implement thousand seps
2444         consisting of more than one character.
2445
2446 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2447
2448         * main.c (secs_to_human_time): Ditto.
2449
2450         * progress.c (create_image): Print more exact duration of very
2451         short downloads.
2452
2453         * main.c (secs_to_human_time): Don't translate time suffixes "h",
2454         "m", and "s", which are not strictly SI, but are "accepted for use
2455         with SI".
2456         (secs_to_human_time): Print really small intervals as 0s, not
2457         0.00s.
2458
2459 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2460
2461         * config-post.h: Replace the alloca declaration with the one from
2462         the latest Autoconf manual.  This should remove a warning with GCC
2463         on AIX.
2464
2465 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2466
2467         * ftp.c (getftp): Always invoke SIZE, not only when continuing a
2468         download.
2469
2470         * main.c (main): Ditto here.
2471
2472         * progress.c (create_image): When the download is finished, print
2473         how long it took.
2474
2475 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2476
2477         * main.c (main): Print the downloaded and quota amounts with the
2478         "human_readable" function.
2479
2480         * ftp.c (print_length): Ditto.
2481
2482         * http.c (gethttp): Don't display thousand separators.
2483
2484         * utils.c (with_thousand_seps): Rewritten to respect locale
2485         settings and to be type size agnostic.
2486
2487 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2488
2489         * utils.c (human_readable): Divide with 1024 instead of shifting
2490         so the operation can work with non-integer N.
2491
2492 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2493
2494         * progress.c (eta_to_human): New logic for more human-readable
2495         ETA.
2496
2497 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2498
2499         * utils.c (with_thousand_seps_sum): Decrease buffer size so it
2500         cannot overrun add_thousand_seps's buffer.
2501
2502 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2503
2504         * utils.c (SPRINTF_WGINT): The correct format is %I64d, not just
2505         %I64.
2506
2507 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2508
2509         * http.c (http_loop): Don't warn about wildcards in HTTP URLs if
2510         globbing isn't requested in the first place.
2511
2512         * retr.c (retrieve_url): Temporarily turn off globbing when
2513         processing HTTP->FTP redirects.
2514
2515 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2516
2517         * utils.c (with_thousand_seps_sum): Now defined only if
2518         SUM_SIZE_INT is double.
2519
2520         * wget.h (SUM_SIZE_INT): Instead of bothering with long, long
2521         long, __int64, and friends, simply either use wgint or double, end
2522         of story.  Since we know how to print either, we no longer need
2523         LARGE_INT_FMT.
2524
2525         * sysdeps.h (LARGE_INT): Renamed to SUM_SIZE_INT to better reflect
2526         its intent, and moved to wget.h.
2527
2528 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2529
2530         * Makefile.in: No need to clean .libs.
2531
2532 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2533
2534         * cookies.c (parse_set_cookies): Cast pointer subtraction to int
2535         before using it with %d; AIX compiler warns on this.
2536         Reported by Jens Schleusener.
2537
2538 2005-06-24  Hrvoje Niksic  <hniksic@xemacs.org>
2539
2540         * http.c (gethttp): Don't prepend / here.
2541
2542         * cookies.c (cookie_handle_set_cookie): Prepend / to PATH.
2543         (cookie_header): Ditto.
2544
2545 2005-06-24  Hrvoje Niksic  <hniksic@xemacs.org>
2546
2547         * init.c: opt.verbose must be declared as int.
2548
2549 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
2550
2551         * cmpt.c (strpbrk): Removed.
2552         (mktime): Removed.
2553         Include <time.h>.
2554
2555 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
2556
2557         * utils.c (read_file): Ditto.
2558
2559         * main.c (main): Use struct_fstat.
2560
2561         * mswindows.h (struct_fstat): Define a struct_fstat to deal with
2562         the fact that Borland 5.5 has 64-bit stat, but not 64-bit fstat!
2563
2564 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
2565
2566         * sysdep.h: Remove code that deals with Watcom.
2567
2568 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2569
2570         * all: Use bool instead of int and false/true instead of 0/non-0
2571         for boolean variables and values.
2572
2573 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2574
2575         * sysdep.h: Include the stdbool.h/_Bool/bool blurb from Autoconf.
2576
2577 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2578
2579         * init.c (cmd_lockable_boolean): Removed.
2580
2581 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2582
2583         * cookies.c (struct cookie): Use 1-bit bitfields for booleans
2584         which makes the structure takes less space at no cost in
2585         complexity.
2586
2587 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2588
2589         * Makefile.in ($(OBJ)): Add the config.h dependency.
2590
2591 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2592
2593         * openssl.c, connect.c, host.c: Replace instances of #ifdef
2594         ENABLE_DEBUG if (opt.debug) {...} #endif with IF_DEBUG {...}.
2595
2596         * main.c: Rename the IF_DEBUG defined here to WHEN_DEBUG.
2597
2598         * wget.h (IF_DEBUG): New macro.
2599         (DEBUGP): Define in terms of IF_DEBUG.
2600
2601 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2602
2603         * http.c (gethttp): Only handle --set-cookies (and assert that
2604         cookie jar exists) if opt.cookies is true.  Failure to do so
2605         triggered the assert when --no-cookies was used and the server
2606         sent a Set-Cookie header.  Ouch!
2607
2608 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2609
2610         * connect.c (select_fd): Expect select() to exist.
2611
2612         * utils.c (xsleep): Always use select() as sleep fallback on
2613         non-Windows platforms.
2614
2615         * ptimer.c: Delete the implementation of PTIMER_TIME.
2616
2617         * main.c: Assume existence of signal(), test for different signal
2618         names instead.
2619
2620         * cmpt.c: Better document reasons why certain functions are
2621         included.
2622
2623 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2624
2625         * Makefile.in: Remove the manually maintained dependency list;
2626         make all object files depend on every header.
2627
2628 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
2629
2630         * hash.c: Rename "mapping" to "cell" to avoid confusion with the
2631         term "mapping" (or "map") sometimes being used for the entire hash
2632         table.  Also rename "non-empty" to "occupied" for easier reading
2633         of if (!NON_EMPTY (...)) ... .
2634
2635 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
2636
2637         * main.c, ptimer.c, sysdep.h, utils.c: Use #elif to simplify reading of
2638         chained if-else-else-else-... statements.
2639
2640 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
2641
2642         * all: Return type of signal handlers is `void'.  Include signal.h
2643         unconditionally.
2644
2645         * all: Don't explicitly cast values returned by malloc.  We no
2646         longer support ancient compilers that don't declare malloc, and we
2647         never supported C++ builds.
2648
2649 2005-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
2650
2651         * all: Don't declare errno.  Include both time.h and sys/time.h,
2652         as long as sys/time.h exists.  Don't dereference function pointers
2653         when invoking the functions they point to.
2654
2655         * cmpt.c (memmove): Remove function mandated by C89.
2656         (strerror): Ditto.
2657         (strstr): Ditto.
2658
2659         * all: Undo the K&R-ization changes from 2005-05-03.
2660
2661         * all: Remove support for K&R compilers: use C89 function
2662         declarations, remove definition of PARAMS, remove support for
2663         varargs, and remove ansi2knr.  Assume the presence of time.h,
2664         string.h, and other headers mandated by C89.
2665
2666 2005-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
2667
2668         * init.c (cmd_lockable_boolean): Don't recognize literal "2" and
2669         "-1" values; unlike 0 and 1, those should never be exposed to the
2670         user.  Update the error message to be more self-consistent, as
2671         proposed by Benno Schulenberg.
2672
2673 2005-06-18  Hrvoje Niksic  <hniksic@xemacs.org>
2674
2675         * http.c (gethttp): Don't free "head" before using it to save
2676         headers.
2677
2678 2005-06-18  Hrvoje Niksic  <hniksic@xemacs.org>
2679
2680         * http.c (gethttp): When -E is in use, check for file existence
2681         after appending ".html" to the name and modify the file name if
2682         necessary.
2683
2684 2005-06-17  Hrvoje Niksic  <hniksic@xemacs.org>
2685
2686         * connect.c (socket_has_inet6): Removed.
2687
2688         * host.c (lookup_host): Don't use the AI_ADDRCONFIG getaddrinfo
2689         hint.
2690
2691 2005-06-16  Hrvoje Niksic  <hniksic@xemacs.org>
2692
2693         * init.c (cmd_lockable_boolean): Improve the error message so it
2694         lists the more useful values first.
2695
2696 2005-06-15  Hrvoje Niksic  <hniksic@xemacs.org>
2697
2698         * http.c (gethttp): Also report the system error when the POST
2699         data file is missing.
2700
2701 2005-06-15  Benno Schulenberg  <benno@nietvergeten.nl>
2702
2703         * ftp.c, http.c, connect.c, cookies.c, html-url.c, init.c, res.c:
2704         Gettext-ize messages that were previously missed.
2705
2706 2005-06-15  Hrvoje Niksic  <hniksic@xemacs.org>
2707
2708         * host.h (ip_address): Remove the trailing comma from the type
2709         enum in the no-IPv6 case.
2710
2711         * main.c (struct cmdline_option): Remove the trailing comma from
2712         the enum.
2713
2714         Reported by Jens Schleusener.
2715
2716 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
2717
2718         * url.c (strpbrk_or_eos): Check for a recent GCC version before
2719         using the statement-as-expression extension.
2720
2721 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
2722
2723         * http.c (gethttp): Don't attempt to "skip short body" if we're
2724         issuing a HEAD request (in which case the response head is not
2725         followed by a body).
2726
2727 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
2728
2729         * init.c (cmd_spec_header): Don't split the string along the
2730         commas using cmd_vector; just append the new value using
2731         vec_append instead.
2732
2733         * utils.c (vec_append): New function.
2734
2735 2005-05-27  Andreas Beckmann  <debian@abeckmann.de>
2736
2737         * html-url.c (tag_handle_link): Mark the content from the <link
2738         src="..."> tag as expecting HTML.
2739
2740 2005-05-24  Hrvoje Niksic  <hniksic@xemacs.org>
2741
2742         * http.c (http_atotm): Document the origin of the "cookie date"
2743         format.
2744
2745 2005-05-21  Hrvoje Niksic  <hniksic@xemacs.org>
2746
2747         * init.c (setval_internal): Report exact command name alongside
2748         the "display name".
2749
2750 2005-05-18  Hrvoje Niksic  <hniksic@xemacs.org>
2751
2752         * cookies.c (update_cookie_field): Explicitly cast -1 to time_t to
2753         cope with systems where time_t is unsigned.
2754
2755         * cookies.c: Remove unnecessary casts to time_t from values
2756         already of that type.
2757
2758 2005-05-17  Hrvoje Niksic  <hniksic@xemacs.org>
2759
2760         * ftp.c (ftp_loop_internal): Same here.
2761
2762         * http.c (http_loop): Don't clobber the file when -c is specified
2763         and the first attempt to retrieve the file fails.
2764
2765 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
2766
2767         * openssl.c (ssl_check_certificate): Print all issues with a
2768         certificate.
2769
2770 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
2771
2772         * ftp-basic.c: Don't xfree() the line returned by ftp_response if
2773         the returned code is not FTPOK.
2774
2775 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
2776
2777         * init.c (cleanup): Don't free the non-existent opt.ftp_acc.  Free
2778         the SSL-related stuff.
2779
2780 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
2781
2782         * ftp.c (print_length): Consistently print \n at end of the
2783         "Length" line.
2784
2785 2005-05-14  Hrvoje Niksic  <hniksic@xemacs.org>
2786
2787         * openssl.c (ssl_connect): Announce the beginning and the end of
2788         the SSL handshake when in debug mode.
2789
2790         * wget.h (PTR_FORMAT): New macro for easier printing of pointer
2791         values.  Use %0*lx along with PTR_FORMAT instead of %p.
2792
2793 2005-05-14  Hrvoje Niksic  <hniksic@xemacs.org>
2794
2795         * http.c (gethttp): Would forget to close the connection when
2796         keep_alive was not used.
2797
2798 2005-05-13  Hrvoje Niksic  <hniksic@xemacs.org>
2799
2800         * openssl.c (pattern_match): Document the code that decides
2801         whether "*" matches ".".
2802
2803 2005-05-12  Hrvoje Niksic  <hniksic@xemacs.org>
2804
2805         * ftp-ls.c (ftp_index): Use %d to print the port number, which is
2806         now int.
2807         From Steven M. Schweda's VMS patches.
2808
2809 2005-05-12  Hrvoje Niksic  <hniksic@xemacs.org>
2810
2811         * url.c (rewrite_shorthand_url): Don't rewrite "https://host" to
2812         "ftp://https//host" when SSL is not used.
2813
2814 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
2815
2816         * openssl.c (ssl_check_server_identity): Renamed to
2817         ssl_check_certificate because it does more than just checking the
2818         server's identity.
2819         (ssl_check_certificate): Tell the user about
2820         --no-check-certificate.
2821
2822 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
2823
2824         * openssl.c (ssl_init): Always use SSL_VERIFY_NONE, so that the
2825         handshake finishes even if the certificate is invalid.  That way
2826         ssl_check_server_identity can provide better diagnostics on why
2827         the verification failed.
2828
2829 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
2830
2831         * openssl.c (pattern_match): New function.
2832         (ssl_check_server_identity): Treat peer certificate common name as
2833         wildcard.
2834
2835 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
2836
2837         * openssl.c (ssl_check_server_identity): Print certificate subject
2838         and issuer.
2839
2840 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
2841
2842         * res.c (res_register_specs): Correctly pass pointers to
2843         hash_table_get_pair.
2844
2845 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
2846
2847         * http.c (gethttp): Call ssl_check_server_identity.
2848
2849         * openssl.c (ssl_check_server_identity): New function, verifies
2850         that the host name in the certificate matches the actual host
2851         name.
2852         (verify_cert_callback): Removed, since it didn't do anything
2853         except returning the preverify_ok argument.
2854
2855         * connect.c (fd_transport_context): Allow retrieval of the context
2856         pointer registered with fd_register_transport.
2857
2858 2005-05-09  Hrvoje Niksic  <hniksic@xemacs.org>
2859
2860         * openssl.c (verify_cert_callback): Renamed from verify_callback.
2861         Always return the received "ok" value.  Print the X509 name in
2862         debug mode.
2863         (ssl_init): Enable partial writes in SSL context.
2864
2865 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
2866
2867         * http.c (http_loop): Check for wildcards in the URL path
2868         component, not in the whole URL.
2869
2870         * ftp.c (ftp_loop): Check for wildcards in URL path before
2871         unescaping, so the users can escape globbing metacharacters with %
2872         escapes.
2873
2874 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
2875
2876         * init.c (run_command): Correctly interpret the return value of
2877         parse_line.
2878         (commands): Re-alphabetize.
2879
2880 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
2881
2882         * netrc.c (parse_netrc): Explicitly check for assignment != NULL
2883         to silence warning from Borland C.
2884
2885         * url.c (sync_path): Don't unnecessarily increment p.
2886         (url_parse): Don't unnecessarily set url_encode to NULL just
2887         prior to return from the function.
2888
2889 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
2890
2891         * log.c (escnonprint_internal): Place variable declarations
2892         before other statements.
2893
2894 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
2895
2896         * html-url.c: Include recur.h.
2897
2898         * http.c (request_new): Define as accepting no args.
2899
2900 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
2901
2902         * url.c (strpbrk_or_eos): Made inline.  Use strchr(s, '\0') for
2903         finding the NUL char position.
2904
2905 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
2906
2907         * url.c (decide_copy_method): Renamed to char_needs_escaping.
2908         Since it now returns only two possible values, change it to return
2909         boolean (int).
2910
2911 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
2912
2913         * ftp-basic.c (ftp_request): Prevent newlines in VALUE causing
2914         inadvertent sending of multiple FTP commands.
2915
2916 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
2917
2918         * url.c (decide_copy_method): Never cause reencode_escapes to
2919         decode % escapes; it is too intrusive and breaks some servers.
2920
2921 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
2922
2923         * http.c (gethttp): When tunnelling SSL traffic over proxy with
2924         CONNECT, we're really talking to the remote server directly.
2925         Because of this, the request-line argument must be the URL path
2926         rather than the whole URL, as it would be when using regular
2927         proxies.
2928         Reported by Charles Lane.
2929
2930 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
2931
2932         * init.c (cmd_spec_useragent): Allow empty User-Agent.
2933
2934         * http.c (gethttp): Don't print "unknown authentication scheme"
2935         for failed Basic authentication.
2936         (SET_USER_AGENT): Don't set user-agent if opt.useragent is empty.
2937         (gethttp): Use alloca for allocation of www_authenticate.
2938
2939 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
2940
2941         * main.c (print_help): Fix wording of --secure-protocol help text.
2942
2943 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
2944
2945         * cmpt.c (strstr): Updated from glibc 2.3.5.
2946
2947 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2948
2949         * http.c (http_atotm): Zero out the whole struct tm being passed
2950         to strptime.
2951
2952 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2953
2954         * main.c (main): Propagate option name to setoptval.
2955
2956         * init.c (setoptval): Accept another argument, OPTNAME.  Propagate
2957         that argument as the option name independently of the actual
2958         command, determined by command_by_name(com).
2959
2960 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2961
2962         * init.c (parse_line): Make the return value indicate whether
2963         there was a syntax error or a setter failed.
2964         (run_wgetrc): Return an indication on whether an error has been
2965         encountered.
2966         (initialize): Abort if there have been errors running either
2967         .wgetrc file.
2968
2969 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2970
2971         * log.c (copy_and_escape): Slightly reduce code repetition between
2972         the two loops.
2973
2974 2005-05-05  Charles C.Fu  <ccwf@bacchus.com>
2975
2976         * utils.c (proclist): Strip leading slash when calling fnmatch
2977         too, otherwise wildcard comparisons always fail.
2978
2979 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2980
2981         * utils.c (touch): Set access time to current time.
2982
2983 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2984
2985         * url.c (url_unescape): Don't unescape %00, it effectively
2986         truncates the string.
2987
2988 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2989
2990         * log.c (copy_and_escape): Replace the FOR_URI argument with a
2991         slightly more general mechanism for specifying different kinds of
2992         escape.
2993
2994 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2995
2996         * ftp-basic.c (ftp_response): Fix printing FTP server response.
2997
2998 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
2999
3000         * retr.c (limit_bandwidth_reset): Reset sleep_adjust.
3001         (limit_bandwidth): Don't allow huge "adjustment" values that
3002         result from being suspended for a while.
3003
3004 2005-05-04  Hrvoje Niksic  <hniksic@xemacs.org>
3005
3006         * wget.h: If gettext was found but libtintl.h wasn't, declare
3007         gettext's return type to avoid type mismatches.
3008
3009 2005-05-03  Hrvoje Niksic  <hniksic@xemacs.org>
3010
3011         * url.c (url_parse): Rename label `error' to avoid conflict with
3012         identifier.
3013
3014         * retr.c (fd_read_body): Rename label `out' to avoid conflict with
3015         identifier.
3016         (fd_read_hunk): Use explicit double constant.
3017         (retrieve_from_file): Don't use string concatenation.
3018         (sleep_between_retrievals): Make sure xsleep is called with a
3019         `double' argument.
3020         (no_proxy_match): Define as static, like it is declared.
3021
3022         * progress.c (bar_create): Use 0.0 instead of 0 because K&R
3023         compilers can't automatically promote it.
3024
3025         * http-ntlm.c (ntlm_output): Replace \xHH sequences with \OOO for
3026         the sake of old compilers.
3027
3028         * ftp.c (ftp_loop_internal): Don't use string concatenation.
3029
3030         * http.c (request_send): Use explicit double constants when
3031         calling fd_read and fd_write.
3032         (post_file): Ditto.
3033         (gethttp): Ditto.
3034         (skip_short_body): Ditto.
3035
3036         * ftp-basic.c: When calling fd_write, specify the last argument as
3037         a `double' constant for the sake of K&R compilers which don't see
3038         the prototype and therefore can't promote it to double
3039         automatically.
3040
3041         * cookies.c (cookie_jar_load): Rename abort label to abort_cookie
3042         to avoid name conflict in K&R compilers.
3043
3044 2005-04-29  Hrvoje Niksic  <hniksic@xemacs.org>
3045
3046         * ptimer.c (posix_init): Since we allow _POSIX_MONOTONIC_CLOCK==0,
3047         it is not enough to check for _POSIX_MONOTONIC_CLOCK-0, we must
3048         also check for defined(_POSIX_MONOTONIC_CLOCK).
3049
3050 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
3051
3052         * ftp.c, hash.c, connect.c, host.c, http.c: Remove unreached code,
3053         such as "break" following return or abort.
3054
3055 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
3056
3057         * init.c (commands): Wrap the use of opt.random_file in #ifdef
3058         HAVE_SSL.
3059
3060 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
3061
3062         * http.c (gethttp): Correctly set the user agent.
3063
3064 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
3065
3066         * init.c (cmd_spec_useragent): Free the old value of
3067         opt.useragent before setting the new one.
3068
3069 2005-04-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
3070
3071         * main.c: Map --ftp-password, --http-password and --proxy-password to
3072         the new ftppassword, httppassword and proxypassword commands
3073         respectively.  Document the --user and --password options in the help
3074         string.
3075
3076 2005-04-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
3077
3078         * ftp.c: Add support for --user and --password.
3079
3080         * http.c: Add support for --user and --password.
3081
3082         * init.c: Deprecated ftppasswd, httppasswd, login, passwd and
3083         proxypasswd commands.  Added ftppassword, ftpuser, httppassword,
3084         password, proxypassword and user commands.
3085
3086         * main.c: Renamed --ftp-passwd to --ftp-password.  Added --ftp-user,
3087         --http-password, --password, --proxy-password and --user.  Deprecated
3088         --http-passwd and --proxy-passwd.  Added documentation for new options
3089         and removed documentation for deprecated options in the help string.
3090
3091         * options.h (struct options): Added user and passwd members to handle
3092         --user and --password respectively.  Renamed ftp_acc and ftp_pass
3093         members to ftp_user and ftp_passwd for consistency.
3094
3095 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
3096
3097         * main.c (print_help): Advertise "DER", not "ASN1".
3098
3099 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
3100
3101         * openssl.c (init_prng): Disable the weak random seed by default.
3102
3103         * http.c (gethttp): Simplify SSL initialization; disable SSL when
3104         anything goes wrong with the initialization.
3105
3106         * options.h (struct options): New option opt.random_file.
3107
3108 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
3109
3110         * init.c: Wrap private key commands in IF_SSL.
3111
3112 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
3113
3114         * openssl.c (ssl_init): Ditto.
3115
3116         * options.h (struct options): Allow separate specification of key
3117         type and certificate type.
3118
3119         * init.c (cmd_spec_cert_type): Provide a "der" synonym for "asn1"
3120         certificate encoding.
3121
3122 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3123
3124         * openssl.c: Renamed "gen_sslfunc.c" to "openssl.c" and
3125         "gen_sslfunc.h" to "openssl.h".  This reflects the intent of
3126         openssl.c encapsulating the OpenSSL-specific code.
3127
3128 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3129
3130         * init.c: Renamed "closure" (a synonym for context in some
3131         cultures) to "place", which more accurately reflects the usage.
3132
3133 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3134
3135         * gen_sslfunc.c (ssl_init): Use default locations for loading the
3136         certificate bundles.
3137         (ssl_init_prng): Disable the cryptographically weak PRNG
3138         initialization fallback.
3139
3140         * init.c: Renamed SSL command-line arguments and wgetrc commands.
3141         (defaults): Check the server certificate by default.
3142
3143 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3144
3145         * cookies.c (cookie_handle_set_cookie): Delete the part of the
3146         path after the trailing slash.
3147
3148         * http.c (gethttp): Call cookie_handle_set_cookie with path that
3149         begins with '/'.
3150
3151 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3152
3153         * http.c (gethttp): Call skip_short_body only if keep_alive is in
3154         use.
3155         (gethttp): Send the User-Agent header with the CONNECT request as
3156         well.
3157
3158 2005-04-25  Hrvoje Niksic  <hniksic@xemacs.org>
3159
3160         * main.c (option_data): Removed support for the undocumented flag
3161         --use-proxy.
3162
3163 2005-04-25  Hrvoje Niksic  <hniksic@xemacs.org>
3164
3165         * main.c (option_data): Don't treat -Y as a boolean switch; treat
3166         it as a value switch instead, so "-Y off" continues to work.
3167
3168 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
3169
3170         * utils.c (aprintf): Delete unreachable statement.
3171
3172 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
3173
3174         * host.c (cmp_prefer_ipv4): New function.
3175         (cmp_prefer_ipv6): New function.
3176         (lookup_host): Use the appropriate comparator according to
3177         opt.prefer_family.
3178
3179         * init.c: New option prefer_family.
3180
3181         * host.c (is_valid_ipv6_address): Spell NS_* constants in lower
3182         case to avoid clash with system headers.
3183         (lookup_host): Reorder the addresses so that IPv4 ones come first.
3184
3185         * utils.c (stable_sort): New function.
3186
3187 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
3188
3189         * connect.c (retryable_socket_connect_error): Return 0 for
3190         ENETUNREACH and EHOSTUNREACH.
3191
3192 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
3193
3194         * cmpt.c: Reenable the memmove implementation for systems that
3195         lack it.
3196
3197         * http.c (gethttp): Store the "authorized" state of the persistent
3198         connection.
3199         (request_remove_header): New function.
3200         (gethttp): Don't send the "Basic" authentication if the connection
3201         is already authorized.
3202
3203 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
3204
3205         * utils.c (base64_encode): Treat input as unsigned chars.
3206         Required for correct encoding of binary stuff.
3207
3208 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
3209
3210         * http-ntlm.c: Format the function definitions in an
3211         ansi2knr-friendly fashion.
3212
3213 2005-04-22  Hrvoje Niksic  <hniksic@xemacs.org>
3214
3215         * http.c (gethttp): Handle multiple WWW-Authentication headers,
3216         only one of which is recognized.  Those are sent by IIS with NTLM
3217         authorization.
3218         (create_authorization_line): Propagate information whether
3219         authorization is finished.
3220         (gethttp): Only stop authorization when it's really finished, not
3221         after fixed two steps.
3222
3223 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
3224
3225         * gen_sslfunc.c (ssl_init): Fix warning message text; mark the
3226         message as translatable.
3227
3228 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
3229
3230         * main.c (print_help): Print the EGD option outside the cluster of
3231         SSL options.
3232
3233 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
3234
3235         * http-ntlm.c (ntlm_output): Fix setting the domain.
3236         Suggested by Sami Krank.
3237
3238 2005-04-20  Mauro Tortonesi  <mauro@ferrara.linux.it>
3239
3240         * connect.c: Set IPV6_V6ONLY socket option when -6 switch is used.
3241
3242 2005-04-20  FUJISHIMA Satsuki  <sf@FreeBSD.org>
3243
3244         * http.c (request_set_header): Fix the check whether a new header
3245         needs to be allocated.
3246
3247 2005-04-18  Hrvoje Niksic  <hniksic@xemacs.org>
3248
3249         * utils.c (base64_encode): Use the parameter order that makes more
3250         sense.  Return the length of the base64 written.  Updated all
3251         callers.
3252
3253 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
3254
3255         * http.c (request_set_header): Free NAME when VALUE is NULL and
3256         freeing the header name is requested.
3257
3258 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
3259
3260         * snprintf.c (fmtstr): Declare VALUE as const char *.
3261         Based on patch by Russ Allbery.
3262
3263 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
3264
3265         * snprintf.c (fmtfp): More correct handling of significant digit
3266         count with %g -- 0.002 has one significant digit, not three.
3267
3268 2005-04-16  Hrvoje Niksic  <hniksic@xemacs.org>
3269
3270         * retr.c (fd_read_body): Respect read timeout with non-interactive
3271         or no progress gauge -- treat ETIMEDOUT specially only when
3272         progress_interactive.
3273         Reported by FUJISHIMA Satsuki.
3274
3275 2005-04-16  FUJISHIMA Satsuki  <sf@FreeBSD.org>
3276
3277         * http.c (gethttp): Don't use HTTP/1.0 persistent connections over
3278         proxy.
3279
3280 2005-04-16  Hrvoje Niksic  <hniksic@xemacs.org>
3281
3282         * snprintf.c: Use the PARAMS macro to handle prototypes.  Write
3283         function definitions in the ansi2knr-friendly way.
3284         (fmtstr): If string precision is specified, don't read VALUE past
3285         it.
3286         (dopr): Actually print %g and %e formats.
3287         (fmtfp): Fix a bug that caused 0.01 to be printed as 0.1.
3288         (fmtfp): Use LLONG in floating point conversions to be able to
3289         convert more digits.
3290         (fmtfp): Interpret precision as number of significant digits with
3291         %g.
3292         (fmtfp): Omit trailing decimal zeros with %g.
3293
3294         * snprintf.c: Don't include <ctype.h> because none of it is used.
3295         Include strings.h/string.h, as per Autoconf.
3296
3297 2005-04-15  Hrvoje Niksic  <hniksic@xemacs.org>
3298
3299         * ptimer.c: Use _POSIX_TIMERS - 0 > 0, which handles the case when
3300         _POSIX_TIMERS is defined but empty, as well as the case when it is
3301         undefined.  Do the same with the check for _POSIX_MONOTONIC_CLOCK.
3302         Suggested by Larry Jones.
3303
3304 2005-04-15  Hrvoje Niksic  <hniksic@xemacs.org>
3305
3306         * ptimer.c: Check that _POSIX_TIMERS is defined as well as > 0.
3307         Problem reported by Steven M. Schweda.
3308
3309 2005-04-14  Hrvoje Niksic  <hniksic@xemacs.org>
3310
3311         * http.c (skip_short_body): Print the skipped body data in debug
3312         mode.
3313         (skip_short_body): Don't skip more than 4k of body data.
3314         (skip_short_body): Return whether the skipping was successful.
3315         (gethttp): If skip_short_body failed, invalidate the connection.
3316
3317 2005-04-12  Gisle Vanem  <giva@bgnett.no>
3318
3319         * ftp.c (getftp): Ditto.
3320
3321         * http.c (gethttp): Open the output file in binary mode.
3322
3323 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3324
3325         * hash.c: Conditionalize including config.h on HAVE_CONFIG_H
3326         instead of on STANDALONE.
3327
3328 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3329
3330         * gen_sslfunc.c (ssl_print_errors): Made static.
3331         (ssl_print_errors): Eliminate potentially dangerous fixed-size
3332         error buffer.  Passing NULL to ERR_error_string causes it to use
3333         its own static buffer, which is fine for our purposes.
3334
3335         * gen_sslfunc.c: Include gen_sslfunc.h.  Make the declarations of
3336         ssl_init and ssl_conect match the actual definitions.
3337         (ssl_connect): Simply return a boolean, the SSL context is no
3338         longer useful as a return value.
3339
3340         * retr.c: Don't include SSL headers; we don't need them.
3341
3342 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3343
3344         * config-post.h: Don't define _VA_LIST under Solaris; it breaks
3345         compilation with GCC 3.4 under Solaris 10.  (It was defined to
3346         avoid a warning with previous versions of GCC.)
3347
3348 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3349
3350         * xmalloc.c (register_ptr): Warn the user to increase SZ prior to
3351         aborting.
3352
3353 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3354
3355         * convert.c (convert_cleanup): Free converted_files.
3356
3357 2005-04-10  Hrvoje Niksic  <hniksic@xemacs.org>
3358
3359         * wget.h (DEBUGP): Use __builtin_expect to give a hint to GCC that
3360         opt.debug is false in the vast majority of cases.
3361
3362 2005-04-10  Hrvoje Niksic  <hniksic@xemacs.org>
3363
3364         * config-post.h: Declare alloca as void *, not char *.
3365
3366 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
3367
3368         * recur.c (download_child_p): When -p is used, (temporarily)
3369         ignore accept/reject rules for HTMLs, even when they are at the
3370         maximum recursion depth.  That is because with -p we are, if
3371         necessary, overstepping the max. depth to get the requisites.
3372
3373 2004-06-12  Larry Jones <lawrence.jones@ugsplm.com>
3374
3375         * recur.c (download_child_p): Correct the logic in check number 6:
3376         test opt.reclevel (not DEPTH) against INFINITE_RECURSION.
3377
3378 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
3379
3380         * url.c: Use "static const" in preference to "const static".
3381         Sun's cc warns that "storage class after type is obsolescent".
3382
3383         * url.c (urlchr_table): Don't mark ~ as unsafe, too many broken
3384         web sites are confused when ~ is changed to %7E.  Their servers
3385         redirect /%7Efoo/ to /~foo/, which Wget again accesses using %7E,
3386         causing further redirections, therefore looping infinitely.  See
3387         Debian bug #301624 for an example.
3388
3389 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
3390
3391         * alloca.c: Include wget.h to be able to use xmalloc.  In addition
3392         to defining malloc to xmalloc, also define free to xfree.
3393
3394 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
3395
3396         * http-ntlm.c (ntlm_output): Use "char", not "unsigned char" for
3397         ntlmbuf.  Our base64 functions accept char anyway.
3398         (ntlm_output): Join up the format string, since we nominally
3399         support K&R compilers.
3400         (ntlm_output): Ditto.
3401
3402 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3403
3404         * ptimer.c: Use Windows timers under Cygwin, whose POSIX timer
3405         implementation is incomplete.
3406
3407 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3408
3409         * ptimer.c (struct ptimer): Remove the unused initialized field.
3410
3411         * ptimer.c: Renamed function parameters from WT (which used to
3412         stand for wget_timer or wtimer) to PT.
3413
3414 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3415
3416         * ptimer.c (posix_init): Be smarter about choosing clocks.  In
3417         decreasing order of preference, use CLOCK_MONOTONIC,
3418         CLOCK_HIGHRES, and CLOCK_REALTIME.
3419         (ptimer_allocate): Removed.
3420
3421         * ptimer.c: Refactor the code by cleanly separating the
3422         architecture-dependent code from the architecture-independent
3423         code.
3424
3425 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3426
3427         * ptimer.c (ptimer_init): Explicitly check that
3428         _POSIX_MONOTONIC_CLOCK is *both* defined and >=0.  (Undefined
3429         symbols are >=0.)
3430
3431 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3432
3433         * ptimer.c (ptimer_diff): Fix typo affecting Windows build.
3434
3435 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3436
3437         * ptimer.c (ptimer_init): In fact, _POSIX_MONOTONIC_CLOCK needs to
3438         be >= 0.
3439
3440         * ptimer.c (ptimer_init): Check whether _POSIX_MONOTONIC_CLOCK is
3441         defined instead of whether it's greater than 0.  glibc defines it
3442         to 0, but still makes it available via sysconf.
3443
3444 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3445
3446         * mswindows.c (str_to_int64): Rename OVERFLOW and UNDERFLOW to
3447         INT64_OVERFLOW and INT64_UNDERFLOW, since those names are used.
3448
3449 2005-04-07  Hrvoje Niksic  <hniksic@xemacs.org>
3450
3451         * ptimer.c: New file.  Move the "wtimer" functions from utils.c to
3452         this file and rename them to ptimer_.
3453
3454 2005-04-07  Hrvoje Niksic  <hniksic@xemacs.org>
3455
3456         * host.c (NO_ADDRESS): Define NO_ADDRESS only after the system
3457         headers have been included.
3458
3459 2005-04-06  Hrvoje Niksic  <hniksic@xemacs.org>
3460
3461         * http.c (pconn): Include NTLM data, which is per-connection.
3462         (known_authentication_scheme_p): Recognize NTLM authorization.
3463         (create_authorization_line): Call ntlm_input and ntlm_output.
3464
3465         * http-ntlm.c: New file, donated by Daniel Stenberg and originally
3466         written for curl, heavily modified for Wget.
3467
3468         * utils.c (base64_encode): Relocated from http.c, since it is now
3469         used by http-ntlm.c, and will possibly be used elsewhere.
3470         (base64_decode): New function, originally based on code from GNU
3471         recode.
3472
3473 2005-04-02  Hrvoje Niksic  <hniksic@xemacs.org>
3474
3475         * ftp.c (ftp_loop): Ditto.
3476
3477         * ftp-basic.c (ftp_pasv): Use the xzero shorthand for memset(0).
3478         (ftp_lpsv): Ditto.
3479
3480 2005-04-05  Mauro Tortonesi  <mauro@ferrara.linux.it>
3481
3482         * Makefile.in: removed string_t.c from list of source files.
3483
3484 2005-04-04  Mauro Tortonesi  <mauro@ferrara.linux.it>
3485
3486         * string_t.c: Removed.
3487
3488         * string_t.h: Removed.
3489
3490 2005-04-02  Hrvoje Niksic  <hniksic@xemacs.org>
3491
3492         * url.c (rewrite_shorthand_url): Only accept recognized schemes.
3493         That way "foo:80" will correctly be rewritten to "http://foo:80"
3494         instead of left unchanged and ultimately rejected because of
3495         "unsupported scheme foo".
3496
3497 2005-03-31  Hrvoje Niksic  <hniksic@xemacs.org>
3498
3499         * utils.c (number_to_string): Avoid explicit 64-bit constants;
3500         construct them by multiplication at compile-time.
3501
3502         * utils.c, elsewhere: Don't append "L" to 32-bit integer
3503         constants; we aren't really compilable on 16-bit systems anyway.
3504
3505         * hash.c (prime_size): Remove primes larger than 2^31, but include
3506         2^31-1, which is prime.
3507
3508 2005-03-30  Hrvoje Niksic  <hniksic@xemacs.org>
3509
3510         * utils.c (string_set_to_array): New function.
3511
3512         * convert.c: Replace the use of "slists" with sets/hash-tables,
3513         which in fact suit the intended purpose much better.
3514         downloaded_html_list is removed altogether.
3515
3516 2005-03-29  Hrvoje Niksic  <hniksic@xemacs.org>
3517
3518         * ftp.h (enum): Rename GLOBALL, GETALL, and GETONE to
3519         GLOB_GLOBALL, GLOB_GETALL, and GLOB_GETONE to avoid conflict with
3520         Linux headers.
3521
3522 2005-03-29  Hrvoje Niksic  <hniksic@xemacs.org>
3523
3524         * utils.c (numdigit): More correct handling of negative numbers.
3525
3526 2005-03-21  Hrvoje Niksic  <hniksic@xemacs.org>
3527
3528         * http.c (gethttp): Print the human-readable size.
3529
3530         * ftp.c (getftp): Print the human-readable size of the file to be
3531         downloaded.
3532
3533         * utils.c (human_readable): New function.
3534
3535         * utils.c: Renamed "legible" to "with_thousand_seps",
3536         "legible_large_int" to "with_thousand_seps_large", and "legible_1"
3537         to "add_thousand_seps".
3538
3539 2005-03-21  Hrvoje Niksic  <hniksic@xemacs.org>
3540
3541         * http.c (gethttp): Inhibit persistent connections when talking to
3542         proxies, as mandated by RFC 2068.
3543
3544 2005-03-20  Hrvoje Niksic  <hniksic@xemacs.org>
3545
3546         * url.c (unescape_single_char): New function.
3547         (url_escape_dir): Use it to unescape slashes in directory
3548         components.
3549         (url_string): Escape unsafe chars in host name, except for the ':'
3550         charaters, which can appear in IPv6 addresses.
3551
3552         * main.c (main): Don't access the cookie jar directly.
3553
3554         * log.c (escnonprint_internal): Correctly calculate the needed
3555         string size.  Don't forget the buffer's new size after having
3556         reallocated it.
3557         (log_cleanup): New function.  Free the escnonprint ring data.
3558
3559         * init.c (cleanup): Don't free the cookie jar explicitly, it is
3560         now done by http_cleanup.
3561         (cleanup): opt.user_headers is now a vector, free it with
3562         free_vec.
3563
3564         * http.c (gethttp): Make sure to free the request data, the status
3565         message, and the response data before returning from the function.
3566         (save_cookies): New function.
3567         (http_cleanup): Free the cookie jar here.
3568
3569         * hash.c: Renamed string_hash to hash_string and ptrhash to
3570         hash_pointer.  Exported hash_pointer.
3571
3572         * xmalloc.c: Organized malloc_table (previously malloc_debug) as a
3573         simple EQ hash table.  register_ptr and unregister_ptr are now of
3574         O(1) complexity.
3575
3576         * xmalloc.c: Renamed "*_debug" to debugging_* and "*_real" to
3577         checking_*.
3578
3579 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
3580
3581         * utils.c (debug_test_md5): Moved to gen-md5.c.
3582
3583         * mswindows.h: Don't declare inet_ntop, since we don't use it.
3584
3585         * mswindows.h: For consistency, also wrap closesocket, it being
3586         a Winsock call.
3587
3588         * mswindows.h: Don't declare sleep and usleep; we're defining
3589         xsleep now.
3590
3591         * mswindows.h (mkdir): Don't special-case Borland C, _mkdir
3592         works there as well.
3593
3594         * host.c: Don't include winsock header files; the correct ones
3595         are already included by mswindows.h.
3596
3597         * mswindows.c (xsleep): Round toward the nearest millisecond
3598         in an attempt to avoid average short sleeps.
3599
3600         * utils.c (wtimer_granularity): Report correct values for
3601         Windows timers and for high-resolution timers.
3602
3603         * utils.c (wtimer_initialize_once): New function, called to
3604         initialize the timer frequency.
3605
3606         * utils.c: Replace the use of GetSystemTime with high-resolution
3607         counters under Windows.  When high-resolution counters are
3608         unavailable, use GetTickCount().
3609
3610 2005-03-15  Hrvoje Niksic  <hniksic@xemacs.org>
3611
3612         * retr.c (fd_read_body): Undo the 2004-11-18 change.  Instead,
3613         always be "exact".
3614
3615 2005-03-17  Hrvoje Niksic  <hniksic@xemacs.org>
3616
3617         * ftp-basic.c (ftp_login): Don't free the string if ftp_response
3618         returned an error status because the line didn't get allocated in
3619         the first place.
3620
3621 2005-03-15  Hrvoje Niksic  <hniksic@xemacs.org>
3622
3623         * http.c (read_http_response_head): Limit the response size to 64k
3624         bytes.
3625
3626         * retr.c (fd_read_hunk): Accept a MAXSIZE argument that limits the
3627         number of bytes the function is allowed to allocate.
3628         (fd_read_line): Limit the line to 4096 bytes.
3629
3630 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
3631
3632         * wget.h: Include options.h after wgint has been defined.
3633
3634         * options.h (struct options): Declare options processed with
3635         cmd_bytes as wgint, not long.
3636
3637 2005-03-18  Hrvoje Niksic  <hniksic@xemacs.org>
3638
3639         * init.c (cmd_file): Use concat_strings.
3640
3641         * http.c (basic_authentication_encode): Use concat_strings.
3642
3643         * ftp-ls.c (ftp_index): Use concat_strings.
3644
3645         * ftp-basic.c (ftp_request): Use concat_strings.
3646
3647         * utils.c (concat_strings): New function.
3648
3649 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
3650
3651         * init.c (simple_atof): Handle negative numbers; skip whitespace
3652         before the number.
3653         (simple_atoi): Ditto.  Also, check for overflow and underflow.
3654         (cmd_number): Bail out on negative numbers.
3655         (parse_bytes_helper): Ditto.
3656
3657 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3658
3659         * http.c (gethttp): Handle multiple Set-Cookie headers sent by
3660         remote server.
3661
3662 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3663
3664         * init.c (defaults): Use passive FTP by default.
3665
3666 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3667
3668         * mswindows.c: Provide wrappers to Winsock functions that set
3669         errno to WSAGetLastError() in case of failure.  Also provide a
3670         Windows-specific version of strerror.
3671
3672         * mswindows.h: Wrap calls to socket, bind, connect, recv, send,
3673         select, getsockname, getpeername, and setsockopt.
3674
3675 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3676
3677         * url.c (url_parse): Reject port numbers larger than 65535.  We
3678         also check for overflow while parsing port numbers.
3679
3680 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3681
3682         * utils.c (read_file): Don't use wgint for file size; LFS won't
3683         work since the file is mmap'ed as a whole.
3684
3685         * options.h: Don't include stdio.h.
3686
3687         * log.c: Ditto.
3688
3689         * init.c: Disambiguate assignment from non-zero test to avoid
3690         Borland C warning.
3691
3692         * http.c (response_new): Don't needlessly post-increment count.
3693
3694         * hash.c: Include stdio.h.
3695
3696         * gnu-md5.h: Don't include stdio.h.
3697
3698         * getopt.h (struct option): Always use const.
3699
3700         * ftp.c (getftp): Avoid unnecessary assignment to RES to avoid
3701         Borland C warning.
3702
3703         * ftp-ls.c: Disambiguate assignment from non-zero test to avoid
3704         Borland C warning.
3705
3706         * cmpt.c (strptime_internal): Don't initialize rp_backup when
3707         !_NL_CURRENT to avoid Borland C warning.
3708
3709 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3710
3711         * utils.c (fopen_excl): Fix parse error when O_BINARY is
3712         available.
3713
3714 2005-03-05  Hrvoje Niksic  <hniksic@xemacs.org>
3715
3716         * url.c (url_file_name): Don't allow hosts named ".." to be
3717         appended as path elements.
3718
3719 2005-03-03  Hrvoje Niksic  <hniksic@xemacs.org>
3720
3721         * retr.c (retrieve_url): Escape location header.
3722
3723         * http.c (print_server_response_1): Escape server response when
3724         printing it.
3725         (gethttp): Escape host name, status message, location header, and
3726         content type.
3727         (http_loop): Escape error message from server.
3728
3729         * host.c (lookup_host): Escape host name when printing it.
3730
3731         * ftp.c (getftp): Escape user name when printing it.
3732         (getftp): Escape remote file and directory for printing.
3733         (getftp): Escape server listing when printing it.
3734         (ftp_retrieve_list): Escape link name and file name.
3735         (ftp_retrieve_glob): Escape file name.
3736
3737         * ftp-basic.c (ftp_response): Escape server response when printing
3738         it.
3739
3740         * cookies.c (parse_set_cookies): Escape the cookie field when
3741         printing it.
3742         (parse_set_cookies): Escape contents of remote header.
3743         (cookie_handle_set_cookie): Escape host name and cookie domain.
3744
3745         * connect.c (connect_to_ip): Escape the host name.
3746
3747         * log.c (escnonprint): New function, used for printing strings
3748         coming from the server that possibly contain non-ASCII characters.
3749         (escnonprint_uri): Ditto.
3750
3751 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
3752
3753         * ftp.c (getftp): Ditto.
3754
3755         * http.c (gethttp): When we're not supposed to overwrite files,
3756         use fopen_excl to open the file and recompute the file name.
3757
3758         * log.c (redirect_output): Use unique_create to avoid a race
3759         condition.
3760
3761         * mswindows.c (fake_fork_child): Use unique_create.
3762
3763         * utils.c (fopen_excl): New function that opens a stdio stream
3764         with the O_EXCL flag (where available).
3765         (unique_create): New function, like unique_name, but also creating
3766         the file and returning a file pointer.
3767         (fork_to_background): Use unique_create to create the file
3768         immediately to avoid race condition with multiple instances of
3769         wget -b.
3770
3771 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
3772
3773         * host.c (lookup_host): Test for AI_ADDRCONFIG directly, instead
3774         of checking for HAVE_GETADDRINFO_AI_ADDRCONFIG.
3775
3776 2005-02-23  Hrvoje Niksic  <hniksic@xemacs.org>
3777
3778         * host.c (is_valid_ipv6_address): Move here from url.c.
3779         (lookup_host): If the address is numeric, don't print the
3780         "resolving..." line, don't set up DNS timeouts, and set the
3781         AI_NUMERICHOST hint, where available.
3782
3783 2005-02-26  Gisle Vanem  <giva@bgnett.no>
3784
3785         * utils.c: Use the nnnLL syntax under GCC.  Define struct_stat to
3786         struct _stati64 under __MINGW32__ as well as under MS VC.
3787
3788 2005-02-26  Hrvoje Niksic  <hniksic@xemacs.org>
3789
3790         * utils.c: Use the nnnI64 syntax for __int64 constants under all
3791         Windows compilers.
3792         (SPRINTF_WGINT): Use "%I64" under all Windows compilers.
3793
3794         * mswindows.h (WGINT_MAX): Use the nnnI64 syntax for
3795         __int64 constants under all Windows compilers.
3796         (struct_stat): Use `struct stati64' under Borland C.
3797         (fstat): Don't redefine to _fstati64 under Borland.
3798
3799         * mswindows.c: Define str_to_int64 under Borland C as well as
3800         under (older) Visual C.
3801
3802 2005-02-25  Hrvoje Niksic  <hniksic@xemacs.org>
3803
3804         * ftp.c (getftp): Initialize err to suppress compiler warning.
3805
3806 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
3807
3808         * ftp.c (ftp_expected_bytes): Fix bug that caused infloop because
3809         of not correctly skipping the '(' character.
3810
3811 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
3812
3813         * mswindows.c (wget_ftello): Removed.
3814
3815         * mswindows.h: Remove bogus definition of stat.
3816         (wget_ftello): Remove the leftover ftello replacement.
3817
3818 2005-02-20  Hrvoje Niksic  <hniksic@xemacs.org>
3819
3820         * mswindows.c (wget_ftello): Wget's replacement for ftello.
3821
3822         * utils.c (file_size): Use ftello where available.
3823
3824         * ftp-ls.c (ftp_parse_unix_ls): Use str_to_wgint to parse the file
3825         size.
3826         (ftp_parse_winnt_ls): Ditto.
3827
3828         * ftp-basic.c (ftp_size): Use str_to_wgint to convert number to
3829         wgint; pass 10 instead of 0 as the BASE argument.
3830
3831         * ftp.c (ftp_expected_bytes): Use str_to_wgint to parse the file
3832         size.
3833
3834         * sysdep.h (LARGE_INT_FMT): Use __int64 as LARGE_INT on
3835         MSVC/Windows; print it with "%I64".
3836
3837         * wget.h: Define a `wgint' type, normally aliased to (the possibly
3838         64-bit variant of) off_t.
3839
3840         * all: Use `wgint' instead of `long' for numeric variables that
3841         can hold file sizes.
3842
3843         * utils.c (number_to_string): Support printing of `wgint'
3844         argument.
3845         (number_to_static_string): New function.
3846
3847         * all: Replace printf("%ld", long_value) with printf("%s",
3848         number_to_static_string(wgint_value)).
3849
3850 2005-02-18  Mauro Tortonesi <mauro@ferrara.linux.it>
3851
3852         * main.c: Added the --ftp-passwd command line option.
3853
3854         * init.c: Renamed command passwd to ftppasswd.
3855
3856 2005-02-11  Mauro Tortonesi <mauro@ferrara.linux.it>
3857
3858         * string_t.c: Fixed a bug in do_escape and triggered escape of
3859         backslashes in string_escape to avoid ambiguities in the result
3860         string.
3861
3862 2005-02-10  Mauro Tortonesi <mauro@ferrara.linux.it>
3863
3864         * string.h: Renamed to string_t.h to fix a compilation conflict
3865         with the string.h header in the standard C library.
3866
3867         * string.c: Renamed to string_t.c for consistency with string.h.
3868
3869         * string_t.c: Ditto.
3870
3871         * string_t.h: Ditto.
3872
3873 2004-12-31  Mauro Tortonesi <mauro@ferrara.linux.it>
3874
3875         * string.c: New file.
3876
3877         * string.h: New file.
3878
3879         * Makefile.in: Added string.c to the list of modules to compile.
3880
3881         * main.c: Updated copyright.
3882
3883 2004-11-18  Ulf Harnhammar <ulf.harnhammar.9485@student.uu.se>
3884
3885         * ftp-ls.c: Fixed a problem in ftp_parse_winnt_ls that could allow a
3886         malicious remote FTP server to crash wget.
3887
3888 2004-11-18  Hans-Andreas Engel <engel@node.ch>
3889
3890         * http.c: Enable --convert-links (-k) when a single page is downloaded
3891         via --output-document (-O).
3892
3893 2004-11-18  Mauro Tortonesi <mauro@deepspace6.net>
3894
3895         * connect.c: Minor correction to the comment in front of fd_peek.
3896
3897 2004-11-18  Leonid Petrov <nouser@lpetrov.net>
3898
3899         * retr.c: Fix a timeout problem in fd_read_body when using http_proxy.
3900
3901 2004-11-15  YAMAZAKI Makoto <Yamazaki.Makoto@fujixerox.co.jp>
3902
3903         * netrc.c: Fix termination by assertion bug in netrc parsing.
3904
3905 2004-05-09  David Fritz  <zeroxdf@att.net>
3906
3907         * mswindows.c (fake_fork): Pass entire command line to the child
3908         process.
3909
3910 2004-03-31  Hrvoje Niksic  <hniksic@xemacs.org>
3911
3912         * http.c (gethttp): Fix typo: SCHEME_SSL -> SCHEME_HTTPS.
3913
3914 2004-03-30  Hrvoje Niksic  <hniksic@xemacs.org>
3915
3916         * http.c (gethttp): Send the Proxy-Authorization header over
3917         non-SSL connections too.
3918
3919 2004-03-25  David Fritz  <zeroxdf@att.net>
3920
3921         * mswindows.c (fake_fork_child): Ignore error code when
3922         OpenFileMapping() fails; assume it failed because the object does
3923         not exist.
3924
3925 2004-03-24  David Fritz  <zeroxdf@att.net>
3926
3927         * mswindows.c (fake_fork): New function.
3928
3929         * mswindows.c (fork_to_background): Use it.
3930
3931 2004-03-19  David Fritz  <zeroxdf@att.net>
3932
3933         * mswindows.c (ws_hangup): Incorporate old fork_to_background()
3934         code.  Add event name argument.
3935         (fork_to_backgorund): Now a simple wrapper around ws_hangup().
3936         (ws_handler): Correctly handle the case when neither CTRLC_BACKGND
3937         nor CTRLBREAK_BACKGND are defined.  Don't bother handling close,
3938         logoff, or shutdown events.  Call ws_hangup() with the correct
3939         event name; don't assume it was CTRL+Break.
3940
3941 2004-03-19  Hrvoje Niksic  <hniksic@xemacs.org>
3942
3943         * url.c (url_parse): Decode %HH sequences in host name.
3944
3945 2004-03-04  Hrvoje Niksic  <hniksic@xemacs.org>
3946
3947         * convert.c (local_quote_string): Quote "#" as "%23" and "%" as
3948         "%25" when creating links to local files.
3949
3950 2004-03-02  David Fritz  <zeroxdf@att.net>
3951
3952         * mswindows.c (ws_percenttitle): Guard against future changes by
3953         doing nothing if the proper variables have not been initialized.
3954         Clamp percentage value.
3955
3956 2004-03-04  Gisle Vanem  <giva@bgnett.no>
3957
3958         * retr.c (fd_read_body): Don't change console title if quiet.
3959
3960 2004-02-25  David Fritz  <zeroxdf@att.net>
3961
3962         * mswindows.c (set_sleep_mode): Remove argument and return value.
3963         Call GetModuleHandle() instead of LoadLibrary()/FreeLibrary() for
3964         kernel32.dll.  Use typedef for function-pointer.  Don't cast
3965         l-value.  Don't use dereference operator when calling through
3966         function-pointer.
3967         (ws_startup): Update call to set_sleep_mode().
3968         (ws_cleanup): Remove call to set_sleep_mode().
3969
3970 2004-02-23  David Fritz  <zeroxdf@att.net>
3971
3972         * http.c (http_loop): Ditto.
3973
3974         * ftp.c (ftp_loop_internal): Update call to ws_changetitle().
3975
3976         * main.c (main): Don't bother calling ws_changetitle().
3977
3978         * mswindows.h (ws_changetitle): Update prototype.
3979
3980         * mswindows.c (ws_changetitle): Remove second argument.  Use
3981         xfree_null().
3982         (ws_percenttitle): Only update title when percentage has changed.
3983
3984 2004-02-23  David Fritz  <zeroxdf@att.net>
3985
3986         * mswindows.h: Ditto.
3987
3988         * mswindows.c: Misc. formatting/comment tweaks throughout.
3989
3990 2004-02-20  David Fritz  <zeroxdf@att.net>
3991
3992         * main.c (print_help): Remove call to ws_help().
3993
3994         * mswindows.c (ws_help): Remove.
3995
3996         * mswindows.h (ws_help): Remove.
3997
3998 2004-02-16  David Fritz  <zeroxdf@att.net>
3999
4000         * init.c (home_dir): Use aprintf() instead of xmalloc()/sprintf().
4001         Under Windows, if $HOME is not defined, use the directory that
4002         contains the Wget binary instead of hard-coded `C:\'.
4003         (wgetrc_file_name): Under Windows, look for $HOME/.wgetrc then, if
4004         not found, look for wget.ini in the directory of the Wget binary.
4005
4006         * mswindows.c (ws_mypath): Employ slightly more robust methodology.
4007         Strip trailing path separator.
4008
4009 2004-02-06  Hrvoje Niksic  <hniksic@xemacs.org>
4010
4011         * http.c (gethttp): Respect --ignore-length.
4012         (gethttp): Inhibit keep-alive if --ignore-length is specified.
4013
4014 2004-02-06  Hrvoje Niksic  <hniksic@xemacs.org>
4015
4016         * connect.c (sockaddr_set_data): Zero out
4017         sockaddr_in/sockaddr_in6.  Apparently BSD-derived stacks need this
4018         when binding a socket to local address.
4019
4020 2004-02-04  Hrvoje Niksic  <hniksic@xemacs.org>
4021
4022         * hash.c: Make the file compilable outside Wget source tree when
4023         -DSTANDALONE is used.
4024
4025 2004-01-29  Hrvoje Niksic  <hniksic@xemacs.org>
4026
4027         * utils.c (determine_screen_width): Return 0 if not running on
4028         Windows or on a TIOCGWINSZ-capable system.
4029
4030 2004-01-28  David Fritz  <zeroxdf@att.net>
4031
4032         * utils.c (determine_screen_width): Correctly determine console
4033         width under Windows.
4034
4035 2004-01-28  Christian Biere  <christianbiere@gmx.de>
4036
4037         * progress.c (bar_set_params): Fixed syntax error when HAVE_ISATTY
4038         was undefined.
4039
4040         * ftp.c (ftp_loop_internal): Allocate a larger buffer in case
4041         "try" gets translated to something large.  Ditto in http_loop in
4042         http.c.
4043
4044         * http.c (response_header_copy): Don't write to buf[BUFSIZE].
4045
4046         * ftp-opie.c (skey_response): Eliminate unnecessary string
4047         concatenation; just call gen_md5_update twice.
4048
4049 2004-01-25  Hrvoje Niksic  <hniksic@xemacs.org>
4050
4051         * utils.c (xsleep): Don't call usleep with values larger than
4052         1,000,000.
4053
4054 2003-12-16  Hrvoje Niksic  <hniksic@xemacs.org>
4055
4056         * http.c (gethttp): Fix generation of `Content-Length'.
4057
4058 2003-12-15  Gisle Vanem  <giva@bgnett.no>
4059
4060         * url.c (url_skip_credentials): Fixed return value; 'url' if no
4061         credentials.
4062
4063 2003-12-14  Hrvoje Niksic  <hniksic@xemacs.org>
4064
4065         * url.c (url_skip_credentials): Return a pointer directly.
4066
4067 2003-12-14  Hrvoje Niksic  <hniksic@xemacs.org>
4068
4069         * url.c (url_file_name): Ditto.
4070         (parse_errors): Ditto.
4071
4072         * retr.c (retr_rate): Ditto.
4073
4074         * progress.c (create_image): Ditto.
4075
4076         * netrc.c (parse_netrc): Ditto.
4077
4078         * main.c (struct cmdline_option): Ditto.
4079         (redirect_output_signal): Ditto.
4080
4081         * init.c (commands): Ditto.
4082
4083         * ftp-ls.c (ftp_index): Ditto.
4084
4085         * cookies.c (check_domain_match): Declare the pointer to a literal
4086         string as `const'.
4087
4088 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
4089
4090         * retr.c (fd_read_body): Pass total size to progress_create, not
4091         the remaining amount.
4092
4093 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
4094
4095         * retr.c (fd_read_body): Don't fiddle with "interactive timeout"
4096         if read timeout is unset.
4097
4098 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
4099
4100         * connect.c (bind_local): Don't set the IPV6_V6ONLY option on the
4101         socket.
4102
4103 2003-12-06  Hrvoje Niksic  <hniksic@xemacs.org>
4104
4105         * url.c (url_file_name): Respect the setting of
4106         opt.protocol_directories.
4107
4108         * main.c (main): Only check for ret=='?' when longindex is unset.
4109         (option_data): New option --protocol-directories.
4110
4111 2003-12-06  Hrvoje Niksic  <hniksic@xemacs.org>
4112
4113         * ftp.c (getftp): Ditto.
4114
4115         * http.c (gethttp): Correctly calculate bandwidth as total data
4116         read divided with download time.
4117
4118         * retr.c (fd_read_body): Separate the return values for data
4119         written and read.
4120
4121 2003-12-05  Hrvoje Niksic  <hniksic@xemacs.org>
4122
4123         * http.c (H_REDIRECTED): Respect the HTTP/1.1 "303 See Other"
4124         response code.
4125         Suggested by Dan Razzell.
4126
4127 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
4128
4129         * retr.c (fd_read_body): Report the amount of data *written* as
4130         amount_read.  This is not entirely logical, but that's what the
4131         callers expect, and it's not easy to change.
4132
4133         * ftp.c (ftp_loop_internal): Ditto.
4134
4135         * http.c (http_loop): Be smarter about assigning restval; if we're
4136         in the nth pass of a download, simply use the information we have
4137         about how much data has been retrieved as restval.
4138
4139         * ftp.c (getftp): Ditto for FTP "REST" command.
4140
4141         * http.c (gethttp): When the server doesn't respect range, skip
4142         the first RESTVAL bytes of the read body.  Never truncate the
4143         output file.
4144
4145         * retr.c (fd_read_body): Support skipping initial STARTPOS octets.
4146
4147 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
4148
4149         * http.c (skip_short_body): Renamed skip_body to skip_short_body;
4150         don't bother calling fd_read_body.
4151
4152 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
4153
4154         * retr.c (fd_read_body): Sanitize arguments and document them
4155         better.  Make sure the timer is created and updated only if
4156         necessary.  Updated callers.
4157
4158 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
4159
4160         * http.c (skip_body): New function.
4161         (gethttp): Use it to skip the body of the responses we don't care
4162         to download.  That allows us to reuse the connection.
4163         (gethttp): Trust that the HEAD requests will not generate body
4164         data.
4165
4166         * retr.c (fd_read_body): Don't write to OUT if it's NULL.
4167
4168 2003-11-29  Hrvoje Niksic  <hniksic@xemacs.org>
4169
4170         * http.c (gethttp): Initialize SSL only the first time when SSL
4171         URL is downloaded.
4172
4173 2003-11-29  Hrvoje Niksic  <hniksic@xemacs.org>
4174
4175         * cookies.c (cookie_header): Only generate the contents of the
4176         header, not the leading "Cookie: " or the trailing "\r\n".
4177
4178         * http.c (gethttp): When adding headers specified with `--header',
4179         allow them to override the headers generated by Wget.
4180
4181         * init.c (cmd_spec_header): Made opt.user_headers a vector.
4182
4183         * http.c (request_new): New function.  Returns a request structure
4184         which can be modified in various ways, most notably by adding HTTP
4185         headers to the request.
4186         (request_set_header): New function for adding the header to the
4187         request.  If the header is already available, it gets replaced.
4188         (request_send): Construct and send the request.
4189         (gethttp): Use the request_* functions to generate the request.
4190
4191 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
4192
4193         * http.c (gethttp): Don't include the Proxy-Authorization header
4194         in the request tunneled through proxy.
4195
4196 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
4197
4198         * http.c (gethttp): Use the CONNECT handle to establish SSL
4199         passthrough through non-SSL proxies.
4200
4201 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
4202
4203         * init.c: Don't #include netinet/Winsock stuff.
4204
4205 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
4206
4207         * http.c: Deleted the old functions header_process,
4208         header_extract_number, header_exists, header_strdup,
4209         http_process_range, http_process_none, http_process_type, and
4210         http_process_connection.
4211
4212         * http.c (response_new): New function.
4213         (response_header_bounds): Ditto.
4214         (response_header_copy): Ditto.
4215         (response_header_strdup): Ditto.
4216         (response_status): Ditto.
4217         (gethttp): Use the new response_* functions to parse the response.
4218         Support HTTP/0.9 responses.
4219
4220 2003-11-27  Hrvoje Niksic  <hniksic@xemacs.org>
4221
4222         * progress.c (create_image): Don't calculate ETA if nothing has
4223         been downloaded yet, because it causes division by zero.
4224
4225 2003-11-27  Hrvoje Niksic  <hniksic@xemacs.org>
4226
4227         * connect.c (bind_local): Rename sa_len to addrlen because IRIX
4228         headers define sa_len as a macro.
4229
4230 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
4231
4232         * html-parse.c (convert_and_copy): Remove embedded newlines when
4233         AP_TRIM_BLANKS is specified.
4234
4235 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
4236
4237         * ftp.c: Set con->csock to -1 where rbuf_uninitialize was
4238         previously used.
4239
4240 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
4241
4242         * Makefile.in (http$o): Added the trailing backslash that was
4243         missing.
4244
4245 2003-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
4246
4247         * headers.c: Removed.  The file is no longer relevant, now that no
4248         special handling of headers is done by the rbuf code.  Moved
4249         portions to http.c.
4250
4251 2003-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
4252
4253         * rbuf.c: Removed.
4254
4255         * ftp-basic.c (ftp_response): Use fd_read_line.  No longer use
4256         struct rbuf.  Updated all callers.
4257
4258         * http.c (gethttp): Use fd_read_head to read all the headers in
4259         one go.
4260         (next_header): New function.
4261
4262         * retr.c (fd_read_line): New function: reads a line from FD,
4263         leaving the rest of the data unread.
4264         (fd_read_head): New function.
4265
4266         * connect.c (fd_peek): New function, implements peeking.
4267         (poll_internal): New function.
4268         (fd_read): Use it.
4269         (fd_write): Ditto.
4270         (fd_peek): Ditto.
4271         (fd_register_transport): Allow registering a "peeker" callback.
4272
4273 2003-11-20  Hrvoje Niksic  <hniksic@xemacs.org>
4274
4275         * connect.c: Renamed xread/xwrite/xclose to
4276         fd_read/fd_write/fd_close.  The "x" prefix is not appropriate
4277         because the semantics have diverged from read/write/close too
4278         significantly.  Updated all callers.
4279
4280 2003-11-20  Hrvoje Niksic  <hniksic@xemacs.org>
4281
4282         * connect.c (sock_write): It's not necessary to initialize RES.
4283
4284 2003-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
4285
4286         * main.c (main): Don't reference opt.ipv4_only and opt.ipv6_only
4287         if IPv6 is disabled.
4288
4289 2003-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
4290
4291         * connect.c (socket_has_inet6): Only compile it if IPv6 is enabled
4292         and AI_ADDRCONFIG is missing.
4293
4294 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
4295
4296         * gen_sslfunc.c (ssl_init_prng): Warn the user when using a weak
4297         random seed.
4298
4299 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
4300
4301         * host.c (address_list_contains): Renamed address_list_find to
4302         address_list_contains because its result is boolean.
4303
4304 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
4305
4306         * connect.c (select_fd): Return 1 if select is not available.
4307
4308 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
4309
4310         * connect.c (connect_to_host): Don't reference address list after
4311         releasing it.
4312
4313 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
4314
4315         * main.c (print_help): Fix alignment of FTP options output.
4316
4317 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
4318
4319         * host.c (lookup_host): Check for the ability to create IPv6
4320         sockets here.
4321
4322         * init.c (defaults): Don't auto-set --inet4-only on IPv6-less
4323         systems.
4324
4325 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
4326
4327         * main.c (print_help): Fix typo in `-O' help message.  Fix docs of
4328         -Y/--proxy.  Fix docs of `--cookies' and `--glob'.  Improve docs
4329         of --convert-links.  Fix docs of SSL options.
4330
4331 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
4332
4333         * ftp-basic.c: Don't include <arpa/inet.h> and others because
4334         they're no longer needed.
4335
4336 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
4337
4338         * main.c (main): Don't allow setting of both opt.ipv4_only and
4339         opt.ipv6_only.
4340
4341         * init.c (defaults): Mark opt.ipv4_only specially when set
4342         automatically.
4343
4344 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
4345
4346         * host.c (lookup_host): Use AI_ADDRCONFIG only if the family is
4347         unspecified.  This ensures that specifying `--no-inet4' on systems
4348         where IPv6 resolves, but doesn't work behaves the same regardless
4349         of the availability of AI_ADDRCONFIG.
4350
4351 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
4352
4353         * host.c: Don't refer to the now-removed function
4354         forget_host_lookup in the documentation of lookup_host.
4355
4356 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
4357
4358         * http.c (persistent_available_p): Correctly specify the endpoint
4359         argument to socket_ip_address.
4360         (gethttp): When printing the "reusing connection to..." message,
4361         specify the host name of the reused connection, not the current
4362         host name.  That makes more sense because it provides a useful
4363         piece of information -- we know to which host we're supposed to
4364         connect anyway!
4365
4366 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
4367
4368         * init.c: Make sure the options are in alphabetic order!
4369
4370         * host.c (lookup_host): Merge lookup_host_passive and lookup_host
4371         after all -- having both would result in some code duplication.
4372         (lookup_host): Set hints.ai_family to AF_INET if ipv4_only is
4373         requested.  Likewise, set it to AF_INET6 for ipv6_only.  Specify
4374         AI_ADDRCONFIG where available.
4375         (lookup_host): New flag LH_REFRESH that specifies that a cached
4376         entry for HOST should be refreshed.
4377         (cache_query): New function.
4378         (cache_store): Ditto.
4379         (cache_remove): Ditto.
4380         (forget_host_lookup): No longer necessary, replaced with static
4381         function cache_remove.
4382
4383 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
4384
4385         * main.c: Enable -4 and -6 only if IPv6 is enabled.
4386
4387 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
4388
4389         * connect.c (register_transport): Renamed from register_extended.
4390         Explain the intended usage.
4391
4392 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
4393
4394         * url.c (uri_merge): Merging "foo" and "bar" should result in
4395         "bar", not in "foo/bar".
4396         (path_simplify): Don't remove empty path elements; don't
4397         special-case leading slash.
4398         (path_simplify): Don't swallow ".."'s at the beginning of string.
4399         E.g. simplify "foo/../../bar" as "../bar", not as "bar".
4400         (append_uri_pathel): Defang ".." path element upon encountering
4401         it.
4402
4403 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4404
4405         * http.c (persistent_available_p): Don't attempt to talk to two
4406         different SSL sites over the same secure connection.
4407
4408 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4409
4410         * http.c (gethttp): Ditto.
4411
4412         * ftp.c (getftp): Use retryable_socket_connect_error instead of
4413         CONNECT_ERROR.
4414
4415         * wget.h (CONNECT_ERROR): Removed.
4416
4417         * connect.c (retryable_socket_connect_error): New function instead
4418         of unsupported_socket_family_error.
4419
4420 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4421
4422         * wget.h (CONNECT_ERROR): Use it.
4423
4424         * connect.c (unsupported_socket_family_error): New function.
4425
4426 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4427
4428         * connect.c (bind_local): Renamed bindport to bind_local; return
4429         the socket directly.  Updated callers.
4430         (accept_connection): Renamed acceptport to accept_connection;
4431         return the created socket directly.  Updated callers.
4432
4433 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4434
4435         * init.c (defaults): Turn on opt.ipv4_only if we're compiling with
4436         IPv6, and AI_ADDRINFO is not available, and AF_INET6 sockets can't
4437         be created.
4438
4439 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4440
4441         * host.c (lookup_host): Document the fact that the addresses are
4442         returned in order.
4443
4444 2003-11-12  Hrvoje Niksic  <hniksic@xemacs.org>
4445
4446         * utils.c: Use limits.h only where available.
4447
4448         * hash.c: Use INVALID_PTR and INVALID_PTR_BYTE.  Include limits.h.
4449
4450 2003-11-11  Hrvoje Niksic  <hniksic@xemacs.org>
4451
4452         * main.c: Added options --inet4-only and --inet6-only.
4453
4454 2003-11-11  Hrvoje Niksic  <hniksic@xemacs.org>
4455
4456         * host.c (host_errstr): Use the more standard message "Unknown
4457         host".
4458
4459 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
4460
4461         * connect.c (connect_to_host): Use that flag to decide whether to
4462         re-resolve the host name.
4463
4464         * host.c (struct address_list): Added a flag that maintains
4465         whether the connection worked at some point.
4466
4467 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
4468
4469         * host.c (lookup_host): Special-case the numeric addresses only in
4470         the non-IPv6 case.
4471
4472 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
4473
4474         * connect.c (resolve_bind_address): Call lookup_host_passive.
4475         Make sure that opt.bind_address is resolved only once.
4476
4477         * host.c (lookup_host_passive): New function, handles "passive"
4478         lookups.
4479         (lookup_host): Remove the passive flags.  Remove the
4480         family-related flags -- use ip_default_family instead.
4481
4482 2003-11-09  Hrvoje Niksic  <hniksic@xemacs.org>
4483
4484         * html-url.c: Get URLs from <object data="...">.
4485
4486 2003-11-09  Hrvoje Niksic  <hniksic@xemacs.org>
4487
4488         * main.c (option_data): Specify the command to use for --mirror.
4489
4490 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4491
4492         * cookies.c (cookie_handle_set_cookie): Specify exact match for
4493         unspecified domains.
4494
4495 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4496
4497         * main.c (main): Removed one-letter options `-C', `-g', `-G', and
4498         `-s'.
4499
4500 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4501
4502         * main.c (main): Add --dont-remove-listing for backward
4503         compatibility with previous versions.
4504         (print_help): Fix typo, spotted by Dennis Smit.
4505
4506 2003-11-08  Gisle Vanem  <giva@bgnett.no>
4507
4508         * ftp-basic.c: Support Windows-2000 ftp servers. Win-2000 *is*
4509         Win-NT 5.0 so calling it ST_WINNT is okay I guess.
4510
4511 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4512
4513         * progress.c (update_speed_ring): Clear the speed ring when the
4514         download stalls.
4515
4516         * retr.c (get_contents): Specify 0.95s read timeout, so that the
4517         progress gauge can be updated even when data arrives very slowly
4518         or stalls.
4519
4520 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4521
4522         * utils.c (wtimer_allocate): Bless the use of wtimer_read on a
4523         timer that has merely been allocated because get_contents() does
4524         that.
4525         (wtimer_update): Abort if the timer is not initialized.
4526
4527 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4528
4529         * retr.c (get_contents): Pass the timer to limit_bandwidth().
4530
4531         * utils.c (wtimer_update): New function instead of wget_elapsed;
4532         just update the timer, but don't return anything.
4533         (wtimer_read): Read and return the last known value of the timer.
4534
4535 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4536
4537         * http.c (persistent_available_p): Instead of matching all the
4538         addresses of HOST and last host, determine the peer's IP address
4539         with socket_ip_address and see if that address is one of those
4540         HOST resolves to.
4541
4542         * host.c (address_list_match_all): Removed.
4543         (address_list_find): New function, finds an IP address in the
4544         address list.
4545
4546         * ftp.c (ftp_do_pasv): Get the peer's address here, and pass it to
4547         ftp_epsv so it doesn't need to call getpeername.
4548
4549         * ftp-basic.c (ftp_port): Use socket_ip_address instead of
4550         getpeername.
4551         (ftp_lprt): Ditto.
4552
4553         * connect.c (socket_ip_address): Replaces conaddr, generalized to
4554         either get peer's or local address.
4555         (sockaddr_get_data): Made local to this file.
4556
4557 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4558
4559         * hash.c (HASH_POSITION): Explicitly accept the hash function.
4560         (grow_hash_table): Extract ht->hash_function outside the loop.
4561         (hash_table_remove): Ditto.
4562         (hash_table_clear): Fill entries with 0xff to clear them.
4563         (hash_table_remove): Mark entries as deleted with the correct
4564         marker.
4565
4566 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4567
4568         * http.c (persistent_available_p): No reason for the host lookup
4569         to be silent -- it's a lookup like any other.
4570
4571 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4572
4573         * connect.c (register_extended): Check that fd >= 0.
4574
4575 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
4576
4577         * connect.c (LAZY_RETRIEVE_INFO): Set LAST_INFO.
4578
4579 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
4580
4581         * hash.c (NON_EMPTY): Use the all-bit-set value as the marker that
4582         the field is empty.  This allows NULL pointer and 0 value to be
4583         used as keys, which is necessary for the connect.c code to work
4584         when fd==0.
4585         (hash_table_new): Fill mappings with 0xff.
4586         (grow_hash_table): Ditto.
4587
4588 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
4589
4590         * url.c (url_parse): Allow empty ports.
4591
4592 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
4593
4594         * main.c (print_help): Break the help string into multiple chunks.
4595         (cmdline_option): New option handler OPT_FUNCALL.  Generalized
4596         HANDLE_CMD to generic DATA.
4597         (option_data): Use the new OPT_FUNCALL feature.
4598
4599 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
4600
4601         * log.h: Declare log_init, log_close, and
4602         log_request_redirect_output here.
4603
4604 2003-11-05  Dennis Smit  <ds@nerds-incorporated.org>
4605
4606         * main.c: (main): added --preserve-permissions option.
4607
4608         * ftp.c (ftp_retrieve_list): added support for
4609         --preserve-permissions option.
4610
4611         * init.c: added support for --preserve-permission option.
4612
4613         * option.h: added support for --preserve-permission option.
4614
4615 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
4616
4617         * main.c (init_switches): New function.  Convert option_data to
4618         long_options and short_options, which can be fed to getopt_long.
4619         (main): Execute command-line options by consulting option_data.
4620
4621 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
4622
4623         * gen_sslfunc.c (ssl_read): Implement a more correct check for
4624         EINTR.
4625         (ssl_write): Ditto.
4626         (init_ssl): Use a global SSL context.
4627
4628 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
4629
4630         * connect.c (xclose): Free INFO even if it doesn't provide a
4631         closer.
4632
4633 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
4634
4635         * connect.c: Updated all callers of
4636         iread/ssl_iread/iwrite/ssl_iwrite to use xread and xwrite instead.
4637
4638         * rbuf.h (struct rbuf): Removed the SSL member because SSL is
4639         handled automatically by xread.
4640
4641         * hash.c (ptrhash): Made private.
4642         (ptrcmp): Ditto.
4643         (inthash): Removed.
4644
4645         * connect.c (select_fd): Don't set errno, leave it to the caller.
4646
4647         * gen_sslfunc.c (connect_ssl): Use register_extended to register
4648         SSL callbacks for communication with SSL-enabled endpoints.
4649         (ssl_read): New function.
4650         (ssl_write): Ditto.
4651         (ssl_poll): Ditto.
4652         (ssl_close): Ditto.
4653
4654         * connect.c (register_extended): New function -- register
4655         callbacks for basic socket operations.
4656         (xread): Ditto.
4657         (xwrite): Ditto.
4658         (xclose): Ditto.
4659         (sock_read): New function, default implementation for reading.
4660         (sock_write): Ditto for writing.
4661         (sock_poll): Ditto for polling.
4662         (sock_close): Ditto for closing.
4663
4664 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
4665
4666         * connect.c (bindport): Fix compilation under pre-C99 compilers.
4667
4668 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
4669
4670         * connect.c (connect_to_ip): More compact error checking.
4671         (bindport): Don't treat failed setsockopt as a fatal error.
4672
4673 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
4674
4675         * connect.c (resolve_bind_address): Use a more accurate error
4676         message -- we're not binding to ANY, we're disabling bind
4677         altogether.
4678
4679 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
4680
4681         * cookies.c (save_cookies_mapper): Respect the setting of
4682         keep-session-cookies.
4683         (cookie_jar_load): Import session cookies.
4684         Based on code submitted by Nicolas Schodet.
4685
4686         * utils.c (datetime_str): Use information in TM when it's
4687         non-NULL.
4688
4689         * main.c (main): New option `--keep-session-cookies'.
4690
4691 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
4692
4693         * Makefile.in (realclean): Delete config.h.in.
4694
4695 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
4696
4697         * config-post.h: New file, included from now autogenerated
4698         config.h.in.
4699
4700 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
4701
4702         * progress.c (progress_handle_sigwinch): Don't call
4703         determine_screen_width() from the signal handler.  Instead, just
4704         set a volatile variable.
4705         (bar_create): Check whether SIGWINCH was received.
4706         (bar_update): Ditto.
4707
4708         * sysdep.h: Define SYSTEM_FNMATCH only if HAVE_FNMATCH_H is true.
4709
4710 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4711
4712         * utils.c (xsleep): New function.  Uses nanosleep where available,
4713         resuming sleeps interrupted by signals.  Updated callers of sleep
4714         and usleep to use xsleep.
4715
4716 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4717
4718         * ftp-basic.c (ftp_login): Remove shadowing (and bogus)
4719         declaration of SEED.
4720
4721 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4722
4723         * log.c (logvprintf): Documented better.  Renamed to
4724         log_vprintf_internal to avoid confusion with the public API
4725         functions logprintf and logputs.
4726
4727 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4728
4729         * wget.h (N_): Don't parenthesize argument.
4730
4731 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4732
4733         * host.h (ADDRESS_IPV4_DATA): Don't take the address of in.s_addr
4734         because that doesn't work on machines that define it as bitfield.
4735
4736 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4737
4738         * connect.c (select_fd): Generalize the third argument into WAIT,
4739         so that the caller can request waiting for both read and write.
4740         Updated callers.
4741
4742 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
4743
4744         * html-url.c (cleanup_html_url): Destroy the hash tables, don't
4745         just call free on them.
4746         (init_interesting): Use hash_table_put instead of string_set_add
4747         because we don't need the strdup that the latter function
4748         performs.
4749
4750         * init.c (cleanup): Don't pass NULL to cookie_jar_delete.
4751
4752         * xmalloc.c (xfree_real): Abort when passed a NULL pointer.
4753         (xfree_debug): Print at the file and line of the offending call to
4754         free.
4755
4756 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
4757
4758         * wget.h: Retired the `boolean' type.  Moved the DEFAULT_LOGFILE
4759         define to log.h.  Moved the INFINITE_RECURSION define to recur.h.
4760
4761         * xmalloc.h: Renamed FREE_MAYBE to xfree_null and moved the
4762         definition from wget.h to xmalloc.h.
4763
4764 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
4765
4766         * html-parse.c (decode_entity): New function; split the decoding
4767         of entities here.
4768         (convert_and_copy): Use it to decode entities.
4769         (decode_entity): Handle the &apos entity.
4770         (decode_entity): Don't decode Latin 1 numeric entities.  Don't
4771         decode &#0.
4772
4773 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
4774
4775         * ftp-opie.c (calculate_skey_response): Use uint32_t instead of
4776         `unsigned long' for the cheksum array.  Document the function.
4777
4778 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
4779
4780         * connect.c (acceptport): Don't call select_fd when timeout is not
4781         requested.
4782
4783 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
4784
4785         * host.c: Removed the ip_default_family global variable.
4786
4787         * host.c (lookup_host): Document the function.  Fixed declaration
4788         of VEC.
4789
4790 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
4791
4792         * various: Use new macros xnew, xnew0, xnew_array, and xnew0_array
4793         in various places.
4794
4795 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
4796
4797         * wget.h: Move declarations of malloc and logging code to
4798         xmalloc.h and log.h respectively to unclutter this file.
4799         (STRDUP_ALLOCA): Made it side-effect free.
4800
4801         * xmalloc.h: New files.  Define macros xnew, xnew0, xnew_array,
4802         and xnew0_array.
4803
4804         * xmalloc.c: New file.  Move the xmalloc routines here.
4805
4806 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
4807
4808         * connect.c (sockaddr_set_data): Remove the broken code that
4809         checked for NULL address.
4810
4811 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
4812
4813         * host.c (address_list_from_single): Removed.
4814         (address_list_from_ipv4_addresses): Renamed from
4815         address_list_from_vector.
4816
4817 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
4818
4819         * sysdep.h (CLOSE): Don't call close on file descriptors less than
4820         0, i.e. on uncreated sockets.
4821
4822         * connect.c (resolve_bind_address): Work on struct sockaddr
4823         directly.
4824         (connect_to_host): Replacement for connect_to_many.  Resolve HOST
4825         and connect to any of its addresses.  If we can't connect and the
4826         host name lookup was cached, try to resolve it again.  This should
4827         fix problems with hosts behind dynamic DNS.  Updated all callers.
4828         (connect_to_ip): Replacement for connect_to_one.  Removed SILENT;
4829         added the argument PRINT instead.  Updated all callers.
4830         (set_connection_host_name): Removed.
4831
4832         * host.c (address_list_address_at): New function instead of
4833         address_list_copy_one. It returns a pointer to ip_address *, so
4834         it's not necessary to copy the data.
4835         (address_list_cached_p): New function.
4836         (forget_host_lookup): Ditto.
4837
4838         * connect.c: Got rid of the MSOCK global variable.  Made bindport
4839         return the local socket it creates.  Added a new argument to
4840         acceptport, the socket to call accept on.  Updated callers.
4841         (closeport): Removed.
4842
4843         * connect.c: Moved the sockaddr code from host.c to this file,
4844         because most of that stuff is used for connecting, and has nothing
4845         to do with host names anyway.
4846         (sockaddr_set_data, sockaddr_get_data): New functions, replace the
4847         old sockaddr_set_address, sockaddr_set_port, sockaddr_get_address,
4848         and sockaddr_get_port.
4849
4850 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
4851
4852         * sysdep.h: Use `S >= 8' rather than `S == 8' when looking for
4853         large integers.
4854
4855 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
4856
4857         * url.c (append_uri_pathel): New argument ESCAPED_P that says
4858         whether [B, E) is to be treated as URL-escaped or not.  If
4859         ESCAPED_P is false, don't unescape the region.
4860         (url_file_name): u->file is not URL-escaped.
4861
4862 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
4863
4864         * retr.c (retrieve_from_file): Use retrieve_tree for
4865         page-requisites.
4866
4867         * main.c (main): Don't define opt.recursive when -p is used.
4868         Instead, make sure that recursion is used for HTTP in that case.
4869
4870 2003-10-29  Hrvoje Niksic  <hniksic@xemacs.org>
4871
4872         * host.h: Defined accessors for elements of ip_address.  Updated
4873         all callers.
4874         (address_list_match_all): Use memcmp in the non-IPv6 case.
4875
4876         * wget.h (CONNECT_ERROR): Don't retry connecting if connect()
4877         returned EAFNOSUPPORT.
4878
4879 2003-10-27  Mauro Tortonesi <mauro@deepspace6.net>
4880
4881         * connect.h: changed bindport prototype and added the related
4882         BIND_ON_IPV4_ONLY and BIND_ON_IPV6_ONLY flags.
4883
4884         * connect.c: changed bindport and resolve_bind_address to allow
4885         protocol-version specific DNS resolution. modified conaddr,
4886         acceptport and connect_to_one to make use of struct
4887         sockaddr_storage and of the new ip_address structure.
4888
4889         * ftp-basic.c: added LPRT/LPSV (RFC1639) support, refactored
4890         PORT/PASV (RFC959) and EPRT/EPSV (RFC2428) support code.
4891
4892         * ftp.c: added the ftp_do_port and ftp_do_pasv functions to
4893         handle FTP over IPv6.
4894
4895         * ftp.h: changed prototype of ftp_epsv and added prototypes for
4896         ftp_lpsv, ftp_lprt and ftp_eprt.
4897
4898         * host.c: renamed the
4899         wget_sockaddr_set_address and wget_sockaddr_get_addr, and
4900         wget_sockaddr_{s,g}et_port couples to sockaddr_{s,g}et_address and
4901         sockaddr_{g,s}et_port respectively.  changed
4902         address_list_match_all, address_list_from_addrinfo sockaddr_len,
4903         pretty_print_address, lookup_host, sockaddr_{s,g}et_address and
4904         sockaddr_{g,s}et_port to make use of struct sockaddr_storage and
4905         of the new ip_address structure.  removed map_ipv4_to_ip and
4906         map_ip_to_ipv4.
4907
4908         * host.h: redefined structure ip_address and removed structure
4909         wget_sockaddr.
4910
4911 2003-10-26  Hrvoje Niksic  <hniksic@xemacs.org>
4912
4913         * sysdep.h: Include inttypes.h where available.
4914
4915         * host.c: Switch from u_int32_t to uint32_t.
4916
4917 2003-10-26  Hrvoje Niksic  <hniksic@xemacs.org>
4918
4919         * netrc.c (parse_netrc): Reset the QUOTE flag after the closing
4920         quote.
4921
4922 2003-10-25  Hrvoje Niksic  <hniksic@xemacs.org>
4923
4924         * url.c (is_valid_ipv6_address): Reformat to GNU coding style.
4925         Use enums for NS_IN* constants.  Use ISXDIGIT.
4926
4927         * convert.c (construct_relative): Document better how the function
4928         works.
4929
4930 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
4931
4932         * config.h.in: Deploy preprocessor magic to avoid Ultrix's
4933         <netdb.h> include <bitypes.h> which defines its own u_int32_t.
4934         Reported by Bernhard Simon.
4935
4936 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
4937
4938         * version.c: Bump version.
4939
4940 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
4941
4942         * url.c: Ditto.
4943
4944         * html-parse.c (advance_declaration): Don't use trailing comma in
4945         enum because older compilers don't support it.
4946
4947         * utils.c: Don't redefine HAVE_SIGSETJMP.
4948
4949 2003-10-16  Hrvoje Niksic  <hniksic@xemacs.org>
4950
4951         * convert.c (construct_relative): Don't handle absolute files
4952         specially -- for example, -P/tmp/foo shouldn't imply that
4953         converted files must refer to "/tmp/foo/..."!
4954
4955 2003-10-15  Hrvoje Niksic  <hniksic@xemacs.org>
4956
4957         * http.c: Consider status 307 a valid redirect.
4958
4959 2003-10-15  Philip Stadermann  <philip.stadermann@credativ.de>
4960
4961         * ftp.c (ftp_retrieve_glob): Correctly loop through the list whose
4962         elements might have been deleted.
4963
4964 2003-10-13  Hrvoje Niksic  <hniksic@xemacs.org>
4965
4966         * html-url.c (tag_handle_meta): Set the Refresh link to expect
4967         HTML.
4968         (append_one_url): Renamed to append_url.
4969
4970 2003-10-13  Hrvoje Niksic  <hniksic@xemacs.org>
4971
4972         * sysdep.h: Only define u_int32_t.
4973
4974 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
4975
4976         * utils.c (large_int_to_string): Use snprintf() to print the
4977         number.  This will work even on systems where libc doesn't
4978         understand %lld, but the compiler does, because it will use our
4979         snprintf replacement.
4980
4981         * init.c (parse_bytes_helper): New function.
4982         (cmd_bytes): Use it to parse bytes, but cast the result to long.
4983         (cmd_bytes_large): Ditto, but store the result to LARGE_INT.  Used
4984         for --quota so that --quota=10G works even on machines without
4985         long long.
4986
4987         * options.h (struct options): Declare quota as LARGE_INT.
4988
4989         * retr.c (downloaded_exceeds_quota): Removed.
4990         (downloaded_increase): Ditto.
4991         (total_downloaded_bytes): New variable, replaces opt.downloaded,
4992         which was the wrong place for it anyway.  Updated callers of
4993         downloaded_exceeds_quota and downloaded_increase to check this
4994         variable directly.
4995
4996         * sysdep.h: Get rid of VERY_LONG_TYPE.  Use LARGE_INT for the same
4997         purpose, defined as `long', `long long' or `double', depending on
4998         size of long and whether long long is available.
4999
5000 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
5001
5002         * sysdep.h: Also check size of short for int32_t.
5003
5004 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
5005
5006         * host.c (lookup_host): Use u_int32_t to store the result of
5007         inet_addr().  That removes the need for offset fiddling, caring
5008         about endian-ness, etc.
5009
5010         * sysdep.h: Define int32_t and u_int32_t if not available.
5011
5012 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
5013
5014         * ftp-basic.c (ftp_epsv): Use socklen_t * as the third argument to
5015         getpeername.
5016
5017         * config.h.in: Define socklen_t stub.
5018
5019         * host.c (sockaddr_len): Return socklen_t.
5020
5021         * connect.c (conaddr): Use socklen_t as the third argument to
5022         accept, getsockname, and connect.
5023
5024 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
5025
5026         * recur.c (retrieve_tree): Don't descend into documents that are
5027         not expected to contain HTML, regardless of their content-type.
5028
5029         * html-url.c (tag_url_attributes): Record which attributes are
5030         supposed to yield HTML links that can be followed.
5031         (tag_find_urls): Propagate that information to the caller through
5032         struct urlpos.
5033
5034 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
5035
5036         * hash.c (find_mapping): Return the next available mapping when
5037         the key is not found, not NULL.
5038         (hash_table_put): Use find_mapping to find the storage for the new
5039         data.
5040         (hash_table_put): Grow the table before exceeding maximum
5041         fullness, not afterwards.
5042
5043 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
5044
5045         * hash.c (hash_table_new): Slightly change the meaning of the
5046         first parameter.  Instead of being the minimum initial size, it is
5047         now the minimum number of items that the hash table can take
5048         without needing to resize.
5049
5050 2003-10-09  Hrvoje Niksic  <hniksic@xemacs.org>
5051
5052         * html-url.c (init_interesting): Initialize interesting_tags and
5053         interesting_attributes as hash tables.  This simplifies the code
5054         immensely because hash tables handle allocation and remove
5055         duplicates automatically.
5056         (find_tag): Removed.
5057         (collect_tags_mapper): Instead of calling find_tag, simply get the
5058         entry from interesting_tags hash table, which is both simpler and
5059         faster.
5060
5061 2003-10-09  Hrvoje Niksic  <hniksic@xemacs.org>
5062
5063         * hash.c (hash_table_get): Declare hash-table argument as const.
5064         (find_mapping): Ditto.
5065         (hash_table_get_pair): Ditto.
5066         (hash_table_contains): Ditto.
5067         (hash_table_count): Ditto.
5068
5069 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5070
5071         * html-url.c (get_urls_html): Parse the appropriate flags to
5072         html-parse.c.
5073
5074         * html-parse.c (map_html_tags): Accept FLAGS from the caller
5075         instead of examining OPT.
5076
5077 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5078
5079         * html-url.c (find_tag): Switch to binary search.
5080
5081 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5082
5083         * main.c (print_help): Fix typo; stured -> stored.
5084
5085 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5086
5087         * getopt.c: Add definitions of getopt_long and getopt_long_only.
5088
5089 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5090
5091         * config.h.in: Renamed DEBUG to ENABLE_DEBUG.  ENABLE_DEBUG is, I
5092         think, a better name, because it implies that debugging output is
5093         merely possible, not "on by default", as might be construed from
5094         just DEBUG.
5095
5096 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5097
5098         * ftp.c (has_insecure_name_p): Define it here.
5099
5100         * utils.c (has_wildcards_p): Define it here.
5101
5102         * sysdep.h: Declare fnmatch-related macros here, if not using
5103         system fnmatch().  Update .c files to not declare fnmatch.h
5104         directly.
5105
5106         * cmpt.c (fnmatch): Moved here.  Use it only under non-GNU libc.
5107
5108 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5109
5110         * getopt.c: Newer version, imported from Free libit.
5111
5112 2003-10-07  Hrvoje Niksic  <hniksic@xemacs.org>
5113
5114         * cookies.c (struct cookie): Remove unused backpointer to cookie
5115         jar.
5116
5117 2003-10-07  Hrvoje Niksic  <hniksic@xemacs.org>
5118
5119         * cmpt.c (memmove): Comment out, since it's no longer used.
5120
5121         * cookies.c (cookie_jar_generate_cookie_header): Allocate room for
5122         chains in one pass.
5123         (find_chains_of_host): Assume that the caller has allocated DEST
5124         to be sufficiently large to take all the data.
5125         (eliminate_dups): Run through the array and eliminate dups on the
5126         fly instead of using memmove.
5127         (cookie_jar_process_set_cookie): Free cookie->domain before
5128         re-setting it.
5129
5130 2003-10-05  Gisle Vanem  <giva@bgnett.no>
5131
5132         * mswindows.c (set_sleep_mode): Fix type of
5133         _SetThreadExecutionState.
5134
5135 2003-10-05  Hrvoje Niksic  <hniksic@xemacs.org>
5136
5137         * utils.c (file_size): Return -1 if fopen() returns NULL.  Prior
5138         to this patch, wget --post-file=nosuchfile dumped core.
5139
5140 2003-10-04  Gisle Vanem  <giva@bgnett.no>
5141
5142         * mswindows.c (run_with_timeout): Use WaitForSingleObject to wait
5143         for thread termination.
5144
5145 2003-10-04  Hrvoje Niksic  <hniksic@xemacs.org>
5146
5147         * log.c: Use `...' in function definitions; ansi2knr will convert
5148         them to va_dcl.  This allowed removal of the ugly VA_START_1 and
5149         VA_START_2 macros.
5150
5151 2003-10-03  Gisle Vanem  <giva@bgnett.no>
5152
5153         * connect.c: And don't include them here.
5154
5155         * mswindows.h: Include winsock headers here.
5156
5157 2003-10-03  Hrvoje Niksic  <hniksic@xemacs.org>
5158
5159         * html-parse.c (convert_and_copy): Move variable declarations
5160         before statements.
5161
5162 2003-10-02  Gisle Vanem  <giva@bgnett.no>
5163
5164         * mswindows.c (run_with_timeout): For Windows: Run the 'fun' in a
5165         thread via a helper function. Continually query the thread's
5166         exit-code until finished or timed out.
5167
5168 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
5169
5170         * wget.h (XMALLOC_ARRAY): Removed.
5171         (ALLOCA_ARRAY): Ditto.
5172
5173         * html-parse.c: Renamed alloca_p to resized.
5174         (GROW_ARRAY): Renamed DO_REALLOC_FROM_ALLOCA to GROW_ARRAY and
5175         returned it to html-parse.c, since nothing else was using it.
5176
5177 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
5178
5179         * retr.c (retrieve_url): Initialize DUMMY storage for DT.  Caught
5180         by valgrind.
5181
5182 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
5183
5184         * html-parse.c (convert_and_copy): Handle numeric entities in
5185         hexadecimal, &#xHH.
5186         (convert_and_copy): Copy the contents directly to the pool without
5187         a stack-allocated intermediary.
5188
5189 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
5190
5191         * utils.c (alarm_set): New function; use either setitimer or alarm
5192         to set up the alarm.
5193         (alarm_cancel): New function; cancel the alarm set up by
5194         alarm_set.
5195         (run_with_timeout): Use them.
5196
5197 2003-10-01  Hrvoje Niksic  <hniksic@xemacs.org>
5198
5199         * url.c (url_parse): Don't leak memory when a reencoded URL turns
5200         out to be invalid.
5201
5202         * url.c (parse_errors): Mark error messages for translation.
5203         (url_error): Translate error messages returned to the caller.
5204
5205 2003-10-01  Hrvoje Niksic  <hniksic@xemacs.org>
5206
5207         * ftp.c (ftp_loop_internal): Initialize TMRATE to NULL to shut up
5208         the compiler.
5209
5210 2003-09-26  Gisle Vanem  <giva@bgnett.no>
5211
5212         * src/mswindows.c: Added ws_percenttitle() showing progress in the
5213         window titlebar. Called from retr.c. Secured ws_mypath().
5214
5215         * windows/config.h.ms: alloca() prototype not needed.  Removed
5216         "#undef ENABLE_NLS"; should be in Makefile IMHO. Moved
5217         WGET_USE_STDARG from mswindows.h to config.ms.h because of #ifdef
5218         in log.c. (MSVC's vararg.h and stdarg.h are incompatible).
5219
5220 2003-09-29  Aaron Hawley <Aaron.Hawley@uvm.edu>
5221
5222         * ftp.c (getftp): --spider option should now work with FTP
5223         downloads.
5224         (ftp_loop_internal): quiet reports and calculations of downloads
5225         when --spider option set, nor try deleting when --delete-after
5226         also set.
5227         (ftp_loop): --spider will skip HTML-ification of .listing file.
5228
5229 2003-09-26  Gisle Vanem  <giva@bgnett.no>
5230
5231         * mswindows.c (read_registry): Removed.
5232         (set_sleep_mode): New function.
5233         (windows_main_junk): Call it.
5234
5235 2003-09-26  Gisle Vanem  <giva@bgnett.no>
5236
5237         * mswindows.c (read_registry): Fix invocation of registry
5238         functions.
5239
5240         * mswindows.c (read_registry): Condition definitions of sleep and
5241         usleep with not HAVE_SLEEP and HAVE_USLEEP respectively.  Define
5242         HAVE_SLEEP and HAVE_USLEEP under __DMC__.
5243
5244 2003-09-24  Hrvoje Niksic  <hniksic@xemacs.org>
5245
5246         * url.c (url_escape_1): Revert unintentional change to lowercase
5247         xdigit escapes.
5248         (url_escape_dir): Document that this function depends on the
5249         output of url_escape_1.
5250
5251 2003-09-23  Hrvoje Niksic  <hniksic@xemacs.org>
5252
5253         * progress.c (create_image): Print the current ETA if we're done
5254         with the download.
5255         (create_image): Change '-' display char to '+' in the progress bar.
5256
5257         * Makefile.in (clean): Remove .libs.
5258
5259 2003-09-23  Hrvoje Niksic  <hniksic@xemacs.org>
5260
5261         * cookies.c (struct cookie): New flag domain_exact.
5262         (update_cookie_field): Skip leading dot in domain.
5263         (find_matching_chains): Match numeric addresses exactly; don't
5264         needlessly copy HOST to the stack.
5265         (matching_cookie): Added argument HOST.  If cookie->domain_exact
5266         is set, check that HOST is equal to cookie->domain.
5267         (cookie_jar_load): Only use TAB as delimiter.  Document the
5268         meaning of DOMAIN-FLAG.  Skip leading dot in domain.
5269         (cookie_jar_load): Don't ignore DOMAIN-FLAG -- instead, set
5270         domain_exact to true if DOMAIN-FLAG is false.
5271         (save_cookies_mapper): If domain_exact is false, prepend the
5272         domain with dot, like Mozilla does.
5273
5274 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
5275
5276         * progress.c (create_image): Print the initial part of the
5277         download with '-' characters, analogous to how dot progress prints
5278         the initial part with ','.
5279
5280         * hash.c (ptrhash): New function.
5281         (ptrcmp): Ditto.
5282         (hash_table_new): Default to identity hash table.
5283
5284 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
5285
5286         * safe-ctype.h (_sch_test): The cast of BIT to unsigned char was
5287         broken -- _sch_istable bitmasks are 16-bit, not 8-bit!  Cast BIT
5288         to unsigned short instead.
5289
5290 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
5291
5292         * url.c (path_simplify): Instead of calls to memmove, handle "./"
5293         and "../" by advancing pointers.
5294
5295 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
5296
5297         * retr.c (getproxy): Moved from url.c.
5298
5299         * convert.c: Split off link conversion from url.c into separate
5300         file.  Also included the book-keeping stuff from recur.c.
5301
5302 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5303
5304         * init.c: Improved documentation of functions.
5305         (cmd_boolean): Attempt to make code that tries to avoid calling
5306         strcmp for "speed" a bit more readable.
5307
5308         * init.c (simple_atof): Report error on encountering non-digit,
5309         non-"." character.
5310         (simple_atoi): Replacement for myatoi(), calling interface
5311         compatible with simple_atof.  Updated myatoi's callers.
5312
5313 2003-09-21  Bertrand Demiddelaer  <bert@b3rt.org>
5314
5315         * url.c (path_simplify): Would read two bytes past the end of the
5316         string in the "./" case.
5317
5318 2003-09-21  Matthew J. Mellon  <mellon@tymenet.com>
5319
5320         * http.c (gethttp): Recognize content-type "application/xhtml+xml"
5321         as what Wget considers "text/html".
5322
5323 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5324
5325         * connect.c (connect_with_timeout): Made timeout type double.
5326
5327         * options.h (struct options): New members read_timeout,
5328         dns_timeout, and connect_timeout.
5329         Use them.
5330
5331 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5332
5333         * init.c (simple_atof): New function.
5334         (cmd_time): Use it.
5335         (cmd_bytes): Accept things like "1.5k" and such.  Use simple_atof
5336         to parse decimals.
5337
5338         * retr.c (limit_bandwidth): Adjust each sleep by the error of the
5339         previous one.
5340
5341 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5342
5343         * main.c (main): Use setoptval() for setting the options.  Use
5344         run_command for `-e'.
5345
5346         * init.c (parse_line): Rewritten to return COMIND right away.
5347         Changed linkage to static.
5348         (run_wgetrc): Use the available comind when calling setval, so it
5349         doesn't have to be computed twice.
5350         (setval_internal): New function, runs the command's action without
5351         any error checking.
5352         (setoptval): New function, does what setval used to do, but exits
5353         in case of error.
5354         (run_command): New function.
5355
5356 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5357
5358         * connect.c (select_fd): Change MAXTIME's type to double.  Handle
5359         its decimal part.
5360
5361         * retr.c (sleep_between_retrievals): In the random-wait case, use
5362         random_float() to wait between 0 and 2*opt.wait seconds.
5363
5364         * utils.c (run_with_timeout): Accept `double' timeouts.  Correctly
5365         handle timeout values in (0, 1) range.
5366         (random_float): New function.
5367
5368         * options.h (struct options): Change the types of wait, waitretry,
5369         and timeout to double.
5370
5371         * init.c (cmd_time): Accept floating point time.
5372
5373 2003-09-20  Hrvoje Niksic  <hniksic@xemacs.org>
5374
5375         * retr.c (get_contents): Cosmetic fixes.
5376
5377 2003-09-20  Hrvoje Niksic  <hniksic@xemacs.org>
5378
5379         * url.c (uri_merge): Get rid of uri_merge_1.
5380         (uri_merge): Merge "foo//", "bar" as "foo//bar", not "foo///bar",
5381         i.e. don't add an extra slash merely because BASE ends with two
5382         slashes.
5383         (parse_credentials): Renamed from parse_uname.  Rewrittern in
5384         standard [beg, end) calling style.
5385         (url_skip_credentials): Renamed from url_skip_uname.  Made static.
5386         (url_skip_credentials): Include # and ; as terminators.  Old code
5387         would mistakenly consider "http://foo.com#hniksic@iskon.hr" to
5388         contain a username.
5389         (url_skip_scheme): Removed because it was unused.
5390         (url_has_scheme): Require "scheme" to be at least one char long.
5391
5392 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
5393
5394         * url.c (url_file_name): Expect NULL dir_prefix.
5395
5396         * init.c (cmd_file): Use a macro to prevent multiple #ifdef
5397         WINDOWS.
5398         (defaults): Set dir_prefix to NULL by default.
5399
5400 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
5401
5402         * safe-ctype.h (_sch_test): Cast BIT to unsigned char, like latest
5403         gcc does.
5404
5405 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
5406
5407         * wget.h (BOUNDED_TO_ALLOCA): Evaluate PLACE only once.
5408         (ARRAY_SIZE): Renamed to countof.  All callers updated.
5409
5410 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
5411
5412         * main.c (main): New option --strict-comments.
5413
5414         * html-parse.c (find_comment_end): New function: simple BM search
5415         for "-->".
5416         (map_html_tags): Use it if looking at a comment and not in strict
5417         comments mode.
5418
5419 2003-09-17  Aurelien Marchand  <artaxerxes@users.sf.net>
5420
5421         * ftp.h: Added OS400 system in enum
5422         * ftp-basic.c: recognize OS400 systems
5423         * ftp.c: don't prepend the CWD if talking to OS400, since it
5424         breaks the change in library
5425
5426 2003-09-18  Hrvoje Niksic  <hniksic@xemacs.org>
5427
5428         * retr.c (get_contents): Pass the correct argument to ssl_iread.
5429
5430 2003-09-18  Hrvoje Niksic  <hniksic@xemacs.org>
5431
5432         * safe-ctype.h: Don't #define ctype.h macros to errors because
5433         that loses when someone #include's ctype.h after safe-ctype.h.
5434
5435 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
5436
5437         * url.c: Undef U, W, C after use.
5438
5439 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
5440
5441         * init.c (cmd_spec_restrict_file_names): Allow the OS setting to
5442         be augmented by ",nocontrol" which means don't escape the control
5443         characters, but otherwise keep OS settings.
5444
5445         * url.c (file_unsafe_char): Deleted.
5446         (append_uri_pathel): Query filechr_table directly.
5447         (filechr_table): Separated Unix, Windows, and control-unsafe
5448         characters.
5449
5450 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
5451
5452         * url.c (url_escape_1): New function.
5453         (url_escape): Use it.
5454         (sync_path): Handle pathological cases where u->file and u->dir
5455         contain really strange characters.
5456         (ENCODE): Deleted.
5457         (REENCODE): Deleted.
5458
5459 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
5460
5461         * url.c (url_file_name): Don't reallocate FNAME if the file
5462         doesn't exist, as is usually the case.
5463
5464         * utils.c (unique_name): New flag allow_passthrough.
5465
5466 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
5467
5468         * utils.c (wtimer_sys_diff): Convert the time difference to signed
5469         __int64, then to double.  This works around MS VC++ 6 which can't
5470         convert unsigned __int64 to double directly.
5471
5472 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
5473
5474         * Makefile.in (clean): Also remove the core.<number> files
5475         produced by recent Linux systems.
5476
5477 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
5478
5479         * http.c (post_file): Don't pad the file if it's not large
5480         enough.  Bail out instead.
5481
5482 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5483
5484         * retr.c (get_contents): Reduce the buffer size to the amount of
5485         data that may pass through for one second.  This prevents long
5486         sleeps when limiting bandwidth.
5487
5488         * connect.c (connect_to_one): Reduce the socket's RCVBUF when
5489         bandwidth limitation to small values is requested.
5490
5491 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5492
5493         * progress.c (update_speed_ring): Moved the speed ring update to a
5494         separate function and documented it better.
5495
5496         * progress.c: Use `double' for most timers to support granularity
5497         smaller than 1ms.
5498
5499 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5500
5501         * wget.h (XDIGIT_TO_XCHAR): Implement as index into a literal
5502         string.
5503         (XDIGIT_TO_xchar): Ditto.
5504
5505 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5506
5507         * utils.c: Change the type of timer-related functions from long to
5508         double, for better precision.  On machines supporting gettimeofday
5509         the timers now work with granularity of less than one millisecond.
5510
5511 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5512
5513         * cookies.c (parse_set_cookies): Fixed the parser to handle more
5514         edge conditions.
5515         (test_cookies): New function, contains a test suite for
5516         parse_set_cookies.
5517
5518 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5519
5520         * url.c (strpbrk_or_eos): Implement as a macro under Gcc.
5521
5522 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5523
5524         * cookies.c (parse_set_cookies): Allow trailing space in
5525         set-cookies header.  Also, allow any amount of whitespace, not
5526         only one character.  Allow empty set-cookies header without
5527         spewing an error.
5528
5529 2003-09-14  Hrvoje Niksic  <hniksic@xemacs.org>
5530
5531         * url.c (append_uri_pathel): Use opt.restrict_file_names when
5532         calling file_unsafe_char.
5533
5534         * init.c: New command restrict_file_names.
5535
5536         * main.c (main): New option --restrict-file-names[=windows,unix].
5537
5538         * url.c (url_file_name): Renamed from url_filename.
5539         (url_file_name): Add directory and hostdir prefix here, not in
5540         mkstruct.
5541         (append_dir_structure): New function, does part of the work that
5542         used to be in mkstruct.  Iterates over path elements in u->path,
5543         calling append_uri_pathel on each one to append it to the file
5544         name.
5545         (append_uri_pathel): URL-unescape a path element and reencode it
5546         with a different set of rules, more appropriate for handling of
5547         files.
5548         (file_unsafe_char): New function, uses a lookup table to decide
5549         whether a character should be escaped for use in file name.
5550         (append_string): New utility function.
5551         (append_char): Ditto.
5552         (file_unsafe_char): New argument restrict_for_windows, decide
5553         whether Windows file names should be escaped in run-time.
5554
5555         * connect.c: Include <stdlib.h> to get prototype for abort().
5556
5557 2003-09-14  Hrvoje Niksic  <hniksic@xemacs.org>
5558
5559         * utils.c (wtimer_sys_set): Extracted the code that sets the
5560         current time here.
5561         (wtimer_reset): Call it.
5562         (wtimer_sys_diff): Extracted the code that calculates the
5563         difference between two system times here.
5564         (wtimer_elapsed): Call it.
5565         (wtimer_elapsed): Don't return a value smaller than the previous
5566         one, which could previously happen when system time is set back.
5567         Instead, reset start time to current time and note the elapsed
5568         offset for future calculations.  The returned times are now
5569         guaranteed to be monotonically nondecreasing.
5570
5571 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
5572
5573         * host.c (lookup_host): Print the result of the DNS lookup.
5574
5575 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
5576
5577         * init.c (cmd_boolean): Accept yes/no along with on/off.
5578         (cmd_lockable_boolean): Ditto.
5579
5580 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
5581
5582         * init.c: New command dns_cache.
5583
5584         * main.c (main): New option --dns-cache[=off].
5585
5586 2003-09-09  Hrvoje Niksic  <hniksic@xemacs.org>
5587
5588         * config.h.in: Initialize HAVE_GETADDRINFO and ENABLE_IPV6.
5589
5590         * all: Use #ifdef ENABLE_IPV6 instead of the older INET6.  Use
5591         HAVE_GETADDRINFO for getaddrinfo-related stuff.
5592
5593 2003-09-09  Hrvoje Niksic  <hniksic@xemacs.org>
5594
5595         * url.c (url_parse): Return an error if the URL contains a [...]
5596         IPv6 numeric address and we don't support IPv6.
5597
5598 2003-09-05  Hrvoje Niksic  <hniksic@xemacs.org>
5599
5600         * url.c (is_valid_ipv6_address): Modified to not require
5601         zero-terminated strings.
5602         (is_valid_ipv4_address): Ditto.
5603
5604 2003-09-05  Mauro Tortonesi <mauro@deepspace6.net>
5605
5606         src/url.c: added RFC 2732 compliance for URL parsing. The
5607         functions is_*_address valid are a modified version of
5608         glibc 2.3.2 inet_pton's code.
5609
5610 2003-09-03  Ahmon Dancy  <dancy@dancysoft.com>
5611
5612         * main.c init.c options.h: Added --retry-connrefused option so
5613         that Connection Refused failures are treated as non-fatal (when
5614         trying to retrieve from busy servers).
5615
5616         * wget.h: New CONNECT_ERROR macro for encapsulating this
5617         modification.
5618
5619         * ftp.c http.c : Use CONNECT_ERROR macro in places where
5620         ECONNREFUSED was checked.
5621
5622 2003-01-11  Ian Abbott  <abbotti@mev.co.uk>
5623
5624         * ftp.c (ftp_retrieve_glob): Reject insecure filenames as determined
5625         by calling new function has_insecure_name_p.  This is based on a
5626         patch by Red Hat.
5627
5628         * fnmatch.c (has_insecure_name_p): New function: returns non-zero
5629         if filename starts with `/' or contains `../' and is therefore
5630         considered insecure.
5631
5632         * fnmatch.h: Declare has_insecure_name_p().
5633
5634 2002-08-03  Hrvoje Niksic  <hniksic@xemacs.org>
5635
5636         * init.c (cmd_file): Allocate RESULT correctly.
5637
5638 2002-07-24  Hrvoje Niksic  <hniksic@xemacs.org>
5639
5640         * recur.c (retrieve_tree): Check whether downloaded_html_set is
5641         non-NULL before using it.
5642
5643 2002-05-27  Hrvoje Niksic  <hniksic@arsdigita.com>
5644
5645         * html-parse.c (NAME_CHAR_P): Allow almost any character here.
5646
5647 2002-05-24  Hrvoje Niksic  <hniksic@arsdigita.com>
5648
5649         * progress.c (bar_set_params): Fall back to dot progress if the
5650         terminal type is "emacs".
5651
5652 2002-05-20  Hrvoje Niksic  <hniksic@arsdigita.com>
5653
5654         * log.c: Don't #undef WGET_USE_STDARG.
5655
5656 2002-05-16  Hrvoje Niksic  <hniksic@arsdigita.com>
5657
5658         * hash.c (prime_size): Store the offset of the prime number in the
5659         prime table.  When searching, start with the given offset.
5660         (hash_table_new): Pass the pointer to ht->prime_offset to
5661         prime_size.
5662         (grow_hash_table): Ditto.
5663         (prime_size): Make 13 the first prime to make empty hash tables
5664         slightly smaller.
5665
5666 2002-05-16  Ian Abbott  <abbotti@mev.co.uk>
5667
5668         * recur.c (download_child_p): Minor optimization to avoid an
5669         unnecessary additional call to schemes_are_similar_p function.
5670
5671 2002-05-16  Ian Abbott  <abbotti@mev.co.uk>
5672
5673         * url.c (schemes_are_similar_p): New function to test enumerated
5674         scheme codes for similarity.
5675
5676         * url.h: Declare it.
5677
5678         * recur.c (download_child_p): Use it to compare schemes.  This
5679         also fixes a bug that allows hosts to be spanned (without the
5680         -H option) when the parent scheme is https and the child's is
5681         http or vice versa.
5682
5683 2002-05-14  Bill Richardson  <bill@riverstonenet.com>
5684
5685         * ftp.c (getftp): Don't ftruncate stdout.
5686
5687         * http.c (gethttp): Don't ftruncate stdout.
5688
5689 2002-05-09  Ian Abbott  <abbotti@mev.co.uk>
5690
5691         * cmpt.c (strptime_internal): Synched with glibc-2.1.3.
5692         (get_number): Ditto.
5693         (get_alt_number): Ditto.
5694         (__isleap): New function-like macro used by strptime.
5695         (day_of_the_week): New function used by strptime.
5696         (day_of_the_year): Ditto.
5697         (__mon_yday): Now shared by mktime and strptime implementations.
5698
5699 2002-05-08  Hrvoje Niksic  <hniksic@arsdigita.com>
5700
5701         * cookies.c (check_domain_match): Use match_tail in case
5702         insensitive mode.
5703
5704         * utils.c (match_tail): Allow the caller to specify case
5705         insensitive mode.
5706
5707         * cookies.c (store_cookie): When expiry_time is 0, print it as
5708         undefined, not indefinite.
5709
5710 2002-05-07  Ian Abbott  <abbotti@mev.co.uk>
5711
5712         * cookies.c (cookie_jar_process_set_cookie): Do not store
5713         discarded cookie.
5714
5715 2002-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
5716
5717         * cookies.c (check_domain_match): Allow cookies to be set for
5718         subdomains of unknown top-level domains under some circumstances.
5719
5720 2002-04-21  Thomas Lussnig  <thomas.lussnig@bewegungsmelder.de>
5721
5722         * gen_ssl.c:
5723         - allow checking of server cert
5724         - allow defining client cert type
5725         - allow limit of ssl protocol
5726         - check more return values
5727         - added debug message on break
5728
5729 2002-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
5730
5731         * recur.c (download_child_p): Revert order of items in check
5732         number 6 for clarity.
5733
5734 2002-04-20  Hrvoje Niksic  <hniksic@arsdigita.com>
5735
5736         * init.c: Ditto.
5737
5738         * main.c: Ditto.
5739
5740         * http.c: Use the new interface.
5741
5742         * cookies.c: Provide an OO-style "cookie jar" interface to enable
5743         separate cookie jars.
5744
5745         * http.c (http_atotm): Declare argument as const.
5746
5747 2002-04-20  Hrvoje Niksic  <hniksic@arsdigita.com>
5748
5749         * cookies.c (cookie_new): Default to PORT_ANY.
5750         (find_cookie_chain_exact): Only search by DOMAIN.
5751         (find_matching_cookie): Also check that PORT matches.
5752         (store_cookie): Only match the domain.
5753         (set_cookie_header_cb): When a cookie "fakes" a domain, assume it
5754         is valid for that host rather than discarding it completely.
5755         (find_matching_chains): Don't search by PORT.
5756         (matching_cookie): Also match PORT.
5757         (load_cookies): Set the port if specified, otherwise leave it as
5758         ANY.
5759         (save_cookies_mapper): Save the port if specified, otherwise leave
5760         it empty.
5761
5762 2002-04-19  Thomas Lussnig  <thomas.lussnig@bewegungsmelder.de>
5763
5764         * init.c: The option `egdfile' was not in sort order.
5765
5766 2002-04-16  Hrvoje Niksic  <hniksic@arsdigita.com>
5767
5768         * ftp.c (getftp): Treat directories that begin with <letter>: as
5769         absolute.
5770         (getftp): Strip trailing slashes from con->id before merging it
5771         with TARGET.
5772
5773 2002-04-16  Hrvoje Niksic  <hniksic@arsdigita.com>
5774
5775         * http.c (gethttp): If Content-Type is not given, assume
5776         text/html.
5777
5778 2002-04-15  Hrvoje Niksic  <hniksic@arsdigita.com>
5779
5780         * recur.c (download_child_p): Don't ignore rejection of HTML
5781         documents that are themselves leaves of recursion.
5782
5783 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
5784
5785         Makefile.in: Updated several dependencies for object files to take
5786         account of nested include files.
5787
5788 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
5789
5790         Makefile.in: The target `connect$o' (connect.o) now depends on
5791         `utils.h'
5792
5793 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
5794
5795         * host.c (SET_H_ERRNO): New function-like macro to set `h_errno'.
5796         (gethostbyname_with_timeout): Use it.
5797
5798         * utils.c: Don't define `SETJMP()', `run_with_timeout_env' or
5799         `abort_run_with_timeout()' when `USE_SIGNAL_TIMEOUT' is undefined.
5800
5801 2002-04-15  Hrvoje Niksic  <hniksic@arsdigita.com>
5802
5803         * host.c (getaddrinfo_with_timeout): New function.
5804         (gethostbyname_with_timeout): Ditto.
5805         (lookup_host): Use them.
5806
5807 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5808
5809         * utils.c (number_to_string): Handle the case when n < -INT_MAX.
5810
5811 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5812
5813         * init.c (comind): Use a marginally faster implementation of
5814         binary search.  To quote Martin Buchholz, "a nanosecond saved is a
5815         nanosecond earned."
5816
5817 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5818
5819         * main.c (print_help): Document `--post-data' and `--post-file'.
5820
5821 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5822
5823         * http.c (gethttp): Ditto.
5824
5825         * retr.c (retrieve_url): Initialize variables to appease the
5826         compiler.
5827
5828         * gen_sslfunc.c (ssl_iread): Don't handle EINTR when calling
5829         select_fd.
5830         (ssl_iwrite): Ditto.
5831
5832         * connect.c (select_fd): Rewrite to handle EINTR.  Set errno to
5833         ETIMEDOUT in case of timeout.
5834         (iread): No need to handle EINTR when calling select_fd.
5835         (iwrite): Ditto.
5836
5837 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5838
5839         * retr.c (retrieve_url): Make sure that POST is not honored for
5840         redirections.
5841
5842         * http.c (gethttp): Send the POST data when requested.
5843         (post_file): New function.
5844         (gethttp): Use it.
5845
5846         * main.c (main): Ditto.
5847
5848         * init.c: Add new options.
5849
5850         * options.h (struct options): New options post_data and
5851         post_file_name.
5852
5853 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
5854
5855         * connect.c (connect_with_timeout): Firing SIGALRM can result in
5856         connect() exiting with EINTR.  Treat EINTR the same as ETIMEDOUT.
5857
5858 2002-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
5859
5860         * connect.c (connect_with_timeout): Use it.
5861
5862         * utils.c (run_with_timeout): New function.
5863
5864 2002-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
5865
5866         * url.c (getproxy): Accept a struct url argument.  This obviates
5867         the need for USE_PROXY_P.
5868
5869         * retr.c (retrieve_url): Allow proxy to be a non-FTP URL.
5870
5871         * ftp.c (getftp): Recognize FWTK-style proxy.
5872
5873 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
5874
5875         * config.h.in: Only define _VA_LIST when compiled with gcc.
5876
5877 2002-04012  Ian Abbott  <abbotti@mev.co.uk>
5878
5879         * http.c (http_loop): Compensate for MS Windows two-second
5880         granularity of file modification time when comparing timestamps.
5881
5882         * ftp.c (ftp_retrieve_list): Ditto.
5883
5884 2002-04-12  Ian Abbott  <abbotti@mev.co.uk>
5885
5886         * utils.c (has_html_suffix_p): New function to test filename for
5887         common html extensions.
5888
5889         * utils.h: Declare it.
5890
5891         * http.c (http_loop): Use it instead of previous test.
5892
5893         * retr.c (retrieve_url): Ditto.
5894
5895         * recur.c (download_child_p): Ditto.
5896
5897 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
5898
5899         * config.h.in: Define _VA_LIST on Solaris to prevent stdio.h from
5900         declaring va_list.
5901         From Kevin Rodgers <kevinr@ihs.com>.
5902
5903 2002-04-12  Ian Abbott  <abbotti@mev.co.uk>
5904
5905         * Makefile.in: Specify libtool mode explicitly when linking.
5906
5907 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
5908
5909         * connect.c (connect_with_timeout): New function.
5910         (connect_to_one): Use it.
5911
5912         * config.h.in: Add stubs for HAVE_SIGSETJMP, HAVE_SIGBLOCK, and
5913         HAVE_SETJMP_H.
5914
5915 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5916
5917         * log.c: Set WGET_USE_STDARG if __STDC__ is defined and stdarg.h
5918         is present.
5919
5920 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5921
5922         * progress.c (bar_create): If INITIAL is larger than TOTAL, fix
5923         TOTAL.
5924         (bar_finish): Likewise.
5925
5926 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5927
5928         * html-url.c (tag_handle_form): New function.  Pick up form
5929         actions and mark them for conversion only.
5930
5931 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5932
5933         * progress.c (struct progress_implementation): Use PARAMS when
5934         declaring the parameters of *create, *update, *finish, and
5935         *set_params.
5936
5937         * netrc.c: Ditto.
5938
5939         * http.c: Reformat some function definitions so that ansi2knr can
5940         read them.
5941
5942         * hash.c (struct hash_table): Use the PARAMS macro around
5943         parameters in the declaration of hash_function and test_function.
5944         (prime_size): Spell 2580823717UL and 3355070839UL as (unsigned
5945         long)0x99d43ea5 and (unsigned long)0xc7fa5177 respectively, so
5946         that pre-ANSI compilers can read them.
5947         (find_mapping): Use PARAMS when declaring EQUALS.
5948         (hash_table_put): Ditto.
5949
5950         * ftp.h: Wrap the parameters of ftp_index declaration in PARAMS.
5951
5952         * cookies.c (cookie_new): Use (unsigned long)0 instead of 0UL,
5953         which was unsupported by pre-ANSI compilers.
5954
5955         From Nelson H. F. Beebe <beebe@math.utah.edu>, for the most part.
5956
5957 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
5958
5959         * url.c (url_filename): Use compose_file_name regardless of
5960         whether opt.dirstruct is set.
5961         (mkstruct): Don't handle the query and the reencoding of DIR; that
5962         is done in compose_file_name.
5963
5964 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
5965
5966         * wget.h: Ditto for extern char *exec_name.
5967
5968         * options.h: Don't guard against OPTIONS_DEFINED_HERE -- it is
5969         perfectly legal to follow an `extern' with a non-`extern' ones,
5970         provided the types match.
5971
5972         * main.c: Don't define OPTIONS_DEFINED_HERE.
5973
5974 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
5975
5976         * progress.c (create_image): Revert to calculating ETA based on
5977         average download speed.
5978         (create_image): Don't print ETA until the download has been active
5979         for at least 3 seconds.
5980         (create_image): When ETA is not available, don't print anything.
5981         The previous version would print --:--.
5982
5983 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
5984
5985         * progress.c (bar_update): Keep updating a subinterval until it
5986         reaches or exceeds a watermark.  That way the measurement will be
5987         guaranteed to span a configurable minimum of time.  The current
5988         default is 3s in 30 100ms intervals.
5989
5990 2002-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
5991
5992         * progress.c (bar_update): Maintain an array of the time it took
5993         to perform previous 30 network reads.
5994         (create_image): Calculate the download speed and ETA based on the
5995         last 30 reads, not the entire download.
5996         (create_image): Make sure that the ETA is not changed more than
5997         once per second.
5998
5999 2002-04-09  Ian Abbott  <abbotti@mev.co.uk>
6000
6001         * mswindows.c (borland_utime): New function conditionally defined
6002         when `HACK_BCC_UTIME_BUG' is defined.  A reimplementation of
6003         `utime()' as Borland's `utime()' function is broken on Windows 9x
6004         systems.  (Original patch by Chin-yuan Kuo <sr1111111@yahoo.com.tw>.)
6005
6006 2002-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
6007
6008         * ftp.c (ftp_loop): Propagate the result of ftp_retrieve_glob.
6009
6010 2002-03-26  Ian Abbott  <abbotti@mev.co.uk>
6011
6012         * Makefile.in: Updated several dependencies for object files.
6013
6014 2002-03-20  Ian Abbott  <abbotti@mev.co.uk>
6015
6016         * mswindows.c: Include "utils.h".
6017
6018 2002-03-18  Ian Abbott  <abbotti@mev.co.uk>
6019
6020         * host.h: Don't include netdb.h on windows.
6021
6022 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6023
6024         * recur.c (retrieve_tree): Handle the case when start_url doesn't
6025         parse.
6026
6027 2002-02-19  Andreas Damm  <andreas-sourceforge@radab.org>
6028
6029         * wget.h (DO_REALLOC_FROM_ALLOCA): Multiply with sizeof(type) when
6030         calling xmalloc and memcpy.
6031
6032 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6033
6034         * host.h: Include Unix-specific includes #ifndef WINDOWS.
6035         Patch originally provided by Christian Lackas.
6036
6037 2002-02-11  Christian Lackas  <delta@lackas.net>
6038
6039         * recur.c: recurive downloading for https fixed.
6040
6041 2002-02-19  Alan Eldridge  <alane@geeksrus.net>
6042
6043         * host.h: Also include <netinet/in.h> and <sys/socket.h>.
6044
6045         * ftp-basic.c: Also include <netinet/in.h>.
6046
6047 2002-02-05  Ian Abbott  <abbotti@mev.co.uk>
6048
6049         * http.c (gethttp): when -c used, mark already fully retrieved
6050         file as successfully retrieved.
6051
6052 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6053
6054         * url.c (url_parse): Don't treat '?' as query string separator
6055         when parsing FTP URLs.
6056
6057 2002-02-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6058
6059         * html-url.c (tag_handle_meta): Don't crash on <meta
6060         http-equiv=refresh> where content is missing.
6061
6062 2002-01-31  Herold Heiko  <Heiko.Herold@previnet.it>
6063
6064         * ftp-basic.c, host.c: don't include sys/socket.h, arpa/inet.h,
6065         netdb.h on windows.
6066
6067 2002-01-30  Hrvoje Niksic  <hniksic@arsdigita.com>
6068
6069         * retr.c (retrieve_url): Remove redirection cycle detection.  This
6070         is because some sites legitimately redirect the user back to the
6071         same location, e.g. after an authorization check performed by
6072         another page.  MAX_REDIRECTIONS is still used to prevent infinite
6073         redirection loops.
6074
6075 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6076
6077         * http.c (gethttp): Wrap host name in square brackets if it
6078         contains a colon.
6079
6080 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6081
6082         * url.c (url_parse): Allow all hex digits, not only decimal ones,
6083         to form an IP address.
6084
6085 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6086
6087         * url.c (urlchr_table): Make square braces reserved, so we can
6088         parse http://[::1]/.
6089         (url_parse): Handle host in braces.
6090         (url_string): If url->host contains colons, wrap it in braces.
6091
6092 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6093
6094         * connect.c (resolve_bind_address): New function.
6095         (connect_to_one): Use it.
6096         (bindport): Ditto.
6097
6098         * init.c: Don't resolve bind-address here.
6099
6100         * host.c (wget_sockaddr_set_address): Would bug out with ADDR == NULL.
6101
6102 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6103
6104         * host.c (lookup_host): Use sizeof(ip4_address) to calculate the
6105         offset.
6106         (address_list_new): Use map_ipv4_to_ip.
6107         (wget_sockaddr_set_address): Convert ADDR to IPv4 before using it
6108         in IPv4 context.
6109
6110 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6111
6112         * source: Integrated IPv6 support.
6113         Written by Thomas Lussnig <thomas.lussnig@bewegungsmelder.de>.
6114
6115 2002-01-15  Ian Abbott  <abbotti@mev.co.uk>
6116
6117         * init.c (cmd_file): Change `\' to `/' for Windows (yes, really!)
6118         (cmd_directory): New function. Like cmd_file(), but strips
6119         trailing directory separators.
6120         (commands): Change action for "dirprefix" from `cmd_file' to
6121         `cmd_directory'.
6122
6123         * utils.c (make_directory): Allow intermediate `mkdir' calls to
6124         fail, as not all path components that do not exist should be
6125         directory components, especially under Windows.
6126
6127 2002-01-17  Hrvoje Niksic  <hniksic@arsdigita.com>
6128
6129         * netrc.c (parse_netrc): Skip leading whitespace before testing
6130         whether the line is empty.  Empty lines still contain the line
6131         terminator.
6132
6133 2002-01-15  Hrvoje Niksic  <hniksic@arsdigita.com>
6134
6135         * gen_sslfunc.c (ssl_iread): Call select on the file descriptor
6136         only if no data is pending in SSL buffers.
6137         From tony@bluetail.com.
6138
6139 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6140
6141         * headers.c (header_get): Strip trailing whitespace from the
6142         header.
6143
6144 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6145
6146         * url.c (parse_uname): URL-decode *USER and *PASSWD.
6147
6148 2002-01-07  Ian Abbott <abbotti@mev.co.uk>
6149
6150         * url.c (uri_merge_1): Deal with "net path" relative URL (one that
6151         starts with "//").
6152
6153 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6154
6155         * http.c (gethttp): Invalidate SOCK if get_contents encountered an
6156         error.
6157
6158 2001-12-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6159
6160         * version.c: Wget 1.8.1 is released.
6161
6162 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6163
6164         * version.c: Wget 1.8.1-pre3 is released.
6165
6166 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6167
6168         * recur.c (retrieve_tree): Enqueue the canonical representation of
6169         start_url, so that the test against dl_url_file_map works.
6170
6171 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6172
6173         * log.c (logputs): Check for requested verbosity before printing
6174         anything.
6175
6176 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6177
6178         * html-url.c (tag_handle_link): Treat the "shortcut icon" link as
6179         inline.
6180
6181 2001-12-18  Hrvoje Niksic  <hniksic@arsdigita.com>
6182
6183         * recur.c (retrieve_tree): Make a copy of file obtained from
6184         dl_url_file_map because the code calls xfree(file) later.
6185
6186 2001-12-18  Hrvoje Niksic  <hniksic@arsdigita.com>
6187
6188         * recur.c (register_html): Maintain a hash table of HTML files
6189         along with the list.  Disallow duplicates.
6190         (retrieve_tree): Use downloaded_html_set to check whether the file
6191         found in dl_url_file_map is an HTML file, and descend into it if
6192         so.
6193         (convert_all_links): Don't guard against duplicates in
6194         downloaded_html_list, since they are no longer possible.
6195
6196 2001-12-18  Ian Abbott  <abbotti@mev.co.uk>
6197
6198         * recur.c (retrieve_tree): Pass on referring URL when retrieving
6199         recursed URL.
6200
6201 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
6202
6203         * version.c: Wget 1.8.1-pre2 is released.
6204
6205 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
6206
6207         * retr.c (sleep_between_retrievals): Simplify indentation.
6208
6209 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
6210
6211         * gen_sslfunc.c (ssl_init_prng): Use random_number to get a byte
6212         of "randomness" at a time.
6213         (ssl_init_prng): Don't seed the PRNG; random_number will do that.
6214
6215         * retr.c (sleep_between_retrievals): Use it.  Make sure that the
6216         random amount averages in opt.wait.
6217         (sleep_between_retrievals): Don't seed the PRNG; random_number
6218         will do that.
6219
6220         * utils.c (random_number): New function.
6221
6222 2001-12-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6223
6224         * url.c (path_simplify): Move here from utils.c, and make static.
6225
6226 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6227
6228         * init.c (wgetrc_file_name): Print correct message when loading
6229         getenv("WGETRC") fails.
6230
6231 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6232
6233         * recur.c (register_download): Don't abort when one URL references
6234         two different files.
6235
6236 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6237
6238         * http.c (gethttp): Check for conn->scheme, not u->scheme, before
6239         calling ssl_iwrite.
6240
6241 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6242
6243         * version.c: Wget 1.8.1-pre1 is released.
6244
6245 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6246
6247         * res.c (matches): Fix broken URL in the docstring.
6248
6249 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6250
6251         * html-url.c (tag_url_attributes): Mark <embed href=...> as
6252         external.
6253
6254 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6255
6256         * url.c (get_urls_file): Cosmetic changes.
6257
6258 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6259
6260         * html-url.c (append_one_url): Resurrect warning when unable to
6261         resolve a relative link.
6262
6263 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6264
6265         * html-url.c (collect_tags_mapper): Break into several functions.
6266         (tag_url_attributes): Collect <embed href=...>.
6267
6268 2001-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6269
6270         * host.c: New type ipv4_address.  Use it consistently instead of
6271         `unsigned char[4]' and `unsigned char *'.
6272         (pretty_print_address): Accept a `const void *', to require even
6273         less casting.
6274
6275 2001-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6276
6277         * ftp-ls.c (ftp_parse_vms_ls): Fix obvious memory leaks.
6278
6279 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6280
6281         * main.c (main): Initialize progress after fork_to_background, so
6282         that it knows when to use dots.
6283
6284         * mswindows.c (ws_hangup): Call log_request_redirect_output.
6285
6286         * utils.c (fork_to_background): Print the PID of the child
6287         process.
6288
6289         * log.c (log_request_redirect_output): Set a flag that output
6290         redirection has been requested.  Doing anything else in a signal
6291         handler is unsafe.
6292         (check_redirect_output): New function: check whether redirection
6293         has been requested and, if so, call redirect_output().
6294         (logputs): Call check_redirect_output.
6295         (logprintf): Ditto.
6296         (debug_logprintf): Ditto.
6297         (redirect_output): Print clearer messages.
6298
6299         * main.c (redirect_output_signal): Don't call
6300         redirect_output_signal directly.  Instead, call
6301         log_request_redirect_output.
6302
6303         * utils.c (memfatal): Ditto.
6304
6305         * progress.c (display_image): Use it.
6306
6307         * log.c (log_set_save_context): New function: allow the caller to
6308         turn off saving log context lines.
6309
6310 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6311
6312         * host.c (address_list_set_faulty): Uncomment a sanity check.
6313
6314 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6315
6316         * utils.c (long_to_string): Return a pointer after where the
6317         number ends.
6318         (long_to_string): Rename to number_to_string.
6319
6320 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6321
6322         * utils.c (path_simplify): Correctly handle the unlikely case that
6323         b starts out as path + 1.
6324
6325 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6326
6327         * utils.c (path_simplify): Rewrite, with better comments, and
6328         without the use of strcpy to move overlapping blocks.
6329
6330 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6331
6332         * init.c (cmd_spec_progress): Resurrect.  Check whether VAL is a
6333         valid progress type before setting it.
6334
6335 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6336
6337         * main.c (main): Remove stray debugging message.
6338
6339 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6340
6341         * progress.c (create_image): Fix ETA padding when hours are prined.
6342
6343 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6344
6345         * version.c: Wget 1.8 is released.
6346
6347 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6348
6349         * url.c (reencode_string): Declare static.
6350
6351         * res.c (registered_specs): Declare static.
6352
6353         * progress.c (current_impl_locked): Declare static.
6354
6355         * log.c (flush_log_p): Declare static.
6356         (needs_flushing): Ditto.
6357
6358         * http.c (digest_authentication_encode): Declare static.
6359
6360         * html-url.c (init_interesting): Declare static.
6361
6362         * host.c (host_name_addresses_map): Declare static.
6363
6364         * cookies.c (find_matching_chains): Declare static.
6365
6366         * ftp-ls.c (ftp_parse_vms_ls): Warn about the memory leak
6367         indicated by lint.
6368
6369         * utils.c (path_simplify): Remove unused variable STUB_CHAR.
6370
6371         * host.c (address_list_set_faulty): Document that INDEX is
6372         currently unused.
6373
6374         * url.c (rewrite_shorthand_url): Remove unused variable PATH.
6375
6376 2001-12-08  Hrvoje Niksic  <hniksic@arsdigita.com>
6377
6378         * version.c: Wget 1.8-pre2 is released.
6379
6380 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6381
6382         * progress.c (progress_handle_sigwinch): Set up the signal again.
6383
6384         * utils.c: Include <sys/termios.h>, where Solaris defines
6385         TIOCGWINSZ.
6386
6387         * progress.c (bar_create): Don't use the last column on the screen.
6388         (create_image): Pad ETA to constant size.  Pad SIZE to nine digits
6389         only until it exceeded them.
6390
6391 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6392
6393         * version.c: Wget 1.8-pre1 is released.
6394
6395 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6396
6397         * progress.c (progress_create): Make sure that, when the output is
6398         redirected, the progress implementation gets changed to the
6399         fallback one.
6400         (bar_set_params): Set current_impl_locked to 1 when "force" is
6401         specified.
6402         (progress_create): Don't change the progress implementation if
6403         current_impl_locked is non-zero.
6404
6405         * main.c (redirect_output_signal): Call
6406         progress_schedule_redirect.
6407
6408         * progress.c (progress_schedule_redirect): New function.
6409
6410 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6411
6412         * log.c (logvprintf): Restructure to allow being called multiple
6413         times.
6414         (logprintf): Call logvprintf in a loop.
6415         (debug_logprintf): Ditto.
6416
6417 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6418
6419         * gen_sslfunc.c (ssl_init_prng): Allow the user to disable EGD by
6420         setting egd_file it to empty string.
6421
6422         * main.c (main): Change the option name from --sslegdsock to
6423         --egd-file.
6424
6425 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6426
6427         * gen_sslfunc.c (ssl_init_prng): Make the printed message
6428         translatable.
6429
6430 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6431
6432         * url.c (scheme_disable): New function.
6433
6434         * main.c (main): Call ssl_init_prng from here rather than from
6435         init_ssl, so that it has a chance to disable support for https
6436         before a URL has been resolved.
6437
6438         * gen_sslfunc.c (ssl_init_prng): Seed with rand() if all else
6439         failed.
6440         (ssl_init_prng): Disable support for https if seeding the PRNG
6441         fails.
6442
6443 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6444
6445         * utils.c (read_whole_line): Handle lines beginning with \0.
6446
6447 2001-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
6448
6449         * recur.c (convert_all_links): Guard against duplicates in
6450         downloaded_html_files.
6451         (register_download): Don't invalidate similar-looking URLs.
6452         (match_except_index): New function.
6453
6454 2001-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
6455
6456         * utils.c (path_simplify): Document with test cases.
6457
6458 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
6459
6460         * gen_sslfunc.c: Ditto.
6461
6462         * rbuf.c: Include <string.h>.
6463
6464 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
6465
6466         * recur.c (retrieve_tree): Check whether the URL was already
6467         downloaded before downloading it again.
6468         (descend_child_p): Renamed to download_child_p.
6469         (register_download): When one URL is downloaded to a file already
6470         "owned" by another URL, delete all references that map any URL to
6471         that file.
6472         (register_delete_file): New function.
6473         (retrieve_tree): Use it after deleting a file.
6474
6475         * url.c (url_parse): Re-canonicalize the URL also if the path is
6476         empty, so that e.g. "http://www.server.com" ->
6477         "http://www.server.com/".
6478         (lowercase_str): Use ISUPPER instead of !ISLOWER.
6479
6480         * retr.c (retrieve_url): Use the canonical URL form when calling
6481         register_download().
6482
6483 2001-12-04  Ian Abbott <abbotti@mev.co.uk>
6484
6485         * snprintf.c (dopr): Use `unsigned int' as the second argument to
6486         va_arg when casting to `unsigned short' is intended.
6487
6488 2001-12-04  Herold Heiko  <Heiko.Herold@previnet.it>
6489
6490         * gen_sslfunc.c: on windows provide ssl crypto random
6491           initialization through RAND_screen(); could possibly
6492           be not enough for strong ssl communication (see the
6493           relevant manual page from the openssl package).
6494
6495 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
6496
6497         * url.c (local_quote_string): Reenable quoting of question marks,
6498         but only when `--html-extension' is used.
6499
6500 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
6501
6502         * version.c: Wget 1.8-beta3 is released.
6503
6504 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
6505
6506         * snprintf.c (dopr): Cast the result of va_arg to short int and
6507         short unsigned int where these types are expected to be used.
6508
6509 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
6510
6511         * snprintf.c (dopr): Replace `short int' and `unsigned short int'
6512         with `int' when using it as the second argument to `va_arg'.
6513
6514 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
6515
6516         * host.c (address_list_new_one): New function.
6517         (lookup_host): Use it.
6518
6519 2001-12-03  Andre Majorel  <amajorel@teaser.fr>
6520
6521         * host.c (lookup_host): Don't initialize TMPSTORE directly because
6522         it's not legal C.
6523
6524 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
6525
6526         * ftp-basic.c (ftp_port): Don't return HOSTERR if we fail getting
6527         the socket data.
6528
6529         * ftp.c: Ditto.
6530
6531         * http.c: No need to declare h_errno.
6532
6533         * host.c: Declare h_errno.
6534
6535 2001-12-02  Hrvoje Niksic  <hniksic@arsdigita.com>
6536
6537         * utils.c (file_merge): If BASE doesn't contain a slash, just
6538         return a copy of FILE.
6539
6540 2001-12-02  Hrvoje Niksic  <hniksic@arsdigita.com>
6541
6542         * version.c: Wget 1.8-beta2 is released.
6543
6544 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6545
6546         * ftp.c (getftp): When PWD fails, assume "/".
6547
6548         * ftp-basic.c (ftp_syst): Fix indentation.
6549
6550 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6551
6552         * url.c (get_urls_file): If opt.base_href is specified, merge each
6553         URL with the base.
6554
6555 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6556
6557         * main.c (print_help): Don't document the removed `-nh'.
6558
6559 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6560
6561         * url.c (url_full_path): Document better.
6562
6563         * http.c (gethttp): Use the full path when creating digest
6564         authorization.
6565
6566 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6567
6568         * cookies.c (path_matches): Return 0 if PREFIX doesn't begin with
6569         '/'.
6570
6571 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6572
6573         * cookies.c (path_matches): FULL_PATH doesn't begin with '/', but
6574         PREFIX does.
6575
6576 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6577
6578         * cookies.c (check_domain_match): Reimplement to match Netscape's
6579         "preliminary specification" for cookies.
6580
6581 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6582
6583         * url.c (replace_attr_refresh_hack): New function.
6584         (convert_links): Call replace_attr_refresh_hack for Refresh
6585         links.  It will add the "TMOUT; URL=" junk before the link.
6586
6587         * html-url.c (collect_tags_mapper): Set ID to the ID of the
6588         "content" attribute, not "http-equiv".
6589         (collect_tags_mapper): Don't use OFFSET to hack the raw_* values;
6590         instead, store the information that this entry belongs to a
6591         "refresh" link.
6592
6593 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6594
6595         * version.c: Wget 1.8-beta1 is released.
6596
6597 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6598
6599         * recur.c (retrieve_tree): Allow -p retrievals to exceed maximum
6600         depth by more than one.
6601
6602 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
6603
6604         * retr.c (retrieve_url): Don't allow more than 20 redirections.
6605
6606 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
6607
6608         * recur.c (retrieve_tree): Skip the non-inline entries when
6609         enqueuing the children of a leaf HTML node in -p mode.
6610         (descend_url_p): Ignore opt.no_parent when in -p mode and UPOS is
6611         "inline".
6612
6613         * html-url.c (get_urls_html): Don't accept dash_p_leaf_HTML.
6614         (collect_tags_mapper): When an entry is "inline", mark it as such.
6615
6616         * recur.c (descend_url_p): Fix test when checking for
6617         acceptance/rejection rules.
6618
6619 2001-10-31 Daniel BODEA <dali@dali-designs.com>
6620
6621         * netrc.c (search_netrc): When slack_default is 0, still look for
6622         an account with matching password, just not the "default account".
6623         HTTP Authorization using .netrc should now work as expected.
6624
6625 2001-11-30  T. Bharath  <TBharath@responsenetworks.com>
6626
6627         * http.c (persistent_available_p): Call SHUTDOWN_SSL if
6628         test_socket_open fails.
6629
6630 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
6631
6632         * progress.c (display_image): Just print one CR to reset the
6633         cursor position.
6634
6635 2001-11-30  Christian Fraenkel  <c.fraenkel@gmx.net>
6636
6637         * init.c: New command `ssl_egd_sock'.
6638
6639         * main.c (main): New option `--sslegdsock'.
6640
6641         * gen_sslfunc.c (ssl_init_prng): Seed the RNG using EGD.
6642
6643 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6644
6645         * cmpt.c (memmove): Include a simple memmove implementation.
6646
6647 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6648
6649         * headers: Guard against header files being included twice.
6650
6651 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6652
6653         * gen-md5.c: Use unsigned char * as the buffer argument to
6654         gen_md5_update.
6655
6656 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6657
6658         * connect.h: Declare select_fd.
6659
6660 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6661
6662         * recur.c (descend_url_p): When resolving no_parent, compare with
6663         start_url, not parent url.  Otherwise link from /a/b/ to /a/c/
6664         wouldn't be followed, although the download started from /a/.
6665
6666 2001-01-23  Herold Heiko  <Heiko.Herold@previnet.it>
6667
6668         * config.h.ms, mswindows.h: defined HAVE_ISATTY, use _isatty for
6669         MS VC; somebody with Borland compiler please check and provide
6670         patch if possible;
6671
6672         * cmpt.c: provided a usleep emulation.
6673
6674 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6675
6676         * host.c (address_list_new): Initialize al->faulty.
6677
6678 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6679
6680         * http.c (http_process_range): Accept the broken output of
6681         "JavaWebServer/1.1.1".
6682
6683 2001-11-28  Hrvoje Niksic  <hniksic@arsdigita.com>
6684
6685         * progress.c (dot_set_params): If PARAMS is unspecified, use
6686         dot_style, if available.
6687
6688         * init.c: Ditto.
6689
6690         * main.c (main): Resurect --dot-style.
6691
6692         * progress.c (dot_finish): Print the quantity if we're left at the
6693         beginning of a row.
6694
6695 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6696
6697         * cmpt.c (random): Removed.
6698
6699         * retr.c (sleep_between_retrievals): Use the more portable rand()
6700         instead of random().
6701
6702 2001-11-27  Ian Abbott <abbotti@mev.co.uk>
6703
6704         * retr.c (retrieve_from_file): Initialize `new_file' to NULL to
6705         prevent seg fault.
6706
6707 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6708
6709         * connect.c (connect_to_many): Use address_list_set_faulty to
6710         prevent the faulty address from being reused.
6711
6712         * host.c (address_list_set_faulty): New function.
6713         (address_list_get_bounds): New function, instead of
6714         address_list_count.
6715
6716 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6717
6718         * url.c (convert_links): Don't translate %d-%d.
6719
6720         * main.c (print_help): Remove stray HAVE_RANDOM code.
6721
6722 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6723
6724         * ftp.c (getftp): Improve output after sending PASV.  Don't
6725         attempt to "look up" the IP address we already know; call
6726         connect_to_one directly.
6727
6728 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6729
6730         * progress.c: Change the default progress implementation to "bar".
6731
6732 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6733
6734         * progress.c (bar_create): Print two newlines.
6735
6736 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6737
6738         * cmpt.c (random): New function, a simple-minded replacement for
6739         random() on systems that don't have it.
6740
6741 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6742
6743         * config.h.in: Put a HAVE_USLEEP stub.
6744
6745         * cmpt.c (usleep): Replacement implementation of usleep using
6746         select.
6747
6748         * init.c: New option init_rate.
6749
6750         * main.c (main): New option --limit-rate.
6751
6752         * retr.c (limit_bandwidth): New function.
6753         (get_contents): Call it to limit the bandwidth used when
6754         downloading.
6755
6756         * progress.c (dot_update): Would print the wrong download speed on
6757         rows other than the first one when the download was continued.
6758         (dot_finish): Ditto.
6759
6760 2001-11-26  Ian Abbott <abbotti@mev.co.uk>
6761
6762         * http.c (gethttp): fix undeclared variable 'err' when compiled
6763         with HAVE_SSL.
6764
6765 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6766
6767         * progress.c: Don't allocate new timers; use the timing data
6768         propagated from the caller.
6769
6770         * retr.c (get_contents): Allocate and use a timer.
6771
6772 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6773
6774         * http.c (last_host_ip): Made into an address_list.
6775         (invalidate_persistent): Release pc_last_host_ip.
6776         (register_persistent): Use lookup_host.
6777         (persistent_available_p): Check for equality of hosts using
6778         address_list_match_all.  Call address_list_release.
6779         (http_cleanup): New function.
6780
6781         * ftp.c (getftp): Use lookup_host and connect_to_many.
6782
6783         * http.c (gethttp): Use lookup_host and connect_to_many.
6784
6785         * connect.c (make_connection): Removed.
6786         (connect_to_one): New function.
6787         (connect_to_many): Ditto.
6788         (set_connection_host_name): Ditto.
6789
6790         * host.c (lookup_host): New function; new return type.
6791         (address_list_new): New function.
6792         (address_list_count): Ditto.
6793         (address_list_copy_one): Ditto.
6794         (address_list_delete): Ditto.
6795         (address_list_release): Ditto.
6796         (pretty_print_address): Ditto.
6797
6798 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6799
6800         * recur.c (retrieve_tree): In case of followed redirection,
6801         blacklist the pre-redirection URL.
6802
6803 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6804
6805         * recur.c (descend_redirect_p): New function.
6806         (retrieve_tree): Make sure redirections are not blindly followed.
6807
6808 2001-11-04  Alan Eldridge  <alane@geeksrus.net>
6809
6810         * config.h.in: added HAVE_RANDOM.
6811
6812         * options.h: added random_wait to struct options.
6813
6814         * main.c (print_help [HAVE_RANDOM], main): added arg parsing, help
6815         for --random-wait.
6816
6817         * retr.c (sleep_between_retrievals) [HAVE_RANDOM]: added
6818         implementation of random wait times.
6819
6820         * init.c (commands): added "randomwait" keyword.
6821
6822 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6823
6824         * recur.c (descend_url_p): Be more conservative with blacklisting
6825         URLs.
6826         (convert_all_links): Print how many files have been converted, and
6827         how long it took.
6828
6829         * progress.c (create_image): Place the number of downloaded bytes
6830         right after the progress bar.
6831
6832         * utils.c (suffix): Return a pointer into the string.
6833
6834 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6835
6836         * url.c (convert_links): Handle CO_NULLIFY_BASE.
6837
6838         * recur.c (retrieve_tree): Ignore download-ignorable children.
6839         (convert_all_links): Specify CO_NULLIFY_BASE when link_base_p.
6840
6841         * html-url.c (handle_link): Return the newly created urlpos.
6842         (collect_tags_mapper): When dealing with BASE, store the base
6843         reference and mark it as download-ignorable.
6844
6845 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6846
6847         * url.c (convert_links): Attempt to quote '?' as "%3F" when
6848         linking to local files.  Given up on the attempt, as it breaks
6849         local browsing.
6850
6851 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6852
6853         * main.c (private_initialize): Removed.
6854         (main): Don't call private_initialize.
6855
6856         * http.c: Call lookup_host.
6857
6858         * host.c (host_init): Removed.
6859         (add_host_to_cache): Initialize host_name_address_map here, on
6860         demand.
6861         (ngethostbyname): Commented out.
6862
6863         * connect.c (make_connection): Remove dead code; use lookup_host.
6864
6865         * host.c (store_hostaddress): Renamed to lookup_host and reversed
6866         the args.
6867         Removed host_address_name_map and host_slave_master_map.
6868
6869 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6870
6871         * progress.c (dot_create): Align the "[ skipping ... ]" string
6872         with the dots.
6873
6874         * retr.c (rate): Split into two functions: calc_rate and
6875         retr_rate.
6876
6877         * progress.c (create_image): Draw a dummy progress bar even when
6878         total size is unknown.
6879         (display_image): Place the text cursor at the end of the "image".
6880
6881 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
6882
6883         * url.c (reencode_string): Use unsigned char, not char --
6884         otherwise the hex digits come out wrong for 8-bit chars such as
6885         nbsp.
6886         (lowercase_str): New function.
6887         (url_parse): Canonicalize u->url if needed.
6888         (get_urls_file): Parse each URL, and return only the valid ones.
6889         (free_urlpos): Call url_free.
6890         (mkstruct): Add :port if the port is non-standard.
6891         (mkstruct): Append the query string to the file name, if any.
6892         (urlpath_length): Use strpbrk_or_eos.
6893         (uri_merge_1): Handle the cases where LINK is an empty string,
6894         where LINK consists only of query, and where LINK consists only of
6895         fragment.
6896         (convert_links): Count and report both kinds of conversion.
6897         (downloaded_file): Use a hash table, not a list.
6898         (downloaded_files_free): Free the hash table.
6899
6900         * retr.c (retrieve_from_file): Ditto.
6901
6902         * main.c (main): Call either retrieve_url or retrieve_tree
6903         for each URL, not both.
6904
6905         * retr.c (register_all_redirections): New function.
6906         (register_redirections_mapper): Ditto.
6907         (retrieve_url): Register the redirections.
6908         (retrieve_url): Make the string "Error parsing proxy ..."
6909         translatable.
6910
6911         * res.c (add_path): Strip leading slash from robots.txt paths so
6912         that the path representations are "compatible".
6913         (free_specs): Free each individual path, too.
6914         (res_cleanup): New function.
6915         (cleanup_hash_table_mapper): Ditto.
6916
6917         * recur.c (url_queue_new): New function.
6918         (url_queue_delete): Ditto.
6919         (url_enqueue): Ditto.
6920         (url_dequeue): Ditto.
6921         (retrieve_tree): New function, replacement for recursive_retrieve.
6922         (descend_url_p): New function.
6923         (register_redirection): New function.
6924
6925         * progress.c (create_image): Cosmetic changes.
6926
6927         * init.c (cleanup): Do all those complex cleanups only if
6928         DEBUG_MALLOC is defined.
6929
6930         * main.c: Removed --simple-check and the corresponding
6931         simple_host_check in init.c.
6932
6933         * html-url.c (handle_link): Parse the URL here, and propagate the
6934         parsed URL to the caller, who would otherwise have to parse it
6935         again.
6936
6937         * host.c (xstrdup_lower): Moved to utils.c.
6938         (realhost): Removed.
6939         (same_host): Ditto.
6940
6941 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6942
6943         * utils.c (path_simplify): Preserver the (non-)existence of
6944         leading slash.  Return non-zero if changes were made.
6945
6946 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6947
6948         * progress.c (bar_update): Don't modify bp->total_length if it is
6949         zero.
6950
6951 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6952
6953         * retr.c (retrieve_url): When the redirection URL doesn't parse,
6954         print the correct error message rather than "UNKNOWN".
6955
6956 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6957
6958         * progress.c (bar_finish): If the timer didn't record any time
6959         since the download beginning, fake 1ms.
6960
6961 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6962
6963         * recur.c (recursive_retrieve): Fix typo.
6964
6965 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
6966
6967         * progress.c (create_image): Don't translate "%ld ".
6968
6969 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
6970
6971         * progress.c (bar_set_params): Allow the user to force the use of
6972         the bar.
6973
6974 2001-11-23  Lemble Gregory  <gregory.lemble@st.com>
6975
6976         * gen_sslfunc.c (ssl_init_prng): New function; seed the SSL RNG.
6977
6978 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
6979
6980         * progress.c: Renamed dp_* functions to dot_* for greater clarity
6981         and consistency with bar_*.
6982         (print_download_speed): Get rid of the unneeded '@' character.
6983         (create_image): Fix download rate geometry.
6984
6985         * progress.c (print_elapsed): Remove spurious space.
6986         (print_elapsed): Renamed to print_download_speed, since that's
6987         what it does.
6988
6989 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
6990
6991         * progress.c (bar_update): If the downloaded amount becomes larger
6992         than the expected amount, adjust the expected amount accordingly.
6993
6994 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
6995
6996         * utils.c (determine_screen_width): New function.
6997
6998         * main.c (main): New option `--progress=TYPE'.
6999         (main): Implement compatibility with the old option `--dot-style'.
7000
7001         * init.c: Removed cmd_spec_dotstyle -- that logic is now in
7002         dp_set_params.
7003         (cmd_spec_progress): New function.
7004
7005         * retr.c (get_contents): Use the progress_* functions instead of
7006         the old show_progress().
7007         (show_progress): Removed.
7008         (rate): Print "xxxx.xx K/s" instead of "KB/s".  Ditto for MB/s,
7009         etc.
7010
7011         * progress.c (set_progress_implementation): New function.
7012         (valid_progress_implementation_p): Ditto.
7013         (progress_create): Ditto.
7014         (progress_update): Ditto.
7015         (progress_finish): Ditto.
7016         (dp_create): Ditto.
7017         (dp_update): Ditto.
7018         (dp_finish): Ditto.
7019         (dp_set_params): Ditto.
7020         (print_elapsed): Ditto.
7021
7022 2001-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
7023
7024         * retr.c (show_progress): Use it.
7025
7026         * log.c (log_set_flush): New function.
7027
7028 2001-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
7029
7030         * utils.c (path_simplify): Don't remove trailing slashes.
7031
7032         * ftp.c (ftp_get_listing): Use it.
7033
7034         * utils.c (file_merge): New function.
7035
7036         * url.c (opt_url): Removed.
7037
7038         * recur.c (recursive_retrieve): Inline "opt_url" logic.
7039
7040         * main.c (main): Use xfree(), not free().
7041
7042         * url.c (rewrite_url_maybe): Renamed to rewrite_shorthand_url.
7043
7044         * ftp.c (ccon): Move `ccon' typedef here, since it's only used
7045         internally.
7046
7047         * config.h.in: Include a stub for HAVE_STRPBRK.
7048
7049         * cmpt.c (strpbrk): Include a replacement for systems without
7050         strpbrk().
7051
7052         * ftp.c: Use url_set_dir and url_set_file when modifying the URL.
7053
7054         * url.c (url_set_dir): New function.
7055         (url_set_file): Ditto.
7056
7057         * ftp-basic.c (ftp_process_type): Process FTP type here; the URL
7058         parser makes the URL "params" available, so we can do that in this
7059         function.
7060
7061         * retr.c: Ditto.
7062
7063         * ftp.c: Ditto; pass the local file information in `ccon'.
7064
7065         * http.c: Get rid of the ugly kludge that had URL being replaced
7066         with the proxy URL when proxy retrieval was requested.  Use a
7067         separate parameter to http_loop and gethttp for the proxy URL.
7068
7069         * http.c: Changed to reflect the fact that local file, proxy, and
7070         referer information are no longer stored in struct url.  The local
7071         file information is passed in `struct hstat' now.
7072
7073         * url.c: Reworked URL parsing to be more regular.  Reencode the
7074         URL using reencode_string.
7075         Removed non-URL-related information from struct url.  This
7076         includes fields `proxy', `local', and `referer'.
7077
7078 2001-11-22  Jochen Hein  <jochen@jochen.org>
7079
7080         * main.c (main): Split the copyright notice for easier
7081         translation.
7082
7083 2001-08-21  Dave Turner <dct25@hermes.cam.ac.uk>
7084
7085         * ftp-basic.c (ftp_size): New function to send non-standard SIZE
7086           command to server to request file size.
7087         * ftp.h (ftp_size): Export it.
7088         * ftp.c (getftp): Use new ftp_size function if restoring
7089           transfer of a file with unknown size.
7090
7091 2001-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
7092
7093         * url.c (parseurl): Don't depend on the now-obsolete TYPE.
7094
7095 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7096
7097         * url.c (getproxy): Handle URL shorthands.
7098
7099 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7100
7101         * main.c: Remove --wait / --waitretry backwards compatibility
7102         code.
7103
7104 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7105
7106         * main.c (main): Use it.
7107
7108         * url.c (rewrite_url_maybe): New function.
7109
7110 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7111
7112         * url.c: Clean up handling of URL schemes.
7113
7114 2001-05-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7115
7116         * url.c: Get rid of `protostrings'.
7117         (skip_proto): Don't use protostrings.
7118         (has_proto): Ditto.
7119
7120 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7121
7122         * Makefile.in: Conditionally compile getopt.o.
7123
7124 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7125
7126         * md5.h: Renamed to gnu-md5.h.
7127
7128         * md5.c: Renamed to gnu-md5.c.
7129
7130         * http.c: Ditto.
7131
7132         * ftp-opie.c: Use the new macros.
7133
7134         * sysdep.h: Define md5-related macros.
7135
7136         * config.h.in: Define HAVE_SOLARIS_MD5 or HAVE_BUILTIN_MD5
7137         depending on which md5 implementation is used.
7138
7139 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7140
7141         * res.c (res_register_specs): Initialize OLD and HP_OLD to appease
7142         the compiler.
7143
7144 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7145
7146         * http.c (gethttp): Print the whole response line when printing
7147         headers is requested.
7148
7149 2001-05-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7150
7151         * res.c: New file.  Implement all RES-related code here.
7152
7153 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7154
7155         * version.c: Wget 1.7.1 is released.
7156
7157 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
7158
7159         * headers.c (header_extract_number): Ignore trailing whitespace.
7160
7161 2001-08-24  Ian Abbott  <abbotti@mev.co.uk>
7162
7163         * html-url.c (collect_tags_mapper): Fix bug converting links
7164         with -k option for tags with multiple link attributes by
7165         handling links in the order they appear.
7166
7167 2001-08-15  Ian Abbott  <abbotti@mev.co.uk>
7168
7169         * ftp.c (ftp_loop_internal): Avoid a potential buffer overflow in
7170           the call to the 'rate' function by moving it past the error
7171           checking for the 'getftp' function return value.
7172
7173 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
7174
7175         * html-parse.c (advance_declaration): Use 0x22 instead of '"' or
7176         '\"'.  Different compilers' assert macros are broken in different
7177         ways.
7178
7179 2001-09-29  Christian Fraenkel  <c.fraenkel@gmx.net>
7180
7181         * http.c (gethttp): print debug output for errors occuring during
7182         the ssl handshake.
7183
7184 2001-11-16  Chris Seawood  <cls@seawood.org>
7185
7186         * init.c: Ditto.
7187
7188         * host.c: Ditto.
7189
7190         * connect.c: Ditto.
7191
7192         * sysdep.h: Support compilation under BEOS.
7193
7194 2001-06-08  Edward J. Sabol  <sabol@alderaan.gsfc.nasa.gov>
7195
7196         * url.c (url_equal): Fix a memory leak when parseurl returns an
7197         error on the second URL. Also, since url_equal is not used at the
7198         moment, do not compile it.
7199
7200         * url.h: Ditto for the prototype of url_equal.
7201
7202 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
7203
7204         * html-parse.c (map_html_tags): Support XML-style empty tags.
7205
7206 2001-06-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7207
7208         * wget.h (DO_REALLOC_FROM_ALLOCA): Check for do_realloc_newsize in
7209         loop condition because we're no longer setting SIZEVAR here.
7210
7211 2001-06-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7212
7213         * wget.h (DO_REALLOC_FROM_ALLOCA): Set SIZEVAR after the memcpy()
7214         call because it needs the old value.
7215
7216 2001-06-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7217
7218         * cookies.c (ATTR_NAME_CHAR): Allow almost any character to be in
7219         an attribute name.
7220
7221 2001-06-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7222
7223         * url.c (url_filename): Make sure that slashes that sneak in to
7224         u->file via query string get protected.
7225         (file_name_protect_query_string): New function.
7226
7227 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7228
7229         * recur.c (recursive_retrieve): Also check undesirable_urls with
7230         canonicalized URL.
7231
7232 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7233
7234         * http.c (gethttp): Search `.netrc' with real host, not the proxy
7235         one.
7236
7237 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7238
7239         * sysdep.h (MAP_FAILED): Provide MAP_FAILED for systems that don't
7240         define it.
7241
7242 2001-06-09  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7243
7244         * ftp.h: Provide correct prototype for ftp_parse_ls().
7245
7246 2001-06-04  Hrvoje Niksic  <hniksic@arsdigita.com>
7247
7248         * version.c: Wget 1.7 is released.
7249
7250 2001-06-03  Karl Eichwalder  <ke@suse.de>
7251
7252         * ftp-ls.c (ftp_parse_ls): Fix typo.
7253
7254 2001-05-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7255
7256         * all: Update copyright information.
7257
7258 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7259
7260         * http.c (gethttp): Indicate that the continued download failed
7261         for *this* file.
7262
7263 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7264
7265         * version.c: Wget 1.7-pre1 is released.
7266
7267 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7268
7269         * version.c: Updated version to 1.7-pre1.
7270
7271 2001-05-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7272
7273         * gen_sslfunc.c: Don't include <sys/time.h> directly.
7274
7275 2001-05-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7276
7277         * http.c (gethttp): Use real URL data for cookies, not the proxy
7278         stuff.
7279
7280 2001-05-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7281
7282         * main.c (print_help): Document `--no-http-keep-alive'.
7283
7284         * utils.c (numdigit): Handle negative numbers *correctly*.
7285
7286         * hash.c (make_nocase_string_hash_table): Use term "nocase" rather
7287         than the confusing "unsigned".
7288
7289         * utils.c (string_set_contains): Renamed from string_set_exists.
7290
7291         * hash.c (hash_table_contains): Renamed from hash_table_exists.
7292
7293         * cookies.c: Move case-insensitive hash tables to hash.c.
7294
7295 2001-05-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7296
7297         * http.c (gethttp): Before concluding that the file is already
7298         fully retrieved, make sure that the file existed and `Range' was
7299         actually requested.
7300
7301 2001-05-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7302
7303         * cookies.c (eliminate_dups): New function.
7304         (build_cookies_request): Use it.
7305         (build_cookies_request): Set chain_store_size after reallocating
7306         all_chains.
7307         (check_domain_match): Annotated for easier future debugging.
7308         (store_cookie): In the debug message, print whether the cookie is
7309         permanent.
7310
7311 2001-05-08  Hrvoje Niksic  <hniksic@arsdigita.com>
7312
7313         * http.c (http_loop): Reset no_truncate before deciding whether to
7314         set it.
7315         (gethttp): Further clarify "-c conflicts with existing file" error
7316         message, based on input from Herold Heiko.
7317
7318 2001-05-07  Hrvoje Niksic  <hniksic@arsdigita.com>
7319
7320         * http.c (http_loop): If restval is set, set no_truncate to 1
7321         unconditionally.
7322
7323 2001-05-02  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7324
7325         * ftp-ls.c (ftp_parse_winnt_ls): Assure months are being correctly
7326         converted. Pointed out by <Stefan.Weil@de.heidelberg.com>.
7327         (ftp_parse_vms_ls): Ditto.
7328
7329 2001-04-30  Hrvoje Niksic  <hniksic@arsdigita.com>
7330
7331         * init.c (cmd_address): Zero SIN before using it; apparently
7332         needed on *BSD.
7333
7334 2001-04-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7335
7336         * ftp.c (ftp_loop_internal): Don't set NO_TRUNCATE if the file is
7337         empty.
7338
7339 2001-04-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7340
7341         * main.c (main): Make `--cookies' respect its argument.
7342
7343 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
7344
7345         * main.c (main): Removed undocumented option `--email-address'.
7346
7347         * netrc.c: Use the latest read_whole_line.
7348
7349         * init.c (defaults): Set opt.ftp_pass to "-wget@".
7350
7351         * mswindows.c (pwd_cuserid): Ditto.
7352
7353         * utils.c (pwd_cuserid): Removed.
7354
7355         * host.c (ftp_getaddress): Removed.
7356
7357 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
7358
7359         (http_loop): Allocate space for filename_plus_orig_suffix with
7360         alloca; this is more efficient and removes the need to free it
7361         before each and every return.
7362
7363 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
7364
7365         * http.c (gethttp): Return RETRUNNEEDED when the retrieval is
7366         unneeded because the file is already there and fully downloaded,
7367         and -c is specified.
7368         (http_loop): Handle RETRUNNEEDED.
7369
7370         * wget.h (uerr_t): New value RETRUNNEEDED.
7371
7372         * http.c (http_loop): Set no_truncate for files that both exist
7373         and are non-empty.
7374         (gethttp): Consider the download finished when restval >= contlen,
7375         not only when restval==contlen.
7376         (gethttp): Handle redirection before giving up due to -c.
7377         (gethttp): Clarify error message which explains that -c will not
7378         truncate the file.
7379         (gethttp): When returning CONTNOTSUPPORTED, don't forget to free
7380         the stuff that needs freeing and release the socket.
7381
7382 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7383
7384         * main.c (print_help): Wget booleans accept "off", not "no".
7385
7386 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7387
7388         * http.c (http_loop): If allow_cache is zero, always disable
7389         caching, not only when retrieving through proxy.
7390
7391         * init.c: Ditto.
7392
7393         * options.h (struct options): Rename proxy_cache to allow_cache.
7394
7395 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7396
7397         * http.c (mktime_from_utc): Improve documentation.
7398         (http_atotm): Put format strings into a separate array.
7399
7400 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7401
7402         * safe-ctype.h: Instead of throwing #error when isalpha is
7403         defined, redefine it to something that will throw a compile-time
7404         error if actually *used*.  Do the same for the rest of the
7405         standard C macros.
7406
7407 2001-04-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7408
7409         * url.c (getproxy): Ignore empty proxy vars.
7410
7411 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7412
7413         * http.c (http_loop): Would load cookies every time.
7414
7415         * cookies.c (load_cookies): Handle cookies whose values contain
7416         embedded spaces.
7417
7418 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7419
7420         * utils.c: Define each DIGITS_* in one line.
7421
7422 2001-04-25  Roger L. Beeman  <beeman@cisco.com>
7423
7424         * http.c (http_atotm): Initialize t.tm_isdst to 0.
7425         (mktime_from_utc): Prevent mktime() from having discontinuities at
7426         DST transition points.
7427
7428 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7429
7430         * html-url.c (get_urls_html): Fix documentation.
7431
7432 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7433
7434         * url.c (UNSAFE_CHAR): Reimplement using a static table.
7435         (url_init): Removed.
7436         (init_unsafe_char_table): Removed.
7437
7438 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7439
7440         * snprintf.c (dopr): Replace ISDIGIT with '0' <= ch && ch <= '9'.
7441
7442 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7443
7444         * utils.c: Document timer functions.
7445
7446         * retr.c (rate): Use it.
7447         (rate): Print in GB/s if transfer rate exceeds 1 GB/s.
7448
7449         * utils.c (wtimer_granularity): New function.
7450
7451 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7452
7453         * retr.c (show_progress): Ditto.
7454
7455         * ftp.c (getftp): Ditto.
7456
7457         * http.c (gethttp): Use new timer functions.
7458
7459         * utils.c (wtimer_allocate): New function.
7460         (wtimer_new): Ditto.
7461         (wtimer_delete): Ditto.
7462         (wtimer_reset): Ditto.
7463         (wtimer_elapsed): Ditto.
7464
7465 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7466
7467         * utils.c (long_to_string): New, faster version.  Favors smaller
7468         numbers; much of the calculation is now done at compile-time.
7469
7470 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7471
7472         * utils.c (numdigit): Handle negative numbers.
7473
7474 2001-04-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7475
7476         * retr.c (show_progress): Print the download rate even when the
7477         percentages are not available.
7478
7479 2001-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
7480
7481         * ftp.c (getftp): Adjust expected_bytes if the length is
7482         authoritative.
7483
7484 2001-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7485
7486         * url.c: Don't declare `construct'.
7487
7488         * hash.c (grow_hash_table): Speed up rehashing; inline storing of
7489         mappings to new locations.
7490         (hash_table_new): Make resize_threshold a field in the hash table,
7491         so we don't have to recalculate it in each hash_table_put.
7492         (grow_hash_table): Update resize_threshold.
7493         (MAX): Remove unused macro.
7494         (prime_size): Made static.
7495
7496 2001-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7497
7498         * retr.c (retrieve_url): Call uri_merge, not url_concat.
7499
7500         * html-url.c (collect_tags_mapper): Call uri_merge, not
7501         url_concat.
7502
7503         * url.c (mkstruct): Use encode_string instead of xstrdup followed
7504         by URL_CLEANSE.
7505         (path_simplify_with_kludge): Deleted.
7506         (contains_unsafe): Deleted.
7507         (construct): Renamed to uri_merge_1.
7508         (url_concat): Renamed to uri_merge.
7509
7510 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7511
7512         * url.c (str_url): Use encode_string instead of the unnecessary
7513         CLEANDUP.
7514         (encode_string_maybe): New function, returns input string if no
7515         encoding is needed.
7516         (encode_string): Call encode_string_maybe to do the dirty work,
7517         xstrdup if no work needed.
7518
7519 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7520
7521         * wget.h (XDIGIT_TO_xchar): Define here.
7522
7523         * url.c (decode_string): Use new name.
7524         (encode_string): Ditto.
7525
7526         * http.c (XDIGIT_TO_xchar): Rename HEXD2asc to XDIGIT_TO_xchar.
7527         (dump_hash): Use new name.
7528
7529         * wget.h: Rename ASC2HEXD and HEXD2ASC to XCHAR_TO_XDIGIT and
7530         XDIGIT_TO_XCHAR respectively.
7531
7532 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7533
7534         * init.c: Include cookies.h.
7535
7536         * cookies.h: Declare cookies_cleanup.
7537
7538         * cookies.c (check_domain_match): Remove unused variable.
7539         (save_cookies): Remove extraneous argument from debug statement.
7540
7541         * host.c (same_host): Don't call skip_url.
7542
7543         * url.c (skip_url): Removed.  Removed its calls from various
7544         functions in url.c.
7545
7546 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7547
7548         * cookies.c (unsigned_string_hash): Use the new code in
7549         string_hash as reference.
7550
7551         * hash.c (hash_table_map): Allow deletion and change of the
7552         element processed by MAPFUN.
7553         (string_hash): Use the function from glib.
7554
7555 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7556
7557         * config.h.in: Include #undef stub.
7558
7559         * hash.c (hash_table_remove): Rewrite to actually clear deleted
7560         entries instead of just marking them as deleted.
7561
7562 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7563
7564         * hash.h: Declare hash_table_get_pair and hash_table_count.
7565
7566 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7567
7568         * cookies.c: Declare http_atotm.
7569
7570 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7571
7572         * ftp-ls.c (ftp_parse_unix_ls): Use octal constants for
7573         permissions.  A compiler that doesn't accept octal constants is
7574         seriously broken and shouldn't be used -- octal constants were
7575         present in K&R C!
7576
7577 2001-01-20  Karl Eichwalder  <ke@suse.de>
7578
7579         * Makefile.in: Provide and use DESTDIR according to the Coding
7580         Standards.
7581
7582 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7583
7584         * ftp-ls.c (ftp_parse_vms_ls): Make seconds optional in time
7585         specification.
7586
7587 2001-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7588
7589         * url.c (parseurl): Don't strip trailing slash when u->dir is "/"
7590         because that strips the *leading* slash, thus forcing relative
7591         FTP retrieval.
7592
7593 2001-04-10  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7594
7595         * ftp.c (getftp): Convert initial FTP directory from VMS to UNIX
7596         notation for VMS servers.
7597         (ftp_retrieve_dirs): Do not prepend '/' to f->name when
7598         odir is an empty string.
7599
7600 2001-04-10  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7601
7602         * ftp-ls.c (ftp_parse_winnt_ls): Made the fix for AM/PM more
7603         effective. Suggested by Edward J. Sabol.
7604
7605 2001-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
7606
7607         * cookies.c (build_cookies_request): Use and sort cookies from all
7608         matching domains.
7609         (build_cookies_request): Check for duplicates before generating
7610         the `Cookies' header.
7611
7612         * main.c (main): Don't load cookies here.
7613         (main): Make loadcookies and savecookies call the correct command.
7614
7615         * http.c (http_loop): Load cookies on-demand.
7616
7617 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7618
7619         * http.c (gethttp): Fix indentation of SSL ifdef.
7620
7621 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7622
7623         * ftp.c (ftp_retrieve_dirs): Don't forcibly prepend "/" to u->dir;
7624         that hack is no longer necessary.
7625         (getftp): Prepend initial directory to *non*-absolute u->dir's.
7626
7627 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7628
7629         * init.c (cmd_file): New function.
7630         (enable_tilde_expansion): New variable.
7631         (run_wgetrc): Use it.
7632         (cmd_file): Use it.
7633
7634 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
7635
7636         * init.c: Include cookie-related options.
7637
7638         * main.c (main): Include cookie-specific options.
7639         (main): Load cookies before download is finished.
7640         (main): Save cookies when done.
7641
7642         * http.c (gethttp): Process the `Set-Cookie' header.
7643         (gethttp): Include cookies in the response.
7644
7645         * cookies.c: New file.
7646
7647 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
7648
7649         * utils.c (datetime_str): New function.
7650
7651 2001-04-08  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7652
7653         * ftp-ls.c (ftp_parse_winnt_ls): The AM/PM change did assume
7654         12:01PM == 00:01, which was obviously wrong. Taken care of this
7655         anomaly.
7656
7657         * ChangeLog: Removed an excess conflict marker. Reformatted the
7658         entry by Philipp Thomas from 2001-03-09.
7659
7660         * ftp-ls.c (ftp_parse_winnt_ls): Ensure that adjusted PM hours lay
7661         between 0 and 23. Elminate unused variable `sec'.
7662
7663 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
7664
7665         * hash.c (hash_table_count): New function.
7666
7667 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7668
7669         * utils.c (read_file): Cast MAP_FAILED to char *.  Enforced by
7670         Digital Unix cc.
7671
7672 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7673
7674         * config.h.in: Oops, do the namespace tweaks only on systems we
7675         know about.
7676
7677 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7678
7679         * hash.c: Include <string.h>.
7680
7681 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7682
7683         * config.h.in: Define "compilation environment" options that work
7684         under Linux and Solaris.  To be reviewed on other OS'es.
7685
7686 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7687
7688         * http.c (gethttp): Prepend literal newline with `\n\'.
7689
7690 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7691
7692         * sysdep.h: Don't define VERY_LONG_FORMAT.
7693
7694         * utils.c (very_long_to_string): New function.
7695         (legible_very_long): Use it; don't use VERY_LONG_FORMAT.
7696
7697 2001-04-04  Christian Fraenkel  <christian.fraenkel@gmx.net>
7698
7699         * url.c (parse_uname): Would run past the end of the string if the
7700         username was present, but the URL did not contain a slash, e.g.
7701         http://foo:bar@myhost.
7702
7703 2001-04-03  KOJIMA Hajime  <kjm@rins.ryukoku.ac.jp>
7704
7705         * http.c (http_atotm): Use %A instead of %a to match full
7706         weekday.  (On most systems there is no difference.)
7707
7708 2001-04-03  Paul Bludov  <paul@ozero.net>
7709
7710         * mswindows.c (sleep): Use SleepEx() instead of Sleep().
7711         (ws_changetitle): Use alloca() instead of malloc() to avoid memory
7712         leak.
7713         (ws_mypath): Use GetModuleFileName instead of argv[0].
7714         (ws_startup): Use data.wVersion for comparison.
7715
7716 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7717
7718         * http.c (http_loop): Ditto.
7719
7720         * ftp.c (ftp_loop_internal): Made the check whether to continue
7721         retrieval `-O'-friendly.
7722
7723 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7724
7725         * netrc.c (parse_netrc): Don't trim the line endings explicitly;
7726         they will be handled as whitespace.
7727         (parse_netrc): Correctly handle lines that end with whitespace.
7728
7729 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7730
7731         * retr.c (retrieve_url): New variable global_download_count used
7732         to identify first retrieval.
7733
7734         * ftp.c (getftp): Ditto.
7735
7736         * http.c (gethttp): Rewind opt.dfp only on first retrieval.
7737
7738 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7739
7740         * init.c (cmd_address): Heap-allocate the address that gets stored
7741         to CLOSURE.  Old code would simply assign an address on the stack.
7742
7743 2001-04-01  Nicolas Lichtmaier <nick@debian.org>
7744
7745         * ftp.c (ftp_get_listing): Propagate error status.
7746         (ftp_retrieve_glob): Use it.
7747         (ftp_loop): Ditto.
7748
7749 2001-04-01  Nicolas Lichtmaier <nick@debian.org>
7750
7751         * main.c (main): Add -C to the string that is the third arg to
7752         getopt_long().
7753
7754 2001-04-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7755
7756         * ftp.c (getftp): Don't start the download from scratch if `-c'
7757         was specified, but the file is already fully downloaded.
7758
7759         * http.c (gethttp): Don't truncate a pre-existing file if `-c' was
7760         specified and the server doesn't support continued download.
7761         (gethttp): Don't start the download from scratch if `-c' was
7762         specified, but the file is already fully downloaded.
7763
7764 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7765
7766         (recursive_retrieve): Don't clear the hash tables at this point at
7767         all; it interferes with the normal operation of register_download.
7768
7769 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7770
7771         * recur.c (recursive_retrieve): Clear the hash tables only when
7772         they are defined.
7773
7774 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7775
7776         * http.c (gethttp): Make sure the socket is closed with
7777         CLOSE_INVALIDATE before we have drained the body.
7778
7779 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7780
7781         * retr.c (retrieve_url): Call register_download() for downloaded
7782         files and register_html() for downloaded HTML files.
7783
7784         * recur.c (register_download): New function; register here that a
7785         file has been downloaded, rather than in recursive_retrieve().
7786         (register_html): New function; enqueue the location of HTML files
7787         here rather than in recursive_retrieve().
7788
7789 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7790
7791         * main.c (print_help): Use multiple fputs instead of a single ugly
7792         printf().
7793         (main): Consistently assign numbers >128 to options without a
7794         corresponding character.
7795
7796 2001-03-09  Philipp Thomas  <pthomas@suse.de>
7797
7798         * safe-ctype.h: New file. Locale independent ctype.h replacement
7799         taken from libiberty.
7800
7801         * safe-ctype.c: New file. Tables for above.
7802
7803         * Makefile.in: Add safe-ctype$o to OBJS.  Add dependencies for
7804         safe-ctype$o.
7805
7806         * cmpt.c: Remove include of ctype.h. Use ISSPACE instead of
7807         isspace.
7808
7809         * ftp-basic.c: Don't include ctype.h.
7810
7811         * ftp-ls.c: Likewise.
7812
7813         * ftp.c: Likewise.
7814
7815         * headers.c: Likewise.
7816
7817         * host.c: Likewise.
7818
7819         * html-parse.c: Likewise.
7820
7821         * html-url.c: Likewise.
7822
7823         * http.c: Likewise.
7824
7825         * init.c: Likewise.
7826
7827         * main.c: Likewise. Set LC_CTYPE along with LC_MESSAGES.
7828
7829         * netrc.c: Likewise.
7830
7831         * recur.c: Likewise.
7832
7833         * retr.c: Likewise.
7834
7835         * snprintf.c: Replace ctype.h with safe-ctype.h. Use ISDIGIT
7836         instead of isdigit.
7837
7838         * sysdep.h: Remove defines of ctype macros as they aren't needed
7839         for safe-ctype-h.
7840
7841         * url.c: Don't include ctype.h.
7842
7843         * utils.c: Likewise.
7844
7845         * wget.h: Include safe-ctype.h.
7846
7847 2001-03-27  Dan Harkless  <wget@harkless.org>
7848
7849         * Makefile.in: Moved top_builddir out of "User configuration
7850         section" of top Makefile and analogous spot in this one.
7851
7852 2001-03-17  Dan Harkless  <wget@harkless.org>
7853
7854         * Makefile.in: Include @SSL_INCLUDES@ substition in INCLUDES.
7855         Define top_builddir.  Link wget with libtool so the user doesn't
7856         have to supply a bunch of custom environment variables to
7857         correctly link with the OpenSSL shared libraries.
7858
7859 2001-03-06  Hack Kampbjorn  <hack@hackdata.com>
7860
7861         * http.c (gethttp): skip :port in host header if it is the
7862         DEFAULT_HTTPS_PORT when using SSL.
7863
7864         * url.c: move the #define of DEFAULT_HTTP_PORT, DEFAULT_FTP_PORT
7865         and DEFAULT_HTTPS_PORT to the header file so it can be use in the
7866         rest of the code.
7867         * url.h: Ditto
7868
7869 2001-03-01  Jonas Jensen  <bones@huleboer.dk>
7870
7871         * retr.c (show_progress): Correctly calculate the number of bytes
7872         in the first line of the download that have been actually
7873         downloaded in this run.
7874
7875 2001-02-23  Dan Harkless  <wget@harkless.org>
7876
7877         * main.c (print_help): --help documentation for -N said it would
7878         re-download files if they had the _same_ timestamp on server.
7879         (print_help): -nr belongs in "FTP options" section of --help
7880         output, not "Recursive retrieval" section.  Alphabetized FTP
7881         options by long option name.
7882
7883 2001-02-16  Dan Harkless  <wget@harkless.org>
7884
7885         * init.c (commands): Hack Kampbjørn <hack@hackdata.com> discovered
7886         that "httpsproxy" had been inserted into commands[] out of
7887         alphabetical order, causing "BUG: unknown command `httpuser'".
7888
7889 2001-02-13  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7890
7891         * ftp-ls.c (ftp_parse_ls): Added support of ST_MACOS (Unix-like
7892         listing without correct permissons).
7893
7894         * ftp.h (stype): Added ST_MACOS to identify the NetPresenz MacOS
7895         FTP server.
7896
7897         * ftp.c (ftp_retrieve_list): New mirroring logic: A remote file
7898         shall be donwloaded only when it's newer than the local copy or
7899         when it has the same timeestamp but its size is different. ST_VMS
7900         and ST_MACOS as special cases that lie about file size.
7901
7902         * ftp-ls.c (ftp_parse_ls): Support for ST_MACOS.
7903
7904         * Makefile.in: Removed dependency on ftpparse library due to unclear
7905         copyright issues and absence of any feedback to our queries.
7906
7907         * ftp-ls.c: Removed dependency on ftpparse library due to unclear
7908         copyright issues and absence of any feedback to our queries.
7909         (ftp_parse_ls): Added a warning message when remote server system
7910         does not seem to be suported by wget.
7911         (ftp_parse_vms_ls): New function for parsing VMS ftp
7912         server listing output.
7913         (clean_line): New function responsible for removing
7914         end-of-line characters from FTP listing texts.
7915
7916         * ftp.c (getftp): Global variables pwd and host_type are now
7917         member of the ccon structure under names ccon.id and ccon.rs.
7918
7919         * ftp.h (struct ccon): Added formed global variables from ftp.c,
7920         enum stype rs (remote system identification) and char *id (initial
7921         working directory), as suggested by Hrvoje.
7922
7923         * url.c (parse_uname): Added support for passwords containing '@'
7924         characters.
7925         (skip_uname): Ditto.
7926
7927 2001-02-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7928
7929         * ftp.c (ftp_loop): Reset con.
7930
7931 2001-01-06  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7932
7933         * url.c (parse_uname): Added support for passwords containing '@'
7934         characters.
7935         (skip_uname): Ditto.
7936
7937 2001-02-11  Hack Kampbjørn  <hack@hackdata.com>
7938
7939         * url.c (parseurl): Debug-print u->ftp_type.
7940
7941 2001-02-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7942
7943         * ftp.c (ftp_loop_internal): Disable padding.
7944         (getftp): Ditto.
7945
7946         * http.c (http_loop): Disable padding.
7947
7948         * retr.c (show_progress): Use it to enable padding.
7949
7950         * retr.c (rate): Optional parameter PAD for padding the rate.
7951
7952 2001-02-10  Hrvoje Niksic  <hniksic@arsdigita.com>
7953
7954         * retr.c (show_progress): Make sure that the last output line
7955         includes progress.
7956
7957 2001-02-10  Jonas Jensen  <bones@huleboer.dk>
7958
7959         * retr.c (show_progress): Print the download rate along with the
7960         percentages.
7961         Along with Anders Thorsby <anders@thorsby.dk>.
7962
7963 2001-02-10  Tim Mooney  <mooney@dogbert.cc.ndsu.NoDak.edu>
7964
7965         * ftp.h: Rename enums `command' to `wget_ftp_command' and
7966         `fstatus' to `wget_ftp_status' because old names clash with Tru64
7967         net/if.h.
7968
7969 2001-02-08  Christian Fraenkel <christian.fraenkel@gmx.net>
7970
7971         * gen_sslfunc.c: verify_callback is now static
7972
7973         * gen_sslfunc.c (init_ssl): load certificate if specified
7974
7975         * gen_sslfunc.c (ssl_printerr): new function
7976
7977         * init.c: added new --sslcertfile and --sslcertkey switches
7978
7979         * main.c: ditto
7980
7981         * options.h: ditto
7982
7983         * http.c (gethttp): abort when init_ssl fails
7984
7985 2001-01-23  Herold Heiko  <Heiko.Herold@previnet.it>
7986
7987         * mswindows.h: Include <malloc.h>; it's needed for alloca().
7988
7989 2001-01-10  Dan Harkless  <wget@harkless.org>
7990
7991         * url.c (str_url): Clarified this function's comment header after
7992         Hrvoje answered my question on the list as to when hide != 1.
7993         Also Hrvoje pointed out I need to use xstrdup() on the string literal.
7994
7995 2001-01-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7996
7997         * connect.c (bindport): Declare addrlen as int.  Diagnosed by
7998         Drazen Kacar <dave@arsdigita.com>.
7999         (conaddr): Ditto.
8000
8001 2001-01-09  Dan Harkless  <wget@harkless.org>
8002
8003         * html-url.c: A bunch of fixup of `--page-requisites'-related
8004         comments to reflect Hrvoje's changes to my code when transplanting
8005         it into this new file, to fix spelling mistakes, to clarify, etc.
8006
8007         * url.c (write_backup_file): Clarified a comment.
8008         (str_url): Henrik van Ginhoven pointed out on the list that we
8009         shouldn't give away the number of characters in the password by
8010         replacing each character with a 'x'.  Use "<password>" instead.
8011
8012         * ftp.c (ftp_retrieve_dirs): The bug where recursion into FTP
8013         directories didn't work if logging in put you in a directory other
8014         than "/" is fixed now.  Removed the comment here warning of the bug.
8015
8016         * main.c (print_help): --continue's description was misleading.
8017         We don't "restart", we "resume".  Also, better to say
8018         "partially-downloaded file" rather than just "existing file".
8019
8020 2001-01-06  Dan Harkless  <wget@harkless.org>
8021
8022         * ChangeLog: The '[Not in 1.6 branch.]'s were decided not to be
8023         the best way to go about my aim.  Removed them in favor of:
8024
8025         * ChangeLog-branches/1.6_branch.ChangeLog: New file.
8026
8027 2001-01-04  Hrvoje Niksic  <hniksic@arsdigita.com>
8028
8029         * url.c (replace_attr): New function, to be used by both
8030         TO_COMPLETE and TO_RELATIVE case in convert_links.
8031         (find_fragment): New function for finding URL fragments.
8032         (replace_attr): Better handle the case where the original string
8033         is not quoted.  Use find_fragment.
8034         (convert_links): Use replace_attr().
8035
8036 2000-12-31  Dan Harkless  <wget@harkless.org>
8037
8038         * ChangeLog: Since this flat file doesn't have multiple branches,
8039         looking at the dates would make you think that things went into
8040         1.6 that actually just went into the 1.7-dev branch.  Added "[Not
8041         in 1.6 branch.]" where appropriate to clarify.
8042
8043 2000-12-30  Dan Harkless  <wget@harkless.org>
8044
8045         * ftp.c, http.c:  Applied Hack Kampbjørn <hack@hackdata.com>'s
8046         patch to deal with h_errno not being defined in netdb.h under Cygwin.
8047
8048 2000-12-18  Csaba Raduly  <csaba.raduly@sophos.com>
8049
8050         * sysdep.h: Include <malloc.h> and <io.h> under Watcom.
8051
8052 2000-12-17  Igor Khristophorov  <igor@atdot.org>
8053
8054         * http.c (check_end): Fix test for '+' or '-'.
8055
8056 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
8057
8058         * url.c (parseurl): Rename inner loop var from i to ind to avoid
8059         clash with the function top-level-declared variable i.
8060         (str_url): Likewise, rename inner-loop i to j.
8061
8062         * recur.c (parse_robots): Don't declare LEN at top of function.
8063         (robots_match): Renamed parameter FORBIDDEN to avoid hiding of
8064         global variable.
8065
8066         * main.c (main): Change erroneous use of bitwise and to logical.
8067
8068         * init.c (cmd_address): Don't heap-allocate `sin'; it can be on
8069         the stack because it will be copied to closure.
8070
8071         Thanks to Csaba Raduly's run of PC-LINT over the sources.
8072
8073 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
8074
8075         * http.c (basic_authentication_encode): Use xmalloc(), not
8076         malloc().  Thanks to Csaba Raduly's run of PC-LINT over the
8077         sources.
8078
8079 2000-12-17  Csaba Raduly  <csaba.raduly@sophos.com>
8080
8081         * sysdep.h: Test for __EMX__ rather than for EMXOS2 for OS/2
8082         compilation.
8083
8084 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
8085
8086         * mswindows.c: Include <errno.h>.
8087
8088         * gen_sslfunc.c: Include <errno.h>.
8089
8090         * ftp-basic.c: Don't attempt to declare errno or h_errno because
8091         they're not used.
8092
8093         * main.c: Include <errno.h> because errno is used.
8094
8095         * ftp.c: Ditto.
8096
8097         * http.c: Include <netdb.h> for h_errno.
8098
8099 2000-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
8100
8101         * html-parse.c (advance_declaration): MSVC assert() chokes on
8102         '\"'.  Use '"' instead.
8103
8104 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8105
8106         * utils.c (xfree_real): Removed.
8107         (xfree_debug): Just call free().
8108
8109         * wget.h (xfree): Make it an alias for free.
8110
8111 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8112
8113         * http.c (http_loop): Furthermore, touch output_document only if
8114         it is known to be an existing regular file.
8115
8116 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8117
8118         * ftp.c (ftp_retrieve_list): Ditto.
8119
8120         * http.c (http_loop): Touch output_document if that is used for
8121         output.
8122
8123 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8124
8125         * http.c: Include gen_sslfunc.h after including Wget's headers.
8126         (persistent_available_p): Needed coma before `int ssl'.
8127
8128 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8129
8130         * ftp.c (ftp_loop_internal): Ditto.
8131
8132         * http.c (http_loop): Use it.
8133
8134         * retr.c (sleep_between_retrievals): New function that handles the
8135         logic of opt.wait and opt.waitretry.
8136
8137 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8138
8139         * rbuf.h: Implement only a single version of RBUF_READCHAR, using
8140         rbuf_read_bufferful when the buffer is depleted.
8141
8142         * rbuf.c (rbuf_read_bufferful): New function.
8143
8144 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8145
8146         * gen_sslfunc.h: Use ansi2knr style function declarations.
8147
8148         * gen_sslfunc.c: Reformat according to the GNU coding standards.
8149         More should be done.
8150
8151         * http.c (persistent_available_p): Place the cheap SSL test nearer
8152         the top of the function.
8153         (CLOSE_FINISH, CLOSE_INVALIDATE): Define only one version of each.
8154
8155 2000-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
8156
8157         * url.c (init_unsafe_char_table): Reinstate space as an unsafe
8158         char.
8159
8160 2000-12-03  Christian Fraenkel <christian.fraenkel@gmx.net>
8161
8162         * Makefile.in: added gen_sslfunc object
8163         * config.h.in: added HAVE_SSL define
8164         * connect.c: changed select_fd from static int to int
8165         * connect.h: ditto
8166         * gen_sslfunc.h: New file
8167         * gen_sslfunc.c: ditto
8168         * http.c: added HTTPS fuctionality
8169         * retrc.c: ditto
8170         * url.c: ditto
8171         * init.c: added opt.httpsproxy
8172         * options.h: ditto
8173         * rbuf.h: added alternate rbuf struct
8174         * wget.h: added CONSSLERR
8175         * rbuf.c: ditto
8176
8177         * http.c: Added HTTPS fuctionality.
8178
8179         * retrc.c: Ditto.
8180
8181         * url.c: Ditto.
8182
8183         * init.c: Added opt.httpsproxy.
8184
8185         * options.h: Ditto.
8186
8187         * rbuf.h: Added alternate rbuf struct.
8188
8189         * wget.h: Added CONSSLERR.
8190
8191         * rbuf.c: Ditto.
8192
8193 2000-11-30  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8194
8195         * ftp-ls.c (ftp_parse_unix_ls): Added second parameter
8196         "ignore_perms" to ignore file and directory permissions for
8197         Windows NT FTP server listings.
8198         (ftp_parse_winnt_ls): New function.
8199         (ftp_parse_ls): Parses UNIX and Windows NT listings
8200         separately. Simple heuristics for distinguishing between UNIX and
8201         MS-DOS-like FTP listing provided by Windows NT FTP service.
8202
8203 2000-11-18  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8204
8205         * ftpparse.c, ftpparse.h: New files.
8206
8207         * ftp-ls.c (ftp_parse_ls): Use ftp_parse_unix_ls for UNIX servers
8208         only. Use ftp_parse_nonunix_ls otherwise.
8209         (ftp_parse_nonunix_ls): Stub to the ftpparse library handling all
8210         exotic FTP servers.
8211
8212         * ftp.h (stype): New enum, distinguishes UNIX, VMS, and "other"
8213         FTP servers.
8214
8215         * ftp.c: New static wariables host_type, pwd, and pwd_len.
8216         (getftp): Support for VMS. Support for FTP servers that do not
8217         place you in the root directory after login.
8218         (ftp_retrieve_list): VMS is silent about the real file size, issue
8219         a more appropriate message.
8220         (ftp_get_listing): Pass host_type to ftp_parse_ls.
8221
8222         * ftp-basic.c (ftp_pwd, ftp_syst): New functions.
8223
8224 2000-11-30  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8225
8226         * ftp-ls.c (ftp_parse_unix_ls): Added second parameter
8227         "ignore_perms" to ignore file and directory permissions for
8228         Windows NT FTP server listings.
8229         (ftp_parse_winnt_ls): New function.
8230         (ftp_parse_ls): Parses UNIX and Windows NT listings
8231         separately. Simple heuristics for distinguishing between UNIX
8232         and MS-DOS-like FTP listing provided by Windows NT FTP service.
8233
8234 2000-11-29  John Summerfield  <summer@OS2.ami.com.au>
8235
8236         * netrc.c (parse_netrc): Get rid of line ending.
8237
8238 2000-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
8239
8240         * ftp.c (ftp_retrieve_list): Undo typo "fix" until resolution by
8241         Dan.
8242
8243 2000-11-24  Karl Eichwalder  <ke@suse.de>
8244
8245         * main.c (print_help): Untabify.
8246
8247 2000-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
8248
8249         * utils.c (xrealloc_debug): Do the unregister/register thing only
8250         if the pointer has actually changed.
8251         (xmalloc_real): Declare `static' in DEBUG_MALLOC builds.
8252         (xfree_real): Ditto.
8253         (xrealloc_real): Ditto.
8254         (xstrdup_real): Ditto.
8255
8256 2000-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
8257
8258         * ftp.c (getftp): ftp_getaddress() returns a malloc'ed copy of the
8259         string; no need to strdup() it.
8260         (getftp): Make pwd_len a local variable.
8261         (ftp_loop): Free PWD before returning.
8262
8263         * init.c (cleanup): Free opt.ftp_pass only if it's non-NULL.
8264
8265 2000-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
8266
8267         * all: Use xfree() instead of free.
8268
8269         * utils.c (xfree): New function.
8270
8271 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
8272
8273         * url.c (convert_links): HTML-quote the converted string.
8274
8275         * utils.c (html_quote_string): Move here from ftp-ls.c
8276         (html_quote_string): Make non-static; declare in utils.h.
8277         (html_quote_string): Convert SP to &#32;.
8278
8279 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
8280
8281         * ftp.c (getftp): Reformat Jan's code according to GNU coding
8282         standards; remove (debugging?) printf's; use '\0' for the ASCII
8283         zero character.  Use alloca() instead of malloc() for
8284         inter-function temporary allocations.
8285
8286 2000-11-18  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8287
8288         * ftpparse.c, ftpparse.h: New files.
8289
8290         * ftp-ls.c (ftp_parse_ls): Use ftp_parse_unix_ls for UNIX servers
8291         only. Use ftp_parse_nonunix_ls otherwise.
8292         (ftp_parse_nonunix_ls): Stub to the ftpparse library handling all
8293         exotic FTP servers.
8294
8295         * ftp.h (stype): New enum, distinguishes UNIX, VMS, and "other"
8296         FTP servers.
8297
8298         * ftp.c: New static wariables host_type, pwd, and pwd_len.
8299         (getftp): Support for VMS. Support for FTP servers that do not
8300         place you in the root directory after login.
8301         (ftp_retrieve_list): VMS is silent about the real file size, issue
8302         a more appropriate message.
8303         (ftp_get_listing): Pass host_type to ftp_parse_ls.
8304
8305         * ftp-basic.c (ftp_pwd, ftp_syst): New functions.
8306
8307 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
8308
8309         * hash.c (hash_table_put): Don't overwrite deleted mappings.
8310
8311 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
8312
8313         * hash.c (find_mapping): New function.
8314         (hash_table_get): Use it.
8315         (hash_table_get_pair): Ditto.
8316         (hash_table_exists): Ditto.
8317         (hash_table_remove): Ditto.
8318         (hash_table_remove): Really delete the entry if the mapping
8319         following LOCATION is empty.
8320
8321         * utils.c (string_set_add): Check whether the element has existed
8322         before.
8323
8324         * hash.c (hash_table_get_pair): New function.
8325
8326 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8327
8328         * http.c (http_process_type): Ignore trailing whitespace; use
8329         strdupdelim().
8330
8331         * recur.c (recursive_retrieve): Use the new `convert' field.
8332         (convert_all_links): Ditto.
8333         (convert_all_links): Don't respect meta_disallow_follow.
8334
8335         * html-url.c (handle_link): Fill out link_relative_p and
8336         link_complete_p.
8337
8338         * url.h (struct _urlpos): Make elements more readable.
8339
8340         * recur.c (recursive_retrieve): Call slist_prepend instead of
8341         slist_append.
8342         (convert_all_links): Call slist_nreverse before iterating through
8343         urls_html.
8344
8345         * utils.c (slist_prepend): New function.
8346         (slist_nreverse): Ditto.
8347
8348 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8349
8350         * http.c (check_end): Constify.
8351
8352 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8353
8354         * http.c (http_loop): If username and password are known, try the
8355         `Basic' authentication scheme by default.
8356
8357         * connect.h: Declare test_socket_open.
8358
8359 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8360
8361         * version.c: Bump version from 1.5.3+dev to 1.7-dev.
8362
8363 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8364
8365         * http.c (gethttp): Don't use the return value of sprintf().
8366         (gethttp): Inhibit keep-alive if opt.http_keep_alive is 0.
8367
8368 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8369
8370         * recur.c (recursive_retrieve): Print the "so we don't load"
8371         debugging message only if we really don't load.
8372
8373         * http.c (gethttp): Inhibit keep-alive if proxy is being used.
8374         (gethttp): Don't request keep-alive if keep-alive is inhibited.
8375
8376 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8377
8378         * http.c (gethttp): Make the HTTP persistent connections more
8379         robust.
8380
8381 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8382
8383         * retr.c (get_contents): If use_expected, make sure that the
8384         appropriate amount of data is being read.
8385
8386         * http.c (gethttp): Check for both `Keep-Alive: ...' and
8387         `Connection: Keep-Alive'.
8388
8389         * wget.h (DEBUGP): Call debug_logprintf only if opt.debug is
8390         turned on.
8391
8392 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8393
8394         * http.c (connection_available_p): Use it.
8395
8396         * connect.c (test_socket_open): New function.
8397
8398         * http.c (gethttp): Support persistent connections.  Based on the
8399         ideas, and partly on code, by Sam Horrocks <sam@daemoninc.com>.
8400         (register_persistent): New function.
8401         (connection_available_p): Ditto.
8402         (invalidate_connection): Ditto.
8403
8404 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8405
8406         * url.c (convert_links): Handle UREL2ABS case.
8407
8408         * recur.c (recursive_retrieve): Instead of the list
8409         urls_downloaded, use hash tables dl_file_url_map and
8410         dl_url_file_map.
8411         (convert_all_links): Use them to retrieve data.
8412
8413         * host.c (clean_hosts): Free the hash tables.
8414
8415         * main.c (private_initialize): Call host_init().
8416
8417         * host.c (store_hostaddress): Use a saner, hash table-based data
8418         model.
8419         (realhost): Ditto.
8420         (host_init): Initialize the hash tables.
8421
8422 2000-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
8423
8424         * utils.c (slist_append): Eviscerate NOSORT.  Hash tables are now
8425         used for what the sorted slists used to be used for.
8426         (slist_contains): Don't rely on the list being sorted.
8427         (slist_append): Simplify the code.
8428
8429         * recur.c (recursive_cleanup): Use free_string_set.
8430
8431         * utils.c (string_set_add, string_set_exists, string_set_free):
8432         New functions for easier freeing of hash tables whose keys are
8433         strdup'ed strings.
8434
8435         * recur.c (recursive_retrieve): Use the hash table functions for
8436         storing undesirable URLs.
8437
8438         * hash.c: New file.
8439
8440 2000-11-17  Hrvoje Niksic  <hniksic@arsdigita.com>
8441
8442         * main.c (private_initialize): Call url_init.
8443         (main): Call private_initialize.
8444
8445         * url.c (unsafe_char_table): New table.
8446         (UNSAFE_CHAR): Use it.
8447         (init_unsafe_char_table): New function.
8448         (url_init): New function; call init_unsafe_char_table.
8449
8450 2000-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
8451
8452         * mswindows.h: Define snprintf and vsnprintf to _snprintf and
8453         _vsnprintf respectively.
8454
8455 2000-11-15  Hrvoje Niksic  <hniksic@arsdigita.com>
8456
8457         * config.h.in: Do the _XOPEN_SOURCE and _SVID_SOURCE things only
8458         on Linux.
8459
8460 2000-11-15  Hrvoje Niksic  <hniksic@arsdigita.com>
8461
8462         * html-url.c (handle_link): Handle HTML fragment identifiers.
8463
8464         * recur.c (recursive_retrieve): If norobot info is respected and
8465         the file is specified not to be followed by robots, respect that.
8466
8467         * html-url.c (collect_tags_mapper): Handle <meta name=robots
8468         content=X>.  For us the important cases are where X is NONE or
8469         where X contains NOFOLLOW.
8470         (get_urls_html): Propagate that information to the caller.
8471
8472 2000-11-13  Hrvoje Niksic  <hniksic@arsdigita.com>
8473
8474         * url.c (convert_links): Unlink the file we might be reading from
8475         before writing to it.
8476         (convert_links): Use alloca instead of malloc for
8477         filename_plus_orig_suffix.
8478
8479 2000-11-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8480
8481         * host.c (realhost): Add HOST to the list with quality==0 only if
8482         it wasn't already there.
8483         Based on analysis by Lu Guohan <feng@public.bjnet.edu.cn>.
8484
8485 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8486
8487         * url.c (get_urls_file): Ditto.
8488         (convert_links): Ditto.
8489
8490         * html-url.c (get_urls_html): Use read_file() instead of
8491         load_file().
8492
8493         * utils.c (read_file): New function, instead of the old
8494         load_file().
8495         (read_file_free): Ditto.
8496
8497         * url.c (findurl): Search only for the supported protocols.
8498         (convert_links): Use fwrite() when writing out a region of
8499         characters.
8500
8501 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8502
8503         * ftp-ls.c: Move html_quote_string and ftp_index here.
8504
8505         * url.c: Remove get_urls_html, since that's now in html-url.c.
8506
8507         * html-url.c: New file.
8508
8509         * html-parse.c: New file.
8510
8511 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8512
8513         * init.c (run_wgetrc): Don't bother killing off '\r' since
8514         pars_line() skips whitespace at end of line anyway.
8515         (parse_line): Oops, it didn't.  Now it does.
8516
8517         * recur.c (parse_robots): Ditto here.
8518
8519         * ftp-ls.c (ftp_parse_unix_ls): Kill off the newline character
8520         manually because read_whole_line no longer does.
8521
8522         * utils.c (read_whole_line): Rewrite to: a) use less memory
8523         (reallocates to needed size after work), b) work faster -->
8524         fgets() instead of getc, c) be more correct --> doesn't kill the
8525         newline character at the end of line.
8526
8527 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8528
8529         * init.c (comind): Initialize MAX to array size - 1.
8530
8531 2000-11-08  Hrvoje Niksic  <hniksic@arsdigita.com>
8532
8533         * url.c (construct): Changed last_slash[-1] to *(last_slash - 1).
8534         Suggested by Edward J. Sabol.
8535
8536 2000-11-08  Hrvoje Niksic  <hniksic@arsdigita.com>
8537
8538         * url.c (construct): Handle the case where host name is not
8539         followed by a slash.
8540
8541 2000-11-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8542
8543         * init.c: commands[] need to be sorted!  ("base" wasn't.)
8544
8545 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
8546
8547         * wget.h (DO_REALLOC_FROM_ALLOCA): Use braces to disambiguate
8548         `if'.
8549
8550 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
8551
8552         * url.c (construct): Insert unneeded initialization for the
8553         compiler to shut up.
8554
8555         * config.h.in: Define _XOPEN_SOURCE to 500 to get the prototype
8556         for strptime() (*duh*).  Define _SVID_SOURCE to get S_IFLNK which
8557         otherwise gets lost when you define _XOPEN_SOURCE.
8558
8559         * utils.c (touch): Include the file name in the error message.
8560         From Debian.
8561
8562 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
8563
8564         * log.c (logvprintf): Use vsnprintf() in all cases.  If necessary,
8565         resize the buffer to fit the formated message.  That way, messages
8566         of arbitrary size may be printed.
8567         (logvprintf): Use saved_append() to optionally log the last
8568         several lines of output.
8569         (logputs): Ditto.
8570         (log_close): Adapt to new data structures.
8571         (log_dump): Ditto.
8572         (redirect_output): Print messages to stderr, not to stdout.
8573
8574         * log.c (saved_append_1): New function.  Replaces the old logging
8575         system ("log all output until 10M characters") with a new, much
8576         more reasonable one ("log last screenful of text").
8577         (saved_append): New function; call saved_append_1.
8578         (free_log_line): New function.
8579
8580 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
8581
8582         * url.c (construct): Fix comment.
8583         (find_last_char): Document.
8584
8585 2000-11-04  Hrvoje Niksic  <hniksic@arsdigita.com>
8586
8587         * snprintf.c: New file.
8588
8589 2000-11-03  Hrvoje Niksic  <hniksic@arsdigita.com>
8590
8591         * wget.h: If HAVE_STDARG_H is not defined, don't declare argument
8592         types to logprintf() and debug_logprintf().
8593
8594 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8595
8596         * ftp.c (ftp_loop_internal): Hide the password from the URL when
8597         printing non-verbose.  Problem spotted by Dariusz Mlynarczyk
8598         <darekm@bydg.lomac.com.pl>.
8599
8600 2000-11-02  Junio Hamano  <junio@twinsun.com>
8601
8602         * ftp-basic.c (ftp_login): Make comparison case-insensitive.
8603
8604 2000-11-02  Tyler Riddle  <triddle@liquidmarket.com>
8605
8606         * http.c (known_authentication_scheme_p): Recognize NTML
8607         authentication.
8608         (create_authorization_line): Treat NTML the same as `Basic'.
8609
8610 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8611
8612         * retr.c (retrieve_url): Free url before returning.
8613         (retrieve_url): Free mynewloc before returning.
8614         Spotted by Mark A. Mankins <Mankins_Mark@prc.com>.
8615
8616 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8617
8618         * url.c (parseurl): Remove possible reading past the end of
8619         sup_protos[].  Spotted by Mark A. Mankins <Mankins_Mark@prc.com>.
8620
8621 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8622
8623         * main.c (main): In case of opt.downloaded overflowing, print
8624         <overflow> instead of a totally bogus random value.
8625
8626         * retr.c (retrieve_from_file): Ditto.
8627
8628         * recur.c (recursive_retrieve): Ditto.
8629
8630         * main.c (main): Ditto.
8631
8632         * http.c (http_loop): Ditto.
8633
8634         * ftp.c (ftp_loop_internal): Use downloaded_increase() instead of
8635         `+=', and downloaded_exceeds_quota() instead of the simple-minded
8636         check.
8637         (ftp_retrieve_list): Ditto.
8638         (ftp_retrieve_dirs): Ditto.
8639         (ftp_retrieve_glob): Ditto.
8640
8641         * retr.c (downloaded_increase): New function.  Notice overflows of
8642         opt.downloaded.
8643         (downloaded_exceeds_quota): Make sure that opt.downloaded is not
8644         used if it overflowed.
8645
8646         * options.h (struct options): New member downloaded_overflow.
8647
8648 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8649
8650         * wget.h (enum): Remove extra space after last enumeration.
8651
8652 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8653
8654         * main.c (main): Use legible_very_long() for printing
8655         opt.downloaded.
8656
8657         * utils.c (legible_1): New function that operates on strings and
8658         does the brunt of legible()'s work.
8659         (legible): Use legible_1().
8660         (legible_very_long): New function; dump the argument with
8661         sprintf(), and call legible_1().
8662
8663         * options.h (struct options): Use VERY_LONG_TYPE for
8664         opt.downloaded.
8665
8666         * sysdep.h (VERY_LONG_TYPE): Define it to have a 64-bit or greater
8667         type.
8668
8669         * config.h.in: Make sure that SIZEOF_LONG and SIZEOF_LONG_LONG get
8670         defined.  Define HAVE_LONG_LONG if long long is available.
8671
8672 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8673
8674         * utils.c (long_to_string): Update with a later, better version.
8675
8676 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8677
8678         * url.c (path_simplify_with_kludge): New function.
8679         (path_simplify_with_kludge): Disable it.  Instead...
8680         (parse_dir): ...make sure that at this point the right thing is
8681         done, i.e. that "query" part of the URL (?...) is always assigned
8682         to the file, never to the directory portion of the path.
8683
8684 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8685
8686         * retr.c (retrieve_url): Detect redirection cycles.
8687
8688 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8689
8690         * url.c (get_urls_html): Decode HTML entities using
8691         html_decode_entities.
8692
8693         * html.c (htmlfindurl): Don't count the `#' in numeric entities
8694         (&#NNN;) as an HTML fragemnt.
8695         (html_decode_entities): New function.
8696
8697 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8698
8699         * html.c (htmlfindurl): Fix recognition of # HTML fragments.
8700
8701 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8702
8703         * url.c (construct): Rewritten for clarity.  Avoids the
8704         unnecessary copying and stack-allocation the old version
8705         performed.
8706
8707 2000-10-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8708
8709         * ftp.c (getftp): Ditto.
8710
8711         * http.c (gethttp): Rewind the stream when retrying from scratch.
8712
8713 2000-10-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8714
8715         * retr.c (retrieve_url): Use url_concat() to handle relative
8716         redirections instead of /ad hoc/ code.
8717
8718         * url.c (url_concat): New function encapsulating weird
8719         construct().
8720         (urllen_http_hack): New function.
8721         (construct): When constructing new URLs, recognize that `?' does
8722         not form part of the file name in HTTP.
8723
8724 2000-10-13  Adrian Aichner  <adrian@xemacs.org>
8725
8726         * retr.c: Add msec timing support for WINDOWS.
8727         * retr.c (reset_timer): GetSystemTime() on WINDOWS.
8728         * retr.c (elapsed_time): Calculate delta time to msec on WINDOWS.
8729
8730 2000-10-27  Dan Harkless  <wget@harkless.org>
8731
8732         * retr.c (retrieve_url): Manually applied T. Bharath
8733         <TBharath@responsenetworks.com>'s patch to get wget to grok
8734         illegal relative URL redirects.  Reformatted and re-commented it.
8735
8736 2000-10-23  Dan Harkless  <wget@harkless.org>
8737
8738         * connect.c (make_connection and bindport): Manually applied Rob
8739         Mayoff <mayoff@dqd.com>'s 1.5.3 patch to add --bind-address,
8740         changing coding style to GNU's.
8741
8742         * ftp.c (ftp_loop_internal): --delete-after wasn't implemented for
8743         files downloaded via FTP.  Per a comment, .listing files were not
8744         counted towards number of bytes and files downloaded because they're
8745         deleted anyway.  Well, they aren't under -nr, so count them then.
8746
8747         * init.c: Manually applied Rob Mayoff's 1.5.3 patch to add
8748         --bind-address, alphabetizing, changing coding style to GNU's,
8749         commenting, and renaming cmd_ip_address() to cmd_address() to
8750         imply hostnames also okay.
8751
8752         * main.c (main): --delete-after didn't delete the root of the
8753         tree.  Ignore --convert-links if --delete-after was specified.
8754         Manually applied Rob Mayoff's 1.5.3 patch to add --bind-address,
8755         fixing duplicate use of added-since-1.5.3 case value.
8756         (print_help): Clarified that --delete-after deletes local files.
8757         Rob forgot to add a line for his new --bind-address option.
8758
8759         * options.h (struct options): Manually applied Rob Mayoff's patch
8760         to add --bind-address (bind_address structure member).
8761
8762         * recur.c (recursive_retrieve): Improved comment; added DEBUGP().
8763         Ignore --convert-links if --delete-after was specified.
8764
8765         * retr.c (retrieve_from_file): Just added a DEBUGP().
8766
8767 2000-10-19  Dan Harkless  <wget@harkless.org>
8768
8769         * ftp.c (ftp_loop_internal): downloaded_file() enumerators changed.
8770         (getftp): Applied Piotr Sulecki <Piotr.Sulecki@ios.krakow.pl>'s
8771         patch to work around FTP servers that incorrectly respond to the
8772         "REST" command with the remaining size rather than the total file size.
8773
8774         * http.c (gethttp): Improved a comment and added code to tack on
8775         ".html" to text/html files without that extension when -E specified.
8776         (http_loop): Use new downloaded_file() enumerators and deal with
8777         the case of gethttp() called xrealloc() on u->local.
8778
8779         * init.c (commands): Added new "htmlextension" command.
8780         Also renamed John Daily's cmd_quad() to the more descriptive
8781         cmd_lockable_boolean(), alpha-sorted the CMD_DECLARE()s and
8782         removed duplicate cmd_boolean() declaration.
8783
8784         * main.c (print_help): Added my new -E / --html-extension option.
8785         (main): Undocumented --email-address option previously used -E synonym.
8786         Stole it away for the much more deserving --html-extension's use.
8787
8788         * options.h (struct options): Added html_extension field.
8789
8790         * url.c (convert_links): URL X that we saved as X.html locally due
8791         to -E needs to be backed up as X.orig, not X.html.orig.  Added comments.
8792         (downloaded_file): Now remembers if we added .html extension to a file.
8793
8794         * url.h (downloaded_file_t): Added extra enumerators to support above.
8795         (downloaded_file): Now takes and returns a downloaded_file_t.
8796
8797         * wget.h (unnamed "dt" enum): Added ADDED_HTML_EXTENSION enumerator.
8798
8799 2000-10-09  Dan Harkless  <wget@harkless.org>
8800
8801         * html.c (htmlfindurl): Added unneeded initialization to quiet warning.
8802
8803         * main.c (print_help): Clarified what --retr-symlinks does.
8804
8805 2000-09-15  John Daily  <jdaily@cyberdude.com>
8806
8807         * init.c: Add support for "always" and "never" values to allow
8808         .wgetrc to override commandline (useful e.g. with .pm files
8809         calling `wget --passive-ftp' when your firewall doesn't allow that).
8810
8811         * ftp.c (getftp): passive_ftp is first option to support always/never.
8812
8813 2000-08-30  Dan Harkless  <wget@harkless.org>
8814
8815         * ftp.c (ftp_retrieve_list): Use new INFINITE_RECURSION #define.
8816
8817         * html.c: htmlfindurl() now takes final `dash_p_leaf_HTML' parameter.
8818         Wrapped some > 80-column lines.  When -p is specified and we're at a
8819         leaf node, do not traverse <A>, <AREA>, or <LINK> tags other than
8820         <LINK REL="stylesheet">.
8821
8822         * html.h (htmlfindurl): Now takes final `dash_p_leaf_HTML' parameter.
8823
8824         * init.c: Added new -p / --page-requisites / page_requisites option.
8825
8826         * main.c (print_help): Clarified that -l inf and -l 0 both allow
8827         infinite recursion.  Changed the unhelpful --mirrior description
8828         to simply give the options it's equivalent to.  Added new -p option.
8829         (main): Added some comments; handle new -p / --page-requisites.
8830
8831         * options.h (struct options): Added new page_requisites field.
8832
8833         * recur.c: Changed "URL-s" to "URLs" and "HTML-s" to "HTMLs".
8834         Calculate and pass down new `dash_p_leaf_HTML' parameter to
8835         get_urls_html().  Use new INFINITE_RECURSION #define.
8836
8837         * retr.c: Changed "URL-s" to "URLs".  get_urls_html() now takes
8838         final `dash_p_leaf_HTML' parameter.
8839
8840         * url.c: get_urls_html() and htmlfindurl() now take final
8841         `dash_p_leaf_HTML' parameter.
8842
8843         * url.h (get_urls_html): Now takes final `dash_p_leaf_HTML' parameter.
8844
8845         * wget.h: Added some comments and new INFINITE_RECURSION #define.
8846
8847 2000-08-23  Dan Harkless  <wget@harkless.org>
8848
8849         * main.c (print_help): -B / --base was not mentioned.
8850
8851 2000-08-22  Dan Harkless  <wget@harkless.org>
8852
8853         * main.c (print_help): Modified -nc description to mention that it
8854         also prevents the creation of multiple versions of the same file
8855         with ".<number>" suffixes.
8856
8857 2000-07-14  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8858
8859         * retr.c (retrieve_url): Consistently strdup opt.referer when
8860         setting u->referer.
8861
8862 2000-06-09  Dan Harkless  <wget@harkless.org>
8863
8864         * main.c (print_help): --help output for --waitretry was over 80 cols.
8865
8866 2000-06-09  Hrvoje Niksic  <hniksic@iskon.hr>
8867
8868         * url.c (encode_string): Fix comment.
8869         Suggested by Herold Heiko <Heiko.Herold@previnet.it>.
8870
8871 2000-06-01  Const Kaplinsky  <const@ce.cctpu.edu.ru>
8872
8873         * ftp.c (ftp_retrieve_list): Change permissions only on plain
8874         files.
8875
8876 2000-06-01  Hrvoje Niksic  <hniksic@iskon.hr>
8877
8878         * url.c (str_url): Print the port number only if it's different
8879         from the default port number for that protocol.
8880
8881 2000-05-22  Dan Harkless  <wget@harkless.org>
8882
8883         * main.c (print_help): Added --help line for Damir Dzeko
8884         <ddzeko@zesoi.fer.hr>'s until-now-undocumented --referer option.
8885         Removed comments that --referer and --waitretry were undocumented.
8886         Changed "`.wgetrc' command" to "`.wgetrc'-style command" on --help
8887         line for --execute.
8888
8889 2000-05-18  Hrvoje Niksic  <hniksic@iskon.hr>
8890
8891         * ftp.c (getftp): Ditto.
8892
8893         * http.c (gethttp): Check for return value of fclose/fflush.
8894
8895 2000-04-12  Hrvoje Niksic  <hniksic@iskon.hr>
8896
8897         * host.c (store_hostaddress): Instead of shifting ADDR, start
8898         copying from the correct address.
8899
8900 2000-04-12  Hrvoje Niksic  <hniksic@iskon.hr>
8901
8902         * http.c (gethttp): Don't free REQUEST -- it was allocated with
8903         alloca().
8904         Pointed out by Gisle Vanem <gvanem@eunet.no>.
8905
8906 2000-04-04  Dan Harkless  <wget@harkless.org>
8907
8908         * host.c (store_hostaddress): R. K. Owen's patch introduces a
8909         "left shift count >= width of type" warning on 32-bit
8910         architectures.  Got rid of it by tricking the compiler w/ a variable.
8911
8912         * url.c (UNSAFE_CHAR): The macro didn't include all the illegal
8913         characters per RFC1738, namely everything above '~'.  It also
8914         generated a warning on OSes where char =~ unsigned char.  Fixed.
8915
8916 1998-10-17  Hrvoje Niksic  <hniksic@srce.hr>
8917
8918         * http.c (http_process_type): Removed needless strdup(), a memory
8919         leak.
8920
8921 1998-09-25  Hrvoje Niksic  <hniksic@srce.hr>
8922
8923         * html.c (htmlfindurl): Set PH to the first occurrence of `#'.
8924
8925 1998-09-25  Simon Munton  <simonm@m4data.co.uk>
8926
8927         * init.c (wgetrc_file_name): Don't free HOME under Windows.
8928
8929 1998-12-01  "R. K. Owen"  <rkowen@Nersc.GOV>
8930
8931         * host.c (store_hostaddress): Fix for big endian 64-bit machines.
8932
8933 1998-12-01  Hrvoje Niksic  <hniksic@srce.hr>
8934
8935         * url.c (UNSAFE_CHAR): New macro.
8936         (contains_unsafe): Use it.
8937         (encode_string): Ditto.
8938
8939 1998-12-01  Hrvoje Niksic  <hniksic@srce.hr>
8940
8941         * main.c (i18n_initialize): Use LC_MESSAGES only if available.
8942
8943 2000-03-31  Hrvoje Niksic  <hniksic@srce.hr>
8944
8945         * Use TOUPPER/TOLOWER.
8946
8947 1998-12-22  Alexander V. Lukyanov  <lav@yars.free.net>
8948
8949         * ftp-opie.c (btoe): Zero-terminate OSTORE.
8950
8951 2000-03-21  Hrvoje Niksic  <hniksic@iskon.hr>
8952
8953         * wget.h (DO_REALLOC_FROM_ALLOCA): Ditto.
8954
8955         * sysdep.h (ISALNUM): New macro.
8956         (TOLOWER): Ditto.
8957         (TOUPPER): Ditto.
8958
8959 2000-03-10  Dan Harkless  <wget@harkless.org>
8960
8961         * html.c (idmatch): Implemented checking of my new --follow-tags
8962         and --ignore-tags options.
8963
8964         * init.c (commands): Added comment reminding people adding new
8965         entries doing allocation to add corresponding freeing in cleanup().
8966         (commands): Added new followtags and ignoretags commands.
8967         (cleanup): Free storage for new followtags and ignoretags.
8968
8969         * main.c: Use of "comma-separated list" was random -- normalized
8970         it.  Did some alphabetization.  Added comments pointing out
8971         "Options without arguments" and "Options accepting an argument"
8972         sections of long_options[].  Added new options --follow-tags and
8973         -G / --ignore-tags.  Added comment that Damir's --referer is
8974         currently undocumented.  Added comment that Heiko's --waitretry is
8975         partially undocumented (mentioned in --help but not in
8976         wget.texi).  Moved improperly sorted 24, 129, and 'G' cases.
8977
8978         * options.h (struct options): Added new fields follow_tags and
8979         ignore_tags.
8980
8981         * wget.h: Added "#define EQ 0" so we can say "strcmp(a, b) == EQ".
8982
8983 2000-03-02  Dan Harkless  <wget@harkless.org>
8984
8985         * ftp.c (ftp_loop_internal): Heiko introduced "suggest explicit
8986         braces to avoid ambiguous `else'" warnings.  Eliminated them.
8987
8988         * http.c (gethttp): Dan Berger's query string patch is totally
8989         bogus.  If you have two different URLs, gen_page.cgi?page1 and
8990         get_page.cgi?page2, they'll both be saved as get_page.cgi and the
8991         second will overwrite the first.  Also, parameters to implicit
8992         CGIs, like "http://www.host.com/db/?2000-03-02" cause the URLs to
8993         be printed with trailing garbage characters, and could seg fault.
8994         Backing out the patch, which Dan B. informed me by email was just
8995         a kludge to download StarOffice from Sun made necessary due to
8996         wget's unconditional escaping of certain characters (room for an
8997         option there?).
8998         (http_loop): Heiko introduced "suggest explicit braces to avoid
8999         ambiguous `else'" warnings.  Eliminated them.
9000
9001         * main.c: Heiko's --wait / --waitretry backwards compatibility
9002         code looks to have been totally untested -- automatic variable
9003         'wr' was used without being initialized, and a long int was passed
9004         into setval()'s char* val parameter.
9005
9006         * recur.c (parse_robots): Applied Edward J. Sabol
9007         <sabol@alderaan.gsfc.nasa.gov>'s patch for Guan Yang's reported
9008         problem with "User-agent:<space>*<space>" lines in robots.txt.
9009
9010         * url.c (parseurl, str_url): Removing Dan Berger's code (see
9011         http.c above for explanation).
9012
9013 1999-08-25  Heiko Herold  <Heiko.Herold@previnet.it>
9014
9015         * ftp.c: Respect new option waitretry.
9016
9017 2000-01-30  Damir Dzeko  <ddzeko@zesoi.fer.hr>
9018
9019         * http.c (gethttp): Send custom Referer, if required.
9020
9021 1999-09-24  Charles G Waldman  <cgw@fnal.gov>
9022
9023         * netrc.c (parse_netrc): Allow passwords to contain spaces.
9024
9025         * netrc.c (parse_netrc): New function.
9026
9027 1999-09-17  Dan Berger  <dberger@ix.netcom.com>
9028
9029         * http.c (gethttp): Send it.
9030
9031         * url.c (parseurl): Detect query string in HTTP URL-s.
9032         (str_url): Print it.
9033
9034 2000-03-02  HIROSE Masaaki  <hirose31@t3.rim.or.jp>
9035
9036         * html.c (html_allow): Add <link href=...> and <script src=...>.
9037
9038 1999-05-02  andrew deryabin  <djsf@softhome.net>
9039
9040         * http.c (gethttp): Specify port in `Host' header only if it's
9041         different from 80.
9042
9043 1998-11-03  Edward J. Sabol  <sabol@alderaan.gsfc.nasa.gov>
9044
9045         * recur.c (recursive_retrieve): If a finite maximum depth is
9046         specified, and we're are already at that depth, don't download the
9047         HTML file for parsing.
9048
9049 2000-03-01  Dan Harkless  <wget@harkless.org>
9050
9051         * ftp.c (ftp_loop_internal): Call new downloaded_file() function,
9052         even though we don't do conversion on HTML files retrieved via
9053         FTP, so _current_ usage of downloaded_file() makes this call unneeded.
9054         (ftp_retrieve_list): Added a comment saying where we need to
9055         stat() a .orig file if FTP'd HTML file conversion is ever implemented.
9056         (ftp_retrieve_list): "Local file '%s' is more recent," is sometimes
9057         a lie -- reworded as "Server file no newer than local file '%s' --".
9058
9059         * http.c (http_loop): Fixed a typo and clarified a comment.
9060         (http_loop): When -K and -N are specified together, compare size
9061         and timestamp of server file X against local file X.orig (if
9062         extant) rather than converted local file X.
9063         (http_loop): "Local file '%s' is more recent," is sometimes a lie
9064         -- reworded as "Server file no newer than local file '%s' --".
9065         (http_loop): Call new downloaded_file() function to prevent
9066         wrongful overwriting of .orig file when -N is specified.
9067
9068         * url.c (convert_links): When -K specified, only rename X to
9069         X.orig if downloaded_file() returns TRUE.  Otherwise when we skip
9070         file X due to -N, we clobber an X.orig from a previous invocation.
9071         (convert_links): Call the failsafe xstrdup(), not the real strdup().
9072         (convert_links): Added a note asking anyone who understands how
9073         multiple URLs can correspond to a single file to comment it.
9074         (downloaded_file): Added this new function.
9075
9076         * url.h (downloaded_file): Added prototype for this new function
9077         as well as its downloaded_file_t enum type.
9078
9079         * wget.h (boolean): Added this new typedef and TRUE and FALSE #defines.
9080
9081 2000-02-29  Dan Harkless  <wget@harkless.org>
9082
9083         * version.c: Upped version to developer-only "1.5.3+dev".
9084
9085 2000-02-18  Dan Harkless  <wget@harkless.org>
9086
9087         * init.c (backup_converted): Added this new option.
9088
9089         * main.c (-K / --backup-converted): Added this new option.
9090
9091         * options.h (backup_converted): Added this new option.
9092
9093         * url.c (convert_links): When backup_converted is specified, save
9094         file X as X.orig before converting.
9095
9096         * url.h (urlpos): Fixed typo -- said "Rekative" instead of "Relative".
9097
9098 1998-09-21  Hrvoje Niksic  <hniksic@srce.hr>
9099
9100         * version.c: Wget 1.5.3 is released.
9101
9102 1998-09-21  Hrvoje Niksic  <hniksic@srce.hr>
9103
9104         * host.c (ftp_getaddress): Don't warn when reverse-lookup of local
9105         address doesn't yield FQDN.
9106
9107 1998-09-21  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
9108
9109         * cmpt.c (strerror): Fix declaration of sys_errlist.
9110
9111 1998-09-11  Hrvoje Niksic  <hniksic@srce.hr>
9112
9113         * main.c (main): Don't use an array subscript as the first
9114         argument to STRDUP_ALLOCA.
9115         From Kaveh R. Ghazi.
9116
9117 1998-09-11  Szakacsits Szabolcs  <szaka@sienet.hu>
9118
9119         * html.c (htmlfindurl): Download table background.
9120
9121 1998-09-11  Hans Grobler  <grobh@conde.ee.sun.ac.za>
9122
9123         * init.c (parse_line): Would free *com before allocating it.
9124         (parse_line): Would free com instead of *com.
9125
9126 1998-09-10  Howard Gayle  <howard@fjst.com>
9127
9128         * url.c (get_urls_html): Would drop the last character of the
9129         link.
9130
9131 1998-09-10  Hrvoje Niksic  <hniksic@srce.hr>
9132
9133         * http.c (http_loop): Don't print status code if quiet.
9134
9135 1998-09-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9136
9137         * log.c: Use <stdarg.h> only when __STDC__.
9138
9139 1998-09-10  Adam D. Moss  <adam@foxbox.org>
9140
9141         * html.c (htmlfindurl): Download <layer src=...>.
9142
9143 1998-09-10  Howard Gayle  <howard@fjst.com>
9144
9145         * ftp.c (ftp_retrieve_list): Don't update the time stamp of a file
9146         not retrieved.
9147
9148 1998-06-27  Hrvoje Niksic  <hniksic@srce.hr>
9149
9150         * utils.c: Include <libc.h> on NeXT.
9151
9152 1998-06-26  Heinz Salzmann  <heinz.salzmann@intermetall.de>
9153
9154         * url.c (get_urls_html): Fix calculation of URL position.
9155
9156 1998-06-23  Hrvoje Niksic  <hniksic@srce.hr>
9157
9158         * version.c: Wget 1.5.2 is released.
9159
9160 1998-06-23  Dave Love  <d.love@dl.ac.uk>
9161
9162         * ftp.c, init.c, netrc.c: Include errno.h.
9163
9164         * http.c: Include errno.h and time header.
9165
9166         * Makefile.in (exext): Define.
9167         (install.bin, uninstall.bin): Use it.
9168
9169 1998-06-21  Hrvoje Niksic  <hniksic@srce.hr>
9170
9171         * http.c (http_loop): Don't attempt to compare local and remote
9172         sizes if the remote size is unknown.
9173
9174 1998-06-16  Hrvoje Niksic  <hniksic@srce.hr>
9175
9176         * url.c (get_urls_html): Use malloc() instead of alloca in the
9177         loop.
9178
9179 1998-06-13  Hrvoje Niksic  <hniksic@srce.hr>
9180
9181         * version.c: Wget 1.5.2-b4 is released.
9182
9183 1998-06-13  Hrvoje Niksic  <hniksic@srce.hr>
9184
9185         * url.c (get_urls_html): Ignore spaces before and after the URI.
9186
9187 1998-06-08  Wanderlei Antonio Cavassin  <cavassin@conectiva.com.br>
9188
9189         * ftp.c (getftp): Translate `done'.
9190
9191 1998-06-06  Hrvoje Niksic  <hniksic@srce.hr>
9192
9193         * version.c: Wget 1.5.2-b3 is released.
9194
9195 1998-06-06  Alexander Kourakos  <awk@bnt.com>
9196
9197         * init.c (cleanup): Close dfp, don't free it.
9198
9199 1998-06-06  Hrvoje Niksic  <hniksic@srce.hr>
9200
9201         * utils.c (make_directory): Twiddle.
9202
9203         * config.h.in: Added template for access().
9204
9205 1998-06-05  Mathieu Guillaume  <mat@cythere.com>
9206
9207         * html.c (htmlfindurl): Download <input src=...>
9208
9209 1998-06-03  Hrvoje Niksic  <hniksic@srce.hr>
9210
9211         * utils.c (file_exists_p): Use access() with two arguments.
9212
9213 1998-05-27  Martin Kraemer  <Martin.Kraemer@mch.sni.de>
9214
9215         * netrc.c (parse_netrc): Correct logic.
9216
9217 1998-05-27  Hrvoje Niksic  <hniksic@srce.hr>
9218
9219         * ftp.c (getftp): Added `break'; suggested by Lin Zhe Min
9220         <ljm@ljm.wownet.net>.
9221
9222 1998-05-24  Hrvoje Niksic  <hniksic@srce.hr>
9223
9224         * version.c: Wget 1.5.2-b2 is released.
9225
9226 1998-05-18  Juan Jose Rodriguez  <jcnsoft@jal1.telmex.net.mx>
9227
9228         * mswindows.h: Don't translate mkdir to _mkdir under Borland.
9229
9230 1998-05-17  Hrvoje Niksic  <hniksic@srce.hr>
9231
9232         * retr.c (elapsed_time): Return correct value when
9233         HAVE_GETTIMEOFDAY is undefined.
9234
9235 1998-05-13  Hrvoje Niksic  <hniksic@srce.hr>
9236
9237         * version.c: Wget 1.5.2-b1 is released.
9238
9239 1998-05-08  Hrvoje Niksic  <hniksic@srce.hr>
9240
9241         * getopt.c (_getopt_internal): Use exec_name instead of argv[0].
9242         (_getopt_internal): Don't translate `#if 0'-ed strings.
9243
9244 1998-05-06  Douglas E. Wegscheid  <wegscd@whirlpool.com>
9245
9246         * mswindows.c (ws_handler): Use fork_to_background().
9247
9248 1998-05-05  Hrvoje Niksic  <hniksic@srce.hr>
9249
9250         * version.c: Wget 1.5.1 is released.
9251
9252 1998-05-05  Hrvoje Niksic  <hniksic@srce.hr>
9253
9254         * http.c (parse_http_status_line): Avoid `minor' and `major'
9255         names.
9256
9257 1998-05-02  Hrvoje Niksic  <hniksic@srce.hr>
9258
9259         * utils.c (mkdirhier): Renamed to make_directory.
9260
9261 1998-05-01  Hrvoje Niksic  <hniksic@srce.hr>
9262
9263         * mswindows.c (fork_to_background): Define under Windows.
9264
9265         * utils.c (fork_to_background): New function.
9266
9267         * html.c (htmlfindurl): Removed rerdundant casts.
9268
9269 1998-05-01  Douglas E. Wegscheid  <wegscd@whirlpool.com>
9270
9271         * mswindows.c (ws_mypath): Cache the path.
9272
9273 1998-04-30  Douglas E. Wegscheid  <wegscd@whirlpool.com>
9274
9275         * ftp.h: Prefix enum ftype members with FT_.
9276
9277         * ftp-ls.c, ftp.c, html.h: Adjust accordingly.
9278
9279         * mswindows.h: Use stat under Borland, _stat under MSVC.
9280
9281 1998-04-28  Hrvoje Niksic  <hniksic@srce.hr>
9282
9283         * http.c (known_authentication_scheme_p): New function.
9284         (gethttp): Handle authorization more correctly.
9285
9286         * ftp-basic.h: Removed.
9287
9288         * cmpt.h: Removed.
9289
9290         * utils.c: Include <unistd.h> before <pwd.h>; needed under SunOS
9291         with gcc 2.8.
9292         (numdigit): Use `while' loop.
9293
9294         * http.c (create_authorization_line): Detect authentication
9295         schemes case-insensitively.
9296
9297         * http.c (extract_header_attr): Use strdupdelim().
9298         (digest_authentication_encode): Move declaration of local
9299         variables to smaller scope.
9300         (digest_authentication_encode): Reset REALM, OPAQUE and NONCE.
9301         (create_authorization_line): Detect authentication schemes
9302         case-insensitively.
9303
9304         * utils.c (touch): Constify.
9305
9306         * http.c (gethttp): Report a nicer error when no data is received.
9307
9308         * rbuf.h (RBUF_READCHAR): Ditto.
9309
9310         * ftp-basic.c (ftp_response): Use sizeof.
9311
9312 1998-04-27  Hrvoje Niksic  <hniksic@srce.hr>
9313
9314         * retr.c (print_percentage): EXPECTED is long, not int.
9315         (print_percentage): Use floating-point arithmetic to avoid
9316         overflow with large files' sizes multiplied with 100.
9317
9318 1998-04-27  Gregor Hoffleit  <flight@mathi.uni-heidelberg.de>
9319
9320         * config.h.in: Added pid_t stub.
9321
9322         * sysdep.h (S_ISREG): Moved here from mswindows.h (NeXT doesn't
9323         define it).
9324
9325 1998-04-20  Hrvoje Niksic  <hniksic@srce.hr>
9326
9327         * version.c: Wget 1.5.0 is released.
9328
9329 1998-04-18  Hrvoje Niksic  <hniksic@srce.hr>
9330
9331         * url.c (str_url): Ditto.
9332
9333         * ftp-basic.c (ftp_rest): Use new name.
9334
9335         * utils.c (long_to_string): Renamed from prnum().
9336
9337 1998-04-16  Hrvoje Niksic  <hniksic@srce.hr>
9338
9339         * version.c: Wget 1.5-b17 is released.
9340
9341 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
9342
9343         * headers.c (header_get): New argument FLAGS.
9344
9345         * http.c (gethttp): If request is malformed, bail out of the
9346         header loop.
9347         (gethttp): Check for empty header *after* the status line checks.
9348         (gethttp): Disallow continuations for status line.
9349
9350 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
9351
9352         * version.c: Wget 1.5-b16 is released.
9353
9354 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
9355
9356         * init.c (commands): Renamed `always_rest' to `continue'.
9357
9358 1998-04-05  Hrvoje Niksic  <hniksic@srce.hr>
9359
9360         * all: Use it.
9361
9362         * log.c (logputs): New argument.
9363         (logvprintf): Ditto.
9364         (logprintf): Ditto.
9365
9366 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
9367
9368         * http.c (http_atotm): Update comment.
9369
9370         * main.c (i18n_initialize): Set LC_MESSAGES, not LC_ALL.
9371
9372         * wget.h: Renamed ENABLED_NLS to HAVE_NLS.
9373
9374         * main.c (i18n_initialize): New function.
9375         (main): Use it.
9376
9377         * log.c: Include <unistd.h>.
9378
9379         * retr.c (show_progress): Cast alloca to char *.
9380
9381 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
9382
9383         * version.c: Wget 1.5-b15 is released.
9384
9385 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
9386
9387         * utils.h: Declare file_non_directory_p().
9388
9389 1998-04-03  Hrvoje Niksic  <hniksic@srce.hr>
9390
9391         * main.c (main): It's `tries', not `numtries' now.
9392
9393 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
9394
9395         * init.c (getperms): Removed.
9396
9397 1998-04-01  Tim Charron  <tcharron@interlog.com>
9398
9399         * log.c (logvprintf): Don't use ARGS twice.
9400
9401 1998-04-01  John  <john@futuresguide.com>
9402
9403         * mswindows.c: Cleaned up.
9404
9405 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
9406
9407         * version.c: Wget 1.5-b14 is released.
9408
9409 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
9410
9411         * ftp-opie.c (STRLEN4): New macro.
9412         (btoe): Use it.
9413
9414 1998-04-01  Junio Hamano  <junio@twinsun.com>
9415
9416         * http.c: Document all the Digest functions.
9417
9418 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
9419
9420         * utils.c (file_non_directory_p): Renamed from isfile().
9421
9422         * mswindows.h (S_ISREG): New macro, suggested by Tim Adam.
9423
9424 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
9425
9426         * utils.c (mkdirhier): Use 0777 instead of opt.dirmode.
9427
9428         * init.c (cmd_spec_dotstyle): Use 48 dots per line for binary
9429         style.
9430         (cmd_permissions): Removed.
9431
9432         * config.h.in: Add template for WORDS_BIGENDIAN.
9433
9434 1998-03-31  Junio Hamano  <junio@twinsun.com>
9435
9436         * http.c (HEXD2asc): New macro.
9437         (dump_hash): Use it.
9438
9439 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
9440
9441         * version.c: Wget 1.5-b13 is released.
9442
9443 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
9444
9445         * main.c (main): Don't try to use `com'.
9446
9447 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
9448
9449         * init.c (cmd_permissions): New function.
9450
9451 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
9452
9453         * version.c: Wget 1.5-b12 is released.
9454
9455 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
9456
9457         * init.c (commands): Renamed `numtries' to `tries'.
9458         (cmd_spec_debug): Removed.
9459         (home_dir): Under Windows, return `C:\' if HOME is undefined.
9460
9461 1998-03-29  Hrvoje Niksic  <hniksic@srce.hr>
9462
9463         * config.h.in: Define _XOPEN_SOURCE.
9464
9465         * init.c (check_user_specified_header): New function.
9466         (cmd_spec_header): Use it.
9467         (cmd_spec_useragent): New function.
9468
9469 1998-03-29  Hrvoje Niksic  <hniksic@srce.hr>
9470
9471         * version.c: Wget 1.5-b11 is released.
9472
9473 1998-03-28  Hrvoje Niksic  <hniksic@srce.hr>
9474
9475         * wget.h: Include <libintl.h> only if NLS is enabled.
9476
9477 1998-03-26  Hrvoje Niksic  <hniksic@srce.hr>
9478
9479         * options.h (struct options): Made `wait' a long.
9480         (struct options): Ditto for `timeout'.
9481
9482 1998-03-19  Hrvoje Niksic  <hniksic@srce.hr>
9483
9484         * utils.c (exists): Renamed to file_exists_p.
9485         (file_exists_p): Use access() if available.
9486
9487 1998-03-17  Hrvoje Niksic  <hniksic@srce.hr>
9488
9489         * utils.c (memfatal): Set save_log_p to 0 to avoid potential
9490         infloop.
9491
9492         * log.c: do_logging -> save_log_p.
9493
9494         * config.h.in: Added template for HAVE_VSNPRINTF.
9495
9496 1998-03-16  Hrvoje Niksic  <hniksic@srce.hr>
9497
9498         * init.c: Ditto.
9499
9500         * http.c: Protect declaration against non-ANSI compiler.
9501
9502         * log.c (logvprintf): Use vsnprintf() if available.
9503
9504         * getopt.c (main): Don't translate test stuff.
9505
9506 1998-03-16  Hrvoje Niksic  <hniksic@srce.hr>
9507
9508         * version.c: Wget 1.5-b10 is released.
9509
9510 1998-03-11  Hrvoje Niksic  <hniksic@srce.hr>
9511
9512         * ftp.c (getftp): Don't translate "CWD %s".
9513
9514         * wget.h (GCC_FORMAT_ATTR): Renamed from FORMAT_ATTR.
9515
9516 1998-03-07  Hrvoje Niksic  <hniksic@srce.hr>
9517
9518         * ftp-opie.c (btoe): Use memcpy() instead of strncat().
9519
9520         * log.c (logputs): New function.
9521         (logvprintf): Renamed from vlogmsg; use logputs().
9522
9523         * retr.c (show_progress): Print `[100%]' when the retrieval is
9524         finished.
9525
9526         * init.c (run_wgetrc): Use FILE, not PATH.
9527         (wgetrc_file_name): Ditto.
9528
9529 1998-03-07  Tim Adam  <tma@osa.com.au>
9530
9531         * recur.c (parse_robots): Correctly reset `entries' on empty
9532         disallow.
9533
9534 1998-03-07  Hrvoje Niksic  <hniksic@srce.hr>
9535
9536         * init.c (cmd_spec_debug): Use cmd_boolean().
9537
9538 1998-02-23  Hrvoje Niksic  <hniksic@srce.hr>
9539
9540         * http.c (gethttp): Create proxy-authorization correctly.
9541
9542 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
9543
9544         * md5.c: Ditto.
9545
9546         * getopt.c: Use ANSI function definitions.
9547
9548         * ftp-opie.c: New file.
9549
9550         * options.h: Don't redefine EXTERN.
9551
9552         * init.c: Sort it correctly.
9553
9554 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
9555
9556         * version.c: Wget 1.5-b9 is released.
9557
9558 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
9559
9560         * recur.c (recursive_retrieve): Reset `first_time'.
9561
9562         * ftp.c (getftp): Added `default' clause to switches of uerr_t.
9563
9564         * rbuf.c (rbuf_peek): Simplified.
9565         (rbuf_flush): Use MINVAL.
9566
9567         * wget.h (MINVAL): Moved from url.h.
9568
9569         * rbuf.h (RBUF_FD): New macro.
9570
9571         * url.c (add_url): Add to the head of the list.
9572
9573         * ftp.c (ftp_retrieve_list): Set the permissions to downloaded
9574         file.
9575         (getftp): Set the default permissions to 0600.
9576
9577 1998-02-21  Hrvoje Niksic  <hniksic@srce.hr>
9578
9579         * url.c (get_urls_html): Ditto.
9580         (convert_links): Ditto.
9581
9582         * recur.c (parse_robots): Ditto.
9583
9584         * html.c (ftp_index): Ditto.
9585
9586         * ftp-ls.c (ftp_parse_unix_ls): Open file as binary.
9587
9588         * init.c (defaults): Initialize `opt' to zero via memset.
9589
9590         * http.c (digest_authentication_encode): goto considered harmful.
9591
9592 1998-02-19  Hrvoje Niksic  <hniksic@srce.hr>
9593
9594         * ftp.c (delelement): Simplify and fix leak.
9595
9596 1998-02-18  Hrvoje Niksic  <hniksic@srce.hr>
9597
9598         * http.c (dump_hash): Use HEXD2ASC instead of home-grown stuff.
9599
9600         * url.h (HEXD2ASC): Removed warning.
9601
9602         * init.c (comind): Use binary search.
9603         (commands): Reorganized.
9604         (setval): Ditto.
9605         (cmd_boolean): New function.
9606         (cmd_number): Ditto.
9607         (cmd_number_inf): Ditto.
9608         (cmd_string): Ditto.
9609         (cmd_vector): Ditto.
9610         (cmd_directory_vector): Ditto.
9611         (cmd_bytes): Ditto.
9612         (cmd_time): Ditto.
9613         (cmd_spec_debug): Ditto.
9614         (cmd_spec_dirmode): Ditto.
9615         (cmd_spec_dirstruct): Ditto.
9616         (cmd_spec_dotstyle): Ditto.
9617         (cmd_spec_header): Ditto.
9618         (cmd_spec_htmlify): Ditto.
9619         (cmd_spec_mirror): Ditto.
9620         (cmd_spec_outputdocument): Ditto.
9621         (cmd_spec_recursive): Ditto.
9622         (settime): Merged with cmd_time().
9623         (setbytes): Merged with cmd_bytes().
9624         (setonoff): Merged with cmd_boolean().
9625         (onoff): Ditto.
9626
9627 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
9628
9629         * Makefile.in (distclean): Remove `config.h'.
9630
9631 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
9632
9633         * version.c: Wget 1.5-b8 is released.
9634
9635 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
9636
9637         * http.c (digest_authentication_encode): New function.
9638         (create_authorization_line): Use it.
9639         (dump_hash): New function.
9640         (digest_authentication_encode): Use it.
9641
9642         * fnmatch.c: Renamed from `mtch.c'.
9643
9644 1998-02-15  Karl Eichwalder  <ke@suse.de>
9645
9646         * main.c (main): Tag "Written by..." string as translatable.
9647
9648 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
9649
9650         * wget.h (FREE_MAYBE): New macro.
9651
9652         * http.c (create_authorization_line): Don't use ANSI C string
9653         concatenation feature.
9654         (basic_authentication_encode): Use alloca() for temporary
9655         variables.
9656
9657         * recur.h: Ditto.
9658
9659         * http.c: Ditto.
9660
9661         * headers.h: Ditto.
9662
9663         * ftp-basic.c: Protect declaration against non-ANSI compiler.
9664
9665         * http.c (create_authorization_line): Cast `unsigned char *' to
9666         `char *' for sprintf, to shut up the noisy Digital Unix cc.
9667
9668 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
9669
9670         * version.c: Wget 1.5-b7 is released.
9671
9672 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
9673
9674         * cmpt.c (strstr): Synched with glibc-2.0.6.
9675
9676         * ftp-basic.c (calculate_skey_response): Ditto.
9677         (calculate_skey_response): Use alloca().
9678
9679         * http.c (create_authorization_line): Work with FSF's version of
9680         md5.c.
9681
9682         * md5.c: New file, from GNU libc.
9683
9684 1998-02-14  Hrvoje Niksic  <hniksic@srce.hr>
9685
9686         * url.h (URL_CLEANSE): Name the temporary variable more carefully.
9687
9688 1998-02-13  Hrvoje Niksic  <hniksic@srce.hr>
9689
9690         * http.c (basic_authentication_encode): New function, instead of
9691         the macro.
9692
9693 1998-02-13  Junio Hamano  <junio@twinsun.com>
9694
9695         * http.c: Add HTTP-DA support.
9696         * ftp-basic.c: Add Opie/S-key support.
9697         * config.h.in, Makefile.in: Add HTTP-DA and Opie/S-key support.
9698         * md5.c, md5.h: New files.
9699
9700 1998-02-13  Hrvoje Niksic  <hniksic@srce.hr>
9701
9702         * http.c (http_process_range): Renamed from hprocrange().
9703         (http_process_range): Parse the whole header.
9704
9705         * headers.c: New file.
9706         (header_process): New function.
9707         (header_get): Renamed from fetch_next_header.
9708
9709         * all: Include utils.h only where necessary.
9710
9711         * wget.h: Declare xmalloc(), xrealloc() and xstrdup() here.
9712
9713         * wget.h: Add provisions for dmalloc.
9714
9715 1998-02-12  Hrvoje Niksic  <hniksic@srce.hr>
9716
9717         * version.c: Wget 1.5-b6 is released.
9718
9719 1998-02-12  Hrvoje Niksic  <hniksic@srce.hr>
9720
9721         * ftp.c (ftp_loop): Determine `filename' more precisely.
9722
9723         * init.c (setval): Don't set `opt.quiet' if output-document is
9724         `-'.
9725
9726         * log.c (log_init): Print to STDERR instead of STDOUT.
9727         (vlogmsg): Use STDERR by default.
9728         (logflush): Ditto.
9729
9730 1998-02-11  Simon Josefsson  <jas@pdc.kth.se>
9731
9732         * host.c: Use addr_in again.
9733
9734 1998-02-08  Karl Eichwalder  <karl@suse.de>
9735
9736         * http.c (gethttp): Fixed typo.
9737
9738 1998-02-08  Hrvoje Niksic  <hniksic@srce.hr>
9739
9740         * version.c: Wget 1.5-b5 is released.
9741
9742 1998-02-08  Hrvoje Niksic  <hniksic@srce.hr>
9743
9744         * retr.c (show_progress): Use it.
9745
9746         * log.c (logflush): New function.
9747
9748         * wget.h: Utilize __attribute__ if on gcc.
9749
9750 1998-02-07  Hrvoje Niksic  <hniksic@srce.hr>
9751
9752         * http.c (base64_encode_line): New argument LENGTH.
9753         (BASIC_AUTHENTICATION_ENCODE): Use it.
9754         (BASIC_AUTHENTICATION_ENCODE): Take length of HEADER into account.
9755
9756         * main.c (main): Fixed fprintf() format mismatch.
9757
9758 1998-02-06  Hrvoje Niksic  <hniksic@srce.hr>
9759
9760         * version.c: Wget 1.5-b4 is released.
9761
9762 1998-02-03  Simon Josefsson  <jas@pdc.kth.se>
9763
9764         * host.c: use sockaddr_in instead of addr_in.
9765
9766 1998-02-04  Hrvoje Niksic  <hniksic@srce.hr>
9767
9768         * init.c (cleanup): Use it.
9769
9770         * recur.c (recursive_cleanup): New function.
9771
9772         * retr.c (retrieve_from_file): Ditto.
9773
9774         * main.c (main): Use it.
9775
9776         * recur.c (recursive_reset): New function.
9777
9778         * retr.c (retrieve_from_file): Ditto.
9779
9780         * main.c (main): Simplify call to recursive_retrieve().
9781
9782         * recur.c (recursive_retrieve): Removed FLAGS argument.
9783
9784         * http.c (gethttp): Changed call to iwrite().
9785
9786 1998-02-03  Hrvoje Niksic  <hniksic@srce.hr>
9787
9788         * url.c (get_urls_html): Ditto.
9789         (free_urlpos): Ditto.
9790         (mkstruct): Ditto.
9791         (construct): Ditto.
9792
9793         * retr.c (retrieve_url): Move declaration of local variables to
9794         smaller scope.
9795
9796         * url.c (urlproto): Use it.
9797         (parseurl): Ditto.
9798         (str_url): Ditto.
9799         (get_urls_html): Ditto.
9800
9801         * utils.h (ARRAY_SIZE): New macro.
9802
9803         * url.c (proto): Moved from url.h.
9804
9805         * url.h (URL_CLEANSE): Reformatted.
9806         (USE_PROXY_P): Renamed from USE_PROXY.
9807
9808         * ftp-basic.c: Adjust to the new interface of iwrite().
9809
9810         * ftp-basic.c (ftp_port): Use alloca().
9811
9812 1998-02-03  Hrvoje Niksic  <hniksic@srce.hr>
9813
9814         * version.c: Wget 1.5-b3 is released.
9815
9816         * host.c (ftp_getaddress): Don't print to stderr directly.
9817
9818         * init.c (setbytes): Support `g' for gigabytes.
9819         (cmdtype): New specification CTIME.
9820         (setval): Use it with settime().
9821         (commands): Use it for WAIT and TIMEOUT.
9822
9823 1998-02-02  Hrvoje Niksic  <hniksic@srce.hr>
9824
9825         * http.c (BASIC_AUTHENTICATION_ENCODE): New macro.
9826         (gethttp): Use it.
9827
9828         * utils.c (unique_name_1): Moved from url.c.
9829         (unique_name): Ditto.
9830
9831         * url.c (url_filename): Ditto.
9832
9833         * log.c (redirect_output): Changed call to unique_name().
9834
9835         * url.c (unique_name_1): Renamed from unique_name().
9836         (unique_name): Changed interface.
9837
9838         * init.c (enum cmdid): Moved from init.h.
9839         (cmdtype): Ditto.
9840         (struct cmd): Ditto.
9841
9842         * main.c (main): Use it.
9843         (main): Moved `--backups' to not have a short option.
9844
9845         * options.h (struct options): New member BACKGROUND.
9846
9847         * main.c (print_help): Rearranged.
9848         (main): New long options for -n* short options: --no-directories,
9849         --no-host-directories, --non-verbose, --no-host-lookup and
9850         --dont-remove-listing.
9851
9852 1998-02-01  Hrvoje Niksic  <hniksic@srce.hr>
9853
9854         * main.c (main): Use log_close().
9855
9856         * log.c: New variable LOGFP.
9857         (vlogmsg): Use it.
9858         (redirect_output): Don't open /dev/null; set LOGFP to stdin
9859         instead.
9860         (log_close): New function.
9861
9862         * options.h (struct options): Removed LFILE.
9863
9864         * log.c (log_enable): Removed.
9865
9866         * main.c (main): Use it.
9867
9868         * log.c (log_init): New function.
9869
9870         * url.c (get_urls_html): Removed needless assignment to BASE.
9871
9872         * host.c (add_hlist): Don't set CMP needlessly.
9873
9874         * utils.c (match_backwards): Ditto.
9875         (in_acclist): Ditto.
9876
9877         * url.c (findurl): Ditto.
9878
9879         * netrc.c (parse_netrc): Ditto.
9880
9881         * log.c (log_dump): Ditto.
9882
9883         * html.c (html_quote_string): Ditto.
9884
9885         * ftp-basic.c (ftp_request): Made static.
9886
9887         * connect.c: Made global variables static.
9888
9889         * url.c (construct): Ditto.
9890
9891         * init.c (init_path): Avoid assignment inside `if'-condition.
9892
9893         * ftp.c: Don't include in.h or winsock.h.
9894
9895         * ftp.c (ftp_loop): Use SZ.
9896
9897         * connect.c (bindport): Cast &addrlen to int *.
9898         (conaddr): Ditto.
9899
9900         * init.c (initialize): Don't use SYSTEM_WGETRC unconditionally.
9901
9902 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
9903
9904         * ftp.c (getftp): Initialize opt.ftp_pass here.
9905         (ftp_retrieve_dirs): Use alloca().
9906
9907         * init.c (defaults): Don't initialize opt.ftp_pass.
9908
9909         * sysdep.h (S_ISLNK): Declare for OS/2; ditto for lstat.
9910         From Ivan F. Martinez <ivanfm@ecodigit.com.br>.
9911
9912 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
9913
9914         * recur.c (parse_robots): Check for comments more correctly.
9915
9916         * host.c (ftp_getaddress): Use STRDUP_ALLOCA.
9917         (ftp_getaddress): Add diagnostics when reverse-lookup yields only
9918         hostname.
9919
9920 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
9921
9922         * version.c: Wget 1.5-b2 is released.
9923
9924         * netrc.c (NETRC_FILE_NAME): Moved from netrc.h.
9925
9926         * utils.c (proclist): Pass FNM_PATHNAME to fnmatch().
9927
9928         * ftp-basic.c (ftp_pasv): Avoid unnecessary casting to unsigned
9929         char.
9930
9931         * log.c: Don't attempt to hide arguments from ansi2knr.
9932
9933         * cmpt.c: Synched strptime() and mktime() with glibc-2.0.6.
9934
9935         * ansi2knr.c: Use a later version, from fileutils-3.16l alpha.
9936
9937         * ftp.c (getftp): Ditto.
9938
9939         * http.c (gethttp): Use it.
9940
9941         * retr.c (get_contents): New argument EXPECTED; pass it to
9942         show_progress().
9943         (show_progress): New argument EXPECTED; use it to display
9944         percentages.
9945
9946         * init.c (setval): Ditto.
9947
9948         * http.c (gethttp): Ditto.
9949         (http_loop): Ditto.
9950
9951         * ftp.c (getftp): Ditto.
9952         (ftp_loop_internal): Ditto.
9953
9954         * ftp-ls.c (ftp_parse_unix_ls): Use abort() instead of assert(0).
9955
9956         * sysdep.h (CLOSE): Simplify; use DEBUGP.
9957
9958         * netrc.c (search_netrc): Use alloca().
9959
9960         * init.c (defaults): Initialize no_flush.
9961
9962         * log.c (vlogmsg): Don't flush if no_flush.
9963
9964         * options.h (struct options): New variable no_flush.
9965
9966         * main.c (main): Don't play games with buffering.
9967
9968         * log.c (vlogmsg): Flush the output after every message.
9969
9970 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
9971
9972         * init.c (parse_line): Ditto.
9973
9974         * url.c (get_urls_html): Ditto.
9975
9976         * main.c (main): Don't cast to unsigned char.
9977
9978         * init.c (run_wgetrc): Don't cast to unsigned char.
9979         (parse_line): Accept char instead of unsigned char.
9980
9981         * html.c (htmlfindurl): Use char instead of unsigned char.
9982
9983         * all: Use them.
9984
9985         * sysdep.h: Add wrappers to ctype macros to make them
9986         eight-bit-clean:
9987
9988 1998-01-30  Hrvoje Niksic  <hniksic@srce.hr>
9989
9990         * html.c (htmlfindurl): Download <img lowsrc=...>
9991
9992         * main.c (main): Ignore SIGPIPE.
9993
9994         * connect.c (select_fd): New argument WRITEP.
9995         (iwrite): Call select_fd().
9996
9997 1997-02-27  Fila Kolodny <fila@ibi.com>
9998
9999         * ftp.c (ftp_retrieve_list): If retrieving symlink and the proper
10000         one already exists, just skip it.
10001
10002 1998-01-30  Hrvoje Niksic  <hniksic@srce.hr>
10003
10004         * http.c (gethttp): Cosmetic changes.
10005
10006         * http.c (check_end): Allow `+D...' instead of `GMT'.
10007         From Fabrizio Pollastri <pollastri@cstv.to.cnr.it>.
10008
10009         * url.c (process_ftp_type): New function.
10010         (parseurl): Use it.
10011
10012         * connect.c (iwrite): Allow writing in a few chunks.
10013         (bindport): Made SRV static, so addr can point to it.
10014         (select_fd): Removed HPUX kludge.
10015
10016         * host.c (free_hlist): Incorporated into clean_hosts().
10017
10018 1998-01-29  Hrvoje Niksic  <hniksic@srce.hr>
10019
10020         * host.c (hlist): Made static.
10021         (search_address): Cosmetic change.
10022
10023 1998-01-29  Hrvoje Niksic  <hniksic@srce.hr>
10024
10025         * version.c: Wget v1.5-b1 is released.
10026
10027         * http.c (hgetlen): Use sizeof() to get the header length.
10028         (hgetrange): Ditto.
10029         (hgettype): Ditto.
10030         (hgetlocation): Ditto.
10031         (hgetmodified): Ditto.
10032         (haccepts_none): Ditto.
10033
10034         * main.c (main): Updated `--version' and `--help' output, as per
10035         Francois Pinard's suggestions.
10036
10037         * main.c: Include locale.h; call setlocale(), bindtextdomain() and
10038         textdomain().
10039
10040         * config.h.in: Define stubs for I18N3.
10041
10042         * wget.h: Include libintl.h.
10043
10044 1998-01-28  Hrvoje Niksic  <hniksic@srce.hr>
10045
10046         * url.c (mkstruct): Check for opt.cut_dirs.
10047         (mkstruct): alloca()-te more, xmalloc() less.
10048
10049         * utils.c (load_file): Check for ferror().
10050
10051         * url.c (get_urls_file): Close only the files we opened.
10052         (get_urls_html): Ditto.
10053         (count_slashes): New function.
10054
10055         * http.h: Removed.
10056
10057         * http.c (gethttp): Respect username and password provided by
10058         proxy URL.
10059         (base64_encode_line): Write into an existing buffer instead of
10060         malloc-ing a new one.
10061         (struct http_stat): Moved from http.h
10062
10063         * retr.c (retrieve_url): Free SUF.
10064
10065         * all: Removed lots of unnecessary .h dependencies.
10066
10067         * html.c (global_state): Made static.
10068
10069         * utils.h (ALLOCA_ARRAY): New macro.
10070
10071         * main.c (main): New option `--cut-dirs'.
10072
10073         * url.c (construct): Use alloca() for T.
10074
10075         * utils.c (mkdirhier): Use STRDUP_ALLOCA.
10076
10077         * host.c (_host_t): Moved from host.h.
10078         (struct host): Renamed from _host_t.
10079         (store_hostaddress): Use STRDUP_ALLOCA for INET_S.
10080         (realhost): Ditto.
10081
10082         * host.h: Don't include url.h.
10083
10084         * ftp.c (LIST_FILENAME): Moved from ftp.h.
10085
10086         * init.c (DEFAULT_FTP_ACCT): Moved from ftp.h.
10087
10088         * main.c (main): Enable log if the output goes to a TTY.
10089
10090         * connect.h: Removed unused constant `BACKLOG'.
10091
10092         * config.h.in: Check for isatty().
10093
10094         * Makefile.in (LINK): Use CFLAGS when linking.
10095
10096 1998-01-27  Hrvoje Niksic  <hniksic@srce.hr>
10097
10098         * mswindows.c (ws_hangup): Use redirect_output().
10099
10100         * main.c (redirect_output_signal): New function; use
10101         redirect_output().
10102
10103         * log.c (redirect_output): New function, based on hangup(), which
10104         is deleted.
10105
10106         * log.c (vlogmsg): New function.
10107
10108         * wget.h (DEBUGP): Use debug_logmsg().
10109
10110         * main.c (hangup): Use it.
10111
10112         * log.c (log_dump): New function.
10113
10114         * utils.h (DO_REALLOC): Use `long' for various sizes.
10115
10116         * http.c (hskip_lws): Use `while', for clarity.
10117         (HTTP_DYNAMIC_LINE_BUFFER): New constant.
10118         (fetch_next_header): Use it instead of DYNAMIC_LINE_BUFFER.
10119
10120         * ftp-basic.c (FTP_DYNAMIC_LINE_BUFFER): New constant.
10121         (ftp_response): Use it instead of DYNAMIC_LINE_BUFFER.
10122
10123         * utils.c (DYNAMIC_LINE_BUFFER): Moved from utils.c.
10124         (LEGIBLE_SEPARATOR): Ditto.
10125         (FILE_BUFFER_SIZE): Ditto.
10126
10127         * retr.c (BUFFER_SIZE): Moved from retr.h.
10128
10129         * log.c: New file.
10130         (logmsg): Moved from utils.c.
10131         (debug_logmsg): New function.
10132
10133         * mswindows.h: Include it here.
10134
10135         * init.c: Ditto.
10136
10137         * utils.c: Don't include <windows.h>.
10138
10139 1998-01-25  Hrvoje Niksic  <hniksic@srce.hr>
10140
10141         * host.c (ftp_getaddress): Ditto.
10142
10143         * main.c (main): Use it.
10144
10145         * utils.h (STRDUP_ALLOCA): New macro.
10146
10147         * init.c: Prepend `wget: ' to error messages printed on stderr.
10148
10149         * utils.c (mkdirhier): Renamed from mymkdir.
10150         (touch): Renamed from my_touch.
10151         (pwd_cuserid): Renamed from my_cuserid().
10152
10153 1998-01-24  Andy Eskilsson  <andy.eskilsson@telelogic.se>
10154
10155         * utils.c (accdir): Process wildcards.
10156         (proclist): New function.
10157         (accdir): Use it to avoid code repetition.
10158
10159 1998-01-24  Hrvoje Niksic  <hniksic@srce.hr>
10160
10161         * recur.c (parse_robots): Respect opt.useragent; use alloca().
10162
10163         * http.c (gethttp): Construct useragent accordingly.
10164
10165         * version.c: Changed version string to numbers-only.
10166
10167         * main.c (print_help): List all the options.
10168
10169         * mswindows.c (windows_main_junk): Initialize argv0 here.
10170
10171 1998-01-24  Karl Heuer  <kwzh@gnu.org>
10172
10173         * netrc.c (search_netrc): Initialize `l' only after processing
10174         netrc.
10175
10176         * main.c (main): Don't trap SIGHUP if it's being ignored.
10177
10178 1998-01-24  Hrvoje Niksic  <hniksic@srce.hr>
10179
10180         * all: Use logmsg().
10181
10182         * utils.c (time_str): Moved from retr.c.
10183         (logmsg): New function.
10184         (logmsg_noflush): Ditto.
10185
10186         * rbuf.c: New file, moved buf_* functions here.
10187
10188         * ftp.c (ftp_expected_bytes): Moved from ftp-basic.c.
10189
10190         * ftp-basic.c (ftp_rest): Use prnum().
10191
10192         * ftp-basic.c: Ditto.
10193
10194         * ftp.c: Use the new reading functions and macros.
10195
10196         * retr.c (buf_initialize): New function.
10197         (buf_initialized_p): Ditto.
10198         (buf_uninitialize): Ditto.
10199         (buf_fd): Ditto.
10200
10201         * http.c (fetch_next_header): Use the BUF_READCHAR macro for
10202         efficiency.
10203         (gethttp): Use alloca() where appropriate.
10204
10205         * retr.c (buf_readchar): Use it.
10206         (buf_peek): Use rstreams.
10207
10208         * retr.h (BUF_READCHAR): New macro.
10209
10210         * init.c (home_dir): Rewritten for clarity.
10211         (init_path): Ditto.
10212
10213         * mswindows.c (ws_backgnd): Made static.
10214         (read_registry): Ditto.
10215         (ws_cleanup): Ditto.
10216         (ws_handler): Ditto.
10217
10218 1998-01-23  Hrvoje Niksic  <hniksic@srce.hr>
10219
10220         * alloca.c: New file.
10221
10222         * Makefile.in (ALLOCA): Define.
10223
10224         * mswindows.c (ws_help): Constify.
10225         (ws_help): Use alloca.
10226
10227         * mswindows.c: Reformat.
10228
10229         * all: Added _(...) annotations for I18N snarfing and translation.
10230
10231         * host.c (ftp_getaddress): Nuke SYSINFO.
10232         (ftp_getaddress): Don't use getdomainname().
10233         (ftp_getaddress): Use uname(), where available.
10234
10235         * http.c (gethttp): Protect a stray fprintf().
10236
10237         * init.c (settime): New function.
10238         (setval): Treat WAIT specially, allowing suffixes like `m' for
10239         minutes, etc.
10240
10241 1998-01-21  Hrvoje Niksic  <hniksic@srce.hr>
10242
10243         * url.c (get_urls_html): Use alloca() for TEMP.
10244
10245 1998-01-21  Jordan Mendelson  <jordy@wserv.com>
10246
10247         * url.c (rotate_backups): New function.
10248
10249         * http.c (gethttp): Ditto.
10250
10251         * ftp.c (getftp): Rotate backups.
10252
10253 1997-12-18  Hrvoje Niksic  <hniksic@srce.hr>
10254
10255         * all: Renamed nmalloc(), nrealloc() and nstrdup() to xmalloc(),
10256         xrealloc() and xstrdup().  Use the new functions.
10257
10258         * url.c (decode_string): Made static.
10259         (has_proto): Ditto.
10260         (parse_dir): Ditto.
10261         (parse_uname): Ditto.
10262         (mkstruct): Ditto.
10263         (construct): Ditto.
10264         (construct_relative): Ditto.
10265
10266         * retr.c (show_progress): Made static.
10267
10268         * recur.c (robots_url): Made static.
10269         (retrieve_robots): Ditto.
10270         (parse_robots): Ditto.
10271         (robots_match): Ditto.
10272
10273         * main.h: Removed.
10274
10275         * main.c (printhelp): Made static.
10276         (hangup): Ditto.
10277
10278         * init.c (comind): Made static.
10279         (defaults): Ditto.
10280         (init_path): Ditto.
10281         (run_wgetrc): Ditto.
10282         (onoff): Ditto.
10283         (setonoff): Ditto.
10284         (setnum): Ditto.
10285         (myatoi): Ditto.
10286         (getperms): Ditto.
10287         (setbytes): Ditto.
10288
10289         * http.c (fetch_next_header): Made static.
10290         (hparsestatline): Ditto.
10291         (hskip_lws): Ditto.
10292         (hgetlen): Ditto.
10293         (hgetrange): Ditto.
10294         (hgettype): Ditto.
10295         (hgetlocation): Ditto.
10296         (hgetmodified): Ditto.
10297         (haccepts_none): Ditto.
10298         (gethttp): Ditto.
10299         (base64_encode_line): Ditto.
10300         (mktime_from_utc): Ditto.
10301         (http_atotm): Ditto.
10302
10303         * html.c (idmatch): Made static.
10304
10305         * host.c (search_host): Made static.
10306         (search_address): Ditto.
10307         (free_hlist): Ditto.
10308
10309         * ftp.c (getftp): Made static.
10310         (ftp_loop_internal): Ditto.
10311         (ftp_get_listing): Ditto.
10312         (ftp_retrieve_list): Ditto.
10313         (ftp_retrieve_dirs): Ditto.
10314         (ftp_retrieve_glob): Ditto.
10315         (freefileinfo): Ditto.
10316         (delelement): Ditto.
10317
10318         * ftp-ls.c (symperms): Made static.
10319         (ftp_parse_unix_ls): Ditto.
10320
10321         * connect.c (select_fd): Made static.
10322
10323         * utils.c (xmalloc): Renamed from nmalloc.
10324         (xrealloc): Renamed from nrealloc.
10325         (xstrdup): Renamed from nstrdup.
10326
10327         * getopt.c (exchange): Use alloca.
10328
10329         * mswindows.c (mycuserid): Use strncpy.
10330
10331         * New files mswindows.c, mswindows.h, sysdep.h.  winjunk.c,
10332         systhings.h, windecl.h and winjunk.h removed.
10333
10334         * mswindows.c (sleep): New function.
10335
10336         * utils.c: Include <windows.h> under Windows.
10337
10338 1997-06-12  Darko Budor  <dbudor@zesoi.fer.hr>
10339
10340         * url.h (URL_UNSAFE): Change default under Windows.
10341
10342         * retr.c (retrieve_from_file): Respect opt.delete_after.
10343
10344         * main.c (main): Call ws_help on Windows.
10345
10346         * winjunk.c (windows_main_junk): New function.
10347
10348         * main.c (main): Junk-process argv[0].
10349
10350         * http.c (mktime_from_utc): Return -1 if mktime failed.
10351
10352         * http.c (http_loop): Ditto.
10353
10354         * ftp.c (ftp_loop_internal): Change title on Windows when using a
10355         new URL.
10356
10357         * winjunk.c (getdomainname): Lots of functions.
10358
10359 1997-06-12  Hrvoje Niksic  <hniksic@srce.hr>
10360
10361         * cmpt.c (strptime_internal): Handle years more correctly for
10362         `%y'.
10363
10364 1997-06-09  Mike Thomas <mthomas@reality.ctron.com>
10365
10366         * http.c (gethttp): Allocate enough space for
10367         `Proxy-Authorization' header.
10368
10369 1997-05-10  Hrvoje Niksic  <hniksic@srce.hr>
10370
10371         * version.c: Wget/1.4.5 is released.
10372
10373 1997-05-10  Hrvoje Niksic  <hniksic@srce.hr>
10374
10375         * retr.c (get_contents): Check return value of fwrite more
10376         carefully.
10377
10378 1997-03-30  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
10379
10380         * cmpt.c (strptime_internal) [case 'Y']: Always subtract 1900 from
10381         year, regardless of century.
10382
10383 1997-03-30  Hrvoje Niksic  <hniksic@srce.hr>
10384
10385         * utils.c (isfile): Use `lstat' instead of `stat'.
10386
10387 1997-03-29  Hrvoje Niksic  <hniksic@srce.hr>
10388
10389         * utils.c (numdigit): Use explicit test.
10390
10391 1997-03-21  Hrvoje Niksic  <hniksic@srce.hr>
10392
10393         * http.c (http_loop): Always use `url_filename' to get u->local.
10394
10395 1997-03-20  Hrvoje Niksic  <hniksic@srce.hr>
10396
10397         * url.c: Recognize https.
10398
10399 1997-03-13  Hrvoje Niksic  <hniksic@srce.hr>
10400
10401         * recur.c (recursive_retrieve): Lowercase just the host name.
10402
10403 1997-03-09  Hrvoje Niksic  <hniksic@srce.hr>
10404
10405         * url.c (get_urls_file): Use the correct test.
10406         (get_urls_html): Ditto.
10407
10408 1997-03-07  Hrvoje Niksic  <hniksic@srce.hr>
10409
10410         * connect.c: Reverted addrlen to int.
10411
10412         * init.c (parse_line): Check for -1 instead of NONE.
10413
10414         * version.c: Changed version to 1.4.5.
10415
10416 1997-02-17  Hrvoje Niksic  <hniksic@srce.hr>
10417
10418         * init.c: New option netrc.
10419         (initialize): Don't parse .netrc.
10420
10421         * cmpt.c (recursive): Return rp.
10422         (strptime_internal): Match the long strings first, the abbreviated
10423         second.
10424
10425 1997-02-16  Hrvoje Niksic  <hniksic@srce.hr>
10426
10427         * http.c (check_end): New function.
10428         (http_atotm): Use it.
10429
10430 1997-02-13  gilles Cedoc  <gilles@cedocar.fr>
10431
10432         * http.c (gethttp): Use them.
10433
10434         * init.c: New options proxy_user and proxy_passwd.
10435
10436 1997-02-14  Hrvoje Niksic  <hniksic@srce.hr>
10437
10438         * ftp.c (ftp_retrieve_list): Create links even if not relative.
10439
10440 1997-02-10  Hrvoje Niksic  <hniksic@srce.hr>
10441
10442         * recur.c (recursive_retrieve): Lowercase the host name, if the
10443         URL is not "optimized".
10444
10445         * host.c (realhost): Return l->hostname, even if it matches with
10446         host.
10447
10448 1997-02-10  Marin Purgar  <pmc@asgard.hr>
10449
10450         * connect.c: Make addrlen size_t instead of int.
10451         (conaddr): Ditto.
10452
10453 1997-02-09  Gregor Hoffleit  <flight@mathi.uni-heidelberg.DE>
10454
10455         * systhings.h: Define S_ISLNK on NeXT too.
10456
10457 1997-02-09  Hrvoje Niksic  <hniksic@srce.hr>
10458
10459         * version.c: Released 1.4.3.
10460
10461         * url.c: Futher update to list of protostrings.
10462         (skip_proto): Skip `//' correctly for FTP and HTTP.
10463
10464         * url.c (get_urls_html): Handle bogus `http:' things a little
10465         different.
10466
10467         * main.c (main): Removed `follow-ftp' from `f'.
10468         (main): Dumped the `prefix-files' and `file-prefix' options and
10469         features; old and bogus.
10470         (main): Exit on failed setval() in `-e'.
10471
10472         * http.c (fetch_next_header): Use it to detect header continuation
10473         correctly.
10474
10475         * retr.c (buf_peek): New function.
10476
10477 1997-02-08  Hrvoje Niksic  <hniksic@srce.hr>
10478
10479         * wget.h: Include time.h and stuff.
10480
10481 1997-02-08  Roger Beeman  <beeman@cisco.com>
10482
10483         * ftp.c: Include <time.h>
10484
10485 1997-02-07  Hrvoje Niksic  <hniksic@srce.hr>
10486
10487         * url.c (findurl): Would read over buffer limits.
10488
10489 1997-02-06  Hrvoje Niksic  <hniksic@srce.hr>
10490
10491         * ftp-ls.c (ftp_parse_unix_ls): Allow spaces in file names.
10492
10493 1997-02-05  Hrvoje Niksic  <hniksic@srce.hr>
10494
10495         * http.c (http_atotm): Initialize tm.is_dst.
10496
10497 1997-02-02  Hrvoje Niksic  <hniksic@srce.hr>
10498
10499         * http.c (gethttp): Don't print the number of retrieved headers.
10500
10501         * main.c (main): New option `--no-clobber', alias for `-nc'.
10502
10503         * url.c: Recognize `https://'.
10504
10505 1997-02-01  Hrvoje Niksic  <hniksic@srce.hr>
10506
10507         * host.c (herrmsg): Don't use h_errno.
10508
10509 1997-01-30  Hrvoje Niksic  <hniksic@srce.hr>
10510
10511         * host.c (accept_domain): Use it.
10512
10513         * main.c (main): New option `--exclude-domains'.
10514
10515         * retr.c (retrieve_url): Use it.
10516         (retrieve_url): Bail out when an URL is redirecting to itself.
10517
10518         * url.c (url_equal): New function.
10519
10520 1997-01-29  Hrvoje Niksic  <hniksic@srce.hr>
10521
10522         * connect.c: Include arpa/inet.h instead of arpa/nameser.h.
10523
10524         * http.c (mk_utc_time): New function.
10525         (http_atotm): Use it; handle time zones correctly.
10526
10527 1997-01-28  Hrvoje Niksic  <hniksic@srce.hr>
10528
10529         * http.c: Ditto.
10530
10531         * ftp-basic.c: Use it instead of WRITE.
10532
10533         * connect.c (iwrite): New function.
10534
10535 1997-01-27  Hrvoje Niksic  <hniksic@srce.hr>
10536
10537         * cmpt.c (mktime): New function.
10538
10539         * netrc.c: Include <sys/types.h>.
10540
10541         * main.c (main): Wouldn't recognize --spider.
10542
10543         * retr.c (rate): Use `B', `KB' and `MB'.
10544         (reset_timer,elapsed_time): Moved from utils.c.
10545
10546         * ftp.c (ftp_retrieve_list): Ditto.
10547
10548         * http.c (http_loop): Don't touch the file if opt.dfp.
10549
10550 1997-01-24  Hrvoje Niksic  <hniksic@srce.hr>
10551
10552         * cmpt.c: New file.
10553
10554         * ftp.c (ftp_retrieve_glob): New argument semantics.
10555         (ftp_retrieve_dirs): Use it.
10556         (ftp_loop): Ditto.
10557
10558         * html.c (htmlfindurl): Recognize `'' as the quote char.
10559
10560 1997-01-23  Hrvoje Niksic  <hniksic@srce.hr>
10561
10562         * ftp.c (ftp_loop_internal): Use it.
10563
10564         * utils.c (remove_link): New function.
10565
10566 1997-01-22  Hrvoje Niksic  <hniksic@srce.hr>
10567
10568         * retr.c (retrieve_url): Require STRICT redirection URL.
10569
10570         * url.c (parseurl): New argument STRICT.
10571
10572         * http.c (hparsestatline): Be a little-bit less strict about
10573         status line format.
10574
10575 1997-01-21  Hrvoje Niksic  <hniksic@srce.hr>
10576
10577         * http.c (gethttp): Use it.
10578
10579         * main.c (main): Don't use '<digit>' as options.
10580
10581         * init.c: New option ignore_length.
10582
10583         * http.c (gethttp): Ditto.
10584         (http_loop): Check for redirection without Location:.
10585         (gethttp): Don't print Length unless RETROKF.
10586
10587         * ftp.c (getftp): Use it.
10588
10589         * url.c (mkalldirs): New function.
10590
10591         * utils.c (mymkdir): Don't check for existing non-directory.
10592
10593         * url.c (mkstruct): Don't create the directory.
10594
10595 1997-01-20  Hrvoje Niksic  <hniksic@srce.hr>
10596
10597         * init.c (setval): Removed NO_RECURSION checks.
10598
10599 1997-01-19  Hrvoje Niksic  <hniksic@srce.hr>
10600
10601         * version.c: "Released" 1.4.3-pre2.
10602
10603         * recur.c (recursive_retrieve): Bypass host checking only if URL
10604         is ftp AND parent URL is not ftp.
10605
10606         * ftp-basic.c (ftp_request): Print out Turtle Power.
10607
10608         * ftp.c (ftp_loop): Call ftp_retrieve_glob with 0 if there's no
10609         wildcard.
10610         (ftp_retrieve_glob): Call ftp_loop_internal even on empty list, if
10611         not glob.
10612
10613         * http.c (gethttp): Be a little bit smarter about status codes.
10614
10615         * recur.c (recursive_retrieve): Always reset opt.recursive when
10616         dealing with FTP.
10617
10618 1997-01-18  Hrvoje Niksic  <hniksic@srce.hr>
10619
10620         * retr.c (retrieve_url): New variable location_changed; use it for
10621         tests instead of mynewloc.
10622         (retrieve_url): Allow heuristic adding of html.
10623
10624         * url.c (url_filename): Don't use the `%' in Windows file names.
10625
10626         * http.c (http_loop): Always time-stamp the local file.
10627
10628         * http.c (http_loop): Ditto.
10629
10630         * ftp.c (ftp_retrieve_list): Use it.
10631
10632         * utils.c (my_touch): New function.
10633
10634         * ftp.c (ftp_retrieve_list): Use #ifdef HAVE_STRUCT_UTIMBUF
10635         instead of #ifndef NeXT.
10636
10637         * utils.c (strptime): New version, by Ulrich Drepper.
10638
10639 1997-01-17  Hrvoje Niksic  <hniksic@srce.hr>
10640
10641         * http.c (haccepts_none): Renamed from `haccepts_bytes'.
10642         (gethttp): If haccepts_none(), disable ACCEPTRANGES.
10643         (http_loop): Would remove ACCEPTRANGES.
10644
10645         * ftp.c (getftp): Call ftp_list with NULL.
10646
10647 1997-01-15  Hrvoje Niksic  <hniksic@srce.hr>
10648
10649         * html.c (ftp_index): Don't print minutes and seconds if we don't
10650         know them; beautify the output.
10651
10652         * ftp.c (getftp): Don't close the socket on FTPNSFOD.
10653
10654 1997-01-14  Hrvoje Niksic  <hniksic@srce.hr>
10655
10656         * utils.c (strptime): New function.
10657         (strptime): Don't use get_alt_number.
10658         (strptime): Don't use locale.
10659         (match_string): Made it a function.
10660
10661 1997-01-12  Hrvoje Niksic  <hniksic@srce.hr>
10662
10663         * http.c (http_atotm): New function.
10664         (http_loop): Use it.
10665
10666         * atotm.c: Removed from the distribution.
10667
10668         * http.c (base64_encode_line): Rewrite.
10669
10670 1997-01-09  Hrvoje Niksic  <hniksic@srce.hr>
10671
10672         * ftp.c (getftp): Use ftp_expected_bytes; print size.
10673
10674         * ftp-basic.c (ftp_response): Use ftp_last_respline.
10675         (ftp_expected_bytes): New function.
10676
10677         * ftp.c (getftp): Print the unauthoritative file length.
10678
10679         * ftp-ls.c: Renamed from ftp-unix.c.
10680         (ftp_parse_ls): Moved from ftp.c.
10681         (ftp_parse_unix_ls): Recognize seconds in time spec.
10682         (ftp_parse_unix_ls): Recognize year-less dates of the previous
10683         year.
10684
10685 1997-01-08  Hrvoje Niksic  <hniksic@srce.hr>
10686
10687         * ftp-basic.c: Don't declare errno if #defined.
10688
10689         * host.c (ftp_getaddress): Check for sysinfo legally.
10690
10691 1997-01-08  Darko Budor  <dbudor@diana.zems.fer.hr>
10692
10693         * connect.c (iread): Use READ.
10694
10695 1996-12-23  Hrvoje Niksic  <hniksic@srce.hr>
10696
10697         * url.c: Recognize finger, rlogin, tn3270, mid and cid as valid
10698         schemes.
10699
10700 1996-12-22  Hrvoje Niksic  <hniksic@srce.hr>
10701
10702         * host.c (ftp_getaddress): Allow `.' in hostname.
10703
10704 1996-12-26  Darko Budor <dbudor@zems.fer.hr>
10705
10706         * wget.h: READ and WRITE macros for use instead of read and write
10707         on sockets, grep READ *.c, grep WRITE *.c
10708
10709         * wsstartup.c: new file - startup for winsock
10710
10711         * wsstartup.h: new file
10712
10713         * win32decl.h: new file - fixup for <errno.h> and winsock trouble
10714
10715         * configure.bat: Configure utility for MSVC
10716
10717         * src/Makefile.ms,config.h.ms: new files for use with MSVC 4.x
10718
10719 1996-12-22  Hrvoje Niksic  <hniksic@srce.hr>
10720
10721         * version.c: Released 1.4.3-pre.
10722
10723         * utils.c (prnum): Accept long.
10724         (legible): Use prnum().
10725
10726         * connect.c (make_connection): Accept port as short.
10727         (bindport): Ditto.
10728
10729         * http.c (gethttp): Use search_netrc.
10730
10731 1996-12-21  Hrvoje Niksic  <hniksic@srce.hr>
10732
10733         * ftp.c (getftp): Use search_netrc.
10734
10735         * netrc.c (free_netrc): New function.
10736
10737         * init.c (home_dir): New function.
10738
10739         * url.c (convert_links): Allow REL2ABS changes.
10740
10741 1996-12-21  Gordon Matzigkeit  <gord@gnu.ai.mit.edu>
10742
10743         * netrc.c: New file.
10744         (parse_netrc, maybe_add_to_list): New functions.
10745
10746 1996-12-17  Hrvoje Niksic  <hniksic@srce.hr>
10747
10748         * retr.c (retrieve_url): Reset opt.recursion before calling
10749         ftp_loop if it is reached through newloc.
10750
10751         * init.c (run_wgetrc): Print the wgetrc path too, when reporting
10752         error; don't use "Syntax error", since we don't know if it is
10753         really a syntax error.
10754
10755 1996-12-16  Hrvoje Niksic  <hniksic@srce.hr>
10756
10757         * utils.c (acceptable): Extract the filename part of the path.
10758
10759         * recur.c (recursive_retrieve): Call acceptable() with the right
10760         argument; would bug out on wildcards.
10761
10762         * init.c (parse_line): Likewise.
10763
10764         * html.c (htmlfindurl): Cast to char * when calling stuff.
10765
10766 1996-12-15  Hrvoje Niksic  <hniksic@srce.hr>
10767
10768         * ftp.c (getftp): Use ftp_pasv.
10769
10770         * ftp-basic.c (ftp_request): Accept NULL value.
10771         (ftp_pasv): New function.
10772
10773         * options.h (struct options): Add passive FTP option.
10774
10775 1996-12-15  Hrvoje Niksic  <hniksic@srce.hr>
10776
10777         * url.c (parseurl): Debug output.
10778
10779         * utils.c (path_simplify): New one, adapted from bash's
10780         canonicalize_pathname().
10781
10782 1996-12-14  Hrvoje Niksic  <hniksic@srce.hr>
10783
10784         * ftp.c (getftp): Don't discard the buffer.
10785
10786         * retr.c (get_contents): New parameter nobuf.
10787
10788 1996-12-13  Shawn McHorse  <riffraff@txdirect.net>
10789
10790         * html.c (htmlfindurl): Recognize <meta contents="d; URL=...".
10791
10792         * init.c (setval): Strip the trailing slashes on CVECDIR.
10793
10794 1996-12-13  Hrvoje Niksic  <hniksic@srce.hr>
10795
10796         * init.c: Make excludes and includes under CVECDIR instead of
10797         CVEC.
10798
10799 1996-12-13  Shawn McHorse  <riffraff@txdirect.net>
10800
10801         * url.c (get_urls_html): Skip "http:".
10802
10803 1996-12-13  Hrvoje Niksic  <hniksic@srce.hr>
10804
10805         * utils.c (strcasecmp): From glibc.
10806         (strncasecmp): Also.
10807         (strstr): Also.
10808
10809         * url.c: Added javascript: to the list of URLs prefixes.
10810
10811 1996-12-12  Shawn McHorse  <riffraff@txdirect.net>
10812
10813         * recur.c (retrieve_robots): Print the warning message only if
10814         verbose.
10815
10816 1996-12-12  Gregor Hoffleit  <flight@mathi.uni-heidelberg.DE>
10817
10818         * ftp.c (ftp_retrieve_list): Use NeXT old utime interface.
10819
10820 1996-12-12  Hrvoje Niksic  <hniksic@srce.hr>
10821
10822         * systhings.h: New file.
10823
10824         * ../configure.in: Check for utime.h
10825
10826         * ftp.c: Check whether we have unistd.h.
10827
10828 1996-11-27  Hrvoje Niksic  <hniksic@srce.hr>
10829
10830         * recur.c (recursive_retrieve): Send the canonical URL as referer.
10831         (recursive_retrieve): Call get_urls_html with the canonical URL.
10832
10833 1996-12-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10834
10835         * (configure.in, config.h.in, src/Makefile.in, src/*.[ch]): Add
10836         ansi2knr support for compilers which don't support ANSI style
10837         function prototypes and signatures.
10838
10839         * (aclocal.m4, src/ansi2knr.c, src/ansi2knr.1): New files.
10840
10841 1996-11-26  Hrvoje Niksic  <hniksic@srce.hr>
10842
10843         * url.c: Use it; Recognize paths ending with "." and ".." as
10844         directories.
10845         (url_filename): Append .n whenever file exists and could be a
10846         directory.
10847
10848         * url.h (ISDDOT): New macro.
10849
10850         * init.c (parse_line): Use unsigned char.
10851
10852         * url.c (get_urls_html): Cast to unsigned char * when calling
10853         htmlfindurl.
10854
10855         * html.c (htmlfindurl): Use unsigned char.
10856
10857         * version.c: Changed version to 1.4.3.
10858
10859 1996-11-25  Hrvoje Niksic  <hniksic@srce.hr>
10860
10861         * version.c: Released 1.4.2.
10862
10863         * ftp.c (getftp): Simplified assertion.
10864         (ftp_loop_internal): Remove symlink before downloading.
10865         (ftp_retrieve_list): Unlink the symlink name before attempting to
10866         create a symlink!
10867
10868         * options.h (struct options): Renamed print_server_response to
10869         server_response.
10870
10871         * ftp.c (rel_constr): Removed.
10872         (ftp_retrieve_list): Don't use it.
10873         (ftp_retrieve_list): Use opt.retr_symlinks.
10874
10875 1996-11-24  Hrvoje Niksic  <hniksic@srce.hr>
10876
10877         * main.c (main): New option retr_symlinks.
10878
10879         * url.c (convert_links): Print verbose message.
10880
10881 1996-11-24  Hrvoje Niksic  <hniksic@srce.hr>
10882
10883         * http.c (http_loop): Reset newloc in the beginning of function;
10884         would cause FMR in retrieve_url.
10885
10886 1996-11-23  Hrvoje Niksic  <hniksic@srce.hr>
10887
10888         * recur.c (convert_all_links): Find the URL of each HTML document,
10889         and feed it to get_urls_html; would bug out.
10890         (convert_all_links): Check for l2 instead of dl; removed dl.
10891
10892         * url.c (convert_links): Don't refer to freed newname.
10893
10894         * recur.c (recursive_retrieve): Add this_url to urls_downloaded.
10895
10896         * main.c (main): Print the OS_TYPE in the debug output, too.
10897
10898         * recur.c (recursive_retrieve): Check for opt.delete_after.
10899
10900         * main.c (main): New option delete-after.
10901
10902         * init.c (setval): Cleaned up.
10903
10904 1996-11-21  Hrvoje Niksic  <hniksic@srce.hr>
10905
10906         * Makefile.in (wget): Make `wget' the default target.
10907
10908         * ftp.c (ftp_loop_internal): Move noclobber checking out of the
10909         loop.
10910         (ftp_retrieve_list): Warn about non-matching sizes.
10911
10912         * http.c (http_loop): Made -nc non-dependent on opt.recursive.
10913
10914         * init.c (setnum): Renamed from setnuminf; New argument flags.
10915         (setval): Use it.
10916
10917         * main.c (main): Sorted the options.
10918         (main): New option --wait.
10919
10920 1996-11-21  Shawn McHorse  <riffraff@txdirect.net>
10921
10922         * html.c (htmlfindurl): Reset s->in_quote after getting out of
10923         quotes.
10924
10925 1996-11-20  Hrvoje Niksic  <hniksic@srce.hr>
10926
10927         * version.c: Changed version to 1.4.2.
10928
10929 1996-11-20  Hrvoje Niksic  <hniksic@srce.hr>
10930
10931         * version.c: Released 1.4.1.
10932
10933         * html.c (html_quote_string): New function.
10934         (ftp_index): Use it.
10935         (htmlfindurl): A more gentle ending debug message.
10936
10937         * ftp.c (ftp_loop): Check for opt.htmlify.
10938
10939         * init.c: New command htmlify.
10940
10941         * ftp.c (getftp): Nicer error messages, with `'-encapsulated
10942         strings.
10943         (ftp_loop): Print size of index.html.
10944
10945         * init.c (setval): Implement "styles".
10946
10947         * main.c (main): New option dotstyle.
10948
10949 1996-11-19  Hrvoje Niksic  <hniksic@srce.hr>
10950
10951         * ftp.c (getftp): Close the master socket in case of errors, after
10952         bindport().
10953
10954         * connect.c (bindport): Initialize msock to -1.
10955
10956         * ftp.c (getftp): Initialize dtsock to -1.
10957
10958         * connect.c (closeport): Don't close sock if sock == -1.
10959
10960 1996-11-18  Hrvoje Niksic  <hniksic@srce.hr>
10961
10962         * init.c (setnuminf): Nuked default value -- just leave unchanged.
10963         (setval): Don't send default values.
10964         (defaults): Use DEFAULT_TIMEOUT -- aaargh.
10965
10966         * options.h (struct options): Use long for dot_bytes.
10967
10968         * init.c (setquota): Renamed to setbytes.
10969         (setval): Use setbytes on DOTBYTES.
10970
10971 1996-11-17  Hrvoje Niksic  <hniksic@srce.hr>
10972
10973         * ftp.c (getftp): Initialize con->dltime.
10974
10975         * recur.c (recursive_retrieve): Use same_host instead of
10976         try_robots; simply load robots_txt whenever the host is changed.
10977         (recursive_retrieve): Free forbidden before calling parse_robots.
10978
10979 1996-11-16  Hrvoje Niksic  <hniksic@srce.hr>
10980
10981         * retr.c (show_progress): Use them.
10982
10983         * options.h (struct options): New options dot_bytes, dots_on_line
10984         and dot_spacing.
10985
10986 1996-11-16  Mark Boyns  <boyns@sdsu.edu>
10987
10988         * recur.c (recursive_retrieve): Retrieve directories regardless of
10989         acc/rej rules; check for empty u->file.
10990
10991 1996-11-14  Hrvoje Niksic  <hniksic@srce.hr>
10992
10993         * init.c (setval): Use it.
10994
10995         * utils.c (merge_vecs): New function.
10996
10997         * init.c (setval): Reset the list-type functions when encountering
10998         "".
10999
11000 1996-11-14  Shawn McHorse  <riffraff@txdirect.net>
11001
11002         * recur.c (recursive_retrieve): Use base_url instead of this_url
11003         for no_parent.
11004
11005 1996-11-14  Shawn McHorse  <riffraff@txdirect.net>
11006
11007         * html.c (htmlfindurl): Reset s->in_quote after exiting the quote.
11008
11009 1996-11-13  Hrvoje Niksic  <hniksic@srce.hr>
11010
11011         * utils.c (sepstring): Rewrote; don't use strtok.
11012
11013         * recur.c (recursive_retrieve): Enter assorted this_url to slist
11014         when running the first time.
11015         (retrieve_robots): Warn to ignore errors when robots are loaded.
11016
11017         * utils.c (load_file): Moved from url.c.
11018
11019         * http.c: Made static variables const too in h* functions.
11020
11021         * main.c (main): Renamed --continue-ftp to --continue.
11022
11023         * recur.c (recursive_retrieve): Use it.
11024
11025         * utils.c (frontcmp): New function.
11026
11027         * url.c (accdir): New function.
11028
11029         * html.c (htmlfindurl): Recognize <area href=...>.
11030
11031         * ftp.c (ftp_retrieve_dirs): Implemented opt.includes.
11032
11033         * init.c (setval): Free the existing opt.excludes and
11034         opt.includes, if available.
11035
11036         * main.c (main): New option -I.
11037
11038 1996-11-12  Hrvoje Niksic  <hniksic@srce.hr>
11039
11040         * ftp.c (ftp_retrieve_glob): Do not weed out directories.
11041
11042         * version.c: Changed version to 1.4.1.
11043
11044 1996-11-11  Hrvoje Niksic  <hniksic@srce.hr>
11045
11046         * version.c: Released 1.4.0.
11047
11048 1996-11-10  Hrvoje Niksic  <hniksic@srce.hr>
11049
11050         * main.c (main): Free com and val after parse_line.
11051         (printhelp): Reorder the listing.
11052
11053         * http.c: More robust header parsing.
11054
11055         * http.c: Allow any number of spaces, or no spaces, precede ':'.
11056         (hskip_lws): New function.
11057         (haccepts_bytes): New function.
11058         (gethttp): Use it.
11059
11060         * init.c (setval): Check header sanity.
11061         (setval): Allow resetting of headers.
11062
11063 1996-11-10  Hrvoje Niksic  <hniksic@srce.hr>
11064
11065         * http.c (http_loop): Don't use has_wildcards.
11066
11067         * http.c (gethttp): Free all_headers -- would leak.
11068
11069         * recur.c (recursive_retrieve): Initialize depth to 1 instead of
11070         0 -- this fixes a long-standing bug in -rl.
11071
11072 1996-11-09  Hrvoje Niksic  <hniksic@srce.hr>
11073
11074         * ftp.c: Use -1 as "impossible" value for con->fd.
11075
11076         * url.h (URL_SEPARATOR): Don't treat `*' and `+' as separators.
11077
11078         * init.c (parse_line): Use isalpha.
11079
11080         * ftp-unix.c: Use HAVE_UNISTD_H.
11081
11082         * mtch.c (has_wildcards): Don't match \.
11083
11084         * http.c (http_loop): Warn on HTTP wildcard usage.
11085
11086 1996-11-08  Hrvoje Niksic  <hniksic@srce.hr>
11087
11088         * url.c (url_filename): Do not create numbered suffixes if
11089         opt.noclobber -- would bug out on -nc.
11090
11091 1996-11-07  Hrvoje Niksic  <hniksic@srce.hr>
11092
11093         * recur.c (parse_robots): Don't chuck out the commands without
11094         arguments (`Disallow:<empty>' didn't work).
11095         (parse_robots): Compare versions lowercase.
11096         (parse_robots): Match on base_version, not version_string!
11097         (parse_robots): Handle comments properly.
11098         (parse_robots): Match versions in a sane way.
11099
11100         * init.c: Print nicer error messages.
11101
11102         * version.c: Changed version to 1.4.0.
11103
11104 1996-11-06  Hrvoje Niksic  <hniksic@srce.hr>
11105
11106         * version.c: Released 1.4.0-test2.
11107
11108         * init.c (run_wgetrc): Close fp.
11109
11110         * ftp.c (ftp_retrieve_dirs): Allocate the correct length for
11111         u->dir.
11112
11113 1996-11-06  Hrvoje Niksic  <hniksic@srce.hr>
11114
11115         * init.c (setquota): Allow inf as quota specification.
11116
11117 1996-11-05  Hrvoje Niksic  <hniksic@srce.hr>
11118
11119         * ftp.c (ftp_retrieve_dirs): Return QUOTEXC if quota exceeded.
11120         (ftp_retrieve_glob): Return QUOTEXC on quota exceeded.
11121
11122         * main.c (main): Check for quota by comparison with downloaded
11123         stuff, not from status.
11124
11125         * connect.c (select_fd): Should compile on HPUX without warnings now.
11126
11127         * ftp.c (ftp_get_listing): Check whether ftp_loop_internal
11128         returned RETROK.
11129
11130 1996-11-04  Hrvoje Niksic  <hniksic@srce.hr>
11131
11132         * ftp.c (ftp_retrieve_glob): Print the pattern nicely.
11133         (getftp): Return FTPRETRINT on control connection error.
11134
11135         * html.c (htmlfindurl): Recognize <embed src=...> and
11136         <bgsound src=...>.
11137         (ftp_index): Handle username and password correctly.
11138
11139         * main.c (main): Made `-np' a synonim for --no-parent.
11140
11141 1996-11-02  Hrvoje Niksic  <hniksic@srce.hr>
11142
11143         * ftp.c (ftp_loop): Check for opt.ftp_glob too before calling
11144         ftp_retrieve_glob.
11145
11146         * version.c: Changed version to 1.4.0-test2.
11147
11148 1996-11-02  Hrvoje Niksic  <hniksic@srce.hr>
11149
11150         * version.c: Released 1.4.0-test1.
11151
11152         * url.c (str_url): Don't use sprintf when creating %2F-prefixed
11153         directory.
11154         (convert_links): Removed definition of make_backup.
11155
11156         * http.h: Removed definition of MAX_ERROR_LENGTH.
11157
11158         * host.c (ftp_getaddress): Check for "(none)" domains.
11159
11160         * ftp.c (ftp_retrieve_dirs): Docfix.
11161
11162         * http.c (gethttp): Use ou->referer instead of u->referer.
11163
11164         * retr.c (retrieve_url): Reset u to avoid freeing pointers twice;
11165         this was known to cause coredumps on Linux.
11166
11167         * html.c (ftp_index): Cast the argument to local_time to time_t *.
11168
11169 1996-11-01  Hrvoje Niksic  <hniksic@srce.hr>
11170
11171         * connect.c (select_fd): Use exceptfds -- once and for all.
11172
11173         * retr.c (retrieve_from_file): Free filename after
11174         recursive_retrieve.
11175         (retrieve_from_file): Send RFIRST_TIME to recursive_retrieve on
11176         first-time retrieval.
11177         (retrieve_from_file): Return uerr_t; new argument, count.
11178         (retrieve_from_file): Break on QUOTEXC.
11179
11180         * init.c (setquota): Fixed a bug that caused rejection of
11181         non-postfixed values..
11182
11183 1996-10-30  Hrvoje Niksic  <hniksic@srce.hr>
11184
11185         * version.c: Changed name to wget.
11186
11187         * connect.c (iread): Smarter use of select.
11188         (select_fd): Set errno on timeout.  If not timeout, return 1
11189         instead of 0.
11190
11191 1996-10-29  Hrvoje Niksic  <hniksic@srce.hr>
11192
11193         * ftp.c (ftp_loop_internal): Don't use con->cmd before
11194         establishing it.
11195
11196 1996-10-26  Hrvoje Niksic  <hniksic@srce.hr>
11197
11198         * http.c (gethttp): Send correct referer when using proxy.
11199         (gethttp): Use struct urlinfo ou to access the relevant data; send
11200         correct authorization in all cases.
11201
11202         * host.c (same_host): Use skip_uname to skip username and
11203         password.
11204
11205         * url.c (skip_uname): New function.
11206         (parseurl): Use it.
11207
11208         * host.c (same_host): Do not assume HTTP -- same_host should now
11209         be totally foolproof.
11210
11211         * url.c (skip_proto): New function.
11212         (parse_uname): Use it.
11213
11214         * http.c (gethttp): Create local user and passwd from what is
11215         given.
11216
11217         * url.c (parseurl): Check for HTTP username and password too.
11218
11219 1996-10-25  Hrvoje Niksic  <hniksic@srce.hr>
11220
11221         * config.h.in: Removed #define gethostbyname R...
11222
11223 1996-10-22  Hrvoje Niksic  <hniksic@srce.hr>
11224
11225         * version.c: Changed version to 1.4.0-test1.
11226
11227 1996-10-21  Hrvoje Niksic  <hniksic@srce.hr>
11228
11229         * version.c: "Released" 1.4b29.
11230
11231         * recur.c (recursive_retrieve): Check for no_parent.
11232
11233         * init.c (setval): Option update.
11234
11235         * main.c (main): New option no-parent.
11236
11237         * options.h (struct options): New variable no_parent.
11238
11239         * recur.c (recursive_retrieve): Only files are checked for
11240         opt.accepts and opt.rejects.
11241         (recursive_retrieve): Check directories for opt.excludes.
11242         (recursive_retrieve): Make the dir absolute when checking
11243         opt.excludes.
11244
11245         * html.c (htmlfindurl): Recognize <applet code=...> and <script
11246         src=...>
11247
11248 1996-10-18  Hrvoje Niksic  <hniksic@srce.hr>
11249
11250         * ftp.c (getftp): Do not line-break assert entries at all.
11251         (ftp_retrieve_dirs): docfix.
11252
11253         * connect.c (select_fd): Use fd + 1 as nfds.
11254
11255         * version.c: Changed version to 1.4b29.
11256
11257 1996-10-18  Hrvoje Niksic  <hniksic@srce.hr>
11258
11259         * version.c: "Released" 1.4b28.
11260
11261         * ftp.c (ftp_loop_internal): Check whether f->size == len and
11262         don't continue the loop if it is.
11263         (ftp_get_listing): Remove list_filename on unsuccesful loop.
11264
11265 1996-10-17  Hrvoje Niksic  <hniksic@srce.hr>
11266
11267         * ftp.c (ftp_loop_internal): Use strcpy to initialize tmp.
11268         (getftp): Do not use multiline assert.
11269
11270         * http.c (hparsestatline): Use mjr and mnr instead of major and
11271         minor, which don't compile on Ultrix.
11272         (http_loop): Use strcpy() to initialize tmp.
11273
11274         * all: Geturl -> Fetch
11275
11276 1996-10-17  Hrvoje Niksic  <hniksic@srce.hr>
11277
11278         * recur.c (parse_robots): Fixed an off-by-one bug when looking for
11279         ':'.
11280
11281         * html.c (htmlfindurl): Fixed several possible off-by-one bugs by
11282         moving `bufsize &&' to the beginning of each check in for-loops.
11283
11284         * recur.c (parse_robots): Close fp on exit.
11285
11286         * url.c (mymkdir): Check for each directory before creating.
11287
11288 1996-10-16  Hrvoje Niksic  <hniksic@srce.hr>
11289
11290         * version.c: Changed version to 1.4b28.
11291
11292 1996-10-16  Hrvoje Niksic  <hniksic@srce.hr>
11293
11294         * version.c: "Released" 1.4b27.
11295
11296         * init.c (parse_line): Use isspace.
11297         (parse_line): Free *com on all errors.
11298
11299         * ftp.c (ftp_loop): Change FTPOK to RETROK before exiting.
11300         (delelement): Use next instead of f->next and prev instead of
11301         f->prev.
11302         (delelement): Free the members of the deleted element.
11303
11304         * http.c (http_loop): Do not return RETROK on code != 20x.
11305
11306         * init.c (cleanup): Free opt.user_header.
11307         (cleanup): Free opt.domains.
11308
11309         * url.c (freelists): Moved to cleanup().
11310
11311         * http.c (hparsestatline): Docfix.
11312
11313         * main.c (main): Return with error status on unsuccesful
11314         retrieval.
11315
11316         * init.c (setval): Do not remove listing when mirroring.
11317
11318         * url.c (url_filename): Use opt.fileprefix.
11319
11320         * ftp.c (ftp_get_listing): Use url_filename to get filename for
11321         .listing.
11322
11323         * main.c (main): New option: -rn.
11324
11325 1996-10-15  Hrvoje Niksic  <hniksic@srce.hr>
11326
11327         * Makefile.in (RM): Added RM = rm -f.
11328
11329         * host.c (clean_hosts): New function.
11330         (free_hlist): Just free the list, no reset.
11331
11332         * version.c: Changed version to 1.4b27.
11333
11334 1996-10-13  Hrvoje Niksic  <hniksic@srce.hr>
11335
11336         * version.c: "Released" 1.4b26.
11337
11338         * retr.c (retrieve_from_file): If call get_urls_html with
11339         opt.spider to make it silent in spider mode.
11340
11341         * url.c (str_url): Use CLEANDUP instead of URL_CLEANSE.
11342
11343         * url.h (CLEANDUP): New macro.
11344
11345         * http.c (gethttp): Fixed a bug that freed location only when it
11346         was NULL.
11347
11348         * retr.c (retrieve_url): Free url if it will not be stored,
11349         i.e. newloc is NULL.
11350
11351         * html.c (htmlfindurl): Handle exiting from quotes correctly; the
11352         old version would bug out on <a href="x#a"href="y">.
11353
11354         * html.h (state_t): New member in_quote.
11355
11356         * html.c (htmlfindurl): Free s->attr at the beginning of
11357         attr-loop.
11358
11359         * recur.c (recursive_retrieve): Recognize RCLEANUP.
11360         (tried_robots): Make hosts a global variable.
11361         (recursive_retrieve): Free constr after URL host optimization.
11362         (tried_robots): Free urlinfo before exiting.
11363
11364         * utils.c (free_slist): New function.
11365
11366         * recur.c (recursive_retrieve): Use flags to add cleanup
11367         possibility.
11368
11369         * main.c (main): Free filename after recursive_retrieve.
11370
11371         * http.c (gethttp): Store successful responses too.
11372
11373 1996-10-12  Hrvoje Niksic  <hniksic@srce.hr>
11374
11375         * all: Constified the whole source.  This required some minor
11376         changes in many functions in url.c, possibly introducing bugs -- I
11377         hope not.
11378
11379         * ftp-basic.c: Removed last_respline.
11380
11381         * http.c (gethttp): Free type.
11382
11383         * host.c (same_host): Free real1 and real2.
11384
11385         * main.c (main): New option --spider.
11386
11387         * retr.c (get_contents): Don't reset errno.
11388
11389         * main.c (main): Sorted the options.
11390
11391         * connect.c (iread): Set errno to ETIMEDOUT only if it was left
11392         uninitialized by select().
11393
11394         * http.c (http_loop): Print the time when the connection is
11395         closed.
11396         (gethttp): Debug-print the HTTP request.
11397
11398 1996-10-11  Hrvoje Niksic  <hniksic@srce.hr>
11399
11400         * connect.c (iread): Do not try reading after timeout.
11401
11402         * main.c (main): Would bug out on -T.
11403
11404         * connect.c (select_fd): Do not use exceptfds.
11405         (iread): Set ETIMEDOUT on select_fd <= 0.
11406
11407         * version.c: Changed version to 1.4b26.
11408
11409 1996-10-10  Hrvoje Niksic  <hniksic@srce.hr>
11410
11411         * version.c: "Released" 1.4b25.
11412
11413         * ftp-unix.c (ftp_parse_unix_ls): Ignore lines without file name
11414         or link name.
11415
11416         * http.c (gethttp): Add errcode to struct hstat.
11417         (http_loop): Use it.
11418
11419         * url.c (no_proxy_match): Simplify using char** for no_proxy.
11420
11421         * options.h (struct options): Make opt.no_proxy a vector.
11422
11423         * utils.c (sepstring): Use !*s instead of !strlen(s).
11424
11425         * init.c (setval): Set opt.maxreclevel to 0 on --mirror.
11426         (getperms): Use ISODIGIT instead of isdigit.
11427
11428         * ftp.c (getftp): Print time.
11429
11430         * main.c (main): Use legible output of downloaded quantity.
11431
11432         * ftp.c (getftp): Use elapsed_time().
11433         (ftp_loop_internal): Use rate().
11434
11435         * http.c (http_loop): Add download ratio output; Use rate().
11436
11437         * utils.c (rate): New function.
11438
11439 1996-10-09  Hrvoje Niksic  <hniksic@srce.hr>
11440
11441         * http.c (http_loop): Use timer.
11442
11443         * ftp.c: Split to ftp-basic.c and ftp.c
11444
11445         * utils.c (reset_timer): New function.
11446         (elapsed_time): New function.
11447
11448         * retr.c (show_progress): Make bytes_in_line and offs long; should
11449         work on 16-bit machines.
11450
11451 1996-10-08  Hrvoje Niksic  <hniksic@srce.hr>
11452
11453         * url.c (in_acclist): New argument backward.
11454
11455         * ftp.c (ftp_retrieve_glob): Use acceptable() to determine whether
11456         a file should be retrieved according to suffix.
11457         (ftp_get_listing): Check the return value of unlink; Do not call
11458         ftp_retrieve_dirs if depth reached maxreclevel.
11459         (ftp_retrieve_dirs): Check whether the directory is in
11460         exclude-list.
11461
11462         * main.c (main): Print the version number at the beginning of
11463         DEBUG output.
11464         (main): Use strrchr when creating exec_name.
11465
11466         * ftp.c (ftp_retrieve_glob): Do not close control connection.
11467
11468         * version.c: Changed version to 1.4b25.
11469
11470 1996-10-07  Hrvoje Niksic  <hniksic@srce.hr>
11471
11472         * version.c: "Released" 1.4b24.
11473
11474         * Makefile.in: Rewrite.
11475
11476         * ftp.c (ftp_loop_internal): Likewise.
11477
11478         * retr.c (time_str): Check for failed time().
11479
11480         * html.c (htmlfindurl): Recognize <fig src> and <overlay src> from
11481         HTML3.0.
11482
11483         * retr.c (time_str): Return time_t *.
11484
11485         * connect.c (bindport): Close msock on unsuccesful bind.
11486         (bindport): The same for getsockname and listen.
11487
11488         * retr.c (retrieve_url): Allow any number of retries on
11489         proxy.
11490
11491         * http.c (gethttp): Do not treat errno == 0 as timeout.
11492         (http_loop): Likewise.
11493         (http_loop): Cosmetic changes.
11494
11495         * connect.c (iread): Set errno to ETIMEDOUT in case of timeout.
11496
11497         * retr.c (get_contents): Reset errno.
11498
11499         * ftp.c (getftp): Minor fixes.
11500
11501 1996-10-06  Hrvoje Niksic  <hniksic@srce.hr>
11502
11503         * http.c: Do not use backups.
11504
11505         * geturl.1 (WARNING): Warn that man-page could be obsolete.
11506
11507         * getopt.c (getopt_long): Moved to getopt.c
11508
11509         * geturl.texi: Enhanced.
11510
11511         * main.c (main): Use it.
11512
11513         * recur.c (convert_all_links): New function.
11514
11515         * utils.c (add_slist): New argument flags.
11516
11517         * recur.c (recursive_retrieve): Update a list of downloaded URLs.
11518         (parse_robots): Do not chuck out empty value fields.
11519         (parse_robots): Make yourself welcome on empty Disallow.
11520
11521         * version.c: Changed version to 1.4b24.
11522
11523 1996-10-06  Hrvoje Niksic  <hniksic@srce.hr>
11524
11525         * version.c: "Released" 1.4b23.
11526
11527         * ftp.c (ftp_loop_internal): Get the time after getftp.
11528
11529         * Makefile.in (install.info): New target.
11530         (install): Use it.
11531
11532         * http.c (http_loop): Fix output when doing -O.
11533
11534 1996-10-05  Hrvoje Niksic  <hniksic@srce.hr>
11535
11536         * geturl.texi: New file.
11537
11538         * main.c (main): Do not print the warnings and download summary if
11539         opt.quiet is set.
11540
11541         * version.c: Changed version to 1.4b23.
11542
11543 1996-10-05  Hrvoje Niksic  <hniksic@srce.hr>
11544
11545         * "Released" 1.4b22.
11546
11547         * atotm.c (atotm): Use True and False instead of TRUE and FALSE,
11548         to avoid redefinition warnings.
11549
11550         * host.c (store_hostaddress): Use memcpy() to copy the address
11551         returned by inet_addr.
11552
11553         * version.c: Changed version to 1.4b22.
11554
11555 1996-10-04  Hrvoje Niksic  <hniksic@srce.hr>
11556
11557         * version.c: "Released" 1.4b21.
11558
11559         * ftp-unix.c (ftp_parse_ls): Renamed to ftp_parse_unix_ls.
11560
11561         * ftp.c (ftp_port): Use conaddr.
11562         (getftp): Print the file length.
11563         (ftp_retrieve_list): Check the stamps of plain files only.
11564
11565         * connect.c (closeport): Do not call shutdown().
11566         (conaddr): New function.
11567
11568         * html.c (ftp_index): Made it dfp-aware.
11569
11570         * init.c (cleanup): New name of freemem. Close opt.dfp.
11571
11572         * ftp.c (getftp): Use opt.dfp if it is set.
11573
11574         * ftp-unix.c (ftp_parse_ls): Recognize time in h:mm format.
11575
11576         * ftp.c (ftp_retrieve_dirs): Fixed a bug that caused incorrect
11577         CWDs to be sent with recursive FTP retrievals.
11578
11579 1996-10-03  Hrvoje Niksic  <hniksic@srce.hr>
11580
11581         * recur.c (parse_robots): Made it more compliant with "official"
11582         specifications.
11583
11584         * http.c: New function.
11585
11586         * ftp-unix.c (ftp_parse_ls): Added better debug output.
11587
11588         * ftp.c (getftp): Print out the LIST in case of
11589         opt.print_server_response.
11590
11591         * version.c: Changed version to 1.4b21.
11592
11593 1996-10-01  Hrvoje Niksic  <hniksic@srce.hr>
11594
11595         * version.c: "Released" 1.4b20.
11596
11597         * README: Update.
11598
11599         * http.c (gethttp): Preset lengths of various headers instead of
11600         calculating them dynamically.
11601         (gethttp): Check for 206 partial contents.
11602
11603 1996-09-30  Hrvoje Niksic  <hniksic@srce.hr>
11604
11605         * configure.in: Set SYSTEM_GETURLRC to $libdir/geturlrc
11606
11607         * http.c (gethttp): Send the port number in the Host: header.
11608
11609 1996-09-29  Hrvoje Niksic  <hniksic@srce.hr>
11610
11611         * http.c (gethttp): Send host: header.
11612         (gethttp): Add the possibility of user-defined headers.
11613         (gethttp): Move decision about pragma: no-cache to http_loop,
11614         where it belongs.
11615         (gethttp): Pass a struct instead of enormous argument list.
11616         (http_loop): Use a new, fancier display format.
11617         (ftp_loop): Likewise.
11618
11619         * main.c: (hangup): Turn off buffering of the new log file.
11620
11621         * install-sh: Likewise.
11622
11623         * config.sub: Replace with the one in autoconf-2.10
11624
11625         * geturl.1: Update.
11626
11627         * init.c: New options httpuser and httppasswd.
11628
11629         * http.c: (base64_encode_line): New function.
11630         (gethttp): Send authentication.
11631
11632         * connect.c (make_connection): Use store_hostaddress.
11633
11634 1996-09-28  Hrvoje Niksic  <hniksic@srce.hr>
11635
11636         * host.c (store_hostaddress): New function.
11637
11638         * NEWS: Update.
11639
11640         * http.c (hgetrange): New function.
11641         (gethttp): Use ranges.
11642
11643         * utils.c (numdigit): Accept long instead of int.
11644
11645         * http.c (http_loop): Add restart capabilities.
11646
11647         * ftp.c (ftp_retrieve_glob): Fixed a bug that could cause matchres
11648         being used uninitialized.
11649         (ftp_retrieve_list): Similar fix.
11650
11651         * host.c (add_hlist): Fixed a bug that could cause cmp being used
11652         uninitialized.
11653
11654         * url.c (construct_relative): New function.
11655
11656         * recur.c (recursive_retrieve): Use it.
11657
11658         * retr.c (convert_links): New function.
11659
11660 1996-09-27  Hrvoje Niksic  <hniksic@srce.hr>
11661
11662         * url.c (free_urlpos): New function.
11663
11664         * recur.c (recursive_retrieve): Adapt.
11665
11666         * url.c (get_urls_html): Return a linked list instead of a vector.
11667
11668         * url.c (get_urls_file): Return a linked list instead of a vector.
11669
11670         * geturl.1: Update.
11671
11672         * http.c (gethttp): Implement it.
11673
11674         * init.c (setval): New option: SAVEHEADERS
11675
11676         * ftp.c (ftp_loop_internal): Do not set restval if listing is to
11677         be retrieved. Lack of this test caused bugs when the connection
11678         was lost during listing.
11679
11680         * retr.c (retrieve_url): Fixed a bug that caused
11681         coredumps. *newloc is now reset by default.
11682         (retrieve_url): Lift the twenty-tries limit on proxies.
11683
11684         * version.c: Changed version to 1.4b20.
11685
11686 1996-09-20  Hrvoje Niksic  <hniksic@srce.hr>
11687
11688         * version.c: "Released" 1.4b19.
11689
11690 1996-09-19  Hrvoje Niksic  <hniksic@srce.hr>
11691
11692         * ftp.c (ftp_loop_internal): Renamed from ftp_1fl_loop.
11693         (getftp): Changed prototype to accept ccon *.
11694
11695 1996-09-17  Hrvoje Niksic  <hniksic@srce.hr>
11696
11697         * ftp.c (ftp_retrieve_list): Fixed a bug that caused setting
11698         incorrect values to files pointed to by symbolic links.
11699         (ftp_1fl_loop): Do not count listings among the downloaded URL-s.
11700
11701 1996-09-16  Hrvoje Niksic  <hniksic@srce.hr>
11702
11703         * url.c (mkstruct): Do not prepend "./" in front of a pathname.
11704
11705         * main.c (main): New option: --user-agent.
11706
11707         * geturl.1: Ditto.
11708
11709         * init.h: Ditto.
11710
11711         * init.c (setval): Ditto.
11712
11713         * main.c (main): Rename "server-headers" to "server-response".
11714
11715         * ftp-unix.c (ftp_parse_ls): Check for asterisks at the end of
11716         executables in 'ls -F' listings.
11717
11718 1996-09-15  Hrvoje Niksic  <hniksic@srce.hr>
11719
11720         * url.c (parseurl): Remove realloc() and sprintf().
11721         (str_url): Get rid of sprintf().
11722
11723         * recur.c (recursive_retrieve): Enable FTP recursion through proxy
11724         servers.
11725
11726         * url.h (URL_CLEANSE): Made it else-resistant.
11727         (USE_PROXY): New macro.
11728
11729 1996-09-14  Hrvoje Niksic  <hniksic@srce.hr>
11730
11731         * NEWS: Update.
11732
11733         * version.c: Changed version to 1.4b19.
11734
11735 1996-09-14  Hrvoje Niksic  <hniksic@srce.hr>
11736
11737         * version.c: "Released" 1.4b18.
11738
11739         * url.c: Made it reallocate space exponentially.
11740
11741 1996-09-14  Drazen Kacar  <dave@fly.cc.fer.hr>
11742
11743         * html.c (htmlfindurl): Added <frame src> and <iframe src> among
11744         the list of stuff to fetch.
11745
11746 1996-09-13  Hrvoje Niksic  <hniksic@srce.hr>
11747
11748         * url.c (get_urls_html): Fixed a bug that caused SIGSEGV's with
11749         -Fi.
11750
11751         * html.c (htmlfindurl): Rewrite.
11752
11753         * http.c (gethttp): Use opt.proxy_cache.
11754
11755         * main.c (main): Added --cache option.
11756
11757         * ftp.c (ftp_response): Print server response if opt.print_server
11758         response is set.
11759         (getftp): Print newlines after each request if the server response
11760         is to be printed.
11761         (ftp_response): Copy the last response line to last_respline.
11762
11763         * http.c (gethttp): Add Pragma: nocache for retried
11764         proxy-retrievals.
11765
11766         * ftp.c (getftp): Use it.
11767
11768         * retr.c (buf_discard): New function.
11769
11770         * ftp.c (ftp_response): Use buf_readchar().
11771         (getftp): Flush the control connection buffer before calling
11772         get_contents().
11773
11774         * retr.c (buf_readchar): New function.
11775         (buf_flush): New function.
11776         (get_contents): Use buf_readchar() instead of read(x, x, 1).
11777         (get_contents): Use buf_flush.
11778
11779 1996-09-12  Hrvoje Niksic  <hniksic@srce.hr>
11780
11781         * ftp.c: Incorporate changes to ftp_response.
11782
11783         * ftp.c (ftp_response): Allocate the server response dynamically,
11784         as in read_whole_line and fetch_next_header.
11785
11786         * utils.c (read_whole_line): Fixed a bug that prevented reading
11787         the last line if it is not \n-terminated. Also fixed a possible
11788         memory overflow.
11789
11790         * http.c (fetch_next_header): Return malloc-ed string as large as
11791         needed.
11792         (gethttp): Use new fetch_next_header.
11793
11794 1996-09-12  Hrvoje Niksic  <hniksic@srce.hr>
11795
11796         * http.c (hgetlen): Compute the header length the first time only.
11797         (hgettype): Ditto.
11798         (hgetlocation): Ditto.
11799         (hgetmodified): Ditto.
11800
11801 1996-09-11  Hrvoje Niksic  <hniksic@srce.hr>
11802
11803         * sample.geturlrc: Update.
11804
11805 1996-09-10  Hrvoje Niksic  <hniksic@srce.hr>
11806
11807         * http.c (http_loop): Ditto.
11808
11809         * ftp.c (getftp): Open the output file as binary.
11810
11811         * version.c: Changed version to 1.4b18.
11812
11813 1996-09-10  Hrvoje Niksic  <hniksic@srce.hr>
11814
11815         * version.c: "Released" 1.4b17.
11816
11817         * ftp-unix.c (ftp_parse_ls): If unable to open file, return NULL
11818         instead of failed assertion.
11819
11820 1996-09-09  Hrvoje Niksic  <hniksic@srce.hr>
11821
11822         * ftp.c (ftp_get_listing): Add a numbered suffix to LIST_FILENAME
11823         if a file of that name already exists.
11824
11825 1996-09-05  Hrvoje Niksic  <hniksic@srce.hr>
11826
11827         * ftp.c (ftp_1fl_loop): Handler FTPPORTERR and FOPENERR correctly.
11828
11829         * config.h.in: Define gethostbyname as Rgethostbyname when using
11830         Socks.
11831
11832         * configure.in: Check for -lresolv if using Socks.
11833
11834         * version.c: Changed version to 1.4b17.
11835
11836 1996-07-15  Hrvoje Niksic  <hniksic@srce.hr>
11837
11838         * version.c: "Released" 1.4b16.
11839
11840         * http.c (gethttp): More intelligent check for first line of HTTP
11841         response.
11842         (gethttp): Would bug out on time-stamping.
11843
11844         * version.c: Changed version to 1.4b16.
11845
11846 1996-07-11  Hrvoje Niksic  <hniksic@srce.hr>
11847
11848         * version.c: Released 1.4b15.
11849
11850         * http.c (http_loop): Print \n after the loop entry, not before.
11851
11852         * url.c (url_filename): Use ISDOT.
11853
11854         * url.h (ISDOT): New macro.
11855
11856         * recur.c (recursive_retrieve): Change only opt.recursive for
11857         following FTP.
11858
11859 1996-07-11  Antonio Rosella <antonio.rosella@agip.it>
11860
11861         * socks/geturl.cgi: Fixed version No.
11862
11863         * socks/download-netscape.html: Ditto.
11864
11865         * socks/download.html: Changed socks.html to download.html.
11866
11867 1996-07-11  Hrvoje Niksic  <hniksic@srce.hr>
11868
11869         * url.c (url_filename): Check for opt.dirstruct instead for
11870         opt.recursive && opt.dirstruct.
11871
11872         * init.c (defaults): Ditto.
11873         (defaults): Reset dirstruct by default.
11874         (setval): Set opt.dirstruct whenever setting recursive.
11875
11876         * init.h: Removed FORCEDIRHIER.
11877
11878         * INSTALL: Added -L to socks-description.
11879
11880         * version.c: Changed version to 1.4b15.
11881
11882 1996-07-10  Hrvoje Niksic  <hniksic@srce.hr>
11883
11884         * version.c: "Released" 1.4b14.
11885
11886         * geturl.1: Update AUTHOR to include Rosella as contributor.
11887
11888         * NEWS: Update.
11889
11890         * socks/geturl.cgi: Simplified command creation, nuked <blink>.
11891
11892         * socks/geturl.cgi: Wrap nutscape extensions within if $netscape.
11893         (cal_time): Fix == to eq.
11894
11895         * socks/geturl.cgi: GPL-ized with permission of A. Rosella.
11896
11897         * geturl.1 (hostname): Moved URL CONVENTIONS to the beginning.
11898
11899         * Makefile.in: Use @VERSION@.
11900
11901         * configure.in: Check version from version.c.
11902
11903         * socks/geturl.cgi: Changed /pub/bin/perl to /usr/bin/perl.
11904
11905         * socks/download.html: Created from download-netscape.html, made
11906         HTML-2.0 compliant.
11907
11908         * recur.c (recursive_retrieve): Set opt.force_dir_hier when
11909         following FTP links from recursions.
11910
11911 1996-07-09  Hrvoje Niksic  <hniksic@srce.hr>
11912
11913         * url.c (mymkdir): Fixed a bug that prevented mymkdir() to create
11914         absolute directories correctly.
11915
11916         * version.c: Changed version to 1.4b14.
11917
11918 1996-07-09  Hrvoje Niksic  <hniksic@srce.hr>
11919
11920         * version.c: "Released" 1.4b13.
11921
11922         * url.c (make_backup): New function.
11923
11924         * http.c (http_loop): Make a backup copy of the local file (using
11925         rename(2)) before opening it.
11926
11927         * main.c (main): Added --backups.
11928
11929         * host.c (ftp_getaddress): Bail out on failed mycuserid().
11930         (ftp_getaddress): Check for leading dot on MY_DOMAIN.
11931         (ftp_getaddress): Check for empty, null or (null) domain.
11932
11933         * url.c (get_urls_html): If this_url is NULL, the base must have a
11934         protocol.
11935         (parseurl): Use has_proto.
11936
11937         * retr.c (retrieve_url): Warn when proxy is used with more than 20
11938         retries.
11939
11940         * url.c (mkstruct): Create the directory (calling mymkdir()) only
11941         if it is not already there.
11942         (has_proto): New function.
11943         (get_urls_html): Eliminate the remaining call to findurl -- use
11944         has_proto.
11945
11946         * geturl.1: Ditto.
11947
11948         * main.c: Change -X to -x.
11949
11950         * url.c (url_filename): Simplify creation of filename if
11951         prefix_files is set.
11952         (url_filename): Simplify everything. And I do mean *everything*.
11953         (mkstruct): Add dir_prefix before hostname.
11954         (path_simplify): Fixed a bug that caused writing outside the path
11955         string in case of "." and ".." path strings.
11956
11957 1996-07-06  Hrvoje Niksic  <hniksic@srce.hr>
11958
11959         * init.c: Added --mirror.
11960
11961         * main.c (main): Added -X to force saving of directory hierarchy.
11962
11963         * ftp.c (ftp_retrieve_list): Added recursion depth counter.
11964         (ftp_retrieve_list): Check whether quota is exceeded.
11965
11966         * url.c (get_urls_html): Skip leading blanks for absolute URIs.
11967
11968         * http.c (gethttp): Use referer if present.
11969
11970         * recur.c (recursive_retrieve): Set u->referer before calling
11971         retrieve_url.
11972
11973         * url.c (newurl): Use memset to nullify the struct members.
11974         (freeurl): Free the referer field too.
11975
11976         * url.h: Added referer to urlinfo.
11977
11978         * geturl.1: Updated the manual to document some of the new features.
11979
11980         * utils.c (numdigit): Moved from url.c.
11981
11982         * README: Rewritten.
11983
11984         * config.h.in: Add the support for socks.
11985
11986         * configure.in: Add the support for socks.
11987
11988         * url.c (url_filename): If the dir_prefix is ".", work with just
11989         the file name.
11990         (url_filename): Do not look for .n extensions if timestamping if
11991         turned on.
11992
11993         * retr.c (show_progress): Skip the over-abundant restval data, and
11994         print the rest of it with ',' instead of '.'.
11995
11996 1996-07-05  Hrvoje Niksic  <hniksic@srce.hr>
11997
11998         * retr.c (show_progress): Changed second arg. to long (as it
11999         should be).
12000         (show_progress): Moved to retr.c.
12001         (get_contents): Moved to retr.c.
12002
12003         * version.c: Change version to 1.4b13.
12004
12005 1996-07-05  Hrvoje Lacko <hlacko@fly.cc.fer.hr>
12006
12007         * url.c (in_acclist): Would return after the first suffix.
12008
12009 1996-07-04  Hrvoje Niksic  <hniksic@srce.hr>
12010
12011         * version.c: "Released" 1.4b12.
12012
12013         * url.c (path_simplify): More kludgifications.
12014         (get_urls_html): Use new parameters for htmlfindurl.
12015
12016         * html.c: Removed memorizing "parser states", since the new
12017         organization does not require them.
12018
12019         * init.c (run_geturlrc): Use read_whole_line.
12020
12021         * ftp-unix.c (ftp_parse_ls): Use read_whole_line.
12022
12023         * recur.c (parse_robots): Use read_whole_line.
12024
12025         * utils.c (read_whole_line): New function.
12026
12027         * recur.c (tried_robots): Use add_slist/in_slist, *much* cleaner.
12028
12029         * host.c (ngethostbyname): Call inet_addr just once. Yet to be
12030         tested on OSF and Ultrix.
12031         (add_hlist): New function.
12032         (free_hlist): New function.
12033         (search_host): New function.
12034         (search_address): New function.
12035         (realhost): Use search_host, search_address and add_hlist.
12036         (same_host): Replaced realloc() with strdupdelim(), made
12037         case-insensitive, fixed a memory leak.
12038
12039         * html.c (ftp_index): Fixed tm_min and tm_sec to be tm_hour and
12040         tm_min, like intended.
12041
12042         * version.c: Change user agent information to
12043         Geturl/version.
12044
12045 1996-07-03  Hrvoje Niksic  <hniksic@srce.hr>
12046
12047         * utils.c: Renamed nmalloc.c to utils.c, .h likewise.
12048
12049         * url.c (acceptable): Always accept directories.
12050
12051         * ftp-unix.c (ftp_parse_ls): Support brain-damaged "ls -F"-loving
12052         servers by stripping trailing @ from symlinks and trailing / from
12053         directories.
12054
12055         * ftp.c (ftp_loop): Debugged the "enhanced" heuristics. :-)
12056
12057         * url.c (skip_url): Use toupper instead of UCASE.
12058
12059         * host.c (sufmatch): Made it case-insensitive.
12060
12061         * url.c (match_backwards_or_pattern): Fixed i == -1 to j == -1.
12062         (match_backwards): New function, instead of
12063         match_backwards_or_pattern.
12064
12065         * recur.c (recursive_retrieve): Increased performance by
12066         introducing inl, which reduces number of calls to in_slist to only
12067         one.
12068
12069         * ftp.c (ftp_loop): Enhanced the heuristics that decides which
12070         routine to use.
12071
12072         * main.c (printhelp): Removed the warranty stuff.
12073
12074 1996-07-02  Hrvoje Niksic  <hniksic@srce.hr>
12075
12076         * url.c (add_slist): Simplify.
12077         (match_backwards_or_pattern): New function.
12078         (in_acclist): Use match_backwards_or_pattern.
12079         (matches): Remove.
12080
12081 1996-06-30  Hrvoje Niksic  <hniksic@srce.hr>
12082
12083         * ftp.c (ftp_loop): Call ftp_index on empty file names, if not
12084         recursive.
12085
12086         * html.c (ftp_index): Fixed to work. Beautified the output.
12087
12088         * ftp.c (ftp_retrieve_glob): Another argument to control whether
12089         globbing is to be used.
12090         (ftp_retrieve_list): Compare the time-stamps of local and remote
12091         files to determine whether to download.
12092
12093 1996-06-29  Hrvoje Niksic  <hniksic@srce.hr>
12094
12095         * ftp.c (rel_constr): New function.
12096
12097         * retr.c (retrieve_from_file): Check for text/html before
12098         retrieving recursively.
12099
12100         * main.c (main): Check whether the file is HTML before going into
12101         recursive HTML retrieving.
12102
12103         * ftp.c (ftp_retrieve_list): Manage directories.
12104         (ftp_retrieve_glob): Pass all the file-types to ftp_retrieve_list.
12105         (ftp_1fl_loop): Fixed a bug that caused con->com to be incorrectly
12106         initialized, causing bugchecks in getftp to fail.
12107
12108         * configure.in: Check for symlink.
12109
12110         * ftp.c (ftp_retrieve_list): Added support for symlinks.
12111
12112         * version.c: "Released" 1.4b10.
12113
12114         * atotm.c (atotm): Redeclared as time_t.
12115
12116         * init.c: New variable "timestamping".
12117
12118         * main.c (main): New option 'N'.
12119
12120         * http.c (hgetlocation): Case-insensitive match.
12121         (hgetmodified): New function.
12122         (http_loop): Implement time-stamping.
12123
12124 1996-06-28  Hrvoje Niksic  <hniksic@srce.hr>
12125
12126         * version.c: Changed version to 1.4b10
12127
12128         * atotm.c: New file, from phttpd.
12129
12130         * options.h (struct options): New parameter timestamping.
12131
12132         * version.c: 1.4b9 "released".
12133
12134         * recur.c (recursive_retrieve): Used linked list (ulist) for
12135         faster storing of URLs.
12136
12137         * url.c (get_urls_html): Removed the old kludge with comparing the
12138         outputs of htmlfindurl and findurl.
12139         (get_urls_html): Added better protocol support here.
12140         (create_hash): Removed, as well as add_hash and in_hash.
12141         (addslist): New function.
12142         (in_slist): ditto
12143
12144         * version.c: Released 1.4b8, changed version to b9.
12145
12146 1996-06-27  Hrvoje Niksic  <hniksic@srce.hr>
12147
12148         * ftp.c (freefileinfo): New function.
12149         (delelement): New function.
12150
12151         * everywhere: GPL!
12152
12153         * ftp.c (ftp_loop): Use ccon.
12154         (ftp_retrieve_glob): Likewise.
12155
12156         * ftp.h: Define ccon, to define status of control connection.
12157
12158         * ftp.c (ftp_get_listing): New function.
12159         (ftp_retrieve_more): New function.
12160         (ftp_retrieve_glob): New function.
12161
12162 1996-06-25  Hrvoje Niksic  <hniksic@srce.hr>
12163
12164         * configure.in: Removed the search for cuserid().
12165
12166         * init.c (getmode): Renamed to getperms.
12167
12168 1996-06-24  Hrvoje Niksic  <hniksic@srce.hr>
12169
12170         * version.c: New version.
12171
12172         * main.c (hangup): New function, that handles hangup. Hangup
12173         signal now causes geturl to stop writing on stdout, and to write
12174         to a log file.
12175
12176         * ftp.c (getftp): "Released" 1.4b7.
12177
12178         * html.c (htmlfindurl): Ignore everything inside <head>...</head>.
12179         (ftp_index): Use fileinfo/urlinfo.
12180
12181         * ftp-unix.c (ftp_parse_ls): New function.
12182         (symperms): New function.
12183
12184         * ftp.c (ftp_1fl_loop): New function, to handle 1-file loops.
12185
12186         * retr.c (retrieve_url): Added FTP support.
12187
12188 1996-06-23  Hrvoje Niksic  <hniksic@srce.hr>
12189
12190         * geturl.h: Removed NOTFTP2HTML enum.
12191         Added DO_LOGIN, DO_CWD and DO_LIST. LIST_ONLY is obsolete.
12192
12193         * ftp.c (getftp): Resynched with urlinfo.
12194         (getftp): Removed HMTL-ization of index.html from getftp.
12195
12196         * version.c: 1.4b6 "released".
12197
12198         * options.h (options): New struct, to keep options in.
12199
12200         * http.c (http_loop,gethttp): Synched with proxy.
12201
12202         * retr.c (retrieve_url): Implemented proxy retrieval.
12203
12204         * main.c (main): Use retrieve_from_file.
12205
12206 1996-06-22  Hrvoje Niksic  <hniksic@srce.hr>
12207
12208         * retr.c (retrieve_from_file): New function.
12209
12210         * url.c (parseurl): Modified to return URLOK if all OK. Protocol
12211         can be found in u->proto.
12212
12213         * ftp.c (ftp_response): Fixed to accept multi-line responses as
12214         per RFC 959.
12215
12216         * recr.c (recursive_retrieve): Take newloc from retrieve_url.
12217
12218         * url.c (mymkdir): Removed the file of the same name, if one
12219         exists.
12220         (isfile): New function.
12221         (mkstruct): Fixed the '/' glitches.
12222         (path_simplify): Hacked to treat something/.. correctly.
12223
12224 1996-06-21  Hrvoje Niksic  <hniksic@srce.hr>
12225
12226         * http.c (gethttp): Close the socket after error in headers.
12227         (http_loop): HEOF no longer a fatal header.
12228
12229         * loop.c (retrieve_url): When dt is NULL, do not modify it. This
12230         simplifies the syntax of calling retrieve_url.
12231
12232         * recr.c (recursive_retrieve): Modified to use get_urls_html.
12233
12234         * url.c (get_urls_file): New function.
12235         (get_urls_html): New function.
12236
12237         * recr.c (recursive_retrieve): Patched up to conform to the
12238         standards.
12239
12240         * http.c (gethttp): Synched with the rest...
12241         (gethttp): Treat only CONREFUSED specially, with connection
12242         errors.
12243
12244         * init.c,geturl.1,http.c (http_loop): Removed kill_error.
12245
12246 1996-06-20  Hrvoje Niksic  <hniksic@srce.hr>
12247
12248         * http.c (http_loop): New function.
12249
12250         * loop.c: Removed *lots* of stuff from retrieve_url.
12251
12252         * url.c (parseurl): Changed to work with urlinfo. Integrated
12253         username finding and path parsing.
12254         (newurl): New function.
12255         (freeurl): New function.
12256         (mkstruct): Removed the old bogosities, made it urlinfo-compliant.
12257         (url_filename): Likewise.
12258         (path_simplify): Accept relative paths too.
12259         (opt_url): Made urlinfo-compliant, removed bogosities.
12260         (path_simplify): Expanded to accept relative paths.
12261         (str_url): A replacement for hide_url
12262         (decode_string): Fixed a bug that caused malfunctioning when
12263         encountering an illegal %.. combination.
12264         (opt_url): Removed the argument. Dot-optimizations are now default.
12265
12266         * nmalloc.c (strdupdelim): New function.
12267
12268         * url.h: Added the urlinfo structure
12269
12270 1996-06-19  Hrvoje Niksic  <hniksic@srce.hr>
12271
12272         * url.c (hide_url): Thrown out the protocol assertion. Do not
12273         change the URL if the protocol if not recognized.
12274         (findurl): Put continue instead of break.
12275
12276 1996-06-18  Hrvoje Niksic  <hniksic@srce.hr>
12277
12278         * sample.geturlrc: Changed the defaults to be commented out and
12279         harmless (previous defaults caused pains if copied to
12280         ~/.geturlrc).
12281
12282         * http.c (gethttp): Print the HTTP request in debug mode.
12283
12284         * connect.c (iread): Added EINTR check loop to select-ing
12285         too. EINTR is now correctly handled with select().
12286
12287         * TODO: new file
12288
12289 1996-05-07  Hrvoje Niksic  <hniksic@srce.hr>
12290
12291         * host.c (same_host): Made the function a little bit more
12292         intelligent regarding diversified URL syntaxes.
12293
12294         * url.c (skip_url): Spaces are now skipped after URL:
12295
12296         * Released 1.3.1 with the patch to prevent crashing when sending
12297         NULL to robot* functions and the patch to compile "out of the box"
12298         on AIX.
12299
12300         * recr.c (recursive_retrieve): Added checking whether this_url is
12301         NULL when calling the robot functions.
12302
12303         * ChangeLog: New file.