]> sjero.net Git - wget/blob - src/ChangeLog
Ignore HTTP 1xx responses.
[wget] / src / ChangeLog
1 2010-05-25  Giuseppe Scrivano  <gscrivano@gnu.org>
2
3         * http.c (H_10X): New macro.
4         (gethttp): Silently ignore 1xx responses.
5
6 2010-05-24  Giuseppe Scrivano  <gscrivano@gnu.org>
7
8         * iri.h (dummy_iri): Define static.
9
10         * css-tokens.h (css_tokens): Remove variable.
11
12 2010-05-23  Giuseppe Scrivano  <gscrivano@gnu.org>
13
14         * http.c (http_atotm): Count the NUL character when copying the locale
15         string.
16         Reported by: Florian Weimer <fw@deneb.enyo.de>
17
18 2010-05-16  Giuseppe Scrivano  <gscrivano@gnu.org>
19
20         * Makefile.am (LDADD): Remove MD5_LDADD.
21         (MD5_LDADD): Remove definition.
22         (AM_CPPFLAGS): Remove MD5_CPPFLAGS.
23         (version.c): Remove dependency from MD5_LDADD.
24         (../md5/libmd5.a): Remove rule.
25
26         * ftp-opie.c: Include "md5.h".  Do not include "gen-md5.h".
27         (skey_response): New variable ctx.  Use md5 functions from the gnulib
28         module instead of functions defined previously in the "gen-md5.h" file.
29
30         * gen-md5.h: Remove file.
31         * gen-md5.c: Likewise.
32
33         * http.c: Include "md5.h".  Do not include "gen-md5.h".
34         (digest_authentication_encode): New variable ctx.  Use md5 functions
35         from the gnulib module instead of functions defined previously in the
36         "gen-md5.h" file.
37
38 2010-05-15  Giuseppe Scrivano  <gscrivano@gnu.org>
39
40         * Makefile.am: Quote any path using $(top_srcdir) or $(top_builddir).
41         (version.c): Remove dependency from configure.ac and Makefile.am.
42
43         * css.l: Include "wget.h".
44
45 2010-05-08  Giuseppe Scrivano  <gscrivano@gnu.org>
46
47         * Makefile.am: Update copyright years.
48
49         * cmpt.c: Likewise.
50
51         * connect.h: Likewise.
52
53         * convert.c: Likewise.
54
55         * convert.h: Likewise.
56
57         * cookies.c: Likewise.
58
59         * cookies.h: Likewise.
60
61         * css-tokens.h: Likewise.
62
63         * css-url.c: Likewise.
64
65         * css-url.h: Likewise.
66
67         * css.l: Likewise.
68
69         * exits.c: Likewise.
70
71         * exits.h: Likewise.
72
73         * ftp-basic.c: Likewise.
74
75         * ftp-ls.c: Likewise.
76
77         * ftp-opie.c: Likewise.
78
79         * ftp.c: Likewise.
80
81         * ftp.h: Likewise.
82
83         * gen-md5.c: Likewise.
84
85         * gen-md5.h: Likewise.
86
87         * gettext.h: Likewise.
88
89         * gnutls.c: Likewise.
90
91         * hash.c: Likewise.
92
93         * hash.h: Likewise.
94
95         * host.c: Likewise.
96
97         * host.h: Likewise.
98         * html-parse.c: Likewise.
99
100         * html-parse.h: Likewise.
101
102         * html-url.c: Likewise.
103
104         * html-url.h: Likewise.
105
106         * http-ntlm.c: Likewise.
107
108         * http-ntlm.h: Likewise.
109
110         * http.c: Likewise.
111
112         * http.h: Likewise.
113
114         * init.c: Likewise.
115
116         * init.h: Likewise.
117
118         * iri.c: Likewise.
119
120         * iri.h: Likewise.
121
122         * log.c: Likewise.
123
124         * log.h: Likewise.
125
126         * main.c: Likewise.
127
128         * mswindows.c: Likewise.
129
130         * mswindows.h: Likewise.
131
132         * netrc.c: Likewise.
133
134         * netrc.h: Likewise.
135
136         * openssl.c: Likewise.
137
138         * options.h: Likewise.
139         * progress.c: Likewise.
140
141         * progress.h: Likewise.
142
143         * ptimer.c: Likewise.
144
145         * ptimer.h: Likewise.
146
147         * recur.c: Likewise.
148
149         * recur.h: Likewise.
150
151         * res.c: Likewise.
152
153         * res.h: Likewise.
154
155         * retr.c: Likewise.
156
157         * retr.h: Likewise.
158
159         * spider.c: Likewise.
160
161         * spider.h: Likewise.
162
163         * ssl.h: Likewise.
164
165         * sysdep.h: Likewise.
166
167         * test.c: Likewise.
168
169         * test.h: Likewise.
170
171         * url.c: Likewise.
172
173         * url.h: Likewise.
174
175         * utils.c: Likewise.
176
177         * utils.h: Likewise.
178
179         * wget.h: Likewise.
180
181 2010-05-07  Giuseppe Scrivano  <gscrivano@gnu.org>
182
183         * gnutls.c (wgnutls_close): Use always `close', not `closesocket'.
184
185         * openssl.c (openssl_close): Use always `close', not `closesocket'.
186         (ssl_connect_wget): Get the real socket handle by FD_TO_SOCKET.
187         Define FD_TO_SOCKET if it is not yet defined.
188
189         * Makefile.am (libunittest_a_CPPFLAGS): Add -I$(top_builddir)/lib.
190
191         * mswindows.h: Always include <winsock2.h> and <ws2tcpip.h>.  Do not
192         include <winsock.h>.
193         [! INHIBIT_WRAP]: Remove macro's socket, bind, connect, accept, recv,
194         send, select, getsockname, getpeername, setsockopt, closesocket.
195         Remove wrapped_socket, wrapped_bind, wrapped_connect, wrapped_listen,
196         wrapped_accept, wrapped_recv, wrapped_send, wrapped_select,
197         wrapped_getsockname, wrapped_getpeername, wrapped_setsockopt,
198         wrapped_closesocket prototypes.
199
200         * mswindows.c:  Remove wrapped_socket, wrapped_bind, wrapped_connect,
201         wrapped_listen, wrapped_accept, wrapped_recv, wrapped_send,
202         wrapped_select, wrapped_getsockname, wrapped_getpeername,
203         wrapped_setsockopt, wrapped_closesocket functions.  Remove WRAP macro.
204
205         * host.h [WINDOWS]: Include <winsock2.h> not <winsock.h>.
206
207         * connect.c: Include <sys/socket.h> and <sys/select.h> on any platform,
208         gnulib ensures they exist.  Remove `read', `write', `close' macros.
209
210         * Makefile.am: Copy build_info.c.in only if we are working in a VPATH.
211         (AM_CPPFLAGS): Add directory with generated gnulib files.
212
213 2010-05-06  Giuseppe Scrivano  <gscrivano@gnu.org>
214
215         * Makefile.am (build_info.c): Generate build_info.c in the builddir,
216         not srcdir.
217
218 2010-05-05  Giuseppe Scrivano  <gscrivano@gnu.org>
219
220         * http.c (gethttp): Give a nicer message on a malformed status line.
221
222 2010-05-04  Giuseppe Scrivano  <gscrivano@gnu.org>
223
224         * http.c (gethttp): Check `resp_status' return code and handle
225         errors.
226
227 2010-05-01  Giuseppe Scrivano <gscrivano@gnu.org>
228
229         * http.c (request_send): Specify 1.1 as HTTP version for requests.
230         (skip_short_body): Accept new parameter `chunked'.  New variable
231         `remaining_chunk_size'.  Handle the chunked transfer encoding.
232         (gethttp): New variable `chunked_transfer_encoding`.  Set `keepalive'
233         by default to true.  Check if the server is using the chunked transfer
234         encoding.
235
236         * retr.h: Define `rb_chunked_transfer_encoding'.
237
238         * retr.c (fd_read_body): New variable `chunked'.  New variable
239         `remaining_chunk_size'.  Handle the chunked transfer encoding.
240
241 2010-03-04  Steven Schubiger  <stsc@member.fsf.org>
242
243         * ftp.c (ftp_loop_internal): Omit input file from being
244         deleted after retrieval.
245
246         * retr.c (input_file_url): New function.
247
248         * retr.h: Add declaration for input_file_url.
249
250 2010-03-02  Steven Schubiger  <stsc@member.fsf.org>
251
252         * retr.c (retrieve_from_file): Improve checking for a URL
253         by invoking url_valid_scheme instead of url_has_scheme.
254
255         * url.c (url_valid_scheme): New function.
256
257         * url.h: Add declaration for url_valid_scheme.
258
259 2010-03-02  Steven Schubiger  <stsc@member.fsf.org>
260
261         * retr.c (retrieve_from_file): Free memory of input file.
262
263 2010-03-01  Steven Schubiger  <stsc@member.fsf.org>
264
265         * retr.c (retrieve_url): Retrieve the local filename from ftp_loop.
266         (retrieve_from_file): Return if there's no input file.
267
268         * ftp.c (ftp_loop_internal): Duplicate the local filename into
269         retrieve_url's scope when a valid reference is being passed.
270         (ftp_loop): Call ftp_loop_internal here with passing a
271         reference to the local filename, elsewhere with NULL.
272
273         * ftp.h: Adjust declaration of ftp_loop.
274
275 2010-01-27  Paul Townsend  <aab@purdue.edu>  (tiny change)
276
277         * retr.c (fd_read_body): Be sure to measure timer when time has
278         elapsed, too, not just when we've made progress.
279
280 2010-01-13  Micah Cowan  <micah@cowan.name>
281
282         * openssl.c: Fixed some mixed declarations-and-code.
283
284 2010-01-09  Micah Cowan  <micah@cowan.name>
285
286         * init.c, main.c, http.c, ftp.c, options.h: Renamed
287         --no-match-server-timestamps to --no-use-server-timestamps, and
288         add it to print_help.
289
290 2010-01-09  David Holman  <holman.david@gmail.com>  (tiny change)
291
292         * init.c, main.c, http.c, ftp.c, options.h: Added support for
293         --no-match-server-timestamps.
294
295 2009-12-03  Peter Rosin  <peda@lysator.liu.se>
296
297         * snprintf.c (dopr): Output %p as unsigned.
298
299 2010-01-09  Jeremy Olexa  <darkside@gentoo.org>  (tiny change)
300
301         * init.c: Deal with systems which provide PATH_MAX in
302         sys/param.h rather than limits.h.
303
304 2009-10-09  Steven Schweda  <sms@antinode.info>
305
306         * utils.c: Added characters " : \ | to the list of normal
307         caret-escaped (ODS5) characters in the char_prop[] table.
308
309 2009-09-22  Arvind Jamuna Dixit  <ardsrk@gmail.com>
310
311         * http.c (extract_param, parse_content_disposition): Support
312         RFC 2231 while parsing Content-Disposition header
313
314 2009-10-24  Petr Pisar  <petr.pisar@atlas.cz>
315
316         * openssl.c: Implement support for (multiple) subjectAltNames in
317         X509 certificates, not just the commonName.
318
319 2009-10-09  Micah Cowan  <micah@cowan.name>
320
321         * main.c: Fix declaration of compiled_features.
322
323         * build_info.c.in: Adapt to new input format. Added a check for
324         large-file support. Replaced the "openssl" and "gnutls"
325         advertisements with a single "ssl/foo" advertisement.
326
327 2009-09-30  Micah Cowan  <micah@cowan.name>
328
329         * sysdep.h: Unconditionally include stdbool.h (gnulib has it for
330         systems that don't supply it.)
331
332         * vms.c: Added functions vms_basename(), used to extract the
333         bare executable name from argv[0], and vms_getpass(), a
334         VMS-specific replacement for GNU getpass().
335
336          vms.c: Added global string constants: compilation_string
337         (NULL), link_string (NULL), and version_string (real).
338
339 2009-09-24  Micah Cowan  <micah@cowan.name>
340
341         * vms.c: Moved from vms/vms.c.
342
343         * sysdep.h: Use proper prototypes for snprintf, vsnprintf (thanks
344         to Steven Schweda).
345
346 2009-09-24  Steven Schweda  <sms@antinode.info>
347
348         * main.c (print_version): Remove VMS-conditional build info
349         string; the new VMS builders use OS_TYPE.
350
351         * ftp.c (getftp): Fix accidental use of target -> targ.
352
353 2009-09-24  Micah Cowan  <micah@cowan.name>
354
355         * host.c (host_errstr): host_errstr should return const char *.
356
357 2009-09-22  Micah Cowan  <micah@cowan.name>
358
359         * Makefile.am (version.c): Explicitly tell Mercurial where the
360         top-source repository should be, so it doesn't accidentally use
361         the repository for a containing directory (for instance, if the
362         user's home directory is managed by a Mercurial repo). Also
363         ensures we find the repository, even if the build directory is
364         outside the source directory.
365
366         * wget.h: define WINDOWS if _WIN32 or __WIN32__ is defined, but
367         not __CYGWIN__.
368
369         * mswindows.c (xsleep): Check for availability of the sleep
370         function, in addition to the usleep function.
371         (get_winsock_error, windows_strerror): Removed (gnulib already
372         supplies this functionality).
373
374         * mswindows.h [NEED_GAI_STRERROR]: define gai_strerror
375         to (gnulib's) strerror, rather than windows_strerror. Removed
376         error macro definitions provided by gnulib.
377         (windows_strerror): Removed (gnulib already supplies this
378         functionality).
379
380         * host.c: Don't declare h_errno when building on Windows.
381
382         * Makefile.am (LIBS): Added @W32LIBS@.
383         (EXTRA_wget_SOURCES): Removed (it's in LIBOBJ now).
384         (version.c): Removed dependency on $(LDADD), since it may include
385         dependencies that are not part of the Wget sources (-lwsock32, for
386         instance).
387
388         * openssl.c (ssl_check_certificate): Avoid reusing the same buffer
389         space for successive quoted arguments. Thanks to Steven Schweda
390         for pointing out the problem.
391
392 2009-09-21  Micah Cowan  <micah@cowan.name>
393
394         * progress.c (update_speed_ring): "the the" -> "the".
395
396         * css-url.c, iri.c, mswindows.c: Removed assert.h inclusion (not
397         using it).
398
399 2009-09-11  Steven Schweda  <sms@antinode.info>
400
401         * utils.c, utils.h (fopen_excl): Make second argument an int,
402         rather than a bool (so it can handle the appropriate VMS version
403         of the flag).
404
405         * main.c (print_version): Don't print LOCALEDIR unless NLS is
406         enabled.
407
408         * http.c (gethttp): Pass FOPEN_BIN_FLAG, instead of true.
409
410         * ftp.c (ftp_retrieve_glob): Cast strcmp to assign to cmp, for a
411         silly HP build environment.
412
413 2009-09-08  Steven Schubiger  <stsc@member.fsf.org>
414
415         * main.c, init.c: Mark the --preserve-permissions and
416         --html-extension option as deprecated.
417
418 2009-09-06  Micah Cowan  <micah@cowan.name>
419
420         * ftp.c (getftp, ftp_loop_internal): Separate "len" input/output
421         parameter (with different meanings for input and output), into two
422         separate parameters, one input (passed_expected_bytes) and one
423         output (qtyread). Fixes bug #26870.
424
425 2009-09-05  Steven Schubiger  <stsc@member.fsf.org>
426
427         * retr.h: Declare set_local_file() to avoid build warnings.
428
429 2009-09-05  Gisle Vanem  <gvanem@broadpark.no>
430
431         * connect.c, init.c, main.c, openssl.c, options.h:  Replace
432         "ifdef MSDOS" with "ifdef USE_WATT32" since DOS-targets in fact
433         use the Watt-32 tcp/ip stack.
434
435 2009-09-04  Micah Cowan  <micah@cowan.name>
436
437         * Makefile.am: Move build_info.c to wget_SOURCES from
438         nodist_wget_SOURCES, reduce dependencies, and invoke build_info.pl
439         in its new home, $(top_srcdir)/build-aux.
440
441 2009-09-03  Micah Cowan  <micah@cowan.name>
442
443         * ftp-ls.c (ftp_parse_vms_ls): Replace use of localtime_r with
444         localtime, as not all platforms have localtime_r.
445
446         * Makefile.am (wget_SOURCES): Rearranged some of the file order,
447         so .c files and .h files are apart. Added gettext.h, so that it
448         shows up in the dist.
449
450 2009-09-02  Micah Cowan  <micah@cowan.name>
451
452         * gettext.h: Refreshed from gettext 0.17.
453
454         * test.c: Added definition of program_name variable, required by
455         lib/error.c (libgnu.a). Doesn't cause problems until you try to
456         build on a non-GNU system...
457
458         * build_info.c.in: Removed useless "+gettext" feature ad.
459
460 2009-08-29  Steven Schubiger  <stsc@member.fsf.org>
461
462         * convert.c (local_quote_string): Percent-encode semicolons
463         in local file strings.
464
465 2009-08-27  Micah Cowan  <micah@cowan.name>
466
467         * wget.h (uerr_t): added new VERIFCERTERR code for SSL certificate
468         problems. Marked exit codes that are defined but never used (at
469         least, the ones I could find).
470
471         * retr.c, retr.h (retrieve_url): Added a new boolean argument to
472         determine whether an exit status should be recorded.
473         (retrieve_from_file): Adjust to new retrieve_url signature.
474
475         * res.c (res_retrieve_file): Don't have retrieve_url record an
476         exit status for robots.txt.
477
478         * recur.c (retrieve_tree): Adjust to new retrieve_url signature.
479
480         * main.c (main): Use the exit status stored by retrieve_url.
481
482         * http.c (gethttp): Distinguish certificate verification problems
483         from SSL connection issues.
484         (http_loop): Handle newly-created VERIFCERTERR error code.
485
486         * exits.c, exits.h: Newly added.
487
488         * Makefile.am (wget_SOURCES): Add exits.c and exits.h.
489
490 2009-08-27  Micah Cowan  <micah@cowan.name>
491
492         * http.c (gethttp): Make sure Wget heeds cookies when they
493         are sent with a 401 response; or any other sort of response for
494         that matter (#26775).
495
496 2009-08-19  Micah Cowan  <micah@cowan.name>
497
498         * openssl.c (ssl_check_certificate): Only warn about an attack if
499         the hostname would otherwise have matched. Also some formatting
500         cleanup.
501
502 2009-08-19  Joao Ferreira  <joao@joaoff.com>
503
504         * openssl.c (ssl_check_certificate): Detect embedded NUL
505         characters in the SSL certificate common name.
506
507 2009-08-17  Tony Lewis  <tlewis@exelana.com>
508
509         * http.c (gethttp): Ensure that we parse Content-Length before we
510         attempt to refer to its value. Without this fix, NTLM support was
511         completely buggered. #27192
512
513 2009-08-09  Michael Baeuerle  <michael.baeuerle@gmx.net>
514
515         * ftp.c: #include <strings.h> for strcasecmp.
516
517 2009-07-28  Micah Cowan  <micah@cowan.name>
518
519         * main.c (option_data): Rename --html-extension to
520         --adjust-extension.
521         (print_help): Ditto.
522
523         * options.h (struct option): Rename html_extension to
524         adjust_extension.
525         * http.c (gethttp): Ditto.
526         * convert.c (local_quote_string): Ditto.
527
528         * init.c (commands): Add "adjustextension", and reflect rename
529         change for opt.adjust_extension, for both "adjustextension" and
530         "htmlextension".
531
532 2009-07-27  Micah Cowan  <micah@cowan.name>
533
534         * options.h (struct options): Added restrict_files_nonascii
535         boolean field.
536
537         * url.c (FILE_CHAR_TEST): Add check for chars outside the ASCII
538         range.
539
540         * init.c (defaults): Add restrict_files_nonascii to initialization.
541         (cmd_spec_restrict_file_names): Allow parsing of "ascii" keyword.
542
543 2009-07-27  Marcel Telka  <marcel@telka.sk>
544
545         * iri.c (do_conversion): Typo: invalide -> invalid
546
547 2009-07-27  Petr Pisar  <petr.pisar@atlas.cz>
548
549         * main.c (print_help): Fixed a couple typos.
550
551 2009-07-26  Micah Cowan  <micah@cowan.name>
552
553         * main.c (option_data): Rename --locale option to --local-encoding
554         (print_help): Document --no-iri, --local-encoding, and
555         --remote-encoding, within usage message. Remove defunct
556         --preserve-permissions.
557
558 2009-07-23  Micah Cowan  <micah@cowan.name>
559
560         * progress.c (get_eta): Change "Translation note" in comment to
561         "TRANSLATORS", so it actually appears in wget.pot.
562
563 2009-07-06  Micah Cowan  <micah@cowan.name>
564
565         * main.c (print_help): Improve documentation of --base.
566
567 2009-07-05  Micah Cowan  <micah@cowan.name>
568
569         * html-url.c (tag_handle_meta): Handle meta name="robots"
570         properly: deal with whitespace, commas after...
571
572         * netrc.c (parse_netrc): Rename local-scope variable "quote" to
573         "qmark", to avoid conflict with the function name.
574
575 2009-07-05  Petr Pisar  <petr.pisar@atlas.cz>
576
577         * main.c (print_version): Mark initial line for translation, along
578         with (env), (user), and (system). Change copyright year to 2009.
579
580         * http.c (http_loop): Space after colon.
581
582         * gnutls.c (ssl_check_certificate): Use quote function, rather
583         than explicit quotes.
584
585 2009-07-05  Micah Cowan  <micah@cowan.name>
586
587         * Makefile.am (version.c): Add dependency on configure.ac.
588
589         * iri.c: Mark some strings for translation.
590
591 2009-07-04  Steven Schweda  <sms@antinode.info>
592
593         * wget.h (ORIG_SFX): Macro added, to supply an alternative "_orig"
594         suffix on VMS.
595
596         * connect.c, host.c, host.h, main.c: Include "vms_ip.h" rather
597         than <netdb.h> on VMS systems.
598
599         * convert.c (write_backup_file): Use "_orig" rather than ".orig"
600         on VMS.
601
602         * ftp-basic.c (ftp_list): Don't use LIST -a on VMS servers.
603
604         * ftp.c [__VMS]: Include "vms.h"
605         * ftp.c (getftp): Disable some unhelpful "for VMS" code. Pass the
606         OS type to ftp_list.
607         (getftp) [__VMS]: Alter the filename as required, and invoke fopen
608         with extra optional arguments.
609         (ftp_retrieve_list): Set permissions before setting the times.
610
611         * ftp-ls.c [__VMS]: Various improvements.
612
613         * http.c (SET_USER_AGENT): Added. Include operating-system info in
614         the User-Agent header.
615         (gethttp): Use ORIG_SFX macro.
616         (gethttp) [__VMS]: invoke fopen with extra arguments to
617         communicate file type.
618         (http_loop): Add cast to time_t.
619
620         * init.c (wgetrc_user_file_name) [__VMS]: Adjustments for where to
621         find the .wgetrc.
622
623         * log.c: Adjustments to improve handling of log files on VMS.
624
625         * main.c [__VMS]: Added --ftp-stmlf option (and associated
626         documentation). Adjust description of backup-suffixes, as they now
627         differ for VMS.
628         (print_help, print_version): Include OS type in version
629         information.
630         (main) [__VMS]: Invoke fopen with extra options, to specify file
631         type information.
632
633         * netrc.c (search_netrc) [__VMS]: Fix .netrc-finding.
634
635         * openssl.c, openssl.h (ssl_connect_wget): Renamed from ssl_connect.
636
637         * options.h (struct options): Add ftp_stmlf field.
638
639         * retr.c (write_data) [__VMS]: Avoid fflush.
640
641         * url.c [__VMS]: Include vms.h.
642         * url.c (url_file_name) [__VMS]: Handle naming as required for VMS.
643
644         * utils.c [__VMS]: Include vms.h. Various added facilities for VMS
645         needs.
646
647 2009-07-04  Micah Cowan  <micah@cowan.name>
648
649         * main.c (print_version): Allow localization of the version-info
650         labels, eschew attempts at alignment (which is complicated when
651         handling translated strings), and avoid using printf() with
652         variable-stored format strings that lack conversion
653         specifications.
654         (format_and_print_line): For similar reasons, don't calculate
655         line-continuation tabulation based on the number of bytes in a
656         string.
657
658 2009-07-04  Steven Schubiger  <stsc@member.fsf.org>
659
660         * url.c (url_parse): If an URL scheme is invalid, distinguish
661         between an unsupported or missing scheme.
662
663         * url.c: Add a "missing scheme" entry to parse_errors.
664
665 2009-07-03  Micah Cowan  <micah@cowan.name>
666
667         * iri.h (iri_dup): Provide macro definition for when IRIs are
668         disabled.
669
670         * Makefile.am (LIBS): Added @LIBICONV@.
671         (wget_SOURCES): Added iri.h.
672         (EXTRA_wget_SOURCES): Added iri.c, so it gets packaged even if IRI
673         support was disabled.
674
675 2009-07-02  Micah Cowan  <micah@cowan.name>
676
677         * recur.c (url_enqueue): Quote enqueue/dequeue debug messages.
678
679         * html-url.c (append_url): Change "merge()" quoting style from
680         locale_quoting_style to escape_quoting_style.
681
682 2009-07-01  Micah Cowan  <micah@cowan.name>
683
684         * retr.c (retrieve_url): Use the existing "redirect" label,
685         instead of superfluous "second_try". Removed no-longer-accurate
686         debug statement. Use the "newloc" parameter to store the fallback
687         URL, when IRI version was rejected.
688
689         * recur.c (retrieve_tree): Always use the parsed URL for tracking
690         the Referer, since that's the one we actually requested (if
691         there's a difference in terms of percent-encodings and such).
692
693 2009-07-01  Steven Schubiger  <stsc@member.fsf.org>
694
695         * Makefile.am: Add a rule to generate build_info.c and list
696         the build_info.c.in file in EXTRA_DIST. Adjust elsewhere
697         where needed.
698
699         * build_info.c: Remove this static source file.
700
701         * build_info.c.in: Data for generation of build_info.c.
702
703 2009-06-29  Micah Cowan  <micah@cowan.name>
704
705         * html-url.c (append_url): Quote some more arguments that might
706         contain characters that are inappropriate to display for the
707         current locale.
708
709         * retr.c (retrieve_from_file): Be sure to pass iri information
710         when parsing an input-fle url, and be sure to hand a clean iri
711         struct, off to retrieve_tree and retrieve_url.
712
713         * iri.c, iri.h (iri_dup): Added.
714
715         * retr.c (retrieve_url): Re-parse for IRI fallback.
716
717         * main.c (main): Set up iri before the url_parse invocation (so we
718         can use it).
719
720 2009-06-20  Jay Krell  <jay.krell@cornell.edu>
721
722         * sysdep.h (_ALL_SOURCE): (small change) Define the _ALL_SOURCE
723         macro on INTERIX systems. (I switched the location from ftp.c to
724         sysdep.h --mjc)
725
726 2009-06-15  Micah Cowan  <micah@cowan.name>
727
728         * ftp.c (getftp): If we can't accept the connection, return
729         CONERROR, not whatever the contents of err happens to be. Fixes
730         bug #25015.
731
732         * retr.c (fd_read_body): Make both args to progress_create
733         consistent, resulting in an accurate progress display. Fixes bug
734         #24948.
735
736 2009-06-14  Micah Cowan  <micah@cowan.name>
737
738         * Makefile.am (wget_SOURCES): css-tokens.h needs to ship with
739         dist, too.
740
741 2009-06-13  Micah Cowan  <micah@cowan.name>
742
743         * init.c: Rename setval_internal_wrapper to setval_internal_tilde,
744         ensure we don't "replace" the tilde unless it's actually
745         present. Clean up some minor GNU style issues.
746
747 2009-06-13  Julien Pichon  <julienpichon7@gmail.com>
748
749         * init.c: Handle tilde-expansion in wgetrc commands, without
750         resorting to setting/unsetting globals to change behavior in one
751         call location.
752
753 2009-06-12  Micah Cowan  <micah@cowan.name>
754
755         * host.c: Include <sys/types.h> before <sys/socket.h>. Not
756         required by POSIX any more, but some older systems (such as
757         FreeBSD 4.1) still need it, and it doesn't seem like it could
758         hurt...
759
760         * build_info.c (library): Handle "https" as a feature in its own
761         right, apart from "gnutls" and "openssl".
762
763         * host.c: Declare h_errno if no declaration is provided. Idea
764         thanks to Maciej W. Rozycki.
765
766 2009-06-11  Xin Zou  <zouxin2008@gmail.com>
767
768         * http.c (gethttp): Fix some memory leaks.
769
770 2009-06-11  Micah Cowan  <micah@cowan.name>
771
772         * http.c (http_atotm): Handle potential for setlocale's return
773         value to be static storage. Thanks to Benjamin Wolsey
774         <bwy@benjaminwolsey.de>.
775
776         * sysdep.h: Need NAMESPACE_TWEAKS on non-Linux glibc-based
777         systems, too. Thanks to Robert Millan.
778
779 2009-05-28  Steven Schubiger  <stsc@member.fsf.org>
780
781         * ftp.c (ftp_get_listing): Update the "listing file"
782         string after calling ftp_loop_internal().
783
784 2009-05-27  Steven Schubiger  <stsc@member.fsf.org>
785
786         * ftp.c (ftp_get_listing): Duplicate the "listing file"
787         string to avoid memory corruption when FOPEN_EXCL_ERR is
788         encountered.
789
790 2009-05-17  Steven Schubiger  <stsc@member.fsf.org>
791
792         * progress.c (eta_to_human_short): Fix the remaining hours
793         to be displayed. Spotted by Tadeu Martins (#26411).
794
795 2009-04-24  Micah Cowan  <micah@cowan.name>
796
797         * hash.c: Change stdint.h inclusion to use HAVE_STDINT_H, not C99
798         check.
799
800         * connect.c: stdint.h inclusion added.
801
802         Thanks to Markus Duft <mduft@gentoo.org> for a similar patch.
803
804 2009-04-20  Micah Cowan  <micah@cowan.name>
805
806         * Makefile.am (version.c): Fix unportable use of "echo -n".
807
808 2009-04-13  Steven Schubiger  <stsc@member.fsf.org>
809
810         * ftp.c (ftp_retrieve_list): Move the duplicated code that
811         determines the local file to a function.
812
813         * http.c (http_loop): Likewise.
814
815         * retr.c (set_local_file): New function.
816
817 2009-04-11  Steven Schubiger  <stsc@member.fsf.org>
818
819         * init.c (initialize): Run a custom SYSTEM_WGETRC when
820         provided as an environment variable.
821
822 2009-02-27  Gisle Vanem  <gvanem@broadpark.no>
823
824         * main.c (main): "freopen (NULL,.." causes an assertion in MSVC
825         debug-mode.  I.e. NULL isn't legal. But the "CONOUT$" device works
826         fine.
827
828 2009-02-27  Steven Schubiger  <stsc@member.fsf.org>
829
830         * ftp.c (ftp_loop_internal): Don't claim for FTP retrievals
831         when writing to standard output either that the document
832         has been saved. Addresses bug #20520 again.
833
834 2009-02-21  Steven Schubiger  <stsc@member.fsf.org>
835
836         * http.c (http_loop): When a document is written to
837         standard output, don't claim it has been saved to a file.
838         Addresses bug #20520.
839
840 2009-02-18  Steven Schubiger  <stsc@members.fsf.org>
841
842         * recur.h: Remove the dangling declaration for recursive_cleanup().
843
844 2009-02-01  Gerardo E. Gidoni  <gerel@gnu.org>
845
846         * main.c, recur.c, recur.h, res.c, retr.c, retr.h: restructured code to
847         avoid multiple 'url_parse' calls.
848
849 2008-11-13  Micah Cowan  <micah@cowan.name>
850
851         * http.c (gethttp): Don't do anything when content-length >= our
852         requested range.
853
854 2008-11-27  Saint Xavier  <wget@sxav.eu>
855
856         * http.c (gethttp): Move authentication code before filename
857         allocation avoiding fallbacking on default filename because
858         "Content-Disposition" header wasn't present before authentcation
859         has been completed. Fixes bug #24862.
860
861 2008-11-16  Steven Schubiger  <stsc@members.fsf.org>
862
863         * main.c: Declare and initialize the numurls counter.
864
865         * ftp.c, http.c: Make the counter visible here and use it.
866
867         * options.h: Remove old declaration from options struct.
868
869 2008-11-15  Steven Schubiger  <stsc@members.fsf.org>
870
871         * init.c (defaults): Set default waitretry value.
872
873 2008-11-14  Steven Schubiger  <stsc@members.fsf.org>
874
875         * main.c (format_and_print_line): Use a custom format
876         string for printing leading spaces.
877
878 2008-11-12  Micah Cowan  <micah@cowan.name>
879
880         * ftp-ls.c (ftp_index): HTML-escape dir name in title, h1, a:href.
881
882 2008-11-12  Alexander Belopolsky  <alexander.belopolsky@gmail.com>
883
884         * url.c, url.h (url_escape_unsafe_and_reserved): Added.
885
886         * ftp-ls.c (ftp_index): URL-escape, rather than HTML-escape, the
887         filename appearing in the link.
888
889 2008-11-12  Steven Schubiger  <stsc@members.fsf.org>
890
891         * main.c (print_version): Hand the relevant
892         xstrdup/xfree calls back to format_and_print_line().
893
894 2008-11-11  Steven Schubiger  <stsc@members.fsf.org>
895
896         * main.c (format_and_print_line): Move both the memory
897         allocating and freeing bits upwards to print_version().
898
899 2008-11-10  Saint Xavier  <wget@sxav.eu>
900
901         * http.c: Make --auth-no-challenge works with user:pass@ in URLs.
902
903 2008-11-05  Micah Cowan  <micah@cowan.name>
904
905         * ftp.c (print_length): Should print humanized "size remaining"
906         only when it's at least 1k.
907
908 2008-10-31  Micah Cowan  <micah@cowan.name>
909
910         * main.c (print_version): Add information about the mailing list.
911
912 2008-10-31  Alexander Drozdov  <dzal_mail@mtu-net.ru>
913
914         * retr.c (fd_read_hunk): Make assert deal with maxsize == 0.
915
916         * ftp-ls.c (clean_line): Prevent underflow on empty lines.
917
918 2008-10-26  Gisle Vanem  <gvanem@broadpark.no>
919
920         * main.c (format_and_print_line): Put variables on top of
921         blocks (not all compilers are C99). Add an extra '\n' if
922         SYSTEM_WGETRC isn't defined and printed.
923
924 2008-09-09  Gisle Vanem  <gvanem@broadpark.no>
925
926         * url.c (url_error): Use aprintf, not asprintf.
927
928 2008-09-09  Micah Cowan  <micah@cowan.name>
929
930         * init.c (home_dir): Save the calculated value for home,
931         to avoid duplicated work on repeated calls.
932         (wgetrc_file_name) [WINDOWS]: Define and initialize home var.
933
934         * build_info.c, main.c: Remove unnecessary extern vars
935         system_wgetrc and locale_dir.
936
937         * main.c: Define program_name for lib/error.c.
938
939 2008-09-02  Gisle Vanem  <gvanem@broadpark.no>
940
941         * mswindows.h: Must ensure <stdio.h> is included before
942         we redefine ?vsnprintf().
943
944 2008-08-08  Steven Schubiger  <stsc@members.fsf.org>
945
946         * main.c, utils.h: Removed some dead conditional DEBUG_MALLOC code.
947
948 2008-08-03  Micah Cowan  <micah@cowan.name>
949
950         * main.c (print_help): Added --default-page.
951
952 2008-08-01  Joao Ferreira  <joao@joaoff.com>
953
954         * init.c, main.c, options.h, url.c: Added option --default-page
955         to support alternative default names for index.html
956
957 2008-08-03  Micah Cowan  <micah@cowan.name>
958
959         * build_info.c, css-url.c: #include wget.h, not config.h.
960
961 2008-08-03  Steven Schubiger  <stsc@members.fsf.org>
962
963         * url.c, url.h (url_error): Better messages for unsupported
964         schemes, especially https.
965
966         * html-url.c, recur.c, retr.c: Adjust to new url_error
967         invocation, and free result.
968
969 2008-07-17  Steven Schubiger  <stsc@members.fsf.org>
970
971         * retr.c (retrieve_from_file): When given an URL as input file,
972         use it as baseref if none was specified and treat the input file
973         as HTML if its content type is text/html.
974
975         * init.c (cleanup): Free the memory associated with the base
976         option (when DEBUG_MALLOC is defined).
977
978 2008-07-02  Xavier Saint  <wget@sxav.eu>
979
980         * iri.c, iri.h  : New function idn_decode() to decode ASCII
981         encoded hostname to the locale.
982
983         * host.c : Show hostname to be resolved both in locale and
984         ASCII encoded.
985
986 2008-06-28  Steven Schubiger  <stsc@members.fsf.org>
987
988         * retr.c (retrieve_from_file): Allow for reading the links from
989         an external file (HTTP/FTP).
990
991 2008-06-26  Xavier Saint  <wget@sxav.eu>
992
993         * iri.c, iri.h : New functions locale_to_utf8() and
994         idn_encode() adding basic capabilities of IRI/IDN.
995
996         * url.c : Convert URLs from locale to UTF-8 allowing a basic
997         support of IRI/IDN
998
999 2008-06-25  Steven Schubiger  <stsc@members.fsf.org>
1000
1001         * ftp.c (getftp): When spidering a FTP URL, emit a diagnostic
1002         message if the remote file exists.
1003
1004 2008-06-24  Steven Schubiger  <stsc@members.fsf.org>
1005
1006         * http.c (http_loop): Replace escnonprint() occurence with
1007         a quotearg_style() call.
1008
1009 2008-06-24  Micah Cowan  <micah@cowan.name>
1010
1011         * ftp-ls.c (ftp_index): Don't assume time_t* is compatible with
1012         long*. Fixes crash on Windows, and probably other systems.
1013
1014 2008-06-22  Steven Schubiger  <stsc@members.fsf.org>
1015
1016         * http.c: Explicitly initialize and deallocate the message
1017         string used by the -nv --spider functionality.
1018
1019 2008-06-22  Steven Schubiger  <schubiger@gmail.com>
1020
1021         * http.c: Make -nv --spider include the file's name when it
1022         exists.
1023
1024 2008-06-22  Micah Cowan  <micah@cowan.name>
1025
1026         * Makefile.am (version.c): Fixed version string invocation so it
1027         once again can't result in unterminated strings, made all the
1028         string vars pointers-to-const, and moved line lengths
1029         below 80 (in Makefile.am, not in version.c).
1030
1031 2008-06-19  Xavier Saint  <wget@sxav.eu>
1032
1033         * iri.c, iri.h : New function check_encoding_name() as
1034         a preliminary encoding name check.
1035
1036         * main.c, iri.c : Make use of check_encoding_name().
1037
1038 2008-06-19  Xavier Saint  <wget@sxav.eu>
1039
1040         * iri.c : Include missing stringprep.h file and add a
1041         cast.
1042
1043         * init.c : set a default initial value for opt.enable_iri,
1044         opt.locale and opt.encoding_remote.
1045
1046 2008-06-19  Xavier Saint  <wget@sxav.eu>
1047
1048         * iri.c, iri.h : Add a new function find_locale() to find
1049         out the local system encoding.
1050
1051         * main.c : Make use of find_locale().
1052
1053 2008-06-19  Xavier Saint  <wget@sxav.eu>
1054
1055         * html-url.c : Add "content-type" meta tag parsing for
1056         retrieving page encoding.
1057
1058         * iri.h : Make no-op version of parse_charset() return
1059         NULL.
1060
1061 2008-06-16  Micah Cowan  <micah@cowan.name>
1062
1063         * http.c (http_loop): When hstat.len is higher than the
1064         successfully completed content's length, but it's because we
1065         _set_ it that way, don't abort.
1066
1067 2008-06-14  Xavier Saint  <wget@sxav.eu>
1068
1069         * iri.c, iri.h : New files.
1070
1071         * Makefile.am : Add files iri.h and conditional iri.c.
1072
1073         * build_info.c : Add compiled feature "iri".
1074
1075         * http.c : include iri.h and parse charset from Content-Type
1076         header.
1077
1078         * init.c, main.c, options.h : if an options isn't supported
1079         at compiled time, don't get rid off it and show a dummy
1080         message instead if they are used.
1081
1082 2008-06-13  Micah Cowan  <micah@cowan.name>
1083
1084         * build_info.c: ENABLE_NTLM, not HAVE_NTLM; distinguish OpenSSL
1085         from "ssl".
1086
1087 2008-06-13  Madhusudan Hosaagrahara <com.gmail.hrmadhu>
1088
1089         * Makefile.am, main.c, init.c, init.h, build_info.c: Adds build
1090         information to the --version command line option. Fixes bug
1091         #20636.
1092
1093 2008-06-01  Micah Cowan  <micah@cowan.name>
1094
1095         * main.c [WINDOWS]: Reopen stdout in binary mode, when -O - is
1096         given.
1097
1098 2008-05-31 Micah Cowan  <micah@cowan.name>
1099
1100         * html-url.c, http.c: Avoid casts in a couple spots.
1101
1102 2008-05-30 Henri Häkkinen  <henux@users.sourceforge.net>
1103
1104         * cookies.c, ftp-basic.c, hash.c, html-url.c, http-ntlm.c, http.c,
1105         init.c, log.c, main.c, progress.c, ptimer.c, spider.c, url.c,
1106         utils.c: Minor changes to silence warnings when using -Wall.
1107
1108 2008-05-26  Steven Schubiger  <schubiger@gmail.com>
1109
1110         * ftp.c (getftp): Replace last remaining invocation of escnonprint
1111         with gnulib quote.
1112
1113 2008-05-19  Micah Cowan  <micah@cowan.name>
1114
1115         * main.c (main): Password prompt should be done only once (not
1116         once per argument), and should be done prior to the background
1117         fork.
1118
1119 2008-05-17  Steven Schubiger  <schubiger@gmail.com>
1120
1121         * init.c (defaults): Set the preferred IP family to `none' by
1122         default.
1123
1124 2008-05-17  Kenny Parnell  <k.parnell@gmail.com>
1125
1126         (cmd_spec_prefer_family): Initialize prefer_family to prefer_none.
1127
1128 2008-05-17  Micah Cowan  <micah@cowan.name>
1129
1130         * main.c (main): Handle Ctrl-D on command-line.
1131
1132 2008-05-15  Steven Schubiger  <schubiger@gmail.com>
1133
1134         * ftp.c (getftp): Verify that the file actually exists in FTP, by
1135         checking it against the listing.
1136
1137 2008-05-15  Micah Cowan  <micah@cowan.name>
1138
1139         * main.c (prompt_for_password): Use the quote module.
1140
1141 2008-05-14  Micah Cowan  <micah@cowan.name>
1142
1143         * ftp.c (ftp_retrieve_list): Symlinks and other filenames
1144         should be fully quoted.
1145
1146 2008-05-12  Micah Cowan  <micah@cowan.name>
1147
1148         * main.c (main): Downgrade "-N with -O" to a warning, and switch
1149         it off to avoid confusing messages.
1150
1151 2008-04-30  Micah Cowan  <micah@cowan.name>
1152
1153         * progress.c (create_image): Fix glitch where too many spaces are
1154         printed on lines that don't display the ETA, in multibyte
1155         locales.
1156
1157 2008-04-30  Steven Schubiger  <stsc@members.fsf.org>
1158
1159         * main.c (main): New code that handles prompting for passwords
1160         when specified explicitly via command-line option (using gnulib's
1161         getpass-gnu module).
1162         (main): Include the getpass header.
1163
1164         * init.c: Add "ask-password" to the list of recognized commands.
1165
1166         * options.h: Add an according boolean member to the options
1167         struct.
1168
1169         * sysdep.h: Comment the defines __EXTENSIONS__ and _GNU_SOURCE
1170         out, because they're now defined independently by config.h.
1171
1172 2008-04-27  Rabin Vincent  <rabin@rab.in>
1173
1174         * http.c (http_loop): Fix return for the case where we don't
1175         download a file because of -nc.
1176
1177 2008-04-27  Micah Cowan  <micah@cowan.name>
1178
1179         * url.c (path_simplify): Go back to allowing leading ".." in
1180         paths, but only for FTP URLs.
1181         (test_path_simplify): Add scheme-specificness to tests, adapt for
1182         mu_run_test.
1183
1184         * test.c (all_tests): Add test_path_simplify.
1185
1186         * main.c (main): Downgrade -r, -p with -O to a warning rather than
1187         an error; elaborate just a bit more for other -O combination
1188         cases.
1189
1190 2008-04-26  Micah Cowan  <micah@cowan.name>
1191
1192         * http.c (gethttp): Move proxy CONNECT handling to below the
1193         retry_with_auth label, to deal with properly reconnecting to
1194         proxies when we need to authenticate.
1195
1196 2008-04-25  Micah Cowan  <micah@cowan.name>
1197
1198         * Makefile.am: -I foo -> -Ifoo.
1199
1200 2008-04-24  Micah Cowan  <micah@cowan.name>
1201
1202         * main.c: Revised usage description of --convert-links to apply
1203         to CSS as well as to HTML.
1204
1205 2008-04-23  Micah Cowan  <micah@cowan.name>
1206
1207         * utils.c (test_dir_matches_p): Added a test for the case
1208         described in issue #20518.
1209
1210 2008-04-22  Micah Cowan  <micah@cowan.name>
1211
1212         * Makefile.am, css.lex, css.l: Renamed css.lex to css.l.
1213         * recur.c (retrieve_tree): Fix typo to allow text/css files to
1214         be parsed.
1215
1216 2008-04-22  Ted Mielczarek  <ted.mielczarek@gmail.com>
1217
1218         * css.lex, css-url.c, css-url.h: Added to implement support for
1219         parsing CSS in Wget.
1220         * convert.c: Convert links in CSS files, too.
1221         * convert.h (convert_options): Added for options link_css_p,
1222         link_expect_css.
1223         * convert.h: Added prototype for new register_css function.
1224         * html-parse.c: Added support for parsing element content, in
1225         addition to tag starts and ends.
1226         * html-parse.h (taginfo): Added delimiter fields for element
1227         content.
1228         * html-url.h: Added.
1229         * html-url.c (append_url): No longer internal-linkage only. Now
1230         takes position and size as explicit parameters.
1231         * html-url.c: Use new html-url.h header, add support for
1232         handling of "style" HTML attributes. Mark URIs obtained from
1233         link tags with rel="stylesheet" with link_expect_css. Adapt
1234         uses of append_url to supply the newly-added parameters for
1235         position and size.
1236         * http.c: Add detection for when the content-type is text/css;
1237         and ensure that such files have the ".css" filename extension,
1238         when --convert-links is active.
1239         * recur.h: Remove declarations for functions found in
1240         html-url.c (moved to html-url.h).
1241         * recur.c: Add support for culling links from CSS files, too,
1242         and tracking for when we're expecting the file to be CSS (even
1243         when its content type isn't text/css).
1244         * retr.c (retrieve_url): Add registration of CSS files.
1245         * wget.h: Added TEXTCSS to dt flags enum.
1246         * Makefile.am: Added css.lex, css-url.c, css-url.h, html-url.h
1247         to wget_SOURCES.
1248
1249 2008-04-22  Jim Paris  <jim@jtan.com>
1250
1251         * openssl.c (ssl_init): Enable combined certificate/key in
1252         single file (apparent regression from ~1.9). Resolves issue
1253         #22767.
1254
1255 2008-04-22  Steven Schubiger  <schubiger@gmail.com>
1256
1257         * http.c (print_response_line): Changed to make responses always
1258         be logged, even in --quiet mode, if --server-response was
1259         specified. This is to bring http.c's handling of the situation
1260         in line with ftp.c's.
1261
1262 2008-04-22  Pranab Shenoy  <pranab.loosinit.shenoy@gmail.com>
1263
1264         * init.c: Added test_commands_sorted unit test to check is
1265         commands are sorted.  Fixes bug #21245.
1266
1267         * test.c: Added test_commands_sorted to the test suite.
1268
1269 2008-04-22  Rabin Vincent  <rabin@rab.in>
1270
1271         * ftp.c (ftp_get_listing): Only remove .listing if it has been
1272         created.
1273
1274 2008-04-22  Alain Guibert  <alguibert+bts@free.fr>
1275
1276         * test.h (mu_run_test): Move declaration before statements, for
1277         C90 conformance. Fixes bug #22789.
1278
1279 2008-04-22  Mike Frysinger  <vapier@gentoo.org>
1280
1281         * Makefile.am: Move @LIBS@ after other libraries, for better
1282         static-linking support. Fixes bug #22143.
1283
1284 2008-04-16  Steven Schubiger  <schubiger@gmail.com>
1285
1286         * ftp.c: Use Gnulib's quote function for printing filenames and
1287         such.
1288         * connect.c: Likewise.
1289         * convert.c: Likewise.
1290         * cookies.c: Likewise.
1291         * ftp-opie.c: Likewise.
1292         * gnutls.c: Likewise.
1293         * init.c: Likewise.
1294         * log.c: Likewise.
1295         * mswindows.c: Likewise.
1296         * openssl.c: Likewise.
1297         * progress.c: Likewise.
1298         * recur.c: Likewise.
1299         * res.c: Likewise.
1300         * utils.c: Likewise.
1301
1302 2008-04-16  Steven Schubiger  <schubiger@gmail.com>
1303
1304         * sysdep.h: Comment the defines __EXTENSIONS__ and _GNU_SOURCE
1305         out, because they're now defined independently by config.h.
1306
1307 2008-04-14  Steven Schubiger  <schubiger@gmail.com>
1308
1309         * http.c: Use Gnulib's quote function for printing filenames and
1310         such.
1311         * wget.h: #include "quote.h".
1312
1313 2008-04-12  Rabin Vincent  <rabin@rab.in>
1314
1315         * mswindows.c (fake_fork_child): Don't create a logfile for
1316         --background when --quiet is used, but not --server-response.
1317         Fixes bug #20917.
1318
1319         * utils.c (fork_to_background): Likewise.
1320
1321 2008-04-12  Micah Cowan  <micah@cowan.name>
1322
1323         * utils.c (aprintf): Minor formatting changes to Alex's code (80-
1324         column limit, concatenated string literals, avoiding nesting
1325         levels), and removed invocation of free (since we're aborting
1326         anyway).
1327
1328 2008-04-11  Alexander Dergachev  <cy6erbr4in@gmail.com>
1329
1330         * utils.c (aprintf): Now we are setting limits (1 Mb) for text
1331         buffer when we use non-C99 vsnprintf.
1332
1333 2008-04-11  Micah Cowan  <micah@cowan.name>
1334
1335         * ftp.c (getftp, ftp_loop_internal): Don't append to an existing
1336         .listing when --continue is used.  Fixes bug #22825. Thanks to
1337         Rabin Vincent <rabin@rab.in> for pointing the way with a
1338         suggested fix!
1339
1340 2008-04-10  Alexander Dergachev  <cy6erbr4in@gmail.com>
1341
1342         * xmalloc.c, xmalloc.h (memfatal): Now exported; accepts an
1343         "unknown" value for the attempted allocation size.
1344         * utils.c (aprintf): Now calls memfatal, instead of aborting.
1345
1346 2008-03-19  Micah Cowan  <micah@cowan.name>
1347
1348         * utils.c (test_dir_matches_p): More tests related for
1349         dir_matches_p.
1350
1351 2008-03-17  Micah Cowan  <micah@cowan.name>
1352
1353         * connect.c: Include sys/time.h to support use of the select
1354         function on older systems.
1355
1356 2008-02-11  Benno Schulenberg  <bensberg@justemail.net>
1357
1358         * http.c: More accurate and descriptive messages for when a file
1359         won't be retrieved during spider-mode.
1360
1361 2008-02-10  Micah Cowan  <micah@cowan.name>
1362
1363         * http.c: Added existence_checked member to the http_stat
1364         struct.
1365         (gethttp): Mark hs->existence_checked when we've checked whether
1366         a file-to-download exists; so we don't check it again if the
1367         connection gets lost (and potentially pick a new "unique" name).
1368         This fixes bug 22251.
1369         * progress.c (create_image): Add space for an extra column in
1370         the "eta" portion of the progress bar image; to deal with
1371         too-long Czech translation.
1372         * main.c, http.c, init.c: Added --auth-no-challenge option, to
1373         bring back 1.10.2 unsafe auth behavior when needed. This fixes
1374         bug #22242.
1375
1376 2008-02-07  Micah Cowan  <micah@cowan.name>
1377
1378         * progress.c (create_image): Remove assertion on exceeding
1379         screen width, which given the less-than-robust code there, can
1380         be broken by a number of factors (such as large file downloads).
1381
1382 2008-02-06  Micah Cowan  <micah@cowan.name>
1383
1384         * progress.c (countcols): Use strlen() when mbtowc or wcwidth
1385         not available (or not using NLS).
1386         * utils.c: Ensure we use single-byte separators when not doing
1387         NLS progress-bars.
1388         * wget.h: Determine whether to use NLS for progress-bars, based
1389         on whether wcwidth and mbtowc are available.
1390
1391 2008-02-03  Micah Cowan  <micah@cowan.name>
1392
1393         * progress.c (create_image): Use number of characters/columns
1394         consumed, rather than number of bytes, to determine how much of
1395         a line we've used. Fixes assertion errors and field alignment
1396         bugs (#22161, #20481)
1397         (get_eta, count_cols): Added to support the changes for
1398         create_image.
1399         * http.c (http_loop): Put no-clobber logic back into http_loop,
1400         before starting to fetch, for when we're not doing
1401         content-disposition.
1402
1403 2008-01-31  Micah Cowan  <micah@cowan.name>
1404
1405         * http.c (gethttp): Don't derive hs->contlen from possibly
1406         invalid/missing Content-Length; instead, get the appropriate
1407         value from the Content-Range header values.
1408         (parse_content_range): Handle '*' instance-length field.
1409
1410 2008-01-25  Micah Cowan  <micah@cowan.name>
1411
1412         * main.c: Added notes to translators regarding (C), diacritics
1413         in names.
1414         * Makefile.am, cmpt.c, connect.c, connect.h, convert.c,
1415         cookies.c, cookies.h, ftp-basic.c, ftp-ls.c, ftp-opie.c, ftp.c,
1416         ftp.h, gen-md5.c, gen-md5.h, gnutls.c, hash.c, hash.h, host.c,
1417         host.h, html-parse.c, html-parse.h, html-url.c, http-ntlm.c,
1418         http-ntlm.h, http.c, http.h, init.c, init.h, log.c, log.h,
1419         main.c, mswindows.c, mswindows.h, netrc.c, netrc.h, openssl.c,
1420         options.h, progress.c, progress.h, ptimer.c, ptimer.h, recur.c,
1421         recur.h, res.c, res.h, retr.c, retr.h, spider.c, spider.h,
1422         ssl.h, sysdep.h, test.c, test.h, url.c, url.h, utils.c,
1423         utils.h, wget.h, xmalloc.c, xmalloc.h: Updated copyright year.
1424
1425 2007-12-10  Micah Cowan  <micah@cowan.name>
1426
1427         * main.c: The option is --content-disposition, not
1428         --no-content-disposition (at the moment).
1429
1430 2007-12-08  Hrvoje Niksic  <hniksic@xemacs.org>
1431
1432         * ftp.c (ftp_retrieve_glob): Print both arguments of fnmatch in
1433         fnmatch error message.
1434         (ftp_retrieve_glob): Don't match with fnmatch if we're only
1435         supposed to get one file.
1436
1437 2007-12-07  Micah Cowan  <micah@cowan.name>
1438
1439         * Makefile.am: Plug in vars to include stuff from
1440         $(top_srcdir)/md5 when appropriate.
1441
1442 2007-12-05  Micah Cowan  <micah@cowan.name>
1443
1444         * utils.c (subdir_p): Handle the case where d1 is "".
1445         * convert.c (convert_all_links): Don't return without
1446         deallocating timer.
1447
1448 2007-11-28  Micah Cowan  <micah@cowan.name>
1449
1450         * Makefile.am, cmpt.c, connect.c, connect.h, convert.c,
1451         convert.h, cookies.c, cookies.h, ftp-basic.c, ftp-ls.c,
1452         ftp-opie.c, ftp.c, ftp.h, gen-md5.c, gen-md5.h, gnutls.c,
1453         hash.c, hash.h, host.c, host.h, html-parse.c, html-parse.h,
1454         html-url.c, http-ntlm.c, http-ntlm.h, http.c, http.h, init.c,
1455         init.h, log.c, log.h, main.c, mswindows.c, mswindows.h,
1456         netrc.c, netrc.h, openssl.c, options.h, progress.c, progress.h,
1457         ptimer.c, ptimer.h, recur.c, recur.h, res.c, res.h, retr.c,
1458         retr.h, safe-ctype.c, safe-ctype.h, spider.c, spider.h, ssl.h,
1459         sysdep.h, test.c, test.h, url.c, url.h, utils.c, utils.h,
1460         wget.h, xmalloc.c, xmalloc.h: Updated license exception for
1461         OpenSSL, per the SFLC.
1462
1463 2007-10-30  Micah Cowan  <micah@cowan.name>
1464
1465         * main.c (main): Declare argv parameter as char **argv, rather
1466         than char *const *argv. This fixes usage of getopt_long,
1467         regardless of whether getopt_long has a constified argv or not.
1468
1469 2007-10-22  Gisle Vanem  <gvanem@broadpark.no>
1470
1471         * mswindows.c: Move INHIBIT_WRAP macro definition up with wget.h
1472         inclusion.
1473
1474 2007-10-18  Steven Schweda  <sms@antinode.org>
1475
1476         * sysdep.h: #include <stdint.h> as well as <inttypes.h>, to work
1477         around a glitch on Tru64 systems.
1478
1479 2007-10-18  Micah Cowan  <micah@cowan.name>
1480
1481         * Makefile.am: version.c should not be distributed. Removed
1482         config-post.h. Add version.c dependency and gnulib include path
1483         for libunittest.a.
1484         * sysdep.h: Got contents of config-post.h
1485         * config-post.h: Removed.
1486         * wget.h: #include "config.h".
1487         * alloca.c, cmpt.c, connect.c, convert.c, cookies.c,
1488         ftp-basic.c, ftp-ls.c, ftp-opie.c, ftp.c, gen-md5.c, gnutls.c,
1489         hash.c, host.c, html-parse.c, html-url.c, http-ntlm.c, http.c,
1490         init.c, log.c, main.c, mswindows.c, netrc.c, openssl.c,
1491         progress.c, ptimer.c, recur.c, res.c, retr.c, spider.c, url.c,
1492         utils.c, xmalloc.c: Use wget.h at very top, and instead of
1493         config.h.
1494
1495 2007-10-15  Micah Cowan  <micah@cowan.name>
1496
1497         * Makefile.am: Remove intermediary hg-id file generation, make
1498         version.c-generation more portable.
1499
1500 2007-10-14  Micah Cowan  <micah@cowan.name>
1501
1502         * cmpt.c, cookies.c, ftp-basic.c, ftp-ls.c, ftp.c, hash.c,
1503         host.c, html-parse.c, html-url.c, http-ntlm.c, http.c, init.c,
1504         log.c, main.c, netrc.c, openssl.c, res.c, url.c, utils.c,
1505         wget.h: Replace uses of ISSPACE, etc with c_isspace, etc.
1506         * gnu-md5.c, gnu-md5.h: Removed, in deference to gnulib.
1507         * Makefile.am: Removed gnu-md5.h from wget_SOURCES.
1508         * gen-md5.c: Changed #inclusion of gnu-md5.h to md5.h (gnulib's).
1509         * recur.c (download_child_p): Print error if unlink of
1510         robots.txt fails.
1511         * main.c (main): --spider or --delete-after now implies
1512         --no-directories (thanks, Josh Williams).
1513
1514 2007-10-14  Joshua David Williams  <yurimxpxman@gmail.com>
1515
1516         * recur.c (download_child_p): Remove robots.txt if
1517         --delete-after or --spider is on.
1518
1519 2007-10-13  Micah Cowan  <micah@cowan.name>
1520
1521         * Makefile.am: Make version.c depend on Wget dependencies (source
1522         files, plus such things as LIBOBJS so we get things like
1523         http-ntlm.c). Removed getopt.[ch], as we're now using gnulib for
1524         these.
1525
1526 2007-10-10  Micah Cowan  <micah@cowan.name>
1527
1528         * http-ntlm.c: Include openssl/opensslv.h explicitly, instead of
1529         hoping it'll be included by accident in openssl/des.h.
1530
1531 2007-10-09  Gisle Vanem  <gvanem@broadpark.no>
1532
1533         * mswindows.c: 'argc' and 'argv' in 'windows_main()' are no longer
1534         needed.  Hence simply the prototype. Free 'exec_name' at exit.
1535
1536 2007-10-09  Micah Cowan  <micah@cowan.name>
1537
1538         * gettext.h: Imported from /usr/share/gettext, fuller handling
1539         of --disable-nls.
1540         * wget.h: Remove logic for handling lack of NLS (now in
1541         gettext.h).
1542         * main.c: Use gettext's ENABLE_NLS rather than HAVE_NLS.
1543         * Makefile.am: added @LIBINTL@ to LIBS (though it probably
1544         belongs in LDADD, along with everything else currently assigned
1545         to LIBS).
1546
1547 2007-10-08  Micah Cowan  <micah@cowan.name>
1548
1549         * http.c (http_loop): Add send_head_first conditional back
1550         around code that needs it, but not around the last-modified
1551         header-parsing stuff this time. Removed no-longer-useful (was it
1552         ever?) restart_loop boolean, continuing unconditionally at end
1553         of send_head_first conditional block (if we haven't jumped out).
1554
1555 2007-10-04  Micah Cowan  <micah@cowan.name>
1556
1557         * http.c (http_loop): We've got_name if content_disposition
1558         support isn't on; make sure we continue properly in that case,
1559         even though we're not sending HEAD.
1560         * Makefile.in: Removed, replaced by Makefile.am.
1561         * Makefile.am: Converted from Makefile.in.
1562
1563 2007-10-02  Gisle Vanem  <gvanem@broadpark.no>
1564
1565         * ftp.c: Use "_listing" for MSDOS (".listing" is illegal).
1566
1567         * url.c: Update comment for 'filechr_not_windows'.
1568
1569         * utils.c: Include <process.h> for 'getpid()' on Watcom.
1570
1571 2007-10-02  Micah Cowan  <micah@cowan.name>
1572
1573         * ftp.c (getftp, ftp_loop_internal), http.c (http_loop), main
1574         (main): Use datetime_str instead of time_str, for those who have
1575         potentially long-running sessions. Based on suggestions by Saso
1576         Tomat <miskox@hotmail.com> and Steven M. Schweda
1577         <sms@antinode.org>.
1578         * http.c (gethttp): Warn about host lookup failures. Adjusted
1579         from Stephen Gildea's patch.
1580
1581 2007-10-02  Stephen Gildea  <stepheng+wget@gildea.com>
1582
1583         * connect.c (connect_to_host): Warn about host lookup failures.
1584
1585 2007-09-25  Micah Cowan  <micah@cowan.name>
1586
1587         * Makefile.in: Use EXEEXT instead of exeext.
1588
1589 2007-09-24  Gisle Vanem  <giva@bgnett.no>
1590
1591         * connect.c, init.c, main.c, openssl.c, options.h, sysdep.h,
1592         url.c, utils.c: Added support for building on MS-DOS.
1593
1594 2007-09-24  Jochen Roderburg  <roderburg@uni-koeln.de>
1595
1596         * http.c (http_zero): Remove no-longer-used local_size variable.
1597         Fixes bug #21057.
1598
1599 2007-09-12  Micah Cowan  <micah@cowan.name>
1600
1601         * http.c (http_loop): Remove send_head_first from condition for
1602         parsing timestamp.
1603
1604 2007-08-29  Micah Cowan  <micah@cowan.name>
1605
1606         * openssl.c (ssl_init): Re un-const-ified the meth local
1607         variable, to match current versions of openssl.
1608         * spider.c: Removed visited_url function, as it may be very
1609         inefficient.
1610         (print_broken_links): Removed traversal of referrers, until such
1611         time as a more efficient implementation can be written.
1612         * spider.h: Replaced declaration of visited_url with an
1613         empty-bodied, function-like macro.
1614
1615 2007-08-27  Gisle Vanem  <giva@bgnett.no>
1616
1617         * mswindows.c (run_with_timeout): Ensure that the correct
1618         conversion specification is used for the return result of
1619         the GetLastError function.
1620         * getopt.c: Fix missing (but, accidentally, legal) comment
1621         delimiter after licensing text.
1622         * recur.c (retrieve_tree): Inserted missing cast for strip_auth.
1623         Includes adjustment by Ralf Wildenhues.
1624         * openssl.c (ssl_init): const-ified the meth local variable.
1625         * main.c: Include all the static function definitions in the
1626         "#ifndef TESTING" clause, leaving just the definitions for
1627         exec_name (not set), and opt.
1628         * utils.c (run_with_timeout): Now returns bool, to align with
1629         declaration in utils.h.
1630
1631 2007-08-27  Micah Cowan  <micah@cowan.name>
1632
1633         * wget.h: Added macro replacement for ngettext, for environs
1634         that lack NLS.
1635
1636 2007-08-26  Micah Cowan  <micah@cowan.name>
1637
1638         * spider.c (print_broken_links): Fixed incorrect plurals msgid
1639         usage, switched to use ngettext function.
1640
1641 2007-08-24  Micah Cowan  <micah@cowan.name>
1642
1643         * http.c (http_loop): Introduced time_came_from_head boolean
1644         flag, to help avoid parsing the same Last-Modified header twice.
1645         Replaced spidering returns of RETRUNNEEDED for some situations,
1646         to RETROK, as otherwise it will be interpreted as an error.
1647         RETRUNNEEDED appears never to be referenced outside of
1648         http.c (and wget.h), and, when returned by gethttp, is
1649         translated by http_loop to RETROK.
1650         * url.c (are_urls_equal): Don't call getchar_from_escaped_string
1651         if u2 is shorter than u1.
1652         (getchar_from_escaped_string): Don't decode reserved characters.
1653         Handle illegally appearing '%'s as literal '%'s. Ensure hex
1654         digits before attempting to decode.
1655         (test_are_urls_equal): Added tests to handle u2 shorter than u1,
1656         and %2f not treated the same as /.
1657         * spider.c (in_url_list_p): Don't call are_urls_equal if one of
1658         them is NULL.
1659
1660 2007-08-23  Joshua David Williams  <yurimxpxman@gmail.com>
1661
1662         * spider.c (in_url_list_p): Removed the bool verbose argument
1663
1664 2007-08-22  Mauro Tortonesi  <mauro@ferrara.linux.it>
1665
1666         * http.c (http_loop): Fall back to GET if HEAD fails with a 500 or 501
1667         error code.
1668
1669 2007-08-21  Mauro Tortonesi  <mauro@ferrara.linux.it>
1670
1671         * http.c (http_loop): Send preliminary HEAD request if -N is given and
1672         the destination file exists already.
1673
1674 2007-08-10  Mauro Tortonesi  <mauro@ferrara.linux.it>
1675
1676         * http.c (http_loop): Fixed HTTP HEAD requests logic when --spider is
1677         given.
1678
1679 2007-08-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1680
1681         * url.c (append_uri_pathel): Do not assume dest string to be
1682         zero-terminated.
1683         (test_append_uri_pathel): Terminate string to fix test failure.
1684
1685 2007-08-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1686
1687         * url.c (url_string): Use comparison, not assignment, in
1688         check for auth_mode == URL_AUTH_HIDE_PASSWD.
1689
1690 2007-08-09  Micah Cowan  <micah@cowan.name>
1691
1692         * http.c (http_loop): If we got a HEAD and then a GET, and the
1693         GET had a timestamp, use that one, not any we may have gotten
1694         from the HEAD.
1695
1696 2007-08-08  Micah Cowan  <micah@cowan.name>
1697
1698         * init.c (defaults): Content disposition will not be default,
1699         since it currently results in extra round-trips.
1700
1701 2007-07-31  Micah Cowan  <micah@cowan.name>
1702
1703         * http.c (gethttp): Set contlen = -1 when we encounter a
1704         negative-valued Content-Length header, so we don't consider it
1705         an internal error later on and call abort().
1706
1707 2007-07-29  Micah Cowan  <micah@cowan.name>
1708
1709         * url.h, url.c (url_string): Replaced bool arg of the url_string
1710         function with enum url_auth_mode, with added option to
1711         completely remove user/pass auth information.
1712         * http.c, ftp.c, url.c, recur.c: Adapted call to url_string
1713         function to fit new usage.
1714         * recur.c (retrieve_tree): Remove auth info from Referer header.
1715
1716 2007-07-28  Micah Cowan  <micah@cowan.name>
1717
1718         * options.h, init.c, retr.c, main.c: renamed opt maxredirect
1719         field to max_redirect, for improved consistency.
1720         * init.c: changed max_redirect parser from cmd_number_inf to
1721         cmd_number, as infinite redirects may not be appropriate.
1722         Alternatively, if cmd_number_inf should be used, then
1723         opt.max_redirect's value should be checked a bit differently in
1724         retr.c, to allow for the "infinite" meaning of zero.
1725
1726 2007-07-25  Micah Cowan  <micah@cowan.name>
1727
1728         * http.c (create_authorization_line)
1729         (basic_authentication_encode, known_authentication_scheme_p)
1730         (load_cookies): Moved declarations up.
1731         (basic_authed_hosts): Added. Tracks what hosts have issued Basic
1732         challenge and been given the global username, password.
1733         (maybe_send_basic_creds): Added. Sends Basic creds for hosts that
1734         have issued Basic challenges.
1735         (register_basic_auth_host): Added. Instantiates
1736         basic_authed_hosts if necessary, then registers the host that
1737         has issued a challenge.
1738         (gethttp) <auth>: Only send authentication credentials after
1739         we've received a challenge from that host. This is a stop-gap
1740         fix until a proper fix can be implemented; still isn't quite
1741         right, as we should only be sending credentials automatically
1742         for authenticated paths and below, and not for the entire host.
1743
1744 2007-07-16  Joshua David Williams  <yurimxpxman@gmail.com>
1745
1746         * options.h: added maxredirect to options struct
1747         * init.c: added maxredirect to list of variables
1748         * retr.c (retrieve_url): replaced MAX_REDIRECTIONS with opt.maxredirect
1749         * main.c: added option --max-redirect
1750
1751 2007-07-16  Joshua David Williams  <yurimxpxman@gmail.com>
1752
1753         * test.h: tests made more verbose; now displays the name
1754         of each test run.
1755
1756 2007-07-10  Mauro Tortonesi  <mauro@ferrara.linux.it>
1757
1758         * http.c (http_loop): Fixed the HTTP requests logic. Now it skips the
1759         preliminary HEAD request if either -O or --no-content-disposition are
1760         given, and neither --spider and -N are given.
1761
1762 2007-07-05  Micah Cowan  <micah@cowan.name>
1763
1764         * cmpt.c, connect.c, connect.h, convert.c, convert.h:
1765         * cookies.c, cookies.h, ftp-basic.c, ftp.c, ftp.h, ftp-ls.c:
1766         * ftp-opie.c, gen-md5.c, gen-md5.h, getopt.c, getopt.h, gnu-md5.c:
1767         * gnu-md5.h, gnutls.c, hash.c, hash.h, host.c, host.h:
1768         * html-parse.c, html-parse.h, html-url.c, http.c, http.h:
1769         * http-ntlm.c, http-ntlm.h, init.c, init.h, log.c, log.h, main.c:
1770         * Makefile.in, mswindows.c, mswindows.h, netrc.c, netrc.h:
1771         * openssl.c, options.h, progress.c, progress.h, ptimer.c:
1772         * ptimer.h, recur.c, recur.h, res.c, res.h, retr.c, retr.h:
1773         * safe-ctype.c, safe-ctype.h, spider.c, spider.h, ssl.h, sysdep.h:
1774         * test.c, test.h, url.c, url.h, utils.c, utils.h, wget.h:
1775         * xmalloc.c, xmalloc.h:
1776         Updated GPL reference to version 3 or later, removed FSF
1777         address.
1778
1779 2007-07-04  Mauro Tortonesi  <mauro@ferrara.linux.it>
1780
1781         * http.c (http_loop): Skip HEAD request and start immediately with GET
1782         if -O is given.
1783
1784 2007-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
1785
1786         * http.c (print_server_response): Escape non-printable characters
1787         in server respone.
1788
1789 2007-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
1790
1791         * netrc.c: Don't make netrc_list static, as it prevents
1792         compilation with DEBUG_MALLOC.
1793
1794         * utils.c (aprintf): Don't use vasprintf when DEBUG_MALLOC is
1795         requested because, in that case, we want the calls to malloc to be
1796         coming from us.
1797
1798 2007-01-23  Hrvoje Niksic  <hniksic@xemacs.org>
1799
1800         * cookies.c (parse_set_cookie): Would erroneously discard cookies
1801         with unparsable expiry time.
1802
1803 2007-01-23  Hrvoje Niksic  <hniksic@xemacs.org>
1804
1805         * progress.c (create_image): Check for ETA overflow.
1806         (print_row_stats): Ditto.
1807
1808 2007-01-09  Mauro Tortonesi  <mauro@ferrara.linux.it>
1809
1810         * init.c (cmd_spec_prefer_family): Small fix to get rid of a gcc
1811         warning about strict-aliasing violation.
1812
1813 2007-01-09  Steven M. Schweda  <sms@antinode.org>
1814
1815         * ftp-basic.c (ftp_syst): Fixed segfault if response text is missing.
1816
1817 2006-12-29  Gisle Vanem  <giva@bgnett.no>
1818
1819         * mswindows.c: Avoid a warning if 'ws_hangup()' is unused.
1820
1821 2006-12-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
1822
1823         * http.c (parse_content_disposition): Consider directory prefix, if
1824         specified.
1825
1826 2006-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
1827
1828         * retr.c (retrieve_from_file): Ditto.
1829         (url_uses_proxy): New function.
1830
1831         * main.c (main): Don't check for opt.use_proxy when deciding
1832         whether to call retrieve_url or retrieve_tree; check whether the
1833         proxy would be used for *this* URL.
1834
1835 2006-10-17  Mike Grant  <mggr@pml.ac.uk>
1836
1837         * ftp.c (ftp_loop_internal): Would incorrectly skip changing
1838         working directory when retrying after a failed FTP attempt.
1839         Originally reported by Nate Eldredge.
1840
1841 2006-10-12  Mauro Tortonesi  <mauro@ferrara.linux.it>
1842
1843         * convert.c (downloaded_file): Fixed bug which used to break -E -k -K
1844         mode.
1845
1846 2006-08-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
1847
1848         * http.c: #include'd spider.h to get rid of compiler warnings.
1849
1850         * main.c: Ditto.
1851
1852         * recur.c: Ditto.
1853
1854 2006-08-24  Mauro Tortonesi  <mauro@ferrara.linux.it>
1855
1856         * Makefile.in: Added spider.c to the list of files to compile and
1857         spider.h to the list of header files. Updated copyright information.
1858
1859         * http.c: Major changes to recursive spider mode. Now for every
1860         resource we are supposed to check, we send a HEAD request to find out
1861         if it exists. If the resource is a HTML file, we retrieve it and parse
1862         it to discover links to other resources.
1863
1864         * recur.c: Ditto.
1865
1866         * res.c (res_retrieve_file): Disable opt.timestamping and opt.spider
1867         when retrieving robots.txt. Updated copyright information.
1868
1869         * convert.c: Moved code tracking broken links to spider.c.
1870
1871         * convert.h: Ditto.
1872
1873         * spider.c: Created new file to keep track of visited URLs in spider
1874         mode.
1875
1876         * spider.h: Ditto.
1877
1878 2006-08-21  Mauro Tortonesi  <mauro@ferrara.linux.it>
1879
1880         * http.c: Fixed timestamping-related bug.
1881
1882 2006-08-16  Mauro Tortonesi  <mauro@ferrara.linux.it>
1883
1884         * http.c: Fixed bug which broke --continue feature. Now if -c is
1885         given, http_loop sends a HEAD request to find out the destination
1886         filename before resuming download.
1887
1888 2006-08-08  Hrvoje Niksic  <hniksic@xemacs.org>
1889
1890         * utils.c (datetime_str): Avoid code repetition with time_str.
1891
1892 2006-07-21  Hrvoje Niksic  <hniksic@xemacs.org>
1893
1894         * init.c (commands): Correctly place "contentdisposition".
1895
1896 2006-07-14  Mauro Tortonesi  <mauro@ferrara.linux.it>
1897
1898         * sysdep.h: If intptr_t isn't defined, simply typedef it to long.
1899
1900         * http.c: Added explicit cast to int in logprintf call to remove
1901         compiler warnings on 64-bit platforms.
1902
1903         * connect.c: Added a few casts to intptr_t to remove compiler warnings
1904         on 64-bit platforms.
1905
1906         * main.c: Disable -r, -p and -N when -O is used. Disable -k when -O is
1907         used and multiple URLs are given. Update maintainer information.
1908
1909         * all: Update copyright information.
1910
1911 2006-07-10  KJKHyperion  <hackbunny@reactos.com>
1912
1913         * url.c (filechr_table): Mark DEL (0x7f) as a control character
1914         and | as a character Windows can't handle.
1915
1916 2006-06-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
1917
1918         * res.c: Implemented is_robots_txt_url function for detection of
1919         robots.txt URLs and related test routine.
1920
1921         * res.h: Ditto.
1922
1923         * url.c: Implemented are_urls_equal function for URL comparison and
1924         related testing routine.
1925
1926         * url.h: Ditto.
1927
1928         * convert.c: Fixes for recursive spider mode: don't consider
1929         non-existing robots.txt as a broken link, and use are_urls_equal
1930         instead of strcasecmp for referrer URLs comparison.
1931
1932         * test.c: Call tests routines for are_urls_equal and
1933         is_robots_txt_url.
1934
1935 2006-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
1936
1937         * wget.h (wgint): Typedef to any 64-bit (or larger) type we can
1938         find, not necessarily off_t or long.
1939
1940 2006-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
1941
1942         * cmpt.c (strtoll): Check for overflow and underflow without
1943         relying on (technically) undefined behavior.  Don't assume that
1944         strtoll_type is 64 bits wide.
1945
1946 2006-06-21  Hrvoje Niksic  <hniksic@xemacs.org>
1947
1948         * utils.c (base64_encode): Cast void pointer to char * before
1949         doing arithmetic.
1950
1951 2006-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
1952
1953         * utils.c (base64_encode): Made TBL const.
1954         (base64_decode): Made the base64_char_to_value table const.
1955
1956 2006-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
1957
1958         * utils.c (base64_encode): Made the DATA pointer void * so the
1959         callers can pass it any kind of pointer (including both signed and
1960         unsigned char pointers).
1961         (base64_decode): Ditto for DEST.
1962
1963 2006-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
1964
1965         * utils.c (base64_encode): Would read past end of STR.
1966         Reported by rick@eckle.org.
1967
1968 2006-06-13  Mauro Tortonesi  <mauro@ferrara.linux.it>
1969
1970         * options.h (struct options): Introduced member restrict_files_case to
1971         keep track of preferences on character case restrictions for
1972         filenames.
1973
1974         * init.c: Modified defaults and cmd_spec_restrict_file_names to
1975         support character case restrictions for filenames. Added
1976         test_cmd_spec_restrict_file_names unit test.
1977
1978         * url.c: Modified append_uri_pathel to support character case
1979         restrictions for filenames. Added test_append_uri_pathel unit test.
1980
1981         * test.c: Added test_cmd_spec_restrict_file_names and
1982         test_append_uri_pathel to the list of unit tests to run.
1983
1984 2006-06-12  Mauro Tortonesi  <mauro@ferrara.linux.it>
1985
1986         * retr.c (retrieve_from_file): Use retrieve_tree and automatically
1987         turn on opt.follow_ftp in case of recursive FTP retrieval through HTTP
1988         proxy.
1989
1990         * main.c: Automatically turn on opt.follow_ftp in case of recursive
1991         FTP retrieval through HTTP proxy.
1992
1993 2006-06-12  Tony Lewis  <tlewis@exelana.com>
1994
1995         * main.c: Improved CHEN Peng's patch by proposing a simpler logic.
1996
1997 2006-06-12  CHEN Peng  <chenpeng@alumni.nus.edu.sg>
1998
1999         * main.c: Use retrieve_tree in case of recursive FTP retrieval through
2000         HTTP proxy.
2001
2002 2006-05-25  Mauro Tortonesi  <mauro@ferrara.linux.it>
2003
2004         * convert.c: Added mechanisms to keep track broken links.
2005
2006         * convert.h: Ditto.
2007
2008         * wget.h: Reordered and enumerated uerr_t constants.
2009
2010         * recur.c: Fixes to support recursive spider mode.
2011
2012         * http.c: Ditto.
2013
2014         * main.c: Print broken links in case of recursive spider mode.
2015
2016         * retr.c: Changed interface of retrieve_url.
2017
2018         * retr.h: Ditto.
2019
2020         * ftp.c: Changed interface of ftp_loop.
2021
2022         * ftp.h: Ditto.
2023
2024         * res.c: Minor change to reflect changes in interface of retrieve_url.
2025
2026 2006-05-18  Lawrence Jones  <lawrence.jones@ugs.com>
2027
2028         * ftp-ls.c (ftp_parse_unix_ls): Correct size parsing, add size
2029         and filename debugging output.
2030
2031 2006-04-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
2032
2033         * http.c: If Content-Disposition header is present, allow unique
2034         filename generation unless -nc is given. Permit to disable parsing of
2035         Content-Disposition header.
2036
2037         * options.h: Added option --no-content-disposition to disable parsing
2038         of HTTP Content-Disposition header.
2039
2040         * init.c: Ditto.
2041
2042         * main.c: Ditto.
2043
2044 2006-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
2045
2046         * hash.c (TOLOWER): Wrap macro arg in parentheses.
2047
2048 2006-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
2049
2050         * http.c (parse_content_disposition): Doc fix.
2051
2052 2006-03-15  Mauro Tortonesi  <mauro@ferrara.linux.it>
2053
2054         * utils.c: Restricted operational semantics of frontcmp and proclist
2055         from generic strings to directory names and them to subdir_p and
2056         dir_matches_p respectively.  Applied George Ogata's one line patch to
2057         restrict algorithm of subdir_p to full directory name matching.  Added
2058         testcases for subdir_p and dir_matches_p.
2059
2060         * utils.h: Changed all frontcmp occurrences to subdir_p.
2061
2062         * recur.c: Ditto.
2063
2064         * test.c: Changed type returned by test functions from char * to const
2065         char *.  Added test_subdir_p and test_dir_matches_p to the list of
2066         tests to run.
2067
2068         * http.c (test_parse_content_disposition): Changed return type from
2069         char * to const char *.
2070
2071 2006-03-14  Mauro Tortonesi  <mauro@ferrara.linux.it>
2072
2073         * recur.c (struct queue_element): Changed type of html_allowed member
2074         to bool.
2075
2076 2006-03-09  Mauro Tortonesi  <mauro@ferrara.linux.it>
2077
2078         * ftp.c (ftp_list): Try `LIST -a' command first and revert to `LIST'
2079         in case of failure.
2080
2081 2006-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
2082
2083         * hash.c (TOLOWER): Fix definition when STANDALONE.
2084         Reported by Beni Serfaty.
2085
2086 2006-03-02  Mauro Tortonesi  <mauro@ferrara.linux.it>
2087
2088         * http.c (http_loop): Fixed recursive HTTP retrieval.
2089
2090 2006-02-28  Hrvoje Niksic  <hniksic@xemacs.org>
2091
2092         * http.c (extract_param): Declare extern so it can be used from
2093         other files.
2094         (extract_param): Return error for empty name.
2095
2096 2006-02-28  Hrvoje Niksic  <hniksic@xemacs.org>
2097
2098         * url.c (find_last_char): Define in terms of memrchr.
2099
2100         * cmpt.c (memrchr): Define it on systems that don't have it.
2101
2102         * http.c (extract_param): New function for parsing header values
2103         with parameters.
2104         (parse_content_disposition): Use it.  Don't allow slashes and
2105         backslashes in the file name.
2106
2107 2006-02-27  Hrvoje Niksic  <hniksic@xemacs.org>
2108
2109         * url.c (path_simplify): Don't preserve ".." at beginning of path.
2110         Suggested by Frank McCown.
2111
2112 2006-02-25  Hrvoje Niksic  <hniksic@xemacs.org>
2113
2114         * http.c (gethttp): Only use FILE.N.html if FILE.html exists.
2115
2116 2006-02-09  Hrvoje Niksic  <hniksic@xemacs.org>
2117
2118         * mswindows.c (run_with_timeout): Made thread_hnd non-static.
2119
2120 2006-02-05  Hrvoje Niksic  <hniksic@xemacs.org>
2121
2122         * retr.c (sleep_between_retrievals): Sleep at a minimum of 1/2 of
2123         the specified wait period.
2124
2125 2006-02-03  Hrvoje Niksic  <hniksic@xemacs.org>
2126
2127         * utils.c (number_to_string): Don't use sprintf for printing
2128         WGINT_MIN; simply divide n by 10 and defer printing the last
2129         digit.
2130         (number_to_string): Removed the SPRINTF_WGINT macro.
2131
2132 2006-02-03  Mauro Tortonesi  <mauro@ferrara.linux.it>
2133
2134         * http.c: Fixed support for Content-Disposition header.
2135
2136         * test.c: Added test_parse_content_disposition to the list of unit
2137         tests to run.
2138
2139 2006-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
2140
2141         * hash.c: Don't define countof if it's already defined.
2142
2143         * hash.c: Obtain the definition of uintptr_t when standalone.
2144
2145 2006-01-30  Mauro Tortonesi  <mauro@ferrara.linux.it>
2146
2147         * http.c: Changed output format. Removed excessively verbose debugging
2148         output.
2149
2150 2005-12-07  Mauro Tortonesi  <mauro@ferrara.linux.it>
2151
2152         * http.c: Fixed pre-download verbose output which was broken by
2153         HTTP code refactoring.
2154
2155 2005-11-23  Mauro Tortonesi  <mauro@ferrara.linux.it>
2156
2157         * http.c: Refactored HTTP code.  If -O is not used, the new code
2158         delays the choice of the file name where the downloaded resource
2159         will be saved until the HTTP headers have been retrieved.
2160         Added support for Content-Disposition header.
2161
2162 2005-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
2163
2164         * hash.c (INVALID_PTR): Use uintptr_t instead of unsigned long.
2165         (hash_pointer): Don't assume a pointer fits in `unsigned long'.
2166
2167 2005-11-02  Mauro Tortonesi  <mauro@ferrara.linux.it>
2168
2169         * Makefile.in: Removed support for unit testing (now it is in
2170         tests/Makefile.in).
2171
2172 2005-10-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
2173
2174         * Makefile.in: Added basic support for unit testing.
2175
2176         * test.c: Ditto.
2177
2178         * test.h: Ditto.
2179
2180 2005-10-13  Daniel Stenberg  <daniel@haxx.se>
2181
2182         * http-ntlm.c (ntlm_output): Fixed buffer overflow vulnerability.
2183
2184 2005-10-09  Russ Allbery  <rra@stanford.edu>
2185
2186         * snprintf.c: Remove round to round_int and pow10 to pow10_int, to
2187         avoid warnings from GCC 4.0.
2188
2189 2005-10-05  Mauro Tortonesi  <mauro@ferrara.linux.it>
2190
2191         * retr.c: Changed semantics of no_proxy_match.
2192
2193 2005-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
2194
2195         * main.c (main): Don't print the summary if nothing has been downloaded.
2196
2197 2005-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
2198
2199         * retr.c (retr_rate): Rename parameter from MSECS to SECS since it
2200         no longer holds milliseconds.
2201
2202 2005-09-01  Hrvoje Niksic  <hniksic@xemacs.org>
2203
2204         * progress.c: Introduce symbolic constants for "magic" values of
2205         0.2 and 0.9, REFRESH_INTERVAL and ETA_REFRESH_INTERVAL.
2206
2207 2005-08-27  Hrvoje Niksic  <hniksic@xemacs.org>
2208
2209         * cmpt.c (strtoll): Correctly handle strtoll("0x", ptr, 0) and
2210         strtoll("0x<nonhexchar>", ptr, 0) -- in both cases *ptr must be
2211         set to the position of 'x', not after it.
2212
2213 2005-08-27  Hrvoje Niksic  <hniksic@xemacs.org>
2214
2215         * hash.c (hash_table_map): Rename to hash_table_for_each and
2216         update callers.
2217         Document the meaning of the callback's return value.
2218         (hash_table_iterate): New function.
2219         (hash_table_iter_next): Likewise.
2220         Update most places that used hash_table_for_each to use the
2221         iteration, which doesn't require a temporary function with
2222         explicit state management.
2223
2224 2005-08-26  Albert Chin  <wget@mlists.thewrittenword.com>
2225
2226         * Makefile.in: Use @datadir@.  Define localedir as $(datadir)/locale.
2227
2228 2005-08-26  Jeremy Shapiro  <jnshapiro@gmail.com>
2229
2230         * openssl.c (ssl_init): Set SSL_MODE_AUTO_RETRY.
2231
2232 2005-08-23  Hrvoje Niksic  <hniksic@xemacs.org>
2233
2234         * host.c (address_list_from_ipv4_addresses): Use IP_INADDR_DATA.
2235
2236 2005-08-12  Hrvoje Niksic  <hniksic@xemacs.org>
2237
2238         * wget.h: Renamed strtoll_return to strtoll_type.
2239
2240 2005-08-11  Hrvoje Niksic  <hniksic@xemacs.org>
2241
2242         * progress.c (eta_to_human_short): Switch to days when printing
2243         more than 48h rather than 100h.  (It's not immediately apparent
2244         how many days there are in 83h.)
2245
2246 2005-08-11  Hrvoje Niksic  <hniksic@xemacs.org>
2247
2248         * cmpt.c (strtoll): Define it if missing on the system and if Wget
2249         needs it.
2250
2251         * mswindows.c (str_to_int64): Move to cmpt.c and rename to strtoll.
2252
2253 2005-08-10  Hrvoje Niksic  <hniksic@xemacs.org>
2254
2255         * host.c (print_address): Always use inet_ntop when IPv6 is
2256         enabled.
2257
2258         * host.h (ip_address): Simplify the data union.
2259
2260 2005-08-09  Hrvoje Niksic  <hniksic@xemacs.org>
2261
2262         * mswindows.c (inet_ntop): Also handle IPv4 addresses for
2263         completeness.
2264
2265 2005-08-09  Hrvoje Niksic  <hniksic@xemacs.org>
2266
2267         * http.c (gethttp): Don't read more than the amount of data
2268         specified by the content-length header.
2269
2270 2005-08-09  Vasil Dimov  <vd@datamax.bg>
2271
2272         * ftp.c (getftp): Don't free RESPLINE if ftp_response returns a
2273         status other than FTPOK.
2274
2275 2005-08-04  Giuseppe Bonacci  <g.bonacci@libero.it>
2276
2277         * ftp-ls.c (ftp_parse_unix_ls): Remember the position of the
2278         previous token instead of backtracking back to it.
2279
2280 2005-07-08  Gisle Vanem  <giva@bgnett.no>
2281
2282         * mswindows.h: Include process.h to get getpid() declaration.
2283
2284 2005-07-08  Hrvoje Niksic  <hniksic@xemacs.org>
2285
2286         * utils.c (aprintf): Use vasprintf where available.
2287
2288 2005-07-08  Hrvoje Niksic  <hniksic@xemacs.org>
2289
2290         * url.c (rewrite_shorthand_url): Simplify code using aprintf and
2291         strspn.
2292
2293 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
2294
2295         * gnutls.c (ssl_check_certificate): Check for the validity of the
2296         presented X509 certificate.
2297
2298 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
2299
2300         * openssl.c (ssl_check_certificate): Print custom error messages
2301         for frequent X509 certificate problems.
2302
2303 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
2304
2305         * mswindows.h: Define an alias for stat and fstat, as requested by
2306         config-compiler.h.
2307         (gai_strerror): Define to windows_strerror if NEED_GAI_STRERROR is
2308         defined.
2309
2310 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2311
2312         * mswindows.h: Use strtoll where available.
2313
2314 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2315
2316         * sysdep.h: Add a full declaration of fnmatch.h.
2317
2318 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2319
2320         * utils.c: Unconditionally include <setjmp.h>.
2321
2322 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2323
2324         * utils.c (fnmatch_nocase): New function.
2325         (proclist): Use it instead of fnmatch when opt.ignore_case is
2326         requested.
2327         (in_acclist): Respect opt.ignore_case.
2328         (frontcmp): Respect opt.ignore_case.
2329
2330         * options.h (struct options): New flag opt.ignore_case.
2331
2332 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2333
2334         * ptimer.c: Measure time in seconds rather than milliseconds.
2335         Adjusted all callers.
2336
2337 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2338
2339         * http.c (gethttp): When freeing MESSAGE, take into account that
2340         it can be NULL.
2341
2342 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2343
2344         * cmpt.c (timegm): Handle years after 2099.
2345
2346 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2347
2348         * cmpt.c (timegm): Remove unused variable.
2349
2350 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2351
2352         * cmpt.c (timegm): Don't call mktime; simply count the seconds
2353         between 1970-01-01 and the specified date.
2354
2355 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2356
2357         * wget.h (or): Define HAVE_SSL when either HAVE_OPENSSL or
2358         HAVE_GNUTLS are defined.
2359
2360         * gnutls.c: New file.
2361
2362 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2363
2364         * http.c (gethttp): Don't print the request write error message
2365         twice.
2366
2367 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2368
2369         * openssl.c (openssl_errstr): Instead of always using a large
2370         static buffer, only allocate the error string when there is an
2371         actual error.
2372
2373 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2374
2375         * xmalloc.c (debugging_free): Prefix hex pointer value with "0x"
2376         when printing.
2377
2378 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2379
2380         * utils.c (NEXT_BASE64_CHAR): Rename to NEXT_CHAR and simplify to
2381         get the next non-whitespace character.
2382
2383 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2384
2385         * utils.c (base64_decode): Don't silently tolerate non-base64
2386         non-white-space characters in the base64 stream.
2387
2388 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2389
2390         * connect.c (LAZY_RETRIEVE_INFO): Make last_tick unsigned to match
2391         transport_map_modified_tick.
2392
2393 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2394
2395         * config-post.h (alloca): Updated declaration to not enumerate all
2396         Windows compilers.
2397
2398 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2399
2400         * openssl.c (openssl_errstr): Separate error messages with "; ".
2401
2402 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
2403
2404         * ftp.c (getftp): Ditto.
2405
2406         * http.c (gethttp): Use fd_errstr.
2407
2408         * connect.c (fd_register_transport): Restructure parameters to
2409         include only a single structure that describes transport
2410         implementation.
2411
2412         * openssl.c (openssl_errstr): New function: dump SSL error strings
2413         into a static buffer and return a pointer to the buffer.
2414
2415         * connect.c (fd_errstr): New function; returns transport-specific
2416         error message, or strerror(errno) if transport doesn't supply one.
2417
2418 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
2419
2420         * mswindows.h: Also wrap accept() and listen().
2421
2422 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
2423
2424         * url.c (path_end): Skip separators appropriate for the scheme.
2425         (strpbrk_or_eos): Remove gcc-specific version, as the optimization
2426         it tried to perform no longer applies.
2427
2428 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2429
2430         * host.c: Don't include "connect.h" now that we no longer have
2431         socket_has_inet6.
2432
2433 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2434
2435         * host.c: Remove extraneous definition of netdb.h.
2436
2437 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2438
2439         * http.c (gethttp): Skip error message body in the keep-alive
2440         case.
2441
2442 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2443
2444         * url.c (url_parse): Would crash when parsing fragments.  Support
2445         fragments for FTP URLs too.
2446
2447 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2448
2449         * version.c: Don't use "cvs" in version name, since we're not
2450         using CVS anymore.
2451
2452 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2453
2454         * progress.c (create_image): Ditto.
2455
2456         * retr.c (retr_rate): Display smaller rate numbers with greater
2457         precision.
2458
2459 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2460
2461         * http.c (response_head_terminator): Minor optimization.
2462
2463         * retr.c (fd_read_hunk): Call terminator with pointer to the start
2464         of the data and the pointer to the current data.  Changed all
2465         callers.
2466
2467 2005-07-01  Hrvoje Niksic  <hniksic@xemacs.org>
2468
2469         * url.c (url_parse): Make sure u->params is not initialized for
2470         http/https URLs.
2471         (url_parse): Don't crash on garbage following []-delimited IPv6
2472         addresses.
2473
2474 2005-07-01  Hrvoje Niksic  <hniksic@xemacs.org>
2475
2476         * main.c (print_help): Don't refer to the non-existent -nr in
2477         description of --mirror.
2478
2479 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
2480
2481         * host.c (pretty_print_address): Renamed to just print_address.
2482         Clarify documentation.
2483
2484 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
2485
2486         * http.c (gethttp): Explicitly document the different cases when
2487         generating the Host header.
2488
2489 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
2490
2491         * host.c (pretty_print_address): Handle error result from
2492         inet_ntop.
2493
2494 2005-06-30  Gisle Vanem  <giva@bgnett.no>
2495
2496         * mswindows.c (inet_ntop): New function.  Print IPv6 addresses
2497         using WSAAddressToString.
2498
2499 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2500
2501         * progress.c (dot_update): Remove unused variable row_qty.
2502
2503 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2504
2505         * main.c: Check for both SIGHUP and SIGUSR1 before using them.
2506
2507 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2508
2509         * utils.c: Unconditionally include locale.h.
2510
2511 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2512
2513         * ptimer.c: Include sys/time.h to get struct timeval.
2514
2515 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2516
2517         * wget.h: Remove obsolete definition of with_thousand_seps_sum.
2518
2519 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2520
2521         * gnu-md5.h: Unconditionally include limits.h.
2522
2523 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2524
2525         * utils.c (random_number): Use lrand48 if available.
2526         (random_float): Use drand48 if available.
2527
2528 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2529
2530         * main.c (secs_to_human_time): Use print_decimal when printing
2531         total download time in seconds.
2532
2533         * progress.c (print_row_stats): Use it to print total download
2534         time at the end of the download.
2535         (create_image): Ditto.
2536
2537         * utils.c (print_decimal): New function; print small decimal
2538         numbers with more precision than large ones.
2539
2540         * progress.c (print_row_stats): New function.  Print ETA after the
2541         download rate at the end of each row.
2542
2543 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
2544
2545         * init.c (parse_line): Check for alphanumerics.
2546
2547 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
2548
2549         * (dot_create): Remove unnecessary casts.
2550
2551 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
2552
2553         * ftp.c (getftp): Delete trailing newlines from LIST output so
2554         lines don't come out with trailing \015\012 with -S.
2555
2556 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2557
2558         * mswindows.h: Remove superfluous includes.
2559
2560 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2561
2562         * config-post.h (alloca): Amend alloca declaration to take care of
2563         all Win32 compilers, not just MSVC and MinGW.
2564
2565 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2566
2567         * utils.c (get_grouping_data): Force separator to "." rather than
2568         " " when "," is taken.
2569
2570 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2571
2572         * wget.h (PTR_FORMAT): Cast the result of sizeof to int before
2573         passing it to printf's %*.
2574
2575         * retr.h: Declare output_stream and output_stream_regular.
2576
2577         * ftp.h: Declare ftp_last_respline.
2578
2579         * convert.h: Declare dl_url_file_map.
2580
2581         * http.h: New file.
2582
2583 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2584
2585         * cookies.c: Make cookies_now static.
2586
2587 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2588
2589         * utils.c (human_readable): Remove intermediary cast to long; MSVC
2590         has problems casting *unsigned* __int64 to double.
2591
2592 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2593
2594         * sysdep.h: Use the system-provided fnmatch by default.
2595
2596 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2597
2598         * http.c (mktime_from_utc): Renamed to timegm and moved to cmpt.c.
2599         Don't compile it if GNU timegm is available.
2600         (http_atotm): Use timegm.
2601
2602 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2603
2604         * http.c (http_atotm): Correctly query the old locale value.
2605
2606 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2607
2608         * config-post.h (alloca): Don't #define alloca under MinGW32,
2609         which defines it in malloc.h, included from mswindows.h.
2610
2611 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2612
2613         * utils.c (get_grouping_data): Force the use of separators in C
2614         locale.
2615
2616 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2617
2618         * main.c (i18n_initialize): Set all locale categories.
2619
2620         * http.c (http_atotm): Temporarily set locale to "C".
2621
2622 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2623
2624         * http.c (gethttp): Improve "POST data file missing" error
2625         message.
2626
2627 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2628
2629         * progress.c (set_progress_implementation): Type COLON as const
2630         char *.
2631
2632 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2633
2634         * utils.c (with_thousand_seps): Handle negative numbers.
2635
2636 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2637
2638         * progress.c (create_image): Mark the "eta" string for translation.
2639
2640 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2641
2642         * html-url.c (get_urls_file): Don't explicitly set entry->next to
2643         NULL since entry is already zeroed out.
2644
2645 2005-06-26  Gisle Vanem  <giva@bgnett.no>
2646
2647         * mswindows.h: Define gai_strerror under MinGW.
2648
2649 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2650
2651         * utils.c (with_thousand_seps): Correctly implement thousand seps
2652         consisting of more than one character.
2653
2654 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2655
2656         * main.c (secs_to_human_time): Ditto.
2657
2658         * progress.c (create_image): Print more exact duration of very
2659         short downloads.
2660
2661         * main.c (secs_to_human_time): Don't translate time suffixes "h",
2662         "m", and "s", which are not strictly SI, but are "accepted for use
2663         with SI".
2664         (secs_to_human_time): Print really small intervals as 0s, not
2665         0.00s.
2666
2667 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2668
2669         * config-post.h: Replace the alloca declaration with the one from
2670         the latest Autoconf manual.  This should remove a warning with GCC
2671         on AIX.
2672
2673 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2674
2675         * ftp.c (getftp): Always invoke SIZE, not only when continuing a
2676         download.
2677
2678         * main.c (main): Ditto here.
2679
2680         * progress.c (create_image): When the download is finished, print
2681         how long it took.
2682
2683 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2684
2685         * main.c (main): Print the downloaded and quota amounts with the
2686         "human_readable" function.
2687
2688         * ftp.c (print_length): Ditto.
2689
2690         * http.c (gethttp): Don't display thousand separators.
2691
2692         * utils.c (with_thousand_seps): Rewritten to respect locale
2693         settings and to be type size agnostic.
2694
2695 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2696
2697         * utils.c (human_readable): Divide with 1024 instead of shifting
2698         so the operation can work with non-integer N.
2699
2700 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2701
2702         * progress.c (eta_to_human): New logic for more human-readable
2703         ETA.
2704
2705 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2706
2707         * utils.c (with_thousand_seps_sum): Decrease buffer size so it
2708         cannot overrun add_thousand_seps's buffer.
2709
2710 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2711
2712         * utils.c (SPRINTF_WGINT): The correct format is %I64d, not just
2713         %I64.
2714
2715 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2716
2717         * http.c (http_loop): Don't warn about wildcards in HTTP URLs if
2718         globbing isn't requested in the first place.
2719
2720         * retr.c (retrieve_url): Temporarily turn off globbing when
2721         processing HTTP->FTP redirects.
2722
2723 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2724
2725         * utils.c (with_thousand_seps_sum): Now defined only if
2726         SUM_SIZE_INT is double.
2727
2728         * wget.h (SUM_SIZE_INT): Instead of bothering with long, long
2729         long, __int64, and friends, simply either use wgint or double, end
2730         of story.  Since we know how to print either, we no longer need
2731         LARGE_INT_FMT.
2732
2733         * sysdeps.h (LARGE_INT): Renamed to SUM_SIZE_INT to better reflect
2734         its intent, and moved to wget.h.
2735
2736 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2737
2738         * Makefile.in: No need to clean .libs.
2739
2740 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2741
2742         * cookies.c (parse_set_cookies): Cast pointer subtraction to int
2743         before using it with %d; AIX compiler warns on this.
2744         Reported by Jens Schleusener.
2745
2746 2005-06-24  Hrvoje Niksic  <hniksic@xemacs.org>
2747
2748         * http.c (gethttp): Don't prepend / here.
2749
2750         * cookies.c (cookie_handle_set_cookie): Prepend / to PATH.
2751         (cookie_header): Ditto.
2752
2753 2005-06-24  Hrvoje Niksic  <hniksic@xemacs.org>
2754
2755         * init.c: opt.verbose must be declared as int.
2756
2757 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
2758
2759         * cmpt.c (strpbrk): Removed.
2760         (mktime): Removed.
2761         Include <time.h>.
2762
2763 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
2764
2765         * utils.c (read_file): Ditto.
2766
2767         * main.c (main): Use struct_fstat.
2768
2769         * mswindows.h (struct_fstat): Define a struct_fstat to deal with
2770         the fact that Borland 5.5 has 64-bit stat, but not 64-bit fstat!
2771
2772 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
2773
2774         * sysdep.h: Remove code that deals with Watcom.
2775
2776 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2777
2778         * all: Use bool instead of int and false/true instead of 0/non-0
2779         for boolean variables and values.
2780
2781 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2782
2783         * sysdep.h: Include the stdbool.h/_Bool/bool blurb from Autoconf.
2784
2785 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2786
2787         * init.c (cmd_lockable_boolean): Removed.
2788
2789 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2790
2791         * cookies.c (struct cookie): Use 1-bit bitfields for booleans
2792         which makes the structure takes less space at no cost in
2793         complexity.
2794
2795 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2796
2797         * Makefile.in ($(OBJ)): Add the config.h dependency.
2798
2799 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2800
2801         * openssl.c, connect.c, host.c: Replace instances of #ifdef
2802         ENABLE_DEBUG if (opt.debug) {...} #endif with IF_DEBUG {...}.
2803
2804         * main.c: Rename the IF_DEBUG defined here to WHEN_DEBUG.
2805
2806         * wget.h (IF_DEBUG): New macro.
2807         (DEBUGP): Define in terms of IF_DEBUG.
2808
2809 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2810
2811         * http.c (gethttp): Only handle --set-cookies (and assert that
2812         cookie jar exists) if opt.cookies is true.  Failure to do so
2813         triggered the assert when --no-cookies was used and the server
2814         sent a Set-Cookie header.  Ouch!
2815
2816 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2817
2818         * connect.c (select_fd): Expect select() to exist.
2819
2820         * utils.c (xsleep): Always use select() as sleep fallback on
2821         non-Windows platforms.
2822
2823         * ptimer.c: Delete the implementation of PTIMER_TIME.
2824
2825         * main.c: Assume existence of signal(), test for different signal
2826         names instead.
2827
2828         * cmpt.c: Better document reasons why certain functions are
2829         included.
2830
2831 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
2832
2833         * Makefile.in: Remove the manually maintained dependency list;
2834         make all object files depend on every header.
2835
2836 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
2837
2838         * hash.c: Rename "mapping" to "cell" to avoid confusion with the
2839         term "mapping" (or "map") sometimes being used for the entire hash
2840         table.  Also rename "non-empty" to "occupied" for easier reading
2841         of if (!NON_EMPTY (...)) ... .
2842
2843 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
2844
2845         * main.c, ptimer.c, sysdep.h, utils.c: Use #elif to simplify reading of
2846         chained if-else-else-else-... statements.
2847
2848 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
2849
2850         * all: Return type of signal handlers is `void'.  Include signal.h
2851         unconditionally.
2852
2853         * all: Don't explicitly cast values returned by malloc.  We no
2854         longer support ancient compilers that don't declare malloc, and we
2855         never supported C++ builds.
2856
2857 2005-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
2858
2859         * all: Don't declare errno.  Include both time.h and sys/time.h,
2860         as long as sys/time.h exists.  Don't dereference function pointers
2861         when invoking the functions they point to.
2862
2863         * cmpt.c (memmove): Remove function mandated by C89.
2864         (strerror): Ditto.
2865         (strstr): Ditto.
2866
2867         * all: Undo the K&R-ization changes from 2005-05-03.
2868
2869         * all: Remove support for K&R compilers: use C89 function
2870         declarations, remove definition of PARAMS, remove support for
2871         varargs, and remove ansi2knr.  Assume the presence of time.h,
2872         string.h, and other headers mandated by C89.
2873
2874 2005-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
2875
2876         * init.c (cmd_lockable_boolean): Don't recognize literal "2" and
2877         "-1" values; unlike 0 and 1, those should never be exposed to the
2878         user.  Update the error message to be more self-consistent, as
2879         proposed by Benno Schulenberg.
2880
2881 2005-06-18  Hrvoje Niksic  <hniksic@xemacs.org>
2882
2883         * http.c (gethttp): Don't free "head" before using it to save
2884         headers.
2885
2886 2005-06-18  Hrvoje Niksic  <hniksic@xemacs.org>
2887
2888         * http.c (gethttp): When -E is in use, check for file existence
2889         after appending ".html" to the name and modify the file name if
2890         necessary.
2891
2892 2005-06-17  Hrvoje Niksic  <hniksic@xemacs.org>
2893
2894         * connect.c (socket_has_inet6): Removed.
2895
2896         * host.c (lookup_host): Don't use the AI_ADDRCONFIG getaddrinfo
2897         hint.
2898
2899 2005-06-16  Hrvoje Niksic  <hniksic@xemacs.org>
2900
2901         * init.c (cmd_lockable_boolean): Improve the error message so it
2902         lists the more useful values first.
2903
2904 2005-06-15  Hrvoje Niksic  <hniksic@xemacs.org>
2905
2906         * http.c (gethttp): Also report the system error when the POST
2907         data file is missing.
2908
2909 2005-06-15  Benno Schulenberg  <benno@nietvergeten.nl>
2910
2911         * ftp.c, http.c, connect.c, cookies.c, html-url.c, init.c, res.c:
2912         Gettext-ize messages that were previously missed.
2913
2914 2005-06-15  Hrvoje Niksic  <hniksic@xemacs.org>
2915
2916         * host.h (ip_address): Remove the trailing comma from the type
2917         enum in the no-IPv6 case.
2918
2919         * main.c (struct cmdline_option): Remove the trailing comma from
2920         the enum.
2921
2922         Reported by Jens Schleusener.
2923
2924 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
2925
2926         * url.c (strpbrk_or_eos): Check for a recent GCC version before
2927         using the statement-as-expression extension.
2928
2929 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
2930
2931         * http.c (gethttp): Don't attempt to "skip short body" if we're
2932         issuing a HEAD request (in which case the response head is not
2933         followed by a body).
2934
2935 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
2936
2937         * init.c (cmd_spec_header): Don't split the string along the
2938         commas using cmd_vector; just append the new value using
2939         vec_append instead.
2940
2941         * utils.c (vec_append): New function.
2942
2943 2005-05-27  Andreas Beckmann  <debian@abeckmann.de>
2944
2945         * html-url.c (tag_handle_link): Mark the content from the <link
2946         src="..."> tag as expecting HTML.
2947
2948 2005-05-24  Hrvoje Niksic  <hniksic@xemacs.org>
2949
2950         * http.c (http_atotm): Document the origin of the "cookie date"
2951         format.
2952
2953 2005-05-21  Hrvoje Niksic  <hniksic@xemacs.org>
2954
2955         * init.c (setval_internal): Report exact command name alongside
2956         the "display name".
2957
2958 2005-05-18  Hrvoje Niksic  <hniksic@xemacs.org>
2959
2960         * cookies.c (update_cookie_field): Explicitly cast -1 to time_t to
2961         cope with systems where time_t is unsigned.
2962
2963         * cookies.c: Remove unnecessary casts to time_t from values
2964         already of that type.
2965
2966 2005-05-17  Hrvoje Niksic  <hniksic@xemacs.org>
2967
2968         * ftp.c (ftp_loop_internal): Same here.
2969
2970         * http.c (http_loop): Don't clobber the file when -c is specified
2971         and the first attempt to retrieve the file fails.
2972
2973 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
2974
2975         * openssl.c (ssl_check_certificate): Print all issues with a
2976         certificate.
2977
2978 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
2979
2980         * ftp-basic.c: Don't xfree() the line returned by ftp_response if
2981         the returned code is not FTPOK.
2982
2983 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
2984
2985         * init.c (cleanup): Don't free the non-existent opt.ftp_acc.  Free
2986         the SSL-related stuff.
2987
2988 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
2989
2990         * ftp.c (print_length): Consistently print \n at end of the
2991         "Length" line.
2992
2993 2005-05-14  Hrvoje Niksic  <hniksic@xemacs.org>
2994
2995         * openssl.c (ssl_connect): Announce the beginning and the end of
2996         the SSL handshake when in debug mode.
2997
2998         * wget.h (PTR_FORMAT): New macro for easier printing of pointer
2999         values.  Use %0*lx along with PTR_FORMAT instead of %p.
3000
3001 2005-05-14  Hrvoje Niksic  <hniksic@xemacs.org>
3002
3003         * http.c (gethttp): Would forget to close the connection when
3004         keep_alive was not used.
3005
3006 2005-05-13  Hrvoje Niksic  <hniksic@xemacs.org>
3007
3008         * openssl.c (pattern_match): Document the code that decides
3009         whether "*" matches ".".
3010
3011 2005-05-12  Hrvoje Niksic  <hniksic@xemacs.org>
3012
3013         * ftp-ls.c (ftp_index): Use %d to print the port number, which is
3014         now int.
3015         From Steven M. Schweda's VMS patches.
3016
3017 2005-05-12  Hrvoje Niksic  <hniksic@xemacs.org>
3018
3019         * url.c (rewrite_shorthand_url): Don't rewrite "https://host" to
3020         "ftp://https//host" when SSL is not used.
3021
3022 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
3023
3024         * openssl.c (ssl_check_server_identity): Renamed to
3025         ssl_check_certificate because it does more than just checking the
3026         server's identity.
3027         (ssl_check_certificate): Tell the user about
3028         --no-check-certificate.
3029
3030 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
3031
3032         * openssl.c (ssl_init): Always use SSL_VERIFY_NONE, so that the
3033         handshake finishes even if the certificate is invalid.  That way
3034         ssl_check_server_identity can provide better diagnostics on why
3035         the verification failed.
3036
3037 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
3038
3039         * openssl.c (pattern_match): New function.
3040         (ssl_check_server_identity): Treat peer certificate common name as
3041         wildcard.
3042
3043 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
3044
3045         * openssl.c (ssl_check_server_identity): Print certificate subject
3046         and issuer.
3047
3048 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
3049
3050         * res.c (res_register_specs): Correctly pass pointers to
3051         hash_table_get_pair.
3052
3053 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
3054
3055         * http.c (gethttp): Call ssl_check_server_identity.
3056
3057         * openssl.c (ssl_check_server_identity): New function, verifies
3058         that the host name in the certificate matches the actual host
3059         name.
3060         (verify_cert_callback): Removed, since it didn't do anything
3061         except returning the preverify_ok argument.
3062
3063         * connect.c (fd_transport_context): Allow retrieval of the context
3064         pointer registered with fd_register_transport.
3065
3066 2005-05-09  Hrvoje Niksic  <hniksic@xemacs.org>
3067
3068         * openssl.c (verify_cert_callback): Renamed from verify_callback.
3069         Always return the received "ok" value.  Print the X509 name in
3070         debug mode.
3071         (ssl_init): Enable partial writes in SSL context.
3072
3073 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
3074
3075         * http.c (http_loop): Check for wildcards in the URL path
3076         component, not in the whole URL.
3077
3078         * ftp.c (ftp_loop): Check for wildcards in URL path before
3079         unescaping, so the users can escape globbing metacharacters with %
3080         escapes.
3081
3082 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
3083
3084         * init.c (run_command): Correctly interpret the return value of
3085         parse_line.
3086         (commands): Re-alphabetize.
3087
3088 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
3089
3090         * netrc.c (parse_netrc): Explicitly check for assignment != NULL
3091         to silence warning from Borland C.
3092
3093         * url.c (sync_path): Don't unnecessarily increment p.
3094         (url_parse): Don't unnecessarily set url_encode to NULL just
3095         prior to return from the function.
3096
3097 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
3098
3099         * log.c (escnonprint_internal): Place variable declarations
3100         before other statements.
3101
3102 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
3103
3104         * html-url.c: Include recur.h.
3105
3106         * http.c (request_new): Define as accepting no args.
3107
3108 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
3109
3110         * url.c (strpbrk_or_eos): Made inline.  Use strchr(s, '\0') for
3111         finding the NUL char position.
3112
3113 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
3114
3115         * url.c (decide_copy_method): Renamed to char_needs_escaping.
3116         Since it now returns only two possible values, change it to return
3117         boolean (int).
3118
3119 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
3120
3121         * ftp-basic.c (ftp_request): Prevent newlines in VALUE causing
3122         inadvertent sending of multiple FTP commands.
3123
3124 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
3125
3126         * url.c (decide_copy_method): Never cause reencode_escapes to
3127         decode % escapes; it is too intrusive and breaks some servers.
3128
3129 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
3130
3131         * http.c (gethttp): When tunnelling SSL traffic over proxy with
3132         CONNECT, we're really talking to the remote server directly.
3133         Because of this, the request-line argument must be the URL path
3134         rather than the whole URL, as it would be when using regular
3135         proxies.
3136         Reported by Charles Lane.
3137
3138 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
3139
3140         * init.c (cmd_spec_useragent): Allow empty User-Agent.
3141
3142         * http.c (gethttp): Don't print "unknown authentication scheme"
3143         for failed Basic authentication.
3144         (SET_USER_AGENT): Don't set user-agent if opt.useragent is empty.
3145         (gethttp): Use alloca for allocation of www_authenticate.
3146
3147 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
3148
3149         * main.c (print_help): Fix wording of --secure-protocol help text.
3150
3151 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
3152
3153         * cmpt.c (strstr): Updated from glibc 2.3.5.
3154
3155 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3156
3157         * http.c (http_atotm): Zero out the whole struct tm being passed
3158         to strptime.
3159
3160 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3161
3162         * main.c (main): Propagate option name to setoptval.
3163
3164         * init.c (setoptval): Accept another argument, OPTNAME.  Propagate
3165         that argument as the option name independently of the actual
3166         command, determined by command_by_name(com).
3167
3168 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3169
3170         * init.c (parse_line): Make the return value indicate whether
3171         there was a syntax error or a setter failed.
3172         (run_wgetrc): Return an indication on whether an error has been
3173         encountered.
3174         (initialize): Abort if there have been errors running either
3175         .wgetrc file.
3176
3177 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3178
3179         * log.c (copy_and_escape): Slightly reduce code repetition between
3180         the two loops.
3181
3182 2005-05-05  Charles C.Fu  <ccwf@bacchus.com>
3183
3184         * utils.c (proclist): Strip leading slash when calling fnmatch
3185         too, otherwise wildcard comparisons always fail.
3186
3187 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3188
3189         * utils.c (touch): Set access time to current time.
3190
3191 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3192
3193         * url.c (url_unescape): Don't unescape %00, it effectively
3194         truncates the string.
3195
3196 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3197
3198         * log.c (copy_and_escape): Replace the FOR_URI argument with a
3199         slightly more general mechanism for specifying different kinds of
3200         escape.
3201
3202 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3203
3204         * ftp-basic.c (ftp_response): Fix printing FTP server response.
3205
3206 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3207
3208         * retr.c (limit_bandwidth_reset): Reset sleep_adjust.
3209         (limit_bandwidth): Don't allow huge "adjustment" values that
3210         result from being suspended for a while.
3211
3212 2005-05-04  Hrvoje Niksic  <hniksic@xemacs.org>
3213
3214         * wget.h: If gettext was found but libtintl.h wasn't, declare
3215         gettext's return type to avoid type mismatches.
3216
3217 2005-05-03  Hrvoje Niksic  <hniksic@xemacs.org>
3218
3219         * url.c (url_parse): Rename label `error' to avoid conflict with
3220         identifier.
3221
3222         * retr.c (fd_read_body): Rename label `out' to avoid conflict with
3223         identifier.
3224         (fd_read_hunk): Use explicit double constant.
3225         (retrieve_from_file): Don't use string concatenation.
3226         (sleep_between_retrievals): Make sure xsleep is called with a
3227         `double' argument.
3228         (no_proxy_match): Define as static, like it is declared.
3229
3230         * progress.c (bar_create): Use 0.0 instead of 0 because K&R
3231         compilers can't automatically promote it.
3232
3233         * http-ntlm.c (ntlm_output): Replace \xHH sequences with \OOO for
3234         the sake of old compilers.
3235
3236         * ftp.c (ftp_loop_internal): Don't use string concatenation.
3237
3238         * http.c (request_send): Use explicit double constants when
3239         calling fd_read and fd_write.
3240         (post_file): Ditto.
3241         (gethttp): Ditto.
3242         (skip_short_body): Ditto.
3243
3244         * ftp-basic.c: When calling fd_write, specify the last argument as
3245         a `double' constant for the sake of K&R compilers which don't see
3246         the prototype and therefore can't promote it to double
3247         automatically.
3248
3249         * cookies.c (cookie_jar_load): Rename abort label to abort_cookie
3250         to avoid name conflict in K&R compilers.
3251
3252 2005-04-29  Hrvoje Niksic  <hniksic@xemacs.org>
3253
3254         * ptimer.c (posix_init): Since we allow _POSIX_MONOTONIC_CLOCK==0,
3255         it is not enough to check for _POSIX_MONOTONIC_CLOCK-0, we must
3256         also check for defined(_POSIX_MONOTONIC_CLOCK).
3257
3258 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
3259
3260         * ftp.c, hash.c, connect.c, host.c, http.c: Remove unreached code,
3261         such as "break" following return or abort.
3262
3263 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
3264
3265         * init.c (commands): Wrap the use of opt.random_file in #ifdef
3266         HAVE_SSL.
3267
3268 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
3269
3270         * http.c (gethttp): Correctly set the user agent.
3271
3272 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
3273
3274         * init.c (cmd_spec_useragent): Free the old value of
3275         opt.useragent before setting the new one.
3276
3277 2005-04-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
3278
3279         * main.c: Map --ftp-password, --http-password and --proxy-password to
3280         the new ftppassword, httppassword and proxypassword commands
3281         respectively.  Document the --user and --password options in the help
3282         string.
3283
3284 2005-04-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
3285
3286         * ftp.c: Add support for --user and --password.
3287
3288         * http.c: Add support for --user and --password.
3289
3290         * init.c: Deprecated ftppasswd, httppasswd, login, passwd and
3291         proxypasswd commands.  Added ftppassword, ftpuser, httppassword,
3292         password, proxypassword and user commands.
3293
3294         * main.c: Renamed --ftp-passwd to --ftp-password.  Added --ftp-user,
3295         --http-password, --password, --proxy-password and --user.  Deprecated
3296         --http-passwd and --proxy-passwd.  Added documentation for new options
3297         and removed documentation for deprecated options in the help string.
3298
3299         * options.h (struct options): Added user and passwd members to handle
3300         --user and --password respectively.  Renamed ftp_acc and ftp_pass
3301         members to ftp_user and ftp_passwd for consistency.
3302
3303 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
3304
3305         * main.c (print_help): Advertise "DER", not "ASN1".
3306
3307 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
3308
3309         * openssl.c (init_prng): Disable the weak random seed by default.
3310
3311         * http.c (gethttp): Simplify SSL initialization; disable SSL when
3312         anything goes wrong with the initialization.
3313
3314         * options.h (struct options): New option opt.random_file.
3315
3316 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
3317
3318         * init.c: Wrap private key commands in IF_SSL.
3319
3320 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
3321
3322         * openssl.c (ssl_init): Ditto.
3323
3324         * options.h (struct options): Allow separate specification of key
3325         type and certificate type.
3326
3327         * init.c (cmd_spec_cert_type): Provide a "der" synonym for "asn1"
3328         certificate encoding.
3329
3330 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3331
3332         * openssl.c: Renamed "gen_sslfunc.c" to "openssl.c" and
3333         "gen_sslfunc.h" to "openssl.h".  This reflects the intent of
3334         openssl.c encapsulating the OpenSSL-specific code.
3335
3336 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3337
3338         * init.c: Renamed "closure" (a synonym for context in some
3339         cultures) to "place", which more accurately reflects the usage.
3340
3341 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3342
3343         * gen_sslfunc.c (ssl_init): Use default locations for loading the
3344         certificate bundles.
3345         (ssl_init_prng): Disable the cryptographically weak PRNG
3346         initialization fallback.
3347
3348         * init.c: Renamed SSL command-line arguments and wgetrc commands.
3349         (defaults): Check the server certificate by default.
3350
3351 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3352
3353         * cookies.c (cookie_handle_set_cookie): Delete the part of the
3354         path after the trailing slash.
3355
3356         * http.c (gethttp): Call cookie_handle_set_cookie with path that
3357         begins with '/'.
3358
3359 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3360
3361         * http.c (gethttp): Call skip_short_body only if keep_alive is in
3362         use.
3363         (gethttp): Send the User-Agent header with the CONNECT request as
3364         well.
3365
3366 2005-04-25  Hrvoje Niksic  <hniksic@xemacs.org>
3367
3368         * main.c (option_data): Removed support for the undocumented flag
3369         --use-proxy.
3370
3371 2005-04-25  Hrvoje Niksic  <hniksic@xemacs.org>
3372
3373         * main.c (option_data): Don't treat -Y as a boolean switch; treat
3374         it as a value switch instead, so "-Y off" continues to work.
3375
3376 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
3377
3378         * utils.c (aprintf): Delete unreachable statement.
3379
3380 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
3381
3382         * host.c (cmp_prefer_ipv4): New function.
3383         (cmp_prefer_ipv6): New function.
3384         (lookup_host): Use the appropriate comparator according to
3385         opt.prefer_family.
3386
3387         * init.c: New option prefer_family.
3388
3389         * host.c (is_valid_ipv6_address): Spell NS_* constants in lower
3390         case to avoid clash with system headers.
3391         (lookup_host): Reorder the addresses so that IPv4 ones come first.
3392
3393         * utils.c (stable_sort): New function.
3394
3395 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
3396
3397         * connect.c (retryable_socket_connect_error): Return 0 for
3398         ENETUNREACH and EHOSTUNREACH.
3399
3400 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
3401
3402         * cmpt.c: Reenable the memmove implementation for systems that
3403         lack it.
3404
3405         * http.c (gethttp): Store the "authorized" state of the persistent
3406         connection.
3407         (request_remove_header): New function.
3408         (gethttp): Don't send the "Basic" authentication if the connection
3409         is already authorized.
3410
3411 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
3412
3413         * utils.c (base64_encode): Treat input as unsigned chars.
3414         Required for correct encoding of binary stuff.
3415
3416 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
3417
3418         * http-ntlm.c: Format the function definitions in an
3419         ansi2knr-friendly fashion.
3420
3421 2005-04-22  Hrvoje Niksic  <hniksic@xemacs.org>
3422
3423         * http.c (gethttp): Handle multiple WWW-Authentication headers,
3424         only one of which is recognized.  Those are sent by IIS with NTLM
3425         authorization.
3426         (create_authorization_line): Propagate information whether
3427         authorization is finished.
3428         (gethttp): Only stop authorization when it's really finished, not
3429         after fixed two steps.
3430
3431 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
3432
3433         * gen_sslfunc.c (ssl_init): Fix warning message text; mark the
3434         message as translatable.
3435
3436 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
3437
3438         * main.c (print_help): Print the EGD option outside the cluster of
3439         SSL options.
3440
3441 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
3442
3443         * http-ntlm.c (ntlm_output): Fix setting the domain.
3444         Suggested by Sami Krank.
3445
3446 2005-04-20  Mauro Tortonesi  <mauro@ferrara.linux.it>
3447
3448         * connect.c: Set IPV6_V6ONLY socket option when -6 switch is used.
3449
3450 2005-04-20  FUJISHIMA Satsuki  <sf@FreeBSD.org>
3451
3452         * http.c (request_set_header): Fix the check whether a new header
3453         needs to be allocated.
3454
3455 2005-04-18  Hrvoje Niksic  <hniksic@xemacs.org>
3456
3457         * utils.c (base64_encode): Use the parameter order that makes more
3458         sense.  Return the length of the base64 written.  Updated all
3459         callers.
3460
3461 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
3462
3463         * http.c (request_set_header): Free NAME when VALUE is NULL and
3464         freeing the header name is requested.
3465
3466 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
3467
3468         * snprintf.c (fmtstr): Declare VALUE as const char *.
3469         Based on patch by Russ Allbery.
3470
3471 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
3472
3473         * snprintf.c (fmtfp): More correct handling of significant digit
3474         count with %g -- 0.002 has one significant digit, not three.
3475
3476 2005-04-16  Hrvoje Niksic  <hniksic@xemacs.org>
3477
3478         * retr.c (fd_read_body): Respect read timeout with non-interactive
3479         or no progress gauge -- treat ETIMEDOUT specially only when
3480         progress_interactive.
3481         Reported by FUJISHIMA Satsuki.
3482
3483 2005-04-16  FUJISHIMA Satsuki  <sf@FreeBSD.org>
3484
3485         * http.c (gethttp): Don't use HTTP/1.0 persistent connections over
3486         proxy.
3487
3488 2005-04-16  Hrvoje Niksic  <hniksic@xemacs.org>
3489
3490         * snprintf.c: Use the PARAMS macro to handle prototypes.  Write
3491         function definitions in the ansi2knr-friendly way.
3492         (fmtstr): If string precision is specified, don't read VALUE past
3493         it.
3494         (dopr): Actually print %g and %e formats.
3495         (fmtfp): Fix a bug that caused 0.01 to be printed as 0.1.
3496         (fmtfp): Use LLONG in floating point conversions to be able to
3497         convert more digits.
3498         (fmtfp): Interpret precision as number of significant digits with
3499         %g.
3500         (fmtfp): Omit trailing decimal zeros with %g.
3501
3502         * snprintf.c: Don't include <ctype.h> because none of it is used.
3503         Include strings.h/string.h, as per Autoconf.
3504
3505 2005-04-15  Hrvoje Niksic  <hniksic@xemacs.org>
3506
3507         * ptimer.c: Use _POSIX_TIMERS - 0 > 0, which handles the case when
3508         _POSIX_TIMERS is defined but empty, as well as the case when it is
3509         undefined.  Do the same with the check for _POSIX_MONOTONIC_CLOCK.
3510         Suggested by Larry Jones.
3511
3512 2005-04-15  Hrvoje Niksic  <hniksic@xemacs.org>
3513
3514         * ptimer.c: Check that _POSIX_TIMERS is defined as well as > 0.
3515         Problem reported by Steven M. Schweda.
3516
3517 2005-04-14  Hrvoje Niksic  <hniksic@xemacs.org>
3518
3519         * http.c (skip_short_body): Print the skipped body data in debug
3520         mode.
3521         (skip_short_body): Don't skip more than 4k of body data.
3522         (skip_short_body): Return whether the skipping was successful.
3523         (gethttp): If skip_short_body failed, invalidate the connection.
3524
3525 2005-04-12  Gisle Vanem  <giva@bgnett.no>
3526
3527         * ftp.c (getftp): Ditto.
3528
3529         * http.c (gethttp): Open the output file in binary mode.
3530
3531 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3532
3533         * hash.c: Conditionalize including config.h on HAVE_CONFIG_H
3534         instead of on STANDALONE.
3535
3536 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3537
3538         * gen_sslfunc.c (ssl_print_errors): Made static.
3539         (ssl_print_errors): Eliminate potentially dangerous fixed-size
3540         error buffer.  Passing NULL to ERR_error_string causes it to use
3541         its own static buffer, which is fine for our purposes.
3542
3543         * gen_sslfunc.c: Include gen_sslfunc.h.  Make the declarations of
3544         ssl_init and ssl_conect match the actual definitions.
3545         (ssl_connect): Simply return a boolean, the SSL context is no
3546         longer useful as a return value.
3547
3548         * retr.c: Don't include SSL headers; we don't need them.
3549
3550 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3551
3552         * config-post.h: Don't define _VA_LIST under Solaris; it breaks
3553         compilation with GCC 3.4 under Solaris 10.  (It was defined to
3554         avoid a warning with previous versions of GCC.)
3555
3556 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3557
3558         * xmalloc.c (register_ptr): Warn the user to increase SZ prior to
3559         aborting.
3560
3561 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3562
3563         * convert.c (convert_cleanup): Free converted_files.
3564
3565 2005-04-10  Hrvoje Niksic  <hniksic@xemacs.org>
3566
3567         * wget.h (DEBUGP): Use __builtin_expect to give a hint to GCC that
3568         opt.debug is false in the vast majority of cases.
3569
3570 2005-04-10  Hrvoje Niksic  <hniksic@xemacs.org>
3571
3572         * config-post.h: Declare alloca as void *, not char *.
3573
3574 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
3575
3576         * recur.c (download_child_p): When -p is used, (temporarily)
3577         ignore accept/reject rules for HTMLs, even when they are at the
3578         maximum recursion depth.  That is because with -p we are, if
3579         necessary, overstepping the max. depth to get the requisites.
3580
3581 2004-06-12  Larry Jones <lawrence.jones@ugsplm.com>
3582
3583         * recur.c (download_child_p): Correct the logic in check number 6:
3584         test opt.reclevel (not DEPTH) against INFINITE_RECURSION.
3585
3586 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
3587
3588         * url.c: Use "static const" in preference to "const static".
3589         Sun's cc warns that "storage class after type is obsolescent".
3590
3591         * url.c (urlchr_table): Don't mark ~ as unsafe, too many broken
3592         web sites are confused when ~ is changed to %7E.  Their servers
3593         redirect /%7Efoo/ to /~foo/, which Wget again accesses using %7E,
3594         causing further redirections, therefore looping infinitely.  See
3595         Debian bug #301624 for an example.
3596
3597 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
3598
3599         * alloca.c: Include wget.h to be able to use xmalloc.  In addition
3600         to defining malloc to xmalloc, also define free to xfree.
3601
3602 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
3603
3604         * http-ntlm.c (ntlm_output): Use "char", not "unsigned char" for
3605         ntlmbuf.  Our base64 functions accept char anyway.
3606         (ntlm_output): Join up the format string, since we nominally
3607         support K&R compilers.
3608         (ntlm_output): Ditto.
3609
3610 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3611
3612         * ptimer.c: Use Windows timers under Cygwin, whose POSIX timer
3613         implementation is incomplete.
3614
3615 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3616
3617         * ptimer.c (struct ptimer): Remove the unused initialized field.
3618
3619         * ptimer.c: Renamed function parameters from WT (which used to
3620         stand for wget_timer or wtimer) to PT.
3621
3622 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3623
3624         * ptimer.c (posix_init): Be smarter about choosing clocks.  In
3625         decreasing order of preference, use CLOCK_MONOTONIC,
3626         CLOCK_HIGHRES, and CLOCK_REALTIME.
3627         (ptimer_allocate): Removed.
3628
3629         * ptimer.c: Refactor the code by cleanly separating the
3630         architecture-dependent code from the architecture-independent
3631         code.
3632
3633 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3634
3635         * ptimer.c (ptimer_init): Explicitly check that
3636         _POSIX_MONOTONIC_CLOCK is *both* defined and >=0.  (Undefined
3637         symbols are >=0.)
3638
3639 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3640
3641         * ptimer.c (ptimer_diff): Fix typo affecting Windows build.
3642
3643 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3644
3645         * ptimer.c (ptimer_init): In fact, _POSIX_MONOTONIC_CLOCK needs to
3646         be >= 0.
3647
3648         * ptimer.c (ptimer_init): Check whether _POSIX_MONOTONIC_CLOCK is
3649         defined instead of whether it's greater than 0.  glibc defines it
3650         to 0, but still makes it available via sysconf.
3651
3652 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3653
3654         * mswindows.c (str_to_int64): Rename OVERFLOW and UNDERFLOW to
3655         INT64_OVERFLOW and INT64_UNDERFLOW, since those names are used.
3656
3657 2005-04-07  Hrvoje Niksic  <hniksic@xemacs.org>
3658
3659         * ptimer.c: New file.  Move the "wtimer" functions from utils.c to
3660         this file and rename them to ptimer_.
3661
3662 2005-04-07  Hrvoje Niksic  <hniksic@xemacs.org>
3663
3664         * host.c (NO_ADDRESS): Define NO_ADDRESS only after the system
3665         headers have been included.
3666
3667 2005-04-06  Hrvoje Niksic  <hniksic@xemacs.org>
3668
3669         * http.c (pconn): Include NTLM data, which is per-connection.
3670         (known_authentication_scheme_p): Recognize NTLM authorization.
3671         (create_authorization_line): Call ntlm_input and ntlm_output.
3672
3673         * http-ntlm.c: New file, donated by Daniel Stenberg and originally
3674         written for curl, heavily modified for Wget.
3675
3676         * utils.c (base64_encode): Relocated from http.c, since it is now
3677         used by http-ntlm.c, and will possibly be used elsewhere.
3678         (base64_decode): New function, originally based on code from GNU
3679         recode.
3680
3681 2005-04-02  Hrvoje Niksic  <hniksic@xemacs.org>
3682
3683         * ftp.c (ftp_loop): Ditto.
3684
3685         * ftp-basic.c (ftp_pasv): Use the xzero shorthand for memset(0).
3686         (ftp_lpsv): Ditto.
3687
3688 2005-04-05  Mauro Tortonesi  <mauro@ferrara.linux.it>
3689
3690         * Makefile.in: removed string_t.c from list of source files.
3691
3692 2005-04-04  Mauro Tortonesi  <mauro@ferrara.linux.it>
3693
3694         * string_t.c: Removed.
3695
3696         * string_t.h: Removed.
3697
3698 2005-04-02  Hrvoje Niksic  <hniksic@xemacs.org>
3699
3700         * url.c (rewrite_shorthand_url): Only accept recognized schemes.
3701         That way "foo:80" will correctly be rewritten to "http://foo:80"
3702         instead of left unchanged and ultimately rejected because of
3703         "unsupported scheme foo".
3704
3705 2005-03-31  Hrvoje Niksic  <hniksic@xemacs.org>
3706
3707         * utils.c (number_to_string): Avoid explicit 64-bit constants;
3708         construct them by multiplication at compile-time.
3709
3710         * utils.c, elsewhere: Don't append "L" to 32-bit integer
3711         constants; we aren't really compilable on 16-bit systems anyway.
3712
3713         * hash.c (prime_size): Remove primes larger than 2^31, but include
3714         2^31-1, which is prime.
3715
3716 2005-03-30  Hrvoje Niksic  <hniksic@xemacs.org>
3717
3718         * utils.c (string_set_to_array): New function.
3719
3720         * convert.c: Replace the use of "slists" with sets/hash-tables,
3721         which in fact suit the intended purpose much better.
3722         downloaded_html_list is removed altogether.
3723
3724 2005-03-29  Hrvoje Niksic  <hniksic@xemacs.org>
3725
3726         * ftp.h (enum): Rename GLOBALL, GETALL, and GETONE to
3727         GLOB_GLOBALL, GLOB_GETALL, and GLOB_GETONE to avoid conflict with
3728         Linux headers.
3729
3730 2005-03-29  Hrvoje Niksic  <hniksic@xemacs.org>
3731
3732         * utils.c (numdigit): More correct handling of negative numbers.
3733
3734 2005-03-21  Hrvoje Niksic  <hniksic@xemacs.org>
3735
3736         * http.c (gethttp): Print the human-readable size.
3737
3738         * ftp.c (getftp): Print the human-readable size of the file to be
3739         downloaded.
3740
3741         * utils.c (human_readable): New function.
3742
3743         * utils.c: Renamed "legible" to "with_thousand_seps",
3744         "legible_large_int" to "with_thousand_seps_large", and "legible_1"
3745         to "add_thousand_seps".
3746
3747 2005-03-21  Hrvoje Niksic  <hniksic@xemacs.org>
3748
3749         * http.c (gethttp): Inhibit persistent connections when talking to
3750         proxies, as mandated by RFC 2068.
3751
3752 2005-03-20  Hrvoje Niksic  <hniksic@xemacs.org>
3753
3754         * url.c (unescape_single_char): New function.
3755         (url_escape_dir): Use it to unescape slashes in directory
3756         components.
3757         (url_string): Escape unsafe chars in host name, except for the ':'
3758         charaters, which can appear in IPv6 addresses.
3759
3760         * main.c (main): Don't access the cookie jar directly.
3761
3762         * log.c (escnonprint_internal): Correctly calculate the needed
3763         string size.  Don't forget the buffer's new size after having
3764         reallocated it.
3765         (log_cleanup): New function.  Free the escnonprint ring data.
3766
3767         * init.c (cleanup): Don't free the cookie jar explicitly, it is
3768         now done by http_cleanup.
3769         (cleanup): opt.user_headers is now a vector, free it with
3770         free_vec.
3771
3772         * http.c (gethttp): Make sure to free the request data, the status
3773         message, and the response data before returning from the function.
3774         (save_cookies): New function.
3775         (http_cleanup): Free the cookie jar here.
3776
3777         * hash.c: Renamed string_hash to hash_string and ptrhash to
3778         hash_pointer.  Exported hash_pointer.
3779
3780         * xmalloc.c: Organized malloc_table (previously malloc_debug) as a
3781         simple EQ hash table.  register_ptr and unregister_ptr are now of
3782         O(1) complexity.
3783
3784         * xmalloc.c: Renamed "*_debug" to debugging_* and "*_real" to
3785         checking_*.
3786
3787 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
3788
3789         * utils.c (debug_test_md5): Moved to gen-md5.c.
3790
3791         * mswindows.h: Don't declare inet_ntop, since we don't use it.
3792
3793         * mswindows.h: For consistency, also wrap closesocket, it being
3794         a Winsock call.
3795
3796         * mswindows.h: Don't declare sleep and usleep; we're defining
3797         xsleep now.
3798
3799         * mswindows.h (mkdir): Don't special-case Borland C, _mkdir
3800         works there as well.
3801
3802         * host.c: Don't include winsock header files; the correct ones
3803         are already included by mswindows.h.
3804
3805         * mswindows.c (xsleep): Round toward the nearest millisecond
3806         in an attempt to avoid average short sleeps.
3807
3808         * utils.c (wtimer_granularity): Report correct values for
3809         Windows timers and for high-resolution timers.
3810
3811         * utils.c (wtimer_initialize_once): New function, called to
3812         initialize the timer frequency.
3813
3814         * utils.c: Replace the use of GetSystemTime with high-resolution
3815         counters under Windows.  When high-resolution counters are
3816         unavailable, use GetTickCount().
3817
3818 2005-03-15  Hrvoje Niksic  <hniksic@xemacs.org>
3819
3820         * retr.c (fd_read_body): Undo the 2004-11-18 change.  Instead,
3821         always be "exact".
3822
3823 2005-03-17  Hrvoje Niksic  <hniksic@xemacs.org>
3824
3825         * ftp-basic.c (ftp_login): Don't free the string if ftp_response
3826         returned an error status because the line didn't get allocated in
3827         the first place.
3828
3829 2005-03-15  Hrvoje Niksic  <hniksic@xemacs.org>
3830
3831         * http.c (read_http_response_head): Limit the response size to 64k
3832         bytes.
3833
3834         * retr.c (fd_read_hunk): Accept a MAXSIZE argument that limits the
3835         number of bytes the function is allowed to allocate.
3836         (fd_read_line): Limit the line to 4096 bytes.
3837
3838 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
3839
3840         * wget.h: Include options.h after wgint has been defined.
3841
3842         * options.h (struct options): Declare options processed with
3843         cmd_bytes as wgint, not long.
3844
3845 2005-03-18  Hrvoje Niksic  <hniksic@xemacs.org>
3846
3847         * init.c (cmd_file): Use concat_strings.
3848
3849         * http.c (basic_authentication_encode): Use concat_strings.
3850
3851         * ftp-ls.c (ftp_index): Use concat_strings.
3852
3853         * ftp-basic.c (ftp_request): Use concat_strings.
3854
3855         * utils.c (concat_strings): New function.
3856
3857 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
3858
3859         * init.c (simple_atof): Handle negative numbers; skip whitespace
3860         before the number.
3861         (simple_atoi): Ditto.  Also, check for overflow and underflow.
3862         (cmd_number): Bail out on negative numbers.
3863         (parse_bytes_helper): Ditto.
3864
3865 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3866
3867         * http.c (gethttp): Handle multiple Set-Cookie headers sent by
3868         remote server.
3869
3870 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3871
3872         * init.c (defaults): Use passive FTP by default.
3873
3874 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3875
3876         * mswindows.c: Provide wrappers to Winsock functions that set
3877         errno to WSAGetLastError() in case of failure.  Also provide a
3878         Windows-specific version of strerror.
3879
3880         * mswindows.h: Wrap calls to socket, bind, connect, recv, send,
3881         select, getsockname, getpeername, and setsockopt.
3882
3883 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3884
3885         * url.c (url_parse): Reject port numbers larger than 65535.  We
3886         also check for overflow while parsing port numbers.
3887
3888 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3889
3890         * utils.c (read_file): Don't use wgint for file size; LFS won't
3891         work since the file is mmap'ed as a whole.
3892
3893         * options.h: Don't include stdio.h.
3894
3895         * log.c: Ditto.
3896
3897         * init.c: Disambiguate assignment from non-zero test to avoid
3898         Borland C warning.
3899
3900         * http.c (response_new): Don't needlessly post-increment count.
3901
3902         * hash.c: Include stdio.h.
3903
3904         * gnu-md5.h: Don't include stdio.h.
3905
3906         * getopt.h (struct option): Always use const.
3907
3908         * ftp.c (getftp): Avoid unnecessary assignment to RES to avoid
3909         Borland C warning.
3910
3911         * ftp-ls.c: Disambiguate assignment from non-zero test to avoid
3912         Borland C warning.
3913
3914         * cmpt.c (strptime_internal): Don't initialize rp_backup when
3915         !_NL_CURRENT to avoid Borland C warning.
3916
3917 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3918
3919         * utils.c (fopen_excl): Fix parse error when O_BINARY is
3920         available.
3921
3922 2005-03-05  Hrvoje Niksic  <hniksic@xemacs.org>
3923
3924         * url.c (url_file_name): Don't allow hosts named ".." to be
3925         appended as path elements.
3926
3927 2005-03-03  Hrvoje Niksic  <hniksic@xemacs.org>
3928
3929         * retr.c (retrieve_url): Escape location header.
3930
3931         * http.c (print_server_response_1): Escape server response when
3932         printing it.
3933         (gethttp): Escape host name, status message, location header, and
3934         content type.
3935         (http_loop): Escape error message from server.
3936
3937         * host.c (lookup_host): Escape host name when printing it.
3938
3939         * ftp.c (getftp): Escape user name when printing it.
3940         (getftp): Escape remote file and directory for printing.
3941         (getftp): Escape server listing when printing it.
3942         (ftp_retrieve_list): Escape link name and file name.
3943         (ftp_retrieve_glob): Escape file name.
3944
3945         * ftp-basic.c (ftp_response): Escape server response when printing
3946         it.
3947
3948         * cookies.c (parse_set_cookies): Escape the cookie field when
3949         printing it.
3950         (parse_set_cookies): Escape contents of remote header.
3951         (cookie_handle_set_cookie): Escape host name and cookie domain.
3952
3953         * connect.c (connect_to_ip): Escape the host name.
3954
3955         * log.c (escnonprint): New function, used for printing strings
3956         coming from the server that possibly contain non-ASCII characters.
3957         (escnonprint_uri): Ditto.
3958
3959 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
3960
3961         * ftp.c (getftp): Ditto.
3962
3963         * http.c (gethttp): When we're not supposed to overwrite files,
3964         use fopen_excl to open the file and recompute the file name.
3965
3966         * log.c (redirect_output): Use unique_create to avoid a race
3967         condition.
3968
3969         * mswindows.c (fake_fork_child): Use unique_create.
3970
3971         * utils.c (fopen_excl): New function that opens a stdio stream
3972         with the O_EXCL flag (where available).
3973         (unique_create): New function, like unique_name, but also creating
3974         the file and returning a file pointer.
3975         (fork_to_background): Use unique_create to create the file
3976         immediately to avoid race condition with multiple instances of
3977         wget -b.
3978
3979 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
3980
3981         * host.c (lookup_host): Test for AI_ADDRCONFIG directly, instead
3982         of checking for HAVE_GETADDRINFO_AI_ADDRCONFIG.
3983
3984 2005-02-23  Hrvoje Niksic  <hniksic@xemacs.org>
3985
3986         * host.c (is_valid_ipv6_address): Move here from url.c.
3987         (lookup_host): If the address is numeric, don't print the
3988         "resolving..." line, don't set up DNS timeouts, and set the
3989         AI_NUMERICHOST hint, where available.
3990
3991 2005-02-26  Gisle Vanem  <giva@bgnett.no>
3992
3993         * utils.c: Use the nnnLL syntax under GCC.  Define struct_stat to
3994         struct _stati64 under __MINGW32__ as well as under MS VC.
3995
3996 2005-02-26  Hrvoje Niksic  <hniksic@xemacs.org>
3997
3998         * utils.c: Use the nnnI64 syntax for __int64 constants under all
3999         Windows compilers.
4000         (SPRINTF_WGINT): Use "%I64" under all Windows compilers.
4001
4002         * mswindows.h (WGINT_MAX): Use the nnnI64 syntax for
4003         __int64 constants under all Windows compilers.
4004         (struct_stat): Use `struct stati64' under Borland C.
4005         (fstat): Don't redefine to _fstati64 under Borland.
4006
4007         * mswindows.c: Define str_to_int64 under Borland C as well as
4008         under (older) Visual C.
4009
4010 2005-02-25  Hrvoje Niksic  <hniksic@xemacs.org>
4011
4012         * ftp.c (getftp): Initialize err to suppress compiler warning.
4013
4014 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
4015
4016         * ftp.c (ftp_expected_bytes): Fix bug that caused infloop because
4017         of not correctly skipping the '(' character.
4018
4019 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
4020
4021         * mswindows.c (wget_ftello): Removed.
4022
4023         * mswindows.h: Remove bogus definition of stat.
4024         (wget_ftello): Remove the leftover ftello replacement.
4025
4026 2005-02-20  Hrvoje Niksic  <hniksic@xemacs.org>
4027
4028         * mswindows.c (wget_ftello): Wget's replacement for ftello.
4029
4030         * utils.c (file_size): Use ftello where available.
4031
4032         * ftp-ls.c (ftp_parse_unix_ls): Use str_to_wgint to parse the file
4033         size.
4034         (ftp_parse_winnt_ls): Ditto.
4035
4036         * ftp-basic.c (ftp_size): Use str_to_wgint to convert number to
4037         wgint; pass 10 instead of 0 as the BASE argument.
4038
4039         * ftp.c (ftp_expected_bytes): Use str_to_wgint to parse the file
4040         size.
4041
4042         * sysdep.h (LARGE_INT_FMT): Use __int64 as LARGE_INT on
4043         MSVC/Windows; print it with "%I64".
4044
4045         * wget.h: Define a `wgint' type, normally aliased to (the possibly
4046         64-bit variant of) off_t.
4047
4048         * all: Use `wgint' instead of `long' for numeric variables that
4049         can hold file sizes.
4050
4051         * utils.c (number_to_string): Support printing of `wgint'
4052         argument.
4053         (number_to_static_string): New function.
4054
4055         * all: Replace printf("%ld", long_value) with printf("%s",
4056         number_to_static_string(wgint_value)).
4057
4058 2005-02-18  Mauro Tortonesi <mauro@ferrara.linux.it>
4059
4060         * main.c: Added the --ftp-passwd command line option.
4061
4062         * init.c: Renamed command passwd to ftppasswd.
4063
4064 2005-02-11  Mauro Tortonesi <mauro@ferrara.linux.it>
4065
4066         * string_t.c: Fixed a bug in do_escape and triggered escape of
4067         backslashes in string_escape to avoid ambiguities in the result
4068         string.
4069
4070 2005-02-10  Mauro Tortonesi <mauro@ferrara.linux.it>
4071
4072         * string.h: Renamed to string_t.h to fix a compilation conflict
4073         with the string.h header in the standard C library.
4074
4075         * string.c: Renamed to string_t.c for consistency with string.h.
4076
4077         * string_t.c: Ditto.
4078
4079         * string_t.h: Ditto.
4080
4081 2004-12-31  Mauro Tortonesi <mauro@ferrara.linux.it>
4082
4083         * string.c: New file.
4084
4085         * string.h: New file.
4086
4087         * Makefile.in: Added string.c to the list of modules to compile.
4088
4089         * main.c: Updated copyright.
4090
4091 2004-11-18  Ulf Harnhammar <ulf.harnhammar.9485@student.uu.se>
4092
4093         * ftp-ls.c: Fixed a problem in ftp_parse_winnt_ls that could allow a
4094         malicious remote FTP server to crash wget.
4095
4096 2004-11-18  Hans-Andreas Engel <engel@node.ch>
4097
4098         * http.c: Enable --convert-links (-k) when a single page is downloaded
4099         via --output-document (-O).
4100
4101 2004-11-18  Mauro Tortonesi <mauro@deepspace6.net>
4102
4103         * connect.c: Minor correction to the comment in front of fd_peek.
4104
4105 2004-11-18  Leonid Petrov <nouser@lpetrov.net>
4106
4107         * retr.c: Fix a timeout problem in fd_read_body when using http_proxy.
4108
4109 2004-11-15  YAMAZAKI Makoto <Yamazaki.Makoto@fujixerox.co.jp>
4110
4111         * netrc.c: Fix termination by assertion bug in netrc parsing.
4112
4113 2004-05-09  David Fritz  <zeroxdf@att.net>
4114
4115         * mswindows.c (fake_fork): Pass entire command line to the child
4116         process.
4117
4118 2004-03-31  Hrvoje Niksic  <hniksic@xemacs.org>
4119
4120         * http.c (gethttp): Fix typo: SCHEME_SSL -> SCHEME_HTTPS.
4121
4122 2004-03-30  Hrvoje Niksic  <hniksic@xemacs.org>
4123
4124         * http.c (gethttp): Send the Proxy-Authorization header over
4125         non-SSL connections too.
4126
4127 2004-03-25  David Fritz  <zeroxdf@att.net>
4128
4129         * mswindows.c (fake_fork_child): Ignore error code when
4130         OpenFileMapping() fails; assume it failed because the object does
4131         not exist.
4132
4133 2004-03-24  David Fritz  <zeroxdf@att.net>
4134
4135         * mswindows.c (fake_fork): New function.
4136
4137         * mswindows.c (fork_to_background): Use it.
4138
4139 2004-03-19  David Fritz  <zeroxdf@att.net>
4140
4141         * mswindows.c (ws_hangup): Incorporate old fork_to_background()
4142         code.  Add event name argument.
4143         (fork_to_backgorund): Now a simple wrapper around ws_hangup().
4144         (ws_handler): Correctly handle the case when neither CTRLC_BACKGND
4145         nor CTRLBREAK_BACKGND are defined.  Don't bother handling close,
4146         logoff, or shutdown events.  Call ws_hangup() with the correct
4147         event name; don't assume it was CTRL+Break.
4148
4149 2004-03-19  Hrvoje Niksic  <hniksic@xemacs.org>
4150
4151         * url.c (url_parse): Decode %HH sequences in host name.
4152
4153 2004-03-04  Hrvoje Niksic  <hniksic@xemacs.org>
4154
4155         * convert.c (local_quote_string): Quote "#" as "%23" and "%" as
4156         "%25" when creating links to local files.
4157
4158 2004-03-02  David Fritz  <zeroxdf@att.net>
4159
4160         * mswindows.c (ws_percenttitle): Guard against future changes by
4161         doing nothing if the proper variables have not been initialized.
4162         Clamp percentage value.
4163
4164 2004-03-04  Gisle Vanem  <giva@bgnett.no>
4165
4166         * retr.c (fd_read_body): Don't change console title if quiet.
4167
4168 2004-02-25  David Fritz  <zeroxdf@att.net>
4169
4170         * mswindows.c (set_sleep_mode): Remove argument and return value.
4171         Call GetModuleHandle() instead of LoadLibrary()/FreeLibrary() for
4172         kernel32.dll.  Use typedef for function-pointer.  Don't cast
4173         l-value.  Don't use dereference operator when calling through
4174         function-pointer.
4175         (ws_startup): Update call to set_sleep_mode().
4176         (ws_cleanup): Remove call to set_sleep_mode().
4177
4178 2004-02-23  David Fritz  <zeroxdf@att.net>
4179
4180         * http.c (http_loop): Ditto.
4181
4182         * ftp.c (ftp_loop_internal): Update call to ws_changetitle().
4183
4184         * main.c (main): Don't bother calling ws_changetitle().
4185
4186         * mswindows.h (ws_changetitle): Update prototype.
4187
4188         * mswindows.c (ws_changetitle): Remove second argument.  Use
4189         xfree_null().
4190         (ws_percenttitle): Only update title when percentage has changed.
4191
4192 2004-02-23  David Fritz  <zeroxdf@att.net>
4193
4194         * mswindows.h: Ditto.
4195
4196         * mswindows.c: Misc. formatting/comment tweaks throughout.
4197
4198 2004-02-20  David Fritz  <zeroxdf@att.net>
4199
4200         * main.c (print_help): Remove call to ws_help().
4201
4202         * mswindows.c (ws_help): Remove.
4203
4204         * mswindows.h (ws_help): Remove.
4205
4206 2004-02-16  David Fritz  <zeroxdf@att.net>
4207
4208         * init.c (home_dir): Use aprintf() instead of xmalloc()/sprintf().
4209         Under Windows, if $HOME is not defined, use the directory that
4210         contains the Wget binary instead of hard-coded `C:\'.
4211         (wgetrc_file_name): Under Windows, look for $HOME/.wgetrc then, if
4212         not found, look for wget.ini in the directory of the Wget binary.
4213
4214         * mswindows.c (ws_mypath): Employ slightly more robust methodology.
4215         Strip trailing path separator.
4216
4217 2004-02-06  Hrvoje Niksic  <hniksic@xemacs.org>
4218
4219         * http.c (gethttp): Respect --ignore-length.
4220         (gethttp): Inhibit keep-alive if --ignore-length is specified.
4221
4222 2004-02-06  Hrvoje Niksic  <hniksic@xemacs.org>
4223
4224         * connect.c (sockaddr_set_data): Zero out
4225         sockaddr_in/sockaddr_in6.  Apparently BSD-derived stacks need this
4226         when binding a socket to local address.
4227
4228 2004-02-04  Hrvoje Niksic  <hniksic@xemacs.org>
4229
4230         * hash.c: Make the file compilable outside Wget source tree when
4231         -DSTANDALONE is used.
4232
4233 2004-01-29  Hrvoje Niksic  <hniksic@xemacs.org>
4234
4235         * utils.c (determine_screen_width): Return 0 if not running on
4236         Windows or on a TIOCGWINSZ-capable system.
4237
4238 2004-01-28  David Fritz  <zeroxdf@att.net>
4239
4240         * utils.c (determine_screen_width): Correctly determine console
4241         width under Windows.
4242
4243 2004-01-28  Christian Biere  <christianbiere@gmx.de>
4244
4245         * progress.c (bar_set_params): Fixed syntax error when HAVE_ISATTY
4246         was undefined.
4247
4248         * ftp.c (ftp_loop_internal): Allocate a larger buffer in case
4249         "try" gets translated to something large.  Ditto in http_loop in
4250         http.c.
4251
4252         * http.c (response_header_copy): Don't write to buf[BUFSIZE].
4253
4254         * ftp-opie.c (skey_response): Eliminate unnecessary string
4255         concatenation; just call gen_md5_update twice.
4256
4257 2004-01-25  Hrvoje Niksic  <hniksic@xemacs.org>
4258
4259         * utils.c (xsleep): Don't call usleep with values larger than
4260         1,000,000.
4261
4262 2003-12-16  Hrvoje Niksic  <hniksic@xemacs.org>
4263
4264         * http.c (gethttp): Fix generation of `Content-Length'.
4265
4266 2003-12-15  Gisle Vanem  <giva@bgnett.no>
4267
4268         * url.c (url_skip_credentials): Fixed return value; 'url' if no
4269         credentials.
4270
4271 2003-12-14  Hrvoje Niksic  <hniksic@xemacs.org>
4272
4273         * url.c (url_skip_credentials): Return a pointer directly.
4274
4275 2003-12-14  Hrvoje Niksic  <hniksic@xemacs.org>
4276
4277         * url.c (url_file_name): Ditto.
4278         (parse_errors): Ditto.
4279
4280         * retr.c (retr_rate): Ditto.
4281
4282         * progress.c (create_image): Ditto.
4283
4284         * netrc.c (parse_netrc): Ditto.
4285
4286         * main.c (struct cmdline_option): Ditto.
4287         (redirect_output_signal): Ditto.
4288
4289         * init.c (commands): Ditto.
4290
4291         * ftp-ls.c (ftp_index): Ditto.
4292
4293         * cookies.c (check_domain_match): Declare the pointer to a literal
4294         string as `const'.
4295
4296 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
4297
4298         * retr.c (fd_read_body): Pass total size to progress_create, not
4299         the remaining amount.
4300
4301 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
4302
4303         * retr.c (fd_read_body): Don't fiddle with "interactive timeout"
4304         if read timeout is unset.
4305
4306 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
4307
4308         * connect.c (bind_local): Don't set the IPV6_V6ONLY option on the
4309         socket.
4310
4311 2003-12-06  Hrvoje Niksic  <hniksic@xemacs.org>
4312
4313         * url.c (url_file_name): Respect the setting of
4314         opt.protocol_directories.
4315
4316         * main.c (main): Only check for ret=='?' when longindex is unset.
4317         (option_data): New option --protocol-directories.
4318
4319 2003-12-06  Hrvoje Niksic  <hniksic@xemacs.org>
4320
4321         * ftp.c (getftp): Ditto.
4322
4323         * http.c (gethttp): Correctly calculate bandwidth as total data
4324         read divided with download time.
4325
4326         * retr.c (fd_read_body): Separate the return values for data
4327         written and read.
4328
4329 2003-12-05  Hrvoje Niksic  <hniksic@xemacs.org>
4330
4331         * http.c (H_REDIRECTED): Respect the HTTP/1.1 "303 See Other"
4332         response code.
4333         Suggested by Dan Razzell.
4334
4335 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
4336
4337         * retr.c (fd_read_body): Report the amount of data *written* as
4338         amount_read.  This is not entirely logical, but that's what the
4339         callers expect, and it's not easy to change.
4340
4341         * ftp.c (ftp_loop_internal): Ditto.
4342
4343         * http.c (http_loop): Be smarter about assigning restval; if we're
4344         in the nth pass of a download, simply use the information we have
4345         about how much data has been retrieved as restval.
4346
4347         * ftp.c (getftp): Ditto for FTP "REST" command.
4348
4349         * http.c (gethttp): When the server doesn't respect range, skip
4350         the first RESTVAL bytes of the read body.  Never truncate the
4351         output file.
4352
4353         * retr.c (fd_read_body): Support skipping initial STARTPOS octets.
4354
4355 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
4356
4357         * http.c (skip_short_body): Renamed skip_body to skip_short_body;
4358         don't bother calling fd_read_body.
4359
4360 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
4361
4362         * retr.c (fd_read_body): Sanitize arguments and document them
4363         better.  Make sure the timer is created and updated only if
4364         necessary.  Updated callers.
4365
4366 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
4367
4368         * http.c (skip_body): New function.
4369         (gethttp): Use it to skip the body of the responses we don't care
4370         to download.  That allows us to reuse the connection.
4371         (gethttp): Trust that the HEAD requests will not generate body
4372         data.
4373
4374         * retr.c (fd_read_body): Don't write to OUT if it's NULL.
4375
4376 2003-11-29  Hrvoje Niksic  <hniksic@xemacs.org>
4377
4378         * http.c (gethttp): Initialize SSL only the first time when SSL
4379         URL is downloaded.
4380
4381 2003-11-29  Hrvoje Niksic  <hniksic@xemacs.org>
4382
4383         * cookies.c (cookie_header): Only generate the contents of the
4384         header, not the leading "Cookie: " or the trailing "\r\n".
4385
4386         * http.c (gethttp): When adding headers specified with `--header',
4387         allow them to override the headers generated by Wget.
4388
4389         * init.c (cmd_spec_header): Made opt.user_headers a vector.
4390
4391         * http.c (request_new): New function.  Returns a request structure
4392         which can be modified in various ways, most notably by adding HTTP
4393         headers to the request.
4394         (request_set_header): New function for adding the header to the
4395         request.  If the header is already available, it gets replaced.
4396         (request_send): Construct and send the request.
4397         (gethttp): Use the request_* functions to generate the request.
4398
4399 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
4400
4401         * http.c (gethttp): Don't include the Proxy-Authorization header
4402         in the request tunneled through proxy.
4403
4404 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
4405
4406         * http.c (gethttp): Use the CONNECT handle to establish SSL
4407         passthrough through non-SSL proxies.
4408
4409 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
4410
4411         * init.c: Don't #include netinet/Winsock stuff.
4412
4413 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
4414
4415         * http.c: Deleted the old functions header_process,
4416         header_extract_number, header_exists, header_strdup,
4417         http_process_range, http_process_none, http_process_type, and
4418         http_process_connection.
4419
4420         * http.c (response_new): New function.
4421         (response_header_bounds): Ditto.
4422         (response_header_copy): Ditto.
4423         (response_header_strdup): Ditto.
4424         (response_status): Ditto.
4425         (gethttp): Use the new response_* functions to parse the response.
4426         Support HTTP/0.9 responses.
4427
4428 2003-11-27  Hrvoje Niksic  <hniksic@xemacs.org>
4429
4430         * progress.c (create_image): Don't calculate ETA if nothing has
4431         been downloaded yet, because it causes division by zero.
4432
4433 2003-11-27  Hrvoje Niksic  <hniksic@xemacs.org>
4434
4435         * connect.c (bind_local): Rename sa_len to addrlen because IRIX
4436         headers define sa_len as a macro.
4437
4438 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
4439
4440         * html-parse.c (convert_and_copy): Remove embedded newlines when
4441         AP_TRIM_BLANKS is specified.
4442
4443 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
4444
4445         * ftp.c: Set con->csock to -1 where rbuf_uninitialize was
4446         previously used.
4447
4448 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
4449
4450         * Makefile.in (http$o): Added the trailing backslash that was
4451         missing.
4452
4453 2003-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
4454
4455         * headers.c: Removed.  The file is no longer relevant, now that no
4456         special handling of headers is done by the rbuf code.  Moved
4457         portions to http.c.
4458
4459 2003-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
4460
4461         * rbuf.c: Removed.
4462
4463         * ftp-basic.c (ftp_response): Use fd_read_line.  No longer use
4464         struct rbuf.  Updated all callers.
4465
4466         * http.c (gethttp): Use fd_read_head to read all the headers in
4467         one go.
4468         (next_header): New function.
4469
4470         * retr.c (fd_read_line): New function: reads a line from FD,
4471         leaving the rest of the data unread.
4472         (fd_read_head): New function.
4473
4474         * connect.c (fd_peek): New function, implements peeking.
4475         (poll_internal): New function.
4476         (fd_read): Use it.
4477         (fd_write): Ditto.
4478         (fd_peek): Ditto.
4479         (fd_register_transport): Allow registering a "peeker" callback.
4480
4481 2003-11-20  Hrvoje Niksic  <hniksic@xemacs.org>
4482
4483         * connect.c: Renamed xread/xwrite/xclose to
4484         fd_read/fd_write/fd_close.  The "x" prefix is not appropriate
4485         because the semantics have diverged from read/write/close too
4486         significantly.  Updated all callers.
4487
4488 2003-11-20  Hrvoje Niksic  <hniksic@xemacs.org>
4489
4490         * connect.c (sock_write): It's not necessary to initialize RES.
4491
4492 2003-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
4493
4494         * main.c (main): Don't reference opt.ipv4_only and opt.ipv6_only
4495         if IPv6 is disabled.
4496
4497 2003-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
4498
4499         * connect.c (socket_has_inet6): Only compile it if IPv6 is enabled
4500         and AI_ADDRCONFIG is missing.
4501
4502 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
4503
4504         * gen_sslfunc.c (ssl_init_prng): Warn the user when using a weak
4505         random seed.
4506
4507 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
4508
4509         * host.c (address_list_contains): Renamed address_list_find to
4510         address_list_contains because its result is boolean.
4511
4512 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
4513
4514         * connect.c (select_fd): Return 1 if select is not available.
4515
4516 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
4517
4518         * connect.c (connect_to_host): Don't reference address list after
4519         releasing it.
4520
4521 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
4522
4523         * main.c (print_help): Fix alignment of FTP options output.
4524
4525 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
4526
4527         * host.c (lookup_host): Check for the ability to create IPv6
4528         sockets here.
4529
4530         * init.c (defaults): Don't auto-set --inet4-only on IPv6-less
4531         systems.
4532
4533 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
4534
4535         * main.c (print_help): Fix typo in `-O' help message.  Fix docs of
4536         -Y/--proxy.  Fix docs of `--cookies' and `--glob'.  Improve docs
4537         of --convert-links.  Fix docs of SSL options.
4538
4539 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
4540
4541         * ftp-basic.c: Don't include <arpa/inet.h> and others because
4542         they're no longer needed.
4543
4544 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
4545
4546         * main.c (main): Don't allow setting of both opt.ipv4_only and
4547         opt.ipv6_only.
4548
4549         * init.c (defaults): Mark opt.ipv4_only specially when set
4550         automatically.
4551
4552 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
4553
4554         * host.c (lookup_host): Use AI_ADDRCONFIG only if the family is
4555         unspecified.  This ensures that specifying `--no-inet4' on systems
4556         where IPv6 resolves, but doesn't work behaves the same regardless
4557         of the availability of AI_ADDRCONFIG.
4558
4559 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
4560
4561         * host.c: Don't refer to the now-removed function
4562         forget_host_lookup in the documentation of lookup_host.
4563
4564 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
4565
4566         * http.c (persistent_available_p): Correctly specify the endpoint
4567         argument to socket_ip_address.
4568         (gethttp): When printing the "reusing connection to..." message,
4569         specify the host name of the reused connection, not the current
4570         host name.  That makes more sense because it provides a useful
4571         piece of information -- we know to which host we're supposed to
4572         connect anyway!
4573
4574 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
4575
4576         * init.c: Make sure the options are in alphabetic order!
4577
4578         * host.c (lookup_host): Merge lookup_host_passive and lookup_host
4579         after all -- having both would result in some code duplication.
4580         (lookup_host): Set hints.ai_family to AF_INET if ipv4_only is
4581         requested.  Likewise, set it to AF_INET6 for ipv6_only.  Specify
4582         AI_ADDRCONFIG where available.
4583         (lookup_host): New flag LH_REFRESH that specifies that a cached
4584         entry for HOST should be refreshed.
4585         (cache_query): New function.
4586         (cache_store): Ditto.
4587         (cache_remove): Ditto.
4588         (forget_host_lookup): No longer necessary, replaced with static
4589         function cache_remove.
4590
4591 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
4592
4593         * main.c: Enable -4 and -6 only if IPv6 is enabled.
4594
4595 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
4596
4597         * connect.c (register_transport): Renamed from register_extended.
4598         Explain the intended usage.
4599
4600 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
4601
4602         * url.c (uri_merge): Merging "foo" and "bar" should result in
4603         "bar", not in "foo/bar".
4604         (path_simplify): Don't remove empty path elements; don't
4605         special-case leading slash.
4606         (path_simplify): Don't swallow ".."'s at the beginning of string.
4607         E.g. simplify "foo/../../bar" as "../bar", not as "bar".
4608         (append_uri_pathel): Defang ".." path element upon encountering
4609         it.
4610
4611 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4612
4613         * http.c (persistent_available_p): Don't attempt to talk to two
4614         different SSL sites over the same secure connection.
4615
4616 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4617
4618         * http.c (gethttp): Ditto.
4619
4620         * ftp.c (getftp): Use retryable_socket_connect_error instead of
4621         CONNECT_ERROR.
4622
4623         * wget.h (CONNECT_ERROR): Removed.
4624
4625         * connect.c (retryable_socket_connect_error): New function instead
4626         of unsupported_socket_family_error.
4627
4628 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4629
4630         * wget.h (CONNECT_ERROR): Use it.
4631
4632         * connect.c (unsupported_socket_family_error): New function.
4633
4634 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4635
4636         * connect.c (bind_local): Renamed bindport to bind_local; return
4637         the socket directly.  Updated callers.
4638         (accept_connection): Renamed acceptport to accept_connection;
4639         return the created socket directly.  Updated callers.
4640
4641 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4642
4643         * init.c (defaults): Turn on opt.ipv4_only if we're compiling with
4644         IPv6, and AI_ADDRINFO is not available, and AF_INET6 sockets can't
4645         be created.
4646
4647 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4648
4649         * host.c (lookup_host): Document the fact that the addresses are
4650         returned in order.
4651
4652 2003-11-12  Hrvoje Niksic  <hniksic@xemacs.org>
4653
4654         * utils.c: Use limits.h only where available.
4655
4656         * hash.c: Use INVALID_PTR and INVALID_PTR_BYTE.  Include limits.h.
4657
4658 2003-11-11  Hrvoje Niksic  <hniksic@xemacs.org>
4659
4660         * main.c: Added options --inet4-only and --inet6-only.
4661
4662 2003-11-11  Hrvoje Niksic  <hniksic@xemacs.org>
4663
4664         * host.c (host_errstr): Use the more standard message "Unknown
4665         host".
4666
4667 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
4668
4669         * connect.c (connect_to_host): Use that flag to decide whether to
4670         re-resolve the host name.
4671
4672         * host.c (struct address_list): Added a flag that maintains
4673         whether the connection worked at some point.
4674
4675 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
4676
4677         * host.c (lookup_host): Special-case the numeric addresses only in
4678         the non-IPv6 case.
4679
4680 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
4681
4682         * connect.c (resolve_bind_address): Call lookup_host_passive.
4683         Make sure that opt.bind_address is resolved only once.
4684
4685         * host.c (lookup_host_passive): New function, handles "passive"
4686         lookups.
4687         (lookup_host): Remove the passive flags.  Remove the
4688         family-related flags -- use ip_default_family instead.
4689
4690 2003-11-09  Hrvoje Niksic  <hniksic@xemacs.org>
4691
4692         * html-url.c: Get URLs from <object data="...">.
4693
4694 2003-11-09  Hrvoje Niksic  <hniksic@xemacs.org>
4695
4696         * main.c (option_data): Specify the command to use for --mirror.
4697
4698 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4699
4700         * cookies.c (cookie_handle_set_cookie): Specify exact match for
4701         unspecified domains.
4702
4703 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4704
4705         * main.c (main): Removed one-letter options `-C', `-g', `-G', and
4706         `-s'.
4707
4708 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4709
4710         * main.c (main): Add --dont-remove-listing for backward
4711         compatibility with previous versions.
4712         (print_help): Fix typo, spotted by Dennis Smit.
4713
4714 2003-11-08  Gisle Vanem  <giva@bgnett.no>
4715
4716         * ftp-basic.c: Support Windows-2000 ftp servers. Win-2000 *is*
4717         Win-NT 5.0 so calling it ST_WINNT is okay I guess.
4718
4719 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4720
4721         * progress.c (update_speed_ring): Clear the speed ring when the
4722         download stalls.
4723
4724         * retr.c (get_contents): Specify 0.95s read timeout, so that the
4725         progress gauge can be updated even when data arrives very slowly
4726         or stalls.
4727
4728 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4729
4730         * utils.c (wtimer_allocate): Bless the use of wtimer_read on a
4731         timer that has merely been allocated because get_contents() does
4732         that.
4733         (wtimer_update): Abort if the timer is not initialized.
4734
4735 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4736
4737         * retr.c (get_contents): Pass the timer to limit_bandwidth().
4738
4739         * utils.c (wtimer_update): New function instead of wget_elapsed;
4740         just update the timer, but don't return anything.
4741         (wtimer_read): Read and return the last known value of the timer.
4742
4743 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4744
4745         * http.c (persistent_available_p): Instead of matching all the
4746         addresses of HOST and last host, determine the peer's IP address
4747         with socket_ip_address and see if that address is one of those
4748         HOST resolves to.
4749
4750         * host.c (address_list_match_all): Removed.
4751         (address_list_find): New function, finds an IP address in the
4752         address list.
4753
4754         * ftp.c (ftp_do_pasv): Get the peer's address here, and pass it to
4755         ftp_epsv so it doesn't need to call getpeername.
4756
4757         * ftp-basic.c (ftp_port): Use socket_ip_address instead of
4758         getpeername.
4759         (ftp_lprt): Ditto.
4760
4761         * connect.c (socket_ip_address): Replaces conaddr, generalized to
4762         either get peer's or local address.
4763         (sockaddr_get_data): Made local to this file.
4764
4765 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4766
4767         * hash.c (HASH_POSITION): Explicitly accept the hash function.
4768         (grow_hash_table): Extract ht->hash_function outside the loop.
4769         (hash_table_remove): Ditto.
4770         (hash_table_clear): Fill entries with 0xff to clear them.
4771         (hash_table_remove): Mark entries as deleted with the correct
4772         marker.
4773
4774 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4775
4776         * http.c (persistent_available_p): No reason for the host lookup
4777         to be silent -- it's a lookup like any other.
4778
4779 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4780
4781         * connect.c (register_extended): Check that fd >= 0.
4782
4783 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
4784
4785         * connect.c (LAZY_RETRIEVE_INFO): Set LAST_INFO.
4786
4787 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
4788
4789         * hash.c (NON_EMPTY): Use the all-bit-set value as the marker that
4790         the field is empty.  This allows NULL pointer and 0 value to be
4791         used as keys, which is necessary for the connect.c code to work
4792         when fd==0.
4793         (hash_table_new): Fill mappings with 0xff.
4794         (grow_hash_table): Ditto.
4795
4796 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
4797
4798         * url.c (url_parse): Allow empty ports.
4799
4800 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
4801
4802         * main.c (print_help): Break the help string into multiple chunks.
4803         (cmdline_option): New option handler OPT_FUNCALL.  Generalized
4804         HANDLE_CMD to generic DATA.
4805         (option_data): Use the new OPT_FUNCALL feature.
4806
4807 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
4808
4809         * log.h: Declare log_init, log_close, and
4810         log_request_redirect_output here.
4811
4812 2003-11-05  Dennis Smit  <ds@nerds-incorporated.org>
4813
4814         * main.c: (main): added --preserve-permissions option.
4815
4816         * ftp.c (ftp_retrieve_list): added support for
4817         --preserve-permissions option.
4818
4819         * init.c: added support for --preserve-permission option.
4820
4821         * option.h: added support for --preserve-permission option.
4822
4823 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
4824
4825         * main.c (init_switches): New function.  Convert option_data to
4826         long_options and short_options, which can be fed to getopt_long.
4827         (main): Execute command-line options by consulting option_data.
4828
4829 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
4830
4831         * gen_sslfunc.c (ssl_read): Implement a more correct check for
4832         EINTR.
4833         (ssl_write): Ditto.
4834         (init_ssl): Use a global SSL context.
4835
4836 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
4837
4838         * connect.c (xclose): Free INFO even if it doesn't provide a
4839         closer.
4840
4841 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
4842
4843         * connect.c: Updated all callers of
4844         iread/ssl_iread/iwrite/ssl_iwrite to use xread and xwrite instead.
4845
4846         * rbuf.h (struct rbuf): Removed the SSL member because SSL is
4847         handled automatically by xread.
4848
4849         * hash.c (ptrhash): Made private.
4850         (ptrcmp): Ditto.
4851         (inthash): Removed.
4852
4853         * connect.c (select_fd): Don't set errno, leave it to the caller.
4854
4855         * gen_sslfunc.c (connect_ssl): Use register_extended to register
4856         SSL callbacks for communication with SSL-enabled endpoints.
4857         (ssl_read): New function.
4858         (ssl_write): Ditto.
4859         (ssl_poll): Ditto.
4860         (ssl_close): Ditto.
4861
4862         * connect.c (register_extended): New function -- register
4863         callbacks for basic socket operations.
4864         (xread): Ditto.
4865         (xwrite): Ditto.
4866         (xclose): Ditto.
4867         (sock_read): New function, default implementation for reading.
4868         (sock_write): Ditto for writing.
4869         (sock_poll): Ditto for polling.
4870         (sock_close): Ditto for closing.
4871
4872 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
4873
4874         * connect.c (bindport): Fix compilation under pre-C99 compilers.
4875
4876 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
4877
4878         * connect.c (connect_to_ip): More compact error checking.
4879         (bindport): Don't treat failed setsockopt as a fatal error.
4880
4881 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
4882
4883         * connect.c (resolve_bind_address): Use a more accurate error
4884         message -- we're not binding to ANY, we're disabling bind
4885         altogether.
4886
4887 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
4888
4889         * cookies.c (save_cookies_mapper): Respect the setting of
4890         keep-session-cookies.
4891         (cookie_jar_load): Import session cookies.
4892         Based on code submitted by Nicolas Schodet.
4893
4894         * utils.c (datetime_str): Use information in TM when it's
4895         non-NULL.
4896
4897         * main.c (main): New option `--keep-session-cookies'.
4898
4899 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
4900
4901         * Makefile.in (realclean): Delete config.h.in.
4902
4903 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
4904
4905         * config-post.h: New file, included from now autogenerated
4906         config.h.in.
4907
4908 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
4909
4910         * progress.c (progress_handle_sigwinch): Don't call
4911         determine_screen_width() from the signal handler.  Instead, just
4912         set a volatile variable.
4913         (bar_create): Check whether SIGWINCH was received.
4914         (bar_update): Ditto.
4915
4916         * sysdep.h: Define SYSTEM_FNMATCH only if HAVE_FNMATCH_H is true.
4917
4918 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4919
4920         * utils.c (xsleep): New function.  Uses nanosleep where available,
4921         resuming sleeps interrupted by signals.  Updated callers of sleep
4922         and usleep to use xsleep.
4923
4924 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4925
4926         * ftp-basic.c (ftp_login): Remove shadowing (and bogus)
4927         declaration of SEED.
4928
4929 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4930
4931         * log.c (logvprintf): Documented better.  Renamed to
4932         log_vprintf_internal to avoid confusion with the public API
4933         functions logprintf and logputs.
4934
4935 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4936
4937         * wget.h (N_): Don't parenthesize argument.
4938
4939 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4940
4941         * host.h (ADDRESS_IPV4_DATA): Don't take the address of in.s_addr
4942         because that doesn't work on machines that define it as bitfield.
4943
4944 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
4945
4946         * connect.c (select_fd): Generalize the third argument into WAIT,
4947         so that the caller can request waiting for both read and write.
4948         Updated callers.
4949
4950 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
4951
4952         * html-url.c (cleanup_html_url): Destroy the hash tables, don't
4953         just call free on them.
4954         (init_interesting): Use hash_table_put instead of string_set_add
4955         because we don't need the strdup that the latter function
4956         performs.
4957
4958         * init.c (cleanup): Don't pass NULL to cookie_jar_delete.
4959
4960         * xmalloc.c (xfree_real): Abort when passed a NULL pointer.
4961         (xfree_debug): Print at the file and line of the offending call to
4962         free.
4963
4964 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
4965
4966         * wget.h: Retired the `boolean' type.  Moved the DEFAULT_LOGFILE
4967         define to log.h.  Moved the INFINITE_RECURSION define to recur.h.
4968
4969         * xmalloc.h: Renamed FREE_MAYBE to xfree_null and moved the
4970         definition from wget.h to xmalloc.h.
4971
4972 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
4973
4974         * html-parse.c (decode_entity): New function; split the decoding
4975         of entities here.
4976         (convert_and_copy): Use it to decode entities.
4977         (decode_entity): Handle the &apos entity.
4978         (decode_entity): Don't decode Latin 1 numeric entities.  Don't
4979         decode &#0.
4980
4981 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
4982
4983         * ftp-opie.c (calculate_skey_response): Use uint32_t instead of
4984         `unsigned long' for the cheksum array.  Document the function.
4985
4986 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
4987
4988         * connect.c (acceptport): Don't call select_fd when timeout is not
4989         requested.
4990
4991 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
4992
4993         * host.c: Removed the ip_default_family global variable.
4994
4995         * host.c (lookup_host): Document the function.  Fixed declaration
4996         of VEC.
4997
4998 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
4999
5000         * various: Use new macros xnew, xnew0, xnew_array, and xnew0_array
5001         in various places.
5002
5003 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
5004
5005         * wget.h: Move declarations of malloc and logging code to
5006         xmalloc.h and log.h respectively to unclutter this file.
5007         (STRDUP_ALLOCA): Made it side-effect free.
5008
5009         * xmalloc.h: New files.  Define macros xnew, xnew0, xnew_array,
5010         and xnew0_array.
5011
5012         * xmalloc.c: New file.  Move the xmalloc routines here.
5013
5014 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
5015
5016         * connect.c (sockaddr_set_data): Remove the broken code that
5017         checked for NULL address.
5018
5019 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
5020
5021         * host.c (address_list_from_single): Removed.
5022         (address_list_from_ipv4_addresses): Renamed from
5023         address_list_from_vector.
5024
5025 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
5026
5027         * sysdep.h (CLOSE): Don't call close on file descriptors less than
5028         0, i.e. on uncreated sockets.
5029
5030         * connect.c (resolve_bind_address): Work on struct sockaddr
5031         directly.
5032         (connect_to_host): Replacement for connect_to_many.  Resolve HOST
5033         and connect to any of its addresses.  If we can't connect and the
5034         host name lookup was cached, try to resolve it again.  This should
5035         fix problems with hosts behind dynamic DNS.  Updated all callers.
5036         (connect_to_ip): Replacement for connect_to_one.  Removed SILENT;
5037         added the argument PRINT instead.  Updated all callers.
5038         (set_connection_host_name): Removed.
5039
5040         * host.c (address_list_address_at): New function instead of
5041         address_list_copy_one. It returns a pointer to ip_address *, so
5042         it's not necessary to copy the data.
5043         (address_list_cached_p): New function.
5044         (forget_host_lookup): Ditto.
5045
5046         * connect.c: Got rid of the MSOCK global variable.  Made bindport
5047         return the local socket it creates.  Added a new argument to
5048         acceptport, the socket to call accept on.  Updated callers.
5049         (closeport): Removed.
5050
5051         * connect.c: Moved the sockaddr code from host.c to this file,
5052         because most of that stuff is used for connecting, and has nothing
5053         to do with host names anyway.
5054         (sockaddr_set_data, sockaddr_get_data): New functions, replace the
5055         old sockaddr_set_address, sockaddr_set_port, sockaddr_get_address,
5056         and sockaddr_get_port.
5057
5058 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
5059
5060         * sysdep.h: Use `S >= 8' rather than `S == 8' when looking for
5061         large integers.
5062
5063 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
5064
5065         * url.c (append_uri_pathel): New argument ESCAPED_P that says
5066         whether [B, E) is to be treated as URL-escaped or not.  If
5067         ESCAPED_P is false, don't unescape the region.
5068         (url_file_name): u->file is not URL-escaped.
5069
5070 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
5071
5072         * retr.c (retrieve_from_file): Use retrieve_tree for
5073         page-requisites.
5074
5075         * main.c (main): Don't define opt.recursive when -p is used.
5076         Instead, make sure that recursion is used for HTTP in that case.
5077
5078 2003-10-29  Hrvoje Niksic  <hniksic@xemacs.org>
5079
5080         * host.h: Defined accessors for elements of ip_address.  Updated
5081         all callers.
5082         (address_list_match_all): Use memcmp in the non-IPv6 case.
5083
5084         * wget.h (CONNECT_ERROR): Don't retry connecting if connect()
5085         returned EAFNOSUPPORT.
5086
5087 2003-10-27  Mauro Tortonesi <mauro@deepspace6.net>
5088
5089         * connect.h: changed bindport prototype and added the related
5090         BIND_ON_IPV4_ONLY and BIND_ON_IPV6_ONLY flags.
5091
5092         * connect.c: changed bindport and resolve_bind_address to allow
5093         protocol-version specific DNS resolution. modified conaddr,
5094         acceptport and connect_to_one to make use of struct
5095         sockaddr_storage and of the new ip_address structure.
5096
5097         * ftp-basic.c: added LPRT/LPSV (RFC1639) support, refactored
5098         PORT/PASV (RFC959) and EPRT/EPSV (RFC2428) support code.
5099
5100         * ftp.c: added the ftp_do_port and ftp_do_pasv functions to
5101         handle FTP over IPv6.
5102
5103         * ftp.h: changed prototype of ftp_epsv and added prototypes for
5104         ftp_lpsv, ftp_lprt and ftp_eprt.
5105
5106         * host.c: renamed the
5107         wget_sockaddr_set_address and wget_sockaddr_get_addr, and
5108         wget_sockaddr_{s,g}et_port couples to sockaddr_{s,g}et_address and
5109         sockaddr_{g,s}et_port respectively.  changed
5110         address_list_match_all, address_list_from_addrinfo sockaddr_len,
5111         pretty_print_address, lookup_host, sockaddr_{s,g}et_address and
5112         sockaddr_{g,s}et_port to make use of struct sockaddr_storage and
5113         of the new ip_address structure.  removed map_ipv4_to_ip and
5114         map_ip_to_ipv4.
5115
5116         * host.h: redefined structure ip_address and removed structure
5117         wget_sockaddr.
5118
5119 2003-10-26  Hrvoje Niksic  <hniksic@xemacs.org>
5120
5121         * sysdep.h: Include inttypes.h where available.
5122
5123         * host.c: Switch from u_int32_t to uint32_t.
5124
5125 2003-10-26  Hrvoje Niksic  <hniksic@xemacs.org>
5126
5127         * netrc.c (parse_netrc): Reset the QUOTE flag after the closing
5128         quote.
5129
5130 2003-10-25  Hrvoje Niksic  <hniksic@xemacs.org>
5131
5132         * url.c (is_valid_ipv6_address): Reformat to GNU coding style.
5133         Use enums for NS_IN* constants.  Use ISXDIGIT.
5134
5135         * convert.c (construct_relative): Document better how the function
5136         works.
5137
5138 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
5139
5140         * config.h.in: Deploy preprocessor magic to avoid Ultrix's
5141         <netdb.h> include <bitypes.h> which defines its own u_int32_t.
5142         Reported by Bernhard Simon.
5143
5144 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
5145
5146         * version.c: Bump version.
5147
5148 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
5149
5150         * url.c: Ditto.
5151
5152         * html-parse.c (advance_declaration): Don't use trailing comma in
5153         enum because older compilers don't support it.
5154
5155         * utils.c: Don't redefine HAVE_SIGSETJMP.
5156
5157 2003-10-16  Hrvoje Niksic  <hniksic@xemacs.org>
5158
5159         * convert.c (construct_relative): Don't handle absolute files
5160         specially -- for example, -P/tmp/foo shouldn't imply that
5161         converted files must refer to "/tmp/foo/..."!
5162
5163 2003-10-15  Hrvoje Niksic  <hniksic@xemacs.org>
5164
5165         * http.c: Consider status 307 a valid redirect.
5166
5167 2003-10-15  Philip Stadermann  <philip.stadermann@credativ.de>
5168
5169         * ftp.c (ftp_retrieve_glob): Correctly loop through the list whose
5170         elements might have been deleted.
5171
5172 2003-10-13  Hrvoje Niksic  <hniksic@xemacs.org>
5173
5174         * html-url.c (tag_handle_meta): Set the Refresh link to expect
5175         HTML.
5176         (append_one_url): Renamed to append_url.
5177
5178 2003-10-13  Hrvoje Niksic  <hniksic@xemacs.org>
5179
5180         * sysdep.h: Only define u_int32_t.
5181
5182 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
5183
5184         * utils.c (large_int_to_string): Use snprintf() to print the
5185         number.  This will work even on systems where libc doesn't
5186         understand %lld, but the compiler does, because it will use our
5187         snprintf replacement.
5188
5189         * init.c (parse_bytes_helper): New function.
5190         (cmd_bytes): Use it to parse bytes, but cast the result to long.
5191         (cmd_bytes_large): Ditto, but store the result to LARGE_INT.  Used
5192         for --quota so that --quota=10G works even on machines without
5193         long long.
5194
5195         * options.h (struct options): Declare quota as LARGE_INT.
5196
5197         * retr.c (downloaded_exceeds_quota): Removed.
5198         (downloaded_increase): Ditto.
5199         (total_downloaded_bytes): New variable, replaces opt.downloaded,
5200         which was the wrong place for it anyway.  Updated callers of
5201         downloaded_exceeds_quota and downloaded_increase to check this
5202         variable directly.
5203
5204         * sysdep.h: Get rid of VERY_LONG_TYPE.  Use LARGE_INT for the same
5205         purpose, defined as `long', `long long' or `double', depending on
5206         size of long and whether long long is available.
5207
5208 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
5209
5210         * sysdep.h: Also check size of short for int32_t.
5211
5212 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
5213
5214         * host.c (lookup_host): Use u_int32_t to store the result of
5215         inet_addr().  That removes the need for offset fiddling, caring
5216         about endian-ness, etc.
5217
5218         * sysdep.h: Define int32_t and u_int32_t if not available.
5219
5220 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
5221
5222         * ftp-basic.c (ftp_epsv): Use socklen_t * as the third argument to
5223         getpeername.
5224
5225         * config.h.in: Define socklen_t stub.
5226
5227         * host.c (sockaddr_len): Return socklen_t.
5228
5229         * connect.c (conaddr): Use socklen_t as the third argument to
5230         accept, getsockname, and connect.
5231
5232 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
5233
5234         * recur.c (retrieve_tree): Don't descend into documents that are
5235         not expected to contain HTML, regardless of their content-type.
5236
5237         * html-url.c (tag_url_attributes): Record which attributes are
5238         supposed to yield HTML links that can be followed.
5239         (tag_find_urls): Propagate that information to the caller through
5240         struct urlpos.
5241
5242 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
5243
5244         * hash.c (find_mapping): Return the next available mapping when
5245         the key is not found, not NULL.
5246         (hash_table_put): Use find_mapping to find the storage for the new
5247         data.
5248         (hash_table_put): Grow the table before exceeding maximum
5249         fullness, not afterwards.
5250
5251 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
5252
5253         * hash.c (hash_table_new): Slightly change the meaning of the
5254         first parameter.  Instead of being the minimum initial size, it is
5255         now the minimum number of items that the hash table can take
5256         without needing to resize.
5257
5258 2003-10-09  Hrvoje Niksic  <hniksic@xemacs.org>
5259
5260         * html-url.c (init_interesting): Initialize interesting_tags and
5261         interesting_attributes as hash tables.  This simplifies the code
5262         immensely because hash tables handle allocation and remove
5263         duplicates automatically.
5264         (find_tag): Removed.
5265         (collect_tags_mapper): Instead of calling find_tag, simply get the
5266         entry from interesting_tags hash table, which is both simpler and
5267         faster.
5268
5269 2003-10-09  Hrvoje Niksic  <hniksic@xemacs.org>
5270
5271         * hash.c (hash_table_get): Declare hash-table argument as const.
5272         (find_mapping): Ditto.
5273         (hash_table_get_pair): Ditto.
5274         (hash_table_contains): Ditto.
5275         (hash_table_count): Ditto.
5276
5277 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5278
5279         * html-url.c (get_urls_html): Parse the appropriate flags to
5280         html-parse.c.
5281
5282         * html-parse.c (map_html_tags): Accept FLAGS from the caller
5283         instead of examining OPT.
5284
5285 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5286
5287         * html-url.c (find_tag): Switch to binary search.
5288
5289 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5290
5291         * main.c (print_help): Fix typo; stured -> stored.
5292
5293 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5294
5295         * getopt.c: Add definitions of getopt_long and getopt_long_only.
5296
5297 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5298
5299         * config.h.in: Renamed DEBUG to ENABLE_DEBUG.  ENABLE_DEBUG is, I
5300         think, a better name, because it implies that debugging output is
5301         merely possible, not "on by default", as might be construed from
5302         just DEBUG.
5303
5304 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5305
5306         * ftp.c (has_insecure_name_p): Define it here.
5307
5308         * utils.c (has_wildcards_p): Define it here.
5309
5310         * sysdep.h: Declare fnmatch-related macros here, if not using
5311         system fnmatch().  Update .c files to not declare fnmatch.h
5312         directly.
5313
5314         * cmpt.c (fnmatch): Moved here.  Use it only under non-GNU libc.
5315
5316 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5317
5318         * getopt.c: Newer version, imported from Free libit.
5319
5320 2003-10-07  Hrvoje Niksic  <hniksic@xemacs.org>
5321
5322         * cookies.c (struct cookie): Remove unused backpointer to cookie
5323         jar.
5324
5325 2003-10-07  Hrvoje Niksic  <hniksic@xemacs.org>
5326
5327         * cmpt.c (memmove): Comment out, since it's no longer used.
5328
5329         * cookies.c (cookie_jar_generate_cookie_header): Allocate room for
5330         chains in one pass.
5331         (find_chains_of_host): Assume that the caller has allocated DEST
5332         to be sufficiently large to take all the data.
5333         (eliminate_dups): Run through the array and eliminate dups on the
5334         fly instead of using memmove.
5335         (cookie_jar_process_set_cookie): Free cookie->domain before
5336         re-setting it.
5337
5338 2003-10-05  Gisle Vanem  <giva@bgnett.no>
5339
5340         * mswindows.c (set_sleep_mode): Fix type of
5341         _SetThreadExecutionState.
5342
5343 2003-10-05  Hrvoje Niksic  <hniksic@xemacs.org>
5344
5345         * utils.c (file_size): Return -1 if fopen() returns NULL.  Prior
5346         to this patch, wget --post-file=nosuchfile dumped core.
5347
5348 2003-10-04  Gisle Vanem  <giva@bgnett.no>
5349
5350         * mswindows.c (run_with_timeout): Use WaitForSingleObject to wait
5351         for thread termination.
5352
5353 2003-10-04  Hrvoje Niksic  <hniksic@xemacs.org>
5354
5355         * log.c: Use `...' in function definitions; ansi2knr will convert
5356         them to va_dcl.  This allowed removal of the ugly VA_START_1 and
5357         VA_START_2 macros.
5358
5359 2003-10-03  Gisle Vanem  <giva@bgnett.no>
5360
5361         * connect.c: And don't include them here.
5362
5363         * mswindows.h: Include winsock headers here.
5364
5365 2003-10-03  Hrvoje Niksic  <hniksic@xemacs.org>
5366
5367         * html-parse.c (convert_and_copy): Move variable declarations
5368         before statements.
5369
5370 2003-10-02  Gisle Vanem  <giva@bgnett.no>
5371
5372         * mswindows.c (run_with_timeout): For Windows: Run the 'fun' in a
5373         thread via a helper function. Continually query the thread's
5374         exit-code until finished or timed out.
5375
5376 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
5377
5378         * wget.h (XMALLOC_ARRAY): Removed.
5379         (ALLOCA_ARRAY): Ditto.
5380
5381         * html-parse.c: Renamed alloca_p to resized.
5382         (GROW_ARRAY): Renamed DO_REALLOC_FROM_ALLOCA to GROW_ARRAY and
5383         returned it to html-parse.c, since nothing else was using it.
5384
5385 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
5386
5387         * retr.c (retrieve_url): Initialize DUMMY storage for DT.  Caught
5388         by valgrind.
5389
5390 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
5391
5392         * html-parse.c (convert_and_copy): Handle numeric entities in
5393         hexadecimal, &#xHH.
5394         (convert_and_copy): Copy the contents directly to the pool without
5395         a stack-allocated intermediary.
5396
5397 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
5398
5399         * utils.c (alarm_set): New function; use either setitimer or alarm
5400         to set up the alarm.
5401         (alarm_cancel): New function; cancel the alarm set up by
5402         alarm_set.
5403         (run_with_timeout): Use them.
5404
5405 2003-10-01  Hrvoje Niksic  <hniksic@xemacs.org>
5406
5407         * url.c (url_parse): Don't leak memory when a reencoded URL turns
5408         out to be invalid.
5409
5410         * url.c (parse_errors): Mark error messages for translation.
5411         (url_error): Translate error messages returned to the caller.
5412
5413 2003-10-01  Hrvoje Niksic  <hniksic@xemacs.org>
5414
5415         * ftp.c (ftp_loop_internal): Initialize TMRATE to NULL to shut up
5416         the compiler.
5417
5418 2003-09-26  Gisle Vanem  <giva@bgnett.no>
5419
5420         * src/mswindows.c: Added ws_percenttitle() showing progress in the
5421         window titlebar. Called from retr.c. Secured ws_mypath().
5422
5423         * windows/config.h.ms: alloca() prototype not needed.  Removed
5424         "#undef ENABLE_NLS"; should be in Makefile IMHO. Moved
5425         WGET_USE_STDARG from mswindows.h to config.ms.h because of #ifdef
5426         in log.c. (MSVC's vararg.h and stdarg.h are incompatible).
5427
5428 2003-09-29  Aaron Hawley <Aaron.Hawley@uvm.edu>
5429
5430         * ftp.c (getftp): --spider option should now work with FTP
5431         downloads.
5432         (ftp_loop_internal): quiet reports and calculations of downloads
5433         when --spider option set, nor try deleting when --delete-after
5434         also set.
5435         (ftp_loop): --spider will skip HTML-ification of .listing file.
5436
5437 2003-09-26  Gisle Vanem  <giva@bgnett.no>
5438
5439         * mswindows.c (read_registry): Removed.
5440         (set_sleep_mode): New function.
5441         (windows_main_junk): Call it.
5442
5443 2003-09-26  Gisle Vanem  <giva@bgnett.no>
5444
5445         * mswindows.c (read_registry): Fix invocation of registry
5446         functions.
5447
5448         * mswindows.c (read_registry): Condition definitions of sleep and
5449         usleep with not HAVE_SLEEP and HAVE_USLEEP respectively.  Define
5450         HAVE_SLEEP and HAVE_USLEEP under __DMC__.
5451
5452 2003-09-24  Hrvoje Niksic  <hniksic@xemacs.org>
5453
5454         * url.c (url_escape_1): Revert unintentional change to lowercase
5455         xdigit escapes.
5456         (url_escape_dir): Document that this function depends on the
5457         output of url_escape_1.
5458
5459 2003-09-23  Hrvoje Niksic  <hniksic@xemacs.org>
5460
5461         * progress.c (create_image): Print the current ETA if we're done
5462         with the download.
5463         (create_image): Change '-' display char to '+' in the progress bar.
5464
5465         * Makefile.in (clean): Remove .libs.
5466
5467 2003-09-23  Hrvoje Niksic  <hniksic@xemacs.org>
5468
5469         * cookies.c (struct cookie): New flag domain_exact.
5470         (update_cookie_field): Skip leading dot in domain.
5471         (find_matching_chains): Match numeric addresses exactly; don't
5472         needlessly copy HOST to the stack.
5473         (matching_cookie): Added argument HOST.  If cookie->domain_exact
5474         is set, check that HOST is equal to cookie->domain.
5475         (cookie_jar_load): Only use TAB as delimiter.  Document the
5476         meaning of DOMAIN-FLAG.  Skip leading dot in domain.
5477         (cookie_jar_load): Don't ignore DOMAIN-FLAG -- instead, set
5478         domain_exact to true if DOMAIN-FLAG is false.
5479         (save_cookies_mapper): If domain_exact is false, prepend the
5480         domain with dot, like Mozilla does.
5481
5482 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
5483
5484         * progress.c (create_image): Print the initial part of the
5485         download with '-' characters, analogous to how dot progress prints
5486         the initial part with ','.
5487
5488         * hash.c (ptrhash): New function.
5489         (ptrcmp): Ditto.
5490         (hash_table_new): Default to identity hash table.
5491
5492 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
5493
5494         * safe-ctype.h (_sch_test): The cast of BIT to unsigned char was
5495         broken -- _sch_istable bitmasks are 16-bit, not 8-bit!  Cast BIT
5496         to unsigned short instead.
5497
5498 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
5499
5500         * url.c (path_simplify): Instead of calls to memmove, handle "./"
5501         and "../" by advancing pointers.
5502
5503 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
5504
5505         * retr.c (getproxy): Moved from url.c.
5506
5507         * convert.c: Split off link conversion from url.c into separate
5508         file.  Also included the book-keeping stuff from recur.c.
5509
5510 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5511
5512         * init.c: Improved documentation of functions.
5513         (cmd_boolean): Attempt to make code that tries to avoid calling
5514         strcmp for "speed" a bit more readable.
5515
5516         * init.c (simple_atof): Report error on encountering non-digit,
5517         non-"." character.
5518         (simple_atoi): Replacement for myatoi(), calling interface
5519         compatible with simple_atof.  Updated myatoi's callers.
5520
5521 2003-09-21  Bertrand Demiddelaer  <bert@b3rt.org>
5522
5523         * url.c (path_simplify): Would read two bytes past the end of the
5524         string in the "./" case.
5525
5526 2003-09-21  Matthew J. Mellon  <mellon@tymenet.com>
5527
5528         * http.c (gethttp): Recognize content-type "application/xhtml+xml"
5529         as what Wget considers "text/html".
5530
5531 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5532
5533         * connect.c (connect_with_timeout): Made timeout type double.
5534
5535         * options.h (struct options): New members read_timeout,
5536         dns_timeout, and connect_timeout.
5537         Use them.
5538
5539 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5540
5541         * init.c (simple_atof): New function.
5542         (cmd_time): Use it.
5543         (cmd_bytes): Accept things like "1.5k" and such.  Use simple_atof
5544         to parse decimals.
5545
5546         * retr.c (limit_bandwidth): Adjust each sleep by the error of the
5547         previous one.
5548
5549 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5550
5551         * main.c (main): Use setoptval() for setting the options.  Use
5552         run_command for `-e'.
5553
5554         * init.c (parse_line): Rewritten to return COMIND right away.
5555         Changed linkage to static.
5556         (run_wgetrc): Use the available comind when calling setval, so it
5557         doesn't have to be computed twice.
5558         (setval_internal): New function, runs the command's action without
5559         any error checking.
5560         (setoptval): New function, does what setval used to do, but exits
5561         in case of error.
5562         (run_command): New function.
5563
5564 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5565
5566         * connect.c (select_fd): Change MAXTIME's type to double.  Handle
5567         its decimal part.
5568
5569         * retr.c (sleep_between_retrievals): In the random-wait case, use
5570         random_float() to wait between 0 and 2*opt.wait seconds.
5571
5572         * utils.c (run_with_timeout): Accept `double' timeouts.  Correctly
5573         handle timeout values in (0, 1) range.
5574         (random_float): New function.
5575
5576         * options.h (struct options): Change the types of wait, waitretry,
5577         and timeout to double.
5578
5579         * init.c (cmd_time): Accept floating point time.
5580
5581 2003-09-20  Hrvoje Niksic  <hniksic@xemacs.org>
5582
5583         * retr.c (get_contents): Cosmetic fixes.
5584
5585 2003-09-20  Hrvoje Niksic  <hniksic@xemacs.org>
5586
5587         * url.c (uri_merge): Get rid of uri_merge_1.
5588         (uri_merge): Merge "foo//", "bar" as "foo//bar", not "foo///bar",
5589         i.e. don't add an extra slash merely because BASE ends with two
5590         slashes.
5591         (parse_credentials): Renamed from parse_uname.  Rewrittern in
5592         standard [beg, end) calling style.
5593         (url_skip_credentials): Renamed from url_skip_uname.  Made static.
5594         (url_skip_credentials): Include # and ; as terminators.  Old code
5595         would mistakenly consider "http://foo.com#hniksic@iskon.hr" to
5596         contain a username.
5597         (url_skip_scheme): Removed because it was unused.
5598         (url_has_scheme): Require "scheme" to be at least one char long.
5599
5600 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
5601
5602         * url.c (url_file_name): Expect NULL dir_prefix.
5603
5604         * init.c (cmd_file): Use a macro to prevent multiple #ifdef
5605         WINDOWS.
5606         (defaults): Set dir_prefix to NULL by default.
5607
5608 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
5609
5610         * safe-ctype.h (_sch_test): Cast BIT to unsigned char, like latest
5611         gcc does.
5612
5613 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
5614
5615         * wget.h (BOUNDED_TO_ALLOCA): Evaluate PLACE only once.
5616         (ARRAY_SIZE): Renamed to countof.  All callers updated.
5617
5618 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
5619
5620         * main.c (main): New option --strict-comments.
5621
5622         * html-parse.c (find_comment_end): New function: simple BM search
5623         for "-->".
5624         (map_html_tags): Use it if looking at a comment and not in strict
5625         comments mode.
5626
5627 2003-09-17  Aurelien Marchand  <artaxerxes@users.sf.net>
5628
5629         * ftp.h: Added OS400 system in enum
5630         * ftp-basic.c: recognize OS400 systems
5631         * ftp.c: don't prepend the CWD if talking to OS400, since it
5632         breaks the change in library
5633
5634 2003-09-18  Hrvoje Niksic  <hniksic@xemacs.org>
5635
5636         * retr.c (get_contents): Pass the correct argument to ssl_iread.
5637
5638 2003-09-18  Hrvoje Niksic  <hniksic@xemacs.org>
5639
5640         * safe-ctype.h: Don't #define ctype.h macros to errors because
5641         that loses when someone #include's ctype.h after safe-ctype.h.
5642
5643 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
5644
5645         * url.c: Undef U, W, C after use.
5646
5647 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
5648
5649         * init.c (cmd_spec_restrict_file_names): Allow the OS setting to
5650         be augmented by ",nocontrol" which means don't escape the control
5651         characters, but otherwise keep OS settings.
5652
5653         * url.c (file_unsafe_char): Deleted.
5654         (append_uri_pathel): Query filechr_table directly.
5655         (filechr_table): Separated Unix, Windows, and control-unsafe
5656         characters.
5657
5658 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
5659
5660         * url.c (url_escape_1): New function.
5661         (url_escape): Use it.
5662         (sync_path): Handle pathological cases where u->file and u->dir
5663         contain really strange characters.
5664         (ENCODE): Deleted.
5665         (REENCODE): Deleted.
5666
5667 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
5668
5669         * url.c (url_file_name): Don't reallocate FNAME if the file
5670         doesn't exist, as is usually the case.
5671
5672         * utils.c (unique_name): New flag allow_passthrough.
5673
5674 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
5675
5676         * utils.c (wtimer_sys_diff): Convert the time difference to signed
5677         __int64, then to double.  This works around MS VC++ 6 which can't
5678         convert unsigned __int64 to double directly.
5679
5680 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
5681
5682         * Makefile.in (clean): Also remove the core.<number> files
5683         produced by recent Linux systems.
5684
5685 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
5686
5687         * http.c (post_file): Don't pad the file if it's not large
5688         enough.  Bail out instead.
5689
5690 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5691
5692         * retr.c (get_contents): Reduce the buffer size to the amount of
5693         data that may pass through for one second.  This prevents long
5694         sleeps when limiting bandwidth.
5695
5696         * connect.c (connect_to_one): Reduce the socket's RCVBUF when
5697         bandwidth limitation to small values is requested.
5698
5699 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5700
5701         * progress.c (update_speed_ring): Moved the speed ring update to a
5702         separate function and documented it better.
5703
5704         * progress.c: Use `double' for most timers to support granularity
5705         smaller than 1ms.
5706
5707 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5708
5709         * wget.h (XDIGIT_TO_XCHAR): Implement as index into a literal
5710         string.
5711         (XDIGIT_TO_xchar): Ditto.
5712
5713 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5714
5715         * utils.c: Change the type of timer-related functions from long to
5716         double, for better precision.  On machines supporting gettimeofday
5717         the timers now work with granularity of less than one millisecond.
5718
5719 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5720
5721         * cookies.c (parse_set_cookies): Fixed the parser to handle more
5722         edge conditions.
5723         (test_cookies): New function, contains a test suite for
5724         parse_set_cookies.
5725
5726 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5727
5728         * url.c (strpbrk_or_eos): Implement as a macro under Gcc.
5729
5730 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5731
5732         * cookies.c (parse_set_cookies): Allow trailing space in
5733         set-cookies header.  Also, allow any amount of whitespace, not
5734         only one character.  Allow empty set-cookies header without
5735         spewing an error.
5736
5737 2003-09-14  Hrvoje Niksic  <hniksic@xemacs.org>
5738
5739         * url.c (append_uri_pathel): Use opt.restrict_file_names when
5740         calling file_unsafe_char.
5741
5742         * init.c: New command restrict_file_names.
5743
5744         * main.c (main): New option --restrict-file-names[=windows,unix].
5745
5746         * url.c (url_file_name): Renamed from url_filename.
5747         (url_file_name): Add directory and hostdir prefix here, not in
5748         mkstruct.
5749         (append_dir_structure): New function, does part of the work that
5750         used to be in mkstruct.  Iterates over path elements in u->path,
5751         calling append_uri_pathel on each one to append it to the file
5752         name.
5753         (append_uri_pathel): URL-unescape a path element and reencode it
5754         with a different set of rules, more appropriate for handling of
5755         files.
5756         (file_unsafe_char): New function, uses a lookup table to decide
5757         whether a character should be escaped for use in file name.
5758         (append_string): New utility function.
5759         (append_char): Ditto.
5760         (file_unsafe_char): New argument restrict_for_windows, decide
5761         whether Windows file names should be escaped in run-time.
5762
5763         * connect.c: Include <stdlib.h> to get prototype for abort().
5764
5765 2003-09-14  Hrvoje Niksic  <hniksic@xemacs.org>
5766
5767         * utils.c (wtimer_sys_set): Extracted the code that sets the
5768         current time here.
5769         (wtimer_reset): Call it.
5770         (wtimer_sys_diff): Extracted the code that calculates the
5771         difference between two system times here.
5772         (wtimer_elapsed): Call it.
5773         (wtimer_elapsed): Don't return a value smaller than the previous
5774         one, which could previously happen when system time is set back.
5775         Instead, reset start time to current time and note the elapsed
5776         offset for future calculations.  The returned times are now
5777         guaranteed to be monotonically nondecreasing.
5778
5779 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
5780
5781         * host.c (lookup_host): Print the result of the DNS lookup.
5782
5783 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
5784
5785         * init.c (cmd_boolean): Accept yes/no along with on/off.
5786         (cmd_lockable_boolean): Ditto.
5787
5788 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
5789
5790         * init.c: New command dns_cache.
5791
5792         * main.c (main): New option --dns-cache[=off].
5793
5794 2003-09-09  Hrvoje Niksic  <hniksic@xemacs.org>
5795
5796         * config.h.in: Initialize HAVE_GETADDRINFO and ENABLE_IPV6.
5797
5798         * all: Use #ifdef ENABLE_IPV6 instead of the older INET6.  Use
5799         HAVE_GETADDRINFO for getaddrinfo-related stuff.
5800
5801 2003-09-09  Hrvoje Niksic  <hniksic@xemacs.org>
5802
5803         * url.c (url_parse): Return an error if the URL contains a [...]
5804         IPv6 numeric address and we don't support IPv6.
5805
5806 2003-09-05  Hrvoje Niksic  <hniksic@xemacs.org>
5807
5808         * url.c (is_valid_ipv6_address): Modified to not require
5809         zero-terminated strings.
5810         (is_valid_ipv4_address): Ditto.
5811
5812 2003-09-05  Mauro Tortonesi <mauro@deepspace6.net>
5813
5814         src/url.c: added RFC 2732 compliance for URL parsing. The
5815         functions is_*_address valid are a modified version of
5816         glibc 2.3.2 inet_pton's code.
5817
5818 2003-09-03  Ahmon Dancy  <dancy@dancysoft.com>
5819
5820         * main.c init.c options.h: Added --retry-connrefused option so
5821         that Connection Refused failures are treated as non-fatal (when
5822         trying to retrieve from busy servers).
5823
5824         * wget.h: New CONNECT_ERROR macro for encapsulating this
5825         modification.
5826
5827         * ftp.c http.c : Use CONNECT_ERROR macro in places where
5828         ECONNREFUSED was checked.
5829
5830 2003-01-11  Ian Abbott  <abbotti@mev.co.uk>
5831
5832         * ftp.c (ftp_retrieve_glob): Reject insecure filenames as determined
5833         by calling new function has_insecure_name_p.  This is based on a
5834         patch by Red Hat.
5835
5836         * fnmatch.c (has_insecure_name_p): New function: returns non-zero
5837         if filename starts with `/' or contains `../' and is therefore
5838         considered insecure.
5839
5840         * fnmatch.h: Declare has_insecure_name_p().
5841
5842 2002-08-03  Hrvoje Niksic  <hniksic@xemacs.org>
5843
5844         * init.c (cmd_file): Allocate RESULT correctly.
5845
5846 2002-07-24  Hrvoje Niksic  <hniksic@xemacs.org>
5847
5848         * recur.c (retrieve_tree): Check whether downloaded_html_set is
5849         non-NULL before using it.
5850
5851 2002-05-27  Hrvoje Niksic  <hniksic@arsdigita.com>
5852
5853         * html-parse.c (NAME_CHAR_P): Allow almost any character here.
5854
5855 2002-05-24  Hrvoje Niksic  <hniksic@arsdigita.com>
5856
5857         * progress.c (bar_set_params): Fall back to dot progress if the
5858         terminal type is "emacs".
5859
5860 2002-05-20  Hrvoje Niksic  <hniksic@arsdigita.com>
5861
5862         * log.c: Don't #undef WGET_USE_STDARG.
5863
5864 2002-05-16  Hrvoje Niksic  <hniksic@arsdigita.com>
5865
5866         * hash.c (prime_size): Store the offset of the prime number in the
5867         prime table.  When searching, start with the given offset.
5868         (hash_table_new): Pass the pointer to ht->prime_offset to
5869         prime_size.
5870         (grow_hash_table): Ditto.
5871         (prime_size): Make 13 the first prime to make empty hash tables
5872         slightly smaller.
5873
5874 2002-05-16  Ian Abbott  <abbotti@mev.co.uk>
5875
5876         * recur.c (download_child_p): Minor optimization to avoid an
5877         unnecessary additional call to schemes_are_similar_p function.
5878
5879 2002-05-16  Ian Abbott  <abbotti@mev.co.uk>
5880
5881         * url.c (schemes_are_similar_p): New function to test enumerated
5882         scheme codes for similarity.
5883
5884         * url.h: Declare it.
5885
5886         * recur.c (download_child_p): Use it to compare schemes.  This
5887         also fixes a bug that allows hosts to be spanned (without the
5888         -H option) when the parent scheme is https and the child's is
5889         http or vice versa.
5890
5891 2002-05-14  Bill Richardson  <bill@riverstonenet.com>
5892
5893         * ftp.c (getftp): Don't ftruncate stdout.
5894
5895         * http.c (gethttp): Don't ftruncate stdout.
5896
5897 2002-05-09  Ian Abbott  <abbotti@mev.co.uk>
5898
5899         * cmpt.c (strptime_internal): Synched with glibc-2.1.3.
5900         (get_number): Ditto.
5901         (get_alt_number): Ditto.
5902         (__isleap): New function-like macro used by strptime.
5903         (day_of_the_week): New function used by strptime.
5904         (day_of_the_year): Ditto.
5905         (__mon_yday): Now shared by mktime and strptime implementations.
5906
5907 2002-05-08  Hrvoje Niksic  <hniksic@arsdigita.com>
5908
5909         * cookies.c (check_domain_match): Use match_tail in case
5910         insensitive mode.
5911
5912         * utils.c (match_tail): Allow the caller to specify case
5913         insensitive mode.
5914
5915         * cookies.c (store_cookie): When expiry_time is 0, print it as
5916         undefined, not indefinite.
5917
5918 2002-05-07  Ian Abbott  <abbotti@mev.co.uk>
5919
5920         * cookies.c (cookie_jar_process_set_cookie): Do not store
5921         discarded cookie.
5922
5923 2002-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
5924
5925         * cookies.c (check_domain_match): Allow cookies to be set for
5926         subdomains of unknown top-level domains under some circumstances.
5927
5928 2002-04-21  Thomas Lussnig  <thomas.lussnig@bewegungsmelder.de>
5929
5930         * gen_ssl.c:
5931         - allow checking of server cert
5932         - allow defining client cert type
5933         - allow limit of ssl protocol
5934         - check more return values
5935         - added debug message on break
5936
5937 2002-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
5938
5939         * recur.c (download_child_p): Revert order of items in check
5940         number 6 for clarity.
5941
5942 2002-04-20  Hrvoje Niksic  <hniksic@arsdigita.com>
5943
5944         * init.c: Ditto.
5945
5946         * main.c: Ditto.
5947
5948         * http.c: Use the new interface.
5949
5950         * cookies.c: Provide an OO-style "cookie jar" interface to enable
5951         separate cookie jars.
5952
5953         * http.c (http_atotm): Declare argument as const.
5954
5955 2002-04-20  Hrvoje Niksic  <hniksic@arsdigita.com>
5956
5957         * cookies.c (cookie_new): Default to PORT_ANY.
5958         (find_cookie_chain_exact): Only search by DOMAIN.
5959         (find_matching_cookie): Also check that PORT matches.
5960         (store_cookie): Only match the domain.
5961         (set_cookie_header_cb): When a cookie "fakes" a domain, assume it
5962         is valid for that host rather than discarding it completely.
5963         (find_matching_chains): Don't search by PORT.
5964         (matching_cookie): Also match PORT.
5965         (load_cookies): Set the port if specified, otherwise leave it as
5966         ANY.
5967         (save_cookies_mapper): Save the port if specified, otherwise leave
5968         it empty.
5969
5970 2002-04-19  Thomas Lussnig  <thomas.lussnig@bewegungsmelder.de>
5971
5972         * init.c: The option `egdfile' was not in sort order.
5973
5974 2002-04-16  Hrvoje Niksic  <hniksic@arsdigita.com>
5975
5976         * ftp.c (getftp): Treat directories that begin with <letter>: as
5977         absolute.
5978         (getftp): Strip trailing slashes from con->id before merging it
5979         with TARGET.
5980
5981 2002-04-16  Hrvoje Niksic  <hniksic@arsdigita.com>
5982
5983         * http.c (gethttp): If Content-Type is not given, assume
5984         text/html.
5985
5986 2002-04-15  Hrvoje Niksic  <hniksic@arsdigita.com>
5987
5988         * recur.c (download_child_p): Don't ignore rejection of HTML
5989         documents that are themselves leaves of recursion.
5990
5991 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
5992
5993         Makefile.in: Updated several dependencies for object files to take
5994         account of nested include files.
5995
5996 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
5997
5998         Makefile.in: The target `connect$o' (connect.o) now depends on
5999         `utils.h'
6000
6001 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
6002
6003         * host.c (SET_H_ERRNO): New function-like macro to set `h_errno'.
6004         (gethostbyname_with_timeout): Use it.
6005
6006         * utils.c: Don't define `SETJMP()', `run_with_timeout_env' or
6007         `abort_run_with_timeout()' when `USE_SIGNAL_TIMEOUT' is undefined.
6008
6009 2002-04-15  Hrvoje Niksic  <hniksic@arsdigita.com>
6010
6011         * host.c (getaddrinfo_with_timeout): New function.
6012         (gethostbyname_with_timeout): Ditto.
6013         (lookup_host): Use them.
6014
6015 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6016
6017         * utils.c (number_to_string): Handle the case when n < -INT_MAX.
6018
6019 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6020
6021         * init.c (comind): Use a marginally faster implementation of
6022         binary search.  To quote Martin Buchholz, "a nanosecond saved is a
6023         nanosecond earned."
6024
6025 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6026
6027         * main.c (print_help): Document `--post-data' and `--post-file'.
6028
6029 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6030
6031         * http.c (gethttp): Ditto.
6032
6033         * retr.c (retrieve_url): Initialize variables to appease the
6034         compiler.
6035
6036         * gen_sslfunc.c (ssl_iread): Don't handle EINTR when calling
6037         select_fd.
6038         (ssl_iwrite): Ditto.
6039
6040         * connect.c (select_fd): Rewrite to handle EINTR.  Set errno to
6041         ETIMEDOUT in case of timeout.
6042         (iread): No need to handle EINTR when calling select_fd.
6043         (iwrite): Ditto.
6044
6045 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6046
6047         * retr.c (retrieve_url): Make sure that POST is not honored for
6048         redirections.
6049
6050         * http.c (gethttp): Send the POST data when requested.
6051         (post_file): New function.
6052         (gethttp): Use it.
6053
6054         * main.c (main): Ditto.
6055
6056         * init.c: Add new options.
6057
6058         * options.h (struct options): New options post_data and
6059         post_file_name.
6060
6061 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6062
6063         * connect.c (connect_with_timeout): Firing SIGALRM can result in
6064         connect() exiting with EINTR.  Treat EINTR the same as ETIMEDOUT.
6065
6066 2002-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6067
6068         * connect.c (connect_with_timeout): Use it.
6069
6070         * utils.c (run_with_timeout): New function.
6071
6072 2002-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6073
6074         * url.c (getproxy): Accept a struct url argument.  This obviates
6075         the need for USE_PROXY_P.
6076
6077         * retr.c (retrieve_url): Allow proxy to be a non-FTP URL.
6078
6079         * ftp.c (getftp): Recognize FWTK-style proxy.
6080
6081 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6082
6083         * config.h.in: Only define _VA_LIST when compiled with gcc.
6084
6085 2002-04012  Ian Abbott  <abbotti@mev.co.uk>
6086
6087         * http.c (http_loop): Compensate for MS Windows two-second
6088         granularity of file modification time when comparing timestamps.
6089
6090         * ftp.c (ftp_retrieve_list): Ditto.
6091
6092 2002-04-12  Ian Abbott  <abbotti@mev.co.uk>
6093
6094         * utils.c (has_html_suffix_p): New function to test filename for
6095         common html extensions.
6096
6097         * utils.h: Declare it.
6098
6099         * http.c (http_loop): Use it instead of previous test.
6100
6101         * retr.c (retrieve_url): Ditto.
6102
6103         * recur.c (download_child_p): Ditto.
6104
6105 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6106
6107         * config.h.in: Define _VA_LIST on Solaris to prevent stdio.h from
6108         declaring va_list.
6109         From Kevin Rodgers <kevinr@ihs.com>.
6110
6111 2002-04-12  Ian Abbott  <abbotti@mev.co.uk>
6112
6113         * Makefile.in: Specify libtool mode explicitly when linking.
6114
6115 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6116
6117         * connect.c (connect_with_timeout): New function.
6118         (connect_to_one): Use it.
6119
6120         * config.h.in: Add stubs for HAVE_SIGSETJMP, HAVE_SIGBLOCK, and
6121         HAVE_SETJMP_H.
6122
6123 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6124
6125         * log.c: Set WGET_USE_STDARG if __STDC__ is defined and stdarg.h
6126         is present.
6127
6128 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6129
6130         * progress.c (bar_create): If INITIAL is larger than TOTAL, fix
6131         TOTAL.
6132         (bar_finish): Likewise.
6133
6134 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6135
6136         * html-url.c (tag_handle_form): New function.  Pick up form
6137         actions and mark them for conversion only.
6138
6139 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6140
6141         * progress.c (struct progress_implementation): Use PARAMS when
6142         declaring the parameters of *create, *update, *finish, and
6143         *set_params.
6144
6145         * netrc.c: Ditto.
6146
6147         * http.c: Reformat some function definitions so that ansi2knr can
6148         read them.
6149
6150         * hash.c (struct hash_table): Use the PARAMS macro around
6151         parameters in the declaration of hash_function and test_function.
6152         (prime_size): Spell 2580823717UL and 3355070839UL as (unsigned
6153         long)0x99d43ea5 and (unsigned long)0xc7fa5177 respectively, so
6154         that pre-ANSI compilers can read them.
6155         (find_mapping): Use PARAMS when declaring EQUALS.
6156         (hash_table_put): Ditto.
6157
6158         * ftp.h: Wrap the parameters of ftp_index declaration in PARAMS.
6159
6160         * cookies.c (cookie_new): Use (unsigned long)0 instead of 0UL,
6161         which was unsupported by pre-ANSI compilers.
6162
6163         From Nelson H. F. Beebe <beebe@math.utah.edu>, for the most part.
6164
6165 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6166
6167         * url.c (url_filename): Use compose_file_name regardless of
6168         whether opt.dirstruct is set.
6169         (mkstruct): Don't handle the query and the reencoding of DIR; that
6170         is done in compose_file_name.
6171
6172 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6173
6174         * wget.h: Ditto for extern char *exec_name.
6175
6176         * options.h: Don't guard against OPTIONS_DEFINED_HERE -- it is
6177         perfectly legal to follow an `extern' with a non-`extern' ones,
6178         provided the types match.
6179
6180         * main.c: Don't define OPTIONS_DEFINED_HERE.
6181
6182 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6183
6184         * progress.c (create_image): Revert to calculating ETA based on
6185         average download speed.
6186         (create_image): Don't print ETA until the download has been active
6187         for at least 3 seconds.
6188         (create_image): When ETA is not available, don't print anything.
6189         The previous version would print --:--.
6190
6191 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6192
6193         * progress.c (bar_update): Keep updating a subinterval until it
6194         reaches or exceeds a watermark.  That way the measurement will be
6195         guaranteed to span a configurable minimum of time.  The current
6196         default is 3s in 30 100ms intervals.
6197
6198 2002-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6199
6200         * progress.c (bar_update): Maintain an array of the time it took
6201         to perform previous 30 network reads.
6202         (create_image): Calculate the download speed and ETA based on the
6203         last 30 reads, not the entire download.
6204         (create_image): Make sure that the ETA is not changed more than
6205         once per second.
6206
6207 2002-04-09  Ian Abbott  <abbotti@mev.co.uk>
6208
6209         * mswindows.c (borland_utime): New function conditionally defined
6210         when `HACK_BCC_UTIME_BUG' is defined.  A reimplementation of
6211         `utime()' as Borland's `utime()' function is broken on Windows 9x
6212         systems.  (Original patch by Chin-yuan Kuo <sr1111111@yahoo.com.tw>.)
6213
6214 2002-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
6215
6216         * ftp.c (ftp_loop): Propagate the result of ftp_retrieve_glob.
6217
6218 2002-03-26  Ian Abbott  <abbotti@mev.co.uk>
6219
6220         * Makefile.in: Updated several dependencies for object files.
6221
6222 2002-03-20  Ian Abbott  <abbotti@mev.co.uk>
6223
6224         * mswindows.c: Include "utils.h".
6225
6226 2002-03-18  Ian Abbott  <abbotti@mev.co.uk>
6227
6228         * host.h: Don't include netdb.h on windows.
6229
6230 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6231
6232         * recur.c (retrieve_tree): Handle the case when start_url doesn't
6233         parse.
6234
6235 2002-02-19  Andreas Damm  <andreas-sourceforge@radab.org>
6236
6237         * wget.h (DO_REALLOC_FROM_ALLOCA): Multiply with sizeof(type) when
6238         calling xmalloc and memcpy.
6239
6240 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6241
6242         * host.h: Include Unix-specific includes #ifndef WINDOWS.
6243         Patch originally provided by Christian Lackas.
6244
6245 2002-02-11  Christian Lackas  <delta@lackas.net>
6246
6247         * recur.c: recurive downloading for https fixed.
6248
6249 2002-02-19  Alan Eldridge  <alane@geeksrus.net>
6250
6251         * host.h: Also include <netinet/in.h> and <sys/socket.h>.
6252
6253         * ftp-basic.c: Also include <netinet/in.h>.
6254
6255 2002-02-05  Ian Abbott  <abbotti@mev.co.uk>
6256
6257         * http.c (gethttp): when -c used, mark already fully retrieved
6258         file as successfully retrieved.
6259
6260 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6261
6262         * url.c (url_parse): Don't treat '?' as query string separator
6263         when parsing FTP URLs.
6264
6265 2002-02-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6266
6267         * html-url.c (tag_handle_meta): Don't crash on <meta
6268         http-equiv=refresh> where content is missing.
6269
6270 2002-01-31  Herold Heiko  <Heiko.Herold@previnet.it>
6271
6272         * ftp-basic.c, host.c: don't include sys/socket.h, arpa/inet.h,
6273         netdb.h on windows.
6274
6275 2002-01-30  Hrvoje Niksic  <hniksic@arsdigita.com>
6276
6277         * retr.c (retrieve_url): Remove redirection cycle detection.  This
6278         is because some sites legitimately redirect the user back to the
6279         same location, e.g. after an authorization check performed by
6280         another page.  MAX_REDIRECTIONS is still used to prevent infinite
6281         redirection loops.
6282
6283 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6284
6285         * http.c (gethttp): Wrap host name in square brackets if it
6286         contains a colon.
6287
6288 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6289
6290         * url.c (url_parse): Allow all hex digits, not only decimal ones,
6291         to form an IP address.
6292
6293 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6294
6295         * url.c (urlchr_table): Make square braces reserved, so we can
6296         parse http://[::1]/.
6297         (url_parse): Handle host in braces.
6298         (url_string): If url->host contains colons, wrap it in braces.
6299
6300 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6301
6302         * connect.c (resolve_bind_address): New function.
6303         (connect_to_one): Use it.
6304         (bindport): Ditto.
6305
6306         * init.c: Don't resolve bind-address here.
6307
6308         * host.c (wget_sockaddr_set_address): Would bug out with ADDR == NULL.
6309
6310 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6311
6312         * host.c (lookup_host): Use sizeof(ip4_address) to calculate the
6313         offset.
6314         (address_list_new): Use map_ipv4_to_ip.
6315         (wget_sockaddr_set_address): Convert ADDR to IPv4 before using it
6316         in IPv4 context.
6317
6318 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6319
6320         * source: Integrated IPv6 support.
6321         Written by Thomas Lussnig <thomas.lussnig@bewegungsmelder.de>.
6322
6323 2002-01-15  Ian Abbott  <abbotti@mev.co.uk>
6324
6325         * init.c (cmd_file): Change `\' to `/' for Windows (yes, really!)
6326         (cmd_directory): New function. Like cmd_file(), but strips
6327         trailing directory separators.
6328         (commands): Change action for "dirprefix" from `cmd_file' to
6329         `cmd_directory'.
6330
6331         * utils.c (make_directory): Allow intermediate `mkdir' calls to
6332         fail, as not all path components that do not exist should be
6333         directory components, especially under Windows.
6334
6335 2002-01-17  Hrvoje Niksic  <hniksic@arsdigita.com>
6336
6337         * netrc.c (parse_netrc): Skip leading whitespace before testing
6338         whether the line is empty.  Empty lines still contain the line
6339         terminator.
6340
6341 2002-01-15  Hrvoje Niksic  <hniksic@arsdigita.com>
6342
6343         * gen_sslfunc.c (ssl_iread): Call select on the file descriptor
6344         only if no data is pending in SSL buffers.
6345         From tony@bluetail.com.
6346
6347 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6348
6349         * headers.c (header_get): Strip trailing whitespace from the
6350         header.
6351
6352 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6353
6354         * url.c (parse_uname): URL-decode *USER and *PASSWD.
6355
6356 2002-01-07  Ian Abbott <abbotti@mev.co.uk>
6357
6358         * url.c (uri_merge_1): Deal with "net path" relative URL (one that
6359         starts with "//").
6360
6361 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6362
6363         * http.c (gethttp): Invalidate SOCK if get_contents encountered an
6364         error.
6365
6366 2001-12-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6367
6368         * version.c: Wget 1.8.1 is released.
6369
6370 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6371
6372         * version.c: Wget 1.8.1-pre3 is released.
6373
6374 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6375
6376         * recur.c (retrieve_tree): Enqueue the canonical representation of
6377         start_url, so that the test against dl_url_file_map works.
6378
6379 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6380
6381         * log.c (logputs): Check for requested verbosity before printing
6382         anything.
6383
6384 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6385
6386         * html-url.c (tag_handle_link): Treat the "shortcut icon" link as
6387         inline.
6388
6389 2001-12-18  Hrvoje Niksic  <hniksic@arsdigita.com>
6390
6391         * recur.c (retrieve_tree): Make a copy of file obtained from
6392         dl_url_file_map because the code calls xfree(file) later.
6393
6394 2001-12-18  Hrvoje Niksic  <hniksic@arsdigita.com>
6395
6396         * recur.c (register_html): Maintain a hash table of HTML files
6397         along with the list.  Disallow duplicates.
6398         (retrieve_tree): Use downloaded_html_set to check whether the file
6399         found in dl_url_file_map is an HTML file, and descend into it if
6400         so.
6401         (convert_all_links): Don't guard against duplicates in
6402         downloaded_html_list, since they are no longer possible.
6403
6404 2001-12-18  Ian Abbott  <abbotti@mev.co.uk>
6405
6406         * recur.c (retrieve_tree): Pass on referring URL when retrieving
6407         recursed URL.
6408
6409 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
6410
6411         * version.c: Wget 1.8.1-pre2 is released.
6412
6413 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
6414
6415         * retr.c (sleep_between_retrievals): Simplify indentation.
6416
6417 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
6418
6419         * gen_sslfunc.c (ssl_init_prng): Use random_number to get a byte
6420         of "randomness" at a time.
6421         (ssl_init_prng): Don't seed the PRNG; random_number will do that.
6422
6423         * retr.c (sleep_between_retrievals): Use it.  Make sure that the
6424         random amount averages in opt.wait.
6425         (sleep_between_retrievals): Don't seed the PRNG; random_number
6426         will do that.
6427
6428         * utils.c (random_number): New function.
6429
6430 2001-12-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6431
6432         * url.c (path_simplify): Move here from utils.c, and make static.
6433
6434 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6435
6436         * init.c (wgetrc_file_name): Print correct message when loading
6437         getenv("WGETRC") fails.
6438
6439 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6440
6441         * recur.c (register_download): Don't abort when one URL references
6442         two different files.
6443
6444 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6445
6446         * http.c (gethttp): Check for conn->scheme, not u->scheme, before
6447         calling ssl_iwrite.
6448
6449 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6450
6451         * version.c: Wget 1.8.1-pre1 is released.
6452
6453 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6454
6455         * res.c (matches): Fix broken URL in the docstring.
6456
6457 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6458
6459         * html-url.c (tag_url_attributes): Mark <embed href=...> as
6460         external.
6461
6462 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6463
6464         * url.c (get_urls_file): Cosmetic changes.
6465
6466 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6467
6468         * html-url.c (append_one_url): Resurrect warning when unable to
6469         resolve a relative link.
6470
6471 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6472
6473         * html-url.c (collect_tags_mapper): Break into several functions.
6474         (tag_url_attributes): Collect <embed href=...>.
6475
6476 2001-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6477
6478         * host.c: New type ipv4_address.  Use it consistently instead of
6479         `unsigned char[4]' and `unsigned char *'.
6480         (pretty_print_address): Accept a `const void *', to require even
6481         less casting.
6482
6483 2001-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6484
6485         * ftp-ls.c (ftp_parse_vms_ls): Fix obvious memory leaks.
6486
6487 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6488
6489         * main.c (main): Initialize progress after fork_to_background, so
6490         that it knows when to use dots.
6491
6492         * mswindows.c (ws_hangup): Call log_request_redirect_output.
6493
6494         * utils.c (fork_to_background): Print the PID of the child
6495         process.
6496
6497         * log.c (log_request_redirect_output): Set a flag that output
6498         redirection has been requested.  Doing anything else in a signal
6499         handler is unsafe.
6500         (check_redirect_output): New function: check whether redirection
6501         has been requested and, if so, call redirect_output().
6502         (logputs): Call check_redirect_output.
6503         (logprintf): Ditto.
6504         (debug_logprintf): Ditto.
6505         (redirect_output): Print clearer messages.
6506
6507         * main.c (redirect_output_signal): Don't call
6508         redirect_output_signal directly.  Instead, call
6509         log_request_redirect_output.
6510
6511         * utils.c (memfatal): Ditto.
6512
6513         * progress.c (display_image): Use it.
6514
6515         * log.c (log_set_save_context): New function: allow the caller to
6516         turn off saving log context lines.
6517
6518 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6519
6520         * host.c (address_list_set_faulty): Uncomment a sanity check.
6521
6522 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6523
6524         * utils.c (long_to_string): Return a pointer after where the
6525         number ends.
6526         (long_to_string): Rename to number_to_string.
6527
6528 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6529
6530         * utils.c (path_simplify): Correctly handle the unlikely case that
6531         b starts out as path + 1.
6532
6533 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6534
6535         * utils.c (path_simplify): Rewrite, with better comments, and
6536         without the use of strcpy to move overlapping blocks.
6537
6538 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6539
6540         * init.c (cmd_spec_progress): Resurrect.  Check whether VAL is a
6541         valid progress type before setting it.
6542
6543 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6544
6545         * main.c (main): Remove stray debugging message.
6546
6547 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6548
6549         * progress.c (create_image): Fix ETA padding when hours are prined.
6550
6551 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6552
6553         * version.c: Wget 1.8 is released.
6554
6555 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6556
6557         * url.c (reencode_string): Declare static.
6558
6559         * res.c (registered_specs): Declare static.
6560
6561         * progress.c (current_impl_locked): Declare static.
6562
6563         * log.c (flush_log_p): Declare static.
6564         (needs_flushing): Ditto.
6565
6566         * http.c (digest_authentication_encode): Declare static.
6567
6568         * html-url.c (init_interesting): Declare static.
6569
6570         * host.c (host_name_addresses_map): Declare static.
6571
6572         * cookies.c (find_matching_chains): Declare static.
6573
6574         * ftp-ls.c (ftp_parse_vms_ls): Warn about the memory leak
6575         indicated by lint.
6576
6577         * utils.c (path_simplify): Remove unused variable STUB_CHAR.
6578
6579         * host.c (address_list_set_faulty): Document that INDEX is
6580         currently unused.
6581
6582         * url.c (rewrite_shorthand_url): Remove unused variable PATH.
6583
6584 2001-12-08  Hrvoje Niksic  <hniksic@arsdigita.com>
6585
6586         * version.c: Wget 1.8-pre2 is released.
6587
6588 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6589
6590         * progress.c (progress_handle_sigwinch): Set up the signal again.
6591
6592         * utils.c: Include <sys/termios.h>, where Solaris defines
6593         TIOCGWINSZ.
6594
6595         * progress.c (bar_create): Don't use the last column on the screen.
6596         (create_image): Pad ETA to constant size.  Pad SIZE to nine digits
6597         only until it exceeded them.
6598
6599 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6600
6601         * version.c: Wget 1.8-pre1 is released.
6602
6603 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6604
6605         * progress.c (progress_create): Make sure that, when the output is
6606         redirected, the progress implementation gets changed to the
6607         fallback one.
6608         (bar_set_params): Set current_impl_locked to 1 when "force" is
6609         specified.
6610         (progress_create): Don't change the progress implementation if
6611         current_impl_locked is non-zero.
6612
6613         * main.c (redirect_output_signal): Call
6614         progress_schedule_redirect.
6615
6616         * progress.c (progress_schedule_redirect): New function.
6617
6618 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6619
6620         * log.c (logvprintf): Restructure to allow being called multiple
6621         times.
6622         (logprintf): Call logvprintf in a loop.
6623         (debug_logprintf): Ditto.
6624
6625 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6626
6627         * gen_sslfunc.c (ssl_init_prng): Allow the user to disable EGD by
6628         setting egd_file it to empty string.
6629
6630         * main.c (main): Change the option name from --sslegdsock to
6631         --egd-file.
6632
6633 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6634
6635         * gen_sslfunc.c (ssl_init_prng): Make the printed message
6636         translatable.
6637
6638 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6639
6640         * url.c (scheme_disable): New function.
6641
6642         * main.c (main): Call ssl_init_prng from here rather than from
6643         init_ssl, so that it has a chance to disable support for https
6644         before a URL has been resolved.
6645
6646         * gen_sslfunc.c (ssl_init_prng): Seed with rand() if all else
6647         failed.
6648         (ssl_init_prng): Disable support for https if seeding the PRNG
6649         fails.
6650
6651 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6652
6653         * utils.c (read_whole_line): Handle lines beginning with \0.
6654
6655 2001-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
6656
6657         * recur.c (convert_all_links): Guard against duplicates in
6658         downloaded_html_files.
6659         (register_download): Don't invalidate similar-looking URLs.
6660         (match_except_index): New function.
6661
6662 2001-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
6663
6664         * utils.c (path_simplify): Document with test cases.
6665
6666 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
6667
6668         * gen_sslfunc.c: Ditto.
6669
6670         * rbuf.c: Include <string.h>.
6671
6672 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
6673
6674         * recur.c (retrieve_tree): Check whether the URL was already
6675         downloaded before downloading it again.
6676         (descend_child_p): Renamed to download_child_p.
6677         (register_download): When one URL is downloaded to a file already
6678         "owned" by another URL, delete all references that map any URL to
6679         that file.
6680         (register_delete_file): New function.
6681         (retrieve_tree): Use it after deleting a file.
6682
6683         * url.c (url_parse): Re-canonicalize the URL also if the path is
6684         empty, so that e.g. "http://www.server.com" ->
6685         "http://www.server.com/".
6686         (lowercase_str): Use ISUPPER instead of !ISLOWER.
6687
6688         * retr.c (retrieve_url): Use the canonical URL form when calling
6689         register_download().
6690
6691 2001-12-04  Ian Abbott <abbotti@mev.co.uk>
6692
6693         * snprintf.c (dopr): Use `unsigned int' as the second argument to
6694         va_arg when casting to `unsigned short' is intended.
6695
6696 2001-12-04  Herold Heiko  <Heiko.Herold@previnet.it>
6697
6698         * gen_sslfunc.c: on windows provide ssl crypto random
6699           initialization through RAND_screen(); could possibly
6700           be not enough for strong ssl communication (see the
6701           relevant manual page from the openssl package).
6702
6703 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
6704
6705         * url.c (local_quote_string): Reenable quoting of question marks,
6706         but only when `--html-extension' is used.
6707
6708 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
6709
6710         * version.c: Wget 1.8-beta3 is released.
6711
6712 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
6713
6714         * snprintf.c (dopr): Cast the result of va_arg to short int and
6715         short unsigned int where these types are expected to be used.
6716
6717 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
6718
6719         * snprintf.c (dopr): Replace `short int' and `unsigned short int'
6720         with `int' when using it as the second argument to `va_arg'.
6721
6722 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
6723
6724         * host.c (address_list_new_one): New function.
6725         (lookup_host): Use it.
6726
6727 2001-12-03  Andre Majorel  <amajorel@teaser.fr>
6728
6729         * host.c (lookup_host): Don't initialize TMPSTORE directly because
6730         it's not legal C.
6731
6732 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
6733
6734         * ftp-basic.c (ftp_port): Don't return HOSTERR if we fail getting
6735         the socket data.
6736
6737         * ftp.c: Ditto.
6738
6739         * http.c: No need to declare h_errno.
6740
6741         * host.c: Declare h_errno.
6742
6743 2001-12-02  Hrvoje Niksic  <hniksic@arsdigita.com>
6744
6745         * utils.c (file_merge): If BASE doesn't contain a slash, just
6746         return a copy of FILE.
6747
6748 2001-12-02  Hrvoje Niksic  <hniksic@arsdigita.com>
6749
6750         * version.c: Wget 1.8-beta2 is released.
6751
6752 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6753
6754         * ftp.c (getftp): When PWD fails, assume "/".
6755
6756         * ftp-basic.c (ftp_syst): Fix indentation.
6757
6758 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6759
6760         * url.c (get_urls_file): If opt.base_href is specified, merge each
6761         URL with the base.
6762
6763 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6764
6765         * main.c (print_help): Don't document the removed `-nh'.
6766
6767 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6768
6769         * url.c (url_full_path): Document better.
6770
6771         * http.c (gethttp): Use the full path when creating digest
6772         authorization.
6773
6774 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6775
6776         * cookies.c (path_matches): Return 0 if PREFIX doesn't begin with
6777         '/'.
6778
6779 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6780
6781         * cookies.c (path_matches): FULL_PATH doesn't begin with '/', but
6782         PREFIX does.
6783
6784 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6785
6786         * cookies.c (check_domain_match): Reimplement to match Netscape's
6787         "preliminary specification" for cookies.
6788
6789 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6790
6791         * url.c (replace_attr_refresh_hack): New function.
6792         (convert_links): Call replace_attr_refresh_hack for Refresh
6793         links.  It will add the "TMOUT; URL=" junk before the link.
6794
6795         * html-url.c (collect_tags_mapper): Set ID to the ID of the
6796         "content" attribute, not "http-equiv".
6797         (collect_tags_mapper): Don't use OFFSET to hack the raw_* values;
6798         instead, store the information that this entry belongs to a
6799         "refresh" link.
6800
6801 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6802
6803         * version.c: Wget 1.8-beta1 is released.
6804
6805 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6806
6807         * recur.c (retrieve_tree): Allow -p retrievals to exceed maximum
6808         depth by more than one.
6809
6810 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
6811
6812         * retr.c (retrieve_url): Don't allow more than 20 redirections.
6813
6814 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
6815
6816         * recur.c (retrieve_tree): Skip the non-inline entries when
6817         enqueuing the children of a leaf HTML node in -p mode.
6818         (descend_url_p): Ignore opt.no_parent when in -p mode and UPOS is
6819         "inline".
6820
6821         * html-url.c (get_urls_html): Don't accept dash_p_leaf_HTML.
6822         (collect_tags_mapper): When an entry is "inline", mark it as such.
6823
6824         * recur.c (descend_url_p): Fix test when checking for
6825         acceptance/rejection rules.
6826
6827 2001-10-31 Daniel BODEA <dali@dali-designs.com>
6828
6829         * netrc.c (search_netrc): When slack_default is 0, still look for
6830         an account with matching password, just not the "default account".
6831         HTTP Authorization using .netrc should now work as expected.
6832
6833 2001-11-30  T. Bharath  <TBharath@responsenetworks.com>
6834
6835         * http.c (persistent_available_p): Call SHUTDOWN_SSL if
6836         test_socket_open fails.
6837
6838 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
6839
6840         * progress.c (display_image): Just print one CR to reset the
6841         cursor position.
6842
6843 2001-11-30  Christian Fraenkel  <c.fraenkel@gmx.net>
6844
6845         * init.c: New command `ssl_egd_sock'.
6846
6847         * main.c (main): New option `--sslegdsock'.
6848
6849         * gen_sslfunc.c (ssl_init_prng): Seed the RNG using EGD.
6850
6851 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6852
6853         * cmpt.c (memmove): Include a simple memmove implementation.
6854
6855 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6856
6857         * headers: Guard against header files being included twice.
6858
6859 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6860
6861         * gen-md5.c: Use unsigned char * as the buffer argument to
6862         gen_md5_update.
6863
6864 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6865
6866         * connect.h: Declare select_fd.
6867
6868 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6869
6870         * recur.c (descend_url_p): When resolving no_parent, compare with
6871         start_url, not parent url.  Otherwise link from /a/b/ to /a/c/
6872         wouldn't be followed, although the download started from /a/.
6873
6874 2001-01-23  Herold Heiko  <Heiko.Herold@previnet.it>
6875
6876         * config.h.ms, mswindows.h: defined HAVE_ISATTY, use _isatty for
6877         MS VC; somebody with Borland compiler please check and provide
6878         patch if possible;
6879
6880         * cmpt.c: provided a usleep emulation.
6881
6882 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6883
6884         * host.c (address_list_new): Initialize al->faulty.
6885
6886 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
6887
6888         * http.c (http_process_range): Accept the broken output of
6889         "JavaWebServer/1.1.1".
6890
6891 2001-11-28  Hrvoje Niksic  <hniksic@arsdigita.com>
6892
6893         * progress.c (dot_set_params): If PARAMS is unspecified, use
6894         dot_style, if available.
6895
6896         * init.c: Ditto.
6897
6898         * main.c (main): Resurect --dot-style.
6899
6900         * progress.c (dot_finish): Print the quantity if we're left at the
6901         beginning of a row.
6902
6903 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6904
6905         * cmpt.c (random): Removed.
6906
6907         * retr.c (sleep_between_retrievals): Use the more portable rand()
6908         instead of random().
6909
6910 2001-11-27  Ian Abbott <abbotti@mev.co.uk>
6911
6912         * retr.c (retrieve_from_file): Initialize `new_file' to NULL to
6913         prevent seg fault.
6914
6915 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6916
6917         * connect.c (connect_to_many): Use address_list_set_faulty to
6918         prevent the faulty address from being reused.
6919
6920         * host.c (address_list_set_faulty): New function.
6921         (address_list_get_bounds): New function, instead of
6922         address_list_count.
6923
6924 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6925
6926         * url.c (convert_links): Don't translate %d-%d.
6927
6928         * main.c (print_help): Remove stray HAVE_RANDOM code.
6929
6930 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6931
6932         * ftp.c (getftp): Improve output after sending PASV.  Don't
6933         attempt to "look up" the IP address we already know; call
6934         connect_to_one directly.
6935
6936 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6937
6938         * progress.c: Change the default progress implementation to "bar".
6939
6940 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6941
6942         * progress.c (bar_create): Print two newlines.
6943
6944 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6945
6946         * cmpt.c (random): New function, a simple-minded replacement for
6947         random() on systems that don't have it.
6948
6949 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6950
6951         * config.h.in: Put a HAVE_USLEEP stub.
6952
6953         * cmpt.c (usleep): Replacement implementation of usleep using
6954         select.
6955
6956         * init.c: New option init_rate.
6957
6958         * main.c (main): New option --limit-rate.
6959
6960         * retr.c (limit_bandwidth): New function.
6961         (get_contents): Call it to limit the bandwidth used when
6962         downloading.
6963
6964         * progress.c (dot_update): Would print the wrong download speed on
6965         rows other than the first one when the download was continued.
6966         (dot_finish): Ditto.
6967
6968 2001-11-26  Ian Abbott <abbotti@mev.co.uk>
6969
6970         * http.c (gethttp): fix undeclared variable 'err' when compiled
6971         with HAVE_SSL.
6972
6973 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6974
6975         * progress.c: Don't allocate new timers; use the timing data
6976         propagated from the caller.
6977
6978         * retr.c (get_contents): Allocate and use a timer.
6979
6980 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6981
6982         * http.c (last_host_ip): Made into an address_list.
6983         (invalidate_persistent): Release pc_last_host_ip.
6984         (register_persistent): Use lookup_host.
6985         (persistent_available_p): Check for equality of hosts using
6986         address_list_match_all.  Call address_list_release.
6987         (http_cleanup): New function.
6988
6989         * ftp.c (getftp): Use lookup_host and connect_to_many.
6990
6991         * http.c (gethttp): Use lookup_host and connect_to_many.
6992
6993         * connect.c (make_connection): Removed.
6994         (connect_to_one): New function.
6995         (connect_to_many): Ditto.
6996         (set_connection_host_name): Ditto.
6997
6998         * host.c (lookup_host): New function; new return type.
6999         (address_list_new): New function.
7000         (address_list_count): Ditto.
7001         (address_list_copy_one): Ditto.
7002         (address_list_delete): Ditto.
7003         (address_list_release): Ditto.
7004         (pretty_print_address): Ditto.
7005
7006 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7007
7008         * recur.c (retrieve_tree): In case of followed redirection,
7009         blacklist the pre-redirection URL.
7010
7011 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7012
7013         * recur.c (descend_redirect_p): New function.
7014         (retrieve_tree): Make sure redirections are not blindly followed.
7015
7016 2001-11-04  Alan Eldridge  <alane@geeksrus.net>
7017
7018         * config.h.in: added HAVE_RANDOM.
7019
7020         * options.h: added random_wait to struct options.
7021
7022         * main.c (print_help [HAVE_RANDOM], main): added arg parsing, help
7023         for --random-wait.
7024
7025         * retr.c (sleep_between_retrievals) [HAVE_RANDOM]: added
7026         implementation of random wait times.
7027
7028         * init.c (commands): added "randomwait" keyword.
7029
7030 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7031
7032         * recur.c (descend_url_p): Be more conservative with blacklisting
7033         URLs.
7034         (convert_all_links): Print how many files have been converted, and
7035         how long it took.
7036
7037         * progress.c (create_image): Place the number of downloaded bytes
7038         right after the progress bar.
7039
7040         * utils.c (suffix): Return a pointer into the string.
7041
7042 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7043
7044         * url.c (convert_links): Handle CO_NULLIFY_BASE.
7045
7046         * recur.c (retrieve_tree): Ignore download-ignorable children.
7047         (convert_all_links): Specify CO_NULLIFY_BASE when link_base_p.
7048
7049         * html-url.c (handle_link): Return the newly created urlpos.
7050         (collect_tags_mapper): When dealing with BASE, store the base
7051         reference and mark it as download-ignorable.
7052
7053 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7054
7055         * url.c (convert_links): Attempt to quote '?' as "%3F" when
7056         linking to local files.  Given up on the attempt, as it breaks
7057         local browsing.
7058
7059 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7060
7061         * main.c (private_initialize): Removed.
7062         (main): Don't call private_initialize.
7063
7064         * http.c: Call lookup_host.
7065
7066         * host.c (host_init): Removed.
7067         (add_host_to_cache): Initialize host_name_address_map here, on
7068         demand.
7069         (ngethostbyname): Commented out.
7070
7071         * connect.c (make_connection): Remove dead code; use lookup_host.
7072
7073         * host.c (store_hostaddress): Renamed to lookup_host and reversed
7074         the args.
7075         Removed host_address_name_map and host_slave_master_map.
7076
7077 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7078
7079         * progress.c (dot_create): Align the "[ skipping ... ]" string
7080         with the dots.
7081
7082         * retr.c (rate): Split into two functions: calc_rate and
7083         retr_rate.
7084
7085         * progress.c (create_image): Draw a dummy progress bar even when
7086         total size is unknown.
7087         (display_image): Place the text cursor at the end of the "image".
7088
7089 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7090
7091         * url.c (reencode_string): Use unsigned char, not char --
7092         otherwise the hex digits come out wrong for 8-bit chars such as
7093         nbsp.
7094         (lowercase_str): New function.
7095         (url_parse): Canonicalize u->url if needed.
7096         (get_urls_file): Parse each URL, and return only the valid ones.
7097         (free_urlpos): Call url_free.
7098         (mkstruct): Add :port if the port is non-standard.
7099         (mkstruct): Append the query string to the file name, if any.
7100         (urlpath_length): Use strpbrk_or_eos.
7101         (uri_merge_1): Handle the cases where LINK is an empty string,
7102         where LINK consists only of query, and where LINK consists only of
7103         fragment.
7104         (convert_links): Count and report both kinds of conversion.
7105         (downloaded_file): Use a hash table, not a list.
7106         (downloaded_files_free): Free the hash table.
7107
7108         * retr.c (retrieve_from_file): Ditto.
7109
7110         * main.c (main): Call either retrieve_url or retrieve_tree
7111         for each URL, not both.
7112
7113         * retr.c (register_all_redirections): New function.
7114         (register_redirections_mapper): Ditto.
7115         (retrieve_url): Register the redirections.
7116         (retrieve_url): Make the string "Error parsing proxy ..."
7117         translatable.
7118
7119         * res.c (add_path): Strip leading slash from robots.txt paths so
7120         that the path representations are "compatible".
7121         (free_specs): Free each individual path, too.
7122         (res_cleanup): New function.
7123         (cleanup_hash_table_mapper): Ditto.
7124
7125         * recur.c (url_queue_new): New function.
7126         (url_queue_delete): Ditto.
7127         (url_enqueue): Ditto.
7128         (url_dequeue): Ditto.
7129         (retrieve_tree): New function, replacement for recursive_retrieve.
7130         (descend_url_p): New function.
7131         (register_redirection): New function.
7132
7133         * progress.c (create_image): Cosmetic changes.
7134
7135         * init.c (cleanup): Do all those complex cleanups only if
7136         DEBUG_MALLOC is defined.
7137
7138         * main.c: Removed --simple-check and the corresponding
7139         simple_host_check in init.c.
7140
7141         * html-url.c (handle_link): Parse the URL here, and propagate the
7142         parsed URL to the caller, who would otherwise have to parse it
7143         again.
7144
7145         * host.c (xstrdup_lower): Moved to utils.c.
7146         (realhost): Removed.
7147         (same_host): Ditto.
7148
7149 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7150
7151         * utils.c (path_simplify): Preserver the (non-)existence of
7152         leading slash.  Return non-zero if changes were made.
7153
7154 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7155
7156         * progress.c (bar_update): Don't modify bp->total_length if it is
7157         zero.
7158
7159 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7160
7161         * retr.c (retrieve_url): When the redirection URL doesn't parse,
7162         print the correct error message rather than "UNKNOWN".
7163
7164 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7165
7166         * progress.c (bar_finish): If the timer didn't record any time
7167         since the download beginning, fake 1ms.
7168
7169 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7170
7171         * recur.c (recursive_retrieve): Fix typo.
7172
7173 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7174
7175         * progress.c (create_image): Don't translate "%ld ".
7176
7177 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7178
7179         * progress.c (bar_set_params): Allow the user to force the use of
7180         the bar.
7181
7182 2001-11-23  Lemble Gregory  <gregory.lemble@st.com>
7183
7184         * gen_sslfunc.c (ssl_init_prng): New function; seed the SSL RNG.
7185
7186 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7187
7188         * progress.c: Renamed dp_* functions to dot_* for greater clarity
7189         and consistency with bar_*.
7190         (print_download_speed): Get rid of the unneeded '@' character.
7191         (create_image): Fix download rate geometry.
7192
7193         * progress.c (print_elapsed): Remove spurious space.
7194         (print_elapsed): Renamed to print_download_speed, since that's
7195         what it does.
7196
7197 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7198
7199         * progress.c (bar_update): If the downloaded amount becomes larger
7200         than the expected amount, adjust the expected amount accordingly.
7201
7202 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7203
7204         * utils.c (determine_screen_width): New function.
7205
7206         * main.c (main): New option `--progress=TYPE'.
7207         (main): Implement compatibility with the old option `--dot-style'.
7208
7209         * init.c: Removed cmd_spec_dotstyle -- that logic is now in
7210         dp_set_params.
7211         (cmd_spec_progress): New function.
7212
7213         * retr.c (get_contents): Use the progress_* functions instead of
7214         the old show_progress().
7215         (show_progress): Removed.
7216         (rate): Print "xxxx.xx K/s" instead of "KB/s".  Ditto for MB/s,
7217         etc.
7218
7219         * progress.c (set_progress_implementation): New function.
7220         (valid_progress_implementation_p): Ditto.
7221         (progress_create): Ditto.
7222         (progress_update): Ditto.
7223         (progress_finish): Ditto.
7224         (dp_create): Ditto.
7225         (dp_update): Ditto.
7226         (dp_finish): Ditto.
7227         (dp_set_params): Ditto.
7228         (print_elapsed): Ditto.
7229
7230 2001-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
7231
7232         * retr.c (show_progress): Use it.
7233
7234         * log.c (log_set_flush): New function.
7235
7236 2001-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
7237
7238         * utils.c (path_simplify): Don't remove trailing slashes.
7239
7240         * ftp.c (ftp_get_listing): Use it.
7241
7242         * utils.c (file_merge): New function.
7243
7244         * url.c (opt_url): Removed.
7245
7246         * recur.c (recursive_retrieve): Inline "opt_url" logic.
7247
7248         * main.c (main): Use xfree(), not free().
7249
7250         * url.c (rewrite_url_maybe): Renamed to rewrite_shorthand_url.
7251
7252         * ftp.c (ccon): Move `ccon' typedef here, since it's only used
7253         internally.
7254
7255         * config.h.in: Include a stub for HAVE_STRPBRK.
7256
7257         * cmpt.c (strpbrk): Include a replacement for systems without
7258         strpbrk().
7259
7260         * ftp.c: Use url_set_dir and url_set_file when modifying the URL.
7261
7262         * url.c (url_set_dir): New function.
7263         (url_set_file): Ditto.
7264
7265         * ftp-basic.c (ftp_process_type): Process FTP type here; the URL
7266         parser makes the URL "params" available, so we can do that in this
7267         function.
7268
7269         * retr.c: Ditto.
7270
7271         * ftp.c: Ditto; pass the local file information in `ccon'.
7272
7273         * http.c: Get rid of the ugly kludge that had URL being replaced
7274         with the proxy URL when proxy retrieval was requested.  Use a
7275         separate parameter to http_loop and gethttp for the proxy URL.
7276
7277         * http.c: Changed to reflect the fact that local file, proxy, and
7278         referer information are no longer stored in struct url.  The local
7279         file information is passed in `struct hstat' now.
7280
7281         * url.c: Reworked URL parsing to be more regular.  Reencode the
7282         URL using reencode_string.
7283         Removed non-URL-related information from struct url.  This
7284         includes fields `proxy', `local', and `referer'.
7285
7286 2001-11-22  Jochen Hein  <jochen@jochen.org>
7287
7288         * main.c (main): Split the copyright notice for easier
7289         translation.
7290
7291 2001-08-21  Dave Turner <dct25@hermes.cam.ac.uk>
7292
7293         * ftp-basic.c (ftp_size): New function to send non-standard SIZE
7294           command to server to request file size.
7295         * ftp.h (ftp_size): Export it.
7296         * ftp.c (getftp): Use new ftp_size function if restoring
7297           transfer of a file with unknown size.
7298
7299 2001-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
7300
7301         * url.c (parseurl): Don't depend on the now-obsolete TYPE.
7302
7303 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7304
7305         * url.c (getproxy): Handle URL shorthands.
7306
7307 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7308
7309         * main.c: Remove --wait / --waitretry backwards compatibility
7310         code.
7311
7312 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7313
7314         * main.c (main): Use it.
7315
7316         * url.c (rewrite_url_maybe): New function.
7317
7318 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7319
7320         * url.c: Clean up handling of URL schemes.
7321
7322 2001-05-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7323
7324         * url.c: Get rid of `protostrings'.
7325         (skip_proto): Don't use protostrings.
7326         (has_proto): Ditto.
7327
7328 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7329
7330         * Makefile.in: Conditionally compile getopt.o.
7331
7332 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7333
7334         * md5.h: Renamed to gnu-md5.h.
7335
7336         * md5.c: Renamed to gnu-md5.c.
7337
7338         * http.c: Ditto.
7339
7340         * ftp-opie.c: Use the new macros.
7341
7342         * sysdep.h: Define md5-related macros.
7343
7344         * config.h.in: Define HAVE_SOLARIS_MD5 or HAVE_BUILTIN_MD5
7345         depending on which md5 implementation is used.
7346
7347 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7348
7349         * res.c (res_register_specs): Initialize OLD and HP_OLD to appease
7350         the compiler.
7351
7352 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7353
7354         * http.c (gethttp): Print the whole response line when printing
7355         headers is requested.
7356
7357 2001-05-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7358
7359         * res.c: New file.  Implement all RES-related code here.
7360
7361 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7362
7363         * version.c: Wget 1.7.1 is released.
7364
7365 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
7366
7367         * headers.c (header_extract_number): Ignore trailing whitespace.
7368
7369 2001-08-24  Ian Abbott  <abbotti@mev.co.uk>
7370
7371         * html-url.c (collect_tags_mapper): Fix bug converting links
7372         with -k option for tags with multiple link attributes by
7373         handling links in the order they appear.
7374
7375 2001-08-15  Ian Abbott  <abbotti@mev.co.uk>
7376
7377         * ftp.c (ftp_loop_internal): Avoid a potential buffer overflow in
7378           the call to the 'rate' function by moving it past the error
7379           checking for the 'getftp' function return value.
7380
7381 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
7382
7383         * html-parse.c (advance_declaration): Use 0x22 instead of '"' or
7384         '\"'.  Different compilers' assert macros are broken in different
7385         ways.
7386
7387 2001-09-29  Christian Fraenkel  <c.fraenkel@gmx.net>
7388
7389         * http.c (gethttp): print debug output for errors occuring during
7390         the ssl handshake.
7391
7392 2001-11-16  Chris Seawood  <cls@seawood.org>
7393
7394         * init.c: Ditto.
7395
7396         * host.c: Ditto.
7397
7398         * connect.c: Ditto.
7399
7400         * sysdep.h: Support compilation under BEOS.
7401
7402 2001-06-08  Edward J. Sabol  <sabol@alderaan.gsfc.nasa.gov>
7403
7404         * url.c (url_equal): Fix a memory leak when parseurl returns an
7405         error on the second URL. Also, since url_equal is not used at the
7406         moment, do not compile it.
7407
7408         * url.h: Ditto for the prototype of url_equal.
7409
7410 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
7411
7412         * html-parse.c (map_html_tags): Support XML-style empty tags.
7413
7414 2001-06-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7415
7416         * wget.h (DO_REALLOC_FROM_ALLOCA): Check for do_realloc_newsize in
7417         loop condition because we're no longer setting SIZEVAR here.
7418
7419 2001-06-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7420
7421         * wget.h (DO_REALLOC_FROM_ALLOCA): Set SIZEVAR after the memcpy()
7422         call because it needs the old value.
7423
7424 2001-06-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7425
7426         * cookies.c (ATTR_NAME_CHAR): Allow almost any character to be in
7427         an attribute name.
7428
7429 2001-06-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7430
7431         * url.c (url_filename): Make sure that slashes that sneak in to
7432         u->file via query string get protected.
7433         (file_name_protect_query_string): New function.
7434
7435 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7436
7437         * recur.c (recursive_retrieve): Also check undesirable_urls with
7438         canonicalized URL.
7439
7440 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7441
7442         * http.c (gethttp): Search `.netrc' with real host, not the proxy
7443         one.
7444
7445 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7446
7447         * sysdep.h (MAP_FAILED): Provide MAP_FAILED for systems that don't
7448         define it.
7449
7450 2001-06-09  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7451
7452         * ftp.h: Provide correct prototype for ftp_parse_ls().
7453
7454 2001-06-04  Hrvoje Niksic  <hniksic@arsdigita.com>
7455
7456         * version.c: Wget 1.7 is released.
7457
7458 2001-06-03  Karl Eichwalder  <ke@suse.de>
7459
7460         * ftp-ls.c (ftp_parse_ls): Fix typo.
7461
7462 2001-05-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7463
7464         * all: Update copyright information.
7465
7466 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7467
7468         * http.c (gethttp): Indicate that the continued download failed
7469         for *this* file.
7470
7471 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7472
7473         * version.c: Wget 1.7-pre1 is released.
7474
7475 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7476
7477         * version.c: Updated version to 1.7-pre1.
7478
7479 2001-05-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7480
7481         * gen_sslfunc.c: Don't include <sys/time.h> directly.
7482
7483 2001-05-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7484
7485         * http.c (gethttp): Use real URL data for cookies, not the proxy
7486         stuff.
7487
7488 2001-05-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7489
7490         * main.c (print_help): Document `--no-http-keep-alive'.
7491
7492         * utils.c (numdigit): Handle negative numbers *correctly*.
7493
7494         * hash.c (make_nocase_string_hash_table): Use term "nocase" rather
7495         than the confusing "unsigned".
7496
7497         * utils.c (string_set_contains): Renamed from string_set_exists.
7498
7499         * hash.c (hash_table_contains): Renamed from hash_table_exists.
7500
7501         * cookies.c: Move case-insensitive hash tables to hash.c.
7502
7503 2001-05-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7504
7505         * http.c (gethttp): Before concluding that the file is already
7506         fully retrieved, make sure that the file existed and `Range' was
7507         actually requested.
7508
7509 2001-05-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7510
7511         * cookies.c (eliminate_dups): New function.
7512         (build_cookies_request): Use it.
7513         (build_cookies_request): Set chain_store_size after reallocating
7514         all_chains.
7515         (check_domain_match): Annotated for easier future debugging.
7516         (store_cookie): In the debug message, print whether the cookie is
7517         permanent.
7518
7519 2001-05-08  Hrvoje Niksic  <hniksic@arsdigita.com>
7520
7521         * http.c (http_loop): Reset no_truncate before deciding whether to
7522         set it.
7523         (gethttp): Further clarify "-c conflicts with existing file" error
7524         message, based on input from Herold Heiko.
7525
7526 2001-05-07  Hrvoje Niksic  <hniksic@arsdigita.com>
7527
7528         * http.c (http_loop): If restval is set, set no_truncate to 1
7529         unconditionally.
7530
7531 2001-05-02  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7532
7533         * ftp-ls.c (ftp_parse_winnt_ls): Assure months are being correctly
7534         converted. Pointed out by <Stefan.Weil@de.heidelberg.com>.
7535         (ftp_parse_vms_ls): Ditto.
7536
7537 2001-04-30  Hrvoje Niksic  <hniksic@arsdigita.com>
7538
7539         * init.c (cmd_address): Zero SIN before using it; apparently
7540         needed on *BSD.
7541
7542 2001-04-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7543
7544         * ftp.c (ftp_loop_internal): Don't set NO_TRUNCATE if the file is
7545         empty.
7546
7547 2001-04-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7548
7549         * main.c (main): Make `--cookies' respect its argument.
7550
7551 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
7552
7553         * main.c (main): Removed undocumented option `--email-address'.
7554
7555         * netrc.c: Use the latest read_whole_line.
7556
7557         * init.c (defaults): Set opt.ftp_pass to "-wget@".
7558
7559         * mswindows.c (pwd_cuserid): Ditto.
7560
7561         * utils.c (pwd_cuserid): Removed.
7562
7563         * host.c (ftp_getaddress): Removed.
7564
7565 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
7566
7567         (http_loop): Allocate space for filename_plus_orig_suffix with
7568         alloca; this is more efficient and removes the need to free it
7569         before each and every return.
7570
7571 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
7572
7573         * http.c (gethttp): Return RETRUNNEEDED when the retrieval is
7574         unneeded because the file is already there and fully downloaded,
7575         and -c is specified.
7576         (http_loop): Handle RETRUNNEEDED.
7577
7578         * wget.h (uerr_t): New value RETRUNNEEDED.
7579
7580         * http.c (http_loop): Set no_truncate for files that both exist
7581         and are non-empty.
7582         (gethttp): Consider the download finished when restval >= contlen,
7583         not only when restval==contlen.
7584         (gethttp): Handle redirection before giving up due to -c.
7585         (gethttp): Clarify error message which explains that -c will not
7586         truncate the file.
7587         (gethttp): When returning CONTNOTSUPPORTED, don't forget to free
7588         the stuff that needs freeing and release the socket.
7589
7590 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7591
7592         * main.c (print_help): Wget booleans accept "off", not "no".
7593
7594 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7595
7596         * http.c (http_loop): If allow_cache is zero, always disable
7597         caching, not only when retrieving through proxy.
7598
7599         * init.c: Ditto.
7600
7601         * options.h (struct options): Rename proxy_cache to allow_cache.
7602
7603 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7604
7605         * http.c (mktime_from_utc): Improve documentation.
7606         (http_atotm): Put format strings into a separate array.
7607
7608 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7609
7610         * safe-ctype.h: Instead of throwing #error when isalpha is
7611         defined, redefine it to something that will throw a compile-time
7612         error if actually *used*.  Do the same for the rest of the
7613         standard C macros.
7614
7615 2001-04-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7616
7617         * url.c (getproxy): Ignore empty proxy vars.
7618
7619 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7620
7621         * http.c (http_loop): Would load cookies every time.
7622
7623         * cookies.c (load_cookies): Handle cookies whose values contain
7624         embedded spaces.
7625
7626 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7627
7628         * utils.c: Define each DIGITS_* in one line.
7629
7630 2001-04-25  Roger L. Beeman  <beeman@cisco.com>
7631
7632         * http.c (http_atotm): Initialize t.tm_isdst to 0.
7633         (mktime_from_utc): Prevent mktime() from having discontinuities at
7634         DST transition points.
7635
7636 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7637
7638         * html-url.c (get_urls_html): Fix documentation.
7639
7640 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7641
7642         * url.c (UNSAFE_CHAR): Reimplement using a static table.
7643         (url_init): Removed.
7644         (init_unsafe_char_table): Removed.
7645
7646 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7647
7648         * snprintf.c (dopr): Replace ISDIGIT with '0' <= ch && ch <= '9'.
7649
7650 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7651
7652         * utils.c: Document timer functions.
7653
7654         * retr.c (rate): Use it.
7655         (rate): Print in GB/s if transfer rate exceeds 1 GB/s.
7656
7657         * utils.c (wtimer_granularity): New function.
7658
7659 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7660
7661         * retr.c (show_progress): Ditto.
7662
7663         * ftp.c (getftp): Ditto.
7664
7665         * http.c (gethttp): Use new timer functions.
7666
7667         * utils.c (wtimer_allocate): New function.
7668         (wtimer_new): Ditto.
7669         (wtimer_delete): Ditto.
7670         (wtimer_reset): Ditto.
7671         (wtimer_elapsed): Ditto.
7672
7673 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7674
7675         * utils.c (long_to_string): New, faster version.  Favors smaller
7676         numbers; much of the calculation is now done at compile-time.
7677
7678 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7679
7680         * utils.c (numdigit): Handle negative numbers.
7681
7682 2001-04-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7683
7684         * retr.c (show_progress): Print the download rate even when the
7685         percentages are not available.
7686
7687 2001-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
7688
7689         * ftp.c (getftp): Adjust expected_bytes if the length is
7690         authoritative.
7691
7692 2001-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7693
7694         * url.c: Don't declare `construct'.
7695
7696         * hash.c (grow_hash_table): Speed up rehashing; inline storing of
7697         mappings to new locations.
7698         (hash_table_new): Make resize_threshold a field in the hash table,
7699         so we don't have to recalculate it in each hash_table_put.
7700         (grow_hash_table): Update resize_threshold.
7701         (MAX): Remove unused macro.
7702         (prime_size): Made static.
7703
7704 2001-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7705
7706         * retr.c (retrieve_url): Call uri_merge, not url_concat.
7707
7708         * html-url.c (collect_tags_mapper): Call uri_merge, not
7709         url_concat.
7710
7711         * url.c (mkstruct): Use encode_string instead of xstrdup followed
7712         by URL_CLEANSE.
7713         (path_simplify_with_kludge): Deleted.
7714         (contains_unsafe): Deleted.
7715         (construct): Renamed to uri_merge_1.
7716         (url_concat): Renamed to uri_merge.
7717
7718 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7719
7720         * url.c (str_url): Use encode_string instead of the unnecessary
7721         CLEANDUP.
7722         (encode_string_maybe): New function, returns input string if no
7723         encoding is needed.
7724         (encode_string): Call encode_string_maybe to do the dirty work,
7725         xstrdup if no work needed.
7726
7727 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7728
7729         * wget.h (XDIGIT_TO_xchar): Define here.
7730
7731         * url.c (decode_string): Use new name.
7732         (encode_string): Ditto.
7733
7734         * http.c (XDIGIT_TO_xchar): Rename HEXD2asc to XDIGIT_TO_xchar.
7735         (dump_hash): Use new name.
7736
7737         * wget.h: Rename ASC2HEXD and HEXD2ASC to XCHAR_TO_XDIGIT and
7738         XDIGIT_TO_XCHAR respectively.
7739
7740 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7741
7742         * init.c: Include cookies.h.
7743
7744         * cookies.h: Declare cookies_cleanup.
7745
7746         * cookies.c (check_domain_match): Remove unused variable.
7747         (save_cookies): Remove extraneous argument from debug statement.
7748
7749         * host.c (same_host): Don't call skip_url.
7750
7751         * url.c (skip_url): Removed.  Removed its calls from various
7752         functions in url.c.
7753
7754 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7755
7756         * cookies.c (unsigned_string_hash): Use the new code in
7757         string_hash as reference.
7758
7759         * hash.c (hash_table_map): Allow deletion and change of the
7760         element processed by MAPFUN.
7761         (string_hash): Use the function from glib.
7762
7763 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7764
7765         * config.h.in: Include #undef stub.
7766
7767         * hash.c (hash_table_remove): Rewrite to actually clear deleted
7768         entries instead of just marking them as deleted.
7769
7770 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7771
7772         * hash.h: Declare hash_table_get_pair and hash_table_count.
7773
7774 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7775
7776         * cookies.c: Declare http_atotm.
7777
7778 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7779
7780         * ftp-ls.c (ftp_parse_unix_ls): Use octal constants for
7781         permissions.  A compiler that doesn't accept octal constants is
7782         seriously broken and shouldn't be used -- octal constants were
7783         present in K&R C!
7784
7785 2001-01-20  Karl Eichwalder  <ke@suse.de>
7786
7787         * Makefile.in: Provide and use DESTDIR according to the Coding
7788         Standards.
7789
7790 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7791
7792         * ftp-ls.c (ftp_parse_vms_ls): Make seconds optional in time
7793         specification.
7794
7795 2001-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7796
7797         * url.c (parseurl): Don't strip trailing slash when u->dir is "/"
7798         because that strips the *leading* slash, thus forcing relative
7799         FTP retrieval.
7800
7801 2001-04-10  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7802
7803         * ftp.c (getftp): Convert initial FTP directory from VMS to UNIX
7804         notation for VMS servers.
7805         (ftp_retrieve_dirs): Do not prepend '/' to f->name when
7806         odir is an empty string.
7807
7808 2001-04-10  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7809
7810         * ftp-ls.c (ftp_parse_winnt_ls): Made the fix for AM/PM more
7811         effective. Suggested by Edward J. Sabol.
7812
7813 2001-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
7814
7815         * cookies.c (build_cookies_request): Use and sort cookies from all
7816         matching domains.
7817         (build_cookies_request): Check for duplicates before generating
7818         the `Cookies' header.
7819
7820         * main.c (main): Don't load cookies here.
7821         (main): Make loadcookies and savecookies call the correct command.
7822
7823         * http.c (http_loop): Load cookies on-demand.
7824
7825 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7826
7827         * http.c (gethttp): Fix indentation of SSL ifdef.
7828
7829 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7830
7831         * ftp.c (ftp_retrieve_dirs): Don't forcibly prepend "/" to u->dir;
7832         that hack is no longer necessary.
7833         (getftp): Prepend initial directory to *non*-absolute u->dir's.
7834
7835 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7836
7837         * init.c (cmd_file): New function.
7838         (enable_tilde_expansion): New variable.
7839         (run_wgetrc): Use it.
7840         (cmd_file): Use it.
7841
7842 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
7843
7844         * init.c: Include cookie-related options.
7845
7846         * main.c (main): Include cookie-specific options.
7847         (main): Load cookies before download is finished.
7848         (main): Save cookies when done.
7849
7850         * http.c (gethttp): Process the `Set-Cookie' header.
7851         (gethttp): Include cookies in the response.
7852
7853         * cookies.c: New file.
7854
7855 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
7856
7857         * utils.c (datetime_str): New function.
7858
7859 2001-04-08  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7860
7861         * ftp-ls.c (ftp_parse_winnt_ls): The AM/PM change did assume
7862         12:01PM == 00:01, which was obviously wrong. Taken care of this
7863         anomaly.
7864
7865         * ChangeLog: Removed an excess conflict marker. Reformatted the
7866         entry by Philipp Thomas from 2001-03-09.
7867
7868         * ftp-ls.c (ftp_parse_winnt_ls): Ensure that adjusted PM hours lay
7869         between 0 and 23. Elminate unused variable `sec'.
7870
7871 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
7872
7873         * hash.c (hash_table_count): New function.
7874
7875 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7876
7877         * utils.c (read_file): Cast MAP_FAILED to char *.  Enforced by
7878         Digital Unix cc.
7879
7880 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7881
7882         * config.h.in: Oops, do the namespace tweaks only on systems we
7883         know about.
7884
7885 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7886
7887         * hash.c: Include <string.h>.
7888
7889 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7890
7891         * config.h.in: Define "compilation environment" options that work
7892         under Linux and Solaris.  To be reviewed on other OS'es.
7893
7894 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7895
7896         * http.c (gethttp): Prepend literal newline with `\n\'.
7897
7898 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7899
7900         * sysdep.h: Don't define VERY_LONG_FORMAT.
7901
7902         * utils.c (very_long_to_string): New function.
7903         (legible_very_long): Use it; don't use VERY_LONG_FORMAT.
7904
7905 2001-04-04  Christian Fraenkel  <christian.fraenkel@gmx.net>
7906
7907         * url.c (parse_uname): Would run past the end of the string if the
7908         username was present, but the URL did not contain a slash, e.g.
7909         http://foo:bar@myhost.
7910
7911 2001-04-03  KOJIMA Hajime  <kjm@rins.ryukoku.ac.jp>
7912
7913         * http.c (http_atotm): Use %A instead of %a to match full
7914         weekday.  (On most systems there is no difference.)
7915
7916 2001-04-03  Paul Bludov  <paul@ozero.net>
7917
7918         * mswindows.c (sleep): Use SleepEx() instead of Sleep().
7919         (ws_changetitle): Use alloca() instead of malloc() to avoid memory
7920         leak.
7921         (ws_mypath): Use GetModuleFileName instead of argv[0].
7922         (ws_startup): Use data.wVersion for comparison.
7923
7924 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7925
7926         * http.c (http_loop): Ditto.
7927
7928         * ftp.c (ftp_loop_internal): Made the check whether to continue
7929         retrieval `-O'-friendly.
7930
7931 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7932
7933         * netrc.c (parse_netrc): Don't trim the line endings explicitly;
7934         they will be handled as whitespace.
7935         (parse_netrc): Correctly handle lines that end with whitespace.
7936
7937 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7938
7939         * retr.c (retrieve_url): New variable global_download_count used
7940         to identify first retrieval.
7941
7942         * ftp.c (getftp): Ditto.
7943
7944         * http.c (gethttp): Rewind opt.dfp only on first retrieval.
7945
7946 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7947
7948         * init.c (cmd_address): Heap-allocate the address that gets stored
7949         to CLOSURE.  Old code would simply assign an address on the stack.
7950
7951 2001-04-01  Nicolas Lichtmaier <nick@debian.org>
7952
7953         * ftp.c (ftp_get_listing): Propagate error status.
7954         (ftp_retrieve_glob): Use it.
7955         (ftp_loop): Ditto.
7956
7957 2001-04-01  Nicolas Lichtmaier <nick@debian.org>
7958
7959         * main.c (main): Add -C to the string that is the third arg to
7960         getopt_long().
7961
7962 2001-04-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7963
7964         * ftp.c (getftp): Don't start the download from scratch if `-c'
7965         was specified, but the file is already fully downloaded.
7966
7967         * http.c (gethttp): Don't truncate a pre-existing file if `-c' was
7968         specified and the server doesn't support continued download.
7969         (gethttp): Don't start the download from scratch if `-c' was
7970         specified, but the file is already fully downloaded.
7971
7972 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7973
7974         (recursive_retrieve): Don't clear the hash tables at this point at
7975         all; it interferes with the normal operation of register_download.
7976
7977 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7978
7979         * recur.c (recursive_retrieve): Clear the hash tables only when
7980         they are defined.
7981
7982 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7983
7984         * http.c (gethttp): Make sure the socket is closed with
7985         CLOSE_INVALIDATE before we have drained the body.
7986
7987 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7988
7989         * retr.c (retrieve_url): Call register_download() for downloaded
7990         files and register_html() for downloaded HTML files.
7991
7992         * recur.c (register_download): New function; register here that a
7993         file has been downloaded, rather than in recursive_retrieve().
7994         (register_html): New function; enqueue the location of HTML files
7995         here rather than in recursive_retrieve().
7996
7997 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
7998
7999         * main.c (print_help): Use multiple fputs instead of a single ugly
8000         printf().
8001         (main): Consistently assign numbers >128 to options without a
8002         corresponding character.
8003
8004 2001-03-09  Philipp Thomas  <pthomas@suse.de>
8005
8006         * safe-ctype.h: New file. Locale independent ctype.h replacement
8007         taken from libiberty.
8008
8009         * safe-ctype.c: New file. Tables for above.
8010
8011         * Makefile.in: Add safe-ctype$o to OBJS.  Add dependencies for
8012         safe-ctype$o.
8013
8014         * cmpt.c: Remove include of ctype.h. Use ISSPACE instead of
8015         isspace.
8016
8017         * ftp-basic.c: Don't include ctype.h.
8018
8019         * ftp-ls.c: Likewise.
8020
8021         * ftp.c: Likewise.
8022
8023         * headers.c: Likewise.
8024
8025         * host.c: Likewise.
8026
8027         * html-parse.c: Likewise.
8028
8029         * html-url.c: Likewise.
8030
8031         * http.c: Likewise.
8032
8033         * init.c: Likewise.
8034
8035         * main.c: Likewise. Set LC_CTYPE along with LC_MESSAGES.
8036
8037         * netrc.c: Likewise.
8038
8039         * recur.c: Likewise.
8040
8041         * retr.c: Likewise.
8042
8043         * snprintf.c: Replace ctype.h with safe-ctype.h. Use ISDIGIT
8044         instead of isdigit.
8045
8046         * sysdep.h: Remove defines of ctype macros as they aren't needed
8047         for safe-ctype-h.
8048
8049         * url.c: Don't include ctype.h.
8050
8051         * utils.c: Likewise.
8052
8053         * wget.h: Include safe-ctype.h.
8054
8055 2001-03-27  Dan Harkless  <wget@harkless.org>
8056
8057         * Makefile.in: Moved top_builddir out of "User configuration
8058         section" of top Makefile and analogous spot in this one.
8059
8060 2001-03-17  Dan Harkless  <wget@harkless.org>
8061
8062         * Makefile.in: Include @SSL_INCLUDES@ substition in INCLUDES.
8063         Define top_builddir.  Link wget with libtool so the user doesn't
8064         have to supply a bunch of custom environment variables to
8065         correctly link with the OpenSSL shared libraries.
8066
8067 2001-03-06  Hack Kampbjorn  <hack@hackdata.com>
8068
8069         * http.c (gethttp): skip :port in host header if it is the
8070         DEFAULT_HTTPS_PORT when using SSL.
8071
8072         * url.c: move the #define of DEFAULT_HTTP_PORT, DEFAULT_FTP_PORT
8073         and DEFAULT_HTTPS_PORT to the header file so it can be use in the
8074         rest of the code.
8075         * url.h: Ditto
8076
8077 2001-03-01  Jonas Jensen  <bones@huleboer.dk>
8078
8079         * retr.c (show_progress): Correctly calculate the number of bytes
8080         in the first line of the download that have been actually
8081         downloaded in this run.
8082
8083 2001-02-23  Dan Harkless  <wget@harkless.org>
8084
8085         * main.c (print_help): --help documentation for -N said it would
8086         re-download files if they had the _same_ timestamp on server.
8087         (print_help): -nr belongs in "FTP options" section of --help
8088         output, not "Recursive retrieval" section.  Alphabetized FTP
8089         options by long option name.
8090
8091 2001-02-16  Dan Harkless  <wget@harkless.org>
8092
8093         * init.c (commands): Hack Kampbjørn <hack@hackdata.com> discovered
8094         that "httpsproxy" had been inserted into commands[] out of
8095         alphabetical order, causing "BUG: unknown command `httpuser'".
8096
8097 2001-02-13  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8098
8099         * ftp-ls.c (ftp_parse_ls): Added support of ST_MACOS (Unix-like
8100         listing without correct permissons).
8101
8102         * ftp.h (stype): Added ST_MACOS to identify the NetPresenz MacOS
8103         FTP server.
8104
8105         * ftp.c (ftp_retrieve_list): New mirroring logic: A remote file
8106         shall be donwloaded only when it's newer than the local copy or
8107         when it has the same timeestamp but its size is different. ST_VMS
8108         and ST_MACOS as special cases that lie about file size.
8109
8110         * ftp-ls.c (ftp_parse_ls): Support for ST_MACOS.
8111
8112         * Makefile.in: Removed dependency on ftpparse library due to unclear
8113         copyright issues and absence of any feedback to our queries.
8114
8115         * ftp-ls.c: Removed dependency on ftpparse library due to unclear
8116         copyright issues and absence of any feedback to our queries.
8117         (ftp_parse_ls): Added a warning message when remote server system
8118         does not seem to be suported by wget.
8119         (ftp_parse_vms_ls): New function for parsing VMS ftp
8120         server listing output.
8121         (clean_line): New function responsible for removing
8122         end-of-line characters from FTP listing texts.
8123
8124         * ftp.c (getftp): Global variables pwd and host_type are now
8125         member of the ccon structure under names ccon.id and ccon.rs.
8126
8127         * ftp.h (struct ccon): Added formed global variables from ftp.c,
8128         enum stype rs (remote system identification) and char *id (initial
8129         working directory), as suggested by Hrvoje.
8130
8131         * url.c (parse_uname): Added support for passwords containing '@'
8132         characters.
8133         (skip_uname): Ditto.
8134
8135 2001-02-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8136
8137         * ftp.c (ftp_loop): Reset con.
8138
8139 2001-01-06  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8140
8141         * url.c (parse_uname): Added support for passwords containing '@'
8142         characters.
8143         (skip_uname): Ditto.
8144
8145 2001-02-11  Hack Kampbjørn  <hack@hackdata.com>
8146
8147         * url.c (parseurl): Debug-print u->ftp_type.
8148
8149 2001-02-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8150
8151         * ftp.c (ftp_loop_internal): Disable padding.
8152         (getftp): Ditto.
8153
8154         * http.c (http_loop): Disable padding.
8155
8156         * retr.c (show_progress): Use it to enable padding.
8157
8158         * retr.c (rate): Optional parameter PAD for padding the rate.
8159
8160 2001-02-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8161
8162         * retr.c (show_progress): Make sure that the last output line
8163         includes progress.
8164
8165 2001-02-10  Jonas Jensen  <bones@huleboer.dk>
8166
8167         * retr.c (show_progress): Print the download rate along with the
8168         percentages.
8169         Along with Anders Thorsby <anders@thorsby.dk>.
8170
8171 2001-02-10  Tim Mooney  <mooney@dogbert.cc.ndsu.NoDak.edu>
8172
8173         * ftp.h: Rename enums `command' to `wget_ftp_command' and
8174         `fstatus' to `wget_ftp_status' because old names clash with Tru64
8175         net/if.h.
8176
8177 2001-02-08  Christian Fraenkel <christian.fraenkel@gmx.net>
8178
8179         * gen_sslfunc.c: verify_callback is now static
8180
8181         * gen_sslfunc.c (init_ssl): load certificate if specified
8182
8183         * gen_sslfunc.c (ssl_printerr): new function
8184
8185         * init.c: added new --sslcertfile and --sslcertkey switches
8186
8187         * main.c: ditto
8188
8189         * options.h: ditto
8190
8191         * http.c (gethttp): abort when init_ssl fails
8192
8193 2001-01-23  Herold Heiko  <Heiko.Herold@previnet.it>
8194
8195         * mswindows.h: Include <malloc.h>; it's needed for alloca().
8196
8197 2001-01-10  Dan Harkless  <wget@harkless.org>
8198
8199         * url.c (str_url): Clarified this function's comment header after
8200         Hrvoje answered my question on the list as to when hide != 1.
8201         Also Hrvoje pointed out I need to use xstrdup() on the string literal.
8202
8203 2001-01-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8204
8205         * connect.c (bindport): Declare addrlen as int.  Diagnosed by
8206         Drazen Kacar <dave@arsdigita.com>.
8207         (conaddr): Ditto.
8208
8209 2001-01-09  Dan Harkless  <wget@harkless.org>
8210
8211         * html-url.c: A bunch of fixup of `--page-requisites'-related
8212         comments to reflect Hrvoje's changes to my code when transplanting
8213         it into this new file, to fix spelling mistakes, to clarify, etc.
8214
8215         * url.c (write_backup_file): Clarified a comment.
8216         (str_url): Henrik van Ginhoven pointed out on the list that we
8217         shouldn't give away the number of characters in the password by
8218         replacing each character with a 'x'.  Use "<password>" instead.
8219
8220         * ftp.c (ftp_retrieve_dirs): The bug where recursion into FTP
8221         directories didn't work if logging in put you in a directory other
8222         than "/" is fixed now.  Removed the comment here warning of the bug.
8223
8224         * main.c (print_help): --continue's description was misleading.
8225         We don't "restart", we "resume".  Also, better to say
8226         "partially-downloaded file" rather than just "existing file".
8227
8228 2001-01-06  Dan Harkless  <wget@harkless.org>
8229
8230         * ChangeLog: The '[Not in 1.6 branch.]'s were decided not to be
8231         the best way to go about my aim.  Removed them in favor of:
8232
8233         * ChangeLog-branches/1.6_branch.ChangeLog: New file.
8234
8235 2001-01-04  Hrvoje Niksic  <hniksic@arsdigita.com>
8236
8237         * url.c (replace_attr): New function, to be used by both
8238         TO_COMPLETE and TO_RELATIVE case in convert_links.
8239         (find_fragment): New function for finding URL fragments.
8240         (replace_attr): Better handle the case where the original string
8241         is not quoted.  Use find_fragment.
8242         (convert_links): Use replace_attr().
8243
8244 2000-12-31  Dan Harkless  <wget@harkless.org>
8245
8246         * ChangeLog: Since this flat file doesn't have multiple branches,
8247         looking at the dates would make you think that things went into
8248         1.6 that actually just went into the 1.7-dev branch.  Added "[Not
8249         in 1.6 branch.]" where appropriate to clarify.
8250
8251 2000-12-30  Dan Harkless  <wget@harkless.org>
8252
8253         * ftp.c, http.c:  Applied Hack Kampbjørn <hack@hackdata.com>'s
8254         patch to deal with h_errno not being defined in netdb.h under Cygwin.
8255
8256 2000-12-18  Csaba Raduly  <csaba.raduly@sophos.com>
8257
8258         * sysdep.h: Include <malloc.h> and <io.h> under Watcom.
8259
8260 2000-12-17  Igor Khristophorov  <igor@atdot.org>
8261
8262         * http.c (check_end): Fix test for '+' or '-'.
8263
8264 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
8265
8266         * url.c (parseurl): Rename inner loop var from i to ind to avoid
8267         clash with the function top-level-declared variable i.
8268         (str_url): Likewise, rename inner-loop i to j.
8269
8270         * recur.c (parse_robots): Don't declare LEN at top of function.
8271         (robots_match): Renamed parameter FORBIDDEN to avoid hiding of
8272         global variable.
8273
8274         * main.c (main): Change erroneous use of bitwise and to logical.
8275
8276         * init.c (cmd_address): Don't heap-allocate `sin'; it can be on
8277         the stack because it will be copied to closure.
8278
8279         Thanks to Csaba Raduly's run of PC-LINT over the sources.
8280
8281 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
8282
8283         * http.c (basic_authentication_encode): Use xmalloc(), not
8284         malloc().  Thanks to Csaba Raduly's run of PC-LINT over the
8285         sources.
8286
8287 2000-12-17  Csaba Raduly  <csaba.raduly@sophos.com>
8288
8289         * sysdep.h: Test for __EMX__ rather than for EMXOS2 for OS/2
8290         compilation.
8291
8292 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
8293
8294         * mswindows.c: Include <errno.h>.
8295
8296         * gen_sslfunc.c: Include <errno.h>.
8297
8298         * ftp-basic.c: Don't attempt to declare errno or h_errno because
8299         they're not used.
8300
8301         * main.c: Include <errno.h> because errno is used.
8302
8303         * ftp.c: Ditto.
8304
8305         * http.c: Include <netdb.h> for h_errno.
8306
8307 2000-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
8308
8309         * html-parse.c (advance_declaration): MSVC assert() chokes on
8310         '\"'.  Use '"' instead.
8311
8312 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8313
8314         * utils.c (xfree_real): Removed.
8315         (xfree_debug): Just call free().
8316
8317         * wget.h (xfree): Make it an alias for free.
8318
8319 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8320
8321         * http.c (http_loop): Furthermore, touch output_document only if
8322         it is known to be an existing regular file.
8323
8324 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8325
8326         * ftp.c (ftp_retrieve_list): Ditto.
8327
8328         * http.c (http_loop): Touch output_document if that is used for
8329         output.
8330
8331 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8332
8333         * http.c: Include gen_sslfunc.h after including Wget's headers.
8334         (persistent_available_p): Needed coma before `int ssl'.
8335
8336 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8337
8338         * ftp.c (ftp_loop_internal): Ditto.
8339
8340         * http.c (http_loop): Use it.
8341
8342         * retr.c (sleep_between_retrievals): New function that handles the
8343         logic of opt.wait and opt.waitretry.
8344
8345 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8346
8347         * rbuf.h: Implement only a single version of RBUF_READCHAR, using
8348         rbuf_read_bufferful when the buffer is depleted.
8349
8350         * rbuf.c (rbuf_read_bufferful): New function.
8351
8352 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8353
8354         * gen_sslfunc.h: Use ansi2knr style function declarations.
8355
8356         * gen_sslfunc.c: Reformat according to the GNU coding standards.
8357         More should be done.
8358
8359         * http.c (persistent_available_p): Place the cheap SSL test nearer
8360         the top of the function.
8361         (CLOSE_FINISH, CLOSE_INVALIDATE): Define only one version of each.
8362
8363 2000-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
8364
8365         * url.c (init_unsafe_char_table): Reinstate space as an unsafe
8366         char.
8367
8368 2000-12-03  Christian Fraenkel <christian.fraenkel@gmx.net>
8369
8370         * Makefile.in: added gen_sslfunc object
8371         * config.h.in: added HAVE_SSL define
8372         * connect.c: changed select_fd from static int to int
8373         * connect.h: ditto
8374         * gen_sslfunc.h: New file
8375         * gen_sslfunc.c: ditto
8376         * http.c: added HTTPS fuctionality
8377         * retrc.c: ditto
8378         * url.c: ditto
8379         * init.c: added opt.httpsproxy
8380         * options.h: ditto
8381         * rbuf.h: added alternate rbuf struct
8382         * wget.h: added CONSSLERR
8383         * rbuf.c: ditto
8384
8385         * http.c: Added HTTPS fuctionality.
8386
8387         * retrc.c: Ditto.
8388
8389         * url.c: Ditto.
8390
8391         * init.c: Added opt.httpsproxy.
8392
8393         * options.h: Ditto.
8394
8395         * rbuf.h: Added alternate rbuf struct.
8396
8397         * wget.h: Added CONSSLERR.
8398
8399         * rbuf.c: Ditto.
8400
8401 2000-11-30  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8402
8403         * ftp-ls.c (ftp_parse_unix_ls): Added second parameter
8404         "ignore_perms" to ignore file and directory permissions for
8405         Windows NT FTP server listings.
8406         (ftp_parse_winnt_ls): New function.
8407         (ftp_parse_ls): Parses UNIX and Windows NT listings
8408         separately. Simple heuristics for distinguishing between UNIX and
8409         MS-DOS-like FTP listing provided by Windows NT FTP service.
8410
8411 2000-11-18  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8412
8413         * ftpparse.c, ftpparse.h: New files.
8414
8415         * ftp-ls.c (ftp_parse_ls): Use ftp_parse_unix_ls for UNIX servers
8416         only. Use ftp_parse_nonunix_ls otherwise.
8417         (ftp_parse_nonunix_ls): Stub to the ftpparse library handling all
8418         exotic FTP servers.
8419
8420         * ftp.h (stype): New enum, distinguishes UNIX, VMS, and "other"
8421         FTP servers.
8422
8423         * ftp.c: New static wariables host_type, pwd, and pwd_len.
8424         (getftp): Support for VMS. Support for FTP servers that do not
8425         place you in the root directory after login.
8426         (ftp_retrieve_list): VMS is silent about the real file size, issue
8427         a more appropriate message.
8428         (ftp_get_listing): Pass host_type to ftp_parse_ls.
8429
8430         * ftp-basic.c (ftp_pwd, ftp_syst): New functions.
8431
8432 2000-11-30  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8433
8434         * ftp-ls.c (ftp_parse_unix_ls): Added second parameter
8435         "ignore_perms" to ignore file and directory permissions for
8436         Windows NT FTP server listings.
8437         (ftp_parse_winnt_ls): New function.
8438         (ftp_parse_ls): Parses UNIX and Windows NT listings
8439         separately. Simple heuristics for distinguishing between UNIX
8440         and MS-DOS-like FTP listing provided by Windows NT FTP service.
8441
8442 2000-11-29  John Summerfield  <summer@OS2.ami.com.au>
8443
8444         * netrc.c (parse_netrc): Get rid of line ending.
8445
8446 2000-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
8447
8448         * ftp.c (ftp_retrieve_list): Undo typo "fix" until resolution by
8449         Dan.
8450
8451 2000-11-24  Karl Eichwalder  <ke@suse.de>
8452
8453         * main.c (print_help): Untabify.
8454
8455 2000-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
8456
8457         * utils.c (xrealloc_debug): Do the unregister/register thing only
8458         if the pointer has actually changed.
8459         (xmalloc_real): Declare `static' in DEBUG_MALLOC builds.
8460         (xfree_real): Ditto.
8461         (xrealloc_real): Ditto.
8462         (xstrdup_real): Ditto.
8463
8464 2000-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
8465
8466         * ftp.c (getftp): ftp_getaddress() returns a malloc'ed copy of the
8467         string; no need to strdup() it.
8468         (getftp): Make pwd_len a local variable.
8469         (ftp_loop): Free PWD before returning.
8470
8471         * init.c (cleanup): Free opt.ftp_pass only if it's non-NULL.
8472
8473 2000-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
8474
8475         * all: Use xfree() instead of free.
8476
8477         * utils.c (xfree): New function.
8478
8479 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
8480
8481         * url.c (convert_links): HTML-quote the converted string.
8482
8483         * utils.c (html_quote_string): Move here from ftp-ls.c
8484         (html_quote_string): Make non-static; declare in utils.h.
8485         (html_quote_string): Convert SP to &#32;.
8486
8487 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
8488
8489         * ftp.c (getftp): Reformat Jan's code according to GNU coding
8490         standards; remove (debugging?) printf's; use '\0' for the ASCII
8491         zero character.  Use alloca() instead of malloc() for
8492         inter-function temporary allocations.
8493
8494 2000-11-18  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8495
8496         * ftpparse.c, ftpparse.h: New files.
8497
8498         * ftp-ls.c (ftp_parse_ls): Use ftp_parse_unix_ls for UNIX servers
8499         only. Use ftp_parse_nonunix_ls otherwise.
8500         (ftp_parse_nonunix_ls): Stub to the ftpparse library handling all
8501         exotic FTP servers.
8502
8503         * ftp.h (stype): New enum, distinguishes UNIX, VMS, and "other"
8504         FTP servers.
8505
8506         * ftp.c: New static wariables host_type, pwd, and pwd_len.
8507         (getftp): Support for VMS. Support for FTP servers that do not
8508         place you in the root directory after login.
8509         (ftp_retrieve_list): VMS is silent about the real file size, issue
8510         a more appropriate message.
8511         (ftp_get_listing): Pass host_type to ftp_parse_ls.
8512
8513         * ftp-basic.c (ftp_pwd, ftp_syst): New functions.
8514
8515 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
8516
8517         * hash.c (hash_table_put): Don't overwrite deleted mappings.
8518
8519 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
8520
8521         * hash.c (find_mapping): New function.
8522         (hash_table_get): Use it.
8523         (hash_table_get_pair): Ditto.
8524         (hash_table_exists): Ditto.
8525         (hash_table_remove): Ditto.
8526         (hash_table_remove): Really delete the entry if the mapping
8527         following LOCATION is empty.
8528
8529         * utils.c (string_set_add): Check whether the element has existed
8530         before.
8531
8532         * hash.c (hash_table_get_pair): New function.
8533
8534 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8535
8536         * http.c (http_process_type): Ignore trailing whitespace; use
8537         strdupdelim().
8538
8539         * recur.c (recursive_retrieve): Use the new `convert' field.
8540         (convert_all_links): Ditto.
8541         (convert_all_links): Don't respect meta_disallow_follow.
8542
8543         * html-url.c (handle_link): Fill out link_relative_p and
8544         link_complete_p.
8545
8546         * url.h (struct _urlpos): Make elements more readable.
8547
8548         * recur.c (recursive_retrieve): Call slist_prepend instead of
8549         slist_append.
8550         (convert_all_links): Call slist_nreverse before iterating through
8551         urls_html.
8552
8553         * utils.c (slist_prepend): New function.
8554         (slist_nreverse): Ditto.
8555
8556 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8557
8558         * http.c (check_end): Constify.
8559
8560 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8561
8562         * http.c (http_loop): If username and password are known, try the
8563         `Basic' authentication scheme by default.
8564
8565         * connect.h: Declare test_socket_open.
8566
8567 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8568
8569         * version.c: Bump version from 1.5.3+dev to 1.7-dev.
8570
8571 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8572
8573         * http.c (gethttp): Don't use the return value of sprintf().
8574         (gethttp): Inhibit keep-alive if opt.http_keep_alive is 0.
8575
8576 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8577
8578         * recur.c (recursive_retrieve): Print the "so we don't load"
8579         debugging message only if we really don't load.
8580
8581         * http.c (gethttp): Inhibit keep-alive if proxy is being used.
8582         (gethttp): Don't request keep-alive if keep-alive is inhibited.
8583
8584 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8585
8586         * http.c (gethttp): Make the HTTP persistent connections more
8587         robust.
8588
8589 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8590
8591         * retr.c (get_contents): If use_expected, make sure that the
8592         appropriate amount of data is being read.
8593
8594         * http.c (gethttp): Check for both `Keep-Alive: ...' and
8595         `Connection: Keep-Alive'.
8596
8597         * wget.h (DEBUGP): Call debug_logprintf only if opt.debug is
8598         turned on.
8599
8600 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8601
8602         * http.c (connection_available_p): Use it.
8603
8604         * connect.c (test_socket_open): New function.
8605
8606         * http.c (gethttp): Support persistent connections.  Based on the
8607         ideas, and partly on code, by Sam Horrocks <sam@daemoninc.com>.
8608         (register_persistent): New function.
8609         (connection_available_p): Ditto.
8610         (invalidate_connection): Ditto.
8611
8612 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8613
8614         * url.c (convert_links): Handle UREL2ABS case.
8615
8616         * recur.c (recursive_retrieve): Instead of the list
8617         urls_downloaded, use hash tables dl_file_url_map and
8618         dl_url_file_map.
8619         (convert_all_links): Use them to retrieve data.
8620
8621         * host.c (clean_hosts): Free the hash tables.
8622
8623         * main.c (private_initialize): Call host_init().
8624
8625         * host.c (store_hostaddress): Use a saner, hash table-based data
8626         model.
8627         (realhost): Ditto.
8628         (host_init): Initialize the hash tables.
8629
8630 2000-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
8631
8632         * utils.c (slist_append): Eviscerate NOSORT.  Hash tables are now
8633         used for what the sorted slists used to be used for.
8634         (slist_contains): Don't rely on the list being sorted.
8635         (slist_append): Simplify the code.
8636
8637         * recur.c (recursive_cleanup): Use free_string_set.
8638
8639         * utils.c (string_set_add, string_set_exists, string_set_free):
8640         New functions for easier freeing of hash tables whose keys are
8641         strdup'ed strings.
8642
8643         * recur.c (recursive_retrieve): Use the hash table functions for
8644         storing undesirable URLs.
8645
8646         * hash.c: New file.
8647
8648 2000-11-17  Hrvoje Niksic  <hniksic@arsdigita.com>
8649
8650         * main.c (private_initialize): Call url_init.
8651         (main): Call private_initialize.
8652
8653         * url.c (unsafe_char_table): New table.
8654         (UNSAFE_CHAR): Use it.
8655         (init_unsafe_char_table): New function.
8656         (url_init): New function; call init_unsafe_char_table.
8657
8658 2000-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
8659
8660         * mswindows.h: Define snprintf and vsnprintf to _snprintf and
8661         _vsnprintf respectively.
8662
8663 2000-11-15  Hrvoje Niksic  <hniksic@arsdigita.com>
8664
8665         * config.h.in: Do the _XOPEN_SOURCE and _SVID_SOURCE things only
8666         on Linux.
8667
8668 2000-11-15  Hrvoje Niksic  <hniksic@arsdigita.com>
8669
8670         * html-url.c (handle_link): Handle HTML fragment identifiers.
8671
8672         * recur.c (recursive_retrieve): If norobot info is respected and
8673         the file is specified not to be followed by robots, respect that.
8674
8675         * html-url.c (collect_tags_mapper): Handle <meta name=robots
8676         content=X>.  For us the important cases are where X is NONE or
8677         where X contains NOFOLLOW.
8678         (get_urls_html): Propagate that information to the caller.
8679
8680 2000-11-13  Hrvoje Niksic  <hniksic@arsdigita.com>
8681
8682         * url.c (convert_links): Unlink the file we might be reading from
8683         before writing to it.
8684         (convert_links): Use alloca instead of malloc for
8685         filename_plus_orig_suffix.
8686
8687 2000-11-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8688
8689         * host.c (realhost): Add HOST to the list with quality==0 only if
8690         it wasn't already there.
8691         Based on analysis by Lu Guohan <feng@public.bjnet.edu.cn>.
8692
8693 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8694
8695         * url.c (get_urls_file): Ditto.
8696         (convert_links): Ditto.
8697
8698         * html-url.c (get_urls_html): Use read_file() instead of
8699         load_file().
8700
8701         * utils.c (read_file): New function, instead of the old
8702         load_file().
8703         (read_file_free): Ditto.
8704
8705         * url.c (findurl): Search only for the supported protocols.
8706         (convert_links): Use fwrite() when writing out a region of
8707         characters.
8708
8709 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8710
8711         * ftp-ls.c: Move html_quote_string and ftp_index here.
8712
8713         * url.c: Remove get_urls_html, since that's now in html-url.c.
8714
8715         * html-url.c: New file.
8716
8717         * html-parse.c: New file.
8718
8719 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8720
8721         * init.c (run_wgetrc): Don't bother killing off '\r' since
8722         pars_line() skips whitespace at end of line anyway.
8723         (parse_line): Oops, it didn't.  Now it does.
8724
8725         * recur.c (parse_robots): Ditto here.
8726
8727         * ftp-ls.c (ftp_parse_unix_ls): Kill off the newline character
8728         manually because read_whole_line no longer does.
8729
8730         * utils.c (read_whole_line): Rewrite to: a) use less memory
8731         (reallocates to needed size after work), b) work faster -->
8732         fgets() instead of getc, c) be more correct --> doesn't kill the
8733         newline character at the end of line.
8734
8735 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8736
8737         * init.c (comind): Initialize MAX to array size - 1.
8738
8739 2000-11-08  Hrvoje Niksic  <hniksic@arsdigita.com>
8740
8741         * url.c (construct): Changed last_slash[-1] to *(last_slash - 1).
8742         Suggested by Edward J. Sabol.
8743
8744 2000-11-08  Hrvoje Niksic  <hniksic@arsdigita.com>
8745
8746         * url.c (construct): Handle the case where host name is not
8747         followed by a slash.
8748
8749 2000-11-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8750
8751         * init.c: commands[] need to be sorted!  ("base" wasn't.)
8752
8753 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
8754
8755         * wget.h (DO_REALLOC_FROM_ALLOCA): Use braces to disambiguate
8756         `if'.
8757
8758 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
8759
8760         * url.c (construct): Insert unneeded initialization for the
8761         compiler to shut up.
8762
8763         * config.h.in: Define _XOPEN_SOURCE to 500 to get the prototype
8764         for strptime() (*duh*).  Define _SVID_SOURCE to get S_IFLNK which
8765         otherwise gets lost when you define _XOPEN_SOURCE.
8766
8767         * utils.c (touch): Include the file name in the error message.
8768         From Debian.
8769
8770 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
8771
8772         * log.c (logvprintf): Use vsnprintf() in all cases.  If necessary,
8773         resize the buffer to fit the formated message.  That way, messages
8774         of arbitrary size may be printed.
8775         (logvprintf): Use saved_append() to optionally log the last
8776         several lines of output.
8777         (logputs): Ditto.
8778         (log_close): Adapt to new data structures.
8779         (log_dump): Ditto.
8780         (redirect_output): Print messages to stderr, not to stdout.
8781
8782         * log.c (saved_append_1): New function.  Replaces the old logging
8783         system ("log all output until 10M characters") with a new, much
8784         more reasonable one ("log last screenful of text").
8785         (saved_append): New function; call saved_append_1.
8786         (free_log_line): New function.
8787
8788 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
8789
8790         * url.c (construct): Fix comment.
8791         (find_last_char): Document.
8792
8793 2000-11-04  Hrvoje Niksic  <hniksic@arsdigita.com>
8794
8795         * snprintf.c: New file.
8796
8797 2000-11-03  Hrvoje Niksic  <hniksic@arsdigita.com>
8798
8799         * wget.h: If HAVE_STDARG_H is not defined, don't declare argument
8800         types to logprintf() and debug_logprintf().
8801
8802 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8803
8804         * ftp.c (ftp_loop_internal): Hide the password from the URL when
8805         printing non-verbose.  Problem spotted by Dariusz Mlynarczyk
8806         <darekm@bydg.lomac.com.pl>.
8807
8808 2000-11-02  Junio Hamano  <junio@twinsun.com>
8809
8810         * ftp-basic.c (ftp_login): Make comparison case-insensitive.
8811
8812 2000-11-02  Tyler Riddle  <triddle@liquidmarket.com>
8813
8814         * http.c (known_authentication_scheme_p): Recognize NTML
8815         authentication.
8816         (create_authorization_line): Treat NTML the same as `Basic'.
8817
8818 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8819
8820         * retr.c (retrieve_url): Free url before returning.
8821         (retrieve_url): Free mynewloc before returning.
8822         Spotted by Mark A. Mankins <Mankins_Mark@prc.com>.
8823
8824 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8825
8826         * url.c (parseurl): Remove possible reading past the end of
8827         sup_protos[].  Spotted by Mark A. Mankins <Mankins_Mark@prc.com>.
8828
8829 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8830
8831         * main.c (main): In case of opt.downloaded overflowing, print
8832         <overflow> instead of a totally bogus random value.
8833
8834         * retr.c (retrieve_from_file): Ditto.
8835
8836         * recur.c (recursive_retrieve): Ditto.
8837
8838         * main.c (main): Ditto.
8839
8840         * http.c (http_loop): Ditto.
8841
8842         * ftp.c (ftp_loop_internal): Use downloaded_increase() instead of
8843         `+=', and downloaded_exceeds_quota() instead of the simple-minded
8844         check.
8845         (ftp_retrieve_list): Ditto.
8846         (ftp_retrieve_dirs): Ditto.
8847         (ftp_retrieve_glob): Ditto.
8848
8849         * retr.c (downloaded_increase): New function.  Notice overflows of
8850         opt.downloaded.
8851         (downloaded_exceeds_quota): Make sure that opt.downloaded is not
8852         used if it overflowed.
8853
8854         * options.h (struct options): New member downloaded_overflow.
8855
8856 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8857
8858         * wget.h (enum): Remove extra space after last enumeration.
8859
8860 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8861
8862         * main.c (main): Use legible_very_long() for printing
8863         opt.downloaded.
8864
8865         * utils.c (legible_1): New function that operates on strings and
8866         does the brunt of legible()'s work.
8867         (legible): Use legible_1().
8868         (legible_very_long): New function; dump the argument with
8869         sprintf(), and call legible_1().
8870
8871         * options.h (struct options): Use VERY_LONG_TYPE for
8872         opt.downloaded.
8873
8874         * sysdep.h (VERY_LONG_TYPE): Define it to have a 64-bit or greater
8875         type.
8876
8877         * config.h.in: Make sure that SIZEOF_LONG and SIZEOF_LONG_LONG get
8878         defined.  Define HAVE_LONG_LONG if long long is available.
8879
8880 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8881
8882         * utils.c (long_to_string): Update with a later, better version.
8883
8884 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8885
8886         * url.c (path_simplify_with_kludge): New function.
8887         (path_simplify_with_kludge): Disable it.  Instead...
8888         (parse_dir): ...make sure that at this point the right thing is
8889         done, i.e. that "query" part of the URL (?...) is always assigned
8890         to the file, never to the directory portion of the path.
8891
8892 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8893
8894         * retr.c (retrieve_url): Detect redirection cycles.
8895
8896 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8897
8898         * url.c (get_urls_html): Decode HTML entities using
8899         html_decode_entities.
8900
8901         * html.c (htmlfindurl): Don't count the `#' in numeric entities
8902         (&#NNN;) as an HTML fragemnt.
8903         (html_decode_entities): New function.
8904
8905 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8906
8907         * html.c (htmlfindurl): Fix recognition of # HTML fragments.
8908
8909 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8910
8911         * url.c (construct): Rewritten for clarity.  Avoids the
8912         unnecessary copying and stack-allocation the old version
8913         performed.
8914
8915 2000-10-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8916
8917         * ftp.c (getftp): Ditto.
8918
8919         * http.c (gethttp): Rewind the stream when retrying from scratch.
8920
8921 2000-10-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8922
8923         * retr.c (retrieve_url): Use url_concat() to handle relative
8924         redirections instead of /ad hoc/ code.
8925
8926         * url.c (url_concat): New function encapsulating weird
8927         construct().
8928         (urllen_http_hack): New function.
8929         (construct): When constructing new URLs, recognize that `?' does
8930         not form part of the file name in HTTP.
8931
8932 2000-10-13  Adrian Aichner  <adrian@xemacs.org>
8933
8934         * retr.c: Add msec timing support for WINDOWS.
8935         * retr.c (reset_timer): GetSystemTime() on WINDOWS.
8936         * retr.c (elapsed_time): Calculate delta time to msec on WINDOWS.
8937
8938 2000-10-27  Dan Harkless  <wget@harkless.org>
8939
8940         * retr.c (retrieve_url): Manually applied T. Bharath
8941         <TBharath@responsenetworks.com>'s patch to get wget to grok
8942         illegal relative URL redirects.  Reformatted and re-commented it.
8943
8944 2000-10-23  Dan Harkless  <wget@harkless.org>
8945
8946         * connect.c (make_connection and bindport): Manually applied Rob
8947         Mayoff <mayoff@dqd.com>'s 1.5.3 patch to add --bind-address,
8948         changing coding style to GNU's.
8949
8950         * ftp.c (ftp_loop_internal): --delete-after wasn't implemented for
8951         files downloaded via FTP.  Per a comment, .listing files were not
8952         counted towards number of bytes and files downloaded because they're
8953         deleted anyway.  Well, they aren't under -nr, so count them then.
8954
8955         * init.c: Manually applied Rob Mayoff's 1.5.3 patch to add
8956         --bind-address, alphabetizing, changing coding style to GNU's,
8957         commenting, and renaming cmd_ip_address() to cmd_address() to
8958         imply hostnames also okay.
8959
8960         * main.c (main): --delete-after didn't delete the root of the
8961         tree.  Ignore --convert-links if --delete-after was specified.
8962         Manually applied Rob Mayoff's 1.5.3 patch to add --bind-address,
8963         fixing duplicate use of added-since-1.5.3 case value.
8964         (print_help): Clarified that --delete-after deletes local files.
8965         Rob forgot to add a line for his new --bind-address option.
8966
8967         * options.h (struct options): Manually applied Rob Mayoff's patch
8968         to add --bind-address (bind_address structure member).
8969
8970         * recur.c (recursive_retrieve): Improved comment; added DEBUGP().
8971         Ignore --convert-links if --delete-after was specified.
8972
8973         * retr.c (retrieve_from_file): Just added a DEBUGP().
8974
8975 2000-10-19  Dan Harkless  <wget@harkless.org>
8976
8977         * ftp.c (ftp_loop_internal): downloaded_file() enumerators changed.
8978         (getftp): Applied Piotr Sulecki <Piotr.Sulecki@ios.krakow.pl>'s
8979         patch to work around FTP servers that incorrectly respond to the
8980         "REST" command with the remaining size rather than the total file size.
8981
8982         * http.c (gethttp): Improved a comment and added code to tack on
8983         ".html" to text/html files without that extension when -E specified.
8984         (http_loop): Use new downloaded_file() enumerators and deal with
8985         the case of gethttp() called xrealloc() on u->local.
8986
8987         * init.c (commands): Added new "htmlextension" command.
8988         Also renamed John Daily's cmd_quad() to the more descriptive
8989         cmd_lockable_boolean(), alpha-sorted the CMD_DECLARE()s and
8990         removed duplicate cmd_boolean() declaration.
8991
8992         * main.c (print_help): Added my new -E / --html-extension option.
8993         (main): Undocumented --email-address option previously used -E synonym.
8994         Stole it away for the much more deserving --html-extension's use.
8995
8996         * options.h (struct options): Added html_extension field.
8997
8998         * url.c (convert_links): URL X that we saved as X.html locally due
8999         to -E needs to be backed up as X.orig, not X.html.orig.  Added comments.
9000         (downloaded_file): Now remembers if we added .html extension to a file.
9001
9002         * url.h (downloaded_file_t): Added extra enumerators to support above.
9003         (downloaded_file): Now takes and returns a downloaded_file_t.
9004
9005         * wget.h (unnamed "dt" enum): Added ADDED_HTML_EXTENSION enumerator.
9006
9007 2000-10-09  Dan Harkless  <wget@harkless.org>
9008
9009         * html.c (htmlfindurl): Added unneeded initialization to quiet warning.
9010
9011         * main.c (print_help): Clarified what --retr-symlinks does.
9012
9013 2000-09-15  John Daily  <jdaily@cyberdude.com>
9014
9015         * init.c: Add support for "always" and "never" values to allow
9016         .wgetrc to override commandline (useful e.g. with .pm files
9017         calling `wget --passive-ftp' when your firewall doesn't allow that).
9018
9019         * ftp.c (getftp): passive_ftp is first option to support always/never.
9020
9021 2000-08-30  Dan Harkless  <wget@harkless.org>
9022
9023         * ftp.c (ftp_retrieve_list): Use new INFINITE_RECURSION #define.
9024
9025         * html.c: htmlfindurl() now takes final `dash_p_leaf_HTML' parameter.
9026         Wrapped some > 80-column lines.  When -p is specified and we're at a
9027         leaf node, do not traverse <A>, <AREA>, or <LINK> tags other than
9028         <LINK REL="stylesheet">.
9029
9030         * html.h (htmlfindurl): Now takes final `dash_p_leaf_HTML' parameter.
9031
9032         * init.c: Added new -p / --page-requisites / page_requisites option.
9033
9034         * main.c (print_help): Clarified that -l inf and -l 0 both allow
9035         infinite recursion.  Changed the unhelpful --mirrior description
9036         to simply give the options it's equivalent to.  Added new -p option.
9037         (main): Added some comments; handle new -p / --page-requisites.
9038
9039         * options.h (struct options): Added new page_requisites field.
9040
9041         * recur.c: Changed "URL-s" to "URLs" and "HTML-s" to "HTMLs".
9042         Calculate and pass down new `dash_p_leaf_HTML' parameter to
9043         get_urls_html().  Use new INFINITE_RECURSION #define.
9044
9045         * retr.c: Changed "URL-s" to "URLs".  get_urls_html() now takes
9046         final `dash_p_leaf_HTML' parameter.
9047
9048         * url.c: get_urls_html() and htmlfindurl() now take final
9049         `dash_p_leaf_HTML' parameter.
9050
9051         * url.h (get_urls_html): Now takes final `dash_p_leaf_HTML' parameter.
9052
9053         * wget.h: Added some comments and new INFINITE_RECURSION #define.
9054
9055 2000-08-23  Dan Harkless  <wget@harkless.org>
9056
9057         * main.c (print_help): -B / --base was not mentioned.
9058
9059 2000-08-22  Dan Harkless  <wget@harkless.org>
9060
9061         * main.c (print_help): Modified -nc description to mention that it
9062         also prevents the creation of multiple versions of the same file
9063         with ".<number>" suffixes.
9064
9065 2000-07-14  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
9066
9067         * retr.c (retrieve_url): Consistently strdup opt.referer when
9068         setting u->referer.
9069
9070 2000-06-09  Dan Harkless  <wget@harkless.org>
9071
9072         * main.c (print_help): --help output for --waitretry was over 80 cols.
9073
9074 2000-06-09  Hrvoje Niksic  <hniksic@iskon.hr>
9075
9076         * url.c (encode_string): Fix comment.
9077         Suggested by Herold Heiko <Heiko.Herold@previnet.it>.
9078
9079 2000-06-01  Const Kaplinsky  <const@ce.cctpu.edu.ru>
9080
9081         * ftp.c (ftp_retrieve_list): Change permissions only on plain
9082         files.
9083
9084 2000-06-01  Hrvoje Niksic  <hniksic@iskon.hr>
9085
9086         * url.c (str_url): Print the port number only if it's different
9087         from the default port number for that protocol.
9088
9089 2000-05-22  Dan Harkless  <wget@harkless.org>
9090
9091         * main.c (print_help): Added --help line for Damir Dzeko
9092         <ddzeko@zesoi.fer.hr>'s until-now-undocumented --referer option.
9093         Removed comments that --referer and --waitretry were undocumented.
9094         Changed "`.wgetrc' command" to "`.wgetrc'-style command" on --help
9095         line for --execute.
9096
9097 2000-05-18  Hrvoje Niksic  <hniksic@iskon.hr>
9098
9099         * ftp.c (getftp): Ditto.
9100
9101         * http.c (gethttp): Check for return value of fclose/fflush.
9102
9103 2000-04-12  Hrvoje Niksic  <hniksic@iskon.hr>
9104
9105         * host.c (store_hostaddress): Instead of shifting ADDR, start
9106         copying from the correct address.
9107
9108 2000-04-12  Hrvoje Niksic  <hniksic@iskon.hr>
9109
9110         * http.c (gethttp): Don't free REQUEST -- it was allocated with
9111         alloca().
9112         Pointed out by Gisle Vanem <gvanem@eunet.no>.
9113
9114 2000-04-04  Dan Harkless  <wget@harkless.org>
9115
9116         * host.c (store_hostaddress): R. K. Owen's patch introduces a
9117         "left shift count >= width of type" warning on 32-bit
9118         architectures.  Got rid of it by tricking the compiler w/ a variable.
9119
9120         * url.c (UNSAFE_CHAR): The macro didn't include all the illegal
9121         characters per RFC1738, namely everything above '~'.  It also
9122         generated a warning on OSes where char =~ unsigned char.  Fixed.
9123
9124 1998-10-17  Hrvoje Niksic  <hniksic@srce.hr>
9125
9126         * http.c (http_process_type): Removed needless strdup(), a memory
9127         leak.
9128
9129 1998-09-25  Hrvoje Niksic  <hniksic@srce.hr>
9130
9131         * html.c (htmlfindurl): Set PH to the first occurrence of `#'.
9132
9133 1998-09-25  Simon Munton  <simonm@m4data.co.uk>
9134
9135         * init.c (wgetrc_file_name): Don't free HOME under Windows.
9136
9137 1998-12-01  "R. K. Owen"  <rkowen@Nersc.GOV>
9138
9139         * host.c (store_hostaddress): Fix for big endian 64-bit machines.
9140
9141 1998-12-01  Hrvoje Niksic  <hniksic@srce.hr>
9142
9143         * url.c (UNSAFE_CHAR): New macro.
9144         (contains_unsafe): Use it.
9145         (encode_string): Ditto.
9146
9147 1998-12-01  Hrvoje Niksic  <hniksic@srce.hr>
9148
9149         * main.c (i18n_initialize): Use LC_MESSAGES only if available.
9150
9151 2000-03-31  Hrvoje Niksic  <hniksic@srce.hr>
9152
9153         * Use TOUPPER/TOLOWER.
9154
9155 1998-12-22  Alexander V. Lukyanov  <lav@yars.free.net>
9156
9157         * ftp-opie.c (btoe): Zero-terminate OSTORE.
9158
9159 2000-03-21  Hrvoje Niksic  <hniksic@iskon.hr>
9160
9161         * wget.h (DO_REALLOC_FROM_ALLOCA): Ditto.
9162
9163         * sysdep.h (ISALNUM): New macro.
9164         (TOLOWER): Ditto.
9165         (TOUPPER): Ditto.
9166
9167 2000-03-10  Dan Harkless  <wget@harkless.org>
9168
9169         * html.c (idmatch): Implemented checking of my new --follow-tags
9170         and --ignore-tags options.
9171
9172         * init.c (commands): Added comment reminding people adding new
9173         entries doing allocation to add corresponding freeing in cleanup().
9174         (commands): Added new followtags and ignoretags commands.
9175         (cleanup): Free storage for new followtags and ignoretags.
9176
9177         * main.c: Use of "comma-separated list" was random -- normalized
9178         it.  Did some alphabetization.  Added comments pointing out
9179         "Options without arguments" and "Options accepting an argument"
9180         sections of long_options[].  Added new options --follow-tags and
9181         -G / --ignore-tags.  Added comment that Damir's --referer is
9182         currently undocumented.  Added comment that Heiko's --waitretry is
9183         partially undocumented (mentioned in --help but not in
9184         wget.texi).  Moved improperly sorted 24, 129, and 'G' cases.
9185
9186         * options.h (struct options): Added new fields follow_tags and
9187         ignore_tags.
9188
9189         * wget.h: Added "#define EQ 0" so we can say "strcmp(a, b) == EQ".
9190
9191 2000-03-02  Dan Harkless  <wget@harkless.org>
9192
9193         * ftp.c (ftp_loop_internal): Heiko introduced "suggest explicit
9194         braces to avoid ambiguous `else'" warnings.  Eliminated them.
9195
9196         * http.c (gethttp): Dan Berger's query string patch is totally
9197         bogus.  If you have two different URLs, gen_page.cgi?page1 and
9198         get_page.cgi?page2, they'll both be saved as get_page.cgi and the
9199         second will overwrite the first.  Also, parameters to implicit
9200         CGIs, like "http://www.host.com/db/?2000-03-02" cause the URLs to
9201         be printed with trailing garbage characters, and could seg fault.
9202         Backing out the patch, which Dan B. informed me by email was just
9203         a kludge to download StarOffice from Sun made necessary due to
9204         wget's unconditional escaping of certain characters (room for an
9205         option there?).
9206         (http_loop): Heiko introduced "suggest explicit braces to avoid
9207         ambiguous `else'" warnings.  Eliminated them.
9208
9209         * main.c: Heiko's --wait / --waitretry backwards compatibility
9210         code looks to have been totally untested -- automatic variable
9211         'wr' was used without being initialized, and a long int was passed
9212         into setval()'s char* val parameter.
9213
9214         * recur.c (parse_robots): Applied Edward J. Sabol
9215         <sabol@alderaan.gsfc.nasa.gov>'s patch for Guan Yang's reported
9216         problem with "User-agent:<space>*<space>" lines in robots.txt.
9217
9218         * url.c (parseurl, str_url): Removing Dan Berger's code (see
9219         http.c above for explanation).
9220
9221 1999-08-25  Heiko Herold  <Heiko.Herold@previnet.it>
9222
9223         * ftp.c: Respect new option waitretry.
9224
9225 2000-01-30  Damir Dzeko  <ddzeko@zesoi.fer.hr>
9226
9227         * http.c (gethttp): Send custom Referer, if required.
9228
9229 1999-09-24  Charles G Waldman  <cgw@fnal.gov>
9230
9231         * netrc.c (parse_netrc): Allow passwords to contain spaces.
9232
9233         * netrc.c (parse_netrc): New function.
9234
9235 1999-09-17  Dan Berger  <dberger@ix.netcom.com>
9236
9237         * http.c (gethttp): Send it.
9238
9239         * url.c (parseurl): Detect query string in HTTP URL-s.
9240         (str_url): Print it.
9241
9242 2000-03-02  HIROSE Masaaki  <hirose31@t3.rim.or.jp>
9243
9244         * html.c (html_allow): Add <link href=...> and <script src=...>.
9245
9246 1999-05-02  andrew deryabin  <djsf@softhome.net>
9247
9248         * http.c (gethttp): Specify port in `Host' header only if it's
9249         different from 80.
9250
9251 1998-11-03  Edward J. Sabol  <sabol@alderaan.gsfc.nasa.gov>
9252
9253         * recur.c (recursive_retrieve): If a finite maximum depth is
9254         specified, and we're are already at that depth, don't download the
9255         HTML file for parsing.
9256
9257 2000-03-01  Dan Harkless  <wget@harkless.org>
9258
9259         * ftp.c (ftp_loop_internal): Call new downloaded_file() function,
9260         even though we don't do conversion on HTML files retrieved via
9261         FTP, so _current_ usage of downloaded_file() makes this call unneeded.
9262         (ftp_retrieve_list): Added a comment saying where we need to
9263         stat() a .orig file if FTP'd HTML file conversion is ever implemented.
9264         (ftp_retrieve_list): "Local file '%s' is more recent," is sometimes
9265         a lie -- reworded as "Server file no newer than local file '%s' --".
9266
9267         * http.c (http_loop): Fixed a typo and clarified a comment.
9268         (http_loop): When -K and -N are specified together, compare size
9269         and timestamp of server file X against local file X.orig (if
9270         extant) rather than converted local file X.
9271         (http_loop): "Local file '%s' is more recent," is sometimes a lie
9272         -- reworded as "Server file no newer than local file '%s' --".
9273         (http_loop): Call new downloaded_file() function to prevent
9274         wrongful overwriting of .orig file when -N is specified.
9275
9276         * url.c (convert_links): When -K specified, only rename X to
9277         X.orig if downloaded_file() returns TRUE.  Otherwise when we skip
9278         file X due to -N, we clobber an X.orig from a previous invocation.
9279         (convert_links): Call the failsafe xstrdup(), not the real strdup().
9280         (convert_links): Added a note asking anyone who understands how
9281         multiple URLs can correspond to a single file to comment it.
9282         (downloaded_file): Added this new function.
9283
9284         * url.h (downloaded_file): Added prototype for this new function
9285         as well as its downloaded_file_t enum type.
9286
9287         * wget.h (boolean): Added this new typedef and TRUE and FALSE #defines.
9288
9289 2000-02-29  Dan Harkless  <wget@harkless.org>
9290
9291         * version.c: Upped version to developer-only "1.5.3+dev".
9292
9293 2000-02-18  Dan Harkless  <wget@harkless.org>
9294
9295         * init.c (backup_converted): Added this new option.
9296
9297         * main.c (-K / --backup-converted): Added this new option.
9298
9299         * options.h (backup_converted): Added this new option.
9300
9301         * url.c (convert_links): When backup_converted is specified, save
9302         file X as X.orig before converting.
9303
9304         * url.h (urlpos): Fixed typo -- said "Rekative" instead of "Relative".
9305
9306 1998-09-21  Hrvoje Niksic  <hniksic@srce.hr>
9307
9308         * version.c: Wget 1.5.3 is released.
9309
9310 1998-09-21  Hrvoje Niksic  <hniksic@srce.hr>
9311
9312         * host.c (ftp_getaddress): Don't warn when reverse-lookup of local
9313         address doesn't yield FQDN.
9314
9315 1998-09-21  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
9316
9317         * cmpt.c (strerror): Fix declaration of sys_errlist.
9318
9319 1998-09-11  Hrvoje Niksic  <hniksic@srce.hr>
9320
9321         * main.c (main): Don't use an array subscript as the first
9322         argument to STRDUP_ALLOCA.
9323         From Kaveh R. Ghazi.
9324
9325 1998-09-11  Szakacsits Szabolcs  <szaka@sienet.hu>
9326
9327         * html.c (htmlfindurl): Download table background.
9328
9329 1998-09-11  Hans Grobler  <grobh@conde.ee.sun.ac.za>
9330
9331         * init.c (parse_line): Would free *com before allocating it.
9332         (parse_line): Would free com instead of *com.
9333
9334 1998-09-10  Howard Gayle  <howard@fjst.com>
9335
9336         * url.c (get_urls_html): Would drop the last character of the
9337         link.
9338
9339 1998-09-10  Hrvoje Niksic  <hniksic@srce.hr>
9340
9341         * http.c (http_loop): Don't print status code if quiet.
9342
9343 1998-09-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9344
9345         * log.c: Use <stdarg.h> only when __STDC__.
9346
9347 1998-09-10  Adam D. Moss  <adam@foxbox.org>
9348
9349         * html.c (htmlfindurl): Download <layer src=...>.
9350
9351 1998-09-10  Howard Gayle  <howard@fjst.com>
9352
9353         * ftp.c (ftp_retrieve_list): Don't update the time stamp of a file
9354         not retrieved.
9355
9356 1998-06-27  Hrvoje Niksic  <hniksic@srce.hr>
9357
9358         * utils.c: Include <libc.h> on NeXT.
9359
9360 1998-06-26  Heinz Salzmann  <heinz.salzmann@intermetall.de>
9361
9362         * url.c (get_urls_html): Fix calculation of URL position.
9363
9364 1998-06-23  Hrvoje Niksic  <hniksic@srce.hr>
9365
9366         * version.c: Wget 1.5.2 is released.
9367
9368 1998-06-23  Dave Love  <d.love@dl.ac.uk>
9369
9370         * ftp.c, init.c, netrc.c: Include errno.h.
9371
9372         * http.c: Include errno.h and time header.
9373
9374         * Makefile.in (exext): Define.
9375         (install.bin, uninstall.bin): Use it.
9376
9377 1998-06-21  Hrvoje Niksic  <hniksic@srce.hr>
9378
9379         * http.c (http_loop): Don't attempt to compare local and remote
9380         sizes if the remote size is unknown.
9381
9382 1998-06-16  Hrvoje Niksic  <hniksic@srce.hr>
9383
9384         * url.c (get_urls_html): Use malloc() instead of alloca in the
9385         loop.
9386
9387 1998-06-13  Hrvoje Niksic  <hniksic@srce.hr>
9388
9389         * version.c: Wget 1.5.2-b4 is released.
9390
9391 1998-06-13  Hrvoje Niksic  <hniksic@srce.hr>
9392
9393         * url.c (get_urls_html): Ignore spaces before and after the URI.
9394
9395 1998-06-08  Wanderlei Antonio Cavassin  <cavassin@conectiva.com.br>
9396
9397         * ftp.c (getftp): Translate `done'.
9398
9399 1998-06-06  Hrvoje Niksic  <hniksic@srce.hr>
9400
9401         * version.c: Wget 1.5.2-b3 is released.
9402
9403 1998-06-06  Alexander Kourakos  <awk@bnt.com>
9404
9405         * init.c (cleanup): Close dfp, don't free it.
9406
9407 1998-06-06  Hrvoje Niksic  <hniksic@srce.hr>
9408
9409         * utils.c (make_directory): Twiddle.
9410
9411         * config.h.in: Added template for access().
9412
9413 1998-06-05  Mathieu Guillaume  <mat@cythere.com>
9414
9415         * html.c (htmlfindurl): Download <input src=...>
9416
9417 1998-06-03  Hrvoje Niksic  <hniksic@srce.hr>
9418
9419         * utils.c (file_exists_p): Use access() with two arguments.
9420
9421 1998-05-27  Martin Kraemer  <Martin.Kraemer@mch.sni.de>
9422
9423         * netrc.c (parse_netrc): Correct logic.
9424
9425 1998-05-27  Hrvoje Niksic  <hniksic@srce.hr>
9426
9427         * ftp.c (getftp): Added `break'; suggested by Lin Zhe Min
9428         <ljm@ljm.wownet.net>.
9429
9430 1998-05-24  Hrvoje Niksic  <hniksic@srce.hr>
9431
9432         * version.c: Wget 1.5.2-b2 is released.
9433
9434 1998-05-18  Juan Jose Rodriguez  <jcnsoft@jal1.telmex.net.mx>
9435
9436         * mswindows.h: Don't translate mkdir to _mkdir under Borland.
9437
9438 1998-05-17  Hrvoje Niksic  <hniksic@srce.hr>
9439
9440         * retr.c (elapsed_time): Return correct value when
9441         HAVE_GETTIMEOFDAY is undefined.
9442
9443 1998-05-13  Hrvoje Niksic  <hniksic@srce.hr>
9444
9445         * version.c: Wget 1.5.2-b1 is released.
9446
9447 1998-05-08  Hrvoje Niksic  <hniksic@srce.hr>
9448
9449         * getopt.c (_getopt_internal): Use exec_name instead of argv[0].
9450         (_getopt_internal): Don't translate `#if 0'-ed strings.
9451
9452 1998-05-06  Douglas E. Wegscheid  <wegscd@whirlpool.com>
9453
9454         * mswindows.c (ws_handler): Use fork_to_background().
9455
9456 1998-05-05  Hrvoje Niksic  <hniksic@srce.hr>
9457
9458         * version.c: Wget 1.5.1 is released.
9459
9460 1998-05-05  Hrvoje Niksic  <hniksic@srce.hr>
9461
9462         * http.c (parse_http_status_line): Avoid `minor' and `major'
9463         names.
9464
9465 1998-05-02  Hrvoje Niksic  <hniksic@srce.hr>
9466
9467         * utils.c (mkdirhier): Renamed to make_directory.
9468
9469 1998-05-01  Hrvoje Niksic  <hniksic@srce.hr>
9470
9471         * mswindows.c (fork_to_background): Define under Windows.
9472
9473         * utils.c (fork_to_background): New function.
9474
9475         * html.c (htmlfindurl): Removed rerdundant casts.
9476
9477 1998-05-01  Douglas E. Wegscheid  <wegscd@whirlpool.com>
9478
9479         * mswindows.c (ws_mypath): Cache the path.
9480
9481 1998-04-30  Douglas E. Wegscheid  <wegscd@whirlpool.com>
9482
9483         * ftp.h: Prefix enum ftype members with FT_.
9484
9485         * ftp-ls.c, ftp.c, html.h: Adjust accordingly.
9486
9487         * mswindows.h: Use stat under Borland, _stat under MSVC.
9488
9489 1998-04-28  Hrvoje Niksic  <hniksic@srce.hr>
9490
9491         * http.c (known_authentication_scheme_p): New function.
9492         (gethttp): Handle authorization more correctly.
9493
9494         * ftp-basic.h: Removed.
9495
9496         * cmpt.h: Removed.
9497
9498         * utils.c: Include <unistd.h> before <pwd.h>; needed under SunOS
9499         with gcc 2.8.
9500         (numdigit): Use `while' loop.
9501
9502         * http.c (create_authorization_line): Detect authentication
9503         schemes case-insensitively.
9504
9505         * http.c (extract_header_attr): Use strdupdelim().
9506         (digest_authentication_encode): Move declaration of local
9507         variables to smaller scope.
9508         (digest_authentication_encode): Reset REALM, OPAQUE and NONCE.
9509         (create_authorization_line): Detect authentication schemes
9510         case-insensitively.
9511
9512         * utils.c (touch): Constify.
9513
9514         * http.c (gethttp): Report a nicer error when no data is received.
9515
9516         * rbuf.h (RBUF_READCHAR): Ditto.
9517
9518         * ftp-basic.c (ftp_response): Use sizeof.
9519
9520 1998-04-27  Hrvoje Niksic  <hniksic@srce.hr>
9521
9522         * retr.c (print_percentage): EXPECTED is long, not int.
9523         (print_percentage): Use floating-point arithmetic to avoid
9524         overflow with large files' sizes multiplied with 100.
9525
9526 1998-04-27  Gregor Hoffleit  <flight@mathi.uni-heidelberg.de>
9527
9528         * config.h.in: Added pid_t stub.
9529
9530         * sysdep.h (S_ISREG): Moved here from mswindows.h (NeXT doesn't
9531         define it).
9532
9533 1998-04-20  Hrvoje Niksic  <hniksic@srce.hr>
9534
9535         * version.c: Wget 1.5.0 is released.
9536
9537 1998-04-18  Hrvoje Niksic  <hniksic@srce.hr>
9538
9539         * url.c (str_url): Ditto.
9540
9541         * ftp-basic.c (ftp_rest): Use new name.
9542
9543         * utils.c (long_to_string): Renamed from prnum().
9544
9545 1998-04-16  Hrvoje Niksic  <hniksic@srce.hr>
9546
9547         * version.c: Wget 1.5-b17 is released.
9548
9549 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
9550
9551         * headers.c (header_get): New argument FLAGS.
9552
9553         * http.c (gethttp): If request is malformed, bail out of the
9554         header loop.
9555         (gethttp): Check for empty header *after* the status line checks.
9556         (gethttp): Disallow continuations for status line.
9557
9558 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
9559
9560         * version.c: Wget 1.5-b16 is released.
9561
9562 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
9563
9564         * init.c (commands): Renamed `always_rest' to `continue'.
9565
9566 1998-04-05  Hrvoje Niksic  <hniksic@srce.hr>
9567
9568         * all: Use it.
9569
9570         * log.c (logputs): New argument.
9571         (logvprintf): Ditto.
9572         (logprintf): Ditto.
9573
9574 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
9575
9576         * http.c (http_atotm): Update comment.
9577
9578         * main.c (i18n_initialize): Set LC_MESSAGES, not LC_ALL.
9579
9580         * wget.h: Renamed ENABLED_NLS to HAVE_NLS.
9581
9582         * main.c (i18n_initialize): New function.
9583         (main): Use it.
9584
9585         * log.c: Include <unistd.h>.
9586
9587         * retr.c (show_progress): Cast alloca to char *.
9588
9589 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
9590
9591         * version.c: Wget 1.5-b15 is released.
9592
9593 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
9594
9595         * utils.h: Declare file_non_directory_p().
9596
9597 1998-04-03  Hrvoje Niksic  <hniksic@srce.hr>
9598
9599         * main.c (main): It's `tries', not `numtries' now.
9600
9601 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
9602
9603         * init.c (getperms): Removed.
9604
9605 1998-04-01  Tim Charron  <tcharron@interlog.com>
9606
9607         * log.c (logvprintf): Don't use ARGS twice.
9608
9609 1998-04-01  John  <john@futuresguide.com>
9610
9611         * mswindows.c: Cleaned up.
9612
9613 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
9614
9615         * version.c: Wget 1.5-b14 is released.
9616
9617 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
9618
9619         * ftp-opie.c (STRLEN4): New macro.
9620         (btoe): Use it.
9621
9622 1998-04-01  Junio Hamano  <junio@twinsun.com>
9623
9624         * http.c: Document all the Digest functions.
9625
9626 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
9627
9628         * utils.c (file_non_directory_p): Renamed from isfile().
9629
9630         * mswindows.h (S_ISREG): New macro, suggested by Tim Adam.
9631
9632 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
9633
9634         * utils.c (mkdirhier): Use 0777 instead of opt.dirmode.
9635
9636         * init.c (cmd_spec_dotstyle): Use 48 dots per line for binary
9637         style.
9638         (cmd_permissions): Removed.
9639
9640         * config.h.in: Add template for WORDS_BIGENDIAN.
9641
9642 1998-03-31  Junio Hamano  <junio@twinsun.com>
9643
9644         * http.c (HEXD2asc): New macro.
9645         (dump_hash): Use it.
9646
9647 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
9648
9649         * version.c: Wget 1.5-b13 is released.
9650
9651 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
9652
9653         * main.c (main): Don't try to use `com'.
9654
9655 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
9656
9657         * init.c (cmd_permissions): New function.
9658
9659 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
9660
9661         * version.c: Wget 1.5-b12 is released.
9662
9663 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
9664
9665         * init.c (commands): Renamed `numtries' to `tries'.
9666         (cmd_spec_debug): Removed.
9667         (home_dir): Under Windows, return `C:\' if HOME is undefined.
9668
9669 1998-03-29  Hrvoje Niksic  <hniksic@srce.hr>
9670
9671         * config.h.in: Define _XOPEN_SOURCE.
9672
9673         * init.c (check_user_specified_header): New function.
9674         (cmd_spec_header): Use it.
9675         (cmd_spec_useragent): New function.
9676
9677 1998-03-29  Hrvoje Niksic  <hniksic@srce.hr>
9678
9679         * version.c: Wget 1.5-b11 is released.
9680
9681 1998-03-28  Hrvoje Niksic  <hniksic@srce.hr>
9682
9683         * wget.h: Include <libintl.h> only if NLS is enabled.
9684
9685 1998-03-26  Hrvoje Niksic  <hniksic@srce.hr>
9686
9687         * options.h (struct options): Made `wait' a long.
9688         (struct options): Ditto for `timeout'.
9689
9690 1998-03-19  Hrvoje Niksic  <hniksic@srce.hr>
9691
9692         * utils.c (exists): Renamed to file_exists_p.
9693         (file_exists_p): Use access() if available.
9694
9695 1998-03-17  Hrvoje Niksic  <hniksic@srce.hr>
9696
9697         * utils.c (memfatal): Set save_log_p to 0 to avoid potential
9698         infloop.
9699
9700         * log.c: do_logging -> save_log_p.
9701
9702         * config.h.in: Added template for HAVE_VSNPRINTF.
9703
9704 1998-03-16  Hrvoje Niksic  <hniksic@srce.hr>
9705
9706         * init.c: Ditto.
9707
9708         * http.c: Protect declaration against non-ANSI compiler.
9709
9710         * log.c (logvprintf): Use vsnprintf() if available.
9711
9712         * getopt.c (main): Don't translate test stuff.
9713
9714 1998-03-16  Hrvoje Niksic  <hniksic@srce.hr>
9715
9716         * version.c: Wget 1.5-b10 is released.
9717
9718 1998-03-11  Hrvoje Niksic  <hniksic@srce.hr>
9719
9720         * ftp.c (getftp): Don't translate "CWD %s".
9721
9722         * wget.h (GCC_FORMAT_ATTR): Renamed from FORMAT_ATTR.
9723
9724 1998-03-07  Hrvoje Niksic  <hniksic@srce.hr>
9725
9726         * ftp-opie.c (btoe): Use memcpy() instead of strncat().
9727
9728         * log.c (logputs): New function.
9729         (logvprintf): Renamed from vlogmsg; use logputs().
9730
9731         * retr.c (show_progress): Print `[100%]' when the retrieval is
9732         finished.
9733
9734         * init.c (run_wgetrc): Use FILE, not PATH.
9735         (wgetrc_file_name): Ditto.
9736
9737 1998-03-07  Tim Adam  <tma@osa.com.au>
9738
9739         * recur.c (parse_robots): Correctly reset `entries' on empty
9740         disallow.
9741
9742 1998-03-07  Hrvoje Niksic  <hniksic@srce.hr>
9743
9744         * init.c (cmd_spec_debug): Use cmd_boolean().
9745
9746 1998-02-23  Hrvoje Niksic  <hniksic@srce.hr>
9747
9748         * http.c (gethttp): Create proxy-authorization correctly.
9749
9750 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
9751
9752         * md5.c: Ditto.
9753
9754         * getopt.c: Use ANSI function definitions.
9755
9756         * ftp-opie.c: New file.
9757
9758         * options.h: Don't redefine EXTERN.
9759
9760         * init.c: Sort it correctly.
9761
9762 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
9763
9764         * version.c: Wget 1.5-b9 is released.
9765
9766 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
9767
9768         * recur.c (recursive_retrieve): Reset `first_time'.
9769
9770         * ftp.c (getftp): Added `default' clause to switches of uerr_t.
9771
9772         * rbuf.c (rbuf_peek): Simplified.
9773         (rbuf_flush): Use MINVAL.
9774
9775         * wget.h (MINVAL): Moved from url.h.
9776
9777         * rbuf.h (RBUF_FD): New macro.
9778
9779         * url.c (add_url): Add to the head of the list.
9780
9781         * ftp.c (ftp_retrieve_list): Set the permissions to downloaded
9782         file.
9783         (getftp): Set the default permissions to 0600.
9784
9785 1998-02-21  Hrvoje Niksic  <hniksic@srce.hr>
9786
9787         * url.c (get_urls_html): Ditto.
9788         (convert_links): Ditto.
9789
9790         * recur.c (parse_robots): Ditto.
9791
9792         * html.c (ftp_index): Ditto.
9793
9794         * ftp-ls.c (ftp_parse_unix_ls): Open file as binary.
9795
9796         * init.c (defaults): Initialize `opt' to zero via memset.
9797
9798         * http.c (digest_authentication_encode): goto considered harmful.
9799
9800 1998-02-19  Hrvoje Niksic  <hniksic@srce.hr>
9801
9802         * ftp.c (delelement): Simplify and fix leak.
9803
9804 1998-02-18  Hrvoje Niksic  <hniksic@srce.hr>
9805
9806         * http.c (dump_hash): Use HEXD2ASC instead of home-grown stuff.
9807
9808         * url.h (HEXD2ASC): Removed warning.
9809
9810         * init.c (comind): Use binary search.
9811         (commands): Reorganized.
9812         (setval): Ditto.
9813         (cmd_boolean): New function.
9814         (cmd_number): Ditto.
9815         (cmd_number_inf): Ditto.
9816         (cmd_string): Ditto.
9817         (cmd_vector): Ditto.
9818         (cmd_directory_vector): Ditto.
9819         (cmd_bytes): Ditto.
9820         (cmd_time): Ditto.
9821         (cmd_spec_debug): Ditto.
9822         (cmd_spec_dirmode): Ditto.
9823         (cmd_spec_dirstruct): Ditto.
9824         (cmd_spec_dotstyle): Ditto.
9825         (cmd_spec_header): Ditto.
9826         (cmd_spec_htmlify): Ditto.
9827         (cmd_spec_mirror): Ditto.
9828         (cmd_spec_outputdocument): Ditto.
9829         (cmd_spec_recursive): Ditto.
9830         (settime): Merged with cmd_time().
9831         (setbytes): Merged with cmd_bytes().
9832         (setonoff): Merged with cmd_boolean().
9833         (onoff): Ditto.
9834
9835 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
9836
9837         * Makefile.in (distclean): Remove `config.h'.
9838
9839 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
9840
9841         * version.c: Wget 1.5-b8 is released.
9842
9843 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
9844
9845         * http.c (digest_authentication_encode): New function.
9846         (create_authorization_line): Use it.
9847         (dump_hash): New function.
9848         (digest_authentication_encode): Use it.
9849
9850         * fnmatch.c: Renamed from `mtch.c'.
9851
9852 1998-02-15  Karl Eichwalder  <ke@suse.de>
9853
9854         * main.c (main): Tag "Written by..." string as translatable.
9855
9856 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
9857
9858         * wget.h (FREE_MAYBE): New macro.
9859
9860         * http.c (create_authorization_line): Don't use ANSI C string
9861         concatenation feature.
9862         (basic_authentication_encode): Use alloca() for temporary
9863         variables.
9864
9865         * recur.h: Ditto.
9866
9867         * http.c: Ditto.
9868
9869         * headers.h: Ditto.
9870
9871         * ftp-basic.c: Protect declaration against non-ANSI compiler.
9872
9873         * http.c (create_authorization_line): Cast `unsigned char *' to
9874         `char *' for sprintf, to shut up the noisy Digital Unix cc.
9875
9876 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
9877
9878         * version.c: Wget 1.5-b7 is released.
9879
9880 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
9881
9882         * cmpt.c (strstr): Synched with glibc-2.0.6.
9883
9884         * ftp-basic.c (calculate_skey_response): Ditto.
9885         (calculate_skey_response): Use alloca().
9886
9887         * http.c (create_authorization_line): Work with FSF's version of
9888         md5.c.
9889
9890         * md5.c: New file, from GNU libc.
9891
9892 1998-02-14  Hrvoje Niksic  <hniksic@srce.hr>
9893
9894         * url.h (URL_CLEANSE): Name the temporary variable more carefully.
9895
9896 1998-02-13  Hrvoje Niksic  <hniksic@srce.hr>
9897
9898         * http.c (basic_authentication_encode): New function, instead of
9899         the macro.
9900
9901 1998-02-13  Junio Hamano  <junio@twinsun.com>
9902
9903         * http.c: Add HTTP-DA support.
9904         * ftp-basic.c: Add Opie/S-key support.
9905         * config.h.in, Makefile.in: Add HTTP-DA and Opie/S-key support.
9906         * md5.c, md5.h: New files.
9907
9908 1998-02-13  Hrvoje Niksic  <hniksic@srce.hr>
9909
9910         * http.c (http_process_range): Renamed from hprocrange().
9911         (http_process_range): Parse the whole header.
9912
9913         * headers.c: New file.
9914         (header_process): New function.
9915         (header_get): Renamed from fetch_next_header.
9916
9917         * all: Include utils.h only where necessary.
9918
9919         * wget.h: Declare xmalloc(), xrealloc() and xstrdup() here.
9920
9921         * wget.h: Add provisions for dmalloc.
9922
9923 1998-02-12  Hrvoje Niksic  <hniksic@srce.hr>
9924
9925         * version.c: Wget 1.5-b6 is released.
9926
9927 1998-02-12  Hrvoje Niksic  <hniksic@srce.hr>
9928
9929         * ftp.c (ftp_loop): Determine `filename' more precisely.
9930
9931         * init.c (setval): Don't set `opt.quiet' if output-document is
9932         `-'.
9933
9934         * log.c (log_init): Print to STDERR instead of STDOUT.
9935         (vlogmsg): Use STDERR by default.
9936         (logflush): Ditto.
9937
9938 1998-02-11  Simon Josefsson  <jas@pdc.kth.se>
9939
9940         * host.c: Use addr_in again.
9941
9942 1998-02-08  Karl Eichwalder  <karl@suse.de>
9943
9944         * http.c (gethttp): Fixed typo.
9945
9946 1998-02-08  Hrvoje Niksic  <hniksic@srce.hr>
9947
9948         * version.c: Wget 1.5-b5 is released.
9949
9950 1998-02-08  Hrvoje Niksic  <hniksic@srce.hr>
9951
9952         * retr.c (show_progress): Use it.
9953
9954         * log.c (logflush): New function.
9955
9956         * wget.h: Utilize __attribute__ if on gcc.
9957
9958 1998-02-07  Hrvoje Niksic  <hniksic@srce.hr>
9959
9960         * http.c (base64_encode_line): New argument LENGTH.
9961         (BASIC_AUTHENTICATION_ENCODE): Use it.
9962         (BASIC_AUTHENTICATION_ENCODE): Take length of HEADER into account.
9963
9964         * main.c (main): Fixed fprintf() format mismatch.
9965
9966 1998-02-06  Hrvoje Niksic  <hniksic@srce.hr>
9967
9968         * version.c: Wget 1.5-b4 is released.
9969
9970 1998-02-03  Simon Josefsson  <jas@pdc.kth.se>
9971
9972         * host.c: use sockaddr_in instead of addr_in.
9973
9974 1998-02-04  Hrvoje Niksic  <hniksic@srce.hr>
9975
9976         * init.c (cleanup): Use it.
9977
9978         * recur.c (recursive_cleanup): New function.
9979
9980         * retr.c (retrieve_from_file): Ditto.
9981
9982         * main.c (main): Use it.
9983
9984         * recur.c (recursive_reset): New function.
9985
9986         * retr.c (retrieve_from_file): Ditto.
9987
9988         * main.c (main): Simplify call to recursive_retrieve().
9989
9990         * recur.c (recursive_retrieve): Removed FLAGS argument.
9991
9992         * http.c (gethttp): Changed call to iwrite().
9993
9994 1998-02-03  Hrvoje Niksic  <hniksic@srce.hr>
9995
9996         * url.c (get_urls_html): Ditto.
9997         (free_urlpos): Ditto.
9998         (mkstruct): Ditto.
9999         (construct): Ditto.
10000
10001         * retr.c (retrieve_url): Move declaration of local variables to
10002         smaller scope.
10003
10004         * url.c (urlproto): Use it.
10005         (parseurl): Ditto.
10006         (str_url): Ditto.
10007         (get_urls_html): Ditto.
10008
10009         * utils.h (ARRAY_SIZE): New macro.
10010
10011         * url.c (proto): Moved from url.h.
10012
10013         * url.h (URL_CLEANSE): Reformatted.
10014         (USE_PROXY_P): Renamed from USE_PROXY.
10015
10016         * ftp-basic.c: Adjust to the new interface of iwrite().
10017
10018         * ftp-basic.c (ftp_port): Use alloca().
10019
10020 1998-02-03  Hrvoje Niksic  <hniksic@srce.hr>
10021
10022         * version.c: Wget 1.5-b3 is released.
10023
10024         * host.c (ftp_getaddress): Don't print to stderr directly.
10025
10026         * init.c (setbytes): Support `g' for gigabytes.
10027         (cmdtype): New specification CTIME.
10028         (setval): Use it with settime().
10029         (commands): Use it for WAIT and TIMEOUT.
10030
10031 1998-02-02  Hrvoje Niksic  <hniksic@srce.hr>
10032
10033         * http.c (BASIC_AUTHENTICATION_ENCODE): New macro.
10034         (gethttp): Use it.
10035
10036         * utils.c (unique_name_1): Moved from url.c.
10037         (unique_name): Ditto.
10038
10039         * url.c (url_filename): Ditto.
10040
10041         * log.c (redirect_output): Changed call to unique_name().
10042
10043         * url.c (unique_name_1): Renamed from unique_name().
10044         (unique_name): Changed interface.
10045
10046         * init.c (enum cmdid): Moved from init.h.
10047         (cmdtype): Ditto.
10048         (struct cmd): Ditto.
10049
10050         * main.c (main): Use it.
10051         (main): Moved `--backups' to not have a short option.
10052
10053         * options.h (struct options): New member BACKGROUND.
10054
10055         * main.c (print_help): Rearranged.
10056         (main): New long options for -n* short options: --no-directories,
10057         --no-host-directories, --non-verbose, --no-host-lookup and
10058         --dont-remove-listing.
10059
10060 1998-02-01  Hrvoje Niksic  <hniksic@srce.hr>
10061
10062         * main.c (main): Use log_close().
10063
10064         * log.c: New variable LOGFP.
10065         (vlogmsg): Use it.
10066         (redirect_output): Don't open /dev/null; set LOGFP to stdin
10067         instead.
10068         (log_close): New function.
10069
10070         * options.h (struct options): Removed LFILE.
10071
10072         * log.c (log_enable): Removed.
10073
10074         * main.c (main): Use it.
10075
10076         * log.c (log_init): New function.
10077
10078         * url.c (get_urls_html): Removed needless assignment to BASE.
10079
10080         * host.c (add_hlist): Don't set CMP needlessly.
10081
10082         * utils.c (match_backwards): Ditto.
10083         (in_acclist): Ditto.
10084
10085         * url.c (findurl): Ditto.
10086
10087         * netrc.c (parse_netrc): Ditto.
10088
10089         * log.c (log_dump): Ditto.
10090
10091         * html.c (html_quote_string): Ditto.
10092
10093         * ftp-basic.c (ftp_request): Made static.
10094
10095         * connect.c: Made global variables static.
10096
10097         * url.c (construct): Ditto.
10098
10099         * init.c (init_path): Avoid assignment inside `if'-condition.
10100
10101         * ftp.c: Don't include in.h or winsock.h.
10102
10103         * ftp.c (ftp_loop): Use SZ.
10104
10105         * connect.c (bindport): Cast &addrlen to int *.
10106         (conaddr): Ditto.
10107
10108         * init.c (initialize): Don't use SYSTEM_WGETRC unconditionally.
10109
10110 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
10111
10112         * ftp.c (getftp): Initialize opt.ftp_pass here.
10113         (ftp_retrieve_dirs): Use alloca().
10114
10115         * init.c (defaults): Don't initialize opt.ftp_pass.
10116
10117         * sysdep.h (S_ISLNK): Declare for OS/2; ditto for lstat.
10118         From Ivan F. Martinez <ivanfm@ecodigit.com.br>.
10119
10120 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
10121
10122         * recur.c (parse_robots): Check for comments more correctly.
10123
10124         * host.c (ftp_getaddress): Use STRDUP_ALLOCA.
10125         (ftp_getaddress): Add diagnostics when reverse-lookup yields only
10126         hostname.
10127
10128 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
10129
10130         * version.c: Wget 1.5-b2 is released.
10131
10132         * netrc.c (NETRC_FILE_NAME): Moved from netrc.h.
10133
10134         * utils.c (proclist): Pass FNM_PATHNAME to fnmatch().
10135
10136         * ftp-basic.c (ftp_pasv): Avoid unnecessary casting to unsigned
10137         char.
10138
10139         * log.c: Don't attempt to hide arguments from ansi2knr.
10140
10141         * cmpt.c: Synched strptime() and mktime() with glibc-2.0.6.
10142
10143         * ansi2knr.c: Use a later version, from fileutils-3.16l alpha.
10144
10145         * ftp.c (getftp): Ditto.
10146
10147         * http.c (gethttp): Use it.
10148
10149         * retr.c (get_contents): New argument EXPECTED; pass it to
10150         show_progress().
10151         (show_progress): New argument EXPECTED; use it to display
10152         percentages.
10153
10154         * init.c (setval): Ditto.
10155
10156         * http.c (gethttp): Ditto.
10157         (http_loop): Ditto.
10158
10159         * ftp.c (getftp): Ditto.
10160         (ftp_loop_internal): Ditto.
10161
10162         * ftp-ls.c (ftp_parse_unix_ls): Use abort() instead of assert(0).
10163
10164         * sysdep.h (CLOSE): Simplify; use DEBUGP.
10165
10166         * netrc.c (search_netrc): Use alloca().
10167
10168         * init.c (defaults): Initialize no_flush.
10169
10170         * log.c (vlogmsg): Don't flush if no_flush.
10171
10172         * options.h (struct options): New variable no_flush.
10173
10174         * main.c (main): Don't play games with buffering.
10175
10176         * log.c (vlogmsg): Flush the output after every message.
10177
10178 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
10179
10180         * init.c (parse_line): Ditto.
10181
10182         * url.c (get_urls_html): Ditto.
10183
10184         * main.c (main): Don't cast to unsigned char.
10185
10186         * init.c (run_wgetrc): Don't cast to unsigned char.
10187         (parse_line): Accept char instead of unsigned char.
10188
10189         * html.c (htmlfindurl): Use char instead of unsigned char.
10190
10191         * all: Use them.
10192
10193         * sysdep.h: Add wrappers to ctype macros to make them
10194         eight-bit-clean:
10195
10196 1998-01-30  Hrvoje Niksic  <hniksic@srce.hr>
10197
10198         * html.c (htmlfindurl): Download <img lowsrc=...>
10199
10200         * main.c (main): Ignore SIGPIPE.
10201
10202         * connect.c (select_fd): New argument WRITEP.
10203         (iwrite): Call select_fd().
10204
10205 1997-02-27  Fila Kolodny <fila@ibi.com>
10206
10207         * ftp.c (ftp_retrieve_list): If retrieving symlink and the proper
10208         one already exists, just skip it.
10209
10210 1998-01-30  Hrvoje Niksic  <hniksic@srce.hr>
10211
10212         * http.c (gethttp): Cosmetic changes.
10213
10214         * http.c (check_end): Allow `+D...' instead of `GMT'.
10215         From Fabrizio Pollastri <pollastri@cstv.to.cnr.it>.
10216
10217         * url.c (process_ftp_type): New function.
10218         (parseurl): Use it.
10219
10220         * connect.c (iwrite): Allow writing in a few chunks.
10221         (bindport): Made SRV static, so addr can point to it.
10222         (select_fd): Removed HPUX kludge.
10223
10224         * host.c (free_hlist): Incorporated into clean_hosts().
10225
10226 1998-01-29  Hrvoje Niksic  <hniksic@srce.hr>
10227
10228         * host.c (hlist): Made static.
10229         (search_address): Cosmetic change.
10230
10231 1998-01-29  Hrvoje Niksic  <hniksic@srce.hr>
10232
10233         * version.c: Wget v1.5-b1 is released.
10234
10235         * http.c (hgetlen): Use sizeof() to get the header length.
10236         (hgetrange): Ditto.
10237         (hgettype): Ditto.
10238         (hgetlocation): Ditto.
10239         (hgetmodified): Ditto.
10240         (haccepts_none): Ditto.
10241
10242         * main.c (main): Updated `--version' and `--help' output, as per
10243         Francois Pinard's suggestions.
10244
10245         * main.c: Include locale.h; call setlocale(), bindtextdomain() and
10246         textdomain().
10247
10248         * config.h.in: Define stubs for I18N3.
10249
10250         * wget.h: Include libintl.h.
10251
10252 1998-01-28  Hrvoje Niksic  <hniksic@srce.hr>
10253
10254         * url.c (mkstruct): Check for opt.cut_dirs.
10255         (mkstruct): alloca()-te more, xmalloc() less.
10256
10257         * utils.c (load_file): Check for ferror().
10258
10259         * url.c (get_urls_file): Close only the files we opened.
10260         (get_urls_html): Ditto.
10261         (count_slashes): New function.
10262
10263         * http.h: Removed.
10264
10265         * http.c (gethttp): Respect username and password provided by
10266         proxy URL.
10267         (base64_encode_line): Write into an existing buffer instead of
10268         malloc-ing a new one.
10269         (struct http_stat): Moved from http.h
10270
10271         * retr.c (retrieve_url): Free SUF.
10272
10273         * all: Removed lots of unnecessary .h dependencies.
10274
10275         * html.c (global_state): Made static.
10276
10277         * utils.h (ALLOCA_ARRAY): New macro.
10278
10279         * main.c (main): New option `--cut-dirs'.
10280
10281         * url.c (construct): Use alloca() for T.
10282
10283         * utils.c (mkdirhier): Use STRDUP_ALLOCA.
10284
10285         * host.c (_host_t): Moved from host.h.
10286         (struct host): Renamed from _host_t.
10287         (store_hostaddress): Use STRDUP_ALLOCA for INET_S.
10288         (realhost): Ditto.
10289
10290         * host.h: Don't include url.h.
10291
10292         * ftp.c (LIST_FILENAME): Moved from ftp.h.
10293
10294         * init.c (DEFAULT_FTP_ACCT): Moved from ftp.h.
10295
10296         * main.c (main): Enable log if the output goes to a TTY.
10297
10298         * connect.h: Removed unused constant `BACKLOG'.
10299
10300         * config.h.in: Check for isatty().
10301
10302         * Makefile.in (LINK): Use CFLAGS when linking.
10303
10304 1998-01-27  Hrvoje Niksic  <hniksic@srce.hr>
10305
10306         * mswindows.c (ws_hangup): Use redirect_output().
10307
10308         * main.c (redirect_output_signal): New function; use
10309         redirect_output().
10310
10311         * log.c (redirect_output): New function, based on hangup(), which
10312         is deleted.
10313
10314         * log.c (vlogmsg): New function.
10315
10316         * wget.h (DEBUGP): Use debug_logmsg().
10317
10318         * main.c (hangup): Use it.
10319
10320         * log.c (log_dump): New function.
10321
10322         * utils.h (DO_REALLOC): Use `long' for various sizes.
10323
10324         * http.c (hskip_lws): Use `while', for clarity.
10325         (HTTP_DYNAMIC_LINE_BUFFER): New constant.
10326         (fetch_next_header): Use it instead of DYNAMIC_LINE_BUFFER.
10327
10328         * ftp-basic.c (FTP_DYNAMIC_LINE_BUFFER): New constant.
10329         (ftp_response): Use it instead of DYNAMIC_LINE_BUFFER.
10330
10331         * utils.c (DYNAMIC_LINE_BUFFER): Moved from utils.c.
10332         (LEGIBLE_SEPARATOR): Ditto.
10333         (FILE_BUFFER_SIZE): Ditto.
10334
10335         * retr.c (BUFFER_SIZE): Moved from retr.h.
10336
10337         * log.c: New file.
10338         (logmsg): Moved from utils.c.
10339         (debug_logmsg): New function.
10340
10341         * mswindows.h: Include it here.
10342
10343         * init.c: Ditto.
10344
10345         * utils.c: Don't include <windows.h>.
10346
10347 1998-01-25  Hrvoje Niksic  <hniksic@srce.hr>
10348
10349         * host.c (ftp_getaddress): Ditto.
10350
10351         * main.c (main): Use it.
10352
10353         * utils.h (STRDUP_ALLOCA): New macro.
10354
10355         * init.c: Prepend `wget: ' to error messages printed on stderr.
10356
10357         * utils.c (mkdirhier): Renamed from mymkdir.
10358         (touch): Renamed from my_touch.
10359         (pwd_cuserid): Renamed from my_cuserid().
10360
10361 1998-01-24  Andy Eskilsson  <andy.eskilsson@telelogic.se>
10362
10363         * utils.c (accdir): Process wildcards.
10364         (proclist): New function.
10365         (accdir): Use it to avoid code repetition.
10366
10367 1998-01-24  Hrvoje Niksic  <hniksic@srce.hr>
10368
10369         * recur.c (parse_robots): Respect opt.useragent; use alloca().
10370
10371         * http.c (gethttp): Construct useragent accordingly.
10372
10373         * version.c: Changed version string to numbers-only.
10374
10375         * main.c (print_help): List all the options.
10376
10377         * mswindows.c (windows_main_junk): Initialize argv0 here.
10378
10379 1998-01-24  Karl Heuer  <kwzh@gnu.org>
10380
10381         * netrc.c (search_netrc): Initialize `l' only after processing
10382         netrc.
10383
10384         * main.c (main): Don't trap SIGHUP if it's being ignored.
10385
10386 1998-01-24  Hrvoje Niksic  <hniksic@srce.hr>
10387
10388         * all: Use logmsg().
10389
10390         * utils.c (time_str): Moved from retr.c.
10391         (logmsg): New function.
10392         (logmsg_noflush): Ditto.
10393
10394         * rbuf.c: New file, moved buf_* functions here.
10395
10396         * ftp.c (ftp_expected_bytes): Moved from ftp-basic.c.
10397
10398         * ftp-basic.c (ftp_rest): Use prnum().
10399
10400         * ftp-basic.c: Ditto.
10401
10402         * ftp.c: Use the new reading functions and macros.
10403
10404         * retr.c (buf_initialize): New function.
10405         (buf_initialized_p): Ditto.
10406         (buf_uninitialize): Ditto.
10407         (buf_fd): Ditto.
10408
10409         * http.c (fetch_next_header): Use the BUF_READCHAR macro for
10410         efficiency.
10411         (gethttp): Use alloca() where appropriate.
10412
10413         * retr.c (buf_readchar): Use it.
10414         (buf_peek): Use rstreams.
10415
10416         * retr.h (BUF_READCHAR): New macro.
10417
10418         * init.c (home_dir): Rewritten for clarity.
10419         (init_path): Ditto.
10420
10421         * mswindows.c (ws_backgnd): Made static.
10422         (read_registry): Ditto.
10423         (ws_cleanup): Ditto.
10424         (ws_handler): Ditto.
10425
10426 1998-01-23  Hrvoje Niksic  <hniksic@srce.hr>
10427
10428         * alloca.c: New file.
10429
10430         * Makefile.in (ALLOCA): Define.
10431
10432         * mswindows.c (ws_help): Constify.
10433         (ws_help): Use alloca.
10434
10435         * mswindows.c: Reformat.
10436
10437         * all: Added _(...) annotations for I18N snarfing and translation.
10438
10439         * host.c (ftp_getaddress): Nuke SYSINFO.
10440         (ftp_getaddress): Don't use getdomainname().
10441         (ftp_getaddress): Use uname(), where available.
10442
10443         * http.c (gethttp): Protect a stray fprintf().
10444
10445         * init.c (settime): New function.
10446         (setval): Treat WAIT specially, allowing suffixes like `m' for
10447         minutes, etc.
10448
10449 1998-01-21  Hrvoje Niksic  <hniksic@srce.hr>
10450
10451         * url.c (get_urls_html): Use alloca() for TEMP.
10452
10453 1998-01-21  Jordan Mendelson  <jordy@wserv.com>
10454
10455         * url.c (rotate_backups): New function.
10456
10457         * http.c (gethttp): Ditto.
10458
10459         * ftp.c (getftp): Rotate backups.
10460
10461 1997-12-18  Hrvoje Niksic  <hniksic@srce.hr>
10462
10463         * all: Renamed nmalloc(), nrealloc() and nstrdup() to xmalloc(),
10464         xrealloc() and xstrdup().  Use the new functions.
10465
10466         * url.c (decode_string): Made static.
10467         (has_proto): Ditto.
10468         (parse_dir): Ditto.
10469         (parse_uname): Ditto.
10470         (mkstruct): Ditto.
10471         (construct): Ditto.
10472         (construct_relative): Ditto.
10473
10474         * retr.c (show_progress): Made static.
10475
10476         * recur.c (robots_url): Made static.
10477         (retrieve_robots): Ditto.
10478         (parse_robots): Ditto.
10479         (robots_match): Ditto.
10480
10481         * main.h: Removed.
10482
10483         * main.c (printhelp): Made static.
10484         (hangup): Ditto.
10485
10486         * init.c (comind): Made static.
10487         (defaults): Ditto.
10488         (init_path): Ditto.
10489         (run_wgetrc): Ditto.
10490         (onoff): Ditto.
10491         (setonoff): Ditto.
10492         (setnum): Ditto.
10493         (myatoi): Ditto.
10494         (getperms): Ditto.
10495         (setbytes): Ditto.
10496
10497         * http.c (fetch_next_header): Made static.
10498         (hparsestatline): Ditto.
10499         (hskip_lws): Ditto.
10500         (hgetlen): Ditto.
10501         (hgetrange): Ditto.
10502         (hgettype): Ditto.
10503         (hgetlocation): Ditto.
10504         (hgetmodified): Ditto.
10505         (haccepts_none): Ditto.
10506         (gethttp): Ditto.
10507         (base64_encode_line): Ditto.
10508         (mktime_from_utc): Ditto.
10509         (http_atotm): Ditto.
10510
10511         * html.c (idmatch): Made static.
10512
10513         * host.c (search_host): Made static.
10514         (search_address): Ditto.
10515         (free_hlist): Ditto.
10516
10517         * ftp.c (getftp): Made static.
10518         (ftp_loop_internal): Ditto.
10519         (ftp_get_listing): Ditto.
10520         (ftp_retrieve_list): Ditto.
10521         (ftp_retrieve_dirs): Ditto.
10522         (ftp_retrieve_glob): Ditto.
10523         (freefileinfo): Ditto.
10524         (delelement): Ditto.
10525
10526         * ftp-ls.c (symperms): Made static.
10527         (ftp_parse_unix_ls): Ditto.
10528
10529         * connect.c (select_fd): Made static.
10530
10531         * utils.c (xmalloc): Renamed from nmalloc.
10532         (xrealloc): Renamed from nrealloc.
10533         (xstrdup): Renamed from nstrdup.
10534
10535         * getopt.c (exchange): Use alloca.
10536
10537         * mswindows.c (mycuserid): Use strncpy.
10538
10539         * New files mswindows.c, mswindows.h, sysdep.h.  winjunk.c,
10540         systhings.h, windecl.h and winjunk.h removed.
10541
10542         * mswindows.c (sleep): New function.
10543
10544         * utils.c: Include <windows.h> under Windows.
10545
10546 1997-06-12  Darko Budor  <dbudor@zesoi.fer.hr>
10547
10548         * url.h (URL_UNSAFE): Change default under Windows.
10549
10550         * retr.c (retrieve_from_file): Respect opt.delete_after.
10551
10552         * main.c (main): Call ws_help on Windows.
10553
10554         * winjunk.c (windows_main_junk): New function.
10555
10556         * main.c (main): Junk-process argv[0].
10557
10558         * http.c (mktime_from_utc): Return -1 if mktime failed.
10559
10560         * http.c (http_loop): Ditto.
10561
10562         * ftp.c (ftp_loop_internal): Change title on Windows when using a
10563         new URL.
10564
10565         * winjunk.c (getdomainname): Lots of functions.
10566
10567 1997-06-12  Hrvoje Niksic  <hniksic@srce.hr>
10568
10569         * cmpt.c (strptime_internal): Handle years more correctly for
10570         `%y'.
10571
10572 1997-06-09  Mike Thomas <mthomas@reality.ctron.com>
10573
10574         * http.c (gethttp): Allocate enough space for
10575         `Proxy-Authorization' header.
10576
10577 1997-05-10  Hrvoje Niksic  <hniksic@srce.hr>
10578
10579         * version.c: Wget/1.4.5 is released.
10580
10581 1997-05-10  Hrvoje Niksic  <hniksic@srce.hr>
10582
10583         * retr.c (get_contents): Check return value of fwrite more
10584         carefully.
10585
10586 1997-03-30  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
10587
10588         * cmpt.c (strptime_internal) [case 'Y']: Always subtract 1900 from
10589         year, regardless of century.
10590
10591 1997-03-30  Hrvoje Niksic  <hniksic@srce.hr>
10592
10593         * utils.c (isfile): Use `lstat' instead of `stat'.
10594
10595 1997-03-29  Hrvoje Niksic  <hniksic@srce.hr>
10596
10597         * utils.c (numdigit): Use explicit test.
10598
10599 1997-03-21  Hrvoje Niksic  <hniksic@srce.hr>
10600
10601         * http.c (http_loop): Always use `url_filename' to get u->local.
10602
10603 1997-03-20  Hrvoje Niksic  <hniksic@srce.hr>
10604
10605         * url.c: Recognize https.
10606
10607 1997-03-13  Hrvoje Niksic  <hniksic@srce.hr>
10608
10609         * recur.c (recursive_retrieve): Lowercase just the host name.
10610
10611 1997-03-09  Hrvoje Niksic  <hniksic@srce.hr>
10612
10613         * url.c (get_urls_file): Use the correct test.
10614         (get_urls_html): Ditto.
10615
10616 1997-03-07  Hrvoje Niksic  <hniksic@srce.hr>
10617
10618         * connect.c: Reverted addrlen to int.
10619
10620         * init.c (parse_line): Check for -1 instead of NONE.
10621
10622         * version.c: Changed version to 1.4.5.
10623
10624 1997-02-17  Hrvoje Niksic  <hniksic@srce.hr>
10625
10626         * init.c: New option netrc.
10627         (initialize): Don't parse .netrc.
10628
10629         * cmpt.c (recursive): Return rp.
10630         (strptime_internal): Match the long strings first, the abbreviated
10631         second.
10632
10633 1997-02-16  Hrvoje Niksic  <hniksic@srce.hr>
10634
10635         * http.c (check_end): New function.
10636         (http_atotm): Use it.
10637
10638 1997-02-13  gilles Cedoc  <gilles@cedocar.fr>
10639
10640         * http.c (gethttp): Use them.
10641
10642         * init.c: New options proxy_user and proxy_passwd.
10643
10644 1997-02-14  Hrvoje Niksic  <hniksic@srce.hr>
10645
10646         * ftp.c (ftp_retrieve_list): Create links even if not relative.
10647
10648 1997-02-10  Hrvoje Niksic  <hniksic@srce.hr>
10649
10650         * recur.c (recursive_retrieve): Lowercase the host name, if the
10651         URL is not "optimized".
10652
10653         * host.c (realhost): Return l->hostname, even if it matches with
10654         host.
10655
10656 1997-02-10  Marin Purgar  <pmc@asgard.hr>
10657
10658         * connect.c: Make addrlen size_t instead of int.
10659         (conaddr): Ditto.
10660
10661 1997-02-09  Gregor Hoffleit  <flight@mathi.uni-heidelberg.DE>
10662
10663         * systhings.h: Define S_ISLNK on NeXT too.
10664
10665 1997-02-09  Hrvoje Niksic  <hniksic@srce.hr>
10666
10667         * version.c: Released 1.4.3.
10668
10669         * url.c: Futher update to list of protostrings.
10670         (skip_proto): Skip `//' correctly for FTP and HTTP.
10671
10672         * url.c (get_urls_html): Handle bogus `http:' things a little
10673         different.
10674
10675         * main.c (main): Removed `follow-ftp' from `f'.
10676         (main): Dumped the `prefix-files' and `file-prefix' options and
10677         features; old and bogus.
10678         (main): Exit on failed setval() in `-e'.
10679
10680         * http.c (fetch_next_header): Use it to detect header continuation
10681         correctly.
10682
10683         * retr.c (buf_peek): New function.
10684
10685 1997-02-08  Hrvoje Niksic  <hniksic@srce.hr>
10686
10687         * wget.h: Include time.h and stuff.
10688
10689 1997-02-08  Roger Beeman  <beeman@cisco.com>
10690
10691         * ftp.c: Include <time.h>
10692
10693 1997-02-07  Hrvoje Niksic  <hniksic@srce.hr>
10694
10695         * url.c (findurl): Would read over buffer limits.
10696
10697 1997-02-06  Hrvoje Niksic  <hniksic@srce.hr>
10698
10699         * ftp-ls.c (ftp_parse_unix_ls): Allow spaces in file names.
10700
10701 1997-02-05  Hrvoje Niksic  <hniksic@srce.hr>
10702
10703         * http.c (http_atotm): Initialize tm.is_dst.
10704
10705 1997-02-02  Hrvoje Niksic  <hniksic@srce.hr>
10706
10707         * http.c (gethttp): Don't print the number of retrieved headers.
10708
10709         * main.c (main): New option `--no-clobber', alias for `-nc'.
10710
10711         * url.c: Recognize `https://'.
10712
10713 1997-02-01  Hrvoje Niksic  <hniksic@srce.hr>
10714
10715         * host.c (herrmsg): Don't use h_errno.
10716
10717 1997-01-30  Hrvoje Niksic  <hniksic@srce.hr>
10718
10719         * host.c (accept_domain): Use it.
10720
10721         * main.c (main): New option `--exclude-domains'.
10722
10723         * retr.c (retrieve_url): Use it.
10724         (retrieve_url): Bail out when an URL is redirecting to itself.
10725
10726         * url.c (url_equal): New function.
10727
10728 1997-01-29  Hrvoje Niksic  <hniksic@srce.hr>
10729
10730         * connect.c: Include arpa/inet.h instead of arpa/nameser.h.
10731
10732         * http.c (mk_utc_time): New function.
10733         (http_atotm): Use it; handle time zones correctly.
10734
10735 1997-01-28  Hrvoje Niksic  <hniksic@srce.hr>
10736
10737         * http.c: Ditto.
10738
10739         * ftp-basic.c: Use it instead of WRITE.
10740
10741         * connect.c (iwrite): New function.
10742
10743 1997-01-27  Hrvoje Niksic  <hniksic@srce.hr>
10744
10745         * cmpt.c (mktime): New function.
10746
10747         * netrc.c: Include <sys/types.h>.
10748
10749         * main.c (main): Wouldn't recognize --spider.
10750
10751         * retr.c (rate): Use `B', `KB' and `MB'.
10752         (reset_timer,elapsed_time): Moved from utils.c.
10753
10754         * ftp.c (ftp_retrieve_list): Ditto.
10755
10756         * http.c (http_loop): Don't touch the file if opt.dfp.
10757
10758 1997-01-24  Hrvoje Niksic  <hniksic@srce.hr>
10759
10760         * cmpt.c: New file.
10761
10762         * ftp.c (ftp_retrieve_glob): New argument semantics.
10763         (ftp_retrieve_dirs): Use it.
10764         (ftp_loop): Ditto.
10765
10766         * html.c (htmlfindurl): Recognize `'' as the quote char.
10767
10768 1997-01-23  Hrvoje Niksic  <hniksic@srce.hr>
10769
10770         * ftp.c (ftp_loop_internal): Use it.
10771
10772         * utils.c (remove_link): New function.
10773
10774 1997-01-22  Hrvoje Niksic  <hniksic@srce.hr>
10775
10776         * retr.c (retrieve_url): Require STRICT redirection URL.
10777
10778         * url.c (parseurl): New argument STRICT.
10779
10780         * http.c (hparsestatline): Be a little-bit less strict about
10781         status line format.
10782
10783 1997-01-21  Hrvoje Niksic  <hniksic@srce.hr>
10784
10785         * http.c (gethttp): Use it.
10786
10787         * main.c (main): Don't use '<digit>' as options.
10788
10789         * init.c: New option ignore_length.
10790
10791         * http.c (gethttp): Ditto.
10792         (http_loop): Check for redirection without Location:.
10793         (gethttp): Don't print Length unless RETROKF.
10794
10795         * ftp.c (getftp): Use it.
10796
10797         * url.c (mkalldirs): New function.
10798
10799         * utils.c (mymkdir): Don't check for existing non-directory.
10800
10801         * url.c (mkstruct): Don't create the directory.
10802
10803 1997-01-20  Hrvoje Niksic  <hniksic@srce.hr>
10804
10805         * init.c (setval): Removed NO_RECURSION checks.
10806
10807 1997-01-19  Hrvoje Niksic  <hniksic@srce.hr>
10808
10809         * version.c: "Released" 1.4.3-pre2.
10810
10811         * recur.c (recursive_retrieve): Bypass host checking only if URL
10812         is ftp AND parent URL is not ftp.
10813
10814         * ftp-basic.c (ftp_request): Print out Turtle Power.
10815
10816         * ftp.c (ftp_loop): Call ftp_retrieve_glob with 0 if there's no
10817         wildcard.
10818         (ftp_retrieve_glob): Call ftp_loop_internal even on empty list, if
10819         not glob.
10820
10821         * http.c (gethttp): Be a little bit smarter about status codes.
10822
10823         * recur.c (recursive_retrieve): Always reset opt.recursive when
10824         dealing with FTP.
10825
10826 1997-01-18  Hrvoje Niksic  <hniksic@srce.hr>
10827
10828         * retr.c (retrieve_url): New variable location_changed; use it for
10829         tests instead of mynewloc.
10830         (retrieve_url): Allow heuristic adding of html.
10831
10832         * url.c (url_filename): Don't use the `%' in Windows file names.
10833
10834         * http.c (http_loop): Always time-stamp the local file.
10835
10836         * http.c (http_loop): Ditto.
10837
10838         * ftp.c (ftp_retrieve_list): Use it.
10839
10840         * utils.c (my_touch): New function.
10841
10842         * ftp.c (ftp_retrieve_list): Use #ifdef HAVE_STRUCT_UTIMBUF
10843         instead of #ifndef NeXT.
10844
10845         * utils.c (strptime): New version, by Ulrich Drepper.
10846
10847 1997-01-17  Hrvoje Niksic  <hniksic@srce.hr>
10848
10849         * http.c (haccepts_none): Renamed from `haccepts_bytes'.
10850         (gethttp): If haccepts_none(), disable ACCEPTRANGES.
10851         (http_loop): Would remove ACCEPTRANGES.
10852
10853         * ftp.c (getftp): Call ftp_list with NULL.
10854
10855 1997-01-15  Hrvoje Niksic  <hniksic@srce.hr>
10856
10857         * html.c (ftp_index): Don't print minutes and seconds if we don't
10858         know them; beautify the output.
10859
10860         * ftp.c (getftp): Don't close the socket on FTPNSFOD.
10861
10862 1997-01-14  Hrvoje Niksic  <hniksic@srce.hr>
10863
10864         * utils.c (strptime): New function.
10865         (strptime): Don't use get_alt_number.
10866         (strptime): Don't use locale.
10867         (match_string): Made it a function.
10868
10869 1997-01-12  Hrvoje Niksic  <hniksic@srce.hr>
10870
10871         * http.c (http_atotm): New function.
10872         (http_loop): Use it.
10873
10874         * atotm.c: Removed from the distribution.
10875
10876         * http.c (base64_encode_line): Rewrite.
10877
10878 1997-01-09  Hrvoje Niksic  <hniksic@srce.hr>
10879
10880         * ftp.c (getftp): Use ftp_expected_bytes; print size.
10881
10882         * ftp-basic.c (ftp_response): Use ftp_last_respline.
10883         (ftp_expected_bytes): New function.
10884
10885         * ftp.c (getftp): Print the unauthoritative file length.
10886
10887         * ftp-ls.c: Renamed from ftp-unix.c.
10888         (ftp_parse_ls): Moved from ftp.c.
10889         (ftp_parse_unix_ls): Recognize seconds in time spec.
10890         (ftp_parse_unix_ls): Recognize year-less dates of the previous
10891         year.
10892
10893 1997-01-08  Hrvoje Niksic  <hniksic@srce.hr>
10894
10895         * ftp-basic.c: Don't declare errno if #defined.
10896
10897         * host.c (ftp_getaddress): Check for sysinfo legally.
10898
10899 1997-01-08  Darko Budor  <dbudor@diana.zems.fer.hr>
10900
10901         * connect.c (iread): Use READ.
10902
10903 1996-12-23  Hrvoje Niksic  <hniksic@srce.hr>
10904
10905         * url.c: Recognize finger, rlogin, tn3270, mid and cid as valid
10906         schemes.
10907
10908 1996-12-22  Hrvoje Niksic  <hniksic@srce.hr>
10909
10910         * host.c (ftp_getaddress): Allow `.' in hostname.
10911
10912 1996-12-26  Darko Budor <dbudor@zems.fer.hr>
10913
10914         * wget.h: READ and WRITE macros for use instead of read and write
10915         on sockets, grep READ *.c, grep WRITE *.c
10916
10917         * wsstartup.c: new file - startup for winsock
10918
10919         * wsstartup.h: new file
10920
10921         * win32decl.h: new file - fixup for <errno.h> and winsock trouble
10922
10923         * configure.bat: Configure utility for MSVC
10924
10925         * src/Makefile.ms,config.h.ms: new files for use with MSVC 4.x
10926
10927 1996-12-22  Hrvoje Niksic  <hniksic@srce.hr>
10928
10929         * version.c: Released 1.4.3-pre.
10930
10931         * utils.c (prnum): Accept long.
10932         (legible): Use prnum().
10933
10934         * connect.c (make_connection): Accept port as short.
10935         (bindport): Ditto.
10936
10937         * http.c (gethttp): Use search_netrc.
10938
10939 1996-12-21  Hrvoje Niksic  <hniksic@srce.hr>
10940
10941         * ftp.c (getftp): Use search_netrc.
10942
10943         * netrc.c (free_netrc): New function.
10944
10945         * init.c (home_dir): New function.
10946
10947         * url.c (convert_links): Allow REL2ABS changes.
10948
10949 1996-12-21  Gordon Matzigkeit  <gord@gnu.ai.mit.edu>
10950
10951         * netrc.c: New file.
10952         (parse_netrc, maybe_add_to_list): New functions.
10953
10954 1996-12-17  Hrvoje Niksic  <hniksic@srce.hr>
10955
10956         * retr.c (retrieve_url): Reset opt.recursion before calling
10957         ftp_loop if it is reached through newloc.
10958
10959         * init.c (run_wgetrc): Print the wgetrc path too, when reporting
10960         error; don't use "Syntax error", since we don't know if it is
10961         really a syntax error.
10962
10963 1996-12-16  Hrvoje Niksic  <hniksic@srce.hr>
10964
10965         * utils.c (acceptable): Extract the filename part of the path.
10966
10967         * recur.c (recursive_retrieve): Call acceptable() with the right
10968         argument; would bug out on wildcards.
10969
10970         * init.c (parse_line): Likewise.
10971
10972         * html.c (htmlfindurl): Cast to char * when calling stuff.
10973
10974 1996-12-15  Hrvoje Niksic  <hniksic@srce.hr>
10975
10976         * ftp.c (getftp): Use ftp_pasv.
10977
10978         * ftp-basic.c (ftp_request): Accept NULL value.
10979         (ftp_pasv): New function.
10980
10981         * options.h (struct options): Add passive FTP option.
10982
10983 1996-12-15  Hrvoje Niksic  <hniksic@srce.hr>
10984
10985         * url.c (parseurl): Debug output.
10986
10987         * utils.c (path_simplify): New one, adapted from bash's
10988         canonicalize_pathname().
10989
10990 1996-12-14  Hrvoje Niksic  <hniksic@srce.hr>
10991
10992         * ftp.c (getftp): Don't discard the buffer.
10993
10994         * retr.c (get_contents): New parameter nobuf.
10995
10996 1996-12-13  Shawn McHorse  <riffraff@txdirect.net>
10997
10998         * html.c (htmlfindurl): Recognize <meta contents="d; URL=...".
10999
11000         * init.c (setval): Strip the trailing slashes on CVECDIR.
11001
11002 1996-12-13  Hrvoje Niksic  <hniksic@srce.hr>
11003
11004         * init.c: Make excludes and includes under CVECDIR instead of
11005         CVEC.
11006
11007 1996-12-13  Shawn McHorse  <riffraff@txdirect.net>
11008
11009         * url.c (get_urls_html): Skip "http:".
11010
11011 1996-12-13  Hrvoje Niksic  <hniksic@srce.hr>
11012
11013         * utils.c (strcasecmp): From glibc.
11014         (strncasecmp): Also.
11015         (strstr): Also.
11016
11017         * url.c: Added javascript: to the list of URLs prefixes.
11018
11019 1996-12-12  Shawn McHorse  <riffraff@txdirect.net>
11020
11021         * recur.c (retrieve_robots): Print the warning message only if
11022         verbose.
11023
11024 1996-12-12  Gregor Hoffleit  <flight@mathi.uni-heidelberg.DE>
11025
11026         * ftp.c (ftp_retrieve_list): Use NeXT old utime interface.
11027
11028 1996-12-12  Hrvoje Niksic  <hniksic@srce.hr>
11029
11030         * systhings.h: New file.
11031
11032         * ../configure.in: Check for utime.h
11033
11034         * ftp.c: Check whether we have unistd.h.
11035
11036 1996-11-27  Hrvoje Niksic  <hniksic@srce.hr>
11037
11038         * recur.c (recursive_retrieve): Send the canonical URL as referer.
11039         (recursive_retrieve): Call get_urls_html with the canonical URL.
11040
11041 1996-12-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11042
11043         * (configure.in, config.h.in, src/Makefile.in, src/*.[ch]): Add
11044         ansi2knr support for compilers which don't support ANSI style
11045         function prototypes and signatures.
11046
11047         * (aclocal.m4, src/ansi2knr.c, src/ansi2knr.1): New files.
11048
11049 1996-11-26  Hrvoje Niksic  <hniksic@srce.hr>
11050
11051         * url.c: Use it; Recognize paths ending with "." and ".." as
11052         directories.
11053         (url_filename): Append .n whenever file exists and could be a
11054         directory.
11055
11056         * url.h (ISDDOT): New macro.
11057
11058         * init.c (parse_line): Use unsigned char.
11059
11060         * url.c (get_urls_html): Cast to unsigned char * when calling
11061         htmlfindurl.
11062
11063         * html.c (htmlfindurl): Use unsigned char.
11064
11065         * version.c: Changed version to 1.4.3.
11066
11067 1996-11-25  Hrvoje Niksic  <hniksic@srce.hr>
11068
11069         * version.c: Released 1.4.2.
11070
11071         * ftp.c (getftp): Simplified assertion.
11072         (ftp_loop_internal): Remove symlink before downloading.
11073         (ftp_retrieve_list): Unlink the symlink name before attempting to
11074         create a symlink!
11075
11076         * options.h (struct options): Renamed print_server_response to
11077         server_response.
11078
11079         * ftp.c (rel_constr): Removed.
11080         (ftp_retrieve_list): Don't use it.
11081         (ftp_retrieve_list): Use opt.retr_symlinks.
11082
11083 1996-11-24  Hrvoje Niksic  <hniksic@srce.hr>
11084
11085         * main.c (main): New option retr_symlinks.
11086
11087         * url.c (convert_links): Print verbose message.
11088
11089 1996-11-24  Hrvoje Niksic  <hniksic@srce.hr>
11090
11091         * http.c (http_loop): Reset newloc in the beginning of function;
11092         would cause FMR in retrieve_url.
11093
11094 1996-11-23  Hrvoje Niksic  <hniksic@srce.hr>
11095
11096         * recur.c (convert_all_links): Find the URL of each HTML document,
11097         and feed it to get_urls_html; would bug out.
11098         (convert_all_links): Check for l2 instead of dl; removed dl.
11099
11100         * url.c (convert_links): Don't refer to freed newname.
11101
11102         * recur.c (recursive_retrieve): Add this_url to urls_downloaded.
11103
11104         * main.c (main): Print the OS_TYPE in the debug output, too.
11105
11106         * recur.c (recursive_retrieve): Check for opt.delete_after.
11107
11108         * main.c (main): New option delete-after.
11109
11110         * init.c (setval): Cleaned up.
11111
11112 1996-11-21  Hrvoje Niksic  <hniksic@srce.hr>
11113
11114         * Makefile.in (wget): Make `wget' the default target.
11115
11116         * ftp.c (ftp_loop_internal): Move noclobber checking out of the
11117         loop.
11118         (ftp_retrieve_list): Warn about non-matching sizes.
11119
11120         * http.c (http_loop): Made -nc non-dependent on opt.recursive.
11121
11122         * init.c (setnum): Renamed from setnuminf; New argument flags.
11123         (setval): Use it.
11124
11125         * main.c (main): Sorted the options.
11126         (main): New option --wait.
11127
11128 1996-11-21  Shawn McHorse  <riffraff@txdirect.net>
11129
11130         * html.c (htmlfindurl): Reset s->in_quote after getting out of
11131         quotes.
11132
11133 1996-11-20  Hrvoje Niksic  <hniksic@srce.hr>
11134
11135         * version.c: Changed version to 1.4.2.
11136
11137 1996-11-20  Hrvoje Niksic  <hniksic@srce.hr>
11138
11139         * version.c: Released 1.4.1.
11140
11141         * html.c (html_quote_string): New function.
11142         (ftp_index): Use it.
11143         (htmlfindurl): A more gentle ending debug message.
11144
11145         * ftp.c (ftp_loop): Check for opt.htmlify.
11146
11147         * init.c: New command htmlify.
11148
11149         * ftp.c (getftp): Nicer error messages, with `'-encapsulated
11150         strings.
11151         (ftp_loop): Print size of index.html.
11152
11153         * init.c (setval): Implement "styles".
11154
11155         * main.c (main): New option dotstyle.
11156
11157 1996-11-19  Hrvoje Niksic  <hniksic@srce.hr>
11158
11159         * ftp.c (getftp): Close the master socket in case of errors, after
11160         bindport().
11161
11162         * connect.c (bindport): Initialize msock to -1.
11163
11164         * ftp.c (getftp): Initialize dtsock to -1.
11165
11166         * connect.c (closeport): Don't close sock if sock == -1.
11167
11168 1996-11-18  Hrvoje Niksic  <hniksic@srce.hr>
11169
11170         * init.c (setnuminf): Nuked default value -- just leave unchanged.
11171         (setval): Don't send default values.
11172         (defaults): Use DEFAULT_TIMEOUT -- aaargh.
11173
11174         * options.h (struct options): Use long for dot_bytes.
11175
11176         * init.c (setquota): Renamed to setbytes.
11177         (setval): Use setbytes on DOTBYTES.
11178
11179 1996-11-17  Hrvoje Niksic  <hniksic@srce.hr>
11180
11181         * ftp.c (getftp): Initialize con->dltime.
11182
11183         * recur.c (recursive_retrieve): Use same_host instead of
11184         try_robots; simply load robots_txt whenever the host is changed.
11185         (recursive_retrieve): Free forbidden before calling parse_robots.
11186
11187 1996-11-16  Hrvoje Niksic  <hniksic@srce.hr>
11188
11189         * retr.c (show_progress): Use them.
11190
11191         * options.h (struct options): New options dot_bytes, dots_on_line
11192         and dot_spacing.
11193
11194 1996-11-16  Mark Boyns  <boyns@sdsu.edu>
11195
11196         * recur.c (recursive_retrieve): Retrieve directories regardless of
11197         acc/rej rules; check for empty u->file.
11198
11199 1996-11-14  Hrvoje Niksic  <hniksic@srce.hr>
11200
11201         * init.c (setval): Use it.
11202
11203         * utils.c (merge_vecs): New function.
11204
11205         * init.c (setval): Reset the list-type functions when encountering
11206         "".
11207
11208 1996-11-14  Shawn McHorse  <riffraff@txdirect.net>
11209
11210         * recur.c (recursive_retrieve): Use base_url instead of this_url
11211         for no_parent.
11212
11213 1996-11-14  Shawn McHorse  <riffraff@txdirect.net>
11214
11215         * html.c (htmlfindurl): Reset s->in_quote after exiting the quote.
11216
11217 1996-11-13  Hrvoje Niksic  <hniksic@srce.hr>
11218
11219         * utils.c (sepstring): Rewrote; don't use strtok.
11220
11221         * recur.c (recursive_retrieve): Enter assorted this_url to slist
11222         when running the first time.
11223         (retrieve_robots): Warn to ignore errors when robots are loaded.
11224
11225         * utils.c (load_file): Moved from url.c.
11226
11227         * http.c: Made static variables const too in h* functions.
11228
11229         * main.c (main): Renamed --continue-ftp to --continue.
11230
11231         * recur.c (recursive_retrieve): Use it.
11232
11233         * utils.c (frontcmp): New function.
11234
11235         * url.c (accdir): New function.
11236
11237         * html.c (htmlfindurl): Recognize <area href=...>.
11238
11239         * ftp.c (ftp_retrieve_dirs): Implemented opt.includes.
11240
11241         * init.c (setval): Free the existing opt.excludes and
11242         opt.includes, if available.
11243
11244         * main.c (main): New option -I.
11245
11246 1996-11-12  Hrvoje Niksic  <hniksic@srce.hr>
11247
11248         * ftp.c (ftp_retrieve_glob): Do not weed out directories.
11249
11250         * version.c: Changed version to 1.4.1.
11251
11252 1996-11-11  Hrvoje Niksic  <hniksic@srce.hr>
11253
11254         * version.c: Released 1.4.0.
11255
11256 1996-11-10  Hrvoje Niksic  <hniksic@srce.hr>
11257
11258         * main.c (main): Free com and val after parse_line.
11259         (printhelp): Reorder the listing.
11260
11261         * http.c: More robust header parsing.
11262
11263         * http.c: Allow any number of spaces, or no spaces, precede ':'.
11264         (hskip_lws): New function.
11265         (haccepts_bytes): New function.
11266         (gethttp): Use it.
11267
11268         * init.c (setval): Check header sanity.
11269         (setval): Allow resetting of headers.
11270
11271 1996-11-10  Hrvoje Niksic  <hniksic@srce.hr>
11272
11273         * http.c (http_loop): Don't use has_wildcards.
11274
11275         * http.c (gethttp): Free all_headers -- would leak.
11276
11277         * recur.c (recursive_retrieve): Initialize depth to 1 instead of
11278         0 -- this fixes a long-standing bug in -rl.
11279
11280 1996-11-09  Hrvoje Niksic  <hniksic@srce.hr>
11281
11282         * ftp.c: Use -1 as "impossible" value for con->fd.
11283
11284         * url.h (URL_SEPARATOR): Don't treat `*' and `+' as separators.
11285
11286         * init.c (parse_line): Use isalpha.
11287
11288         * ftp-unix.c: Use HAVE_UNISTD_H.
11289
11290         * mtch.c (has_wildcards): Don't match \.
11291
11292         * http.c (http_loop): Warn on HTTP wildcard usage.
11293
11294 1996-11-08  Hrvoje Niksic  <hniksic@srce.hr>
11295
11296         * url.c (url_filename): Do not create numbered suffixes if
11297         opt.noclobber -- would bug out on -nc.
11298
11299 1996-11-07  Hrvoje Niksic  <hniksic@srce.hr>
11300
11301         * recur.c (parse_robots): Don't chuck out the commands without
11302         arguments (`Disallow:<empty>' didn't work).
11303         (parse_robots): Compare versions lowercase.
11304         (parse_robots): Match on base_version, not version_string!
11305         (parse_robots): Handle comments properly.
11306         (parse_robots): Match versions in a sane way.
11307
11308         * init.c: Print nicer error messages.
11309
11310         * version.c: Changed version to 1.4.0.
11311
11312 1996-11-06  Hrvoje Niksic  <hniksic@srce.hr>
11313
11314         * version.c: Released 1.4.0-test2.
11315
11316         * init.c (run_wgetrc): Close fp.
11317
11318         * ftp.c (ftp_retrieve_dirs): Allocate the correct length for
11319         u->dir.
11320
11321 1996-11-06  Hrvoje Niksic  <hniksic@srce.hr>
11322
11323         * init.c (setquota): Allow inf as quota specification.
11324
11325 1996-11-05  Hrvoje Niksic  <hniksic@srce.hr>
11326
11327         * ftp.c (ftp_retrieve_dirs): Return QUOTEXC if quota exceeded.
11328         (ftp_retrieve_glob): Return QUOTEXC on quota exceeded.
11329
11330         * main.c (main): Check for quota by comparison with downloaded
11331         stuff, not from status.
11332
11333         * connect.c (select_fd): Should compile on HPUX without warnings now.
11334
11335         * ftp.c (ftp_get_listing): Check whether ftp_loop_internal
11336         returned RETROK.
11337
11338 1996-11-04  Hrvoje Niksic  <hniksic@srce.hr>
11339
11340         * ftp.c (ftp_retrieve_glob): Print the pattern nicely.
11341         (getftp): Return FTPRETRINT on control connection error.
11342
11343         * html.c (htmlfindurl): Recognize <embed src=...> and
11344         <bgsound src=...>.
11345         (ftp_index): Handle username and password correctly.
11346
11347         * main.c (main): Made `-np' a synonim for --no-parent.
11348
11349 1996-11-02  Hrvoje Niksic  <hniksic@srce.hr>
11350
11351         * ftp.c (ftp_loop): Check for opt.ftp_glob too before calling
11352         ftp_retrieve_glob.
11353
11354         * version.c: Changed version to 1.4.0-test2.
11355
11356 1996-11-02  Hrvoje Niksic  <hniksic@srce.hr>
11357
11358         * version.c: Released 1.4.0-test1.
11359
11360         * url.c (str_url): Don't use sprintf when creating %2F-prefixed
11361         directory.
11362         (convert_links): Removed definition of make_backup.
11363
11364         * http.h: Removed definition of MAX_ERROR_LENGTH.
11365
11366         * host.c (ftp_getaddress): Check for "(none)" domains.
11367
11368         * ftp.c (ftp_retrieve_dirs): Docfix.
11369
11370         * http.c (gethttp): Use ou->referer instead of u->referer.
11371
11372         * retr.c (retrieve_url): Reset u to avoid freeing pointers twice;
11373         this was known to cause coredumps on Linux.
11374
11375         * html.c (ftp_index): Cast the argument to local_time to time_t *.
11376
11377 1996-11-01  Hrvoje Niksic  <hniksic@srce.hr>
11378
11379         * connect.c (select_fd): Use exceptfds -- once and for all.
11380
11381         * retr.c (retrieve_from_file): Free filename after
11382         recursive_retrieve.
11383         (retrieve_from_file): Send RFIRST_TIME to recursive_retrieve on
11384         first-time retrieval.
11385         (retrieve_from_file): Return uerr_t; new argument, count.
11386         (retrieve_from_file): Break on QUOTEXC.
11387
11388         * init.c (setquota): Fixed a bug that caused rejection of
11389         non-postfixed values..
11390
11391 1996-10-30  Hrvoje Niksic  <hniksic@srce.hr>
11392
11393         * version.c: Changed name to wget.
11394
11395         * connect.c (iread): Smarter use of select.
11396         (select_fd): Set errno on timeout.  If not timeout, return 1
11397         instead of 0.
11398
11399 1996-10-29  Hrvoje Niksic  <hniksic@srce.hr>
11400
11401         * ftp.c (ftp_loop_internal): Don't use con->cmd before
11402         establishing it.
11403
11404 1996-10-26  Hrvoje Niksic  <hniksic@srce.hr>
11405
11406         * http.c (gethttp): Send correct referer when using proxy.
11407         (gethttp): Use struct urlinfo ou to access the relevant data; send
11408         correct authorization in all cases.
11409
11410         * host.c (same_host): Use skip_uname to skip username and
11411         password.
11412
11413         * url.c (skip_uname): New function.
11414         (parseurl): Use it.
11415
11416         * host.c (same_host): Do not assume HTTP -- same_host should now
11417         be totally foolproof.
11418
11419         * url.c (skip_proto): New function.
11420         (parse_uname): Use it.
11421
11422         * http.c (gethttp): Create local user and passwd from what is
11423         given.
11424
11425         * url.c (parseurl): Check for HTTP username and password too.
11426
11427 1996-10-25  Hrvoje Niksic  <hniksic@srce.hr>
11428
11429         * config.h.in: Removed #define gethostbyname R...
11430
11431 1996-10-22  Hrvoje Niksic  <hniksic@srce.hr>
11432
11433         * version.c: Changed version to 1.4.0-test1.
11434
11435 1996-10-21  Hrvoje Niksic  <hniksic@srce.hr>
11436
11437         * version.c: "Released" 1.4b29.
11438
11439         * recur.c (recursive_retrieve): Check for no_parent.
11440
11441         * init.c (setval): Option update.
11442
11443         * main.c (main): New option no-parent.
11444
11445         * options.h (struct options): New variable no_parent.
11446
11447         * recur.c (recursive_retrieve): Only files are checked for
11448         opt.accepts and opt.rejects.
11449         (recursive_retrieve): Check directories for opt.excludes.
11450         (recursive_retrieve): Make the dir absolute when checking
11451         opt.excludes.
11452
11453         * html.c (htmlfindurl): Recognize <applet code=...> and <script
11454         src=...>
11455
11456 1996-10-18  Hrvoje Niksic  <hniksic@srce.hr>
11457
11458         * ftp.c (getftp): Do not line-break assert entries at all.
11459         (ftp_retrieve_dirs): docfix.
11460
11461         * connect.c (select_fd): Use fd + 1 as nfds.
11462
11463         * version.c: Changed version to 1.4b29.
11464
11465 1996-10-18  Hrvoje Niksic  <hniksic@srce.hr>
11466
11467         * version.c: "Released" 1.4b28.
11468
11469         * ftp.c (ftp_loop_internal): Check whether f->size == len and
11470         don't continue the loop if it is.
11471         (ftp_get_listing): Remove list_filename on unsuccesful loop.
11472
11473 1996-10-17  Hrvoje Niksic  <hniksic@srce.hr>
11474
11475         * ftp.c (ftp_loop_internal): Use strcpy to initialize tmp.
11476         (getftp): Do not use multiline assert.
11477
11478         * http.c (hparsestatline): Use mjr and mnr instead of major and
11479         minor, which don't compile on Ultrix.
11480         (http_loop): Use strcpy() to initialize tmp.
11481
11482         * all: Geturl -> Fetch
11483
11484 1996-10-17  Hrvoje Niksic  <hniksic@srce.hr>
11485
11486         * recur.c (parse_robots): Fixed an off-by-one bug when looking for
11487         ':'.
11488
11489         * html.c (htmlfindurl): Fixed several possible off-by-one bugs by
11490         moving `bufsize &&' to the beginning of each check in for-loops.
11491
11492         * recur.c (parse_robots): Close fp on exit.
11493
11494         * url.c (mymkdir): Check for each directory before creating.
11495
11496 1996-10-16  Hrvoje Niksic  <hniksic@srce.hr>
11497
11498         * version.c: Changed version to 1.4b28.
11499
11500 1996-10-16  Hrvoje Niksic  <hniksic@srce.hr>
11501
11502         * version.c: "Released" 1.4b27.
11503
11504         * init.c (parse_line): Use isspace.
11505         (parse_line): Free *com on all errors.
11506
11507         * ftp.c (ftp_loop): Change FTPOK to RETROK before exiting.
11508         (delelement): Use next instead of f->next and prev instead of
11509         f->prev.
11510         (delelement): Free the members of the deleted element.
11511
11512         * http.c (http_loop): Do not return RETROK on code != 20x.
11513
11514         * init.c (cleanup): Free opt.user_header.
11515         (cleanup): Free opt.domains.
11516
11517         * url.c (freelists): Moved to cleanup().
11518
11519         * http.c (hparsestatline): Docfix.
11520
11521         * main.c (main): Return with error status on unsuccesful
11522         retrieval.
11523
11524         * init.c (setval): Do not remove listing when mirroring.
11525
11526         * url.c (url_filename): Use opt.fileprefix.
11527
11528         * ftp.c (ftp_get_listing): Use url_filename to get filename for
11529         .listing.
11530
11531         * main.c (main): New option: -rn.
11532
11533 1996-10-15  Hrvoje Niksic  <hniksic@srce.hr>
11534
11535         * Makefile.in (RM): Added RM = rm -f.
11536
11537         * host.c (clean_hosts): New function.
11538         (free_hlist): Just free the list, no reset.
11539
11540         * version.c: Changed version to 1.4b27.
11541
11542 1996-10-13  Hrvoje Niksic  <hniksic@srce.hr>
11543
11544         * version.c: "Released" 1.4b26.
11545
11546         * retr.c (retrieve_from_file): If call get_urls_html with
11547         opt.spider to make it silent in spider mode.
11548
11549         * url.c (str_url): Use CLEANDUP instead of URL_CLEANSE.
11550
11551         * url.h (CLEANDUP): New macro.
11552
11553         * http.c (gethttp): Fixed a bug that freed location only when it
11554         was NULL.
11555
11556         * retr.c (retrieve_url): Free url if it will not be stored,
11557         i.e. newloc is NULL.
11558
11559         * html.c (htmlfindurl): Handle exiting from quotes correctly; the
11560         old version would bug out on <a href="x#a"href="y">.
11561
11562         * html.h (state_t): New member in_quote.
11563
11564         * html.c (htmlfindurl): Free s->attr at the beginning of
11565         attr-loop.
11566
11567         * recur.c (recursive_retrieve): Recognize RCLEANUP.
11568         (tried_robots): Make hosts a global variable.
11569         (recursive_retrieve): Free constr after URL host optimization.
11570         (tried_robots): Free urlinfo before exiting.
11571
11572         * utils.c (free_slist): New function.
11573
11574         * recur.c (recursive_retrieve): Use flags to add cleanup
11575         possibility.
11576
11577         * main.c (main): Free filename after recursive_retrieve.
11578
11579         * http.c (gethttp): Store successful responses too.
11580
11581 1996-10-12  Hrvoje Niksic  <hniksic@srce.hr>
11582
11583         * all: Constified the whole source.  This required some minor
11584         changes in many functions in url.c, possibly introducing bugs -- I
11585         hope not.
11586
11587         * ftp-basic.c: Removed last_respline.
11588
11589         * http.c (gethttp): Free type.
11590
11591         * host.c (same_host): Free real1 and real2.
11592
11593         * main.c (main): New option --spider.
11594
11595         * retr.c (get_contents): Don't reset errno.
11596
11597         * main.c (main): Sorted the options.
11598
11599         * connect.c (iread): Set errno to ETIMEDOUT only if it was left
11600         uninitialized by select().
11601
11602         * http.c (http_loop): Print the time when the connection is
11603         closed.
11604         (gethttp): Debug-print the HTTP request.
11605
11606 1996-10-11  Hrvoje Niksic  <hniksic@srce.hr>
11607
11608         * connect.c (iread): Do not try reading after timeout.
11609
11610         * main.c (main): Would bug out on -T.
11611
11612         * connect.c (select_fd): Do not use exceptfds.
11613         (iread): Set ETIMEDOUT on select_fd <= 0.
11614
11615         * version.c: Changed version to 1.4b26.
11616
11617 1996-10-10  Hrvoje Niksic  <hniksic@srce.hr>
11618
11619         * version.c: "Released" 1.4b25.
11620
11621         * ftp-unix.c (ftp_parse_unix_ls): Ignore lines without file name
11622         or link name.
11623
11624         * http.c (gethttp): Add errcode to struct hstat.
11625         (http_loop): Use it.
11626
11627         * url.c (no_proxy_match): Simplify using char** for no_proxy.
11628
11629         * options.h (struct options): Make opt.no_proxy a vector.
11630
11631         * utils.c (sepstring): Use !*s instead of !strlen(s).
11632
11633         * init.c (setval): Set opt.maxreclevel to 0 on --mirror.
11634         (getperms): Use ISODIGIT instead of isdigit.
11635
11636         * ftp.c (getftp): Print time.
11637
11638         * main.c (main): Use legible output of downloaded quantity.
11639
11640         * ftp.c (getftp): Use elapsed_time().
11641         (ftp_loop_internal): Use rate().
11642
11643         * http.c (http_loop): Add download ratio output; Use rate().
11644
11645         * utils.c (rate): New function.
11646
11647 1996-10-09  Hrvoje Niksic  <hniksic@srce.hr>
11648
11649         * http.c (http_loop): Use timer.
11650
11651         * ftp.c: Split to ftp-basic.c and ftp.c
11652
11653         * utils.c (reset_timer): New function.
11654         (elapsed_time): New function.
11655
11656         * retr.c (show_progress): Make bytes_in_line and offs long; should
11657         work on 16-bit machines.
11658
11659 1996-10-08  Hrvoje Niksic  <hniksic@srce.hr>
11660
11661         * url.c (in_acclist): New argument backward.
11662
11663         * ftp.c (ftp_retrieve_glob): Use acceptable() to determine whether
11664         a file should be retrieved according to suffix.
11665         (ftp_get_listing): Check the return value of unlink; Do not call
11666         ftp_retrieve_dirs if depth reached maxreclevel.
11667         (ftp_retrieve_dirs): Check whether the directory is in
11668         exclude-list.
11669
11670         * main.c (main): Print the version number at the beginning of
11671         DEBUG output.
11672         (main): Use strrchr when creating exec_name.
11673
11674         * ftp.c (ftp_retrieve_glob): Do not close control connection.
11675
11676         * version.c: Changed version to 1.4b25.
11677
11678 1996-10-07  Hrvoje Niksic  <hniksic@srce.hr>
11679
11680         * version.c: "Released" 1.4b24.
11681
11682         * Makefile.in: Rewrite.
11683
11684         * ftp.c (ftp_loop_internal): Likewise.
11685
11686         * retr.c (time_str): Check for failed time().
11687
11688         * html.c (htmlfindurl): Recognize <fig src> and <overlay src> from
11689         HTML3.0.
11690
11691         * retr.c (time_str): Return time_t *.
11692
11693         * connect.c (bindport): Close msock on unsuccesful bind.
11694         (bindport): The same for getsockname and listen.
11695
11696         * retr.c (retrieve_url): Allow any number of retries on
11697         proxy.
11698
11699         * http.c (gethttp): Do not treat errno == 0 as timeout.
11700         (http_loop): Likewise.
11701         (http_loop): Cosmetic changes.
11702
11703         * connect.c (iread): Set errno to ETIMEDOUT in case of timeout.
11704
11705         * retr.c (get_contents): Reset errno.
11706
11707         * ftp.c (getftp): Minor fixes.
11708
11709 1996-10-06  Hrvoje Niksic  <hniksic@srce.hr>
11710
11711         * http.c: Do not use backups.
11712
11713         * geturl.1 (WARNING): Warn that man-page could be obsolete.
11714
11715         * getopt.c (getopt_long): Moved to getopt.c
11716
11717         * geturl.texi: Enhanced.
11718
11719         * main.c (main): Use it.
11720
11721         * recur.c (convert_all_links): New function.
11722
11723         * utils.c (add_slist): New argument flags.
11724
11725         * recur.c (recursive_retrieve): Update a list of downloaded URLs.
11726         (parse_robots): Do not chuck out empty value fields.
11727         (parse_robots): Make yourself welcome on empty Disallow.
11728
11729         * version.c: Changed version to 1.4b24.
11730
11731 1996-10-06  Hrvoje Niksic  <hniksic@srce.hr>
11732
11733         * version.c: "Released" 1.4b23.
11734
11735         * ftp.c (ftp_loop_internal): Get the time after getftp.
11736
11737         * Makefile.in (install.info): New target.
11738         (install): Use it.
11739
11740         * http.c (http_loop): Fix output when doing -O.
11741
11742 1996-10-05  Hrvoje Niksic  <hniksic@srce.hr>
11743
11744         * geturl.texi: New file.
11745
11746         * main.c (main): Do not print the warnings and download summary if
11747         opt.quiet is set.
11748
11749         * version.c: Changed version to 1.4b23.
11750
11751 1996-10-05  Hrvoje Niksic  <hniksic@srce.hr>
11752
11753         * "Released" 1.4b22.
11754
11755         * atotm.c (atotm): Use True and False instead of TRUE and FALSE,
11756         to avoid redefinition warnings.
11757
11758         * host.c (store_hostaddress): Use memcpy() to copy the address
11759         returned by inet_addr.
11760
11761         * version.c: Changed version to 1.4b22.
11762
11763 1996-10-04  Hrvoje Niksic  <hniksic@srce.hr>
11764
11765         * version.c: "Released" 1.4b21.
11766
11767         * ftp-unix.c (ftp_parse_ls): Renamed to ftp_parse_unix_ls.
11768
11769         * ftp.c (ftp_port): Use conaddr.
11770         (getftp): Print the file length.
11771         (ftp_retrieve_list): Check the stamps of plain files only.
11772
11773         * connect.c (closeport): Do not call shutdown().
11774         (conaddr): New function.
11775
11776         * html.c (ftp_index): Made it dfp-aware.
11777
11778         * init.c (cleanup): New name of freemem. Close opt.dfp.
11779
11780         * ftp.c (getftp): Use opt.dfp if it is set.
11781
11782         * ftp-unix.c (ftp_parse_ls): Recognize time in h:mm format.
11783
11784         * ftp.c (ftp_retrieve_dirs): Fixed a bug that caused incorrect
11785         CWDs to be sent with recursive FTP retrievals.
11786
11787 1996-10-03  Hrvoje Niksic  <hniksic@srce.hr>
11788
11789         * recur.c (parse_robots): Made it more compliant with "official"
11790         specifications.
11791
11792         * http.c: New function.
11793
11794         * ftp-unix.c (ftp_parse_ls): Added better debug output.
11795
11796         * ftp.c (getftp): Print out the LIST in case of
11797         opt.print_server_response.
11798
11799         * version.c: Changed version to 1.4b21.
11800
11801 1996-10-01  Hrvoje Niksic  <hniksic@srce.hr>
11802
11803         * version.c: "Released" 1.4b20.
11804
11805         * README: Update.
11806
11807         * http.c (gethttp): Preset lengths of various headers instead of
11808         calculating them dynamically.
11809         (gethttp): Check for 206 partial contents.
11810
11811 1996-09-30  Hrvoje Niksic  <hniksic@srce.hr>
11812
11813         * configure.in: Set SYSTEM_GETURLRC to $libdir/geturlrc
11814
11815         * http.c (gethttp): Send the port number in the Host: header.
11816
11817 1996-09-29  Hrvoje Niksic  <hniksic@srce.hr>
11818
11819         * http.c (gethttp): Send host: header.
11820         (gethttp): Add the possibility of user-defined headers.
11821         (gethttp): Move decision about pragma: no-cache to http_loop,
11822         where it belongs.
11823         (gethttp): Pass a struct instead of enormous argument list.
11824         (http_loop): Use a new, fancier display format.
11825         (ftp_loop): Likewise.
11826
11827         * main.c: (hangup): Turn off buffering of the new log file.
11828
11829         * install-sh: Likewise.
11830
11831         * config.sub: Replace with the one in autoconf-2.10
11832
11833         * geturl.1: Update.
11834
11835         * init.c: New options httpuser and httppasswd.
11836
11837         * http.c: (base64_encode_line): New function.
11838         (gethttp): Send authentication.
11839
11840         * connect.c (make_connection): Use store_hostaddress.
11841
11842 1996-09-28  Hrvoje Niksic  <hniksic@srce.hr>
11843
11844         * host.c (store_hostaddress): New function.
11845
11846         * NEWS: Update.
11847
11848         * http.c (hgetrange): New function.
11849         (gethttp): Use ranges.
11850
11851         * utils.c (numdigit): Accept long instead of int.
11852
11853         * http.c (http_loop): Add restart capabilities.
11854
11855         * ftp.c (ftp_retrieve_glob): Fixed a bug that could cause matchres
11856         being used uninitialized.
11857         (ftp_retrieve_list): Similar fix.
11858
11859         * host.c (add_hlist): Fixed a bug that could cause cmp being used
11860         uninitialized.
11861
11862         * url.c (construct_relative): New function.
11863
11864         * recur.c (recursive_retrieve): Use it.
11865
11866         * retr.c (convert_links): New function.
11867
11868 1996-09-27  Hrvoje Niksic  <hniksic@srce.hr>
11869
11870         * url.c (free_urlpos): New function.
11871
11872         * recur.c (recursive_retrieve): Adapt.
11873
11874         * url.c (get_urls_html): Return a linked list instead of a vector.
11875
11876         * url.c (get_urls_file): Return a linked list instead of a vector.
11877
11878         * geturl.1: Update.
11879
11880         * http.c (gethttp): Implement it.
11881
11882         * init.c (setval): New option: SAVEHEADERS
11883
11884         * ftp.c (ftp_loop_internal): Do not set restval if listing is to
11885         be retrieved. Lack of this test caused bugs when the connection
11886         was lost during listing.
11887
11888         * retr.c (retrieve_url): Fixed a bug that caused
11889         coredumps. *newloc is now reset by default.
11890         (retrieve_url): Lift the twenty-tries limit on proxies.
11891
11892         * version.c: Changed version to 1.4b20.
11893
11894 1996-09-20  Hrvoje Niksic  <hniksic@srce.hr>
11895
11896         * version.c: "Released" 1.4b19.
11897
11898 1996-09-19  Hrvoje Niksic  <hniksic@srce.hr>
11899
11900         * ftp.c (ftp_loop_internal): Renamed from ftp_1fl_loop.
11901         (getftp): Changed prototype to accept ccon *.
11902
11903 1996-09-17  Hrvoje Niksic  <hniksic@srce.hr>
11904
11905         * ftp.c (ftp_retrieve_list): Fixed a bug that caused setting
11906         incorrect values to files pointed to by symbolic links.
11907         (ftp_1fl_loop): Do not count listings among the downloaded URL-s.
11908
11909 1996-09-16  Hrvoje Niksic  <hniksic@srce.hr>
11910
11911         * url.c (mkstruct): Do not prepend "./" in front of a pathname.
11912
11913         * main.c (main): New option: --user-agent.
11914
11915         * geturl.1: Ditto.
11916
11917         * init.h: Ditto.
11918
11919         * init.c (setval): Ditto.
11920
11921         * main.c (main): Rename "server-headers" to "server-response".
11922
11923         * ftp-unix.c (ftp_parse_ls): Check for asterisks at the end of
11924         executables in 'ls -F' listings.
11925
11926 1996-09-15  Hrvoje Niksic  <hniksic@srce.hr>
11927
11928         * url.c (parseurl): Remove realloc() and sprintf().
11929         (str_url): Get rid of sprintf().
11930
11931         * recur.c (recursive_retrieve): Enable FTP recursion through proxy
11932         servers.
11933
11934         * url.h (URL_CLEANSE): Made it else-resistant.
11935         (USE_PROXY): New macro.
11936
11937 1996-09-14  Hrvoje Niksic  <hniksic@srce.hr>
11938
11939         * NEWS: Update.
11940
11941         * version.c: Changed version to 1.4b19.
11942
11943 1996-09-14  Hrvoje Niksic  <hniksic@srce.hr>
11944
11945         * version.c: "Released" 1.4b18.
11946
11947         * url.c: Made it reallocate space exponentially.
11948
11949 1996-09-14  Drazen Kacar  <dave@fly.cc.fer.hr>
11950
11951         * html.c (htmlfindurl): Added <frame src> and <iframe src> among
11952         the list of stuff to fetch.
11953
11954 1996-09-13  Hrvoje Niksic  <hniksic@srce.hr>
11955
11956         * url.c (get_urls_html): Fixed a bug that caused SIGSEGV's with
11957         -Fi.
11958
11959         * html.c (htmlfindurl): Rewrite.
11960
11961         * http.c (gethttp): Use opt.proxy_cache.
11962
11963         * main.c (main): Added --cache option.
11964
11965         * ftp.c (ftp_response): Print server response if opt.print_server
11966         response is set.
11967         (getftp): Print newlines after each request if the server response
11968         is to be printed.
11969         (ftp_response): Copy the last response line to last_respline.
11970
11971         * http.c (gethttp): Add Pragma: nocache for retried
11972         proxy-retrievals.
11973
11974         * ftp.c (getftp): Use it.
11975
11976         * retr.c (buf_discard): New function.
11977
11978         * ftp.c (ftp_response): Use buf_readchar().
11979         (getftp): Flush the control connection buffer before calling
11980         get_contents().
11981
11982         * retr.c (buf_readchar): New function.
11983         (buf_flush): New function.
11984         (get_contents): Use buf_readchar() instead of read(x, x, 1).
11985         (get_contents): Use buf_flush.
11986
11987 1996-09-12  Hrvoje Niksic  <hniksic@srce.hr>
11988
11989         * ftp.c: Incorporate changes to ftp_response.
11990
11991         * ftp.c (ftp_response): Allocate the server response dynamically,
11992         as in read_whole_line and fetch_next_header.
11993
11994         * utils.c (read_whole_line): Fixed a bug that prevented reading
11995         the last line if it is not \n-terminated. Also fixed a possible
11996         memory overflow.
11997
11998         * http.c (fetch_next_header): Return malloc-ed string as large as
11999         needed.
12000         (gethttp): Use new fetch_next_header.
12001
12002 1996-09-12  Hrvoje Niksic  <hniksic@srce.hr>
12003
12004         * http.c (hgetlen): Compute the header length the first time only.
12005         (hgettype): Ditto.
12006         (hgetlocation): Ditto.
12007         (hgetmodified): Ditto.
12008
12009 1996-09-11  Hrvoje Niksic  <hniksic@srce.hr>
12010
12011         * sample.geturlrc: Update.
12012
12013 1996-09-10  Hrvoje Niksic  <hniksic@srce.hr>
12014
12015         * http.c (http_loop): Ditto.
12016
12017         * ftp.c (getftp): Open the output file as binary.
12018
12019         * version.c: Changed version to 1.4b18.
12020
12021 1996-09-10  Hrvoje Niksic  <hniksic@srce.hr>
12022
12023         * version.c: "Released" 1.4b17.
12024
12025         * ftp-unix.c (ftp_parse_ls): If unable to open file, return NULL
12026         instead of failed assertion.
12027
12028 1996-09-09  Hrvoje Niksic  <hniksic@srce.hr>
12029
12030         * ftp.c (ftp_get_listing): Add a numbered suffix to LIST_FILENAME
12031         if a file of that name already exists.
12032
12033 1996-09-05  Hrvoje Niksic  <hniksic@srce.hr>
12034
12035         * ftp.c (ftp_1fl_loop): Handler FTPPORTERR and FOPENERR correctly.
12036
12037         * config.h.in: Define gethostbyname as Rgethostbyname when using
12038         Socks.
12039
12040         * configure.in: Check for -lresolv if using Socks.
12041
12042         * version.c: Changed version to 1.4b17.
12043
12044 1996-07-15  Hrvoje Niksic  <hniksic@srce.hr>
12045
12046         * version.c: "Released" 1.4b16.
12047
12048         * http.c (gethttp): More intelligent check for first line of HTTP
12049         response.
12050         (gethttp): Would bug out on time-stamping.
12051
12052         * version.c: Changed version to 1.4b16.
12053
12054 1996-07-11  Hrvoje Niksic  <hniksic@srce.hr>
12055
12056         * version.c: Released 1.4b15.
12057
12058         * http.c (http_loop): Print \n after the loop entry, not before.
12059
12060         * url.c (url_filename): Use ISDOT.
12061
12062         * url.h (ISDOT): New macro.
12063
12064         * recur.c (recursive_retrieve): Change only opt.recursive for
12065         following FTP.
12066
12067 1996-07-11  Antonio Rosella <antonio.rosella@agip.it>
12068
12069         * socks/geturl.cgi: Fixed version No.
12070
12071         * socks/download-netscape.html: Ditto.
12072
12073         * socks/download.html: Changed socks.html to download.html.
12074
12075 1996-07-11  Hrvoje Niksic  <hniksic@srce.hr>
12076
12077         * url.c (url_filename): Check for opt.dirstruct instead for
12078         opt.recursive && opt.dirstruct.
12079
12080         * init.c (defaults): Ditto.
12081         (defaults): Reset dirstruct by default.
12082         (setval): Set opt.dirstruct whenever setting recursive.
12083
12084         * init.h: Removed FORCEDIRHIER.
12085
12086         * INSTALL: Added -L to socks-description.
12087
12088         * version.c: Changed version to 1.4b15.
12089
12090 1996-07-10  Hrvoje Niksic  <hniksic@srce.hr>
12091
12092         * version.c: "Released" 1.4b14.
12093
12094         * geturl.1: Update AUTHOR to include Rosella as contributor.
12095
12096         * NEWS: Update.
12097
12098         * socks/geturl.cgi: Simplified command creation, nuked <blink>.
12099
12100         * socks/geturl.cgi: Wrap nutscape extensions within if $netscape.
12101         (cal_time): Fix == to eq.
12102
12103         * socks/geturl.cgi: GPL-ized with permission of A. Rosella.
12104
12105         * geturl.1 (hostname): Moved URL CONVENTIONS to the beginning.
12106
12107         * Makefile.in: Use @VERSION@.
12108
12109         * configure.in: Check version from version.c.
12110
12111         * socks/geturl.cgi: Changed /pub/bin/perl to /usr/bin/perl.
12112
12113         * socks/download.html: Created from download-netscape.html, made
12114         HTML-2.0 compliant.
12115
12116         * recur.c (recursive_retrieve): Set opt.force_dir_hier when
12117         following FTP links from recursions.
12118
12119 1996-07-09  Hrvoje Niksic  <hniksic@srce.hr>
12120
12121         * url.c (mymkdir): Fixed a bug that prevented mymkdir() to create
12122         absolute directories correctly.
12123
12124         * version.c: Changed version to 1.4b14.
12125
12126 1996-07-09  Hrvoje Niksic  <hniksic@srce.hr>
12127
12128         * version.c: "Released" 1.4b13.
12129
12130         * url.c (make_backup): New function.
12131
12132         * http.c (http_loop): Make a backup copy of the local file (using
12133         rename(2)) before opening it.
12134
12135         * main.c (main): Added --backups.
12136
12137         * host.c (ftp_getaddress): Bail out on failed mycuserid().
12138         (ftp_getaddress): Check for leading dot on MY_DOMAIN.
12139         (ftp_getaddress): Check for empty, null or (null) domain.
12140
12141         * url.c (get_urls_html): If this_url is NULL, the base must have a
12142         protocol.
12143         (parseurl): Use has_proto.
12144
12145         * retr.c (retrieve_url): Warn when proxy is used with more than 20
12146         retries.
12147
12148         * url.c (mkstruct): Create the directory (calling mymkdir()) only
12149         if it is not already there.
12150         (has_proto): New function.
12151         (get_urls_html): Eliminate the remaining call to findurl -- use
12152         has_proto.
12153
12154         * geturl.1: Ditto.
12155
12156         * main.c: Change -X to -x.
12157
12158         * url.c (url_filename): Simplify creation of filename if
12159         prefix_files is set.
12160         (url_filename): Simplify everything. And I do mean *everything*.
12161         (mkstruct): Add dir_prefix before hostname.
12162         (path_simplify): Fixed a bug that caused writing outside the path
12163         string in case of "." and ".." path strings.
12164
12165 1996-07-06  Hrvoje Niksic  <hniksic@srce.hr>
12166
12167         * init.c: Added --mirror.
12168
12169         * main.c (main): Added -X to force saving of directory hierarchy.
12170
12171         * ftp.c (ftp_retrieve_list): Added recursion depth counter.
12172         (ftp_retrieve_list): Check whether quota is exceeded.
12173
12174         * url.c (get_urls_html): Skip leading blanks for absolute URIs.
12175
12176         * http.c (gethttp): Use referer if present.
12177
12178         * recur.c (recursive_retrieve): Set u->referer before calling
12179         retrieve_url.
12180
12181         * url.c (newurl): Use memset to nullify the struct members.
12182         (freeurl): Free the referer field too.
12183
12184         * url.h: Added referer to urlinfo.
12185
12186         * geturl.1: Updated the manual to document some of the new features.
12187
12188         * utils.c (numdigit): Moved from url.c.
12189
12190         * README: Rewritten.
12191
12192         * config.h.in: Add the support for socks.
12193
12194         * configure.in: Add the support for socks.
12195
12196         * url.c (url_filename): If the dir_prefix is ".", work with just
12197         the file name.
12198         (url_filename): Do not look for .n extensions if timestamping if
12199         turned on.
12200
12201         * retr.c (show_progress): Skip the over-abundant restval data, and
12202         print the rest of it with ',' instead of '.'.
12203
12204 1996-07-05  Hrvoje Niksic  <hniksic@srce.hr>
12205
12206         * retr.c (show_progress): Changed second arg. to long (as it
12207         should be).
12208         (show_progress): Moved to retr.c.
12209         (get_contents): Moved to retr.c.
12210
12211         * version.c: Change version to 1.4b13.
12212
12213 1996-07-05  Hrvoje Lacko <hlacko@fly.cc.fer.hr>
12214
12215         * url.c (in_acclist): Would return after the first suffix.
12216
12217 1996-07-04  Hrvoje Niksic  <hniksic@srce.hr>
12218
12219         * version.c: "Released" 1.4b12.
12220
12221         * url.c (path_simplify): More kludgifications.
12222         (get_urls_html): Use new parameters for htmlfindurl.
12223
12224         * html.c: Removed memorizing "parser states", since the new
12225         organization does not require them.
12226
12227         * init.c (run_geturlrc): Use read_whole_line.
12228
12229         * ftp-unix.c (ftp_parse_ls): Use read_whole_line.
12230
12231         * recur.c (parse_robots): Use read_whole_line.
12232
12233         * utils.c (read_whole_line): New function.
12234
12235         * recur.c (tried_robots): Use add_slist/in_slist, *much* cleaner.
12236
12237         * host.c (ngethostbyname): Call inet_addr just once. Yet to be
12238         tested on OSF and Ultrix.
12239         (add_hlist): New function.
12240         (free_hlist): New function.
12241         (search_host): New function.
12242         (search_address): New function.
12243         (realhost): Use search_host, search_address and add_hlist.
12244         (same_host): Replaced realloc() with strdupdelim(), made
12245         case-insensitive, fixed a memory leak.
12246
12247         * html.c (ftp_index): Fixed tm_min and tm_sec to be tm_hour and
12248         tm_min, like intended.
12249
12250         * version.c: Change user agent information to
12251         Geturl/version.
12252
12253 1996-07-03  Hrvoje Niksic  <hniksic@srce.hr>
12254
12255         * utils.c: Renamed nmalloc.c to utils.c, .h likewise.
12256
12257         * url.c (acceptable): Always accept directories.
12258
12259         * ftp-unix.c (ftp_parse_ls): Support brain-damaged "ls -F"-loving
12260         servers by stripping trailing @ from symlinks and trailing / from
12261         directories.
12262
12263         * ftp.c (ftp_loop): Debugged the "enhanced" heuristics. :-)
12264
12265         * url.c (skip_url): Use toupper instead of UCASE.
12266
12267         * host.c (sufmatch): Made it case-insensitive.
12268
12269         * url.c (match_backwards_or_pattern): Fixed i == -1 to j == -1.
12270         (match_backwards): New function, instead of
12271         match_backwards_or_pattern.
12272
12273         * recur.c (recursive_retrieve): Increased performance by
12274         introducing inl, which reduces number of calls to in_slist to only
12275         one.
12276
12277         * ftp.c (ftp_loop): Enhanced the heuristics that decides which
12278         routine to use.
12279
12280         * main.c (printhelp): Removed the warranty stuff.
12281
12282 1996-07-02  Hrvoje Niksic  <hniksic@srce.hr>
12283
12284         * url.c (add_slist): Simplify.
12285         (match_backwards_or_pattern): New function.
12286         (in_acclist): Use match_backwards_or_pattern.
12287         (matches): Remove.
12288
12289 1996-06-30  Hrvoje Niksic  <hniksic@srce.hr>
12290
12291         * ftp.c (ftp_loop): Call ftp_index on empty file names, if not
12292         recursive.
12293
12294         * html.c (ftp_index): Fixed to work. Beautified the output.
12295
12296         * ftp.c (ftp_retrieve_glob): Another argument to control whether
12297         globbing is to be used.
12298         (ftp_retrieve_list): Compare the time-stamps of local and remote
12299         files to determine whether to download.
12300
12301 1996-06-29  Hrvoje Niksic  <hniksic@srce.hr>
12302
12303         * ftp.c (rel_constr): New function.
12304
12305         * retr.c (retrieve_from_file): Check for text/html before
12306         retrieving recursively.
12307
12308         * main.c (main): Check whether the file is HTML before going into
12309         recursive HTML retrieving.
12310
12311         * ftp.c (ftp_retrieve_list): Manage directories.
12312         (ftp_retrieve_glob): Pass all the file-types to ftp_retrieve_list.
12313         (ftp_1fl_loop): Fixed a bug that caused con->com to be incorrectly
12314         initialized, causing bugchecks in getftp to fail.
12315
12316         * configure.in: Check for symlink.
12317
12318         * ftp.c (ftp_retrieve_list): Added support for symlinks.
12319
12320         * version.c: "Released" 1.4b10.
12321
12322         * atotm.c (atotm): Redeclared as time_t.
12323
12324         * init.c: New variable "timestamping".
12325
12326         * main.c (main): New option 'N'.
12327
12328         * http.c (hgetlocation): Case-insensitive match.
12329         (hgetmodified): New function.
12330         (http_loop): Implement time-stamping.
12331
12332 1996-06-28  Hrvoje Niksic  <hniksic@srce.hr>
12333
12334         * version.c: Changed version to 1.4b10
12335
12336         * atotm.c: New file, from phttpd.
12337
12338         * options.h (struct options): New parameter timestamping.
12339
12340         * version.c: 1.4b9 "released".
12341
12342         * recur.c (recursive_retrieve): Used linked list (ulist) for
12343         faster storing of URLs.
12344
12345         * url.c (get_urls_html): Removed the old kludge with comparing the
12346         outputs of htmlfindurl and findurl.
12347         (get_urls_html): Added better protocol support here.
12348         (create_hash): Removed, as well as add_hash and in_hash.
12349         (addslist): New function.
12350         (in_slist): ditto
12351
12352         * version.c: Released 1.4b8, changed version to b9.
12353
12354 1996-06-27  Hrvoje Niksic  <hniksic@srce.hr>
12355
12356         * ftp.c (freefileinfo): New function.
12357         (delelement): New function.
12358
12359         * everywhere: GPL!
12360
12361         * ftp.c (ftp_loop): Use ccon.
12362         (ftp_retrieve_glob): Likewise.
12363
12364         * ftp.h: Define ccon, to define status of control connection.
12365
12366         * ftp.c (ftp_get_listing): New function.
12367         (ftp_retrieve_more): New function.
12368         (ftp_retrieve_glob): New function.
12369
12370 1996-06-25  Hrvoje Niksic  <hniksic@srce.hr>
12371
12372         * configure.in: Removed the search for cuserid().
12373
12374         * init.c (getmode): Renamed to getperms.
12375
12376 1996-06-24  Hrvoje Niksic  <hniksic@srce.hr>
12377
12378         * version.c: New version.
12379
12380         * main.c (hangup): New function, that handles hangup. Hangup
12381         signal now causes geturl to stop writing on stdout, and to write
12382         to a log file.
12383
12384         * ftp.c (getftp): "Released" 1.4b7.
12385
12386         * html.c (htmlfindurl): Ignore everything inside <head>...</head>.
12387         (ftp_index): Use fileinfo/urlinfo.
12388
12389         * ftp-unix.c (ftp_parse_ls): New function.
12390         (symperms): New function.
12391
12392         * ftp.c (ftp_1fl_loop): New function, to handle 1-file loops.
12393
12394         * retr.c (retrieve_url): Added FTP support.
12395
12396 1996-06-23  Hrvoje Niksic  <hniksic@srce.hr>
12397
12398         * geturl.h: Removed NOTFTP2HTML enum.
12399         Added DO_LOGIN, DO_CWD and DO_LIST. LIST_ONLY is obsolete.
12400
12401         * ftp.c (getftp): Resynched with urlinfo.
12402         (getftp): Removed HMTL-ization of index.html from getftp.
12403
12404         * version.c: 1.4b6 "released".
12405
12406         * options.h (options): New struct, to keep options in.
12407
12408         * http.c (http_loop,gethttp): Synched with proxy.
12409
12410         * retr.c (retrieve_url): Implemented proxy retrieval.
12411
12412         * main.c (main): Use retrieve_from_file.
12413
12414 1996-06-22  Hrvoje Niksic  <hniksic@srce.hr>
12415
12416         * retr.c (retrieve_from_file): New function.
12417
12418         * url.c (parseurl): Modified to return URLOK if all OK. Protocol
12419         can be found in u->proto.
12420
12421         * ftp.c (ftp_response): Fixed to accept multi-line responses as
12422         per RFC 959.
12423
12424         * recr.c (recursive_retrieve): Take newloc from retrieve_url.
12425
12426         * url.c (mymkdir): Removed the file of the same name, if one
12427         exists.
12428         (isfile): New function.
12429         (mkstruct): Fixed the '/' glitches.
12430         (path_simplify): Hacked to treat something/.. correctly.
12431
12432 1996-06-21  Hrvoje Niksic  <hniksic@srce.hr>
12433
12434         * http.c (gethttp): Close the socket after error in headers.
12435         (http_loop): HEOF no longer a fatal header.
12436
12437         * loop.c (retrieve_url): When dt is NULL, do not modify it. This
12438         simplifies the syntax of calling retrieve_url.
12439
12440         * recr.c (recursive_retrieve): Modified to use get_urls_html.
12441
12442         * url.c (get_urls_file): New function.
12443         (get_urls_html): New function.
12444
12445         * recr.c (recursive_retrieve): Patched up to conform to the
12446         standards.
12447
12448         * http.c (gethttp): Synched with the rest...
12449         (gethttp): Treat only CONREFUSED specially, with connection
12450         errors.
12451
12452         * init.c,geturl.1,http.c (http_loop): Removed kill_error.
12453
12454 1996-06-20  Hrvoje Niksic  <hniksic@srce.hr>
12455
12456         * http.c (http_loop): New function.
12457
12458         * loop.c: Removed *lots* of stuff from retrieve_url.
12459
12460         * url.c (parseurl): Changed to work with urlinfo. Integrated
12461         username finding and path parsing.
12462         (newurl): New function.
12463         (freeurl): New function.
12464         (mkstruct): Removed the old bogosities, made it urlinfo-compliant.
12465         (url_filename): Likewise.
12466         (path_simplify): Accept relative paths too.
12467         (opt_url): Made urlinfo-compliant, removed bogosities.
12468         (path_simplify): Expanded to accept relative paths.
12469         (str_url): A replacement for hide_url
12470         (decode_string): Fixed a bug that caused malfunctioning when
12471         encountering an illegal %.. combination.
12472         (opt_url): Removed the argument. Dot-optimizations are now default.
12473
12474         * nmalloc.c (strdupdelim): New function.
12475
12476         * url.h: Added the urlinfo structure
12477
12478 1996-06-19  Hrvoje Niksic  <hniksic@srce.hr>
12479
12480         * url.c (hide_url): Thrown out the protocol assertion. Do not
12481         change the URL if the protocol if not recognized.
12482         (findurl): Put continue instead of break.
12483
12484 1996-06-18  Hrvoje Niksic  <hniksic@srce.hr>
12485
12486         * sample.geturlrc: Changed the defaults to be commented out and
12487         harmless (previous defaults caused pains if copied to
12488         ~/.geturlrc).
12489
12490         * http.c (gethttp): Print the HTTP request in debug mode.
12491
12492         * connect.c (iread): Added EINTR check loop to select-ing
12493         too. EINTR is now correctly handled with select().
12494
12495         * TODO: new file
12496
12497 1996-05-07  Hrvoje Niksic  <hniksic@srce.hr>
12498
12499         * host.c (same_host): Made the function a little bit more
12500         intelligent regarding diversified URL syntaxes.
12501
12502         * url.c (skip_url): Spaces are now skipped after URL:
12503
12504         * Released 1.3.1 with the patch to prevent crashing when sending
12505         NULL to robot* functions and the patch to compile "out of the box"
12506         on AIX.
12507
12508         * recr.c (recursive_retrieve): Added checking whether this_url is
12509         NULL when calling the robot functions.
12510
12511         * ChangeLog: New file.