]> sjero.net Git - wget/blob - src/ChangeLog
Silent warnings reported by clang.
[wget] / src / ChangeLog
1 2010-10-16  Giuseppe Scrivano  <gscrivano@gnu.org>
2
3         * connect.c (socket_ip_address): Initialize `sockaddr' to zero.
4         * ftp-basic.c (ftp_epsv): Remove dead assignment to `s'.
5         * ftp-ls.c (ftp_parse_vms_ls): Remove dead assignment to `len'.
6         * http.c (skip_short_body): Remove dead assignment to `ret'.
7         * init.c (wgetrc_user_file_name): Remove dead assignment to `home'.
8         * main.c (main): Silent warning reported by clang.
9         (http_loop): Silent warning reported by clang.
10         * retr.c (retrieve_url): Likewise.
11         * url.c (init_seps): Remove dead assignment to `p'.
12
13 2010-10-11  Giuseppe Scrivano  <gscrivano@gnu.org>
14
15         * ftp.c (getftp): Fix indentation.
16
17 2010-10-11  Steven Schubiger <stsc@member.fsf.org>
18
19         * ftp.c (getftp): Initialize `targ'.
20
21 2010-10-08  Ivanov Anton <x86mail@gmail.com> (tiny change)
22
23     * src/html-url.c (check_style_attr): Skip quotes when they are present.
24
25 2010-10-06  Giuseppe Scrivano  <gscrivano@gnu.org>
26
27         * main.c (main): Remove unused variable `status'.
28
29 2010-09-25  Merinov Nikolay  <kim.roader@gmail.com>
30
31         * init.c: Add "unlink" command into command list.
32         * main.c: Add "unlink" option into option_data list.
33         * options.h: Adding unlink field into struct options.
34         * wget.h: Addind UNLINKERR error into uerr_t enum.
35         * exits.c (get_status_for_err): define status for UNLINKERR.
36         * ftp.c (getftp): unlink file if exists, instead clobbering.
37         (ftp_loop_internal): processing UNLINKERR.
38         * http.c (gethttp): unlink file if exists, instead clobbering.
39         (http_loop): processing UNLINKERR.
40
41 2010-09-24  Dennis, CHENG Renquan <crquan@fedoraproject.org>
42
43         Fix problem when content-disposition is used with recursive downloading.
44         * url.h (url_file_name): Add a new argument `replaced_filename'.
45         * url.c (url_file_name): Likewise.
46         * http.c (parse_content_disposition): Do not add a prefix to the return
47         value.
48         (test_parse_content_disposition): Adjust tests.
49         (gethttp): Pass additional parameter to `url_file_name'.
50         (http_loop): Likewise.
51         * ftp.c (ftp_loop_internal, ftp_get_listing, ftp_retrieve_list)
52         (ftp_loop): Likewise.
53
54 2010-09-14  Giuseppe Scrivano  <gscrivano@gnu.org>
55
56         * convert.c (local_quote_string): Accept new parameter `no_html_quote'.
57         Inhibit HTML quoting when `no_html_quote'.
58         (convert_links): Disable HTML quoting in CSS files.
59         Reported by: Manuel Reinhardt <reinhardt@syslab.com>.
60
61 2010-09-12  Giuseppe Scrivano  <gscrivano@gnu.org>
62
63         * main.c (print_help): Align --trust-server-names help text with
64         the rest of the text.
65         Suggested by: Mike Frysinger  <vapier@gentoo.org>.
66
67 2010-08-20  Giuseppe Scrivano  <gscrivano@gnu.org>
68
69         * convert.c: Include "iri.h".
70         (convert_links_in_hashtable): Parse the url, if
71         necessary, before check if it is present in the dowloaded url
72         map.
73         Reported by: <sk.random@gmail.com>.
74
75 2010-08-09  Giuseppe Scrivano  <gscrivano@gnu.org>
76
77         Fix a problem with HTTP/1.0 proxies.
78         * http.c (gethttp): Specify the connection header when keep alive
79         connections are not used.
80
81         Use persistent connections with proxies supporting them.
82         * http.c (gethttp): Specify Proxy-Connection to the HTTP proxy.
83
84 2010-08-06  Giuseppe Scrivano  <gscrivano@gnu.org>
85
86         * css-url.c (get_uri_string): Skip empty urls.
87
88 2010-07-25  John Trengrove  <jtrengrove@gmail.com> (tiny change)
89
90         * ftp.h: Added enum `parsetype'.  Modified struct to hold parsetype.
91
92         * ftp-ls.c (ftp_parse_unix_ls): Default to TT_DAY. Change to TT_HOUR_MIN
93         if hours/minutes parsed.
94         (ftp_parse_winnt_ls): Default to TT_HOUR_MIN.
95         (ftp_parse_vms_ls): Default to TT_HOUR_MIN.
96         (ftp_index): Print only if fileinfo struct value ttype set to TT_HOUR_MIN.
97
98 2010-07-30  Giuseppe Scrivano  <gscrivano@gnu.org>
99
100         * html-url.h (struct map_context): Remove member `tail'.
101
102         * html-url.c (append_url): Append the new url ordered by `position'.
103         (get_urls_html): Do not initialize `ctx.tail'.
104
105         * css-url.c (get_urls_css_file): Do not initialize `ctx.tail'.
106
107 2010-07-29  Giuseppe Scrivano  <gscrivano@gnu.org>
108
109         * gnutls.c (wgnutls_peek): Don't read more data if the buffered peek
110         data is sufficient.
111
112 2010-07-28  Giuseppe Scrivano  <gscrivano@gnu.org>
113
114         * http.h (http_loop): Add new argument `original_url'
115         * http.c (http_loop): Add new argument `original_url'.  Use
116         `original_url' to get a filename if `trustservernames' is false.
117
118         * init.c (commands): Add "trustservernames".
119
120         * options.h (library): Add variable `trustservernames'.
121
122         * main.c (option_data): Add trust-server-names.
123         (print_help): Describe --trust-server-names.
124
125         * retr.c (retrieve_url): Pass new argument to `http_loop'.
126
127 2010-07-20  Alan Jenkins <alan-jenkins@tuffmail.co.uk> (tiny change)
128
129         * http.c (gethttp): Check content-length was set before trying to
130         compare it with the already downloded filesize.
131
132 2010-07-20  Leonid Petrov <nouser@lpetrov.net>
133
134         * ftp.c (getftp): Don't attempt to retrieve the file if it is already
135         completely.
136         (ftp_loop_internal): Force the length to be zero for symlinks.
137
138 2010-07-18  Giuseppe Scrivano  <gscrivano@gnu.org>
139
140         * http.c (gethttp): If -N is used, don't exit immediately if the content
141         length is less or equal than the existing file size.  Specify "Range"
142         only if -N is not used.
143         Reported by: Caleb Cushing <xenoterracide@gmail.com>.
144
145 2010-07-14  Giuseppe Scrivano  <gscrivano@gnu.org>
146
147         * ftp.c (max): Remove definition.
148         (getftp): New variable `got_expected_bytes'.  Let `expected_bytes' be
149         the value SIZE returns, otherwise use the bytes count returned by RETR.
150         Suggested by Daniel Stenberg <daniel@haxx.se>.
151
152 2010-07-14  Giuseppe Scrivano  <gscrivano@gnu.org>
153
154         * ftp.c (max): Add definition.
155         (getftp): Consider for `expected_bytes' the greatest value between the
156         bytes count returned by SIZE and the bytes count returned by RETR.
157         Reported by: Jozua <jozua@sparky.za.net>.
158
159 2010-07-11  Giuseppe Scrivano  <gscrivano@gnu.org>
160
161         * http.c (http_loop): New variable `force_full_retrieve'.  If the remote
162         file is newer that the local one then inhibit -c.
163         Reported by: Caleb Cushing <xenoterracide@gmail.com>.
164
165 2010-07-09  Giuseppe Scrivano  <gscrivano@gnu.org>
166
167         * css-url.c (get_urls_css_file): Use `wget_read_file' instead of
168         `read_file'.  Use `wget_read_file_free' instead of `read_file_free'.
169         * convert.c (convert_links): Likewise.
170         * html-url.c (get_urls_html, get_urls_file): Likewise.
171         * res.c (res_parse_from_file): Likewise.
172
173         * utils.h: Rename `read_file' to `wget_read_file'.  Rename
174         `read_file_free' to `wget_read_file_free'.
175
176         * utils.c (wget_read_file): Renamed from `read_file'.
177         (wget_read_file_free): Renamed from `read_file_free'.
178
179 2010-07-05  Giuseppe Scrivano  <gscrivano@gnu.org>
180
181         * gnutls.c (ssl_init): New local variables `ca_directory' and `dir'.
182         Load default root certificates under the `ca_directory' directory.
183
184 2010-07-03  Giuseppe Scrivano  <gscrivano@gnu.org>
185
186         * gnutls.c (ssl_connect_wget): New local variable `allowed_protocols'.
187         Honor the --secure-protocol flag.
188
189 2010-06-20  Giuseppe Scrivano  <gscrivano@gnu.org>
190
191         * main.c (print_help): Fix help string for --random-wait.  Its range is
192         [0.5*wait, 1.5*wait) not [0, 2*wait).
193         Reported by: Tom Mizutani <gombei1970@gmail.com>.
194
195 2010-06-15  Giuseppe Scrivano  <gscrivano@gnu.org>
196
197         * gnutls.c [WIN32]: Include "w32sock.h".
198         (FD_TO_SOCKET): Add definition.
199         (ssl_connect_wget): Get the real socket handle by FD_TO_SOCKET.
200         Define FD_TO_SOCKET if it is not yet defined.
201
202 2010-06-14  Giuseppe Scrivano  <gscrivano@gnu.org>
203
204         * gnutls.c: Include <stdlib.h>.
205         (struct wgnutls_transport_context): Remove `peekstart'.
206         (ssl_connect_wget): Renamed from `ssl_connect'.
207         (wgnutls_poll): New variable `ctx'.
208         (wgnutls_read): Don't use `ctx->peekstart'.
209         (wgnutls_peek): Likewise.  Don't attempt to read if there is not
210         ready data.
211
212 2010-06-14  Giuseppe Scrivano  <gscrivano@gnu.org>
213         * http.c (http_loop): Always send a HEAD request when -N is used
214         together with --content-disposition.
215         Reported by: Jochen Roderburg <Roderburg@Uni-Koeln.DE>.
216
217 2010-06-10  Muthu Subramanian K <muthusuba@gmail.com> (tiny change)
218
219         * http.c (http_loop): Increase `total_downloaded_bytes' by
220         `hstat.rd_size', not `hstat.len'.
221
222 2010-06-10  Giuseppe Scrivano  <gscrivano@gnu.org>
223
224         * main.c (print_version): Drop the current maintainer line.
225
226 2010-06-10  Giuseppe Scrivano  <gscrivano@gnu.org>
227
228         * Makefile.am (build_info.c): Generate the `build_info.c' file under
229         the build directory.
230         Patch by: Daniel Stenberg <daniel@haxx.se>.
231
232 2010-06-03  Giuseppe Scrivano  <gscrivano@gnu.org>
233
234         * http.c (http_loop): Do not send a HEAD request before the GET request
235         when --content-disposition is used.
236         Reported by: alex_wh@mail.ru.
237
238 2010-05-31  Giuseppe Scrivano  <gscrivano@gnu.org>
239
240         * css.l: Use option "nounput".
241         (YY_NO_INPUT): Add macro definition.
242
243 2010-05-31  Giuseppe Scrivano  <gscrivano@gnu.org>
244
245         * html-parse.c (map_html_tags): Fix condition for closed tag.  Handle
246         the case '>' is not specified after '/'.
247
248 2010-05-31  Giuseppe Scrivano  <gscrivano@gnu.org>
249
250         * sysdep.h (_SVID_SOURCE): Remove definition.
251         (_BSD_SOURCE): Remove definition.
252
253 2010-05-31  Giuseppe Scrivano  <gscrivano@gnu.org>
254
255         * recur.c (retrieve_tree): Remove variable `up_error_code'.
256
257         * iri.c (open_locale_to_utf8): Remove function.
258
259 2010-05-30  Giuseppe Scrivano  <gscrivano@gnu.org>
260
261         * html-parse.c (NAME_CHAR_P): Consider '<' an invalid character.
262         (advance_declaration): Close the tag if '<' is found.
263         (map_html_tags): Likewise.
264
265 2010-05-27  Giuseppe Scrivano  <gscrivano@gnu.org>
266
267         * main.c (print_usage): Accept a new parameter `error'.
268         (main): Print diagnostic messages to stderr, not stdout.
269
270 2010-05-27  Giuseppe Scrivano  <gscrivano@gnu.org>
271
272         * Makefile.am (wget_SOURCES): Remove `snprintf.c'.
273
274         * snprintf.c: Remove file.
275
276 2010-05-27  Giuseppe Scrivano  <gscrivano@gnu.org>
277
278         * main.c (main): Exit with failure when -k is specified and -O is not
279         a regular file.
280
281 2010-05-27  Giuseppe Scrivano  <gscrivano@gnu.org>
282
283         * http.c (gethttp): Consider new cookies retrieved when the
284         authorization fails.
285
286 2010-05-25  Giuseppe Scrivano  <gscrivano@gnu.org>
287
288         * host.c (sufmatch): Do not consider zero length entries.
289
290         * http.c (H_10X): New macro.
291         (gethttp): Silently ignore 1xx responses.
292
293 2010-05-24  Giuseppe Scrivano  <gscrivano@gnu.org>
294
295         * iri.h (dummy_iri): Define static.
296
297         * css-tokens.h (css_tokens): Remove variable.
298
299 2010-05-23  Giuseppe Scrivano  <gscrivano@gnu.org>
300
301         * http.c (http_atotm): Count the NUL character when copying the locale
302         string.
303         Reported by: Florian Weimer <fw@deneb.enyo.de>
304
305 2010-05-16  Giuseppe Scrivano  <gscrivano@gnu.org>
306
307         * Makefile.am (LDADD): Remove MD5_LDADD.
308         (MD5_LDADD): Remove definition.
309         (AM_CPPFLAGS): Remove MD5_CPPFLAGS.
310         (version.c): Remove dependency from MD5_LDADD.
311         (../md5/libmd5.a): Remove rule.
312
313         * ftp-opie.c: Include "md5.h".  Do not include "gen-md5.h".
314         (skey_response): New variable ctx.  Use md5 functions from the gnulib
315         module instead of functions defined previously in the "gen-md5.h" file.
316
317         * gen-md5.h: Remove file.
318         * gen-md5.c: Likewise.
319
320         * http.c: Include "md5.h".  Do not include "gen-md5.h".
321         (digest_authentication_encode): New variable ctx.  Use md5 functions
322         from the gnulib module instead of functions defined previously in the
323         "gen-md5.h" file.
324
325 2010-05-15  Giuseppe Scrivano  <gscrivano@gnu.org>
326
327         * Makefile.am: Quote any path using $(top_srcdir) or $(top_builddir).
328         (version.c): Remove dependency from configure.ac and Makefile.am.
329
330         * css.l: Include "wget.h".
331
332 2010-05-08  Giuseppe Scrivano  <gscrivano@gnu.org>
333
334         * Makefile.am: Update copyright years.
335
336         * cmpt.c: Likewise.
337
338         * connect.h: Likewise.
339
340         * convert.c: Likewise.
341
342         * convert.h: Likewise.
343
344         * cookies.c: Likewise.
345
346         * cookies.h: Likewise.
347
348         * css-tokens.h: Likewise.
349
350         * css-url.c: Likewise.
351
352         * css-url.h: Likewise.
353
354         * css.l: Likewise.
355
356         * exits.c: Likewise.
357
358         * exits.h: Likewise.
359
360         * ftp-basic.c: Likewise.
361
362         * ftp-ls.c: Likewise.
363
364         * ftp-opie.c: Likewise.
365
366         * ftp.c: Likewise.
367
368         * ftp.h: Likewise.
369
370         * gen-md5.c: Likewise.
371
372         * gen-md5.h: Likewise.
373
374         * gettext.h: Likewise.
375
376         * gnutls.c: Likewise.
377
378         * hash.c: Likewise.
379
380         * hash.h: Likewise.
381
382         * host.c: Likewise.
383
384         * host.h: Likewise.
385         * html-parse.c: Likewise.
386
387         * html-parse.h: Likewise.
388
389         * html-url.c: Likewise.
390
391         * html-url.h: Likewise.
392
393         * http-ntlm.c: Likewise.
394
395         * http-ntlm.h: Likewise.
396
397         * http.c: Likewise.
398
399         * http.h: Likewise.
400
401         * init.c: Likewise.
402
403         * init.h: Likewise.
404
405         * iri.c: Likewise.
406
407         * iri.h: Likewise.
408
409         * log.c: Likewise.
410
411         * log.h: Likewise.
412
413         * main.c: Likewise.
414
415         * mswindows.c: Likewise.
416
417         * mswindows.h: Likewise.
418
419         * netrc.c: Likewise.
420
421         * netrc.h: Likewise.
422
423         * openssl.c: Likewise.
424
425         * options.h: Likewise.
426         * progress.c: Likewise.
427
428         * progress.h: Likewise.
429
430         * ptimer.c: Likewise.
431
432         * ptimer.h: Likewise.
433
434         * recur.c: Likewise.
435
436         * recur.h: Likewise.
437
438         * res.c: Likewise.
439
440         * res.h: Likewise.
441
442         * retr.c: Likewise.
443
444         * retr.h: Likewise.
445
446         * spider.c: Likewise.
447
448         * spider.h: Likewise.
449
450         * ssl.h: Likewise.
451
452         * sysdep.h: Likewise.
453
454         * test.c: Likewise.
455
456         * test.h: Likewise.
457
458         * url.c: Likewise.
459
460         * url.h: Likewise.
461
462         * utils.c: Likewise.
463
464         * utils.h: Likewise.
465
466         * wget.h: Likewise.
467
468 2010-05-07  Giuseppe Scrivano  <gscrivano@gnu.org>
469
470         * gnutls.c (wgnutls_close): Use always `close', not `closesocket'.
471
472         * openssl.c (openssl_close): Use always `close', not `closesocket'.
473         (ssl_connect_wget): Get the real socket handle by FD_TO_SOCKET.
474         Define FD_TO_SOCKET if it is not yet defined.
475
476         * Makefile.am (libunittest_a_CPPFLAGS): Add -I$(top_builddir)/lib.
477
478         * mswindows.h: Always include <winsock2.h> and <ws2tcpip.h>.  Do not
479         include <winsock.h>.
480         [! INHIBIT_WRAP]: Remove macro's socket, bind, connect, accept, recv,
481         send, select, getsockname, getpeername, setsockopt, closesocket.
482         Remove wrapped_socket, wrapped_bind, wrapped_connect, wrapped_listen,
483         wrapped_accept, wrapped_recv, wrapped_send, wrapped_select,
484         wrapped_getsockname, wrapped_getpeername, wrapped_setsockopt,
485         wrapped_closesocket prototypes.
486
487         * mswindows.c:  Remove wrapped_socket, wrapped_bind, wrapped_connect,
488         wrapped_listen, wrapped_accept, wrapped_recv, wrapped_send,
489         wrapped_select, wrapped_getsockname, wrapped_getpeername,
490         wrapped_setsockopt, wrapped_closesocket functions.  Remove WRAP macro.
491
492         * host.h [WINDOWS]: Include <winsock2.h> not <winsock.h>.
493
494         * connect.c: Include <sys/socket.h> and <sys/select.h> on any platform,
495         gnulib ensures they exist.  Remove `read', `write', `close' macros.
496
497         * Makefile.am: Copy build_info.c.in only if we are working in a VPATH.
498         (AM_CPPFLAGS): Add directory with generated gnulib files.
499
500 2010-05-06  Giuseppe Scrivano  <gscrivano@gnu.org>
501
502         * Makefile.am (build_info.c): Generate build_info.c in the builddir,
503         not srcdir.
504
505 2010-05-05  Giuseppe Scrivano  <gscrivano@gnu.org>
506
507         * http.c (gethttp): Give a nicer message on a malformed status line.
508
509 2010-05-04  Giuseppe Scrivano  <gscrivano@gnu.org>
510
511         * http.c (gethttp): Check `resp_status' return code and handle
512         errors.
513
514 2010-05-01  Giuseppe Scrivano <gscrivano@gnu.org>
515
516         * http.c (request_send): Specify 1.1 as HTTP version for requests.
517         (skip_short_body): Accept new parameter `chunked'.  New variable
518         `remaining_chunk_size'.  Handle the chunked transfer encoding.
519         (gethttp): New variable `chunked_transfer_encoding`.  Set `keepalive'
520         by default to true.  Check if the server is using the chunked transfer
521         encoding.
522
523         * retr.h: Define `rb_chunked_transfer_encoding'.
524
525         * retr.c (fd_read_body): New variable `chunked'.  New variable
526         `remaining_chunk_size'.  Handle the chunked transfer encoding.
527
528 2010-03-04  Steven Schubiger  <stsc@member.fsf.org>
529
530         * ftp.c (ftp_loop_internal): Omit input file from being
531         deleted after retrieval.
532
533         * retr.c (input_file_url): New function.
534
535         * retr.h: Add declaration for input_file_url.
536
537 2010-03-02  Steven Schubiger  <stsc@member.fsf.org>
538
539         * retr.c (retrieve_from_file): Improve checking for a URL
540         by invoking url_valid_scheme instead of url_has_scheme.
541
542         * url.c (url_valid_scheme): New function.
543
544         * url.h: Add declaration for url_valid_scheme.
545
546 2010-03-02  Steven Schubiger  <stsc@member.fsf.org>
547
548         * retr.c (retrieve_from_file): Free memory of input file.
549
550 2010-03-01  Steven Schubiger  <stsc@member.fsf.org>
551
552         * retr.c (retrieve_url): Retrieve the local filename from ftp_loop.
553         (retrieve_from_file): Return if there's no input file.
554
555         * ftp.c (ftp_loop_internal): Duplicate the local filename into
556         retrieve_url's scope when a valid reference is being passed.
557         (ftp_loop): Call ftp_loop_internal here with passing a
558         reference to the local filename, elsewhere with NULL.
559
560         * ftp.h: Adjust declaration of ftp_loop.
561
562 2010-01-27  Paul Townsend  <aab@purdue.edu>  (tiny change)
563
564         * retr.c (fd_read_body): Be sure to measure timer when time has
565         elapsed, too, not just when we've made progress.
566
567 2010-01-13  Micah Cowan  <micah@cowan.name>
568
569         * openssl.c: Fixed some mixed declarations-and-code.
570
571 2010-01-09  Micah Cowan  <micah@cowan.name>
572
573         * init.c, main.c, http.c, ftp.c, options.h: Renamed
574         --no-match-server-timestamps to --no-use-server-timestamps, and
575         add it to print_help.
576
577 2010-01-09  David Holman  <holman.david@gmail.com>  (tiny change)
578
579         * init.c, main.c, http.c, ftp.c, options.h: Added support for
580         --no-match-server-timestamps.
581
582 2009-12-03  Peter Rosin  <peda@lysator.liu.se>
583
584         * snprintf.c (dopr): Output %p as unsigned.
585
586 2010-01-09  Jeremy Olexa  <darkside@gentoo.org>  (tiny change)
587
588         * init.c: Deal with systems which provide PATH_MAX in
589         sys/param.h rather than limits.h.
590
591 2009-10-09  Steven Schweda  <sms@antinode.info>
592
593         * utils.c: Added characters " : \ | to the list of normal
594         caret-escaped (ODS5) characters in the char_prop[] table.
595
596 2009-09-22  Arvind Jamuna Dixit  <ardsrk@gmail.com>
597
598         * http.c (extract_param, parse_content_disposition): Support
599         RFC 2231 while parsing Content-Disposition header
600
601 2009-10-24  Petr Pisar  <petr.pisar@atlas.cz>
602
603         * openssl.c: Implement support for (multiple) subjectAltNames in
604         X509 certificates, not just the commonName.
605
606 2009-10-09  Micah Cowan  <micah@cowan.name>
607
608         * main.c: Fix declaration of compiled_features.
609
610         * build_info.c.in: Adapt to new input format. Added a check for
611         large-file support. Replaced the "openssl" and "gnutls"
612         advertisements with a single "ssl/foo" advertisement.
613
614 2009-09-30  Micah Cowan  <micah@cowan.name>
615
616         * sysdep.h: Unconditionally include stdbool.h (gnulib has it for
617         systems that don't supply it.)
618
619         * vms.c: Added functions vms_basename(), used to extract the
620         bare executable name from argv[0], and vms_getpass(), a
621         VMS-specific replacement for GNU getpass().
622
623          vms.c: Added global string constants: compilation_string
624         (NULL), link_string (NULL), and version_string (real).
625
626 2009-09-24  Micah Cowan  <micah@cowan.name>
627
628         * vms.c: Moved from vms/vms.c.
629
630         * sysdep.h: Use proper prototypes for snprintf, vsnprintf (thanks
631         to Steven Schweda).
632
633 2009-09-24  Steven Schweda  <sms@antinode.info>
634
635         * main.c (print_version): Remove VMS-conditional build info
636         string; the new VMS builders use OS_TYPE.
637
638         * ftp.c (getftp): Fix accidental use of target -> targ.
639
640 2009-09-24  Micah Cowan  <micah@cowan.name>
641
642         * host.c (host_errstr): host_errstr should return const char *.
643
644 2009-09-22  Micah Cowan  <micah@cowan.name>
645
646         * Makefile.am (version.c): Explicitly tell Mercurial where the
647         top-source repository should be, so it doesn't accidentally use
648         the repository for a containing directory (for instance, if the
649         user's home directory is managed by a Mercurial repo). Also
650         ensures we find the repository, even if the build directory is
651         outside the source directory.
652
653         * wget.h: define WINDOWS if _WIN32 or __WIN32__ is defined, but
654         not __CYGWIN__.
655
656         * mswindows.c (xsleep): Check for availability of the sleep
657         function, in addition to the usleep function.
658         (get_winsock_error, windows_strerror): Removed (gnulib already
659         supplies this functionality).
660
661         * mswindows.h [NEED_GAI_STRERROR]: define gai_strerror
662         to (gnulib's) strerror, rather than windows_strerror. Removed
663         error macro definitions provided by gnulib.
664         (windows_strerror): Removed (gnulib already supplies this
665         functionality).
666
667         * host.c: Don't declare h_errno when building on Windows.
668
669         * Makefile.am (LIBS): Added @W32LIBS@.
670         (EXTRA_wget_SOURCES): Removed (it's in LIBOBJ now).
671         (version.c): Removed dependency on $(LDADD), since it may include
672         dependencies that are not part of the Wget sources (-lwsock32, for
673         instance).
674
675         * openssl.c (ssl_check_certificate): Avoid reusing the same buffer
676         space for successive quoted arguments. Thanks to Steven Schweda
677         for pointing out the problem.
678
679 2009-09-21  Micah Cowan  <micah@cowan.name>
680
681         * progress.c (update_speed_ring): "the the" -> "the".
682
683         * css-url.c, iri.c, mswindows.c: Removed assert.h inclusion (not
684         using it).
685
686 2009-09-11  Steven Schweda  <sms@antinode.info>
687
688         * utils.c, utils.h (fopen_excl): Make second argument an int,
689         rather than a bool (so it can handle the appropriate VMS version
690         of the flag).
691
692         * main.c (print_version): Don't print LOCALEDIR unless NLS is
693         enabled.
694
695         * http.c (gethttp): Pass FOPEN_BIN_FLAG, instead of true.
696
697         * ftp.c (ftp_retrieve_glob): Cast strcmp to assign to cmp, for a
698         silly HP build environment.
699
700 2009-09-08  Steven Schubiger  <stsc@member.fsf.org>
701
702         * main.c, init.c: Mark the --preserve-permissions and
703         --html-extension option as deprecated.
704
705 2009-09-06  Micah Cowan  <micah@cowan.name>
706
707         * ftp.c (getftp, ftp_loop_internal): Separate "len" input/output
708         parameter (with different meanings for input and output), into two
709         separate parameters, one input (passed_expected_bytes) and one
710         output (qtyread). Fixes bug #26870.
711
712 2009-09-05  Steven Schubiger  <stsc@member.fsf.org>
713
714         * retr.h: Declare set_local_file() to avoid build warnings.
715
716 2009-09-05  Gisle Vanem  <gvanem@broadpark.no>
717
718         * connect.c, init.c, main.c, openssl.c, options.h:  Replace
719         "ifdef MSDOS" with "ifdef USE_WATT32" since DOS-targets in fact
720         use the Watt-32 tcp/ip stack.
721
722 2009-09-04  Micah Cowan  <micah@cowan.name>
723
724         * Makefile.am: Move build_info.c to wget_SOURCES from
725         nodist_wget_SOURCES, reduce dependencies, and invoke build_info.pl
726         in its new home, $(top_srcdir)/build-aux.
727
728 2009-09-03  Micah Cowan  <micah@cowan.name>
729
730         * ftp-ls.c (ftp_parse_vms_ls): Replace use of localtime_r with
731         localtime, as not all platforms have localtime_r.
732
733         * Makefile.am (wget_SOURCES): Rearranged some of the file order,
734         so .c files and .h files are apart. Added gettext.h, so that it
735         shows up in the dist.
736
737 2009-09-02  Micah Cowan  <micah@cowan.name>
738
739         * gettext.h: Refreshed from gettext 0.17.
740
741         * test.c: Added definition of program_name variable, required by
742         lib/error.c (libgnu.a). Doesn't cause problems until you try to
743         build on a non-GNU system...
744
745         * build_info.c.in: Removed useless "+gettext" feature ad.
746
747 2009-08-29  Steven Schubiger  <stsc@member.fsf.org>
748
749         * convert.c (local_quote_string): Percent-encode semicolons
750         in local file strings.
751
752 2009-08-27  Micah Cowan  <micah@cowan.name>
753
754         * wget.h (uerr_t): added new VERIFCERTERR code for SSL certificate
755         problems. Marked exit codes that are defined but never used (at
756         least, the ones I could find).
757
758         * retr.c, retr.h (retrieve_url): Added a new boolean argument to
759         determine whether an exit status should be recorded.
760         (retrieve_from_file): Adjust to new retrieve_url signature.
761
762         * res.c (res_retrieve_file): Don't have retrieve_url record an
763         exit status for robots.txt.
764
765         * recur.c (retrieve_tree): Adjust to new retrieve_url signature.
766
767         * main.c (main): Use the exit status stored by retrieve_url.
768
769         * http.c (gethttp): Distinguish certificate verification problems
770         from SSL connection issues.
771         (http_loop): Handle newly-created VERIFCERTERR error code.
772
773         * exits.c, exits.h: Newly added.
774
775         * Makefile.am (wget_SOURCES): Add exits.c and exits.h.
776
777 2009-08-27  Micah Cowan  <micah@cowan.name>
778
779         * http.c (gethttp): Make sure Wget heeds cookies when they
780         are sent with a 401 response; or any other sort of response for
781         that matter (#26775).
782
783 2009-08-19  Micah Cowan  <micah@cowan.name>
784
785         * openssl.c (ssl_check_certificate): Only warn about an attack if
786         the hostname would otherwise have matched. Also some formatting
787         cleanup.
788
789 2009-08-19  Joao Ferreira  <joao@joaoff.com>
790
791         * openssl.c (ssl_check_certificate): Detect embedded NUL
792         characters in the SSL certificate common name.
793
794 2009-08-17  Tony Lewis  <tlewis@exelana.com>
795
796         * http.c (gethttp): Ensure that we parse Content-Length before we
797         attempt to refer to its value. Without this fix, NTLM support was
798         completely buggered. #27192
799
800 2009-08-09  Michael Baeuerle  <michael.baeuerle@gmx.net>
801
802         * ftp.c: #include <strings.h> for strcasecmp.
803
804 2009-07-28  Micah Cowan  <micah@cowan.name>
805
806         * main.c (option_data): Rename --html-extension to
807         --adjust-extension.
808         (print_help): Ditto.
809
810         * options.h (struct option): Rename html_extension to
811         adjust_extension.
812         * http.c (gethttp): Ditto.
813         * convert.c (local_quote_string): Ditto.
814
815         * init.c (commands): Add "adjustextension", and reflect rename
816         change for opt.adjust_extension, for both "adjustextension" and
817         "htmlextension".
818
819 2009-07-27  Micah Cowan  <micah@cowan.name>
820
821         * options.h (struct options): Added restrict_files_nonascii
822         boolean field.
823
824         * url.c (FILE_CHAR_TEST): Add check for chars outside the ASCII
825         range.
826
827         * init.c (defaults): Add restrict_files_nonascii to initialization.
828         (cmd_spec_restrict_file_names): Allow parsing of "ascii" keyword.
829
830 2009-07-27  Marcel Telka  <marcel@telka.sk>
831
832         * iri.c (do_conversion): Typo: invalide -> invalid
833
834 2009-07-27  Petr Pisar  <petr.pisar@atlas.cz>
835
836         * main.c (print_help): Fixed a couple typos.
837
838 2009-07-26  Micah Cowan  <micah@cowan.name>
839
840         * main.c (option_data): Rename --locale option to --local-encoding
841         (print_help): Document --no-iri, --local-encoding, and
842         --remote-encoding, within usage message. Remove defunct
843         --preserve-permissions.
844
845 2009-07-23  Micah Cowan  <micah@cowan.name>
846
847         * progress.c (get_eta): Change "Translation note" in comment to
848         "TRANSLATORS", so it actually appears in wget.pot.
849
850 2009-07-06  Micah Cowan  <micah@cowan.name>
851
852         * main.c (print_help): Improve documentation of --base.
853
854 2009-07-05  Micah Cowan  <micah@cowan.name>
855
856         * html-url.c (tag_handle_meta): Handle meta name="robots"
857         properly: deal with whitespace, commas after...
858
859         * netrc.c (parse_netrc): Rename local-scope variable "quote" to
860         "qmark", to avoid conflict with the function name.
861
862 2009-07-05  Petr Pisar  <petr.pisar@atlas.cz>
863
864         * main.c (print_version): Mark initial line for translation, along
865         with (env), (user), and (system). Change copyright year to 2009.
866
867         * http.c (http_loop): Space after colon.
868
869         * gnutls.c (ssl_check_certificate): Use quote function, rather
870         than explicit quotes.
871
872 2009-07-05  Micah Cowan  <micah@cowan.name>
873
874         * Makefile.am (version.c): Add dependency on configure.ac.
875
876         * iri.c: Mark some strings for translation.
877
878 2009-07-04  Steven Schweda  <sms@antinode.info>
879
880         * wget.h (ORIG_SFX): Macro added, to supply an alternative "_orig"
881         suffix on VMS.
882
883         * connect.c, host.c, host.h, main.c: Include "vms_ip.h" rather
884         than <netdb.h> on VMS systems.
885
886         * convert.c (write_backup_file): Use "_orig" rather than ".orig"
887         on VMS.
888
889         * ftp-basic.c (ftp_list): Don't use LIST -a on VMS servers.
890
891         * ftp.c [__VMS]: Include "vms.h"
892         * ftp.c (getftp): Disable some unhelpful "for VMS" code. Pass the
893         OS type to ftp_list.
894         (getftp) [__VMS]: Alter the filename as required, and invoke fopen
895         with extra optional arguments.
896         (ftp_retrieve_list): Set permissions before setting the times.
897
898         * ftp-ls.c [__VMS]: Various improvements.
899
900         * http.c (SET_USER_AGENT): Added. Include operating-system info in
901         the User-Agent header.
902         (gethttp): Use ORIG_SFX macro.
903         (gethttp) [__VMS]: invoke fopen with extra arguments to
904         communicate file type.
905         (http_loop): Add cast to time_t.
906
907         * init.c (wgetrc_user_file_name) [__VMS]: Adjustments for where to
908         find the .wgetrc.
909
910         * log.c: Adjustments to improve handling of log files on VMS.
911
912         * main.c [__VMS]: Added --ftp-stmlf option (and associated
913         documentation). Adjust description of backup-suffixes, as they now
914         differ for VMS.
915         (print_help, print_version): Include OS type in version
916         information.
917         (main) [__VMS]: Invoke fopen with extra options, to specify file
918         type information.
919
920         * netrc.c (search_netrc) [__VMS]: Fix .netrc-finding.
921
922         * openssl.c, openssl.h (ssl_connect_wget): Renamed from ssl_connect.
923
924         * options.h (struct options): Add ftp_stmlf field.
925
926         * retr.c (write_data) [__VMS]: Avoid fflush.
927
928         * url.c [__VMS]: Include vms.h.
929         * url.c (url_file_name) [__VMS]: Handle naming as required for VMS.
930
931         * utils.c [__VMS]: Include vms.h. Various added facilities for VMS
932         needs.
933
934 2009-07-04  Micah Cowan  <micah@cowan.name>
935
936         * main.c (print_version): Allow localization of the version-info
937         labels, eschew attempts at alignment (which is complicated when
938         handling translated strings), and avoid using printf() with
939         variable-stored format strings that lack conversion
940         specifications.
941         (format_and_print_line): For similar reasons, don't calculate
942         line-continuation tabulation based on the number of bytes in a
943         string.
944
945 2009-07-04  Steven Schubiger  <stsc@member.fsf.org>
946
947         * url.c (url_parse): If an URL scheme is invalid, distinguish
948         between an unsupported or missing scheme.
949
950         * url.c: Add a "missing scheme" entry to parse_errors.
951
952 2009-07-03  Micah Cowan  <micah@cowan.name>
953
954         * iri.h (iri_dup): Provide macro definition for when IRIs are
955         disabled.
956
957         * Makefile.am (LIBS): Added @LIBICONV@.
958         (wget_SOURCES): Added iri.h.
959         (EXTRA_wget_SOURCES): Added iri.c, so it gets packaged even if IRI
960         support was disabled.
961
962 2009-07-02  Micah Cowan  <micah@cowan.name>
963
964         * recur.c (url_enqueue): Quote enqueue/dequeue debug messages.
965
966         * html-url.c (append_url): Change "merge()" quoting style from
967         locale_quoting_style to escape_quoting_style.
968
969 2009-07-01  Micah Cowan  <micah@cowan.name>
970
971         * retr.c (retrieve_url): Use the existing "redirect" label,
972         instead of superfluous "second_try". Removed no-longer-accurate
973         debug statement. Use the "newloc" parameter to store the fallback
974         URL, when IRI version was rejected.
975
976         * recur.c (retrieve_tree): Always use the parsed URL for tracking
977         the Referer, since that's the one we actually requested (if
978         there's a difference in terms of percent-encodings and such).
979
980 2009-07-01  Steven Schubiger  <stsc@member.fsf.org>
981
982         * Makefile.am: Add a rule to generate build_info.c and list
983         the build_info.c.in file in EXTRA_DIST. Adjust elsewhere
984         where needed.
985
986         * build_info.c: Remove this static source file.
987
988         * build_info.c.in: Data for generation of build_info.c.
989
990 2009-06-29  Micah Cowan  <micah@cowan.name>
991
992         * html-url.c (append_url): Quote some more arguments that might
993         contain characters that are inappropriate to display for the
994         current locale.
995
996         * retr.c (retrieve_from_file): Be sure to pass iri information
997         when parsing an input-fle url, and be sure to hand a clean iri
998         struct, off to retrieve_tree and retrieve_url.
999
1000         * iri.c, iri.h (iri_dup): Added.
1001
1002         * retr.c (retrieve_url): Re-parse for IRI fallback.
1003
1004         * main.c (main): Set up iri before the url_parse invocation (so we
1005         can use it).
1006
1007 2009-06-20  Jay Krell  <jay.krell@cornell.edu>
1008
1009         * sysdep.h (_ALL_SOURCE): (small change) Define the _ALL_SOURCE
1010         macro on INTERIX systems. (I switched the location from ftp.c to
1011         sysdep.h --mjc)
1012
1013 2009-06-15  Micah Cowan  <micah@cowan.name>
1014
1015         * ftp.c (getftp): If we can't accept the connection, return
1016         CONERROR, not whatever the contents of err happens to be. Fixes
1017         bug #25015.
1018
1019         * retr.c (fd_read_body): Make both args to progress_create
1020         consistent, resulting in an accurate progress display. Fixes bug
1021         #24948.
1022
1023 2009-06-14  Micah Cowan  <micah@cowan.name>
1024
1025         * Makefile.am (wget_SOURCES): css-tokens.h needs to ship with
1026         dist, too.
1027
1028 2009-06-13  Micah Cowan  <micah@cowan.name>
1029
1030         * init.c: Rename setval_internal_wrapper to setval_internal_tilde,
1031         ensure we don't "replace" the tilde unless it's actually
1032         present. Clean up some minor GNU style issues.
1033
1034 2009-06-13  Julien Pichon  <julienpichon7@gmail.com>
1035
1036         * init.c: Handle tilde-expansion in wgetrc commands, without
1037         resorting to setting/unsetting globals to change behavior in one
1038         call location.
1039
1040 2009-06-12  Micah Cowan  <micah@cowan.name>
1041
1042         * host.c: Include <sys/types.h> before <sys/socket.h>. Not
1043         required by POSIX any more, but some older systems (such as
1044         FreeBSD 4.1) still need it, and it doesn't seem like it could
1045         hurt...
1046
1047         * build_info.c (library): Handle "https" as a feature in its own
1048         right, apart from "gnutls" and "openssl".
1049
1050         * host.c: Declare h_errno if no declaration is provided. Idea
1051         thanks to Maciej W. Rozycki.
1052
1053 2009-06-11  Xin Zou  <zouxin2008@gmail.com>
1054
1055         * http.c (gethttp): Fix some memory leaks.
1056
1057 2009-06-11  Micah Cowan  <micah@cowan.name>
1058
1059         * http.c (http_atotm): Handle potential for setlocale's return
1060         value to be static storage. Thanks to Benjamin Wolsey
1061         <bwy@benjaminwolsey.de>.
1062
1063         * sysdep.h: Need NAMESPACE_TWEAKS on non-Linux glibc-based
1064         systems, too. Thanks to Robert Millan.
1065
1066 2009-05-28  Steven Schubiger  <stsc@member.fsf.org>
1067
1068         * ftp.c (ftp_get_listing): Update the "listing file"
1069         string after calling ftp_loop_internal().
1070
1071 2009-05-27  Steven Schubiger  <stsc@member.fsf.org>
1072
1073         * ftp.c (ftp_get_listing): Duplicate the "listing file"
1074         string to avoid memory corruption when FOPEN_EXCL_ERR is
1075         encountered.
1076
1077 2009-05-17  Steven Schubiger  <stsc@member.fsf.org>
1078
1079         * progress.c (eta_to_human_short): Fix the remaining hours
1080         to be displayed. Spotted by Tadeu Martins (#26411).
1081
1082 2009-04-24  Micah Cowan  <micah@cowan.name>
1083
1084         * hash.c: Change stdint.h inclusion to use HAVE_STDINT_H, not C99
1085         check.
1086
1087         * connect.c: stdint.h inclusion added.
1088
1089         Thanks to Markus Duft <mduft@gentoo.org> for a similar patch.
1090
1091 2009-04-20  Micah Cowan  <micah@cowan.name>
1092
1093         * Makefile.am (version.c): Fix unportable use of "echo -n".
1094
1095 2009-04-13  Steven Schubiger  <stsc@member.fsf.org>
1096
1097         * ftp.c (ftp_retrieve_list): Move the duplicated code that
1098         determines the local file to a function.
1099
1100         * http.c (http_loop): Likewise.
1101
1102         * retr.c (set_local_file): New function.
1103
1104 2009-04-11  Steven Schubiger  <stsc@member.fsf.org>
1105
1106         * init.c (initialize): Run a custom SYSTEM_WGETRC when
1107         provided as an environment variable.
1108
1109 2009-02-27  Gisle Vanem  <gvanem@broadpark.no>
1110
1111         * main.c (main): "freopen (NULL,.." causes an assertion in MSVC
1112         debug-mode.  I.e. NULL isn't legal. But the "CONOUT$" device works
1113         fine.
1114
1115 2009-02-27  Steven Schubiger  <stsc@member.fsf.org>
1116
1117         * ftp.c (ftp_loop_internal): Don't claim for FTP retrievals
1118         when writing to standard output either that the document
1119         has been saved. Addresses bug #20520 again.
1120
1121 2009-02-21  Steven Schubiger  <stsc@member.fsf.org>
1122
1123         * http.c (http_loop): When a document is written to
1124         standard output, don't claim it has been saved to a file.
1125         Addresses bug #20520.
1126
1127 2009-02-18  Steven Schubiger  <stsc@members.fsf.org>
1128
1129         * recur.h: Remove the dangling declaration for recursive_cleanup().
1130
1131 2009-02-01  Gerardo E. Gidoni  <gerel@gnu.org>
1132
1133         * main.c, recur.c, recur.h, res.c, retr.c, retr.h: restructured code to
1134         avoid multiple 'url_parse' calls.
1135
1136 2008-11-13  Micah Cowan  <micah@cowan.name>
1137
1138         * http.c (gethttp): Don't do anything when content-length >= our
1139         requested range.
1140
1141 2008-11-27  Saint Xavier  <wget@sxav.eu>
1142
1143         * http.c (gethttp): Move authentication code before filename
1144         allocation avoiding fallbacking on default filename because
1145         "Content-Disposition" header wasn't present before authentcation
1146         has been completed. Fixes bug #24862.
1147
1148 2008-11-16  Steven Schubiger  <stsc@members.fsf.org>
1149
1150         * main.c: Declare and initialize the numurls counter.
1151
1152         * ftp.c, http.c: Make the counter visible here and use it.
1153
1154         * options.h: Remove old declaration from options struct.
1155
1156 2008-11-15  Steven Schubiger  <stsc@members.fsf.org>
1157
1158         * init.c (defaults): Set default waitretry value.
1159
1160 2008-11-14  Steven Schubiger  <stsc@members.fsf.org>
1161
1162         * main.c (format_and_print_line): Use a custom format
1163         string for printing leading spaces.
1164
1165 2008-11-12  Micah Cowan  <micah@cowan.name>
1166
1167         * ftp-ls.c (ftp_index): HTML-escape dir name in title, h1, a:href.
1168
1169 2008-11-12  Alexander Belopolsky  <alexander.belopolsky@gmail.com>
1170
1171         * url.c, url.h (url_escape_unsafe_and_reserved): Added.
1172
1173         * ftp-ls.c (ftp_index): URL-escape, rather than HTML-escape, the
1174         filename appearing in the link.
1175
1176 2008-11-12  Steven Schubiger  <stsc@members.fsf.org>
1177
1178         * main.c (print_version): Hand the relevant
1179         xstrdup/xfree calls back to format_and_print_line().
1180
1181 2008-11-11  Steven Schubiger  <stsc@members.fsf.org>
1182
1183         * main.c (format_and_print_line): Move both the memory
1184         allocating and freeing bits upwards to print_version().
1185
1186 2008-11-10  Saint Xavier  <wget@sxav.eu>
1187
1188         * http.c: Make --auth-no-challenge works with user:pass@ in URLs.
1189
1190 2008-11-05  Micah Cowan  <micah@cowan.name>
1191
1192         * ftp.c (print_length): Should print humanized "size remaining"
1193         only when it's at least 1k.
1194
1195 2008-10-31  Micah Cowan  <micah@cowan.name>
1196
1197         * main.c (print_version): Add information about the mailing list.
1198
1199 2008-10-31  Alexander Drozdov  <dzal_mail@mtu-net.ru>
1200
1201         * retr.c (fd_read_hunk): Make assert deal with maxsize == 0.
1202
1203         * ftp-ls.c (clean_line): Prevent underflow on empty lines.
1204
1205 2008-10-26  Gisle Vanem  <gvanem@broadpark.no>
1206
1207         * main.c (format_and_print_line): Put variables on top of
1208         blocks (not all compilers are C99). Add an extra '\n' if
1209         SYSTEM_WGETRC isn't defined and printed.
1210
1211 2008-09-09  Gisle Vanem  <gvanem@broadpark.no>
1212
1213         * url.c (url_error): Use aprintf, not asprintf.
1214
1215 2008-09-09  Micah Cowan  <micah@cowan.name>
1216
1217         * init.c (home_dir): Save the calculated value for home,
1218         to avoid duplicated work on repeated calls.
1219         (wgetrc_file_name) [WINDOWS]: Define and initialize home var.
1220
1221         * build_info.c, main.c: Remove unnecessary extern vars
1222         system_wgetrc and locale_dir.
1223
1224         * main.c: Define program_name for lib/error.c.
1225
1226 2008-09-02  Gisle Vanem  <gvanem@broadpark.no>
1227
1228         * mswindows.h: Must ensure <stdio.h> is included before
1229         we redefine ?vsnprintf().
1230
1231 2008-08-08  Steven Schubiger  <stsc@members.fsf.org>
1232
1233         * main.c, utils.h: Removed some dead conditional DEBUG_MALLOC code.
1234
1235 2008-08-03  Micah Cowan  <micah@cowan.name>
1236
1237         * main.c (print_help): Added --default-page.
1238
1239 2008-08-01  Joao Ferreira  <joao@joaoff.com>
1240
1241         * init.c, main.c, options.h, url.c: Added option --default-page
1242         to support alternative default names for index.html
1243
1244 2008-08-03  Micah Cowan  <micah@cowan.name>
1245
1246         * build_info.c, css-url.c: #include wget.h, not config.h.
1247
1248 2008-08-03  Steven Schubiger  <stsc@members.fsf.org>
1249
1250         * url.c, url.h (url_error): Better messages for unsupported
1251         schemes, especially https.
1252
1253         * html-url.c, recur.c, retr.c: Adjust to new url_error
1254         invocation, and free result.
1255
1256 2008-07-17  Steven Schubiger  <stsc@members.fsf.org>
1257
1258         * retr.c (retrieve_from_file): When given an URL as input file,
1259         use it as baseref if none was specified and treat the input file
1260         as HTML if its content type is text/html.
1261
1262         * init.c (cleanup): Free the memory associated with the base
1263         option (when DEBUG_MALLOC is defined).
1264
1265 2008-07-02  Xavier Saint  <wget@sxav.eu>
1266
1267         * iri.c, iri.h  : New function idn_decode() to decode ASCII
1268         encoded hostname to the locale.
1269
1270         * host.c : Show hostname to be resolved both in locale and
1271         ASCII encoded.
1272
1273 2008-06-28  Steven Schubiger  <stsc@members.fsf.org>
1274
1275         * retr.c (retrieve_from_file): Allow for reading the links from
1276         an external file (HTTP/FTP).
1277
1278 2008-06-26  Xavier Saint  <wget@sxav.eu>
1279
1280         * iri.c, iri.h : New functions locale_to_utf8() and
1281         idn_encode() adding basic capabilities of IRI/IDN.
1282
1283         * url.c : Convert URLs from locale to UTF-8 allowing a basic
1284         support of IRI/IDN
1285
1286 2008-06-25  Steven Schubiger  <stsc@members.fsf.org>
1287
1288         * ftp.c (getftp): When spidering a FTP URL, emit a diagnostic
1289         message if the remote file exists.
1290
1291 2008-06-24  Steven Schubiger  <stsc@members.fsf.org>
1292
1293         * http.c (http_loop): Replace escnonprint() occurence with
1294         a quotearg_style() call.
1295
1296 2008-06-24  Micah Cowan  <micah@cowan.name>
1297
1298         * ftp-ls.c (ftp_index): Don't assume time_t* is compatible with
1299         long*. Fixes crash on Windows, and probably other systems.
1300
1301 2008-06-22  Steven Schubiger  <stsc@members.fsf.org>
1302
1303         * http.c: Explicitly initialize and deallocate the message
1304         string used by the -nv --spider functionality.
1305
1306 2008-06-22  Steven Schubiger  <schubiger@gmail.com>
1307
1308         * http.c: Make -nv --spider include the file's name when it
1309         exists.
1310
1311 2008-06-22  Micah Cowan  <micah@cowan.name>
1312
1313         * Makefile.am (version.c): Fixed version string invocation so it
1314         once again can't result in unterminated strings, made all the
1315         string vars pointers-to-const, and moved line lengths
1316         below 80 (in Makefile.am, not in version.c).
1317
1318 2008-06-19  Xavier Saint  <wget@sxav.eu>
1319
1320         * iri.c, iri.h : New function check_encoding_name() as
1321         a preliminary encoding name check.
1322
1323         * main.c, iri.c : Make use of check_encoding_name().
1324
1325 2008-06-19  Xavier Saint  <wget@sxav.eu>
1326
1327         * iri.c : Include missing stringprep.h file and add a
1328         cast.
1329
1330         * init.c : set a default initial value for opt.enable_iri,
1331         opt.locale and opt.encoding_remote.
1332
1333 2008-06-19  Xavier Saint  <wget@sxav.eu>
1334
1335         * iri.c, iri.h : Add a new function find_locale() to find
1336         out the local system encoding.
1337
1338         * main.c : Make use of find_locale().
1339
1340 2008-06-19  Xavier Saint  <wget@sxav.eu>
1341
1342         * html-url.c : Add "content-type" meta tag parsing for
1343         retrieving page encoding.
1344
1345         * iri.h : Make no-op version of parse_charset() return
1346         NULL.
1347
1348 2008-06-16  Micah Cowan  <micah@cowan.name>
1349
1350         * http.c (http_loop): When hstat.len is higher than the
1351         successfully completed content's length, but it's because we
1352         _set_ it that way, don't abort.
1353
1354 2008-06-14  Xavier Saint  <wget@sxav.eu>
1355
1356         * iri.c, iri.h : New files.
1357
1358         * Makefile.am : Add files iri.h and conditional iri.c.
1359
1360         * build_info.c : Add compiled feature "iri".
1361
1362         * http.c : include iri.h and parse charset from Content-Type
1363         header.
1364
1365         * init.c, main.c, options.h : if an options isn't supported
1366         at compiled time, don't get rid off it and show a dummy
1367         message instead if they are used.
1368
1369 2008-06-13  Micah Cowan  <micah@cowan.name>
1370
1371         * build_info.c: ENABLE_NTLM, not HAVE_NTLM; distinguish OpenSSL
1372         from "ssl".
1373
1374 2008-06-13  Madhusudan Hosaagrahara <com.gmail.hrmadhu>
1375
1376         * Makefile.am, main.c, init.c, init.h, build_info.c: Adds build
1377         information to the --version command line option. Fixes bug
1378         #20636.
1379
1380 2008-06-01  Micah Cowan  <micah@cowan.name>
1381
1382         * main.c [WINDOWS]: Reopen stdout in binary mode, when -O - is
1383         given.
1384
1385 2008-05-31 Micah Cowan  <micah@cowan.name>
1386
1387         * html-url.c, http.c: Avoid casts in a couple spots.
1388
1389 2008-05-30 Henri Häkkinen  <henux@users.sourceforge.net>
1390
1391         * cookies.c, ftp-basic.c, hash.c, html-url.c, http-ntlm.c, http.c,
1392         init.c, log.c, main.c, progress.c, ptimer.c, spider.c, url.c,
1393         utils.c: Minor changes to silence warnings when using -Wall.
1394
1395 2008-05-26  Steven Schubiger  <schubiger@gmail.com>
1396
1397         * ftp.c (getftp): Replace last remaining invocation of escnonprint
1398         with gnulib quote.
1399
1400 2008-05-19  Micah Cowan  <micah@cowan.name>
1401
1402         * main.c (main): Password prompt should be done only once (not
1403         once per argument), and should be done prior to the background
1404         fork.
1405
1406 2008-05-17  Steven Schubiger  <schubiger@gmail.com>
1407
1408         * init.c (defaults): Set the preferred IP family to `none' by
1409         default.
1410
1411 2008-05-17  Kenny Parnell  <k.parnell@gmail.com>
1412
1413         (cmd_spec_prefer_family): Initialize prefer_family to prefer_none.
1414
1415 2008-05-17  Micah Cowan  <micah@cowan.name>
1416
1417         * main.c (main): Handle Ctrl-D on command-line.
1418
1419 2008-05-15  Steven Schubiger  <schubiger@gmail.com>
1420
1421         * ftp.c (getftp): Verify that the file actually exists in FTP, by
1422         checking it against the listing.
1423
1424 2008-05-15  Micah Cowan  <micah@cowan.name>
1425
1426         * main.c (prompt_for_password): Use the quote module.
1427
1428 2008-05-14  Micah Cowan  <micah@cowan.name>
1429
1430         * ftp.c (ftp_retrieve_list): Symlinks and other filenames
1431         should be fully quoted.
1432
1433 2008-05-12  Micah Cowan  <micah@cowan.name>
1434
1435         * main.c (main): Downgrade "-N with -O" to a warning, and switch
1436         it off to avoid confusing messages.
1437
1438 2008-04-30  Micah Cowan  <micah@cowan.name>
1439
1440         * progress.c (create_image): Fix glitch where too many spaces are
1441         printed on lines that don't display the ETA, in multibyte
1442         locales.
1443
1444 2008-04-30  Steven Schubiger  <stsc@members.fsf.org>
1445
1446         * main.c (main): New code that handles prompting for passwords
1447         when specified explicitly via command-line option (using gnulib's
1448         getpass-gnu module).
1449         (main): Include the getpass header.
1450
1451         * init.c: Add "ask-password" to the list of recognized commands.
1452
1453         * options.h: Add an according boolean member to the options
1454         struct.
1455
1456         * sysdep.h: Comment the defines __EXTENSIONS__ and _GNU_SOURCE
1457         out, because they're now defined independently by config.h.
1458
1459 2008-04-27  Rabin Vincent  <rabin@rab.in>
1460
1461         * http.c (http_loop): Fix return for the case where we don't
1462         download a file because of -nc.
1463
1464 2008-04-27  Micah Cowan  <micah@cowan.name>
1465
1466         * url.c (path_simplify): Go back to allowing leading ".." in
1467         paths, but only for FTP URLs.
1468         (test_path_simplify): Add scheme-specificness to tests, adapt for
1469         mu_run_test.
1470
1471         * test.c (all_tests): Add test_path_simplify.
1472
1473         * main.c (main): Downgrade -r, -p with -O to a warning rather than
1474         an error; elaborate just a bit more for other -O combination
1475         cases.
1476
1477 2008-04-26  Micah Cowan  <micah@cowan.name>
1478
1479         * http.c (gethttp): Move proxy CONNECT handling to below the
1480         retry_with_auth label, to deal with properly reconnecting to
1481         proxies when we need to authenticate.
1482
1483 2008-04-25  Micah Cowan  <micah@cowan.name>
1484
1485         * Makefile.am: -I foo -> -Ifoo.
1486
1487 2008-04-24  Micah Cowan  <micah@cowan.name>
1488
1489         * main.c: Revised usage description of --convert-links to apply
1490         to CSS as well as to HTML.
1491
1492 2008-04-23  Micah Cowan  <micah@cowan.name>
1493
1494         * utils.c (test_dir_matches_p): Added a test for the case
1495         described in issue #20518.
1496
1497 2008-04-22  Micah Cowan  <micah@cowan.name>
1498
1499         * Makefile.am, css.lex, css.l: Renamed css.lex to css.l.
1500         * recur.c (retrieve_tree): Fix typo to allow text/css files to
1501         be parsed.
1502
1503 2008-04-22  Ted Mielczarek  <ted.mielczarek@gmail.com>
1504
1505         * css.lex, css-url.c, css-url.h: Added to implement support for
1506         parsing CSS in Wget.
1507         * convert.c: Convert links in CSS files, too.
1508         * convert.h (convert_options): Added for options link_css_p,
1509         link_expect_css.
1510         * convert.h: Added prototype for new register_css function.
1511         * html-parse.c: Added support for parsing element content, in
1512         addition to tag starts and ends.
1513         * html-parse.h (taginfo): Added delimiter fields for element
1514         content.
1515         * html-url.h: Added.
1516         * html-url.c (append_url): No longer internal-linkage only. Now
1517         takes position and size as explicit parameters.
1518         * html-url.c: Use new html-url.h header, add support for
1519         handling of "style" HTML attributes. Mark URIs obtained from
1520         link tags with rel="stylesheet" with link_expect_css. Adapt
1521         uses of append_url to supply the newly-added parameters for
1522         position and size.
1523         * http.c: Add detection for when the content-type is text/css;
1524         and ensure that such files have the ".css" filename extension,
1525         when --convert-links is active.
1526         * recur.h: Remove declarations for functions found in
1527         html-url.c (moved to html-url.h).
1528         * recur.c: Add support for culling links from CSS files, too,
1529         and tracking for when we're expecting the file to be CSS (even
1530         when its content type isn't text/css).
1531         * retr.c (retrieve_url): Add registration of CSS files.
1532         * wget.h: Added TEXTCSS to dt flags enum.
1533         * Makefile.am: Added css.lex, css-url.c, css-url.h, html-url.h
1534         to wget_SOURCES.
1535
1536 2008-04-22  Jim Paris  <jim@jtan.com>
1537
1538         * openssl.c (ssl_init): Enable combined certificate/key in
1539         single file (apparent regression from ~1.9). Resolves issue
1540         #22767.
1541
1542 2008-04-22  Steven Schubiger  <schubiger@gmail.com>
1543
1544         * http.c (print_response_line): Changed to make responses always
1545         be logged, even in --quiet mode, if --server-response was
1546         specified. This is to bring http.c's handling of the situation
1547         in line with ftp.c's.
1548
1549 2008-04-22  Pranab Shenoy  <pranab.loosinit.shenoy@gmail.com>
1550
1551         * init.c: Added test_commands_sorted unit test to check is
1552         commands are sorted.  Fixes bug #21245.
1553
1554         * test.c: Added test_commands_sorted to the test suite.
1555
1556 2008-04-22  Rabin Vincent  <rabin@rab.in>
1557
1558         * ftp.c (ftp_get_listing): Only remove .listing if it has been
1559         created.
1560
1561 2008-04-22  Alain Guibert  <alguibert+bts@free.fr>
1562
1563         * test.h (mu_run_test): Move declaration before statements, for
1564         C90 conformance. Fixes bug #22789.
1565
1566 2008-04-22  Mike Frysinger  <vapier@gentoo.org>
1567
1568         * Makefile.am: Move @LIBS@ after other libraries, for better
1569         static-linking support. Fixes bug #22143.
1570
1571 2008-04-16  Steven Schubiger  <schubiger@gmail.com>
1572
1573         * ftp.c: Use Gnulib's quote function for printing filenames and
1574         such.
1575         * connect.c: Likewise.
1576         * convert.c: Likewise.
1577         * cookies.c: Likewise.
1578         * ftp-opie.c: Likewise.
1579         * gnutls.c: Likewise.
1580         * init.c: Likewise.
1581         * log.c: Likewise.
1582         * mswindows.c: Likewise.
1583         * openssl.c: Likewise.
1584         * progress.c: Likewise.
1585         * recur.c: Likewise.
1586         * res.c: Likewise.
1587         * utils.c: Likewise.
1588
1589 2008-04-16  Steven Schubiger  <schubiger@gmail.com>
1590
1591         * sysdep.h: Comment the defines __EXTENSIONS__ and _GNU_SOURCE
1592         out, because they're now defined independently by config.h.
1593
1594 2008-04-14  Steven Schubiger  <schubiger@gmail.com>
1595
1596         * http.c: Use Gnulib's quote function for printing filenames and
1597         such.
1598         * wget.h: #include "quote.h".
1599
1600 2008-04-12  Rabin Vincent  <rabin@rab.in>
1601
1602         * mswindows.c (fake_fork_child): Don't create a logfile for
1603         --background when --quiet is used, but not --server-response.
1604         Fixes bug #20917.
1605
1606         * utils.c (fork_to_background): Likewise.
1607
1608 2008-04-12  Micah Cowan  <micah@cowan.name>
1609
1610         * utils.c (aprintf): Minor formatting changes to Alex's code (80-
1611         column limit, concatenated string literals, avoiding nesting
1612         levels), and removed invocation of free (since we're aborting
1613         anyway).
1614
1615 2008-04-11  Alexander Dergachev  <cy6erbr4in@gmail.com>
1616
1617         * utils.c (aprintf): Now we are setting limits (1 Mb) for text
1618         buffer when we use non-C99 vsnprintf.
1619
1620 2008-04-11  Micah Cowan  <micah@cowan.name>
1621
1622         * ftp.c (getftp, ftp_loop_internal): Don't append to an existing
1623         .listing when --continue is used.  Fixes bug #22825. Thanks to
1624         Rabin Vincent <rabin@rab.in> for pointing the way with a
1625         suggested fix!
1626
1627 2008-04-10  Alexander Dergachev  <cy6erbr4in@gmail.com>
1628
1629         * xmalloc.c, xmalloc.h (memfatal): Now exported; accepts an
1630         "unknown" value for the attempted allocation size.
1631         * utils.c (aprintf): Now calls memfatal, instead of aborting.
1632
1633 2008-03-19  Micah Cowan  <micah@cowan.name>
1634
1635         * utils.c (test_dir_matches_p): More tests related for
1636         dir_matches_p.
1637
1638 2008-03-17  Micah Cowan  <micah@cowan.name>
1639
1640         * connect.c: Include sys/time.h to support use of the select
1641         function on older systems.
1642
1643 2008-02-11  Benno Schulenberg  <bensberg@justemail.net>
1644
1645         * http.c: More accurate and descriptive messages for when a file
1646         won't be retrieved during spider-mode.
1647
1648 2008-02-10  Micah Cowan  <micah@cowan.name>
1649
1650         * http.c: Added existence_checked member to the http_stat
1651         struct.
1652         (gethttp): Mark hs->existence_checked when we've checked whether
1653         a file-to-download exists; so we don't check it again if the
1654         connection gets lost (and potentially pick a new "unique" name).
1655         This fixes bug 22251.
1656         * progress.c (create_image): Add space for an extra column in
1657         the "eta" portion of the progress bar image; to deal with
1658         too-long Czech translation.
1659         * main.c, http.c, init.c: Added --auth-no-challenge option, to
1660         bring back 1.10.2 unsafe auth behavior when needed. This fixes
1661         bug #22242.
1662
1663 2008-02-07  Micah Cowan  <micah@cowan.name>
1664
1665         * progress.c (create_image): Remove assertion on exceeding
1666         screen width, which given the less-than-robust code there, can
1667         be broken by a number of factors (such as large file downloads).
1668
1669 2008-02-06  Micah Cowan  <micah@cowan.name>
1670
1671         * progress.c (countcols): Use strlen() when mbtowc or wcwidth
1672         not available (or not using NLS).
1673         * utils.c: Ensure we use single-byte separators when not doing
1674         NLS progress-bars.
1675         * wget.h: Determine whether to use NLS for progress-bars, based
1676         on whether wcwidth and mbtowc are available.
1677
1678 2008-02-03  Micah Cowan  <micah@cowan.name>
1679
1680         * progress.c (create_image): Use number of characters/columns
1681         consumed, rather than number of bytes, to determine how much of
1682         a line we've used. Fixes assertion errors and field alignment
1683         bugs (#22161, #20481)
1684         (get_eta, count_cols): Added to support the changes for
1685         create_image.
1686         * http.c (http_loop): Put no-clobber logic back into http_loop,
1687         before starting to fetch, for when we're not doing
1688         content-disposition.
1689
1690 2008-01-31  Micah Cowan  <micah@cowan.name>
1691
1692         * http.c (gethttp): Don't derive hs->contlen from possibly
1693         invalid/missing Content-Length; instead, get the appropriate
1694         value from the Content-Range header values.
1695         (parse_content_range): Handle '*' instance-length field.
1696
1697 2008-01-25  Micah Cowan  <micah@cowan.name>
1698
1699         * main.c: Added notes to translators regarding (C), diacritics
1700         in names.
1701         * Makefile.am, cmpt.c, connect.c, connect.h, convert.c,
1702         cookies.c, cookies.h, ftp-basic.c, ftp-ls.c, ftp-opie.c, ftp.c,
1703         ftp.h, gen-md5.c, gen-md5.h, gnutls.c, hash.c, hash.h, host.c,
1704         host.h, html-parse.c, html-parse.h, html-url.c, http-ntlm.c,
1705         http-ntlm.h, http.c, http.h, init.c, init.h, log.c, log.h,
1706         main.c, mswindows.c, mswindows.h, netrc.c, netrc.h, openssl.c,
1707         options.h, progress.c, progress.h, ptimer.c, ptimer.h, recur.c,
1708         recur.h, res.c, res.h, retr.c, retr.h, spider.c, spider.h,
1709         ssl.h, sysdep.h, test.c, test.h, url.c, url.h, utils.c,
1710         utils.h, wget.h, xmalloc.c, xmalloc.h: Updated copyright year.
1711
1712 2007-12-10  Micah Cowan  <micah@cowan.name>
1713
1714         * main.c: The option is --content-disposition, not
1715         --no-content-disposition (at the moment).
1716
1717 2007-12-08  Hrvoje Niksic  <hniksic@xemacs.org>
1718
1719         * ftp.c (ftp_retrieve_glob): Print both arguments of fnmatch in
1720         fnmatch error message.
1721         (ftp_retrieve_glob): Don't match with fnmatch if we're only
1722         supposed to get one file.
1723
1724 2007-12-07  Micah Cowan  <micah@cowan.name>
1725
1726         * Makefile.am: Plug in vars to include stuff from
1727         $(top_srcdir)/md5 when appropriate.
1728
1729 2007-12-05  Micah Cowan  <micah@cowan.name>
1730
1731         * utils.c (subdir_p): Handle the case where d1 is "".
1732         * convert.c (convert_all_links): Don't return without
1733         deallocating timer.
1734
1735 2007-11-28  Micah Cowan  <micah@cowan.name>
1736
1737         * Makefile.am, cmpt.c, connect.c, connect.h, convert.c,
1738         convert.h, cookies.c, cookies.h, ftp-basic.c, ftp-ls.c,
1739         ftp-opie.c, ftp.c, ftp.h, gen-md5.c, gen-md5.h, gnutls.c,
1740         hash.c, hash.h, host.c, host.h, html-parse.c, html-parse.h,
1741         html-url.c, http-ntlm.c, http-ntlm.h, http.c, http.h, init.c,
1742         init.h, log.c, log.h, main.c, mswindows.c, mswindows.h,
1743         netrc.c, netrc.h, openssl.c, options.h, progress.c, progress.h,
1744         ptimer.c, ptimer.h, recur.c, recur.h, res.c, res.h, retr.c,
1745         retr.h, safe-ctype.c, safe-ctype.h, spider.c, spider.h, ssl.h,
1746         sysdep.h, test.c, test.h, url.c, url.h, utils.c, utils.h,
1747         wget.h, xmalloc.c, xmalloc.h: Updated license exception for
1748         OpenSSL, per the SFLC.
1749
1750 2007-10-30  Micah Cowan  <micah@cowan.name>
1751
1752         * main.c (main): Declare argv parameter as char **argv, rather
1753         than char *const *argv. This fixes usage of getopt_long,
1754         regardless of whether getopt_long has a constified argv or not.
1755
1756 2007-10-22  Gisle Vanem  <gvanem@broadpark.no>
1757
1758         * mswindows.c: Move INHIBIT_WRAP macro definition up with wget.h
1759         inclusion.
1760
1761 2007-10-18  Steven Schweda  <sms@antinode.org>
1762
1763         * sysdep.h: #include <stdint.h> as well as <inttypes.h>, to work
1764         around a glitch on Tru64 systems.
1765
1766 2007-10-18  Micah Cowan  <micah@cowan.name>
1767
1768         * Makefile.am: version.c should not be distributed. Removed
1769         config-post.h. Add version.c dependency and gnulib include path
1770         for libunittest.a.
1771         * sysdep.h: Got contents of config-post.h
1772         * config-post.h: Removed.
1773         * wget.h: #include "config.h".
1774         * alloca.c, cmpt.c, connect.c, convert.c, cookies.c,
1775         ftp-basic.c, ftp-ls.c, ftp-opie.c, ftp.c, gen-md5.c, gnutls.c,
1776         hash.c, host.c, html-parse.c, html-url.c, http-ntlm.c, http.c,
1777         init.c, log.c, main.c, mswindows.c, netrc.c, openssl.c,
1778         progress.c, ptimer.c, recur.c, res.c, retr.c, spider.c, url.c,
1779         utils.c, xmalloc.c: Use wget.h at very top, and instead of
1780         config.h.
1781
1782 2007-10-15  Micah Cowan  <micah@cowan.name>
1783
1784         * Makefile.am: Remove intermediary hg-id file generation, make
1785         version.c-generation more portable.
1786
1787 2007-10-14  Micah Cowan  <micah@cowan.name>
1788
1789         * cmpt.c, cookies.c, ftp-basic.c, ftp-ls.c, ftp.c, hash.c,
1790         host.c, html-parse.c, html-url.c, http-ntlm.c, http.c, init.c,
1791         log.c, main.c, netrc.c, openssl.c, res.c, url.c, utils.c,
1792         wget.h: Replace uses of ISSPACE, etc with c_isspace, etc.
1793         * gnu-md5.c, gnu-md5.h: Removed, in deference to gnulib.
1794         * Makefile.am: Removed gnu-md5.h from wget_SOURCES.
1795         * gen-md5.c: Changed #inclusion of gnu-md5.h to md5.h (gnulib's).
1796         * recur.c (download_child_p): Print error if unlink of
1797         robots.txt fails.
1798         * main.c (main): --spider or --delete-after now implies
1799         --no-directories (thanks, Josh Williams).
1800
1801 2007-10-14  Joshua David Williams  <yurimxpxman@gmail.com>
1802
1803         * recur.c (download_child_p): Remove robots.txt if
1804         --delete-after or --spider is on.
1805
1806 2007-10-13  Micah Cowan  <micah@cowan.name>
1807
1808         * Makefile.am: Make version.c depend on Wget dependencies (source
1809         files, plus such things as LIBOBJS so we get things like
1810         http-ntlm.c). Removed getopt.[ch], as we're now using gnulib for
1811         these.
1812
1813 2007-10-10  Micah Cowan  <micah@cowan.name>
1814
1815         * http-ntlm.c: Include openssl/opensslv.h explicitly, instead of
1816         hoping it'll be included by accident in openssl/des.h.
1817
1818 2007-10-09  Gisle Vanem  <gvanem@broadpark.no>
1819
1820         * mswindows.c: 'argc' and 'argv' in 'windows_main()' are no longer
1821         needed.  Hence simply the prototype. Free 'exec_name' at exit.
1822
1823 2007-10-09  Micah Cowan  <micah@cowan.name>
1824
1825         * gettext.h: Imported from /usr/share/gettext, fuller handling
1826         of --disable-nls.
1827         * wget.h: Remove logic for handling lack of NLS (now in
1828         gettext.h).
1829         * main.c: Use gettext's ENABLE_NLS rather than HAVE_NLS.
1830         * Makefile.am: added @LIBINTL@ to LIBS (though it probably
1831         belongs in LDADD, along with everything else currently assigned
1832         to LIBS).
1833
1834 2007-10-08  Micah Cowan  <micah@cowan.name>
1835
1836         * http.c (http_loop): Add send_head_first conditional back
1837         around code that needs it, but not around the last-modified
1838         header-parsing stuff this time. Removed no-longer-useful (was it
1839         ever?) restart_loop boolean, continuing unconditionally at end
1840         of send_head_first conditional block (if we haven't jumped out).
1841
1842 2007-10-04  Micah Cowan  <micah@cowan.name>
1843
1844         * http.c (http_loop): We've got_name if content_disposition
1845         support isn't on; make sure we continue properly in that case,
1846         even though we're not sending HEAD.
1847         * Makefile.in: Removed, replaced by Makefile.am.
1848         * Makefile.am: Converted from Makefile.in.
1849
1850 2007-10-02  Gisle Vanem  <gvanem@broadpark.no>
1851
1852         * ftp.c: Use "_listing" for MSDOS (".listing" is illegal).
1853
1854         * url.c: Update comment for 'filechr_not_windows'.
1855
1856         * utils.c: Include <process.h> for 'getpid()' on Watcom.
1857
1858 2007-10-02  Micah Cowan  <micah@cowan.name>
1859
1860         * ftp.c (getftp, ftp_loop_internal), http.c (http_loop), main
1861         (main): Use datetime_str instead of time_str, for those who have
1862         potentially long-running sessions. Based on suggestions by Saso
1863         Tomat <miskox@hotmail.com> and Steven M. Schweda
1864         <sms@antinode.org>.
1865         * http.c (gethttp): Warn about host lookup failures. Adjusted
1866         from Stephen Gildea's patch.
1867
1868 2007-10-02  Stephen Gildea  <stepheng+wget@gildea.com>
1869
1870         * connect.c (connect_to_host): Warn about host lookup failures.
1871
1872 2007-09-25  Micah Cowan  <micah@cowan.name>
1873
1874         * Makefile.in: Use EXEEXT instead of exeext.
1875
1876 2007-09-24  Gisle Vanem  <giva@bgnett.no>
1877
1878         * connect.c, init.c, main.c, openssl.c, options.h, sysdep.h,
1879         url.c, utils.c: Added support for building on MS-DOS.
1880
1881 2007-09-24  Jochen Roderburg  <roderburg@uni-koeln.de>
1882
1883         * http.c (http_zero): Remove no-longer-used local_size variable.
1884         Fixes bug #21057.
1885
1886 2007-09-12  Micah Cowan  <micah@cowan.name>
1887
1888         * http.c (http_loop): Remove send_head_first from condition for
1889         parsing timestamp.
1890
1891 2007-08-29  Micah Cowan  <micah@cowan.name>
1892
1893         * openssl.c (ssl_init): Re un-const-ified the meth local
1894         variable, to match current versions of openssl.
1895         * spider.c: Removed visited_url function, as it may be very
1896         inefficient.
1897         (print_broken_links): Removed traversal of referrers, until such
1898         time as a more efficient implementation can be written.
1899         * spider.h: Replaced declaration of visited_url with an
1900         empty-bodied, function-like macro.
1901
1902 2007-08-27  Gisle Vanem  <giva@bgnett.no>
1903
1904         * mswindows.c (run_with_timeout): Ensure that the correct
1905         conversion specification is used for the return result of
1906         the GetLastError function.
1907         * getopt.c: Fix missing (but, accidentally, legal) comment
1908         delimiter after licensing text.
1909         * recur.c (retrieve_tree): Inserted missing cast for strip_auth.
1910         Includes adjustment by Ralf Wildenhues.
1911         * openssl.c (ssl_init): const-ified the meth local variable.
1912         * main.c: Include all the static function definitions in the
1913         "#ifndef TESTING" clause, leaving just the definitions for
1914         exec_name (not set), and opt.
1915         * utils.c (run_with_timeout): Now returns bool, to align with
1916         declaration in utils.h.
1917
1918 2007-08-27  Micah Cowan  <micah@cowan.name>
1919
1920         * wget.h: Added macro replacement for ngettext, for environs
1921         that lack NLS.
1922
1923 2007-08-26  Micah Cowan  <micah@cowan.name>
1924
1925         * spider.c (print_broken_links): Fixed incorrect plurals msgid
1926         usage, switched to use ngettext function.
1927
1928 2007-08-24  Micah Cowan  <micah@cowan.name>
1929
1930         * http.c (http_loop): Introduced time_came_from_head boolean
1931         flag, to help avoid parsing the same Last-Modified header twice.
1932         Replaced spidering returns of RETRUNNEEDED for some situations,
1933         to RETROK, as otherwise it will be interpreted as an error.
1934         RETRUNNEEDED appears never to be referenced outside of
1935         http.c (and wget.h), and, when returned by gethttp, is
1936         translated by http_loop to RETROK.
1937         * url.c (are_urls_equal): Don't call getchar_from_escaped_string
1938         if u2 is shorter than u1.
1939         (getchar_from_escaped_string): Don't decode reserved characters.
1940         Handle illegally appearing '%'s as literal '%'s. Ensure hex
1941         digits before attempting to decode.
1942         (test_are_urls_equal): Added tests to handle u2 shorter than u1,
1943         and %2f not treated the same as /.
1944         * spider.c (in_url_list_p): Don't call are_urls_equal if one of
1945         them is NULL.
1946
1947 2007-08-23  Joshua David Williams  <yurimxpxman@gmail.com>
1948
1949         * spider.c (in_url_list_p): Removed the bool verbose argument
1950
1951 2007-08-22  Mauro Tortonesi  <mauro@ferrara.linux.it>
1952
1953         * http.c (http_loop): Fall back to GET if HEAD fails with a 500 or 501
1954         error code.
1955
1956 2007-08-21  Mauro Tortonesi  <mauro@ferrara.linux.it>
1957
1958         * http.c (http_loop): Send preliminary HEAD request if -N is given and
1959         the destination file exists already.
1960
1961 2007-08-10  Mauro Tortonesi  <mauro@ferrara.linux.it>
1962
1963         * http.c (http_loop): Fixed HTTP HEAD requests logic when --spider is
1964         given.
1965
1966 2007-08-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1967
1968         * url.c (append_uri_pathel): Do not assume dest string to be
1969         zero-terminated.
1970         (test_append_uri_pathel): Terminate string to fix test failure.
1971
1972 2007-08-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1973
1974         * url.c (url_string): Use comparison, not assignment, in
1975         check for auth_mode == URL_AUTH_HIDE_PASSWD.
1976
1977 2007-08-09  Micah Cowan  <micah@cowan.name>
1978
1979         * http.c (http_loop): If we got a HEAD and then a GET, and the
1980         GET had a timestamp, use that one, not any we may have gotten
1981         from the HEAD.
1982
1983 2007-08-08  Micah Cowan  <micah@cowan.name>
1984
1985         * init.c (defaults): Content disposition will not be default,
1986         since it currently results in extra round-trips.
1987
1988 2007-07-31  Micah Cowan  <micah@cowan.name>
1989
1990         * http.c (gethttp): Set contlen = -1 when we encounter a
1991         negative-valued Content-Length header, so we don't consider it
1992         an internal error later on and call abort().
1993
1994 2007-07-29  Micah Cowan  <micah@cowan.name>
1995
1996         * url.h, url.c (url_string): Replaced bool arg of the url_string
1997         function with enum url_auth_mode, with added option to
1998         completely remove user/pass auth information.
1999         * http.c, ftp.c, url.c, recur.c: Adapted call to url_string
2000         function to fit new usage.
2001         * recur.c (retrieve_tree): Remove auth info from Referer header.
2002
2003 2007-07-28  Micah Cowan  <micah@cowan.name>
2004
2005         * options.h, init.c, retr.c, main.c: renamed opt maxredirect
2006         field to max_redirect, for improved consistency.
2007         * init.c: changed max_redirect parser from cmd_number_inf to
2008         cmd_number, as infinite redirects may not be appropriate.
2009         Alternatively, if cmd_number_inf should be used, then
2010         opt.max_redirect's value should be checked a bit differently in
2011         retr.c, to allow for the "infinite" meaning of zero.
2012
2013 2007-07-25  Micah Cowan  <micah@cowan.name>
2014
2015         * http.c (create_authorization_line)
2016         (basic_authentication_encode, known_authentication_scheme_p)
2017         (load_cookies): Moved declarations up.
2018         (basic_authed_hosts): Added. Tracks what hosts have issued Basic
2019         challenge and been given the global username, password.
2020         (maybe_send_basic_creds): Added. Sends Basic creds for hosts that
2021         have issued Basic challenges.
2022         (register_basic_auth_host): Added. Instantiates
2023         basic_authed_hosts if necessary, then registers the host that
2024         has issued a challenge.
2025         (gethttp) <auth>: Only send authentication credentials after
2026         we've received a challenge from that host. This is a stop-gap
2027         fix until a proper fix can be implemented; still isn't quite
2028         right, as we should only be sending credentials automatically
2029         for authenticated paths and below, and not for the entire host.
2030
2031 2007-07-16  Joshua David Williams  <yurimxpxman@gmail.com>
2032
2033         * options.h: added maxredirect to options struct
2034         * init.c: added maxredirect to list of variables
2035         * retr.c (retrieve_url): replaced MAX_REDIRECTIONS with opt.maxredirect
2036         * main.c: added option --max-redirect
2037
2038 2007-07-16  Joshua David Williams  <yurimxpxman@gmail.com>
2039
2040         * test.h: tests made more verbose; now displays the name
2041         of each test run.
2042
2043 2007-07-10  Mauro Tortonesi  <mauro@ferrara.linux.it>
2044
2045         * http.c (http_loop): Fixed the HTTP requests logic. Now it skips the
2046         preliminary HEAD request if either -O or --no-content-disposition are
2047         given, and neither --spider and -N are given.
2048
2049 2007-07-05  Micah Cowan  <micah@cowan.name>
2050
2051         * cmpt.c, connect.c, connect.h, convert.c, convert.h:
2052         * cookies.c, cookies.h, ftp-basic.c, ftp.c, ftp.h, ftp-ls.c:
2053         * ftp-opie.c, gen-md5.c, gen-md5.h, getopt.c, getopt.h, gnu-md5.c:
2054         * gnu-md5.h, gnutls.c, hash.c, hash.h, host.c, host.h:
2055         * html-parse.c, html-parse.h, html-url.c, http.c, http.h:
2056         * http-ntlm.c, http-ntlm.h, init.c, init.h, log.c, log.h, main.c:
2057         * Makefile.in, mswindows.c, mswindows.h, netrc.c, netrc.h:
2058         * openssl.c, options.h, progress.c, progress.h, ptimer.c:
2059         * ptimer.h, recur.c, recur.h, res.c, res.h, retr.c, retr.h:
2060         * safe-ctype.c, safe-ctype.h, spider.c, spider.h, ssl.h, sysdep.h:
2061         * test.c, test.h, url.c, url.h, utils.c, utils.h, wget.h:
2062         * xmalloc.c, xmalloc.h:
2063         Updated GPL reference to version 3 or later, removed FSF
2064         address.
2065
2066 2007-07-04  Mauro Tortonesi  <mauro@ferrara.linux.it>
2067
2068         * http.c (http_loop): Skip HEAD request and start immediately with GET
2069         if -O is given.
2070
2071 2007-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
2072
2073         * http.c (print_server_response): Escape non-printable characters
2074         in server respone.
2075
2076 2007-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
2077
2078         * netrc.c: Don't make netrc_list static, as it prevents
2079         compilation with DEBUG_MALLOC.
2080
2081         * utils.c (aprintf): Don't use vasprintf when DEBUG_MALLOC is
2082         requested because, in that case, we want the calls to malloc to be
2083         coming from us.
2084
2085 2007-01-23  Hrvoje Niksic  <hniksic@xemacs.org>
2086
2087         * cookies.c (parse_set_cookie): Would erroneously discard cookies
2088         with unparsable expiry time.
2089
2090 2007-01-23  Hrvoje Niksic  <hniksic@xemacs.org>
2091
2092         * progress.c (create_image): Check for ETA overflow.
2093         (print_row_stats): Ditto.
2094
2095 2007-01-09  Mauro Tortonesi  <mauro@ferrara.linux.it>
2096
2097         * init.c (cmd_spec_prefer_family): Small fix to get rid of a gcc
2098         warning about strict-aliasing violation.
2099
2100 2007-01-09  Steven M. Schweda  <sms@antinode.org>
2101
2102         * ftp-basic.c (ftp_syst): Fixed segfault if response text is missing.
2103
2104 2006-12-29  Gisle Vanem  <giva@bgnett.no>
2105
2106         * mswindows.c: Avoid a warning if 'ws_hangup()' is unused.
2107
2108 2006-12-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
2109
2110         * http.c (parse_content_disposition): Consider directory prefix, if
2111         specified.
2112
2113 2006-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
2114
2115         * retr.c (retrieve_from_file): Ditto.
2116         (url_uses_proxy): New function.
2117
2118         * main.c (main): Don't check for opt.use_proxy when deciding
2119         whether to call retrieve_url or retrieve_tree; check whether the
2120         proxy would be used for *this* URL.
2121
2122 2006-10-17  Mike Grant  <mggr@pml.ac.uk>
2123
2124         * ftp.c (ftp_loop_internal): Would incorrectly skip changing
2125         working directory when retrying after a failed FTP attempt.
2126         Originally reported by Nate Eldredge.
2127
2128 2006-10-12  Mauro Tortonesi  <mauro@ferrara.linux.it>
2129
2130         * convert.c (downloaded_file): Fixed bug which used to break -E -k -K
2131         mode.
2132
2133 2006-08-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
2134
2135         * http.c: #include'd spider.h to get rid of compiler warnings.
2136
2137         * main.c: Ditto.
2138
2139         * recur.c: Ditto.
2140
2141 2006-08-24  Mauro Tortonesi  <mauro@ferrara.linux.it>
2142
2143         * Makefile.in: Added spider.c to the list of files to compile and
2144         spider.h to the list of header files. Updated copyright information.
2145
2146         * http.c: Major changes to recursive spider mode. Now for every
2147         resource we are supposed to check, we send a HEAD request to find out
2148         if it exists. If the resource is a HTML file, we retrieve it and parse
2149         it to discover links to other resources.
2150
2151         * recur.c: Ditto.
2152
2153         * res.c (res_retrieve_file): Disable opt.timestamping and opt.spider
2154         when retrieving robots.txt. Updated copyright information.
2155
2156         * convert.c: Moved code tracking broken links to spider.c.
2157
2158         * convert.h: Ditto.
2159
2160         * spider.c: Created new file to keep track of visited URLs in spider
2161         mode.
2162
2163         * spider.h: Ditto.
2164
2165 2006-08-21  Mauro Tortonesi  <mauro@ferrara.linux.it>
2166
2167         * http.c: Fixed timestamping-related bug.
2168
2169 2006-08-16  Mauro Tortonesi  <mauro@ferrara.linux.it>
2170
2171         * http.c: Fixed bug which broke --continue feature. Now if -c is
2172         given, http_loop sends a HEAD request to find out the destination
2173         filename before resuming download.
2174
2175 2006-08-08  Hrvoje Niksic  <hniksic@xemacs.org>
2176
2177         * utils.c (datetime_str): Avoid code repetition with time_str.
2178
2179 2006-07-21  Hrvoje Niksic  <hniksic@xemacs.org>
2180
2181         * init.c (commands): Correctly place "contentdisposition".
2182
2183 2006-07-14  Mauro Tortonesi  <mauro@ferrara.linux.it>
2184
2185         * sysdep.h: If intptr_t isn't defined, simply typedef it to long.
2186
2187         * http.c: Added explicit cast to int in logprintf call to remove
2188         compiler warnings on 64-bit platforms.
2189
2190         * connect.c: Added a few casts to intptr_t to remove compiler warnings
2191         on 64-bit platforms.
2192
2193         * main.c: Disable -r, -p and -N when -O is used. Disable -k when -O is
2194         used and multiple URLs are given. Update maintainer information.
2195
2196         * all: Update copyright information.
2197
2198 2006-07-10  KJKHyperion  <hackbunny@reactos.com>
2199
2200         * url.c (filechr_table): Mark DEL (0x7f) as a control character
2201         and | as a character Windows can't handle.
2202
2203 2006-06-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
2204
2205         * res.c: Implemented is_robots_txt_url function for detection of
2206         robots.txt URLs and related test routine.
2207
2208         * res.h: Ditto.
2209
2210         * url.c: Implemented are_urls_equal function for URL comparison and
2211         related testing routine.
2212
2213         * url.h: Ditto.
2214
2215         * convert.c: Fixes for recursive spider mode: don't consider
2216         non-existing robots.txt as a broken link, and use are_urls_equal
2217         instead of strcasecmp for referrer URLs comparison.
2218
2219         * test.c: Call tests routines for are_urls_equal and
2220         is_robots_txt_url.
2221
2222 2006-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2223
2224         * wget.h (wgint): Typedef to any 64-bit (or larger) type we can
2225         find, not necessarily off_t or long.
2226
2227 2006-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2228
2229         * cmpt.c (strtoll): Check for overflow and underflow without
2230         relying on (technically) undefined behavior.  Don't assume that
2231         strtoll_type is 64 bits wide.
2232
2233 2006-06-21  Hrvoje Niksic  <hniksic@xemacs.org>
2234
2235         * utils.c (base64_encode): Cast void pointer to char * before
2236         doing arithmetic.
2237
2238 2006-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
2239
2240         * utils.c (base64_encode): Made TBL const.
2241         (base64_decode): Made the base64_char_to_value table const.
2242
2243 2006-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
2244
2245         * utils.c (base64_encode): Made the DATA pointer void * so the
2246         callers can pass it any kind of pointer (including both signed and
2247         unsigned char pointers).
2248         (base64_decode): Ditto for DEST.
2249
2250 2006-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
2251
2252         * utils.c (base64_encode): Would read past end of STR.
2253         Reported by rick@eckle.org.
2254
2255 2006-06-13  Mauro Tortonesi  <mauro@ferrara.linux.it>
2256
2257         * options.h (struct options): Introduced member restrict_files_case to
2258         keep track of preferences on character case restrictions for
2259         filenames.
2260
2261         * init.c: Modified defaults and cmd_spec_restrict_file_names to
2262         support character case restrictions for filenames. Added
2263         test_cmd_spec_restrict_file_names unit test.
2264
2265         * url.c: Modified append_uri_pathel to support character case
2266         restrictions for filenames. Added test_append_uri_pathel unit test.
2267
2268         * test.c: Added test_cmd_spec_restrict_file_names and
2269         test_append_uri_pathel to the list of unit tests to run.
2270
2271 2006-06-12  Mauro Tortonesi  <mauro@ferrara.linux.it>
2272
2273         * retr.c (retrieve_from_file): Use retrieve_tree and automatically
2274         turn on opt.follow_ftp in case of recursive FTP retrieval through HTTP
2275         proxy.
2276
2277         * main.c: Automatically turn on opt.follow_ftp in case of recursive
2278         FTP retrieval through HTTP proxy.
2279
2280 2006-06-12  Tony Lewis  <tlewis@exelana.com>
2281
2282         * main.c: Improved CHEN Peng's patch by proposing a simpler logic.
2283
2284 2006-06-12  CHEN Peng  <chenpeng@alumni.nus.edu.sg>
2285
2286         * main.c: Use retrieve_tree in case of recursive FTP retrieval through
2287         HTTP proxy.
2288
2289 2006-05-25  Mauro Tortonesi  <mauro@ferrara.linux.it>
2290
2291         * convert.c: Added mechanisms to keep track broken links.
2292
2293         * convert.h: Ditto.
2294
2295         * wget.h: Reordered and enumerated uerr_t constants.
2296
2297         * recur.c: Fixes to support recursive spider mode.
2298
2299         * http.c: Ditto.
2300
2301         * main.c: Print broken links in case of recursive spider mode.
2302
2303         * retr.c: Changed interface of retrieve_url.
2304
2305         * retr.h: Ditto.
2306
2307         * ftp.c: Changed interface of ftp_loop.
2308
2309         * ftp.h: Ditto.
2310
2311         * res.c: Minor change to reflect changes in interface of retrieve_url.
2312
2313 2006-05-18  Lawrence Jones  <lawrence.jones@ugs.com>
2314
2315         * ftp-ls.c (ftp_parse_unix_ls): Correct size parsing, add size
2316         and filename debugging output.
2317
2318 2006-04-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
2319
2320         * http.c: If Content-Disposition header is present, allow unique
2321         filename generation unless -nc is given. Permit to disable parsing of
2322         Content-Disposition header.
2323
2324         * options.h: Added option --no-content-disposition to disable parsing
2325         of HTTP Content-Disposition header.
2326
2327         * init.c: Ditto.
2328
2329         * main.c: Ditto.
2330
2331 2006-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
2332
2333         * hash.c (TOLOWER): Wrap macro arg in parentheses.
2334
2335 2006-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
2336
2337         * http.c (parse_content_disposition): Doc fix.
2338
2339 2006-03-15  Mauro Tortonesi  <mauro@ferrara.linux.it>
2340
2341         * utils.c: Restricted operational semantics of frontcmp and proclist
2342         from generic strings to directory names and them to subdir_p and
2343         dir_matches_p respectively.  Applied George Ogata's one line patch to
2344         restrict algorithm of subdir_p to full directory name matching.  Added
2345         testcases for subdir_p and dir_matches_p.
2346
2347         * utils.h: Changed all frontcmp occurrences to subdir_p.
2348
2349         * recur.c: Ditto.
2350
2351         * test.c: Changed type returned by test functions from char * to const
2352         char *.  Added test_subdir_p and test_dir_matches_p to the list of
2353         tests to run.
2354
2355         * http.c (test_parse_content_disposition): Changed return type from
2356         char * to const char *.
2357
2358 2006-03-14  Mauro Tortonesi  <mauro@ferrara.linux.it>
2359
2360         * recur.c (struct queue_element): Changed type of html_allowed member
2361         to bool.
2362
2363 2006-03-09  Mauro Tortonesi  <mauro@ferrara.linux.it>
2364
2365         * ftp.c (ftp_list): Try `LIST -a' command first and revert to `LIST'
2366         in case of failure.
2367
2368 2006-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
2369
2370         * hash.c (TOLOWER): Fix definition when STANDALONE.
2371         Reported by Beni Serfaty.
2372
2373 2006-03-02  Mauro Tortonesi  <mauro@ferrara.linux.it>
2374
2375         * http.c (http_loop): Fixed recursive HTTP retrieval.
2376
2377 2006-02-28  Hrvoje Niksic  <hniksic@xemacs.org>
2378
2379         * http.c (extract_param): Declare extern so it can be used from
2380         other files.
2381         (extract_param): Return error for empty name.
2382
2383 2006-02-28  Hrvoje Niksic  <hniksic@xemacs.org>
2384
2385         * url.c (find_last_char): Define in terms of memrchr.
2386
2387         * cmpt.c (memrchr): Define it on systems that don't have it.
2388
2389         * http.c (extract_param): New function for parsing header values
2390         with parameters.
2391         (parse_content_disposition): Use it.  Don't allow slashes and
2392         backslashes in the file name.
2393
2394 2006-02-27  Hrvoje Niksic  <hniksic@xemacs.org>
2395
2396         * url.c (path_simplify): Don't preserve ".." at beginning of path.
2397         Suggested by Frank McCown.
2398
2399 2006-02-25  Hrvoje Niksic  <hniksic@xemacs.org>
2400
2401         * http.c (gethttp): Only use FILE.N.html if FILE.html exists.
2402
2403 2006-02-09  Hrvoje Niksic  <hniksic@xemacs.org>
2404
2405         * mswindows.c (run_with_timeout): Made thread_hnd non-static.
2406
2407 2006-02-05  Hrvoje Niksic  <hniksic@xemacs.org>
2408
2409         * retr.c (sleep_between_retrievals): Sleep at a minimum of 1/2 of
2410         the specified wait period.
2411
2412 2006-02-03  Hrvoje Niksic  <hniksic@xemacs.org>
2413
2414         * utils.c (number_to_string): Don't use sprintf for printing
2415         WGINT_MIN; simply divide n by 10 and defer printing the last
2416         digit.
2417         (number_to_string): Removed the SPRINTF_WGINT macro.
2418
2419 2006-02-03  Mauro Tortonesi  <mauro@ferrara.linux.it>
2420
2421         * http.c: Fixed support for Content-Disposition header.
2422
2423         * test.c: Added test_parse_content_disposition to the list of unit
2424         tests to run.
2425
2426 2006-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
2427
2428         * hash.c: Don't define countof if it's already defined.
2429
2430         * hash.c: Obtain the definition of uintptr_t when standalone.
2431
2432 2006-01-30  Mauro Tortonesi  <mauro@ferrara.linux.it>
2433
2434         * http.c: Changed output format. Removed excessively verbose debugging
2435         output.
2436
2437 2005-12-07  Mauro Tortonesi  <mauro@ferrara.linux.it>
2438
2439         * http.c: Fixed pre-download verbose output which was broken by
2440         HTTP code refactoring.
2441
2442 2005-11-23  Mauro Tortonesi  <mauro@ferrara.linux.it>
2443
2444         * http.c: Refactored HTTP code.  If -O is not used, the new code
2445         delays the choice of the file name where the downloaded resource
2446         will be saved until the HTTP headers have been retrieved.
2447         Added support for Content-Disposition header.
2448
2449 2005-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
2450
2451         * hash.c (INVALID_PTR): Use uintptr_t instead of unsigned long.
2452         (hash_pointer): Don't assume a pointer fits in `unsigned long'.
2453
2454 2005-11-02  Mauro Tortonesi  <mauro@ferrara.linux.it>
2455
2456         * Makefile.in: Removed support for unit testing (now it is in
2457         tests/Makefile.in).
2458
2459 2005-10-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
2460
2461         * Makefile.in: Added basic support for unit testing.
2462
2463         * test.c: Ditto.
2464
2465         * test.h: Ditto.
2466
2467 2005-10-13  Daniel Stenberg  <daniel@haxx.se>
2468
2469         * http-ntlm.c (ntlm_output): Fixed buffer overflow vulnerability.
2470
2471 2005-10-09  Russ Allbery  <rra@stanford.edu>
2472
2473         * snprintf.c: Remove round to round_int and pow10 to pow10_int, to
2474         avoid warnings from GCC 4.0.
2475
2476 2005-10-05  Mauro Tortonesi  <mauro@ferrara.linux.it>
2477
2478         * retr.c: Changed semantics of no_proxy_match.
2479
2480 2005-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
2481
2482         * main.c (main): Don't print the summary if nothing has been downloaded.
2483
2484 2005-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
2485
2486         * retr.c (retr_rate): Rename parameter from MSECS to SECS since it
2487         no longer holds milliseconds.
2488
2489 2005-09-01  Hrvoje Niksic  <hniksic@xemacs.org>
2490
2491         * progress.c: Introduce symbolic constants for "magic" values of
2492         0.2 and 0.9, REFRESH_INTERVAL and ETA_REFRESH_INTERVAL.
2493
2494 2005-08-27  Hrvoje Niksic  <hniksic@xemacs.org>
2495
2496         * cmpt.c (strtoll): Correctly handle strtoll("0x", ptr, 0) and
2497         strtoll("0x<nonhexchar>", ptr, 0) -- in both cases *ptr must be
2498         set to the position of 'x', not after it.
2499
2500 2005-08-27  Hrvoje Niksic  <hniksic@xemacs.org>
2501
2502         * hash.c (hash_table_map): Rename to hash_table_for_each and
2503         update callers.
2504         Document the meaning of the callback's return value.
2505         (hash_table_iterate): New function.
2506         (hash_table_iter_next): Likewise.
2507         Update most places that used hash_table_for_each to use the
2508         iteration, which doesn't require a temporary function with
2509         explicit state management.
2510
2511 2005-08-26  Albert Chin  <wget@mlists.thewrittenword.com>
2512
2513         * Makefile.in: Use @datadir@.  Define localedir as $(datadir)/locale.
2514
2515 2005-08-26  Jeremy Shapiro  <jnshapiro@gmail.com>
2516
2517         * openssl.c (ssl_init): Set SSL_MODE_AUTO_RETRY.
2518
2519 2005-08-23  Hrvoje Niksic  <hniksic@xemacs.org>
2520
2521         * host.c (address_list_from_ipv4_addresses): Use IP_INADDR_DATA.
2522
2523 2005-08-12  Hrvoje Niksic  <hniksic@xemacs.org>
2524
2525         * wget.h: Renamed strtoll_return to strtoll_type.
2526
2527 2005-08-11  Hrvoje Niksic  <hniksic@xemacs.org>
2528
2529         * progress.c (eta_to_human_short): Switch to days when printing
2530         more than 48h rather than 100h.  (It's not immediately apparent
2531         how many days there are in 83h.)
2532
2533 2005-08-11  Hrvoje Niksic  <hniksic@xemacs.org>
2534
2535         * cmpt.c (strtoll): Define it if missing on the system and if Wget
2536         needs it.
2537
2538         * mswindows.c (str_to_int64): Move to cmpt.c and rename to strtoll.
2539
2540 2005-08-10  Hrvoje Niksic  <hniksic@xemacs.org>
2541
2542         * host.c (print_address): Always use inet_ntop when IPv6 is
2543         enabled.
2544
2545         * host.h (ip_address): Simplify the data union.
2546
2547 2005-08-09  Hrvoje Niksic  <hniksic@xemacs.org>
2548
2549         * mswindows.c (inet_ntop): Also handle IPv4 addresses for
2550         completeness.
2551
2552 2005-08-09  Hrvoje Niksic  <hniksic@xemacs.org>
2553
2554         * http.c (gethttp): Don't read more than the amount of data
2555         specified by the content-length header.
2556
2557 2005-08-09  Vasil Dimov  <vd@datamax.bg>
2558
2559         * ftp.c (getftp): Don't free RESPLINE if ftp_response returns a
2560         status other than FTPOK.
2561
2562 2005-08-04  Giuseppe Bonacci  <g.bonacci@libero.it>
2563
2564         * ftp-ls.c (ftp_parse_unix_ls): Remember the position of the
2565         previous token instead of backtracking back to it.
2566
2567 2005-07-08  Gisle Vanem  <giva@bgnett.no>
2568
2569         * mswindows.h: Include process.h to get getpid() declaration.
2570
2571 2005-07-08  Hrvoje Niksic  <hniksic@xemacs.org>
2572
2573         * utils.c (aprintf): Use vasprintf where available.
2574
2575 2005-07-08  Hrvoje Niksic  <hniksic@xemacs.org>
2576
2577         * url.c (rewrite_shorthand_url): Simplify code using aprintf and
2578         strspn.
2579
2580 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
2581
2582         * gnutls.c (ssl_check_certificate): Check for the validity of the
2583         presented X509 certificate.
2584
2585 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
2586
2587         * openssl.c (ssl_check_certificate): Print custom error messages
2588         for frequent X509 certificate problems.
2589
2590 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
2591
2592         * mswindows.h: Define an alias for stat and fstat, as requested by
2593         config-compiler.h.
2594         (gai_strerror): Define to windows_strerror if NEED_GAI_STRERROR is
2595         defined.
2596
2597 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2598
2599         * mswindows.h: Use strtoll where available.
2600
2601 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2602
2603         * sysdep.h: Add a full declaration of fnmatch.h.
2604
2605 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2606
2607         * utils.c: Unconditionally include <setjmp.h>.
2608
2609 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2610
2611         * utils.c (fnmatch_nocase): New function.
2612         (proclist): Use it instead of fnmatch when opt.ignore_case is
2613         requested.
2614         (in_acclist): Respect opt.ignore_case.
2615         (frontcmp): Respect opt.ignore_case.
2616
2617         * options.h (struct options): New flag opt.ignore_case.
2618
2619 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2620
2621         * ptimer.c: Measure time in seconds rather than milliseconds.
2622         Adjusted all callers.
2623
2624 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2625
2626         * http.c (gethttp): When freeing MESSAGE, take into account that
2627         it can be NULL.
2628
2629 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2630
2631         * cmpt.c (timegm): Handle years after 2099.
2632
2633 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2634
2635         * cmpt.c (timegm): Remove unused variable.
2636
2637 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2638
2639         * cmpt.c (timegm): Don't call mktime; simply count the seconds
2640         between 1970-01-01 and the specified date.
2641
2642 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2643
2644         * wget.h (or): Define HAVE_SSL when either HAVE_OPENSSL or
2645         HAVE_GNUTLS are defined.
2646
2647         * gnutls.c: New file.
2648
2649 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2650
2651         * http.c (gethttp): Don't print the request write error message
2652         twice.
2653
2654 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2655
2656         * openssl.c (openssl_errstr): Instead of always using a large
2657         static buffer, only allocate the error string when there is an
2658         actual error.
2659
2660 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2661
2662         * xmalloc.c (debugging_free): Prefix hex pointer value with "0x"
2663         when printing.
2664
2665 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2666
2667         * utils.c (NEXT_BASE64_CHAR): Rename to NEXT_CHAR and simplify to
2668         get the next non-whitespace character.
2669
2670 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2671
2672         * utils.c (base64_decode): Don't silently tolerate non-base64
2673         non-white-space characters in the base64 stream.
2674
2675 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2676
2677         * connect.c (LAZY_RETRIEVE_INFO): Make last_tick unsigned to match
2678         transport_map_modified_tick.
2679
2680 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2681
2682         * config-post.h (alloca): Updated declaration to not enumerate all
2683         Windows compilers.
2684
2685 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2686
2687         * openssl.c (openssl_errstr): Separate error messages with "; ".
2688
2689 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
2690
2691         * ftp.c (getftp): Ditto.
2692
2693         * http.c (gethttp): Use fd_errstr.
2694
2695         * connect.c (fd_register_transport): Restructure parameters to
2696         include only a single structure that describes transport
2697         implementation.
2698
2699         * openssl.c (openssl_errstr): New function: dump SSL error strings
2700         into a static buffer and return a pointer to the buffer.
2701
2702         * connect.c (fd_errstr): New function; returns transport-specific
2703         error message, or strerror(errno) if transport doesn't supply one.
2704
2705 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
2706
2707         * mswindows.h: Also wrap accept() and listen().
2708
2709 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
2710
2711         * url.c (path_end): Skip separators appropriate for the scheme.
2712         (strpbrk_or_eos): Remove gcc-specific version, as the optimization
2713         it tried to perform no longer applies.
2714
2715 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2716
2717         * host.c: Don't include "connect.h" now that we no longer have
2718         socket_has_inet6.
2719
2720 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2721
2722         * host.c: Remove extraneous definition of netdb.h.
2723
2724 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2725
2726         * http.c (gethttp): Skip error message body in the keep-alive
2727         case.
2728
2729 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2730
2731         * url.c (url_parse): Would crash when parsing fragments.  Support
2732         fragments for FTP URLs too.
2733
2734 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2735
2736         * version.c: Don't use "cvs" in version name, since we're not
2737         using CVS anymore.
2738
2739 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2740
2741         * progress.c (create_image): Ditto.
2742
2743         * retr.c (retr_rate): Display smaller rate numbers with greater
2744         precision.
2745
2746 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2747
2748         * http.c (response_head_terminator): Minor optimization.
2749
2750         * retr.c (fd_read_hunk): Call terminator with pointer to the start
2751         of the data and the pointer to the current data.  Changed all
2752         callers.
2753
2754 2005-07-01  Hrvoje Niksic  <hniksic@xemacs.org>
2755
2756         * url.c (url_parse): Make sure u->params is not initialized for
2757         http/https URLs.
2758         (url_parse): Don't crash on garbage following []-delimited IPv6
2759         addresses.
2760
2761 2005-07-01  Hrvoje Niksic  <hniksic@xemacs.org>
2762
2763         * main.c (print_help): Don't refer to the non-existent -nr in
2764         description of --mirror.
2765
2766 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
2767
2768         * host.c (pretty_print_address): Renamed to just print_address.
2769         Clarify documentation.
2770
2771 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
2772
2773         * http.c (gethttp): Explicitly document the different cases when
2774         generating the Host header.
2775
2776 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
2777
2778         * host.c (pretty_print_address): Handle error result from
2779         inet_ntop.
2780
2781 2005-06-30  Gisle Vanem  <giva@bgnett.no>
2782
2783         * mswindows.c (inet_ntop): New function.  Print IPv6 addresses
2784         using WSAAddressToString.
2785
2786 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2787
2788         * progress.c (dot_update): Remove unused variable row_qty.
2789
2790 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2791
2792         * main.c: Check for both SIGHUP and SIGUSR1 before using them.
2793
2794 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2795
2796         * utils.c: Unconditionally include locale.h.
2797
2798 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2799
2800         * ptimer.c: Include sys/time.h to get struct timeval.
2801
2802 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2803
2804         * wget.h: Remove obsolete definition of with_thousand_seps_sum.
2805
2806 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2807
2808         * gnu-md5.h: Unconditionally include limits.h.
2809
2810 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2811
2812         * utils.c (random_number): Use lrand48 if available.
2813         (random_float): Use drand48 if available.
2814
2815 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2816
2817         * main.c (secs_to_human_time): Use print_decimal when printing
2818         total download time in seconds.
2819
2820         * progress.c (print_row_stats): Use it to print total download
2821         time at the end of the download.
2822         (create_image): Ditto.
2823
2824         * utils.c (print_decimal): New function; print small decimal
2825         numbers with more precision than large ones.
2826
2827         * progress.c (print_row_stats): New function.  Print ETA after the
2828         download rate at the end of each row.
2829
2830 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
2831
2832         * init.c (parse_line): Check for alphanumerics.
2833
2834 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
2835
2836         * (dot_create): Remove unnecessary casts.
2837
2838 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
2839
2840         * ftp.c (getftp): Delete trailing newlines from LIST output so
2841         lines don't come out with trailing \015\012 with -S.
2842
2843 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2844
2845         * mswindows.h: Remove superfluous includes.
2846
2847 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2848
2849         * config-post.h (alloca): Amend alloca declaration to take care of
2850         all Win32 compilers, not just MSVC and MinGW.
2851
2852 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2853
2854         * utils.c (get_grouping_data): Force separator to "." rather than
2855         " " when "," is taken.
2856
2857 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2858
2859         * wget.h (PTR_FORMAT): Cast the result of sizeof to int before
2860         passing it to printf's %*.
2861
2862         * retr.h: Declare output_stream and output_stream_regular.
2863
2864         * ftp.h: Declare ftp_last_respline.
2865
2866         * convert.h: Declare dl_url_file_map.
2867
2868         * http.h: New file.
2869
2870 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2871
2872         * cookies.c: Make cookies_now static.
2873
2874 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2875
2876         * utils.c (human_readable): Remove intermediary cast to long; MSVC
2877         has problems casting *unsigned* __int64 to double.
2878
2879 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2880
2881         * sysdep.h: Use the system-provided fnmatch by default.
2882
2883 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2884
2885         * http.c (mktime_from_utc): Renamed to timegm and moved to cmpt.c.
2886         Don't compile it if GNU timegm is available.
2887         (http_atotm): Use timegm.
2888
2889 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2890
2891         * http.c (http_atotm): Correctly query the old locale value.
2892
2893 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2894
2895         * config-post.h (alloca): Don't #define alloca under MinGW32,
2896         which defines it in malloc.h, included from mswindows.h.
2897
2898 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2899
2900         * utils.c (get_grouping_data): Force the use of separators in C
2901         locale.
2902
2903 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2904
2905         * main.c (i18n_initialize): Set all locale categories.
2906
2907         * http.c (http_atotm): Temporarily set locale to "C".
2908
2909 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2910
2911         * http.c (gethttp): Improve "POST data file missing" error
2912         message.
2913
2914 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2915
2916         * progress.c (set_progress_implementation): Type COLON as const
2917         char *.
2918
2919 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2920
2921         * utils.c (with_thousand_seps): Handle negative numbers.
2922
2923 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2924
2925         * progress.c (create_image): Mark the "eta" string for translation.
2926
2927 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2928
2929         * html-url.c (get_urls_file): Don't explicitly set entry->next to
2930         NULL since entry is already zeroed out.
2931
2932 2005-06-26  Gisle Vanem  <giva@bgnett.no>
2933
2934         * mswindows.h: Define gai_strerror under MinGW.
2935
2936 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2937
2938         * utils.c (with_thousand_seps): Correctly implement thousand seps
2939         consisting of more than one character.
2940
2941 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2942
2943         * main.c (secs_to_human_time): Ditto.
2944
2945         * progress.c (create_image): Print more exact duration of very
2946         short downloads.
2947
2948         * main.c (secs_to_human_time): Don't translate time suffixes "h",
2949         "m", and "s", which are not strictly SI, but are "accepted for use
2950         with SI".
2951         (secs_to_human_time): Print really small intervals as 0s, not
2952         0.00s.
2953
2954 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2955
2956         * config-post.h: Replace the alloca declaration with the one from
2957         the latest Autoconf manual.  This should remove a warning with GCC
2958         on AIX.
2959
2960 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2961
2962         * ftp.c (getftp): Always invoke SIZE, not only when continuing a
2963         download.
2964
2965         * main.c (main): Ditto here.
2966
2967         * progress.c (create_image): When the download is finished, print
2968         how long it took.
2969
2970 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2971
2972         * main.c (main): Print the downloaded and quota amounts with the
2973         "human_readable" function.
2974
2975         * ftp.c (print_length): Ditto.
2976
2977         * http.c (gethttp): Don't display thousand separators.
2978
2979         * utils.c (with_thousand_seps): Rewritten to respect locale
2980         settings and to be type size agnostic.
2981
2982 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2983
2984         * utils.c (human_readable): Divide with 1024 instead of shifting
2985         so the operation can work with non-integer N.
2986
2987 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2988
2989         * progress.c (eta_to_human): New logic for more human-readable
2990         ETA.
2991
2992 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2993
2994         * utils.c (with_thousand_seps_sum): Decrease buffer size so it
2995         cannot overrun add_thousand_seps's buffer.
2996
2997 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2998
2999         * utils.c (SPRINTF_WGINT): The correct format is %I64d, not just
3000         %I64.
3001
3002 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
3003
3004         * http.c (http_loop): Don't warn about wildcards in HTTP URLs if
3005         globbing isn't requested in the first place.
3006
3007         * retr.c (retrieve_url): Temporarily turn off globbing when
3008         processing HTTP->FTP redirects.
3009
3010 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
3011
3012         * utils.c (with_thousand_seps_sum): Now defined only if
3013         SUM_SIZE_INT is double.
3014
3015         * wget.h (SUM_SIZE_INT): Instead of bothering with long, long
3016         long, __int64, and friends, simply either use wgint or double, end
3017         of story.  Since we know how to print either, we no longer need
3018         LARGE_INT_FMT.
3019
3020         * sysdeps.h (LARGE_INT): Renamed to SUM_SIZE_INT to better reflect
3021         its intent, and moved to wget.h.
3022
3023 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
3024
3025         * Makefile.in: No need to clean .libs.
3026
3027 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
3028
3029         * cookies.c (parse_set_cookies): Cast pointer subtraction to int
3030         before using it with %d; AIX compiler warns on this.
3031         Reported by Jens Schleusener.
3032
3033 2005-06-24  Hrvoje Niksic  <hniksic@xemacs.org>
3034
3035         * http.c (gethttp): Don't prepend / here.
3036
3037         * cookies.c (cookie_handle_set_cookie): Prepend / to PATH.
3038         (cookie_header): Ditto.
3039
3040 2005-06-24  Hrvoje Niksic  <hniksic@xemacs.org>
3041
3042         * init.c: opt.verbose must be declared as int.
3043
3044 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
3045
3046         * cmpt.c (strpbrk): Removed.
3047         (mktime): Removed.
3048         Include <time.h>.
3049
3050 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
3051
3052         * utils.c (read_file): Ditto.
3053
3054         * main.c (main): Use struct_fstat.
3055
3056         * mswindows.h (struct_fstat): Define a struct_fstat to deal with
3057         the fact that Borland 5.5 has 64-bit stat, but not 64-bit fstat!
3058
3059 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
3060
3061         * sysdep.h: Remove code that deals with Watcom.
3062
3063 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3064
3065         * all: Use bool instead of int and false/true instead of 0/non-0
3066         for boolean variables and values.
3067
3068 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3069
3070         * sysdep.h: Include the stdbool.h/_Bool/bool blurb from Autoconf.
3071
3072 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3073
3074         * init.c (cmd_lockable_boolean): Removed.
3075
3076 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3077
3078         * cookies.c (struct cookie): Use 1-bit bitfields for booleans
3079         which makes the structure takes less space at no cost in
3080         complexity.
3081
3082 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3083
3084         * Makefile.in ($(OBJ)): Add the config.h dependency.
3085
3086 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3087
3088         * openssl.c, connect.c, host.c: Replace instances of #ifdef
3089         ENABLE_DEBUG if (opt.debug) {...} #endif with IF_DEBUG {...}.
3090
3091         * main.c: Rename the IF_DEBUG defined here to WHEN_DEBUG.
3092
3093         * wget.h (IF_DEBUG): New macro.
3094         (DEBUGP): Define in terms of IF_DEBUG.
3095
3096 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3097
3098         * http.c (gethttp): Only handle --set-cookies (and assert that
3099         cookie jar exists) if opt.cookies is true.  Failure to do so
3100         triggered the assert when --no-cookies was used and the server
3101         sent a Set-Cookie header.  Ouch!
3102
3103 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3104
3105         * connect.c (select_fd): Expect select() to exist.
3106
3107         * utils.c (xsleep): Always use select() as sleep fallback on
3108         non-Windows platforms.
3109
3110         * ptimer.c: Delete the implementation of PTIMER_TIME.
3111
3112         * main.c: Assume existence of signal(), test for different signal
3113         names instead.
3114
3115         * cmpt.c: Better document reasons why certain functions are
3116         included.
3117
3118 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3119
3120         * Makefile.in: Remove the manually maintained dependency list;
3121         make all object files depend on every header.
3122
3123 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
3124
3125         * hash.c: Rename "mapping" to "cell" to avoid confusion with the
3126         term "mapping" (or "map") sometimes being used for the entire hash
3127         table.  Also rename "non-empty" to "occupied" for easier reading
3128         of if (!NON_EMPTY (...)) ... .
3129
3130 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
3131
3132         * main.c, ptimer.c, sysdep.h, utils.c: Use #elif to simplify reading of
3133         chained if-else-else-else-... statements.
3134
3135 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
3136
3137         * all: Return type of signal handlers is `void'.  Include signal.h
3138         unconditionally.
3139
3140         * all: Don't explicitly cast values returned by malloc.  We no
3141         longer support ancient compilers that don't declare malloc, and we
3142         never supported C++ builds.
3143
3144 2005-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
3145
3146         * all: Don't declare errno.  Include both time.h and sys/time.h,
3147         as long as sys/time.h exists.  Don't dereference function pointers
3148         when invoking the functions they point to.
3149
3150         * cmpt.c (memmove): Remove function mandated by C89.
3151         (strerror): Ditto.
3152         (strstr): Ditto.
3153
3154         * all: Undo the K&R-ization changes from 2005-05-03.
3155
3156         * all: Remove support for K&R compilers: use C89 function
3157         declarations, remove definition of PARAMS, remove support for
3158         varargs, and remove ansi2knr.  Assume the presence of time.h,
3159         string.h, and other headers mandated by C89.
3160
3161 2005-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
3162
3163         * init.c (cmd_lockable_boolean): Don't recognize literal "2" and
3164         "-1" values; unlike 0 and 1, those should never be exposed to the
3165         user.  Update the error message to be more self-consistent, as
3166         proposed by Benno Schulenberg.
3167
3168 2005-06-18  Hrvoje Niksic  <hniksic@xemacs.org>
3169
3170         * http.c (gethttp): Don't free "head" before using it to save
3171         headers.
3172
3173 2005-06-18  Hrvoje Niksic  <hniksic@xemacs.org>
3174
3175         * http.c (gethttp): When -E is in use, check for file existence
3176         after appending ".html" to the name and modify the file name if
3177         necessary.
3178
3179 2005-06-17  Hrvoje Niksic  <hniksic@xemacs.org>
3180
3181         * connect.c (socket_has_inet6): Removed.
3182
3183         * host.c (lookup_host): Don't use the AI_ADDRCONFIG getaddrinfo
3184         hint.
3185
3186 2005-06-16  Hrvoje Niksic  <hniksic@xemacs.org>
3187
3188         * init.c (cmd_lockable_boolean): Improve the error message so it
3189         lists the more useful values first.
3190
3191 2005-06-15  Hrvoje Niksic  <hniksic@xemacs.org>
3192
3193         * http.c (gethttp): Also report the system error when the POST
3194         data file is missing.
3195
3196 2005-06-15  Benno Schulenberg  <benno@nietvergeten.nl>
3197
3198         * ftp.c, http.c, connect.c, cookies.c, html-url.c, init.c, res.c:
3199         Gettext-ize messages that were previously missed.
3200
3201 2005-06-15  Hrvoje Niksic  <hniksic@xemacs.org>
3202
3203         * host.h (ip_address): Remove the trailing comma from the type
3204         enum in the no-IPv6 case.
3205
3206         * main.c (struct cmdline_option): Remove the trailing comma from
3207         the enum.
3208
3209         Reported by Jens Schleusener.
3210
3211 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
3212
3213         * url.c (strpbrk_or_eos): Check for a recent GCC version before
3214         using the statement-as-expression extension.
3215
3216 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
3217
3218         * http.c (gethttp): Don't attempt to "skip short body" if we're
3219         issuing a HEAD request (in which case the response head is not
3220         followed by a body).
3221
3222 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
3223
3224         * init.c (cmd_spec_header): Don't split the string along the
3225         commas using cmd_vector; just append the new value using
3226         vec_append instead.
3227
3228         * utils.c (vec_append): New function.
3229
3230 2005-05-27  Andreas Beckmann  <debian@abeckmann.de>
3231
3232         * html-url.c (tag_handle_link): Mark the content from the <link
3233         src="..."> tag as expecting HTML.
3234
3235 2005-05-24  Hrvoje Niksic  <hniksic@xemacs.org>
3236
3237         * http.c (http_atotm): Document the origin of the "cookie date"
3238         format.
3239
3240 2005-05-21  Hrvoje Niksic  <hniksic@xemacs.org>
3241
3242         * init.c (setval_internal): Report exact command name alongside
3243         the "display name".
3244
3245 2005-05-18  Hrvoje Niksic  <hniksic@xemacs.org>
3246
3247         * cookies.c (update_cookie_field): Explicitly cast -1 to time_t to
3248         cope with systems where time_t is unsigned.
3249
3250         * cookies.c: Remove unnecessary casts to time_t from values
3251         already of that type.
3252
3253 2005-05-17  Hrvoje Niksic  <hniksic@xemacs.org>
3254
3255         * ftp.c (ftp_loop_internal): Same here.
3256
3257         * http.c (http_loop): Don't clobber the file when -c is specified
3258         and the first attempt to retrieve the file fails.
3259
3260 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
3261
3262         * openssl.c (ssl_check_certificate): Print all issues with a
3263         certificate.
3264
3265 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
3266
3267         * ftp-basic.c: Don't xfree() the line returned by ftp_response if
3268         the returned code is not FTPOK.
3269
3270 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
3271
3272         * init.c (cleanup): Don't free the non-existent opt.ftp_acc.  Free
3273         the SSL-related stuff.
3274
3275 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
3276
3277         * ftp.c (print_length): Consistently print \n at end of the
3278         "Length" line.
3279
3280 2005-05-14  Hrvoje Niksic  <hniksic@xemacs.org>
3281
3282         * openssl.c (ssl_connect): Announce the beginning and the end of
3283         the SSL handshake when in debug mode.
3284
3285         * wget.h (PTR_FORMAT): New macro for easier printing of pointer
3286         values.  Use %0*lx along with PTR_FORMAT instead of %p.
3287
3288 2005-05-14  Hrvoje Niksic  <hniksic@xemacs.org>
3289
3290         * http.c (gethttp): Would forget to close the connection when
3291         keep_alive was not used.
3292
3293 2005-05-13  Hrvoje Niksic  <hniksic@xemacs.org>
3294
3295         * openssl.c (pattern_match): Document the code that decides
3296         whether "*" matches ".".
3297
3298 2005-05-12  Hrvoje Niksic  <hniksic@xemacs.org>
3299
3300         * ftp-ls.c (ftp_index): Use %d to print the port number, which is
3301         now int.
3302         From Steven M. Schweda's VMS patches.
3303
3304 2005-05-12  Hrvoje Niksic  <hniksic@xemacs.org>
3305
3306         * url.c (rewrite_shorthand_url): Don't rewrite "https://host" to
3307         "ftp://https//host" when SSL is not used.
3308
3309 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
3310
3311         * openssl.c (ssl_check_server_identity): Renamed to
3312         ssl_check_certificate because it does more than just checking the
3313         server's identity.
3314         (ssl_check_certificate): Tell the user about
3315         --no-check-certificate.
3316
3317 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
3318
3319         * openssl.c (ssl_init): Always use SSL_VERIFY_NONE, so that the
3320         handshake finishes even if the certificate is invalid.  That way
3321         ssl_check_server_identity can provide better diagnostics on why
3322         the verification failed.
3323
3324 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
3325
3326         * openssl.c (pattern_match): New function.
3327         (ssl_check_server_identity): Treat peer certificate common name as
3328         wildcard.
3329
3330 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
3331
3332         * openssl.c (ssl_check_server_identity): Print certificate subject
3333         and issuer.
3334
3335 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
3336
3337         * res.c (res_register_specs): Correctly pass pointers to
3338         hash_table_get_pair.
3339
3340 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
3341
3342         * http.c (gethttp): Call ssl_check_server_identity.
3343
3344         * openssl.c (ssl_check_server_identity): New function, verifies
3345         that the host name in the certificate matches the actual host
3346         name.
3347         (verify_cert_callback): Removed, since it didn't do anything
3348         except returning the preverify_ok argument.
3349
3350         * connect.c (fd_transport_context): Allow retrieval of the context
3351         pointer registered with fd_register_transport.
3352
3353 2005-05-09  Hrvoje Niksic  <hniksic@xemacs.org>
3354
3355         * openssl.c (verify_cert_callback): Renamed from verify_callback.
3356         Always return the received "ok" value.  Print the X509 name in
3357         debug mode.
3358         (ssl_init): Enable partial writes in SSL context.
3359
3360 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
3361
3362         * http.c (http_loop): Check for wildcards in the URL path
3363         component, not in the whole URL.
3364
3365         * ftp.c (ftp_loop): Check for wildcards in URL path before
3366         unescaping, so the users can escape globbing metacharacters with %
3367         escapes.
3368
3369 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
3370
3371         * init.c (run_command): Correctly interpret the return value of
3372         parse_line.
3373         (commands): Re-alphabetize.
3374
3375 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
3376
3377         * netrc.c (parse_netrc): Explicitly check for assignment != NULL
3378         to silence warning from Borland C.
3379
3380         * url.c (sync_path): Don't unnecessarily increment p.
3381         (url_parse): Don't unnecessarily set url_encode to NULL just
3382         prior to return from the function.
3383
3384 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
3385
3386         * log.c (escnonprint_internal): Place variable declarations
3387         before other statements.
3388
3389 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
3390
3391         * html-url.c: Include recur.h.
3392
3393         * http.c (request_new): Define as accepting no args.
3394
3395 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
3396
3397         * url.c (strpbrk_or_eos): Made inline.  Use strchr(s, '\0') for
3398         finding the NUL char position.
3399
3400 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
3401
3402         * url.c (decide_copy_method): Renamed to char_needs_escaping.
3403         Since it now returns only two possible values, change it to return
3404         boolean (int).
3405
3406 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
3407
3408         * ftp-basic.c (ftp_request): Prevent newlines in VALUE causing
3409         inadvertent sending of multiple FTP commands.
3410
3411 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
3412
3413         * url.c (decide_copy_method): Never cause reencode_escapes to
3414         decode % escapes; it is too intrusive and breaks some servers.
3415
3416 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
3417
3418         * http.c (gethttp): When tunnelling SSL traffic over proxy with
3419         CONNECT, we're really talking to the remote server directly.
3420         Because of this, the request-line argument must be the URL path
3421         rather than the whole URL, as it would be when using regular
3422         proxies.
3423         Reported by Charles Lane.
3424
3425 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
3426
3427         * init.c (cmd_spec_useragent): Allow empty User-Agent.
3428
3429         * http.c (gethttp): Don't print "unknown authentication scheme"
3430         for failed Basic authentication.
3431         (SET_USER_AGENT): Don't set user-agent if opt.useragent is empty.
3432         (gethttp): Use alloca for allocation of www_authenticate.
3433
3434 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
3435
3436         * main.c (print_help): Fix wording of --secure-protocol help text.
3437
3438 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
3439
3440         * cmpt.c (strstr): Updated from glibc 2.3.5.
3441
3442 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3443
3444         * http.c (http_atotm): Zero out the whole struct tm being passed
3445         to strptime.
3446
3447 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3448
3449         * main.c (main): Propagate option name to setoptval.
3450
3451         * init.c (setoptval): Accept another argument, OPTNAME.  Propagate
3452         that argument as the option name independently of the actual
3453         command, determined by command_by_name(com).
3454
3455 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3456
3457         * init.c (parse_line): Make the return value indicate whether
3458         there was a syntax error or a setter failed.
3459         (run_wgetrc): Return an indication on whether an error has been
3460         encountered.
3461         (initialize): Abort if there have been errors running either
3462         .wgetrc file.
3463
3464 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3465
3466         * log.c (copy_and_escape): Slightly reduce code repetition between
3467         the two loops.
3468
3469 2005-05-05  Charles C.Fu  <ccwf@bacchus.com>
3470
3471         * utils.c (proclist): Strip leading slash when calling fnmatch
3472         too, otherwise wildcard comparisons always fail.
3473
3474 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3475
3476         * utils.c (touch): Set access time to current time.
3477
3478 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3479
3480         * url.c (url_unescape): Don't unescape %00, it effectively
3481         truncates the string.
3482
3483 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3484
3485         * log.c (copy_and_escape): Replace the FOR_URI argument with a
3486         slightly more general mechanism for specifying different kinds of
3487         escape.
3488
3489 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3490
3491         * ftp-basic.c (ftp_response): Fix printing FTP server response.
3492
3493 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3494
3495         * retr.c (limit_bandwidth_reset): Reset sleep_adjust.
3496         (limit_bandwidth): Don't allow huge "adjustment" values that
3497         result from being suspended for a while.
3498
3499 2005-05-04  Hrvoje Niksic  <hniksic@xemacs.org>
3500
3501         * wget.h: If gettext was found but libtintl.h wasn't, declare
3502         gettext's return type to avoid type mismatches.
3503
3504 2005-05-03  Hrvoje Niksic  <hniksic@xemacs.org>
3505
3506         * url.c (url_parse): Rename label `error' to avoid conflict with
3507         identifier.
3508
3509         * retr.c (fd_read_body): Rename label `out' to avoid conflict with
3510         identifier.
3511         (fd_read_hunk): Use explicit double constant.
3512         (retrieve_from_file): Don't use string concatenation.
3513         (sleep_between_retrievals): Make sure xsleep is called with a
3514         `double' argument.
3515         (no_proxy_match): Define as static, like it is declared.
3516
3517         * progress.c (bar_create): Use 0.0 instead of 0 because K&R
3518         compilers can't automatically promote it.
3519
3520         * http-ntlm.c (ntlm_output): Replace \xHH sequences with \OOO for
3521         the sake of old compilers.
3522
3523         * ftp.c (ftp_loop_internal): Don't use string concatenation.
3524
3525         * http.c (request_send): Use explicit double constants when
3526         calling fd_read and fd_write.
3527         (post_file): Ditto.
3528         (gethttp): Ditto.
3529         (skip_short_body): Ditto.
3530
3531         * ftp-basic.c: When calling fd_write, specify the last argument as
3532         a `double' constant for the sake of K&R compilers which don't see
3533         the prototype and therefore can't promote it to double
3534         automatically.
3535
3536         * cookies.c (cookie_jar_load): Rename abort label to abort_cookie
3537         to avoid name conflict in K&R compilers.
3538
3539 2005-04-29  Hrvoje Niksic  <hniksic@xemacs.org>
3540
3541         * ptimer.c (posix_init): Since we allow _POSIX_MONOTONIC_CLOCK==0,
3542         it is not enough to check for _POSIX_MONOTONIC_CLOCK-0, we must
3543         also check for defined(_POSIX_MONOTONIC_CLOCK).
3544
3545 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
3546
3547         * ftp.c, hash.c, connect.c, host.c, http.c: Remove unreached code,
3548         such as "break" following return or abort.
3549
3550 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
3551
3552         * init.c (commands): Wrap the use of opt.random_file in #ifdef
3553         HAVE_SSL.
3554
3555 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
3556
3557         * http.c (gethttp): Correctly set the user agent.
3558
3559 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
3560
3561         * init.c (cmd_spec_useragent): Free the old value of
3562         opt.useragent before setting the new one.
3563
3564 2005-04-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
3565
3566         * main.c: Map --ftp-password, --http-password and --proxy-password to
3567         the new ftppassword, httppassword and proxypassword commands
3568         respectively.  Document the --user and --password options in the help
3569         string.
3570
3571 2005-04-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
3572
3573         * ftp.c: Add support for --user and --password.
3574
3575         * http.c: Add support for --user and --password.
3576
3577         * init.c: Deprecated ftppasswd, httppasswd, login, passwd and
3578         proxypasswd commands.  Added ftppassword, ftpuser, httppassword,
3579         password, proxypassword and user commands.
3580
3581         * main.c: Renamed --ftp-passwd to --ftp-password.  Added --ftp-user,
3582         --http-password, --password, --proxy-password and --user.  Deprecated
3583         --http-passwd and --proxy-passwd.  Added documentation for new options
3584         and removed documentation for deprecated options in the help string.
3585
3586         * options.h (struct options): Added user and passwd members to handle
3587         --user and --password respectively.  Renamed ftp_acc and ftp_pass
3588         members to ftp_user and ftp_passwd for consistency.
3589
3590 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
3591
3592         * main.c (print_help): Advertise "DER", not "ASN1".
3593
3594 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
3595
3596         * openssl.c (init_prng): Disable the weak random seed by default.
3597
3598         * http.c (gethttp): Simplify SSL initialization; disable SSL when
3599         anything goes wrong with the initialization.
3600
3601         * options.h (struct options): New option opt.random_file.
3602
3603 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
3604
3605         * init.c: Wrap private key commands in IF_SSL.
3606
3607 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
3608
3609         * openssl.c (ssl_init): Ditto.
3610
3611         * options.h (struct options): Allow separate specification of key
3612         type and certificate type.
3613
3614         * init.c (cmd_spec_cert_type): Provide a "der" synonym for "asn1"
3615         certificate encoding.
3616
3617 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3618
3619         * openssl.c: Renamed "gen_sslfunc.c" to "openssl.c" and
3620         "gen_sslfunc.h" to "openssl.h".  This reflects the intent of
3621         openssl.c encapsulating the OpenSSL-specific code.
3622
3623 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3624
3625         * init.c: Renamed "closure" (a synonym for context in some
3626         cultures) to "place", which more accurately reflects the usage.
3627
3628 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3629
3630         * gen_sslfunc.c (ssl_init): Use default locations for loading the
3631         certificate bundles.
3632         (ssl_init_prng): Disable the cryptographically weak PRNG
3633         initialization fallback.
3634
3635         * init.c: Renamed SSL command-line arguments and wgetrc commands.
3636         (defaults): Check the server certificate by default.
3637
3638 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3639
3640         * cookies.c (cookie_handle_set_cookie): Delete the part of the
3641         path after the trailing slash.
3642
3643         * http.c (gethttp): Call cookie_handle_set_cookie with path that
3644         begins with '/'.
3645
3646 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3647
3648         * http.c (gethttp): Call skip_short_body only if keep_alive is in
3649         use.
3650         (gethttp): Send the User-Agent header with the CONNECT request as
3651         well.
3652
3653 2005-04-25  Hrvoje Niksic  <hniksic@xemacs.org>
3654
3655         * main.c (option_data): Removed support for the undocumented flag
3656         --use-proxy.
3657
3658 2005-04-25  Hrvoje Niksic  <hniksic@xemacs.org>
3659
3660         * main.c (option_data): Don't treat -Y as a boolean switch; treat
3661         it as a value switch instead, so "-Y off" continues to work.
3662
3663 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
3664
3665         * utils.c (aprintf): Delete unreachable statement.
3666
3667 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
3668
3669         * host.c (cmp_prefer_ipv4): New function.
3670         (cmp_prefer_ipv6): New function.
3671         (lookup_host): Use the appropriate comparator according to
3672         opt.prefer_family.
3673
3674         * init.c: New option prefer_family.
3675
3676         * host.c (is_valid_ipv6_address): Spell NS_* constants in lower
3677         case to avoid clash with system headers.
3678         (lookup_host): Reorder the addresses so that IPv4 ones come first.
3679
3680         * utils.c (stable_sort): New function.
3681
3682 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
3683
3684         * connect.c (retryable_socket_connect_error): Return 0 for
3685         ENETUNREACH and EHOSTUNREACH.
3686
3687 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
3688
3689         * cmpt.c: Reenable the memmove implementation for systems that
3690         lack it.
3691
3692         * http.c (gethttp): Store the "authorized" state of the persistent
3693         connection.
3694         (request_remove_header): New function.
3695         (gethttp): Don't send the "Basic" authentication if the connection
3696         is already authorized.
3697
3698 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
3699
3700         * utils.c (base64_encode): Treat input as unsigned chars.
3701         Required for correct encoding of binary stuff.
3702
3703 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
3704
3705         * http-ntlm.c: Format the function definitions in an
3706         ansi2knr-friendly fashion.
3707
3708 2005-04-22  Hrvoje Niksic  <hniksic@xemacs.org>
3709
3710         * http.c (gethttp): Handle multiple WWW-Authentication headers,
3711         only one of which is recognized.  Those are sent by IIS with NTLM
3712         authorization.
3713         (create_authorization_line): Propagate information whether
3714         authorization is finished.
3715         (gethttp): Only stop authorization when it's really finished, not
3716         after fixed two steps.
3717
3718 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
3719
3720         * gen_sslfunc.c (ssl_init): Fix warning message text; mark the
3721         message as translatable.
3722
3723 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
3724
3725         * main.c (print_help): Print the EGD option outside the cluster of
3726         SSL options.
3727
3728 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
3729
3730         * http-ntlm.c (ntlm_output): Fix setting the domain.
3731         Suggested by Sami Krank.
3732
3733 2005-04-20  Mauro Tortonesi  <mauro@ferrara.linux.it>
3734
3735         * connect.c: Set IPV6_V6ONLY socket option when -6 switch is used.
3736
3737 2005-04-20  FUJISHIMA Satsuki  <sf@FreeBSD.org>
3738
3739         * http.c (request_set_header): Fix the check whether a new header
3740         needs to be allocated.
3741
3742 2005-04-18  Hrvoje Niksic  <hniksic@xemacs.org>
3743
3744         * utils.c (base64_encode): Use the parameter order that makes more
3745         sense.  Return the length of the base64 written.  Updated all
3746         callers.
3747
3748 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
3749
3750         * http.c (request_set_header): Free NAME when VALUE is NULL and
3751         freeing the header name is requested.
3752
3753 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
3754
3755         * snprintf.c (fmtstr): Declare VALUE as const char *.
3756         Based on patch by Russ Allbery.
3757
3758 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
3759
3760         * snprintf.c (fmtfp): More correct handling of significant digit
3761         count with %g -- 0.002 has one significant digit, not three.
3762
3763 2005-04-16  Hrvoje Niksic  <hniksic@xemacs.org>
3764
3765         * retr.c (fd_read_body): Respect read timeout with non-interactive
3766         or no progress gauge -- treat ETIMEDOUT specially only when
3767         progress_interactive.
3768         Reported by FUJISHIMA Satsuki.
3769
3770 2005-04-16  FUJISHIMA Satsuki  <sf@FreeBSD.org>
3771
3772         * http.c (gethttp): Don't use HTTP/1.0 persistent connections over
3773         proxy.
3774
3775 2005-04-16  Hrvoje Niksic  <hniksic@xemacs.org>
3776
3777         * snprintf.c: Use the PARAMS macro to handle prototypes.  Write
3778         function definitions in the ansi2knr-friendly way.
3779         (fmtstr): If string precision is specified, don't read VALUE past
3780         it.
3781         (dopr): Actually print %g and %e formats.
3782         (fmtfp): Fix a bug that caused 0.01 to be printed as 0.1.
3783         (fmtfp): Use LLONG in floating point conversions to be able to
3784         convert more digits.
3785         (fmtfp): Interpret precision as number of significant digits with
3786         %g.
3787         (fmtfp): Omit trailing decimal zeros with %g.
3788
3789         * snprintf.c: Don't include <ctype.h> because none of it is used.
3790         Include strings.h/string.h, as per Autoconf.
3791
3792 2005-04-15  Hrvoje Niksic  <hniksic@xemacs.org>
3793
3794         * ptimer.c: Use _POSIX_TIMERS - 0 > 0, which handles the case when
3795         _POSIX_TIMERS is defined but empty, as well as the case when it is
3796         undefined.  Do the same with the check for _POSIX_MONOTONIC_CLOCK.
3797         Suggested by Larry Jones.
3798
3799 2005-04-15  Hrvoje Niksic  <hniksic@xemacs.org>
3800
3801         * ptimer.c: Check that _POSIX_TIMERS is defined as well as > 0.
3802         Problem reported by Steven M. Schweda.
3803
3804 2005-04-14  Hrvoje Niksic  <hniksic@xemacs.org>
3805
3806         * http.c (skip_short_body): Print the skipped body data in debug
3807         mode.
3808         (skip_short_body): Don't skip more than 4k of body data.
3809         (skip_short_body): Return whether the skipping was successful.
3810         (gethttp): If skip_short_body failed, invalidate the connection.
3811
3812 2005-04-12  Gisle Vanem  <giva@bgnett.no>
3813
3814         * ftp.c (getftp): Ditto.
3815
3816         * http.c (gethttp): Open the output file in binary mode.
3817
3818 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3819
3820         * hash.c: Conditionalize including config.h on HAVE_CONFIG_H
3821         instead of on STANDALONE.
3822
3823 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3824
3825         * gen_sslfunc.c (ssl_print_errors): Made static.
3826         (ssl_print_errors): Eliminate potentially dangerous fixed-size
3827         error buffer.  Passing NULL to ERR_error_string causes it to use
3828         its own static buffer, which is fine for our purposes.
3829
3830         * gen_sslfunc.c: Include gen_sslfunc.h.  Make the declarations of
3831         ssl_init and ssl_conect match the actual definitions.
3832         (ssl_connect): Simply return a boolean, the SSL context is no
3833         longer useful as a return value.
3834
3835         * retr.c: Don't include SSL headers; we don't need them.
3836
3837 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3838
3839         * config-post.h: Don't define _VA_LIST under Solaris; it breaks
3840         compilation with GCC 3.4 under Solaris 10.  (It was defined to
3841         avoid a warning with previous versions of GCC.)
3842
3843 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3844
3845         * xmalloc.c (register_ptr): Warn the user to increase SZ prior to
3846         aborting.
3847
3848 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3849
3850         * convert.c (convert_cleanup): Free converted_files.
3851
3852 2005-04-10  Hrvoje Niksic  <hniksic@xemacs.org>
3853
3854         * wget.h (DEBUGP): Use __builtin_expect to give a hint to GCC that
3855         opt.debug is false in the vast majority of cases.
3856
3857 2005-04-10  Hrvoje Niksic  <hniksic@xemacs.org>
3858
3859         * config-post.h: Declare alloca as void *, not char *.
3860
3861 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
3862
3863         * recur.c (download_child_p): When -p is used, (temporarily)
3864         ignore accept/reject rules for HTMLs, even when they are at the
3865         maximum recursion depth.  That is because with -p we are, if
3866         necessary, overstepping the max. depth to get the requisites.
3867
3868 2004-06-12  Larry Jones <lawrence.jones@ugsplm.com>
3869
3870         * recur.c (download_child_p): Correct the logic in check number 6:
3871         test opt.reclevel (not DEPTH) against INFINITE_RECURSION.
3872
3873 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
3874
3875         * url.c: Use "static const" in preference to "const static".
3876         Sun's cc warns that "storage class after type is obsolescent".
3877
3878         * url.c (urlchr_table): Don't mark ~ as unsafe, too many broken
3879         web sites are confused when ~ is changed to %7E.  Their servers
3880         redirect /%7Efoo/ to /~foo/, which Wget again accesses using %7E,
3881         causing further redirections, therefore looping infinitely.  See
3882         Debian bug #301624 for an example.
3883
3884 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
3885
3886         * alloca.c: Include wget.h to be able to use xmalloc.  In addition
3887         to defining malloc to xmalloc, also define free to xfree.
3888
3889 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
3890
3891         * http-ntlm.c (ntlm_output): Use "char", not "unsigned char" for
3892         ntlmbuf.  Our base64 functions accept char anyway.
3893         (ntlm_output): Join up the format string, since we nominally
3894         support K&R compilers.
3895         (ntlm_output): Ditto.
3896
3897 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3898
3899         * ptimer.c: Use Windows timers under Cygwin, whose POSIX timer
3900         implementation is incomplete.
3901
3902 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3903
3904         * ptimer.c (struct ptimer): Remove the unused initialized field.
3905
3906         * ptimer.c: Renamed function parameters from WT (which used to
3907         stand for wget_timer or wtimer) to PT.
3908
3909 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3910
3911         * ptimer.c (posix_init): Be smarter about choosing clocks.  In
3912         decreasing order of preference, use CLOCK_MONOTONIC,
3913         CLOCK_HIGHRES, and CLOCK_REALTIME.
3914         (ptimer_allocate): Removed.
3915
3916         * ptimer.c: Refactor the code by cleanly separating the
3917         architecture-dependent code from the architecture-independent
3918         code.
3919
3920 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3921
3922         * ptimer.c (ptimer_init): Explicitly check that
3923         _POSIX_MONOTONIC_CLOCK is *both* defined and >=0.  (Undefined
3924         symbols are >=0.)
3925
3926 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3927
3928         * ptimer.c (ptimer_diff): Fix typo affecting Windows build.
3929
3930 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3931
3932         * ptimer.c (ptimer_init): In fact, _POSIX_MONOTONIC_CLOCK needs to
3933         be >= 0.
3934
3935         * ptimer.c (ptimer_init): Check whether _POSIX_MONOTONIC_CLOCK is
3936         defined instead of whether it's greater than 0.  glibc defines it
3937         to 0, but still makes it available via sysconf.
3938
3939 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3940
3941         * mswindows.c (str_to_int64): Rename OVERFLOW and UNDERFLOW to
3942         INT64_OVERFLOW and INT64_UNDERFLOW, since those names are used.
3943
3944 2005-04-07  Hrvoje Niksic  <hniksic@xemacs.org>
3945
3946         * ptimer.c: New file.  Move the "wtimer" functions from utils.c to
3947         this file and rename them to ptimer_.
3948
3949 2005-04-07  Hrvoje Niksic  <hniksic@xemacs.org>
3950
3951         * host.c (NO_ADDRESS): Define NO_ADDRESS only after the system
3952         headers have been included.
3953
3954 2005-04-06  Hrvoje Niksic  <hniksic@xemacs.org>
3955
3956         * http.c (pconn): Include NTLM data, which is per-connection.
3957         (known_authentication_scheme_p): Recognize NTLM authorization.
3958         (create_authorization_line): Call ntlm_input and ntlm_output.
3959
3960         * http-ntlm.c: New file, donated by Daniel Stenberg and originally
3961         written for curl, heavily modified for Wget.
3962
3963         * utils.c (base64_encode): Relocated from http.c, since it is now
3964         used by http-ntlm.c, and will possibly be used elsewhere.
3965         (base64_decode): New function, originally based on code from GNU
3966         recode.
3967
3968 2005-04-02  Hrvoje Niksic  <hniksic@xemacs.org>
3969
3970         * ftp.c (ftp_loop): Ditto.
3971
3972         * ftp-basic.c (ftp_pasv): Use the xzero shorthand for memset(0).
3973         (ftp_lpsv): Ditto.
3974
3975 2005-04-05  Mauro Tortonesi  <mauro@ferrara.linux.it>
3976
3977         * Makefile.in: removed string_t.c from list of source files.
3978
3979 2005-04-04  Mauro Tortonesi  <mauro@ferrara.linux.it>
3980
3981         * string_t.c: Removed.
3982
3983         * string_t.h: Removed.
3984
3985 2005-04-02  Hrvoje Niksic  <hniksic@xemacs.org>
3986
3987         * url.c (rewrite_shorthand_url): Only accept recognized schemes.
3988         That way "foo:80" will correctly be rewritten to "http://foo:80"
3989         instead of left unchanged and ultimately rejected because of
3990         "unsupported scheme foo".
3991
3992 2005-03-31  Hrvoje Niksic  <hniksic@xemacs.org>
3993
3994         * utils.c (number_to_string): Avoid explicit 64-bit constants;
3995         construct them by multiplication at compile-time.
3996
3997         * utils.c, elsewhere: Don't append "L" to 32-bit integer
3998         constants; we aren't really compilable on 16-bit systems anyway.
3999
4000         * hash.c (prime_size): Remove primes larger than 2^31, but include
4001         2^31-1, which is prime.
4002
4003 2005-03-30  Hrvoje Niksic  <hniksic@xemacs.org>
4004
4005         * utils.c (string_set_to_array): New function.
4006
4007         * convert.c: Replace the use of "slists" with sets/hash-tables,
4008         which in fact suit the intended purpose much better.
4009         downloaded_html_list is removed altogether.
4010
4011 2005-03-29  Hrvoje Niksic  <hniksic@xemacs.org>
4012
4013         * ftp.h (enum): Rename GLOBALL, GETALL, and GETONE to
4014         GLOB_GLOBALL, GLOB_GETALL, and GLOB_GETONE to avoid conflict with
4015         Linux headers.
4016
4017 2005-03-29  Hrvoje Niksic  <hniksic@xemacs.org>
4018
4019         * utils.c (numdigit): More correct handling of negative numbers.
4020
4021 2005-03-21  Hrvoje Niksic  <hniksic@xemacs.org>
4022
4023         * http.c (gethttp): Print the human-readable size.
4024
4025         * ftp.c (getftp): Print the human-readable size of the file to be
4026         downloaded.
4027
4028         * utils.c (human_readable): New function.
4029
4030         * utils.c: Renamed "legible" to "with_thousand_seps",
4031         "legible_large_int" to "with_thousand_seps_large", and "legible_1"
4032         to "add_thousand_seps".
4033
4034 2005-03-21  Hrvoje Niksic  <hniksic@xemacs.org>
4035
4036         * http.c (gethttp): Inhibit persistent connections when talking to
4037         proxies, as mandated by RFC 2068.
4038
4039 2005-03-20  Hrvoje Niksic  <hniksic@xemacs.org>
4040
4041         * url.c (unescape_single_char): New function.
4042         (url_escape_dir): Use it to unescape slashes in directory
4043         components.
4044         (url_string): Escape unsafe chars in host name, except for the ':'
4045         charaters, which can appear in IPv6 addresses.
4046
4047         * main.c (main): Don't access the cookie jar directly.
4048
4049         * log.c (escnonprint_internal): Correctly calculate the needed
4050         string size.  Don't forget the buffer's new size after having
4051         reallocated it.
4052         (log_cleanup): New function.  Free the escnonprint ring data.
4053
4054         * init.c (cleanup): Don't free the cookie jar explicitly, it is
4055         now done by http_cleanup.
4056         (cleanup): opt.user_headers is now a vector, free it with
4057         free_vec.
4058
4059         * http.c (gethttp): Make sure to free the request data, the status
4060         message, and the response data before returning from the function.
4061         (save_cookies): New function.
4062         (http_cleanup): Free the cookie jar here.
4063
4064         * hash.c: Renamed string_hash to hash_string and ptrhash to
4065         hash_pointer.  Exported hash_pointer.
4066
4067         * xmalloc.c: Organized malloc_table (previously malloc_debug) as a
4068         simple EQ hash table.  register_ptr and unregister_ptr are now of
4069         O(1) complexity.
4070
4071         * xmalloc.c: Renamed "*_debug" to debugging_* and "*_real" to
4072         checking_*.
4073
4074 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
4075
4076         * utils.c (debug_test_md5): Moved to gen-md5.c.
4077
4078         * mswindows.h: Don't declare inet_ntop, since we don't use it.
4079
4080         * mswindows.h: For consistency, also wrap closesocket, it being
4081         a Winsock call.
4082
4083         * mswindows.h: Don't declare sleep and usleep; we're defining
4084         xsleep now.
4085
4086         * mswindows.h (mkdir): Don't special-case Borland C, _mkdir
4087         works there as well.
4088
4089         * host.c: Don't include winsock header files; the correct ones
4090         are already included by mswindows.h.
4091
4092         * mswindows.c (xsleep): Round toward the nearest millisecond
4093         in an attempt to avoid average short sleeps.
4094
4095         * utils.c (wtimer_granularity): Report correct values for
4096         Windows timers and for high-resolution timers.
4097
4098         * utils.c (wtimer_initialize_once): New function, called to
4099         initialize the timer frequency.
4100
4101         * utils.c: Replace the use of GetSystemTime with high-resolution
4102         counters under Windows.  When high-resolution counters are
4103         unavailable, use GetTickCount().
4104
4105 2005-03-15  Hrvoje Niksic  <hniksic@xemacs.org>
4106
4107         * retr.c (fd_read_body): Undo the 2004-11-18 change.  Instead,
4108         always be "exact".
4109
4110 2005-03-17  Hrvoje Niksic  <hniksic@xemacs.org>
4111
4112         * ftp-basic.c (ftp_login): Don't free the string if ftp_response
4113         returned an error status because the line didn't get allocated in
4114         the first place.
4115
4116 2005-03-15  Hrvoje Niksic  <hniksic@xemacs.org>
4117
4118         * http.c (read_http_response_head): Limit the response size to 64k
4119         bytes.
4120
4121         * retr.c (fd_read_hunk): Accept a MAXSIZE argument that limits the
4122         number of bytes the function is allowed to allocate.
4123         (fd_read_line): Limit the line to 4096 bytes.
4124
4125 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
4126
4127         * wget.h: Include options.h after wgint has been defined.
4128
4129         * options.h (struct options): Declare options processed with
4130         cmd_bytes as wgint, not long.
4131
4132 2005-03-18  Hrvoje Niksic  <hniksic@xemacs.org>
4133
4134         * init.c (cmd_file): Use concat_strings.
4135
4136         * http.c (basic_authentication_encode): Use concat_strings.
4137
4138         * ftp-ls.c (ftp_index): Use concat_strings.
4139
4140         * ftp-basic.c (ftp_request): Use concat_strings.
4141
4142         * utils.c (concat_strings): New function.
4143
4144 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
4145
4146         * init.c (simple_atof): Handle negative numbers; skip whitespace
4147         before the number.
4148         (simple_atoi): Ditto.  Also, check for overflow and underflow.
4149         (cmd_number): Bail out on negative numbers.
4150         (parse_bytes_helper): Ditto.
4151
4152 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
4153
4154         * http.c (gethttp): Handle multiple Set-Cookie headers sent by
4155         remote server.
4156
4157 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
4158
4159         * init.c (defaults): Use passive FTP by default.
4160
4161 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
4162
4163         * mswindows.c: Provide wrappers to Winsock functions that set
4164         errno to WSAGetLastError() in case of failure.  Also provide a
4165         Windows-specific version of strerror.
4166
4167         * mswindows.h: Wrap calls to socket, bind, connect, recv, send,
4168         select, getsockname, getpeername, and setsockopt.
4169
4170 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
4171
4172         * url.c (url_parse): Reject port numbers larger than 65535.  We
4173         also check for overflow while parsing port numbers.
4174
4175 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
4176
4177         * utils.c (read_file): Don't use wgint for file size; LFS won't
4178         work since the file is mmap'ed as a whole.
4179
4180         * options.h: Don't include stdio.h.
4181
4182         * log.c: Ditto.
4183
4184         * init.c: Disambiguate assignment from non-zero test to avoid
4185         Borland C warning.
4186
4187         * http.c (response_new): Don't needlessly post-increment count.
4188
4189         * hash.c: Include stdio.h.
4190
4191         * gnu-md5.h: Don't include stdio.h.
4192
4193         * getopt.h (struct option): Always use const.
4194
4195         * ftp.c (getftp): Avoid unnecessary assignment to RES to avoid
4196         Borland C warning.
4197
4198         * ftp-ls.c: Disambiguate assignment from non-zero test to avoid
4199         Borland C warning.
4200
4201         * cmpt.c (strptime_internal): Don't initialize rp_backup when
4202         !_NL_CURRENT to avoid Borland C warning.
4203
4204 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
4205
4206         * utils.c (fopen_excl): Fix parse error when O_BINARY is
4207         available.
4208
4209 2005-03-05  Hrvoje Niksic  <hniksic@xemacs.org>
4210
4211         * url.c (url_file_name): Don't allow hosts named ".." to be
4212         appended as path elements.
4213
4214 2005-03-03  Hrvoje Niksic  <hniksic@xemacs.org>
4215
4216         * retr.c (retrieve_url): Escape location header.
4217
4218         * http.c (print_server_response_1): Escape server response when
4219         printing it.
4220         (gethttp): Escape host name, status message, location header, and
4221         content type.
4222         (http_loop): Escape error message from server.
4223
4224         * host.c (lookup_host): Escape host name when printing it.
4225
4226         * ftp.c (getftp): Escape user name when printing it.
4227         (getftp): Escape remote file and directory for printing.
4228         (getftp): Escape server listing when printing it.
4229         (ftp_retrieve_list): Escape link name and file name.
4230         (ftp_retrieve_glob): Escape file name.
4231
4232         * ftp-basic.c (ftp_response): Escape server response when printing
4233         it.
4234
4235         * cookies.c (parse_set_cookies): Escape the cookie field when
4236         printing it.
4237         (parse_set_cookies): Escape contents of remote header.
4238         (cookie_handle_set_cookie): Escape host name and cookie domain.
4239
4240         * connect.c (connect_to_ip): Escape the host name.
4241
4242         * log.c (escnonprint): New function, used for printing strings
4243         coming from the server that possibly contain non-ASCII characters.
4244         (escnonprint_uri): Ditto.
4245
4246 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
4247
4248         * ftp.c (getftp): Ditto.
4249
4250         * http.c (gethttp): When we're not supposed to overwrite files,
4251         use fopen_excl to open the file and recompute the file name.
4252
4253         * log.c (redirect_output): Use unique_create to avoid a race
4254         condition.
4255
4256         * mswindows.c (fake_fork_child): Use unique_create.
4257
4258         * utils.c (fopen_excl): New function that opens a stdio stream
4259         with the O_EXCL flag (where available).
4260         (unique_create): New function, like unique_name, but also creating
4261         the file and returning a file pointer.
4262         (fork_to_background): Use unique_create to create the file
4263         immediately to avoid race condition with multiple instances of
4264         wget -b.
4265
4266 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
4267
4268         * host.c (lookup_host): Test for AI_ADDRCONFIG directly, instead
4269         of checking for HAVE_GETADDRINFO_AI_ADDRCONFIG.
4270
4271 2005-02-23  Hrvoje Niksic  <hniksic@xemacs.org>
4272
4273         * host.c (is_valid_ipv6_address): Move here from url.c.
4274         (lookup_host): If the address is numeric, don't print the
4275         "resolving..." line, don't set up DNS timeouts, and set the
4276         AI_NUMERICHOST hint, where available.
4277
4278 2005-02-26  Gisle Vanem  <giva@bgnett.no>
4279
4280         * utils.c: Use the nnnLL syntax under GCC.  Define struct_stat to
4281         struct _stati64 under __MINGW32__ as well as under MS VC.
4282
4283 2005-02-26  Hrvoje Niksic  <hniksic@xemacs.org>
4284
4285         * utils.c: Use the nnnI64 syntax for __int64 constants under all
4286         Windows compilers.
4287         (SPRINTF_WGINT): Use "%I64" under all Windows compilers.
4288
4289         * mswindows.h (WGINT_MAX): Use the nnnI64 syntax for
4290         __int64 constants under all Windows compilers.
4291         (struct_stat): Use `struct stati64' under Borland C.
4292         (fstat): Don't redefine to _fstati64 under Borland.
4293
4294         * mswindows.c: Define str_to_int64 under Borland C as well as
4295         under (older) Visual C.
4296
4297 2005-02-25  Hrvoje Niksic  <hniksic@xemacs.org>
4298
4299         * ftp.c (getftp): Initialize err to suppress compiler warning.
4300
4301 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
4302
4303         * ftp.c (ftp_expected_bytes): Fix bug that caused infloop because
4304         of not correctly skipping the '(' character.
4305
4306 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
4307
4308         * mswindows.c (wget_ftello): Removed.
4309
4310         * mswindows.h: Remove bogus definition of stat.
4311         (wget_ftello): Remove the leftover ftello replacement.
4312
4313 2005-02-20  Hrvoje Niksic  <hniksic@xemacs.org>
4314
4315         * mswindows.c (wget_ftello): Wget's replacement for ftello.
4316
4317         * utils.c (file_size): Use ftello where available.
4318
4319         * ftp-ls.c (ftp_parse_unix_ls): Use str_to_wgint to parse the file
4320         size.
4321         (ftp_parse_winnt_ls): Ditto.
4322
4323         * ftp-basic.c (ftp_size): Use str_to_wgint to convert number to
4324         wgint; pass 10 instead of 0 as the BASE argument.
4325
4326         * ftp.c (ftp_expected_bytes): Use str_to_wgint to parse the file
4327         size.
4328
4329         * sysdep.h (LARGE_INT_FMT): Use __int64 as LARGE_INT on
4330         MSVC/Windows; print it with "%I64".
4331
4332         * wget.h: Define a `wgint' type, normally aliased to (the possibly
4333         64-bit variant of) off_t.
4334
4335         * all: Use `wgint' instead of `long' for numeric variables that
4336         can hold file sizes.
4337
4338         * utils.c (number_to_string): Support printing of `wgint'
4339         argument.
4340         (number_to_static_string): New function.
4341
4342         * all: Replace printf("%ld", long_value) with printf("%s",
4343         number_to_static_string(wgint_value)).
4344
4345 2005-02-18  Mauro Tortonesi <mauro@ferrara.linux.it>
4346
4347         * main.c: Added the --ftp-passwd command line option.
4348
4349         * init.c: Renamed command passwd to ftppasswd.
4350
4351 2005-02-11  Mauro Tortonesi <mauro@ferrara.linux.it>
4352
4353         * string_t.c: Fixed a bug in do_escape and triggered escape of
4354         backslashes in string_escape to avoid ambiguities in the result
4355         string.
4356
4357 2005-02-10  Mauro Tortonesi <mauro@ferrara.linux.it>
4358
4359         * string.h: Renamed to string_t.h to fix a compilation conflict
4360         with the string.h header in the standard C library.
4361
4362         * string.c: Renamed to string_t.c for consistency with string.h.
4363
4364         * string_t.c: Ditto.
4365
4366         * string_t.h: Ditto.
4367
4368 2004-12-31  Mauro Tortonesi <mauro@ferrara.linux.it>
4369
4370         * string.c: New file.
4371
4372         * string.h: New file.
4373
4374         * Makefile.in: Added string.c to the list of modules to compile.
4375
4376         * main.c: Updated copyright.
4377
4378 2004-11-18  Ulf Harnhammar <ulf.harnhammar.9485@student.uu.se>
4379
4380         * ftp-ls.c: Fixed a problem in ftp_parse_winnt_ls that could allow a
4381         malicious remote FTP server to crash wget.
4382
4383 2004-11-18  Hans-Andreas Engel <engel@node.ch>
4384
4385         * http.c: Enable --convert-links (-k) when a single page is downloaded
4386         via --output-document (-O).
4387
4388 2004-11-18  Mauro Tortonesi <mauro@deepspace6.net>
4389
4390         * connect.c: Minor correction to the comment in front of fd_peek.
4391
4392 2004-11-18  Leonid Petrov <nouser@lpetrov.net>
4393
4394         * retr.c: Fix a timeout problem in fd_read_body when using http_proxy.
4395
4396 2004-11-15  YAMAZAKI Makoto <Yamazaki.Makoto@fujixerox.co.jp>
4397
4398         * netrc.c: Fix termination by assertion bug in netrc parsing.
4399
4400 2004-05-09  David Fritz  <zeroxdf@att.net>
4401
4402         * mswindows.c (fake_fork): Pass entire command line to the child
4403         process.
4404
4405 2004-03-31  Hrvoje Niksic  <hniksic@xemacs.org>
4406
4407         * http.c (gethttp): Fix typo: SCHEME_SSL -> SCHEME_HTTPS.
4408
4409 2004-03-30  Hrvoje Niksic  <hniksic@xemacs.org>
4410
4411         * http.c (gethttp): Send the Proxy-Authorization header over
4412         non-SSL connections too.
4413
4414 2004-03-25  David Fritz  <zeroxdf@att.net>
4415
4416         * mswindows.c (fake_fork_child): Ignore error code when
4417         OpenFileMapping() fails; assume it failed because the object does
4418         not exist.
4419
4420 2004-03-24  David Fritz  <zeroxdf@att.net>
4421
4422         * mswindows.c (fake_fork): New function.
4423
4424         * mswindows.c (fork_to_background): Use it.
4425
4426 2004-03-19  David Fritz  <zeroxdf@att.net>
4427
4428         * mswindows.c (ws_hangup): Incorporate old fork_to_background()
4429         code.  Add event name argument.
4430         (fork_to_backgorund): Now a simple wrapper around ws_hangup().
4431         (ws_handler): Correctly handle the case when neither CTRLC_BACKGND
4432         nor CTRLBREAK_BACKGND are defined.  Don't bother handling close,
4433         logoff, or shutdown events.  Call ws_hangup() with the correct
4434         event name; don't assume it was CTRL+Break.
4435
4436 2004-03-19  Hrvoje Niksic  <hniksic@xemacs.org>
4437
4438         * url.c (url_parse): Decode %HH sequences in host name.
4439
4440 2004-03-04  Hrvoje Niksic  <hniksic@xemacs.org>
4441
4442         * convert.c (local_quote_string): Quote "#" as "%23" and "%" as
4443         "%25" when creating links to local files.
4444
4445 2004-03-02  David Fritz  <zeroxdf@att.net>
4446
4447         * mswindows.c (ws_percenttitle): Guard against future changes by
4448         doing nothing if the proper variables have not been initialized.
4449         Clamp percentage value.
4450
4451 2004-03-04  Gisle Vanem  <giva@bgnett.no>
4452
4453         * retr.c (fd_read_body): Don't change console title if quiet.
4454
4455 2004-02-25  David Fritz  <zeroxdf@att.net>
4456
4457         * mswindows.c (set_sleep_mode): Remove argument and return value.
4458         Call GetModuleHandle() instead of LoadLibrary()/FreeLibrary() for
4459         kernel32.dll.  Use typedef for function-pointer.  Don't cast
4460         l-value.  Don't use dereference operator when calling through
4461         function-pointer.
4462         (ws_startup): Update call to set_sleep_mode().
4463         (ws_cleanup): Remove call to set_sleep_mode().
4464
4465 2004-02-23  David Fritz  <zeroxdf@att.net>
4466
4467         * http.c (http_loop): Ditto.
4468
4469         * ftp.c (ftp_loop_internal): Update call to ws_changetitle().
4470
4471         * main.c (main): Don't bother calling ws_changetitle().
4472
4473         * mswindows.h (ws_changetitle): Update prototype.
4474
4475         * mswindows.c (ws_changetitle): Remove second argument.  Use
4476         xfree_null().
4477         (ws_percenttitle): Only update title when percentage has changed.
4478
4479 2004-02-23  David Fritz  <zeroxdf@att.net>
4480
4481         * mswindows.h: Ditto.
4482
4483         * mswindows.c: Misc. formatting/comment tweaks throughout.
4484
4485 2004-02-20  David Fritz  <zeroxdf@att.net>
4486
4487         * main.c (print_help): Remove call to ws_help().
4488
4489         * mswindows.c (ws_help): Remove.
4490
4491         * mswindows.h (ws_help): Remove.
4492
4493 2004-02-16  David Fritz  <zeroxdf@att.net>
4494
4495         * init.c (home_dir): Use aprintf() instead of xmalloc()/sprintf().
4496         Under Windows, if $HOME is not defined, use the directory that
4497         contains the Wget binary instead of hard-coded `C:\'.
4498         (wgetrc_file_name): Under Windows, look for $HOME/.wgetrc then, if
4499         not found, look for wget.ini in the directory of the Wget binary.
4500
4501         * mswindows.c (ws_mypath): Employ slightly more robust methodology.
4502         Strip trailing path separator.
4503
4504 2004-02-06  Hrvoje Niksic  <hniksic@xemacs.org>
4505
4506         * http.c (gethttp): Respect --ignore-length.
4507         (gethttp): Inhibit keep-alive if --ignore-length is specified.
4508
4509 2004-02-06  Hrvoje Niksic  <hniksic@xemacs.org>
4510
4511         * connect.c (sockaddr_set_data): Zero out
4512         sockaddr_in/sockaddr_in6.  Apparently BSD-derived stacks need this
4513         when binding a socket to local address.
4514
4515 2004-02-04  Hrvoje Niksic  <hniksic@xemacs.org>
4516
4517         * hash.c: Make the file compilable outside Wget source tree when
4518         -DSTANDALONE is used.
4519
4520 2004-01-29  Hrvoje Niksic  <hniksic@xemacs.org>
4521
4522         * utils.c (determine_screen_width): Return 0 if not running on
4523         Windows or on a TIOCGWINSZ-capable system.
4524
4525 2004-01-28  David Fritz  <zeroxdf@att.net>
4526
4527         * utils.c (determine_screen_width): Correctly determine console
4528         width under Windows.
4529
4530 2004-01-28  Christian Biere  <christianbiere@gmx.de>
4531
4532         * progress.c (bar_set_params): Fixed syntax error when HAVE_ISATTY
4533         was undefined.
4534
4535         * ftp.c (ftp_loop_internal): Allocate a larger buffer in case
4536         "try" gets translated to something large.  Ditto in http_loop in
4537         http.c.
4538
4539         * http.c (response_header_copy): Don't write to buf[BUFSIZE].
4540
4541         * ftp-opie.c (skey_response): Eliminate unnecessary string
4542         concatenation; just call gen_md5_update twice.
4543
4544 2004-01-25  Hrvoje Niksic  <hniksic@xemacs.org>
4545
4546         * utils.c (xsleep): Don't call usleep with values larger than
4547         1,000,000.
4548
4549 2003-12-16  Hrvoje Niksic  <hniksic@xemacs.org>
4550
4551         * http.c (gethttp): Fix generation of `Content-Length'.
4552
4553 2003-12-15  Gisle Vanem  <giva@bgnett.no>
4554
4555         * url.c (url_skip_credentials): Fixed return value; 'url' if no
4556         credentials.
4557
4558 2003-12-14  Hrvoje Niksic  <hniksic@xemacs.org>
4559
4560         * url.c (url_skip_credentials): Return a pointer directly.
4561
4562 2003-12-14  Hrvoje Niksic  <hniksic@xemacs.org>
4563
4564         * url.c (url_file_name): Ditto.
4565         (parse_errors): Ditto.
4566
4567         * retr.c (retr_rate): Ditto.
4568
4569         * progress.c (create_image): Ditto.
4570
4571         * netrc.c (parse_netrc): Ditto.
4572
4573         * main.c (struct cmdline_option): Ditto.
4574         (redirect_output_signal): Ditto.
4575
4576         * init.c (commands): Ditto.
4577
4578         * ftp-ls.c (ftp_index): Ditto.
4579
4580         * cookies.c (check_domain_match): Declare the pointer to a literal
4581         string as `const'.
4582
4583 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
4584
4585         * retr.c (fd_read_body): Pass total size to progress_create, not
4586         the remaining amount.
4587
4588 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
4589
4590         * retr.c (fd_read_body): Don't fiddle with "interactive timeout"
4591         if read timeout is unset.
4592
4593 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
4594
4595         * connect.c (bind_local): Don't set the IPV6_V6ONLY option on the
4596         socket.
4597
4598 2003-12-06  Hrvoje Niksic  <hniksic@xemacs.org>
4599
4600         * url.c (url_file_name): Respect the setting of
4601         opt.protocol_directories.
4602
4603         * main.c (main): Only check for ret=='?' when longindex is unset.
4604         (option_data): New option --protocol-directories.
4605
4606 2003-12-06  Hrvoje Niksic  <hniksic@xemacs.org>
4607
4608         * ftp.c (getftp): Ditto.
4609
4610         * http.c (gethttp): Correctly calculate bandwidth as total data
4611         read divided with download time.
4612
4613         * retr.c (fd_read_body): Separate the return values for data
4614         written and read.
4615
4616 2003-12-05  Hrvoje Niksic  <hniksic@xemacs.org>
4617
4618         * http.c (H_REDIRECTED): Respect the HTTP/1.1 "303 See Other"
4619         response code.
4620         Suggested by Dan Razzell.
4621
4622 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
4623
4624         * retr.c (fd_read_body): Report the amount of data *written* as
4625         amount_read.  This is not entirely logical, but that's what the
4626         callers expect, and it's not easy to change.
4627
4628         * ftp.c (ftp_loop_internal): Ditto.
4629
4630         * http.c (http_loop): Be smarter about assigning restval; if we're
4631         in the nth pass of a download, simply use the information we have
4632         about how much data has been retrieved as restval.
4633
4634         * ftp.c (getftp): Ditto for FTP "REST" command.
4635
4636         * http.c (gethttp): When the server doesn't respect range, skip
4637         the first RESTVAL bytes of the read body.  Never truncate the
4638         output file.
4639
4640         * retr.c (fd_read_body): Support skipping initial STARTPOS octets.
4641
4642 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
4643
4644         * http.c (skip_short_body): Renamed skip_body to skip_short_body;
4645         don't bother calling fd_read_body.
4646
4647 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
4648
4649         * retr.c (fd_read_body): Sanitize arguments and document them
4650         better.  Make sure the timer is created and updated only if
4651         necessary.  Updated callers.
4652
4653 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
4654
4655         * http.c (skip_body): New function.
4656         (gethttp): Use it to skip the body of the responses we don't care
4657         to download.  That allows us to reuse the connection.
4658         (gethttp): Trust that the HEAD requests will not generate body
4659         data.
4660
4661         * retr.c (fd_read_body): Don't write to OUT if it's NULL.
4662
4663 2003-11-29  Hrvoje Niksic  <hniksic@xemacs.org>
4664
4665         * http.c (gethttp): Initialize SSL only the first time when SSL
4666         URL is downloaded.
4667
4668 2003-11-29  Hrvoje Niksic  <hniksic@xemacs.org>
4669
4670         * cookies.c (cookie_header): Only generate the contents of the
4671         header, not the leading "Cookie: " or the trailing "\r\n".
4672
4673         * http.c (gethttp): When adding headers specified with `--header',
4674         allow them to override the headers generated by Wget.
4675
4676         * init.c (cmd_spec_header): Made opt.user_headers a vector.
4677
4678         * http.c (request_new): New function.  Returns a request structure
4679         which can be modified in various ways, most notably by adding HTTP
4680         headers to the request.
4681         (request_set_header): New function for adding the header to the
4682         request.  If the header is already available, it gets replaced.
4683         (request_send): Construct and send the request.
4684         (gethttp): Use the request_* functions to generate the request.
4685
4686 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
4687
4688         * http.c (gethttp): Don't include the Proxy-Authorization header
4689         in the request tunneled through proxy.
4690
4691 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
4692
4693         * http.c (gethttp): Use the CONNECT handle to establish SSL
4694         passthrough through non-SSL proxies.
4695
4696 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
4697
4698         * init.c: Don't #include netinet/Winsock stuff.
4699
4700 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
4701
4702         * http.c: Deleted the old functions header_process,
4703         header_extract_number, header_exists, header_strdup,
4704         http_process_range, http_process_none, http_process_type, and
4705         http_process_connection.
4706
4707         * http.c (response_new): New function.
4708         (response_header_bounds): Ditto.
4709         (response_header_copy): Ditto.
4710         (response_header_strdup): Ditto.
4711         (response_status): Ditto.
4712         (gethttp): Use the new response_* functions to parse the response.
4713         Support HTTP/0.9 responses.
4714
4715 2003-11-27  Hrvoje Niksic  <hniksic@xemacs.org>
4716
4717         * progress.c (create_image): Don't calculate ETA if nothing has
4718         been downloaded yet, because it causes division by zero.
4719
4720 2003-11-27  Hrvoje Niksic  <hniksic@xemacs.org>
4721
4722         * connect.c (bind_local): Rename sa_len to addrlen because IRIX
4723         headers define sa_len as a macro.
4724
4725 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
4726
4727         * html-parse.c (convert_and_copy): Remove embedded newlines when
4728         AP_TRIM_BLANKS is specified.
4729
4730 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
4731
4732         * ftp.c: Set con->csock to -1 where rbuf_uninitialize was
4733         previously used.
4734
4735 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
4736
4737         * Makefile.in (http$o): Added the trailing backslash that was
4738         missing.
4739
4740 2003-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
4741
4742         * headers.c: Removed.  The file is no longer relevant, now that no
4743         special handling of headers is done by the rbuf code.  Moved
4744         portions to http.c.
4745
4746 2003-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
4747
4748         * rbuf.c: Removed.
4749
4750         * ftp-basic.c (ftp_response): Use fd_read_line.  No longer use
4751         struct rbuf.  Updated all callers.
4752
4753         * http.c (gethttp): Use fd_read_head to read all the headers in
4754         one go.
4755         (next_header): New function.
4756
4757         * retr.c (fd_read_line): New function: reads a line from FD,
4758         leaving the rest of the data unread.
4759         (fd_read_head): New function.
4760
4761         * connect.c (fd_peek): New function, implements peeking.
4762         (poll_internal): New function.
4763         (fd_read): Use it.
4764         (fd_write): Ditto.
4765         (fd_peek): Ditto.
4766         (fd_register_transport): Allow registering a "peeker" callback.
4767
4768 2003-11-20  Hrvoje Niksic  <hniksic@xemacs.org>
4769
4770         * connect.c: Renamed xread/xwrite/xclose to
4771         fd_read/fd_write/fd_close.  The "x" prefix is not appropriate
4772         because the semantics have diverged from read/write/close too
4773         significantly.  Updated all callers.
4774
4775 2003-11-20  Hrvoje Niksic  <hniksic@xemacs.org>
4776
4777         * connect.c (sock_write): It's not necessary to initialize RES.
4778
4779 2003-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
4780
4781         * main.c (main): Don't reference opt.ipv4_only and opt.ipv6_only
4782         if IPv6 is disabled.
4783
4784 2003-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
4785
4786         * connect.c (socket_has_inet6): Only compile it if IPv6 is enabled
4787         and AI_ADDRCONFIG is missing.
4788
4789 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
4790
4791         * gen_sslfunc.c (ssl_init_prng): Warn the user when using a weak
4792         random seed.
4793
4794 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
4795
4796         * host.c (address_list_contains): Renamed address_list_find to
4797         address_list_contains because its result is boolean.
4798
4799 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
4800
4801         * connect.c (select_fd): Return 1 if select is not available.
4802
4803 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
4804
4805         * connect.c (connect_to_host): Don't reference address list after
4806         releasing it.
4807
4808 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
4809
4810         * main.c (print_help): Fix alignment of FTP options output.
4811
4812 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
4813
4814         * host.c (lookup_host): Check for the ability to create IPv6
4815         sockets here.
4816
4817         * init.c (defaults): Don't auto-set --inet4-only on IPv6-less
4818         systems.
4819
4820 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
4821
4822         * main.c (print_help): Fix typo in `-O' help message.  Fix docs of
4823         -Y/--proxy.  Fix docs of `--cookies' and `--glob'.  Improve docs
4824         of --convert-links.  Fix docs of SSL options.
4825
4826 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
4827
4828         * ftp-basic.c: Don't include <arpa/inet.h> and others because
4829         they're no longer needed.
4830
4831 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
4832
4833         * main.c (main): Don't allow setting of both opt.ipv4_only and
4834         opt.ipv6_only.
4835
4836         * init.c (defaults): Mark opt.ipv4_only specially when set
4837         automatically.
4838
4839 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
4840
4841         * host.c (lookup_host): Use AI_ADDRCONFIG only if the family is
4842         unspecified.  This ensures that specifying `--no-inet4' on systems
4843         where IPv6 resolves, but doesn't work behaves the same regardless
4844         of the availability of AI_ADDRCONFIG.
4845
4846 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
4847
4848         * host.c: Don't refer to the now-removed function
4849         forget_host_lookup in the documentation of lookup_host.
4850
4851 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
4852
4853         * http.c (persistent_available_p): Correctly specify the endpoint
4854         argument to socket_ip_address.
4855         (gethttp): When printing the "reusing connection to..." message,
4856         specify the host name of the reused connection, not the current
4857         host name.  That makes more sense because it provides a useful
4858         piece of information -- we know to which host we're supposed to
4859         connect anyway!
4860
4861 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
4862
4863         * init.c: Make sure the options are in alphabetic order!
4864
4865         * host.c (lookup_host): Merge lookup_host_passive and lookup_host
4866         after all -- having both would result in some code duplication.
4867         (lookup_host): Set hints.ai_family to AF_INET if ipv4_only is
4868         requested.  Likewise, set it to AF_INET6 for ipv6_only.  Specify
4869         AI_ADDRCONFIG where available.
4870         (lookup_host): New flag LH_REFRESH that specifies that a cached
4871         entry for HOST should be refreshed.
4872         (cache_query): New function.
4873         (cache_store): Ditto.
4874         (cache_remove): Ditto.
4875         (forget_host_lookup): No longer necessary, replaced with static
4876         function cache_remove.
4877
4878 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
4879
4880         * main.c: Enable -4 and -6 only if IPv6 is enabled.
4881
4882 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
4883
4884         * connect.c (register_transport): Renamed from register_extended.
4885         Explain the intended usage.
4886
4887 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
4888
4889         * url.c (uri_merge): Merging "foo" and "bar" should result in
4890         "bar", not in "foo/bar".
4891         (path_simplify): Don't remove empty path elements; don't
4892         special-case leading slash.
4893         (path_simplify): Don't swallow ".."'s at the beginning of string.
4894         E.g. simplify "foo/../../bar" as "../bar", not as "bar".
4895         (append_uri_pathel): Defang ".." path element upon encountering
4896         it.
4897
4898 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4899
4900         * http.c (persistent_available_p): Don't attempt to talk to two
4901         different SSL sites over the same secure connection.
4902
4903 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4904
4905         * http.c (gethttp): Ditto.
4906
4907         * ftp.c (getftp): Use retryable_socket_connect_error instead of
4908         CONNECT_ERROR.
4909
4910         * wget.h (CONNECT_ERROR): Removed.
4911
4912         * connect.c (retryable_socket_connect_error): New function instead
4913         of unsupported_socket_family_error.
4914
4915 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4916
4917         * wget.h (CONNECT_ERROR): Use it.
4918
4919         * connect.c (unsupported_socket_family_error): New function.
4920
4921 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4922
4923         * connect.c (bind_local): Renamed bindport to bind_local; return
4924         the socket directly.  Updated callers.
4925         (accept_connection): Renamed acceptport to accept_connection;
4926         return the created socket directly.  Updated callers.
4927
4928 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4929
4930         * init.c (defaults): Turn on opt.ipv4_only if we're compiling with
4931         IPv6, and AI_ADDRINFO is not available, and AF_INET6 sockets can't
4932         be created.
4933
4934 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4935
4936         * host.c (lookup_host): Document the fact that the addresses are
4937         returned in order.
4938
4939 2003-11-12  Hrvoje Niksic  <hniksic@xemacs.org>
4940
4941         * utils.c: Use limits.h only where available.
4942
4943         * hash.c: Use INVALID_PTR and INVALID_PTR_BYTE.  Include limits.h.
4944
4945 2003-11-11  Hrvoje Niksic  <hniksic@xemacs.org>
4946
4947         * main.c: Added options --inet4-only and --inet6-only.
4948
4949 2003-11-11  Hrvoje Niksic  <hniksic@xemacs.org>
4950
4951         * host.c (host_errstr): Use the more standard message "Unknown
4952         host".
4953
4954 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
4955
4956         * connect.c (connect_to_host): Use that flag to decide whether to
4957         re-resolve the host name.
4958
4959         * host.c (struct address_list): Added a flag that maintains
4960         whether the connection worked at some point.
4961
4962 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
4963
4964         * host.c (lookup_host): Special-case the numeric addresses only in
4965         the non-IPv6 case.
4966
4967 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
4968
4969         * connect.c (resolve_bind_address): Call lookup_host_passive.
4970         Make sure that opt.bind_address is resolved only once.
4971
4972         * host.c (lookup_host_passive): New function, handles "passive"
4973         lookups.
4974         (lookup_host): Remove the passive flags.  Remove the
4975         family-related flags -- use ip_default_family instead.
4976
4977 2003-11-09  Hrvoje Niksic  <hniksic@xemacs.org>
4978
4979         * html-url.c: Get URLs from <object data="...">.
4980
4981 2003-11-09  Hrvoje Niksic  <hniksic@xemacs.org>
4982
4983         * main.c (option_data): Specify the command to use for --mirror.
4984
4985 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4986
4987         * cookies.c (cookie_handle_set_cookie): Specify exact match for
4988         unspecified domains.
4989
4990 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4991
4992         * main.c (main): Removed one-letter options `-C', `-g', `-G', and
4993         `-s'.
4994
4995 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4996
4997         * main.c (main): Add --dont-remove-listing for backward
4998         compatibility with previous versions.
4999         (print_help): Fix typo, spotted by Dennis Smit.
5000
5001 2003-11-08  Gisle Vanem  <giva@bgnett.no>
5002
5003         * ftp-basic.c: Support Windows-2000 ftp servers. Win-2000 *is*
5004         Win-NT 5.0 so calling it ST_WINNT is okay I guess.
5005
5006 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5007
5008         * progress.c (update_speed_ring): Clear the speed ring when the
5009         download stalls.
5010
5011         * retr.c (get_contents): Specify 0.95s read timeout, so that the
5012         progress gauge can be updated even when data arrives very slowly
5013         or stalls.
5014
5015 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5016
5017         * utils.c (wtimer_allocate): Bless the use of wtimer_read on a
5018         timer that has merely been allocated because get_contents() does
5019         that.
5020         (wtimer_update): Abort if the timer is not initialized.
5021
5022 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5023
5024         * retr.c (get_contents): Pass the timer to limit_bandwidth().
5025
5026         * utils.c (wtimer_update): New function instead of wget_elapsed;
5027         just update the timer, but don't return anything.
5028         (wtimer_read): Read and return the last known value of the timer.
5029
5030 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5031
5032         * http.c (persistent_available_p): Instead of matching all the
5033         addresses of HOST and last host, determine the peer's IP address
5034         with socket_ip_address and see if that address is one of those
5035         HOST resolves to.
5036
5037         * host.c (address_list_match_all): Removed.
5038         (address_list_find): New function, finds an IP address in the
5039         address list.
5040
5041         * ftp.c (ftp_do_pasv): Get the peer's address here, and pass it to
5042         ftp_epsv so it doesn't need to call getpeername.
5043
5044         * ftp-basic.c (ftp_port): Use socket_ip_address instead of
5045         getpeername.
5046         (ftp_lprt): Ditto.
5047
5048         * connect.c (socket_ip_address): Replaces conaddr, generalized to
5049         either get peer's or local address.
5050         (sockaddr_get_data): Made local to this file.
5051
5052 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5053
5054         * hash.c (HASH_POSITION): Explicitly accept the hash function.
5055         (grow_hash_table): Extract ht->hash_function outside the loop.
5056         (hash_table_remove): Ditto.
5057         (hash_table_clear): Fill entries with 0xff to clear them.
5058         (hash_table_remove): Mark entries as deleted with the correct
5059         marker.
5060
5061 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5062
5063         * http.c (persistent_available_p): No reason for the host lookup
5064         to be silent -- it's a lookup like any other.
5065
5066 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5067
5068         * connect.c (register_extended): Check that fd >= 0.
5069
5070 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
5071
5072         * connect.c (LAZY_RETRIEVE_INFO): Set LAST_INFO.
5073
5074 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
5075
5076         * hash.c (NON_EMPTY): Use the all-bit-set value as the marker that
5077         the field is empty.  This allows NULL pointer and 0 value to be
5078         used as keys, which is necessary for the connect.c code to work
5079         when fd==0.
5080         (hash_table_new): Fill mappings with 0xff.
5081         (grow_hash_table): Ditto.
5082
5083 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
5084
5085         * url.c (url_parse): Allow empty ports.
5086
5087 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
5088
5089         * main.c (print_help): Break the help string into multiple chunks.
5090         (cmdline_option): New option handler OPT_FUNCALL.  Generalized
5091         HANDLE_CMD to generic DATA.
5092         (option_data): Use the new OPT_FUNCALL feature.
5093
5094 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
5095
5096         * log.h: Declare log_init, log_close, and
5097         log_request_redirect_output here.
5098
5099 2003-11-05  Dennis Smit  <ds@nerds-incorporated.org>
5100
5101         * main.c: (main): added --preserve-permissions option.
5102
5103         * ftp.c (ftp_retrieve_list): added support for
5104         --preserve-permissions option.
5105
5106         * init.c: added support for --preserve-permission option.
5107
5108         * option.h: added support for --preserve-permission option.
5109
5110 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
5111
5112         * main.c (init_switches): New function.  Convert option_data to
5113         long_options and short_options, which can be fed to getopt_long.
5114         (main): Execute command-line options by consulting option_data.
5115
5116 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
5117
5118         * gen_sslfunc.c (ssl_read): Implement a more correct check for
5119         EINTR.
5120         (ssl_write): Ditto.
5121         (init_ssl): Use a global SSL context.
5122
5123 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
5124
5125         * connect.c (xclose): Free INFO even if it doesn't provide a
5126         closer.
5127
5128 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
5129
5130         * connect.c: Updated all callers of
5131         iread/ssl_iread/iwrite/ssl_iwrite to use xread and xwrite instead.
5132
5133         * rbuf.h (struct rbuf): Removed the SSL member because SSL is
5134         handled automatically by xread.
5135
5136         * hash.c (ptrhash): Made private.
5137         (ptrcmp): Ditto.
5138         (inthash): Removed.
5139
5140         * connect.c (select_fd): Don't set errno, leave it to the caller.
5141
5142         * gen_sslfunc.c (connect_ssl): Use register_extended to register
5143         SSL callbacks for communication with SSL-enabled endpoints.
5144         (ssl_read): New function.
5145         (ssl_write): Ditto.
5146         (ssl_poll): Ditto.
5147         (ssl_close): Ditto.
5148
5149         * connect.c (register_extended): New function -- register
5150         callbacks for basic socket operations.
5151         (xread): Ditto.
5152         (xwrite): Ditto.
5153         (xclose): Ditto.
5154         (sock_read): New function, default implementation for reading.
5155         (sock_write): Ditto for writing.
5156         (sock_poll): Ditto for polling.
5157         (sock_close): Ditto for closing.
5158
5159 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
5160
5161         * connect.c (bindport): Fix compilation under pre-C99 compilers.
5162
5163 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
5164
5165         * connect.c (connect_to_ip): More compact error checking.
5166         (bindport): Don't treat failed setsockopt as a fatal error.
5167
5168 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
5169
5170         * connect.c (resolve_bind_address): Use a more accurate error
5171         message -- we're not binding to ANY, we're disabling bind
5172         altogether.
5173
5174 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
5175
5176         * cookies.c (save_cookies_mapper): Respect the setting of
5177         keep-session-cookies.
5178         (cookie_jar_load): Import session cookies.
5179         Based on code submitted by Nicolas Schodet.
5180
5181         * utils.c (datetime_str): Use information in TM when it's
5182         non-NULL.
5183
5184         * main.c (main): New option `--keep-session-cookies'.
5185
5186 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
5187
5188         * Makefile.in (realclean): Delete config.h.in.
5189
5190 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
5191
5192         * config-post.h: New file, included from now autogenerated
5193         config.h.in.
5194
5195 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
5196
5197         * progress.c (progress_handle_sigwinch): Don't call
5198         determine_screen_width() from the signal handler.  Instead, just
5199         set a volatile variable.
5200         (bar_create): Check whether SIGWINCH was received.
5201         (bar_update): Ditto.
5202
5203         * sysdep.h: Define SYSTEM_FNMATCH only if HAVE_FNMATCH_H is true.
5204
5205 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
5206
5207         * utils.c (xsleep): New function.  Uses nanosleep where available,
5208         resuming sleeps interrupted by signals.  Updated callers of sleep
5209         and usleep to use xsleep.
5210
5211 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
5212
5213         * ftp-basic.c (ftp_login): Remove shadowing (and bogus)
5214         declaration of SEED.
5215
5216 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
5217
5218         * log.c (logvprintf): Documented better.  Renamed to
5219         log_vprintf_internal to avoid confusion with the public API
5220         functions logprintf and logputs.
5221
5222 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
5223
5224         * wget.h (N_): Don't parenthesize argument.
5225
5226 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
5227
5228         * host.h (ADDRESS_IPV4_DATA): Don't take the address of in.s_addr
5229         because that doesn't work on machines that define it as bitfield.
5230
5231 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
5232
5233         * connect.c (select_fd): Generalize the third argument into WAIT,
5234         so that the caller can request waiting for both read and write.
5235         Updated callers.
5236
5237 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
5238
5239         * html-url.c (cleanup_html_url): Destroy the hash tables, don't
5240         just call free on them.
5241         (init_interesting): Use hash_table_put instead of string_set_add
5242         because we don't need the strdup that the latter function
5243         performs.
5244
5245         * init.c (cleanup): Don't pass NULL to cookie_jar_delete.
5246
5247         * xmalloc.c (xfree_real): Abort when passed a NULL pointer.
5248         (xfree_debug): Print at the file and line of the offending call to
5249         free.
5250
5251 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
5252
5253         * wget.h: Retired the `boolean' type.  Moved the DEFAULT_LOGFILE
5254         define to log.h.  Moved the INFINITE_RECURSION define to recur.h.
5255
5256         * xmalloc.h: Renamed FREE_MAYBE to xfree_null and moved the
5257         definition from wget.h to xmalloc.h.
5258
5259 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
5260
5261         * html-parse.c (decode_entity): New function; split the decoding
5262         of entities here.
5263         (convert_and_copy): Use it to decode entities.
5264         (decode_entity): Handle the &apos entity.
5265         (decode_entity): Don't decode Latin 1 numeric entities.  Don't
5266         decode &#0.
5267
5268 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
5269
5270         * ftp-opie.c (calculate_skey_response): Use uint32_t instead of
5271         `unsigned long' for the cheksum array.  Document the function.
5272
5273 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
5274
5275         * connect.c (acceptport): Don't call select_fd when timeout is not
5276         requested.
5277
5278 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
5279
5280         * host.c: Removed the ip_default_family global variable.
5281
5282         * host.c (lookup_host): Document the function.  Fixed declaration
5283         of VEC.
5284
5285 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
5286
5287         * various: Use new macros xnew, xnew0, xnew_array, and xnew0_array
5288         in various places.
5289
5290 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
5291
5292         * wget.h: Move declarations of malloc and logging code to
5293         xmalloc.h and log.h respectively to unclutter this file.
5294         (STRDUP_ALLOCA): Made it side-effect free.
5295
5296         * xmalloc.h: New files.  Define macros xnew, xnew0, xnew_array,
5297         and xnew0_array.
5298
5299         * xmalloc.c: New file.  Move the xmalloc routines here.
5300
5301 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
5302
5303         * connect.c (sockaddr_set_data): Remove the broken code that
5304         checked for NULL address.
5305
5306 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
5307
5308         * host.c (address_list_from_single): Removed.
5309         (address_list_from_ipv4_addresses): Renamed from
5310         address_list_from_vector.
5311
5312 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
5313
5314         * sysdep.h (CLOSE): Don't call close on file descriptors less than
5315         0, i.e. on uncreated sockets.
5316
5317         * connect.c (resolve_bind_address): Work on struct sockaddr
5318         directly.
5319         (connect_to_host): Replacement for connect_to_many.  Resolve HOST
5320         and connect to any of its addresses.  If we can't connect and the
5321         host name lookup was cached, try to resolve it again.  This should
5322         fix problems with hosts behind dynamic DNS.  Updated all callers.
5323         (connect_to_ip): Replacement for connect_to_one.  Removed SILENT;
5324         added the argument PRINT instead.  Updated all callers.
5325         (set_connection_host_name): Removed.
5326
5327         * host.c (address_list_address_at): New function instead of
5328         address_list_copy_one. It returns a pointer to ip_address *, so
5329         it's not necessary to copy the data.
5330         (address_list_cached_p): New function.
5331         (forget_host_lookup): Ditto.
5332
5333         * connect.c: Got rid of the MSOCK global variable.  Made bindport
5334         return the local socket it creates.  Added a new argument to
5335         acceptport, the socket to call accept on.  Updated callers.
5336         (closeport): Removed.
5337
5338         * connect.c: Moved the sockaddr code from host.c to this file,
5339         because most of that stuff is used for connecting, and has nothing
5340         to do with host names anyway.
5341         (sockaddr_set_data, sockaddr_get_data): New functions, replace the
5342         old sockaddr_set_address, sockaddr_set_port, sockaddr_get_address,
5343         and sockaddr_get_port.
5344
5345 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
5346
5347         * sysdep.h: Use `S >= 8' rather than `S == 8' when looking for
5348         large integers.
5349
5350 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
5351
5352         * url.c (append_uri_pathel): New argument ESCAPED_P that says
5353         whether [B, E) is to be treated as URL-escaped or not.  If
5354         ESCAPED_P is false, don't unescape the region.
5355         (url_file_name): u->file is not URL-escaped.
5356
5357 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
5358
5359         * retr.c (retrieve_from_file): Use retrieve_tree for
5360         page-requisites.
5361
5362         * main.c (main): Don't define opt.recursive when -p is used.
5363         Instead, make sure that recursion is used for HTTP in that case.
5364
5365 2003-10-29  Hrvoje Niksic  <hniksic@xemacs.org>
5366
5367         * host.h: Defined accessors for elements of ip_address.  Updated
5368         all callers.
5369         (address_list_match_all): Use memcmp in the non-IPv6 case.
5370
5371         * wget.h (CONNECT_ERROR): Don't retry connecting if connect()
5372         returned EAFNOSUPPORT.
5373
5374 2003-10-27  Mauro Tortonesi <mauro@deepspace6.net>
5375
5376         * connect.h: changed bindport prototype and added the related
5377         BIND_ON_IPV4_ONLY and BIND_ON_IPV6_ONLY flags.
5378
5379         * connect.c: changed bindport and resolve_bind_address to allow
5380         protocol-version specific DNS resolution. modified conaddr,
5381         acceptport and connect_to_one to make use of struct
5382         sockaddr_storage and of the new ip_address structure.
5383
5384         * ftp-basic.c: added LPRT/LPSV (RFC1639) support, refactored
5385         PORT/PASV (RFC959) and EPRT/EPSV (RFC2428) support code.
5386
5387         * ftp.c: added the ftp_do_port and ftp_do_pasv functions to
5388         handle FTP over IPv6.
5389
5390         * ftp.h: changed prototype of ftp_epsv and added prototypes for
5391         ftp_lpsv, ftp_lprt and ftp_eprt.
5392
5393         * host.c: renamed the
5394         wget_sockaddr_set_address and wget_sockaddr_get_addr, and
5395         wget_sockaddr_{s,g}et_port couples to sockaddr_{s,g}et_address and
5396         sockaddr_{g,s}et_port respectively.  changed
5397         address_list_match_all, address_list_from_addrinfo sockaddr_len,
5398         pretty_print_address, lookup_host, sockaddr_{s,g}et_address and
5399         sockaddr_{g,s}et_port to make use of struct sockaddr_storage and
5400         of the new ip_address structure.  removed map_ipv4_to_ip and
5401         map_ip_to_ipv4.
5402
5403         * host.h: redefined structure ip_address and removed structure
5404         wget_sockaddr.
5405
5406 2003-10-26  Hrvoje Niksic  <hniksic@xemacs.org>
5407
5408         * sysdep.h: Include inttypes.h where available.
5409
5410         * host.c: Switch from u_int32_t to uint32_t.
5411
5412 2003-10-26  Hrvoje Niksic  <hniksic@xemacs.org>
5413
5414         * netrc.c (parse_netrc): Reset the QUOTE flag after the closing
5415         quote.
5416
5417 2003-10-25  Hrvoje Niksic  <hniksic@xemacs.org>
5418
5419         * url.c (is_valid_ipv6_address): Reformat to GNU coding style.
5420         Use enums for NS_IN* constants.  Use ISXDIGIT.
5421
5422         * convert.c (construct_relative): Document better how the function
5423         works.
5424
5425 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
5426
5427         * config.h.in: Deploy preprocessor magic to avoid Ultrix's
5428         <netdb.h> include <bitypes.h> which defines its own u_int32_t.
5429         Reported by Bernhard Simon.
5430
5431 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
5432
5433         * version.c: Bump version.
5434
5435 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
5436
5437         * url.c: Ditto.
5438
5439         * html-parse.c (advance_declaration): Don't use trailing comma in
5440         enum because older compilers don't support it.
5441
5442         * utils.c: Don't redefine HAVE_SIGSETJMP.
5443
5444 2003-10-16  Hrvoje Niksic  <hniksic@xemacs.org>
5445
5446         * convert.c (construct_relative): Don't handle absolute files
5447         specially -- for example, -P/tmp/foo shouldn't imply that
5448         converted files must refer to "/tmp/foo/..."!
5449
5450 2003-10-15  Hrvoje Niksic  <hniksic@xemacs.org>
5451
5452         * http.c: Consider status 307 a valid redirect.
5453
5454 2003-10-15  Philip Stadermann  <philip.stadermann@credativ.de>
5455
5456         * ftp.c (ftp_retrieve_glob): Correctly loop through the list whose
5457         elements might have been deleted.
5458
5459 2003-10-13  Hrvoje Niksic  <hniksic@xemacs.org>
5460
5461         * html-url.c (tag_handle_meta): Set the Refresh link to expect
5462         HTML.
5463         (append_one_url): Renamed to append_url.
5464
5465 2003-10-13  Hrvoje Niksic  <hniksic@xemacs.org>
5466
5467         * sysdep.h: Only define u_int32_t.
5468
5469 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
5470
5471         * utils.c (large_int_to_string): Use snprintf() to print the
5472         number.  This will work even on systems where libc doesn't
5473         understand %lld, but the compiler does, because it will use our
5474         snprintf replacement.
5475
5476         * init.c (parse_bytes_helper): New function.
5477         (cmd_bytes): Use it to parse bytes, but cast the result to long.
5478         (cmd_bytes_large): Ditto, but store the result to LARGE_INT.  Used
5479         for --quota so that --quota=10G works even on machines without
5480         long long.
5481
5482         * options.h (struct options): Declare quota as LARGE_INT.
5483
5484         * retr.c (downloaded_exceeds_quota): Removed.
5485         (downloaded_increase): Ditto.
5486         (total_downloaded_bytes): New variable, replaces opt.downloaded,
5487         which was the wrong place for it anyway.  Updated callers of
5488         downloaded_exceeds_quota and downloaded_increase to check this
5489         variable directly.
5490
5491         * sysdep.h: Get rid of VERY_LONG_TYPE.  Use LARGE_INT for the same
5492         purpose, defined as `long', `long long' or `double', depending on
5493         size of long and whether long long is available.
5494
5495 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
5496
5497         * sysdep.h: Also check size of short for int32_t.
5498
5499 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
5500
5501         * host.c (lookup_host): Use u_int32_t to store the result of
5502         inet_addr().  That removes the need for offset fiddling, caring
5503         about endian-ness, etc.
5504
5505         * sysdep.h: Define int32_t and u_int32_t if not available.
5506
5507 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
5508
5509         * ftp-basic.c (ftp_epsv): Use socklen_t * as the third argument to
5510         getpeername.
5511
5512         * config.h.in: Define socklen_t stub.
5513
5514         * host.c (sockaddr_len): Return socklen_t.
5515
5516         * connect.c (conaddr): Use socklen_t as the third argument to
5517         accept, getsockname, and connect.
5518
5519 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
5520
5521         * recur.c (retrieve_tree): Don't descend into documents that are
5522         not expected to contain HTML, regardless of their content-type.
5523
5524         * html-url.c (tag_url_attributes): Record which attributes are
5525         supposed to yield HTML links that can be followed.
5526         (tag_find_urls): Propagate that information to the caller through
5527         struct urlpos.
5528
5529 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
5530
5531         * hash.c (find_mapping): Return the next available mapping when
5532         the key is not found, not NULL.
5533         (hash_table_put): Use find_mapping to find the storage for the new
5534         data.
5535         (hash_table_put): Grow the table before exceeding maximum
5536         fullness, not afterwards.
5537
5538 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
5539
5540         * hash.c (hash_table_new): Slightly change the meaning of the
5541         first parameter.  Instead of being the minimum initial size, it is
5542         now the minimum number of items that the hash table can take
5543         without needing to resize.
5544
5545 2003-10-09  Hrvoje Niksic  <hniksic@xemacs.org>
5546
5547         * html-url.c (init_interesting): Initialize interesting_tags and
5548         interesting_attributes as hash tables.  This simplifies the code
5549         immensely because hash tables handle allocation and remove
5550         duplicates automatically.
5551         (find_tag): Removed.
5552         (collect_tags_mapper): Instead of calling find_tag, simply get the
5553         entry from interesting_tags hash table, which is both simpler and
5554         faster.
5555
5556 2003-10-09  Hrvoje Niksic  <hniksic@xemacs.org>
5557
5558         * hash.c (hash_table_get): Declare hash-table argument as const.
5559         (find_mapping): Ditto.
5560         (hash_table_get_pair): Ditto.
5561         (hash_table_contains): Ditto.
5562         (hash_table_count): Ditto.
5563
5564 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5565
5566         * html-url.c (get_urls_html): Parse the appropriate flags to
5567         html-parse.c.
5568
5569         * html-parse.c (map_html_tags): Accept FLAGS from the caller
5570         instead of examining OPT.
5571
5572 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5573
5574         * html-url.c (find_tag): Switch to binary search.
5575
5576 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5577
5578         * main.c (print_help): Fix typo; stured -> stored.
5579
5580 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5581
5582         * getopt.c: Add definitions of getopt_long and getopt_long_only.
5583
5584 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5585
5586         * config.h.in: Renamed DEBUG to ENABLE_DEBUG.  ENABLE_DEBUG is, I
5587         think, a better name, because it implies that debugging output is
5588         merely possible, not "on by default", as might be construed from
5589         just DEBUG.
5590
5591 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5592
5593         * ftp.c (has_insecure_name_p): Define it here.
5594
5595         * utils.c (has_wildcards_p): Define it here.
5596
5597         * sysdep.h: Declare fnmatch-related macros here, if not using
5598         system fnmatch().  Update .c files to not declare fnmatch.h
5599         directly.
5600
5601         * cmpt.c (fnmatch): Moved here.  Use it only under non-GNU libc.
5602
5603 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5604
5605         * getopt.c: Newer version, imported from Free libit.
5606
5607 2003-10-07  Hrvoje Niksic  <hniksic@xemacs.org>
5608
5609         * cookies.c (struct cookie): Remove unused backpointer to cookie
5610         jar.
5611
5612 2003-10-07  Hrvoje Niksic  <hniksic@xemacs.org>
5613
5614         * cmpt.c (memmove): Comment out, since it's no longer used.
5615
5616         * cookies.c (cookie_jar_generate_cookie_header): Allocate room for
5617         chains in one pass.
5618         (find_chains_of_host): Assume that the caller has allocated DEST
5619         to be sufficiently large to take all the data.
5620         (eliminate_dups): Run through the array and eliminate dups on the
5621         fly instead of using memmove.
5622         (cookie_jar_process_set_cookie): Free cookie->domain before
5623         re-setting it.
5624
5625 2003-10-05  Gisle Vanem  <giva@bgnett.no>
5626
5627         * mswindows.c (set_sleep_mode): Fix type of
5628         _SetThreadExecutionState.
5629
5630 2003-10-05  Hrvoje Niksic  <hniksic@xemacs.org>
5631
5632         * utils.c (file_size): Return -1 if fopen() returns NULL.  Prior
5633         to this patch, wget --post-file=nosuchfile dumped core.
5634
5635 2003-10-04  Gisle Vanem  <giva@bgnett.no>
5636
5637         * mswindows.c (run_with_timeout): Use WaitForSingleObject to wait
5638         for thread termination.
5639
5640 2003-10-04  Hrvoje Niksic  <hniksic@xemacs.org>
5641
5642         * log.c: Use `...' in function definitions; ansi2knr will convert
5643         them to va_dcl.  This allowed removal of the ugly VA_START_1 and
5644         VA_START_2 macros.
5645
5646 2003-10-03  Gisle Vanem  <giva@bgnett.no>
5647
5648         * connect.c: And don't include them here.
5649
5650         * mswindows.h: Include winsock headers here.
5651
5652 2003-10-03  Hrvoje Niksic  <hniksic@xemacs.org>
5653
5654         * html-parse.c (convert_and_copy): Move variable declarations
5655         before statements.
5656
5657 2003-10-02  Gisle Vanem  <giva@bgnett.no>
5658
5659         * mswindows.c (run_with_timeout): For Windows: Run the 'fun' in a
5660         thread via a helper function. Continually query the thread's
5661         exit-code until finished or timed out.
5662
5663 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
5664
5665         * wget.h (XMALLOC_ARRAY): Removed.
5666         (ALLOCA_ARRAY): Ditto.
5667
5668         * html-parse.c: Renamed alloca_p to resized.
5669         (GROW_ARRAY): Renamed DO_REALLOC_FROM_ALLOCA to GROW_ARRAY and
5670         returned it to html-parse.c, since nothing else was using it.
5671
5672 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
5673
5674         * retr.c (retrieve_url): Initialize DUMMY storage for DT.  Caught
5675         by valgrind.
5676
5677 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
5678
5679         * html-parse.c (convert_and_copy): Handle numeric entities in
5680         hexadecimal, &#xHH.
5681         (convert_and_copy): Copy the contents directly to the pool without
5682         a stack-allocated intermediary.
5683
5684 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
5685
5686         * utils.c (alarm_set): New function; use either setitimer or alarm
5687         to set up the alarm.
5688         (alarm_cancel): New function; cancel the alarm set up by
5689         alarm_set.
5690         (run_with_timeout): Use them.
5691
5692 2003-10-01  Hrvoje Niksic  <hniksic@xemacs.org>
5693
5694         * url.c (url_parse): Don't leak memory when a reencoded URL turns
5695         out to be invalid.
5696
5697         * url.c (parse_errors): Mark error messages for translation.
5698         (url_error): Translate error messages returned to the caller.
5699
5700 2003-10-01  Hrvoje Niksic  <hniksic@xemacs.org>
5701
5702         * ftp.c (ftp_loop_internal): Initialize TMRATE to NULL to shut up
5703         the compiler.
5704
5705 2003-09-26  Gisle Vanem  <giva@bgnett.no>
5706
5707         * src/mswindows.c: Added ws_percenttitle() showing progress in the
5708         window titlebar. Called from retr.c. Secured ws_mypath().
5709
5710         * windows/config.h.ms: alloca() prototype not needed.  Removed
5711         "#undef ENABLE_NLS"; should be in Makefile IMHO. Moved
5712         WGET_USE_STDARG from mswindows.h to config.ms.h because of #ifdef
5713         in log.c. (MSVC's vararg.h and stdarg.h are incompatible).
5714
5715 2003-09-29  Aaron Hawley <Aaron.Hawley@uvm.edu>
5716
5717         * ftp.c (getftp): --spider option should now work with FTP
5718         downloads.
5719         (ftp_loop_internal): quiet reports and calculations of downloads
5720         when --spider option set, nor try deleting when --delete-after
5721         also set.
5722         (ftp_loop): --spider will skip HTML-ification of .listing file.
5723
5724 2003-09-26  Gisle Vanem  <giva@bgnett.no>
5725
5726         * mswindows.c (read_registry): Removed.
5727         (set_sleep_mode): New function.
5728         (windows_main_junk): Call it.
5729
5730 2003-09-26  Gisle Vanem  <giva@bgnett.no>
5731
5732         * mswindows.c (read_registry): Fix invocation of registry
5733         functions.
5734
5735         * mswindows.c (read_registry): Condition definitions of sleep and
5736         usleep with not HAVE_SLEEP and HAVE_USLEEP respectively.  Define
5737         HAVE_SLEEP and HAVE_USLEEP under __DMC__.
5738
5739 2003-09-24  Hrvoje Niksic  <hniksic@xemacs.org>
5740
5741         * url.c (url_escape_1): Revert unintentional change to lowercase
5742         xdigit escapes.
5743         (url_escape_dir): Document that this function depends on the
5744         output of url_escape_1.
5745
5746 2003-09-23  Hrvoje Niksic  <hniksic@xemacs.org>
5747
5748         * progress.c (create_image): Print the current ETA if we're done
5749         with the download.
5750         (create_image): Change '-' display char to '+' in the progress bar.
5751
5752         * Makefile.in (clean): Remove .libs.
5753
5754 2003-09-23  Hrvoje Niksic  <hniksic@xemacs.org>
5755
5756         * cookies.c (struct cookie): New flag domain_exact.
5757         (update_cookie_field): Skip leading dot in domain.
5758         (find_matching_chains): Match numeric addresses exactly; don't
5759         needlessly copy HOST to the stack.
5760         (matching_cookie): Added argument HOST.  If cookie->domain_exact
5761         is set, check that HOST is equal to cookie->domain.
5762         (cookie_jar_load): Only use TAB as delimiter.  Document the
5763         meaning of DOMAIN-FLAG.  Skip leading dot in domain.
5764         (cookie_jar_load): Don't ignore DOMAIN-FLAG -- instead, set
5765         domain_exact to true if DOMAIN-FLAG is false.
5766         (save_cookies_mapper): If domain_exact is false, prepend the
5767         domain with dot, like Mozilla does.
5768
5769 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
5770
5771         * progress.c (create_image): Print the initial part of the
5772         download with '-' characters, analogous to how dot progress prints
5773         the initial part with ','.
5774
5775         * hash.c (ptrhash): New function.
5776         (ptrcmp): Ditto.
5777         (hash_table_new): Default to identity hash table.
5778
5779 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
5780
5781         * safe-ctype.h (_sch_test): The cast of BIT to unsigned char was
5782         broken -- _sch_istable bitmasks are 16-bit, not 8-bit!  Cast BIT
5783         to unsigned short instead.
5784
5785 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
5786
5787         * url.c (path_simplify): Instead of calls to memmove, handle "./"
5788         and "../" by advancing pointers.
5789
5790 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
5791
5792         * retr.c (getproxy): Moved from url.c.
5793
5794         * convert.c: Split off link conversion from url.c into separate
5795         file.  Also included the book-keeping stuff from recur.c.
5796
5797 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5798
5799         * init.c: Improved documentation of functions.
5800         (cmd_boolean): Attempt to make code that tries to avoid calling
5801         strcmp for "speed" a bit more readable.
5802
5803         * init.c (simple_atof): Report error on encountering non-digit,
5804         non-"." character.
5805         (simple_atoi): Replacement for myatoi(), calling interface
5806         compatible with simple_atof.  Updated myatoi's callers.
5807
5808 2003-09-21  Bertrand Demiddelaer  <bert@b3rt.org>
5809
5810         * url.c (path_simplify): Would read two bytes past the end of the
5811         string in the "./" case.
5812
5813 2003-09-21  Matthew J. Mellon  <mellon@tymenet.com>
5814
5815         * http.c (gethttp): Recognize content-type "application/xhtml+xml"
5816         as what Wget considers "text/html".
5817
5818 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5819
5820         * connect.c (connect_with_timeout): Made timeout type double.
5821
5822         * options.h (struct options): New members read_timeout,
5823         dns_timeout, and connect_timeout.
5824         Use them.
5825
5826 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5827
5828         * init.c (simple_atof): New function.
5829         (cmd_time): Use it.
5830         (cmd_bytes): Accept things like "1.5k" and such.  Use simple_atof
5831         to parse decimals.
5832
5833         * retr.c (limit_bandwidth): Adjust each sleep by the error of the
5834         previous one.
5835
5836 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5837
5838         * main.c (main): Use setoptval() for setting the options.  Use
5839         run_command for `-e'.
5840
5841         * init.c (parse_line): Rewritten to return COMIND right away.
5842         Changed linkage to static.
5843         (run_wgetrc): Use the available comind when calling setval, so it
5844         doesn't have to be computed twice.
5845         (setval_internal): New function, runs the command's action without
5846         any error checking.
5847         (setoptval): New function, does what setval used to do, but exits
5848         in case of error.
5849         (run_command): New function.
5850
5851 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5852
5853         * connect.c (select_fd): Change MAXTIME's type to double.  Handle
5854         its decimal part.
5855
5856         * retr.c (sleep_between_retrievals): In the random-wait case, use
5857         random_float() to wait between 0 and 2*opt.wait seconds.
5858
5859         * utils.c (run_with_timeout): Accept `double' timeouts.  Correctly
5860         handle timeout values in (0, 1) range.
5861         (random_float): New function.
5862
5863         * options.h (struct options): Change the types of wait, waitretry,
5864         and timeout to double.
5865
5866         * init.c (cmd_time): Accept floating point time.
5867
5868 2003-09-20  Hrvoje Niksic  <hniksic@xemacs.org>
5869
5870         * retr.c (get_contents): Cosmetic fixes.
5871
5872 2003-09-20  Hrvoje Niksic  <hniksic@xemacs.org>
5873
5874         * url.c (uri_merge): Get rid of uri_merge_1.
5875         (uri_merge): Merge "foo//", "bar" as "foo//bar", not "foo///bar",
5876         i.e. don't add an extra slash merely because BASE ends with two
5877         slashes.
5878         (parse_credentials): Renamed from parse_uname.  Rewrittern in
5879         standard [beg, end) calling style.
5880         (url_skip_credentials): Renamed from url_skip_uname.  Made static.
5881         (url_skip_credentials): Include # and ; as terminators.  Old code
5882         would mistakenly consider "http://foo.com#hniksic@iskon.hr" to
5883         contain a username.
5884         (url_skip_scheme): Removed because it was unused.
5885         (url_has_scheme): Require "scheme" to be at least one char long.
5886
5887 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
5888
5889         * url.c (url_file_name): Expect NULL dir_prefix.
5890
5891         * init.c (cmd_file): Use a macro to prevent multiple #ifdef
5892         WINDOWS.
5893         (defaults): Set dir_prefix to NULL by default.
5894
5895 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
5896
5897         * safe-ctype.h (_sch_test): Cast BIT to unsigned char, like latest
5898         gcc does.
5899
5900 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
5901
5902         * wget.h (BOUNDED_TO_ALLOCA): Evaluate PLACE only once.
5903         (ARRAY_SIZE): Renamed to countof.  All callers updated.
5904
5905 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
5906
5907         * main.c (main): New option --strict-comments.
5908
5909         * html-parse.c (find_comment_end): New function: simple BM search
5910         for "-->".
5911         (map_html_tags): Use it if looking at a comment and not in strict
5912         comments mode.
5913
5914 2003-09-17  Aurelien Marchand  <artaxerxes@users.sf.net>
5915
5916         * ftp.h: Added OS400 system in enum
5917         * ftp-basic.c: recognize OS400 systems
5918         * ftp.c: don't prepend the CWD if talking to OS400, since it
5919         breaks the change in library
5920
5921 2003-09-18  Hrvoje Niksic  <hniksic@xemacs.org>
5922
5923         * retr.c (get_contents): Pass the correct argument to ssl_iread.
5924
5925 2003-09-18  Hrvoje Niksic  <hniksic@xemacs.org>
5926
5927         * safe-ctype.h: Don't #define ctype.h macros to errors because
5928         that loses when someone #include's ctype.h after safe-ctype.h.
5929
5930 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
5931
5932         * url.c: Undef U, W, C after use.
5933
5934 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
5935
5936         * init.c (cmd_spec_restrict_file_names): Allow the OS setting to
5937         be augmented by ",nocontrol" which means don't escape the control
5938         characters, but otherwise keep OS settings.
5939
5940         * url.c (file_unsafe_char): Deleted.
5941         (append_uri_pathel): Query filechr_table directly.
5942         (filechr_table): Separated Unix, Windows, and control-unsafe
5943         characters.
5944
5945 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
5946
5947         * url.c (url_escape_1): New function.
5948         (url_escape): Use it.
5949         (sync_path): Handle pathological cases where u->file and u->dir
5950         contain really strange characters.
5951         (ENCODE): Deleted.
5952         (REENCODE): Deleted.
5953
5954 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
5955
5956         * url.c (url_file_name): Don't reallocate FNAME if the file
5957         doesn't exist, as is usually the case.
5958
5959         * utils.c (unique_name): New flag allow_passthrough.
5960
5961 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
5962
5963         * utils.c (wtimer_sys_diff): Convert the time difference to signed
5964         __int64, then to double.  This works around MS VC++ 6 which can't
5965         convert unsigned __int64 to double directly.
5966
5967 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
5968
5969         * Makefile.in (clean): Also remove the core.<number> files
5970         produced by recent Linux systems.
5971
5972 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
5973
5974         * http.c (post_file): Don't pad the file if it's not large
5975         enough.  Bail out instead.
5976
5977 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5978
5979         * retr.c (get_contents): Reduce the buffer size to the amount of
5980         data that may pass through for one second.  This prevents long
5981         sleeps when limiting bandwidth.
5982
5983         * connect.c (connect_to_one): Reduce the socket's RCVBUF when
5984         bandwidth limitation to small values is requested.
5985
5986 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5987
5988         * progress.c (update_speed_ring): Moved the speed ring update to a
5989         separate function and documented it better.
5990
5991         * progress.c: Use `double' for most timers to support granularity
5992         smaller than 1ms.
5993
5994 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5995
5996         * wget.h (XDIGIT_TO_XCHAR): Implement as index into a literal
5997         string.
5998         (XDIGIT_TO_xchar): Ditto.
5999
6000 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
6001
6002         * utils.c: Change the type of timer-related functions from long to
6003         double, for better precision.  On machines supporting gettimeofday
6004         the timers now work with granularity of less than one millisecond.
6005
6006 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
6007
6008         * cookies.c (parse_set_cookies): Fixed the parser to handle more
6009         edge conditions.
6010         (test_cookies): New function, contains a test suite for
6011         parse_set_cookies.
6012
6013 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
6014
6015         * url.c (strpbrk_or_eos): Implement as a macro under Gcc.
6016
6017 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
6018
6019         * cookies.c (parse_set_cookies): Allow trailing space in
6020         set-cookies header.  Also, allow any amount of whitespace, not
6021         only one character.  Allow empty set-cookies header without
6022         spewing an error.
6023
6024 2003-09-14  Hrvoje Niksic  <hniksic@xemacs.org>
6025
6026         * url.c (append_uri_pathel): Use opt.restrict_file_names when
6027         calling file_unsafe_char.
6028
6029         * init.c: New command restrict_file_names.
6030
6031         * main.c (main): New option --restrict-file-names[=windows,unix].
6032
6033         * url.c (url_file_name): Renamed from url_filename.
6034         (url_file_name): Add directory and hostdir prefix here, not in
6035         mkstruct.
6036         (append_dir_structure): New function, does part of the work that
6037         used to be in mkstruct.  Iterates over path elements in u->path,
6038         calling append_uri_pathel on each one to append it to the file
6039         name.
6040         (append_uri_pathel): URL-unescape a path element and reencode it
6041         with a different set of rules, more appropriate for handling of
6042         files.
6043         (file_unsafe_char): New function, uses a lookup table to decide
6044         whether a character should be escaped for use in file name.
6045         (append_string): New utility function.
6046         (append_char): Ditto.
6047         (file_unsafe_char): New argument restrict_for_windows, decide
6048         whether Windows file names should be escaped in run-time.
6049
6050         * connect.c: Include <stdlib.h> to get prototype for abort().
6051
6052 2003-09-14  Hrvoje Niksic  <hniksic@xemacs.org>
6053
6054         * utils.c (wtimer_sys_set): Extracted the code that sets the
6055         current time here.
6056         (wtimer_reset): Call it.
6057         (wtimer_sys_diff): Extracted the code that calculates the
6058         difference between two system times here.
6059         (wtimer_elapsed): Call it.
6060         (wtimer_elapsed): Don't return a value smaller than the previous
6061         one, which could previously happen when system time is set back.
6062         Instead, reset start time to current time and note the elapsed
6063         offset for future calculations.  The returned times are now
6064         guaranteed to be monotonically nondecreasing.
6065
6066 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
6067
6068         * host.c (lookup_host): Print the result of the DNS lookup.
6069
6070 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
6071
6072         * init.c (cmd_boolean): Accept yes/no along with on/off.
6073         (cmd_lockable_boolean): Ditto.
6074
6075 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
6076
6077         * init.c: New command dns_cache.
6078
6079         * main.c (main): New option --dns-cache[=off].
6080
6081 2003-09-09  Hrvoje Niksic  <hniksic@xemacs.org>
6082
6083         * config.h.in: Initialize HAVE_GETADDRINFO and ENABLE_IPV6.
6084
6085         * all: Use #ifdef ENABLE_IPV6 instead of the older INET6.  Use
6086         HAVE_GETADDRINFO for getaddrinfo-related stuff.
6087
6088 2003-09-09  Hrvoje Niksic  <hniksic@xemacs.org>
6089
6090         * url.c (url_parse): Return an error if the URL contains a [...]
6091         IPv6 numeric address and we don't support IPv6.
6092
6093 2003-09-05  Hrvoje Niksic  <hniksic@xemacs.org>
6094
6095         * url.c (is_valid_ipv6_address): Modified to not require
6096         zero-terminated strings.
6097         (is_valid_ipv4_address): Ditto.
6098
6099 2003-09-05  Mauro Tortonesi <mauro@deepspace6.net>
6100
6101         src/url.c: added RFC 2732 compliance for URL parsing. The
6102         functions is_*_address valid are a modified version of
6103         glibc 2.3.2 inet_pton's code.
6104
6105 2003-09-03  Ahmon Dancy  <dancy@dancysoft.com>
6106
6107         * main.c init.c options.h: Added --retry-connrefused option so
6108         that Connection Refused failures are treated as non-fatal (when
6109         trying to retrieve from busy servers).
6110
6111         * wget.h: New CONNECT_ERROR macro for encapsulating this
6112         modification.
6113
6114         * ftp.c http.c : Use CONNECT_ERROR macro in places where
6115         ECONNREFUSED was checked.
6116
6117 2003-01-11  Ian Abbott  <abbotti@mev.co.uk>
6118
6119         * ftp.c (ftp_retrieve_glob): Reject insecure filenames as determined
6120         by calling new function has_insecure_name_p.  This is based on a
6121         patch by Red Hat.
6122
6123         * fnmatch.c (has_insecure_name_p): New function: returns non-zero
6124         if filename starts with `/' or contains `../' and is therefore
6125         considered insecure.
6126
6127         * fnmatch.h: Declare has_insecure_name_p().
6128
6129 2002-08-03  Hrvoje Niksic  <hniksic@xemacs.org>
6130
6131         * init.c (cmd_file): Allocate RESULT correctly.
6132
6133 2002-07-24  Hrvoje Niksic  <hniksic@xemacs.org>
6134
6135         * recur.c (retrieve_tree): Check whether downloaded_html_set is
6136         non-NULL before using it.
6137
6138 2002-05-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6139
6140         * html-parse.c (NAME_CHAR_P): Allow almost any character here.
6141
6142 2002-05-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6143
6144         * progress.c (bar_set_params): Fall back to dot progress if the
6145         terminal type is "emacs".
6146
6147 2002-05-20  Hrvoje Niksic  <hniksic@arsdigita.com>
6148
6149         * log.c: Don't #undef WGET_USE_STDARG.
6150
6151 2002-05-16  Hrvoje Niksic  <hniksic@arsdigita.com>
6152
6153         * hash.c (prime_size): Store the offset of the prime number in the
6154         prime table.  When searching, start with the given offset.
6155         (hash_table_new): Pass the pointer to ht->prime_offset to
6156         prime_size.
6157         (grow_hash_table): Ditto.
6158         (prime_size): Make 13 the first prime to make empty hash tables
6159         slightly smaller.
6160
6161 2002-05-16  Ian Abbott  <abbotti@mev.co.uk>
6162
6163         * recur.c (download_child_p): Minor optimization to avoid an
6164         unnecessary additional call to schemes_are_similar_p function.
6165
6166 2002-05-16  Ian Abbott  <abbotti@mev.co.uk>
6167
6168         * url.c (schemes_are_similar_p): New function to test enumerated
6169         scheme codes for similarity.
6170
6171         * url.h: Declare it.
6172
6173         * recur.c (download_child_p): Use it to compare schemes.  This
6174         also fixes a bug that allows hosts to be spanned (without the
6175         -H option) when the parent scheme is https and the child's is
6176         http or vice versa.
6177
6178 2002-05-14  Bill Richardson  <bill@riverstonenet.com>
6179
6180         * ftp.c (getftp): Don't ftruncate stdout.
6181
6182         * http.c (gethttp): Don't ftruncate stdout.
6183
6184 2002-05-09  Ian Abbott  <abbotti@mev.co.uk>
6185
6186         * cmpt.c (strptime_internal): Synched with glibc-2.1.3.
6187         (get_number): Ditto.
6188         (get_alt_number): Ditto.
6189         (__isleap): New function-like macro used by strptime.
6190         (day_of_the_week): New function used by strptime.
6191         (day_of_the_year): Ditto.
6192         (__mon_yday): Now shared by mktime and strptime implementations.
6193
6194 2002-05-08  Hrvoje Niksic  <hniksic@arsdigita.com>
6195
6196         * cookies.c (check_domain_match): Use match_tail in case
6197         insensitive mode.
6198
6199         * utils.c (match_tail): Allow the caller to specify case
6200         insensitive mode.
6201
6202         * cookies.c (store_cookie): When expiry_time is 0, print it as
6203         undefined, not indefinite.
6204
6205 2002-05-07  Ian Abbott  <abbotti@mev.co.uk>
6206
6207         * cookies.c (cookie_jar_process_set_cookie): Do not store
6208         discarded cookie.
6209
6210 2002-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
6211
6212         * cookies.c (check_domain_match): Allow cookies to be set for
6213         subdomains of unknown top-level domains under some circumstances.
6214
6215 2002-04-21  Thomas Lussnig  <thomas.lussnig@bewegungsmelder.de>
6216
6217         * gen_ssl.c:
6218         - allow checking of server cert
6219         - allow defining client cert type
6220         - allow limit of ssl protocol
6221         - check more return values
6222         - added debug message on break
6223
6224 2002-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
6225
6226         * recur.c (download_child_p): Revert order of items in check
6227         number 6 for clarity.
6228
6229 2002-04-20  Hrvoje Niksic  <hniksic@arsdigita.com>
6230
6231         * init.c: Ditto.
6232
6233         * main.c: Ditto.
6234
6235         * http.c: Use the new interface.
6236
6237         * cookies.c: Provide an OO-style "cookie jar" interface to enable
6238         separate cookie jars.
6239
6240         * http.c (http_atotm): Declare argument as const.
6241
6242 2002-04-20  Hrvoje Niksic  <hniksic@arsdigita.com>
6243
6244         * cookies.c (cookie_new): Default to PORT_ANY.
6245         (find_cookie_chain_exact): Only search by DOMAIN.
6246         (find_matching_cookie): Also check that PORT matches.
6247         (store_cookie): Only match the domain.
6248         (set_cookie_header_cb): When a cookie "fakes" a domain, assume it
6249         is valid for that host rather than discarding it completely.
6250         (find_matching_chains): Don't search by PORT.
6251         (matching_cookie): Also match PORT.
6252         (load_cookies): Set the port if specified, otherwise leave it as
6253         ANY.
6254         (save_cookies_mapper): Save the port if specified, otherwise leave
6255         it empty.
6256
6257 2002-04-19  Thomas Lussnig  <thomas.lussnig@bewegungsmelder.de>
6258
6259         * init.c: The option `egdfile' was not in sort order.
6260
6261 2002-04-16  Hrvoje Niksic  <hniksic@arsdigita.com>
6262
6263         * ftp.c (getftp): Treat directories that begin with <letter>: as
6264         absolute.
6265         (getftp): Strip trailing slashes from con->id before merging it
6266         with TARGET.
6267
6268 2002-04-16  Hrvoje Niksic  <hniksic@arsdigita.com>
6269
6270         * http.c (gethttp): If Content-Type is not given, assume
6271         text/html.
6272
6273 2002-04-15  Hrvoje Niksic  <hniksic@arsdigita.com>
6274
6275         * recur.c (download_child_p): Don't ignore rejection of HTML
6276         documents that are themselves leaves of recursion.
6277
6278 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
6279
6280         Makefile.in: Updated several dependencies for object files to take
6281         account of nested include files.
6282
6283 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
6284
6285         Makefile.in: The target `connect$o' (connect.o) now depends on
6286         `utils.h'
6287
6288 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
6289
6290         * host.c (SET_H_ERRNO): New function-like macro to set `h_errno'.
6291         (gethostbyname_with_timeout): Use it.
6292
6293         * utils.c: Don't define `SETJMP()', `run_with_timeout_env' or
6294         `abort_run_with_timeout()' when `USE_SIGNAL_TIMEOUT' is undefined.
6295
6296 2002-04-15  Hrvoje Niksic  <hniksic@arsdigita.com>
6297
6298         * host.c (getaddrinfo_with_timeout): New function.
6299         (gethostbyname_with_timeout): Ditto.
6300         (lookup_host): Use them.
6301
6302 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6303
6304         * utils.c (number_to_string): Handle the case when n < -INT_MAX.
6305
6306 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6307
6308         * init.c (comind): Use a marginally faster implementation of
6309         binary search.  To quote Martin Buchholz, "a nanosecond saved is a
6310         nanosecond earned."
6311
6312 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6313
6314         * main.c (print_help): Document `--post-data' and `--post-file'.
6315
6316 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6317
6318         * http.c (gethttp): Ditto.
6319
6320         * retr.c (retrieve_url): Initialize variables to appease the
6321         compiler.
6322
6323         * gen_sslfunc.c (ssl_iread): Don't handle EINTR when calling
6324         select_fd.
6325         (ssl_iwrite): Ditto.
6326
6327         * connect.c (select_fd): Rewrite to handle EINTR.  Set errno to
6328         ETIMEDOUT in case of timeout.
6329         (iread): No need to handle EINTR when calling select_fd.
6330         (iwrite): Ditto.
6331
6332 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6333
6334         * retr.c (retrieve_url): Make sure that POST is not honored for
6335         redirections.
6336
6337         * http.c (gethttp): Send the POST data when requested.
6338         (post_file): New function.
6339         (gethttp): Use it.
6340
6341         * main.c (main): Ditto.
6342
6343         * init.c: Add new options.
6344
6345         * options.h (struct options): New options post_data and
6346         post_file_name.
6347
6348 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6349
6350         * connect.c (connect_with_timeout): Firing SIGALRM can result in
6351         connect() exiting with EINTR.  Treat EINTR the same as ETIMEDOUT.
6352
6353 2002-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6354
6355         * connect.c (connect_with_timeout): Use it.
6356
6357         * utils.c (run_with_timeout): New function.
6358
6359 2002-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6360
6361         * url.c (getproxy): Accept a struct url argument.  This obviates
6362         the need for USE_PROXY_P.
6363
6364         * retr.c (retrieve_url): Allow proxy to be a non-FTP URL.
6365
6366         * ftp.c (getftp): Recognize FWTK-style proxy.
6367
6368 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6369
6370         * config.h.in: Only define _VA_LIST when compiled with gcc.
6371
6372 2002-04012  Ian Abbott  <abbotti@mev.co.uk>
6373
6374         * http.c (http_loop): Compensate for MS Windows two-second
6375         granularity of file modification time when comparing timestamps.
6376
6377         * ftp.c (ftp_retrieve_list): Ditto.
6378
6379 2002-04-12  Ian Abbott  <abbotti@mev.co.uk>
6380
6381         * utils.c (has_html_suffix_p): New function to test filename for
6382         common html extensions.
6383
6384         * utils.h: Declare it.
6385
6386         * http.c (http_loop): Use it instead of previous test.
6387
6388         * retr.c (retrieve_url): Ditto.
6389
6390         * recur.c (download_child_p): Ditto.
6391
6392 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6393
6394         * config.h.in: Define _VA_LIST on Solaris to prevent stdio.h from
6395         declaring va_list.
6396         From Kevin Rodgers <kevinr@ihs.com>.
6397
6398 2002-04-12  Ian Abbott  <abbotti@mev.co.uk>
6399
6400         * Makefile.in: Specify libtool mode explicitly when linking.
6401
6402 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6403
6404         * connect.c (connect_with_timeout): New function.
6405         (connect_to_one): Use it.
6406
6407         * config.h.in: Add stubs for HAVE_SIGSETJMP, HAVE_SIGBLOCK, and
6408         HAVE_SETJMP_H.
6409
6410 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6411
6412         * log.c: Set WGET_USE_STDARG if __STDC__ is defined and stdarg.h
6413         is present.
6414
6415 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6416
6417         * progress.c (bar_create): If INITIAL is larger than TOTAL, fix
6418         TOTAL.
6419         (bar_finish): Likewise.
6420
6421 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6422
6423         * html-url.c (tag_handle_form): New function.  Pick up form
6424         actions and mark them for conversion only.
6425
6426 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6427
6428         * progress.c (struct progress_implementation): Use PARAMS when
6429         declaring the parameters of *create, *update, *finish, and
6430         *set_params.
6431
6432         * netrc.c: Ditto.
6433
6434         * http.c: Reformat some function definitions so that ansi2knr can
6435         read them.
6436
6437         * hash.c (struct hash_table): Use the PARAMS macro around
6438         parameters in the declaration of hash_function and test_function.
6439         (prime_size): Spell 2580823717UL and 3355070839UL as (unsigned
6440         long)0x99d43ea5 and (unsigned long)0xc7fa5177 respectively, so
6441         that pre-ANSI compilers can read them.
6442         (find_mapping): Use PARAMS when declaring EQUALS.
6443         (hash_table_put): Ditto.
6444
6445         * ftp.h: Wrap the parameters of ftp_index declaration in PARAMS.
6446
6447         * cookies.c (cookie_new): Use (unsigned long)0 instead of 0UL,
6448         which was unsupported by pre-ANSI compilers.
6449
6450         From Nelson H. F. Beebe <beebe@math.utah.edu>, for the most part.
6451
6452 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6453
6454         * url.c (url_filename): Use compose_file_name regardless of
6455         whether opt.dirstruct is set.
6456         (mkstruct): Don't handle the query and the reencoding of DIR; that
6457         is done in compose_file_name.
6458
6459 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6460
6461         * wget.h: Ditto for extern char *exec_name.
6462
6463         * options.h: Don't guard against OPTIONS_DEFINED_HERE -- it is
6464         perfectly legal to follow an `extern' with a non-`extern' ones,
6465         provided the types match.
6466
6467         * main.c: Don't define OPTIONS_DEFINED_HERE.
6468
6469 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6470
6471         * progress.c (create_image): Revert to calculating ETA based on
6472         average download speed.
6473         (create_image): Don't print ETA until the download has been active
6474         for at least 3 seconds.
6475         (create_image): When ETA is not available, don't print anything.
6476         The previous version would print --:--.
6477
6478 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6479
6480         * progress.c (bar_update): Keep updating a subinterval until it
6481         reaches or exceeds a watermark.  That way the measurement will be
6482         guaranteed to span a configurable minimum of time.  The current
6483         default is 3s in 30 100ms intervals.
6484
6485 2002-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6486
6487         * progress.c (bar_update): Maintain an array of the time it took
6488         to perform previous 30 network reads.
6489         (create_image): Calculate the download speed and ETA based on the
6490         last 30 reads, not the entire download.
6491         (create_image): Make sure that the ETA is not changed more than
6492         once per second.
6493
6494 2002-04-09  Ian Abbott  <abbotti@mev.co.uk>
6495
6496         * mswindows.c (borland_utime): New function conditionally defined
6497         when `HACK_BCC_UTIME_BUG' is defined.  A reimplementation of
6498         `utime()' as Borland's `utime()' function is broken on Windows 9x
6499         systems.  (Original patch by Chin-yuan Kuo <sr1111111@yahoo.com.tw>.)
6500
6501 2002-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
6502
6503         * ftp.c (ftp_loop): Propagate the result of ftp_retrieve_glob.
6504
6505 2002-03-26  Ian Abbott  <abbotti@mev.co.uk>
6506
6507         * Makefile.in: Updated several dependencies for object files.
6508
6509 2002-03-20  Ian Abbott  <abbotti@mev.co.uk>
6510
6511         * mswindows.c: Include "utils.h".
6512
6513 2002-03-18  Ian Abbott  <abbotti@mev.co.uk>
6514
6515         * host.h: Don't include netdb.h on windows.
6516
6517 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6518
6519         * recur.c (retrieve_tree): Handle the case when start_url doesn't
6520         parse.
6521
6522 2002-02-19  Andreas Damm  <andreas-sourceforge@radab.org>
6523
6524         * wget.h (DO_REALLOC_FROM_ALLOCA): Multiply with sizeof(type) when
6525         calling xmalloc and memcpy.
6526
6527 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6528
6529         * host.h: Include Unix-specific includes #ifndef WINDOWS.
6530         Patch originally provided by Christian Lackas.
6531
6532 2002-02-11  Christian Lackas  <delta@lackas.net>
6533
6534         * recur.c: recurive downloading for https fixed.
6535
6536 2002-02-19  Alan Eldridge  <alane@geeksrus.net>
6537
6538         * host.h: Also include <netinet/in.h> and <sys/socket.h>.
6539
6540         * ftp-basic.c: Also include <netinet/in.h>.
6541
6542 2002-02-05  Ian Abbott  <abbotti@mev.co.uk>
6543
6544         * http.c (gethttp): when -c used, mark already fully retrieved
6545         file as successfully retrieved.
6546
6547 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6548
6549         * url.c (url_parse): Don't treat '?' as query string separator
6550         when parsing FTP URLs.
6551
6552 2002-02-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6553
6554         * html-url.c (tag_handle_meta): Don't crash on <meta
6555         http-equiv=refresh> where content is missing.
6556
6557 2002-01-31  Herold Heiko  <Heiko.Herold@previnet.it>
6558
6559         * ftp-basic.c, host.c: don't include sys/socket.h, arpa/inet.h,
6560         netdb.h on windows.
6561
6562 2002-01-30  Hrvoje Niksic  <hniksic@arsdigita.com>
6563
6564         * retr.c (retrieve_url): Remove redirection cycle detection.  This
6565         is because some sites legitimately redirect the user back to the
6566         same location, e.g. after an authorization check performed by
6567         another page.  MAX_REDIRECTIONS is still used to prevent infinite
6568         redirection loops.
6569
6570 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6571
6572         * http.c (gethttp): Wrap host name in square brackets if it
6573         contains a colon.
6574
6575 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6576
6577         * url.c (url_parse): Allow all hex digits, not only decimal ones,
6578         to form an IP address.
6579
6580 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6581
6582         * url.c (urlchr_table): Make square braces reserved, so we can
6583         parse http://[::1]/.
6584         (url_parse): Handle host in braces.
6585         (url_string): If url->host contains colons, wrap it in braces.
6586
6587 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6588
6589         * connect.c (resolve_bind_address): New function.
6590         (connect_to_one): Use it.
6591         (bindport): Ditto.
6592
6593         * init.c: Don't resolve bind-address here.
6594
6595         * host.c (wget_sockaddr_set_address): Would bug out with ADDR == NULL.
6596
6597 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6598
6599         * host.c (lookup_host): Use sizeof(ip4_address) to calculate the
6600         offset.
6601         (address_list_new): Use map_ipv4_to_ip.
6602         (wget_sockaddr_set_address): Convert ADDR to IPv4 before using it
6603         in IPv4 context.
6604
6605 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6606
6607         * source: Integrated IPv6 support.
6608         Written by Thomas Lussnig <thomas.lussnig@bewegungsmelder.de>.
6609
6610 2002-01-15  Ian Abbott  <abbotti@mev.co.uk>
6611
6612         * init.c (cmd_file): Change `\' to `/' for Windows (yes, really!)
6613         (cmd_directory): New function. Like cmd_file(), but strips
6614         trailing directory separators.
6615         (commands): Change action for "dirprefix" from `cmd_file' to
6616         `cmd_directory'.
6617
6618         * utils.c (make_directory): Allow intermediate `mkdir' calls to
6619         fail, as not all path components that do not exist should be
6620         directory components, especially under Windows.
6621
6622 2002-01-17  Hrvoje Niksic  <hniksic@arsdigita.com>
6623
6624         * netrc.c (parse_netrc): Skip leading whitespace before testing
6625         whether the line is empty.  Empty lines still contain the line
6626         terminator.
6627
6628 2002-01-15  Hrvoje Niksic  <hniksic@arsdigita.com>
6629
6630         * gen_sslfunc.c (ssl_iread): Call select on the file descriptor
6631         only if no data is pending in SSL buffers.
6632         From tony@bluetail.com.
6633
6634 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6635
6636         * headers.c (header_get): Strip trailing whitespace from the
6637         header.
6638
6639 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6640
6641         * url.c (parse_uname): URL-decode *USER and *PASSWD.
6642
6643 2002-01-07  Ian Abbott <abbotti@mev.co.uk>
6644
6645         * url.c (uri_merge_1): Deal with "net path" relative URL (one that
6646         starts with "//").
6647
6648 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6649
6650         * http.c (gethttp): Invalidate SOCK if get_contents encountered an
6651         error.
6652
6653 2001-12-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6654
6655         * version.c: Wget 1.8.1 is released.
6656
6657 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6658
6659         * version.c: Wget 1.8.1-pre3 is released.
6660
6661 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6662
6663         * recur.c (retrieve_tree): Enqueue the canonical representation of
6664         start_url, so that the test against dl_url_file_map works.
6665
6666 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6667
6668         * log.c (logputs): Check for requested verbosity before printing
6669         anything.
6670
6671 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6672
6673         * html-url.c (tag_handle_link): Treat the "shortcut icon" link as
6674         inline.
6675
6676 2001-12-18  Hrvoje Niksic  <hniksic@arsdigita.com>
6677
6678         * recur.c (retrieve_tree): Make a copy of file obtained from
6679         dl_url_file_map because the code calls xfree(file) later.
6680
6681 2001-12-18  Hrvoje Niksic  <hniksic@arsdigita.com>
6682
6683         * recur.c (register_html): Maintain a hash table of HTML files
6684         along with the list.  Disallow duplicates.
6685         (retrieve_tree): Use downloaded_html_set to check whether the file
6686         found in dl_url_file_map is an HTML file, and descend into it if
6687         so.
6688         (convert_all_links): Don't guard against duplicates in
6689         downloaded_html_list, since they are no longer possible.
6690
6691 2001-12-18  Ian Abbott  <abbotti@mev.co.uk>
6692
6693         * recur.c (retrieve_tree): Pass on referring URL when retrieving
6694         recursed URL.
6695
6696 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
6697
6698         * version.c: Wget 1.8.1-pre2 is released.
6699
6700 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
6701
6702         * retr.c (sleep_between_retrievals): Simplify indentation.
6703
6704 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
6705
6706         * gen_sslfunc.c (ssl_init_prng): Use random_number to get a byte
6707         of "randomness" at a time.
6708         (ssl_init_prng): Don't seed the PRNG; random_number will do that.
6709
6710         * retr.c (sleep_between_retrievals): Use it.  Make sure that the
6711         random amount averages in opt.wait.
6712         (sleep_between_retrievals): Don't seed the PRNG; random_number
6713         will do that.
6714
6715         * utils.c (random_number): New function.
6716
6717 2001-12-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6718
6719         * url.c (path_simplify): Move here from utils.c, and make static.
6720
6721 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6722
6723         * init.c (wgetrc_file_name): Print correct message when loading
6724         getenv("WGETRC") fails.
6725
6726 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6727
6728         * recur.c (register_download): Don't abort when one URL references
6729         two different files.
6730
6731 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6732
6733         * http.c (gethttp): Check for conn->scheme, not u->scheme, before
6734         calling ssl_iwrite.
6735
6736 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6737
6738         * version.c: Wget 1.8.1-pre1 is released.
6739
6740 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6741
6742         * res.c (matches): Fix broken URL in the docstring.
6743
6744 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6745
6746         * html-url.c (tag_url_attributes): Mark <embed href=...> as
6747         external.
6748
6749 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6750
6751         * url.c (get_urls_file): Cosmetic changes.
6752
6753 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6754
6755         * html-url.c (append_one_url): Resurrect warning when unable to
6756         resolve a relative link.
6757
6758 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6759
6760         * html-url.c (collect_tags_mapper): Break into several functions.
6761         (tag_url_attributes): Collect <embed href=...>.
6762
6763 2001-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6764
6765         * host.c: New type ipv4_address.  Use it consistently instead of
6766         `unsigned char[4]' and `unsigned char *'.
6767         (pretty_print_address): Accept a `const void *', to require even
6768         less casting.
6769
6770 2001-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6771
6772         * ftp-ls.c (ftp_parse_vms_ls): Fix obvious memory leaks.
6773
6774 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6775
6776         * main.c (main): Initialize progress after fork_to_background, so
6777         that it knows when to use dots.
6778
6779         * mswindows.c (ws_hangup): Call log_request_redirect_output.
6780
6781         * utils.c (fork_to_background): Print the PID of the child
6782         process.
6783
6784         * log.c (log_request_redirect_output): Set a flag that output
6785         redirection has been requested.  Doing anything else in a signal
6786         handler is unsafe.
6787         (check_redirect_output): New function: check whether redirection
6788         has been requested and, if so, call redirect_output().
6789         (logputs): Call check_redirect_output.
6790         (logprintf): Ditto.
6791         (debug_logprintf): Ditto.
6792         (redirect_output): Print clearer messages.
6793
6794         * main.c (redirect_output_signal): Don't call
6795         redirect_output_signal directly.  Instead, call
6796         log_request_redirect_output.
6797
6798         * utils.c (memfatal): Ditto.
6799
6800         * progress.c (display_image): Use it.
6801
6802         * log.c (log_set_save_context): New function: allow the caller to
6803         turn off saving log context lines.
6804
6805 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6806
6807         * host.c (address_list_set_faulty): Uncomment a sanity check.
6808
6809 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6810
6811         * utils.c (long_to_string): Return a pointer after where the
6812         number ends.
6813         (long_to_string): Rename to number_to_string.
6814
6815 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6816
6817         * utils.c (path_simplify): Correctly handle the unlikely case that
6818         b starts out as path + 1.
6819
6820 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6821
6822         * utils.c (path_simplify): Rewrite, with better comments, and
6823         without the use of strcpy to move overlapping blocks.
6824
6825 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6826
6827         * init.c (cmd_spec_progress): Resurrect.  Check whether VAL is a
6828         valid progress type before setting it.
6829
6830 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6831
6832         * main.c (main): Remove stray debugging message.
6833
6834 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6835
6836         * progress.c (create_image): Fix ETA padding when hours are prined.
6837
6838 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6839
6840         * version.c: Wget 1.8 is released.
6841
6842 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6843
6844         * url.c (reencode_string): Declare static.
6845
6846         * res.c (registered_specs): Declare static.
6847
6848         * progress.c (current_impl_locked): Declare static.
6849
6850         * log.c (flush_log_p): Declare static.
6851         (needs_flushing): Ditto.
6852
6853         * http.c (digest_authentication_encode): Declare static.
6854
6855         * html-url.c (init_interesting): Declare static.
6856
6857         * host.c (host_name_addresses_map): Declare static.
6858
6859         * cookies.c (find_matching_chains): Declare static.
6860
6861         * ftp-ls.c (ftp_parse_vms_ls): Warn about the memory leak
6862         indicated by lint.
6863
6864         * utils.c (path_simplify): Remove unused variable STUB_CHAR.
6865
6866         * host.c (address_list_set_faulty): Document that INDEX is
6867         currently unused.
6868
6869         * url.c (rewrite_shorthand_url): Remove unused variable PATH.
6870
6871 2001-12-08  Hrvoje Niksic  <hniksic@arsdigita.com>
6872
6873         * version.c: Wget 1.8-pre2 is released.
6874
6875 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6876
6877         * progress.c (progress_handle_sigwinch): Set up the signal again.
6878
6879         * utils.c: Include <sys/termios.h>, where Solaris defines
6880         TIOCGWINSZ.
6881
6882         * progress.c (bar_create): Don't use the last column on the screen.
6883         (create_image): Pad ETA to constant size.  Pad SIZE to nine digits
6884         only until it exceeded them.
6885
6886 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6887
6888         * version.c: Wget 1.8-pre1 is released.
6889
6890 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6891
6892         * progress.c (progress_create): Make sure that, when the output is
6893         redirected, the progress implementation gets changed to the
6894         fallback one.
6895         (bar_set_params): Set current_impl_locked to 1 when "force" is
6896         specified.
6897         (progress_create): Don't change the progress implementation if
6898         current_impl_locked is non-zero.
6899
6900         * main.c (redirect_output_signal): Call
6901         progress_schedule_redirect.
6902
6903         * progress.c (progress_schedule_redirect): New function.
6904
6905 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6906
6907         * log.c (logvprintf): Restructure to allow being called multiple
6908         times.
6909         (logprintf): Call logvprintf in a loop.
6910         (debug_logprintf): Ditto.
6911
6912 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6913
6914         * gen_sslfunc.c (ssl_init_prng): Allow the user to disable EGD by
6915         setting egd_file it to empty string.
6916
6917         * main.c (main): Change the option name from --sslegdsock to
6918         --egd-file.
6919
6920 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6921
6922         * gen_sslfunc.c (ssl_init_prng): Make the printed message
6923         translatable.
6924
6925 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6926
6927         * url.c (scheme_disable): New function.
6928
6929         * main.c (main): Call ssl_init_prng from here rather than from
6930         init_ssl, so that it has a chance to disable support for https
6931         before a URL has been resolved.
6932
6933         * gen_sslfunc.c (ssl_init_prng): Seed with rand() if all else
6934         failed.
6935         (ssl_init_prng): Disable support for https if seeding the PRNG
6936         fails.
6937
6938 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6939
6940         * utils.c (read_whole_line): Handle lines beginning with \0.
6941
6942 2001-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
6943
6944         * recur.c (convert_all_links): Guard against duplicates in
6945         downloaded_html_files.
6946         (register_download): Don't invalidate similar-looking URLs.
6947         (match_except_index): New function.
6948
6949 2001-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
6950
6951         * utils.c (path_simplify): Document with test cases.
6952
6953 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
6954
6955         * gen_sslfunc.c: Ditto.
6956
6957         * rbuf.c: Include <string.h>.
6958
6959 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
6960
6961         * recur.c (retrieve_tree): Check whether the URL was already
6962         downloaded before downloading it again.
6963         (descend_child_p): Renamed to download_child_p.
6964         (register_download): When one URL is downloaded to a file already
6965         "owned" by another URL, delete all references that map any URL to
6966         that file.
6967         (register_delete_file): New function.
6968         (retrieve_tree): Use it after deleting a file.
6969
6970         * url.c (url_parse): Re-canonicalize the URL also if the path is
6971         empty, so that e.g. "http://www.server.com" ->
6972         "http://www.server.com/".
6973         (lowercase_str): Use ISUPPER instead of !ISLOWER.
6974
6975         * retr.c (retrieve_url): Use the canonical URL form when calling
6976         register_download().
6977
6978 2001-12-04  Ian Abbott <abbotti@mev.co.uk>
6979
6980         * snprintf.c (dopr): Use `unsigned int' as the second argument to
6981         va_arg when casting to `unsigned short' is intended.
6982
6983 2001-12-04  Herold Heiko  <Heiko.Herold@previnet.it>
6984
6985         * gen_sslfunc.c: on windows provide ssl crypto random
6986           initialization through RAND_screen(); could possibly
6987           be not enough for strong ssl communication (see the
6988           relevant manual page from the openssl package).
6989
6990 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
6991
6992         * url.c (local_quote_string): Reenable quoting of question marks,
6993         but only when `--html-extension' is used.
6994
6995 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
6996
6997         * version.c: Wget 1.8-beta3 is released.
6998
6999 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
7000
7001         * snprintf.c (dopr): Cast the result of va_arg to short int and
7002         short unsigned int where these types are expected to be used.
7003
7004 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
7005
7006         * snprintf.c (dopr): Replace `short int' and `unsigned short int'
7007         with `int' when using it as the second argument to `va_arg'.
7008
7009 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
7010
7011         * host.c (address_list_new_one): New function.
7012         (lookup_host): Use it.
7013
7014 2001-12-03  Andre Majorel  <amajorel@teaser.fr>
7015
7016         * host.c (lookup_host): Don't initialize TMPSTORE directly because
7017         it's not legal C.
7018
7019 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
7020
7021         * ftp-basic.c (ftp_port): Don't return HOSTERR if we fail getting
7022         the socket data.
7023
7024         * ftp.c: Ditto.
7025
7026         * http.c: No need to declare h_errno.
7027
7028         * host.c: Declare h_errno.
7029
7030 2001-12-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7031
7032         * utils.c (file_merge): If BASE doesn't contain a slash, just
7033         return a copy of FILE.
7034
7035 2001-12-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7036
7037         * version.c: Wget 1.8-beta2 is released.
7038
7039 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7040
7041         * ftp.c (getftp): When PWD fails, assume "/".
7042
7043         * ftp-basic.c (ftp_syst): Fix indentation.
7044
7045 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7046
7047         * url.c (get_urls_file): If opt.base_href is specified, merge each
7048         URL with the base.
7049
7050 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7051
7052         * main.c (print_help): Don't document the removed `-nh'.
7053
7054 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7055
7056         * url.c (url_full_path): Document better.
7057
7058         * http.c (gethttp): Use the full path when creating digest
7059         authorization.
7060
7061 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7062
7063         * cookies.c (path_matches): Return 0 if PREFIX doesn't begin with
7064         '/'.
7065
7066 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7067
7068         * cookies.c (path_matches): FULL_PATH doesn't begin with '/', but
7069         PREFIX does.
7070
7071 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7072
7073         * cookies.c (check_domain_match): Reimplement to match Netscape's
7074         "preliminary specification" for cookies.
7075
7076 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7077
7078         * url.c (replace_attr_refresh_hack): New function.
7079         (convert_links): Call replace_attr_refresh_hack for Refresh
7080         links.  It will add the "TMOUT; URL=" junk before the link.
7081
7082         * html-url.c (collect_tags_mapper): Set ID to the ID of the
7083         "content" attribute, not "http-equiv".
7084         (collect_tags_mapper): Don't use OFFSET to hack the raw_* values;
7085         instead, store the information that this entry belongs to a
7086         "refresh" link.
7087
7088 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7089
7090         * version.c: Wget 1.8-beta1 is released.
7091
7092 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7093
7094         * recur.c (retrieve_tree): Allow -p retrievals to exceed maximum
7095         depth by more than one.
7096
7097 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
7098
7099         * retr.c (retrieve_url): Don't allow more than 20 redirections.
7100
7101 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
7102
7103         * recur.c (retrieve_tree): Skip the non-inline entries when
7104         enqueuing the children of a leaf HTML node in -p mode.
7105         (descend_url_p): Ignore opt.no_parent when in -p mode and UPOS is
7106         "inline".
7107
7108         * html-url.c (get_urls_html): Don't accept dash_p_leaf_HTML.
7109         (collect_tags_mapper): When an entry is "inline", mark it as such.
7110
7111         * recur.c (descend_url_p): Fix test when checking for
7112         acceptance/rejection rules.
7113
7114 2001-10-31 Daniel BODEA <dali@dali-designs.com>
7115
7116         * netrc.c (search_netrc): When slack_default is 0, still look for
7117         an account with matching password, just not the "default account".
7118         HTTP Authorization using .netrc should now work as expected.
7119
7120 2001-11-30  T. Bharath  <TBharath@responsenetworks.com>
7121
7122         * http.c (persistent_available_p): Call SHUTDOWN_SSL if
7123         test_socket_open fails.
7124
7125 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
7126
7127         * progress.c (display_image): Just print one CR to reset the
7128         cursor position.
7129
7130 2001-11-30  Christian Fraenkel  <c.fraenkel@gmx.net>
7131
7132         * init.c: New command `ssl_egd_sock'.
7133
7134         * main.c (main): New option `--sslegdsock'.
7135
7136         * gen_sslfunc.c (ssl_init_prng): Seed the RNG using EGD.
7137
7138 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7139
7140         * cmpt.c (memmove): Include a simple memmove implementation.
7141
7142 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7143
7144         * headers: Guard against header files being included twice.
7145
7146 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7147
7148         * gen-md5.c: Use unsigned char * as the buffer argument to
7149         gen_md5_update.
7150
7151 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7152
7153         * connect.h: Declare select_fd.
7154
7155 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7156
7157         * recur.c (descend_url_p): When resolving no_parent, compare with
7158         start_url, not parent url.  Otherwise link from /a/b/ to /a/c/
7159         wouldn't be followed, although the download started from /a/.
7160
7161 2001-01-23  Herold Heiko  <Heiko.Herold@previnet.it>
7162
7163         * config.h.ms, mswindows.h: defined HAVE_ISATTY, use _isatty for
7164         MS VC; somebody with Borland compiler please check and provide
7165         patch if possible;
7166
7167         * cmpt.c: provided a usleep emulation.
7168
7169 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7170
7171         * host.c (address_list_new): Initialize al->faulty.
7172
7173 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7174
7175         * http.c (http_process_range): Accept the broken output of
7176         "JavaWebServer/1.1.1".
7177
7178 2001-11-28  Hrvoje Niksic  <hniksic@arsdigita.com>
7179
7180         * progress.c (dot_set_params): If PARAMS is unspecified, use
7181         dot_style, if available.
7182
7183         * init.c: Ditto.
7184
7185         * main.c (main): Resurect --dot-style.
7186
7187         * progress.c (dot_finish): Print the quantity if we're left at the
7188         beginning of a row.
7189
7190 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7191
7192         * cmpt.c (random): Removed.
7193
7194         * retr.c (sleep_between_retrievals): Use the more portable rand()
7195         instead of random().
7196
7197 2001-11-27  Ian Abbott <abbotti@mev.co.uk>
7198
7199         * retr.c (retrieve_from_file): Initialize `new_file' to NULL to
7200         prevent seg fault.
7201
7202 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7203
7204         * connect.c (connect_to_many): Use address_list_set_faulty to
7205         prevent the faulty address from being reused.
7206
7207         * host.c (address_list_set_faulty): New function.
7208         (address_list_get_bounds): New function, instead of
7209         address_list_count.
7210
7211 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7212
7213         * url.c (convert_links): Don't translate %d-%d.
7214
7215         * main.c (print_help): Remove stray HAVE_RANDOM code.
7216
7217 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7218
7219         * ftp.c (getftp): Improve output after sending PASV.  Don't
7220         attempt to "look up" the IP address we already know; call
7221         connect_to_one directly.
7222
7223 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7224
7225         * progress.c: Change the default progress implementation to "bar".
7226
7227 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7228
7229         * progress.c (bar_create): Print two newlines.
7230
7231 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7232
7233         * cmpt.c (random): New function, a simple-minded replacement for
7234         random() on systems that don't have it.
7235
7236 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7237
7238         * config.h.in: Put a HAVE_USLEEP stub.
7239
7240         * cmpt.c (usleep): Replacement implementation of usleep using
7241         select.
7242
7243         * init.c: New option init_rate.
7244
7245         * main.c (main): New option --limit-rate.
7246
7247         * retr.c (limit_bandwidth): New function.
7248         (get_contents): Call it to limit the bandwidth used when
7249         downloading.
7250
7251         * progress.c (dot_update): Would print the wrong download speed on
7252         rows other than the first one when the download was continued.
7253         (dot_finish): Ditto.
7254
7255 2001-11-26  Ian Abbott <abbotti@mev.co.uk>
7256
7257         * http.c (gethttp): fix undeclared variable 'err' when compiled
7258         with HAVE_SSL.
7259
7260 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7261
7262         * progress.c: Don't allocate new timers; use the timing data
7263         propagated from the caller.
7264
7265         * retr.c (get_contents): Allocate and use a timer.
7266
7267 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7268
7269         * http.c (last_host_ip): Made into an address_list.
7270         (invalidate_persistent): Release pc_last_host_ip.
7271         (register_persistent): Use lookup_host.
7272         (persistent_available_p): Check for equality of hosts using
7273         address_list_match_all.  Call address_list_release.
7274         (http_cleanup): New function.
7275
7276         * ftp.c (getftp): Use lookup_host and connect_to_many.
7277
7278         * http.c (gethttp): Use lookup_host and connect_to_many.
7279
7280         * connect.c (make_connection): Removed.
7281         (connect_to_one): New function.
7282         (connect_to_many): Ditto.
7283         (set_connection_host_name): Ditto.
7284
7285         * host.c (lookup_host): New function; new return type.
7286         (address_list_new): New function.
7287         (address_list_count): Ditto.
7288         (address_list_copy_one): Ditto.
7289         (address_list_delete): Ditto.
7290         (address_list_release): Ditto.
7291         (pretty_print_address): Ditto.
7292
7293 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7294
7295         * recur.c (retrieve_tree): In case of followed redirection,
7296         blacklist the pre-redirection URL.
7297
7298 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7299
7300         * recur.c (descend_redirect_p): New function.
7301         (retrieve_tree): Make sure redirections are not blindly followed.
7302
7303 2001-11-04  Alan Eldridge  <alane@geeksrus.net>
7304
7305         * config.h.in: added HAVE_RANDOM.
7306
7307         * options.h: added random_wait to struct options.
7308
7309         * main.c (print_help [HAVE_RANDOM], main): added arg parsing, help
7310         for --random-wait.
7311
7312         * retr.c (sleep_between_retrievals) [HAVE_RANDOM]: added
7313         implementation of random wait times.
7314
7315         * init.c (commands): added "randomwait" keyword.
7316
7317 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7318
7319         * recur.c (descend_url_p): Be more conservative with blacklisting
7320         URLs.
7321         (convert_all_links): Print how many files have been converted, and
7322         how long it took.
7323
7324         * progress.c (create_image): Place the number of downloaded bytes
7325         right after the progress bar.
7326
7327         * utils.c (suffix): Return a pointer into the string.
7328
7329 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7330
7331         * url.c (convert_links): Handle CO_NULLIFY_BASE.
7332
7333         * recur.c (retrieve_tree): Ignore download-ignorable children.
7334         (convert_all_links): Specify CO_NULLIFY_BASE when link_base_p.
7335
7336         * html-url.c (handle_link): Return the newly created urlpos.
7337         (collect_tags_mapper): When dealing with BASE, store the base
7338         reference and mark it as download-ignorable.
7339
7340 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7341
7342         * url.c (convert_links): Attempt to quote '?' as "%3F" when
7343         linking to local files.  Given up on the attempt, as it breaks
7344         local browsing.
7345
7346 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7347
7348         * main.c (private_initialize): Removed.
7349         (main): Don't call private_initialize.
7350
7351         * http.c: Call lookup_host.
7352
7353         * host.c (host_init): Removed.
7354         (add_host_to_cache): Initialize host_name_address_map here, on
7355         demand.
7356         (ngethostbyname): Commented out.
7357
7358         * connect.c (make_connection): Remove dead code; use lookup_host.
7359
7360         * host.c (store_hostaddress): Renamed to lookup_host and reversed
7361         the args.
7362         Removed host_address_name_map and host_slave_master_map.
7363
7364 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7365
7366         * progress.c (dot_create): Align the "[ skipping ... ]" string
7367         with the dots.
7368
7369         * retr.c (rate): Split into two functions: calc_rate and
7370         retr_rate.
7371
7372         * progress.c (create_image): Draw a dummy progress bar even when
7373         total size is unknown.
7374         (display_image): Place the text cursor at the end of the "image".
7375
7376 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7377
7378         * url.c (reencode_string): Use unsigned char, not char --
7379         otherwise the hex digits come out wrong for 8-bit chars such as
7380         nbsp.
7381         (lowercase_str): New function.
7382         (url_parse): Canonicalize u->url if needed.
7383         (get_urls_file): Parse each URL, and return only the valid ones.
7384         (free_urlpos): Call url_free.
7385         (mkstruct): Add :port if the port is non-standard.
7386         (mkstruct): Append the query string to the file name, if any.
7387         (urlpath_length): Use strpbrk_or_eos.
7388         (uri_merge_1): Handle the cases where LINK is an empty string,
7389         where LINK consists only of query, and where LINK consists only of
7390         fragment.
7391         (convert_links): Count and report both kinds of conversion.
7392         (downloaded_file): Use a hash table, not a list.
7393         (downloaded_files_free): Free the hash table.
7394
7395         * retr.c (retrieve_from_file): Ditto.
7396
7397         * main.c (main): Call either retrieve_url or retrieve_tree
7398         for each URL, not both.
7399
7400         * retr.c (register_all_redirections): New function.
7401         (register_redirections_mapper): Ditto.
7402         (retrieve_url): Register the redirections.
7403         (retrieve_url): Make the string "Error parsing proxy ..."
7404         translatable.
7405
7406         * res.c (add_path): Strip leading slash from robots.txt paths so
7407         that the path representations are "compatible".
7408         (free_specs): Free each individual path, too.
7409         (res_cleanup): New function.
7410         (cleanup_hash_table_mapper): Ditto.
7411
7412         * recur.c (url_queue_new): New function.
7413         (url_queue_delete): Ditto.
7414         (url_enqueue): Ditto.
7415         (url_dequeue): Ditto.
7416         (retrieve_tree): New function, replacement for recursive_retrieve.
7417         (descend_url_p): New function.
7418         (register_redirection): New function.
7419
7420         * progress.c (create_image): Cosmetic changes.
7421
7422         * init.c (cleanup): Do all those complex cleanups only if
7423         DEBUG_MALLOC is defined.
7424
7425         * main.c: Removed --simple-check and the corresponding
7426         simple_host_check in init.c.
7427
7428         * html-url.c (handle_link): Parse the URL here, and propagate the
7429         parsed URL to the caller, who would otherwise have to parse it
7430         again.
7431
7432         * host.c (xstrdup_lower): Moved to utils.c.
7433         (realhost): Removed.
7434         (same_host): Ditto.
7435
7436 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7437
7438         * utils.c (path_simplify): Preserver the (non-)existence of
7439         leading slash.  Return non-zero if changes were made.
7440
7441 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7442
7443         * progress.c (bar_update): Don't modify bp->total_length if it is
7444         zero.
7445
7446 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7447
7448         * retr.c (retrieve_url): When the redirection URL doesn't parse,
7449         print the correct error message rather than "UNKNOWN".
7450
7451 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7452
7453         * progress.c (bar_finish): If the timer didn't record any time
7454         since the download beginning, fake 1ms.
7455
7456 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7457
7458         * recur.c (recursive_retrieve): Fix typo.
7459
7460 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7461
7462         * progress.c (create_image): Don't translate "%ld ".
7463
7464 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7465
7466         * progress.c (bar_set_params): Allow the user to force the use of
7467         the bar.
7468
7469 2001-11-23  Lemble Gregory  <gregory.lemble@st.com>
7470
7471         * gen_sslfunc.c (ssl_init_prng): New function; seed the SSL RNG.
7472
7473 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7474
7475         * progress.c: Renamed dp_* functions to dot_* for greater clarity
7476         and consistency with bar_*.
7477         (print_download_speed): Get rid of the unneeded '@' character.
7478         (create_image): Fix download rate geometry.
7479
7480         * progress.c (print_elapsed): Remove spurious space.
7481         (print_elapsed): Renamed to print_download_speed, since that's
7482         what it does.
7483
7484 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7485
7486         * progress.c (bar_update): If the downloaded amount becomes larger
7487         than the expected amount, adjust the expected amount accordingly.
7488
7489 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7490
7491         * utils.c (determine_screen_width): New function.
7492
7493         * main.c (main): New option `--progress=TYPE'.
7494         (main): Implement compatibility with the old option `--dot-style'.
7495
7496         * init.c: Removed cmd_spec_dotstyle -- that logic is now in
7497         dp_set_params.
7498         (cmd_spec_progress): New function.
7499
7500         * retr.c (get_contents): Use the progress_* functions instead of
7501         the old show_progress().
7502         (show_progress): Removed.
7503         (rate): Print "xxxx.xx K/s" instead of "KB/s".  Ditto for MB/s,
7504         etc.
7505
7506         * progress.c (set_progress_implementation): New function.
7507         (valid_progress_implementation_p): Ditto.
7508         (progress_create): Ditto.
7509         (progress_update): Ditto.
7510         (progress_finish): Ditto.
7511         (dp_create): Ditto.
7512         (dp_update): Ditto.
7513         (dp_finish): Ditto.
7514         (dp_set_params): Ditto.
7515         (print_elapsed): Ditto.
7516
7517 2001-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
7518
7519         * retr.c (show_progress): Use it.
7520
7521         * log.c (log_set_flush): New function.
7522
7523 2001-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
7524
7525         * utils.c (path_simplify): Don't remove trailing slashes.
7526
7527         * ftp.c (ftp_get_listing): Use it.
7528
7529         * utils.c (file_merge): New function.
7530
7531         * url.c (opt_url): Removed.
7532
7533         * recur.c (recursive_retrieve): Inline "opt_url" logic.
7534
7535         * main.c (main): Use xfree(), not free().
7536
7537         * url.c (rewrite_url_maybe): Renamed to rewrite_shorthand_url.
7538
7539         * ftp.c (ccon): Move `ccon' typedef here, since it's only used
7540         internally.
7541
7542         * config.h.in: Include a stub for HAVE_STRPBRK.
7543
7544         * cmpt.c (strpbrk): Include a replacement for systems without
7545         strpbrk().
7546
7547         * ftp.c: Use url_set_dir and url_set_file when modifying the URL.
7548
7549         * url.c (url_set_dir): New function.
7550         (url_set_file): Ditto.
7551
7552         * ftp-basic.c (ftp_process_type): Process FTP type here; the URL
7553         parser makes the URL "params" available, so we can do that in this
7554         function.
7555
7556         * retr.c: Ditto.
7557
7558         * ftp.c: Ditto; pass the local file information in `ccon'.
7559
7560         * http.c: Get rid of the ugly kludge that had URL being replaced
7561         with the proxy URL when proxy retrieval was requested.  Use a
7562         separate parameter to http_loop and gethttp for the proxy URL.
7563
7564         * http.c: Changed to reflect the fact that local file, proxy, and
7565         referer information are no longer stored in struct url.  The local
7566         file information is passed in `struct hstat' now.
7567
7568         * url.c: Reworked URL parsing to be more regular.  Reencode the
7569         URL using reencode_string.
7570         Removed non-URL-related information from struct url.  This
7571         includes fields `proxy', `local', and `referer'.
7572
7573 2001-11-22  Jochen Hein  <jochen@jochen.org>
7574
7575         * main.c (main): Split the copyright notice for easier
7576         translation.
7577
7578 2001-08-21  Dave Turner <dct25@hermes.cam.ac.uk>
7579
7580         * ftp-basic.c (ftp_size): New function to send non-standard SIZE
7581           command to server to request file size.
7582         * ftp.h (ftp_size): Export it.
7583         * ftp.c (getftp): Use new ftp_size function if restoring
7584           transfer of a file with unknown size.
7585
7586 2001-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
7587
7588         * url.c (parseurl): Don't depend on the now-obsolete TYPE.
7589
7590 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7591
7592         * url.c (getproxy): Handle URL shorthands.
7593
7594 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7595
7596         * main.c: Remove --wait / --waitretry backwards compatibility
7597         code.
7598
7599 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7600
7601         * main.c (main): Use it.
7602
7603         * url.c (rewrite_url_maybe): New function.
7604
7605 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7606
7607         * url.c: Clean up handling of URL schemes.
7608
7609 2001-05-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7610
7611         * url.c: Get rid of `protostrings'.
7612         (skip_proto): Don't use protostrings.
7613         (has_proto): Ditto.
7614
7615 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7616
7617         * Makefile.in: Conditionally compile getopt.o.
7618
7619 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7620
7621         * md5.h: Renamed to gnu-md5.h.
7622
7623         * md5.c: Renamed to gnu-md5.c.
7624
7625         * http.c: Ditto.
7626
7627         * ftp-opie.c: Use the new macros.
7628
7629         * sysdep.h: Define md5-related macros.
7630
7631         * config.h.in: Define HAVE_SOLARIS_MD5 or HAVE_BUILTIN_MD5
7632         depending on which md5 implementation is used.
7633
7634 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7635
7636         * res.c (res_register_specs): Initialize OLD and HP_OLD to appease
7637         the compiler.
7638
7639 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7640
7641         * http.c (gethttp): Print the whole response line when printing
7642         headers is requested.
7643
7644 2001-05-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7645
7646         * res.c: New file.  Implement all RES-related code here.
7647
7648 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7649
7650         * version.c: Wget 1.7.1 is released.
7651
7652 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
7653
7654         * headers.c (header_extract_number): Ignore trailing whitespace.
7655
7656 2001-08-24  Ian Abbott  <abbotti@mev.co.uk>
7657
7658         * html-url.c (collect_tags_mapper): Fix bug converting links
7659         with -k option for tags with multiple link attributes by
7660         handling links in the order they appear.
7661
7662 2001-08-15  Ian Abbott  <abbotti@mev.co.uk>
7663
7664         * ftp.c (ftp_loop_internal): Avoid a potential buffer overflow in
7665           the call to the 'rate' function by moving it past the error
7666           checking for the 'getftp' function return value.
7667
7668 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
7669
7670         * html-parse.c (advance_declaration): Use 0x22 instead of '"' or
7671         '\"'.  Different compilers' assert macros are broken in different
7672         ways.
7673
7674 2001-09-29  Christian Fraenkel  <c.fraenkel@gmx.net>
7675
7676         * http.c (gethttp): print debug output for errors occuring during
7677         the ssl handshake.
7678
7679 2001-11-16  Chris Seawood  <cls@seawood.org>
7680
7681         * init.c: Ditto.
7682
7683         * host.c: Ditto.
7684
7685         * connect.c: Ditto.
7686
7687         * sysdep.h: Support compilation under BEOS.
7688
7689 2001-06-08  Edward J. Sabol  <sabol@alderaan.gsfc.nasa.gov>
7690
7691         * url.c (url_equal): Fix a memory leak when parseurl returns an
7692         error on the second URL. Also, since url_equal is not used at the
7693         moment, do not compile it.
7694
7695         * url.h: Ditto for the prototype of url_equal.
7696
7697 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
7698
7699         * html-parse.c (map_html_tags): Support XML-style empty tags.
7700
7701 2001-06-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7702
7703         * wget.h (DO_REALLOC_FROM_ALLOCA): Check for do_realloc_newsize in
7704         loop condition because we're no longer setting SIZEVAR here.
7705
7706 2001-06-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7707
7708         * wget.h (DO_REALLOC_FROM_ALLOCA): Set SIZEVAR after the memcpy()
7709         call because it needs the old value.
7710
7711 2001-06-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7712
7713         * cookies.c (ATTR_NAME_CHAR): Allow almost any character to be in
7714         an attribute name.
7715
7716 2001-06-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7717
7718         * url.c (url_filename): Make sure that slashes that sneak in to
7719         u->file via query string get protected.
7720         (file_name_protect_query_string): New function.
7721
7722 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7723
7724         * recur.c (recursive_retrieve): Also check undesirable_urls with
7725         canonicalized URL.
7726
7727 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7728
7729         * http.c (gethttp): Search `.netrc' with real host, not the proxy
7730         one.
7731
7732 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7733
7734         * sysdep.h (MAP_FAILED): Provide MAP_FAILED for systems that don't
7735         define it.
7736
7737 2001-06-09  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7738
7739         * ftp.h: Provide correct prototype for ftp_parse_ls().
7740
7741 2001-06-04  Hrvoje Niksic  <hniksic@arsdigita.com>
7742
7743         * version.c: Wget 1.7 is released.
7744
7745 2001-06-03  Karl Eichwalder  <ke@suse.de>
7746
7747         * ftp-ls.c (ftp_parse_ls): Fix typo.
7748
7749 2001-05-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7750
7751         * all: Update copyright information.
7752
7753 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7754
7755         * http.c (gethttp): Indicate that the continued download failed
7756         for *this* file.
7757
7758 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7759
7760         * version.c: Wget 1.7-pre1 is released.
7761
7762 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7763
7764         * version.c: Updated version to 1.7-pre1.
7765
7766 2001-05-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7767
7768         * gen_sslfunc.c: Don't include <sys/time.h> directly.
7769
7770 2001-05-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7771
7772         * http.c (gethttp): Use real URL data for cookies, not the proxy
7773         stuff.
7774
7775 2001-05-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7776
7777         * main.c (print_help): Document `--no-http-keep-alive'.
7778
7779         * utils.c (numdigit): Handle negative numbers *correctly*.
7780
7781         * hash.c (make_nocase_string_hash_table): Use term "nocase" rather
7782         than the confusing "unsigned".
7783
7784         * utils.c (string_set_contains): Renamed from string_set_exists.
7785
7786         * hash.c (hash_table_contains): Renamed from hash_table_exists.
7787
7788         * cookies.c: Move case-insensitive hash tables to hash.c.
7789
7790 2001-05-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7791
7792         * http.c (gethttp): Before concluding that the file is already
7793         fully retrieved, make sure that the file existed and `Range' was
7794         actually requested.
7795
7796 2001-05-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7797
7798         * cookies.c (eliminate_dups): New function.
7799         (build_cookies_request): Use it.
7800         (build_cookies_request): Set chain_store_size after reallocating
7801         all_chains.
7802         (check_domain_match): Annotated for easier future debugging.
7803         (store_cookie): In the debug message, print whether the cookie is
7804         permanent.
7805
7806 2001-05-08  Hrvoje Niksic  <hniksic@arsdigita.com>
7807
7808         * http.c (http_loop): Reset no_truncate before deciding whether to
7809         set it.
7810         (gethttp): Further clarify "-c conflicts with existing file" error
7811         message, based on input from Herold Heiko.
7812
7813 2001-05-07  Hrvoje Niksic  <hniksic@arsdigita.com>
7814
7815         * http.c (http_loop): If restval is set, set no_truncate to 1
7816         unconditionally.
7817
7818 2001-05-02  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7819
7820         * ftp-ls.c (ftp_parse_winnt_ls): Assure months are being correctly
7821         converted. Pointed out by <Stefan.Weil@de.heidelberg.com>.
7822         (ftp_parse_vms_ls): Ditto.
7823
7824 2001-04-30  Hrvoje Niksic  <hniksic@arsdigita.com>
7825
7826         * init.c (cmd_address): Zero SIN before using it; apparently
7827         needed on *BSD.
7828
7829 2001-04-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7830
7831         * ftp.c (ftp_loop_internal): Don't set NO_TRUNCATE if the file is
7832         empty.
7833
7834 2001-04-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7835
7836         * main.c (main): Make `--cookies' respect its argument.
7837
7838 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
7839
7840         * main.c (main): Removed undocumented option `--email-address'.
7841
7842         * netrc.c: Use the latest read_whole_line.
7843
7844         * init.c (defaults): Set opt.ftp_pass to "-wget@".
7845
7846         * mswindows.c (pwd_cuserid): Ditto.
7847
7848         * utils.c (pwd_cuserid): Removed.
7849
7850         * host.c (ftp_getaddress): Removed.
7851
7852 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
7853
7854         (http_loop): Allocate space for filename_plus_orig_suffix with
7855         alloca; this is more efficient and removes the need to free it
7856         before each and every return.
7857
7858 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
7859
7860         * http.c (gethttp): Return RETRUNNEEDED when the retrieval is
7861         unneeded because the file is already there and fully downloaded,
7862         and -c is specified.
7863         (http_loop): Handle RETRUNNEEDED.
7864
7865         * wget.h (uerr_t): New value RETRUNNEEDED.
7866
7867         * http.c (http_loop): Set no_truncate for files that both exist
7868         and are non-empty.
7869         (gethttp): Consider the download finished when restval >= contlen,
7870         not only when restval==contlen.
7871         (gethttp): Handle redirection before giving up due to -c.
7872         (gethttp): Clarify error message which explains that -c will not
7873         truncate the file.
7874         (gethttp): When returning CONTNOTSUPPORTED, don't forget to free
7875         the stuff that needs freeing and release the socket.
7876
7877 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7878
7879         * main.c (print_help): Wget booleans accept "off", not "no".
7880
7881 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7882
7883         * http.c (http_loop): If allow_cache is zero, always disable
7884         caching, not only when retrieving through proxy.
7885
7886         * init.c: Ditto.
7887
7888         * options.h (struct options): Rename proxy_cache to allow_cache.
7889
7890 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7891
7892         * http.c (mktime_from_utc): Improve documentation.
7893         (http_atotm): Put format strings into a separate array.
7894
7895 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7896
7897         * safe-ctype.h: Instead of throwing #error when isalpha is
7898         defined, redefine it to something that will throw a compile-time
7899         error if actually *used*.  Do the same for the rest of the
7900         standard C macros.
7901
7902 2001-04-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7903
7904         * url.c (getproxy): Ignore empty proxy vars.
7905
7906 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7907
7908         * http.c (http_loop): Would load cookies every time.
7909
7910         * cookies.c (load_cookies): Handle cookies whose values contain
7911         embedded spaces.
7912
7913 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7914
7915         * utils.c: Define each DIGITS_* in one line.
7916
7917 2001-04-25  Roger L. Beeman  <beeman@cisco.com>
7918
7919         * http.c (http_atotm): Initialize t.tm_isdst to 0.
7920         (mktime_from_utc): Prevent mktime() from having discontinuities at
7921         DST transition points.
7922
7923 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7924
7925         * html-url.c (get_urls_html): Fix documentation.
7926
7927 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7928
7929         * url.c (UNSAFE_CHAR): Reimplement using a static table.
7930         (url_init): Removed.
7931         (init_unsafe_char_table): Removed.
7932
7933 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7934
7935         * snprintf.c (dopr): Replace ISDIGIT with '0' <= ch && ch <= '9'.
7936
7937 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7938
7939         * utils.c: Document timer functions.
7940
7941         * retr.c (rate): Use it.
7942         (rate): Print in GB/s if transfer rate exceeds 1 GB/s.
7943
7944         * utils.c (wtimer_granularity): New function.
7945
7946 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7947
7948         * retr.c (show_progress): Ditto.
7949
7950         * ftp.c (getftp): Ditto.
7951
7952         * http.c (gethttp): Use new timer functions.
7953
7954         * utils.c (wtimer_allocate): New function.
7955         (wtimer_new): Ditto.
7956         (wtimer_delete): Ditto.
7957         (wtimer_reset): Ditto.
7958         (wtimer_elapsed): Ditto.
7959
7960 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7961
7962         * utils.c (long_to_string): New, faster version.  Favors smaller
7963         numbers; much of the calculation is now done at compile-time.
7964
7965 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7966
7967         * utils.c (numdigit): Handle negative numbers.
7968
7969 2001-04-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7970
7971         * retr.c (show_progress): Print the download rate even when the
7972         percentages are not available.
7973
7974 2001-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
7975
7976         * ftp.c (getftp): Adjust expected_bytes if the length is
7977         authoritative.
7978
7979 2001-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7980
7981         * url.c: Don't declare `construct'.
7982
7983         * hash.c (grow_hash_table): Speed up rehashing; inline storing of
7984         mappings to new locations.
7985         (hash_table_new): Make resize_threshold a field in the hash table,
7986         so we don't have to recalculate it in each hash_table_put.
7987         (grow_hash_table): Update resize_threshold.
7988         (MAX): Remove unused macro.
7989         (prime_size): Made static.
7990
7991 2001-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7992
7993         * retr.c (retrieve_url): Call uri_merge, not url_concat.
7994
7995         * html-url.c (collect_tags_mapper): Call uri_merge, not
7996         url_concat.
7997
7998         * url.c (mkstruct): Use encode_string instead of xstrdup followed
7999         by URL_CLEANSE.
8000         (path_simplify_with_kludge): Deleted.
8001         (contains_unsafe): Deleted.
8002         (construct): Renamed to uri_merge_1.
8003         (url_concat): Renamed to uri_merge.
8004
8005 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
8006
8007         * url.c (str_url): Use encode_string instead of the unnecessary
8008         CLEANDUP.
8009         (encode_string_maybe): New function, returns input string if no
8010         encoding is needed.
8011         (encode_string): Call encode_string_maybe to do the dirty work,
8012         xstrdup if no work needed.
8013
8014 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
8015
8016         * wget.h (XDIGIT_TO_xchar): Define here.
8017
8018         * url.c (decode_string): Use new name.
8019         (encode_string): Ditto.
8020
8021         * http.c (XDIGIT_TO_xchar): Rename HEXD2asc to XDIGIT_TO_xchar.
8022         (dump_hash): Use new name.
8023
8024         * wget.h: Rename ASC2HEXD and HEXD2ASC to XCHAR_TO_XDIGIT and
8025         XDIGIT_TO_XCHAR respectively.
8026
8027 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
8028
8029         * init.c: Include cookies.h.
8030
8031         * cookies.h: Declare cookies_cleanup.
8032
8033         * cookies.c (check_domain_match): Remove unused variable.
8034         (save_cookies): Remove extraneous argument from debug statement.
8035
8036         * host.c (same_host): Don't call skip_url.
8037
8038         * url.c (skip_url): Removed.  Removed its calls from various
8039         functions in url.c.
8040
8041 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
8042
8043         * cookies.c (unsigned_string_hash): Use the new code in
8044         string_hash as reference.
8045
8046         * hash.c (hash_table_map): Allow deletion and change of the
8047         element processed by MAPFUN.
8048         (string_hash): Use the function from glib.
8049
8050 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8051
8052         * config.h.in: Include #undef stub.
8053
8054         * hash.c (hash_table_remove): Rewrite to actually clear deleted
8055         entries instead of just marking them as deleted.
8056
8057 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8058
8059         * hash.h: Declare hash_table_get_pair and hash_table_count.
8060
8061 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8062
8063         * cookies.c: Declare http_atotm.
8064
8065 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8066
8067         * ftp-ls.c (ftp_parse_unix_ls): Use octal constants for
8068         permissions.  A compiler that doesn't accept octal constants is
8069         seriously broken and shouldn't be used -- octal constants were
8070         present in K&R C!
8071
8072 2001-01-20  Karl Eichwalder  <ke@suse.de>
8073
8074         * Makefile.in: Provide and use DESTDIR according to the Coding
8075         Standards.
8076
8077 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8078
8079         * ftp-ls.c (ftp_parse_vms_ls): Make seconds optional in time
8080         specification.
8081
8082 2001-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8083
8084         * url.c (parseurl): Don't strip trailing slash when u->dir is "/"
8085         because that strips the *leading* slash, thus forcing relative
8086         FTP retrieval.
8087
8088 2001-04-10  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8089
8090         * ftp.c (getftp): Convert initial FTP directory from VMS to UNIX
8091         notation for VMS servers.
8092         (ftp_retrieve_dirs): Do not prepend '/' to f->name when
8093         odir is an empty string.
8094
8095 2001-04-10  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8096
8097         * ftp-ls.c (ftp_parse_winnt_ls): Made the fix for AM/PM more
8098         effective. Suggested by Edward J. Sabol.
8099
8100 2001-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8101
8102         * cookies.c (build_cookies_request): Use and sort cookies from all
8103         matching domains.
8104         (build_cookies_request): Check for duplicates before generating
8105         the `Cookies' header.
8106
8107         * main.c (main): Don't load cookies here.
8108         (main): Make loadcookies and savecookies call the correct command.
8109
8110         * http.c (http_loop): Load cookies on-demand.
8111
8112 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
8113
8114         * http.c (gethttp): Fix indentation of SSL ifdef.
8115
8116 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
8117
8118         * ftp.c (ftp_retrieve_dirs): Don't forcibly prepend "/" to u->dir;
8119         that hack is no longer necessary.
8120         (getftp): Prepend initial directory to *non*-absolute u->dir's.
8121
8122 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
8123
8124         * init.c (cmd_file): New function.
8125         (enable_tilde_expansion): New variable.
8126         (run_wgetrc): Use it.
8127         (cmd_file): Use it.
8128
8129 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
8130
8131         * init.c: Include cookie-related options.
8132
8133         * main.c (main): Include cookie-specific options.
8134         (main): Load cookies before download is finished.
8135         (main): Save cookies when done.
8136
8137         * http.c (gethttp): Process the `Set-Cookie' header.
8138         (gethttp): Include cookies in the response.
8139
8140         * cookies.c: New file.
8141
8142 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
8143
8144         * utils.c (datetime_str): New function.
8145
8146 2001-04-08  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8147
8148         * ftp-ls.c (ftp_parse_winnt_ls): The AM/PM change did assume
8149         12:01PM == 00:01, which was obviously wrong. Taken care of this
8150         anomaly.
8151
8152         * ChangeLog: Removed an excess conflict marker. Reformatted the
8153         entry by Philipp Thomas from 2001-03-09.
8154
8155         * ftp-ls.c (ftp_parse_winnt_ls): Ensure that adjusted PM hours lay
8156         between 0 and 23. Elminate unused variable `sec'.
8157
8158 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
8159
8160         * hash.c (hash_table_count): New function.
8161
8162 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8163
8164         * utils.c (read_file): Cast MAP_FAILED to char *.  Enforced by
8165         Digital Unix cc.
8166
8167 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8168
8169         * config.h.in: Oops, do the namespace tweaks only on systems we
8170         know about.
8171
8172 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8173
8174         * hash.c: Include <string.h>.
8175
8176 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8177
8178         * config.h.in: Define "compilation environment" options that work
8179         under Linux and Solaris.  To be reviewed on other OS'es.
8180
8181 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8182
8183         * http.c (gethttp): Prepend literal newline with `\n\'.
8184
8185 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8186
8187         * sysdep.h: Don't define VERY_LONG_FORMAT.
8188
8189         * utils.c (very_long_to_string): New function.
8190         (legible_very_long): Use it; don't use VERY_LONG_FORMAT.
8191
8192 2001-04-04  Christian Fraenkel  <christian.fraenkel@gmx.net>
8193
8194         * url.c (parse_uname): Would run past the end of the string if the
8195         username was present, but the URL did not contain a slash, e.g.
8196         http://foo:bar@myhost.
8197
8198 2001-04-03  KOJIMA Hajime  <kjm@rins.ryukoku.ac.jp>
8199
8200         * http.c (http_atotm): Use %A instead of %a to match full
8201         weekday.  (On most systems there is no difference.)
8202
8203 2001-04-03  Paul Bludov  <paul@ozero.net>
8204
8205         * mswindows.c (sleep): Use SleepEx() instead of Sleep().
8206         (ws_changetitle): Use alloca() instead of malloc() to avoid memory
8207         leak.
8208         (ws_mypath): Use GetModuleFileName instead of argv[0].
8209         (ws_startup): Use data.wVersion for comparison.
8210
8211 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8212
8213         * http.c (http_loop): Ditto.
8214
8215         * ftp.c (ftp_loop_internal): Made the check whether to continue
8216         retrieval `-O'-friendly.
8217
8218 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8219
8220         * netrc.c (parse_netrc): Don't trim the line endings explicitly;
8221         they will be handled as whitespace.
8222         (parse_netrc): Correctly handle lines that end with whitespace.
8223
8224 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8225
8226         * retr.c (retrieve_url): New variable global_download_count used
8227         to identify first retrieval.
8228
8229         * ftp.c (getftp): Ditto.
8230
8231         * http.c (gethttp): Rewind opt.dfp only on first retrieval.
8232
8233 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8234
8235         * init.c (cmd_address): Heap-allocate the address that gets stored
8236         to CLOSURE.  Old code would simply assign an address on the stack.
8237
8238 2001-04-01  Nicolas Lichtmaier <nick@debian.org>
8239
8240         * ftp.c (ftp_get_listing): Propagate error status.
8241         (ftp_retrieve_glob): Use it.
8242         (ftp_loop): Ditto.
8243
8244 2001-04-01  Nicolas Lichtmaier <nick@debian.org>
8245
8246         * main.c (main): Add -C to the string that is the third arg to
8247         getopt_long().
8248
8249 2001-04-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8250
8251         * ftp.c (getftp): Don't start the download from scratch if `-c'
8252         was specified, but the file is already fully downloaded.
8253
8254         * http.c (gethttp): Don't truncate a pre-existing file if `-c' was
8255         specified and the server doesn't support continued download.
8256         (gethttp): Don't start the download from scratch if `-c' was
8257         specified, but the file is already fully downloaded.
8258
8259 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8260
8261         (recursive_retrieve): Don't clear the hash tables at this point at
8262         all; it interferes with the normal operation of register_download.
8263
8264 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8265
8266         * recur.c (recursive_retrieve): Clear the hash tables only when
8267         they are defined.
8268
8269 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8270
8271         * http.c (gethttp): Make sure the socket is closed with
8272         CLOSE_INVALIDATE before we have drained the body.
8273
8274 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8275
8276         * retr.c (retrieve_url): Call register_download() for downloaded
8277         files and register_html() for downloaded HTML files.
8278
8279         * recur.c (register_download): New function; register here that a
8280         file has been downloaded, rather than in recursive_retrieve().
8281         (register_html): New function; enqueue the location of HTML files
8282         here rather than in recursive_retrieve().
8283
8284 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8285
8286         * main.c (print_help): Use multiple fputs instead of a single ugly
8287         printf().
8288         (main): Consistently assign numbers >128 to options without a
8289         corresponding character.
8290
8291 2001-03-09  Philipp Thomas  <pthomas@suse.de>
8292
8293         * safe-ctype.h: New file. Locale independent ctype.h replacement
8294         taken from libiberty.
8295
8296         * safe-ctype.c: New file. Tables for above.
8297
8298         * Makefile.in: Add safe-ctype$o to OBJS.  Add dependencies for
8299         safe-ctype$o.
8300
8301         * cmpt.c: Remove include of ctype.h. Use ISSPACE instead of
8302         isspace.
8303
8304         * ftp-basic.c: Don't include ctype.h.
8305
8306         * ftp-ls.c: Likewise.
8307
8308         * ftp.c: Likewise.
8309
8310         * headers.c: Likewise.
8311
8312         * host.c: Likewise.
8313
8314         * html-parse.c: Likewise.
8315
8316         * html-url.c: Likewise.
8317
8318         * http.c: Likewise.
8319
8320         * init.c: Likewise.
8321
8322         * main.c: Likewise. Set LC_CTYPE along with LC_MESSAGES.
8323
8324         * netrc.c: Likewise.
8325
8326         * recur.c: Likewise.
8327
8328         * retr.c: Likewise.
8329
8330         * snprintf.c: Replace ctype.h with safe-ctype.h. Use ISDIGIT
8331         instead of isdigit.
8332
8333         * sysdep.h: Remove defines of ctype macros as they aren't needed
8334         for safe-ctype-h.
8335
8336         * url.c: Don't include ctype.h.
8337
8338         * utils.c: Likewise.
8339
8340         * wget.h: Include safe-ctype.h.
8341
8342 2001-03-27  Dan Harkless  <wget@harkless.org>
8343
8344         * Makefile.in: Moved top_builddir out of "User configuration
8345         section" of top Makefile and analogous spot in this one.
8346
8347 2001-03-17  Dan Harkless  <wget@harkless.org>
8348
8349         * Makefile.in: Include @SSL_INCLUDES@ substition in INCLUDES.
8350         Define top_builddir.  Link wget with libtool so the user doesn't
8351         have to supply a bunch of custom environment variables to
8352         correctly link with the OpenSSL shared libraries.
8353
8354 2001-03-06  Hack Kampbjorn  <hack@hackdata.com>
8355
8356         * http.c (gethttp): skip :port in host header if it is the
8357         DEFAULT_HTTPS_PORT when using SSL.
8358
8359         * url.c: move the #define of DEFAULT_HTTP_PORT, DEFAULT_FTP_PORT
8360         and DEFAULT_HTTPS_PORT to the header file so it can be use in the
8361         rest of the code.
8362         * url.h: Ditto
8363
8364 2001-03-01  Jonas Jensen  <bones@huleboer.dk>
8365
8366         * retr.c (show_progress): Correctly calculate the number of bytes
8367         in the first line of the download that have been actually
8368         downloaded in this run.
8369
8370 2001-02-23  Dan Harkless  <wget@harkless.org>
8371
8372         * main.c (print_help): --help documentation for -N said it would
8373         re-download files if they had the _same_ timestamp on server.
8374         (print_help): -nr belongs in "FTP options" section of --help
8375         output, not "Recursive retrieval" section.  Alphabetized FTP
8376         options by long option name.
8377
8378 2001-02-16  Dan Harkless  <wget@harkless.org>
8379
8380         * init.c (commands): Hack Kampbjørn <hack@hackdata.com> discovered
8381         that "httpsproxy" had been inserted into commands[] out of
8382         alphabetical order, causing "BUG: unknown command `httpuser'".
8383
8384 2001-02-13  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8385
8386         * ftp-ls.c (ftp_parse_ls): Added support of ST_MACOS (Unix-like
8387         listing without correct permissons).
8388
8389         * ftp.h (stype): Added ST_MACOS to identify the NetPresenz MacOS
8390         FTP server.
8391
8392         * ftp.c (ftp_retrieve_list): New mirroring logic: A remote file
8393         shall be donwloaded only when it's newer than the local copy or
8394         when it has the same timeestamp but its size is different. ST_VMS
8395         and ST_MACOS as special cases that lie about file size.
8396
8397         * ftp-ls.c (ftp_parse_ls): Support for ST_MACOS.
8398
8399         * Makefile.in: Removed dependency on ftpparse library due to unclear
8400         copyright issues and absence of any feedback to our queries.
8401
8402         * ftp-ls.c: Removed dependency on ftpparse library due to unclear
8403         copyright issues and absence of any feedback to our queries.
8404         (ftp_parse_ls): Added a warning message when remote server system
8405         does not seem to be suported by wget.
8406         (ftp_parse_vms_ls): New function for parsing VMS ftp
8407         server listing output.
8408         (clean_line): New function responsible for removing
8409         end-of-line characters from FTP listing texts.
8410
8411         * ftp.c (getftp): Global variables pwd and host_type are now
8412         member of the ccon structure under names ccon.id and ccon.rs.
8413
8414         * ftp.h (struct ccon): Added formed global variables from ftp.c,
8415         enum stype rs (remote system identification) and char *id (initial
8416         working directory), as suggested by Hrvoje.
8417
8418         * url.c (parse_uname): Added support for passwords containing '@'
8419         characters.
8420         (skip_uname): Ditto.
8421
8422 2001-02-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8423
8424         * ftp.c (ftp_loop): Reset con.
8425
8426 2001-01-06  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8427
8428         * url.c (parse_uname): Added support for passwords containing '@'
8429         characters.
8430         (skip_uname): Ditto.
8431
8432 2001-02-11  Hack Kampbjørn  <hack@hackdata.com>
8433
8434         * url.c (parseurl): Debug-print u->ftp_type.
8435
8436 2001-02-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8437
8438         * ftp.c (ftp_loop_internal): Disable padding.
8439         (getftp): Ditto.
8440
8441         * http.c (http_loop): Disable padding.
8442
8443         * retr.c (show_progress): Use it to enable padding.
8444
8445         * retr.c (rate): Optional parameter PAD for padding the rate.
8446
8447 2001-02-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8448
8449         * retr.c (show_progress): Make sure that the last output line
8450         includes progress.
8451
8452 2001-02-10  Jonas Jensen  <bones@huleboer.dk>
8453
8454         * retr.c (show_progress): Print the download rate along with the
8455         percentages.
8456         Along with Anders Thorsby <anders@thorsby.dk>.
8457
8458 2001-02-10  Tim Mooney  <mooney@dogbert.cc.ndsu.NoDak.edu>
8459
8460         * ftp.h: Rename enums `command' to `wget_ftp_command' and
8461         `fstatus' to `wget_ftp_status' because old names clash with Tru64
8462         net/if.h.
8463
8464 2001-02-08  Christian Fraenkel <christian.fraenkel@gmx.net>
8465
8466         * gen_sslfunc.c: verify_callback is now static
8467
8468         * gen_sslfunc.c (init_ssl): load certificate if specified
8469
8470         * gen_sslfunc.c (ssl_printerr): new function
8471
8472         * init.c: added new --sslcertfile and --sslcertkey switches
8473
8474         * main.c: ditto
8475
8476         * options.h: ditto
8477
8478         * http.c (gethttp): abort when init_ssl fails
8479
8480 2001-01-23  Herold Heiko  <Heiko.Herold@previnet.it>
8481
8482         * mswindows.h: Include <malloc.h>; it's needed for alloca().
8483
8484 2001-01-10  Dan Harkless  <wget@harkless.org>
8485
8486         * url.c (str_url): Clarified this function's comment header after
8487         Hrvoje answered my question on the list as to when hide != 1.
8488         Also Hrvoje pointed out I need to use xstrdup() on the string literal.
8489
8490 2001-01-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8491
8492         * connect.c (bindport): Declare addrlen as int.  Diagnosed by
8493         Drazen Kacar <dave@arsdigita.com>.
8494         (conaddr): Ditto.
8495
8496 2001-01-09  Dan Harkless  <wget@harkless.org>
8497
8498         * html-url.c: A bunch of fixup of `--page-requisites'-related
8499         comments to reflect Hrvoje's changes to my code when transplanting
8500         it into this new file, to fix spelling mistakes, to clarify, etc.
8501
8502         * url.c (write_backup_file): Clarified a comment.
8503         (str_url): Henrik van Ginhoven pointed out on the list that we
8504         shouldn't give away the number of characters in the password by
8505         replacing each character with a 'x'.  Use "<password>" instead.
8506
8507         * ftp.c (ftp_retrieve_dirs): The bug where recursion into FTP
8508         directories didn't work if logging in put you in a directory other
8509         than "/" is fixed now.  Removed the comment here warning of the bug.
8510
8511         * main.c (print_help): --continue's description was misleading.
8512         We don't "restart", we "resume".  Also, better to say
8513         "partially-downloaded file" rather than just "existing file".
8514
8515 2001-01-06  Dan Harkless  <wget@harkless.org>
8516
8517         * ChangeLog: The '[Not in 1.6 branch.]'s were decided not to be
8518         the best way to go about my aim.  Removed them in favor of:
8519
8520         * ChangeLog-branches/1.6_branch.ChangeLog: New file.
8521
8522 2001-01-04  Hrvoje Niksic  <hniksic@arsdigita.com>
8523
8524         * url.c (replace_attr): New function, to be used by both
8525         TO_COMPLETE and TO_RELATIVE case in convert_links.
8526         (find_fragment): New function for finding URL fragments.
8527         (replace_attr): Better handle the case where the original string
8528         is not quoted.  Use find_fragment.
8529         (convert_links): Use replace_attr().
8530
8531 2000-12-31  Dan Harkless  <wget@harkless.org>
8532
8533         * ChangeLog: Since this flat file doesn't have multiple branches,
8534         looking at the dates would make you think that things went into
8535         1.6 that actually just went into the 1.7-dev branch.  Added "[Not
8536         in 1.6 branch.]" where appropriate to clarify.
8537
8538 2000-12-30  Dan Harkless  <wget@harkless.org>
8539
8540         * ftp.c, http.c:  Applied Hack Kampbjørn <hack@hackdata.com>'s
8541         patch to deal with h_errno not being defined in netdb.h under Cygwin.
8542
8543 2000-12-18  Csaba Raduly  <csaba.raduly@sophos.com>
8544
8545         * sysdep.h: Include <malloc.h> and <io.h> under Watcom.
8546
8547 2000-12-17  Igor Khristophorov  <igor@atdot.org>
8548
8549         * http.c (check_end): Fix test for '+' or '-'.
8550
8551 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
8552
8553         * url.c (parseurl): Rename inner loop var from i to ind to avoid
8554         clash with the function top-level-declared variable i.
8555         (str_url): Likewise, rename inner-loop i to j.
8556
8557         * recur.c (parse_robots): Don't declare LEN at top of function.
8558         (robots_match): Renamed parameter FORBIDDEN to avoid hiding of
8559         global variable.
8560
8561         * main.c (main): Change erroneous use of bitwise and to logical.
8562
8563         * init.c (cmd_address): Don't heap-allocate `sin'; it can be on
8564         the stack because it will be copied to closure.
8565
8566         Thanks to Csaba Raduly's run of PC-LINT over the sources.
8567
8568 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
8569
8570         * http.c (basic_authentication_encode): Use xmalloc(), not
8571         malloc().  Thanks to Csaba Raduly's run of PC-LINT over the
8572         sources.
8573
8574 2000-12-17  Csaba Raduly  <csaba.raduly@sophos.com>
8575
8576         * sysdep.h: Test for __EMX__ rather than for EMXOS2 for OS/2
8577         compilation.
8578
8579 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
8580
8581         * mswindows.c: Include <errno.h>.
8582
8583         * gen_sslfunc.c: Include <errno.h>.
8584
8585         * ftp-basic.c: Don't attempt to declare errno or h_errno because
8586         they're not used.
8587
8588         * main.c: Include <errno.h> because errno is used.
8589
8590         * ftp.c: Ditto.
8591
8592         * http.c: Include <netdb.h> for h_errno.
8593
8594 2000-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
8595
8596         * html-parse.c (advance_declaration): MSVC assert() chokes on
8597         '\"'.  Use '"' instead.
8598
8599 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8600
8601         * utils.c (xfree_real): Removed.
8602         (xfree_debug): Just call free().
8603
8604         * wget.h (xfree): Make it an alias for free.
8605
8606 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8607
8608         * http.c (http_loop): Furthermore, touch output_document only if
8609         it is known to be an existing regular file.
8610
8611 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8612
8613         * ftp.c (ftp_retrieve_list): Ditto.
8614
8615         * http.c (http_loop): Touch output_document if that is used for
8616         output.
8617
8618 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8619
8620         * http.c: Include gen_sslfunc.h after including Wget's headers.
8621         (persistent_available_p): Needed coma before `int ssl'.
8622
8623 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8624
8625         * ftp.c (ftp_loop_internal): Ditto.
8626
8627         * http.c (http_loop): Use it.
8628
8629         * retr.c (sleep_between_retrievals): New function that handles the
8630         logic of opt.wait and opt.waitretry.
8631
8632 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8633
8634         * rbuf.h: Implement only a single version of RBUF_READCHAR, using
8635         rbuf_read_bufferful when the buffer is depleted.
8636
8637         * rbuf.c (rbuf_read_bufferful): New function.
8638
8639 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8640
8641         * gen_sslfunc.h: Use ansi2knr style function declarations.
8642
8643         * gen_sslfunc.c: Reformat according to the GNU coding standards.
8644         More should be done.
8645
8646         * http.c (persistent_available_p): Place the cheap SSL test nearer
8647         the top of the function.
8648         (CLOSE_FINISH, CLOSE_INVALIDATE): Define only one version of each.
8649
8650 2000-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
8651
8652         * url.c (init_unsafe_char_table): Reinstate space as an unsafe
8653         char.
8654
8655 2000-12-03  Christian Fraenkel <christian.fraenkel@gmx.net>
8656
8657         * Makefile.in: added gen_sslfunc object
8658         * config.h.in: added HAVE_SSL define
8659         * connect.c: changed select_fd from static int to int
8660         * connect.h: ditto
8661         * gen_sslfunc.h: New file
8662         * gen_sslfunc.c: ditto
8663         * http.c: added HTTPS fuctionality
8664         * retrc.c: ditto
8665         * url.c: ditto
8666         * init.c: added opt.httpsproxy
8667         * options.h: ditto
8668         * rbuf.h: added alternate rbuf struct
8669         * wget.h: added CONSSLERR
8670         * rbuf.c: ditto
8671
8672         * http.c: Added HTTPS fuctionality.
8673
8674         * retrc.c: Ditto.
8675
8676         * url.c: Ditto.
8677
8678         * init.c: Added opt.httpsproxy.
8679
8680         * options.h: Ditto.
8681
8682         * rbuf.h: Added alternate rbuf struct.
8683
8684         * wget.h: Added CONSSLERR.
8685
8686         * rbuf.c: Ditto.
8687
8688 2000-11-30  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8689
8690         * ftp-ls.c (ftp_parse_unix_ls): Added second parameter
8691         "ignore_perms" to ignore file and directory permissions for
8692         Windows NT FTP server listings.
8693         (ftp_parse_winnt_ls): New function.
8694         (ftp_parse_ls): Parses UNIX and Windows NT listings
8695         separately. Simple heuristics for distinguishing between UNIX and
8696         MS-DOS-like FTP listing provided by Windows NT FTP service.
8697
8698 2000-11-18  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8699
8700         * ftpparse.c, ftpparse.h: New files.
8701
8702         * ftp-ls.c (ftp_parse_ls): Use ftp_parse_unix_ls for UNIX servers
8703         only. Use ftp_parse_nonunix_ls otherwise.
8704         (ftp_parse_nonunix_ls): Stub to the ftpparse library handling all
8705         exotic FTP servers.
8706
8707         * ftp.h (stype): New enum, distinguishes UNIX, VMS, and "other"
8708         FTP servers.
8709
8710         * ftp.c: New static wariables host_type, pwd, and pwd_len.
8711         (getftp): Support for VMS. Support for FTP servers that do not
8712         place you in the root directory after login.
8713         (ftp_retrieve_list): VMS is silent about the real file size, issue
8714         a more appropriate message.
8715         (ftp_get_listing): Pass host_type to ftp_parse_ls.
8716
8717         * ftp-basic.c (ftp_pwd, ftp_syst): New functions.
8718
8719 2000-11-30  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8720
8721         * ftp-ls.c (ftp_parse_unix_ls): Added second parameter
8722         "ignore_perms" to ignore file and directory permissions for
8723         Windows NT FTP server listings.
8724         (ftp_parse_winnt_ls): New function.
8725         (ftp_parse_ls): Parses UNIX and Windows NT listings
8726         separately. Simple heuristics for distinguishing between UNIX
8727         and MS-DOS-like FTP listing provided by Windows NT FTP service.
8728
8729 2000-11-29  John Summerfield  <summer@OS2.ami.com.au>
8730
8731         * netrc.c (parse_netrc): Get rid of line ending.
8732
8733 2000-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
8734
8735         * ftp.c (ftp_retrieve_list): Undo typo "fix" until resolution by
8736         Dan.
8737
8738 2000-11-24  Karl Eichwalder  <ke@suse.de>
8739
8740         * main.c (print_help): Untabify.
8741
8742 2000-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
8743
8744         * utils.c (xrealloc_debug): Do the unregister/register thing only
8745         if the pointer has actually changed.
8746         (xmalloc_real): Declare `static' in DEBUG_MALLOC builds.
8747         (xfree_real): Ditto.
8748         (xrealloc_real): Ditto.
8749         (xstrdup_real): Ditto.
8750
8751 2000-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
8752
8753         * ftp.c (getftp): ftp_getaddress() returns a malloc'ed copy of the
8754         string; no need to strdup() it.
8755         (getftp): Make pwd_len a local variable.
8756         (ftp_loop): Free PWD before returning.
8757
8758         * init.c (cleanup): Free opt.ftp_pass only if it's non-NULL.
8759
8760 2000-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
8761
8762         * all: Use xfree() instead of free.
8763
8764         * utils.c (xfree): New function.
8765
8766 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
8767
8768         * url.c (convert_links): HTML-quote the converted string.
8769
8770         * utils.c (html_quote_string): Move here from ftp-ls.c
8771         (html_quote_string): Make non-static; declare in utils.h.
8772         (html_quote_string): Convert SP to &#32;.
8773
8774 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
8775
8776         * ftp.c (getftp): Reformat Jan's code according to GNU coding
8777         standards; remove (debugging?) printf's; use '\0' for the ASCII
8778         zero character.  Use alloca() instead of malloc() for
8779         inter-function temporary allocations.
8780
8781 2000-11-18  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8782
8783         * ftpparse.c, ftpparse.h: New files.
8784
8785         * ftp-ls.c (ftp_parse_ls): Use ftp_parse_unix_ls for UNIX servers
8786         only. Use ftp_parse_nonunix_ls otherwise.
8787         (ftp_parse_nonunix_ls): Stub to the ftpparse library handling all
8788         exotic FTP servers.
8789
8790         * ftp.h (stype): New enum, distinguishes UNIX, VMS, and "other"
8791         FTP servers.
8792
8793         * ftp.c: New static wariables host_type, pwd, and pwd_len.
8794         (getftp): Support for VMS. Support for FTP servers that do not
8795         place you in the root directory after login.
8796         (ftp_retrieve_list): VMS is silent about the real file size, issue
8797         a more appropriate message.
8798         (ftp_get_listing): Pass host_type to ftp_parse_ls.
8799
8800         * ftp-basic.c (ftp_pwd, ftp_syst): New functions.
8801
8802 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
8803
8804         * hash.c (hash_table_put): Don't overwrite deleted mappings.
8805
8806 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
8807
8808         * hash.c (find_mapping): New function.
8809         (hash_table_get): Use it.
8810         (hash_table_get_pair): Ditto.
8811         (hash_table_exists): Ditto.
8812         (hash_table_remove): Ditto.
8813         (hash_table_remove): Really delete the entry if the mapping
8814         following LOCATION is empty.
8815
8816         * utils.c (string_set_add): Check whether the element has existed
8817         before.
8818
8819         * hash.c (hash_table_get_pair): New function.
8820
8821 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8822
8823         * http.c (http_process_type): Ignore trailing whitespace; use
8824         strdupdelim().
8825
8826         * recur.c (recursive_retrieve): Use the new `convert' field.
8827         (convert_all_links): Ditto.
8828         (convert_all_links): Don't respect meta_disallow_follow.
8829
8830         * html-url.c (handle_link): Fill out link_relative_p and
8831         link_complete_p.
8832
8833         * url.h (struct _urlpos): Make elements more readable.
8834
8835         * recur.c (recursive_retrieve): Call slist_prepend instead of
8836         slist_append.
8837         (convert_all_links): Call slist_nreverse before iterating through
8838         urls_html.
8839
8840         * utils.c (slist_prepend): New function.
8841         (slist_nreverse): Ditto.
8842
8843 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8844
8845         * http.c (check_end): Constify.
8846
8847 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8848
8849         * http.c (http_loop): If username and password are known, try the
8850         `Basic' authentication scheme by default.
8851
8852         * connect.h: Declare test_socket_open.
8853
8854 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8855
8856         * version.c: Bump version from 1.5.3+dev to 1.7-dev.
8857
8858 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8859
8860         * http.c (gethttp): Don't use the return value of sprintf().
8861         (gethttp): Inhibit keep-alive if opt.http_keep_alive is 0.
8862
8863 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8864
8865         * recur.c (recursive_retrieve): Print the "so we don't load"
8866         debugging message only if we really don't load.
8867
8868         * http.c (gethttp): Inhibit keep-alive if proxy is being used.
8869         (gethttp): Don't request keep-alive if keep-alive is inhibited.
8870
8871 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8872
8873         * http.c (gethttp): Make the HTTP persistent connections more
8874         robust.
8875
8876 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8877
8878         * retr.c (get_contents): If use_expected, make sure that the
8879         appropriate amount of data is being read.
8880
8881         * http.c (gethttp): Check for both `Keep-Alive: ...' and
8882         `Connection: Keep-Alive'.
8883
8884         * wget.h (DEBUGP): Call debug_logprintf only if opt.debug is
8885         turned on.
8886
8887 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8888
8889         * http.c (connection_available_p): Use it.
8890
8891         * connect.c (test_socket_open): New function.
8892
8893         * http.c (gethttp): Support persistent connections.  Based on the
8894         ideas, and partly on code, by Sam Horrocks <sam@daemoninc.com>.
8895         (register_persistent): New function.
8896         (connection_available_p): Ditto.
8897         (invalidate_connection): Ditto.
8898
8899 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8900
8901         * url.c (convert_links): Handle UREL2ABS case.
8902
8903         * recur.c (recursive_retrieve): Instead of the list
8904         urls_downloaded, use hash tables dl_file_url_map and
8905         dl_url_file_map.
8906         (convert_all_links): Use them to retrieve data.
8907
8908         * host.c (clean_hosts): Free the hash tables.
8909
8910         * main.c (private_initialize): Call host_init().
8911
8912         * host.c (store_hostaddress): Use a saner, hash table-based data
8913         model.
8914         (realhost): Ditto.
8915         (host_init): Initialize the hash tables.
8916
8917 2000-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
8918
8919         * utils.c (slist_append): Eviscerate NOSORT.  Hash tables are now
8920         used for what the sorted slists used to be used for.
8921         (slist_contains): Don't rely on the list being sorted.
8922         (slist_append): Simplify the code.
8923
8924         * recur.c (recursive_cleanup): Use free_string_set.
8925
8926         * utils.c (string_set_add, string_set_exists, string_set_free):
8927         New functions for easier freeing of hash tables whose keys are
8928         strdup'ed strings.
8929
8930         * recur.c (recursive_retrieve): Use the hash table functions for
8931         storing undesirable URLs.
8932
8933         * hash.c: New file.
8934
8935 2000-11-17  Hrvoje Niksic  <hniksic@arsdigita.com>
8936
8937         * main.c (private_initialize): Call url_init.
8938         (main): Call private_initialize.
8939
8940         * url.c (unsafe_char_table): New table.
8941         (UNSAFE_CHAR): Use it.
8942         (init_unsafe_char_table): New function.
8943         (url_init): New function; call init_unsafe_char_table.
8944
8945 2000-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
8946
8947         * mswindows.h: Define snprintf and vsnprintf to _snprintf and
8948         _vsnprintf respectively.
8949
8950 2000-11-15  Hrvoje Niksic  <hniksic@arsdigita.com>
8951
8952         * config.h.in: Do the _XOPEN_SOURCE and _SVID_SOURCE things only
8953         on Linux.
8954
8955 2000-11-15  Hrvoje Niksic  <hniksic@arsdigita.com>
8956
8957         * html-url.c (handle_link): Handle HTML fragment identifiers.
8958
8959         * recur.c (recursive_retrieve): If norobot info is respected and
8960         the file is specified not to be followed by robots, respect that.
8961
8962         * html-url.c (collect_tags_mapper): Handle <meta name=robots
8963         content=X>.  For us the important cases are where X is NONE or
8964         where X contains NOFOLLOW.
8965         (get_urls_html): Propagate that information to the caller.
8966
8967 2000-11-13  Hrvoje Niksic  <hniksic@arsdigita.com>
8968
8969         * url.c (convert_links): Unlink the file we might be reading from
8970         before writing to it.
8971         (convert_links): Use alloca instead of malloc for
8972         filename_plus_orig_suffix.
8973
8974 2000-11-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8975
8976         * host.c (realhost): Add HOST to the list with quality==0 only if
8977         it wasn't already there.
8978         Based on analysis by Lu Guohan <feng@public.bjnet.edu.cn>.
8979
8980 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8981
8982         * url.c (get_urls_file): Ditto.
8983         (convert_links): Ditto.
8984
8985         * html-url.c (get_urls_html): Use read_file() instead of
8986         load_file().
8987
8988         * utils.c (read_file): New function, instead of the old
8989         load_file().
8990         (read_file_free): Ditto.
8991
8992         * url.c (findurl): Search only for the supported protocols.
8993         (convert_links): Use fwrite() when writing out a region of
8994         characters.
8995
8996 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8997
8998         * ftp-ls.c: Move html_quote_string and ftp_index here.
8999
9000         * url.c: Remove get_urls_html, since that's now in html-url.c.
9001
9002         * html-url.c: New file.
9003
9004         * html-parse.c: New file.
9005
9006 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
9007
9008         * init.c (run_wgetrc): Don't bother killing off '\r' since
9009         pars_line() skips whitespace at end of line anyway.
9010         (parse_line): Oops, it didn't.  Now it does.
9011
9012         * recur.c (parse_robots): Ditto here.
9013
9014         * ftp-ls.c (ftp_parse_unix_ls): Kill off the newline character
9015         manually because read_whole_line no longer does.
9016
9017         * utils.c (read_whole_line): Rewrite to: a) use less memory
9018         (reallocates to needed size after work), b) work faster -->
9019         fgets() instead of getc, c) be more correct --> doesn't kill the
9020         newline character at the end of line.
9021
9022 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
9023
9024         * init.c (comind): Initialize MAX to array size - 1.
9025
9026 2000-11-08  Hrvoje Niksic  <hniksic@arsdigita.com>
9027
9028         * url.c (construct): Changed last_slash[-1] to *(last_slash - 1).
9029         Suggested by Edward J. Sabol.
9030
9031 2000-11-08  Hrvoje Niksic  <hniksic@arsdigita.com>
9032
9033         * url.c (construct): Handle the case where host name is not
9034         followed by a slash.
9035
9036 2000-11-06  Hrvoje Niksic  <hniksic@arsdigita.com>
9037
9038         * init.c: commands[] need to be sorted!  ("base" wasn't.)
9039
9040 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
9041
9042         * wget.h (DO_REALLOC_FROM_ALLOCA): Use braces to disambiguate
9043         `if'.
9044
9045 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
9046
9047         * url.c (construct): Insert unneeded initialization for the
9048         compiler to shut up.
9049
9050         * config.h.in: Define _XOPEN_SOURCE to 500 to get the prototype
9051         for strptime() (*duh*).  Define _SVID_SOURCE to get S_IFLNK which
9052         otherwise gets lost when you define _XOPEN_SOURCE.
9053
9054         * utils.c (touch): Include the file name in the error message.
9055         From Debian.
9056
9057 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
9058
9059         * log.c (logvprintf): Use vsnprintf() in all cases.  If necessary,
9060         resize the buffer to fit the formated message.  That way, messages
9061         of arbitrary size may be printed.
9062         (logvprintf): Use saved_append() to optionally log the last
9063         several lines of output.
9064         (logputs): Ditto.
9065         (log_close): Adapt to new data structures.
9066         (log_dump): Ditto.
9067         (redirect_output): Print messages to stderr, not to stdout.
9068
9069         * log.c (saved_append_1): New function.  Replaces the old logging
9070         system ("log all output until 10M characters") with a new, much
9071         more reasonable one ("log last screenful of text").
9072         (saved_append): New function; call saved_append_1.
9073         (free_log_line): New function.
9074
9075 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
9076
9077         * url.c (construct): Fix comment.
9078         (find_last_char): Document.
9079
9080 2000-11-04  Hrvoje Niksic  <hniksic@arsdigita.com>
9081
9082         * snprintf.c: New file.
9083
9084 2000-11-03  Hrvoje Niksic  <hniksic@arsdigita.com>
9085
9086         * wget.h: If HAVE_STDARG_H is not defined, don't declare argument
9087         types to logprintf() and debug_logprintf().
9088
9089 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
9090
9091         * ftp.c (ftp_loop_internal): Hide the password from the URL when
9092         printing non-verbose.  Problem spotted by Dariusz Mlynarczyk
9093         <darekm@bydg.lomac.com.pl>.
9094
9095 2000-11-02  Junio Hamano  <junio@twinsun.com>
9096
9097         * ftp-basic.c (ftp_login): Make comparison case-insensitive.
9098
9099 2000-11-02  Tyler Riddle  <triddle@liquidmarket.com>
9100
9101         * http.c (known_authentication_scheme_p): Recognize NTML
9102         authentication.
9103         (create_authorization_line): Treat NTML the same as `Basic'.
9104
9105 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
9106
9107         * retr.c (retrieve_url): Free url before returning.
9108         (retrieve_url): Free mynewloc before returning.
9109         Spotted by Mark A. Mankins <Mankins_Mark@prc.com>.
9110
9111 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
9112
9113         * url.c (parseurl): Remove possible reading past the end of
9114         sup_protos[].  Spotted by Mark A. Mankins <Mankins_Mark@prc.com>.
9115
9116 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9117
9118         * main.c (main): In case of opt.downloaded overflowing, print
9119         <overflow> instead of a totally bogus random value.
9120
9121         * retr.c (retrieve_from_file): Ditto.
9122
9123         * recur.c (recursive_retrieve): Ditto.
9124
9125         * main.c (main): Ditto.
9126
9127         * http.c (http_loop): Ditto.
9128
9129         * ftp.c (ftp_loop_internal): Use downloaded_increase() instead of
9130         `+=', and downloaded_exceeds_quota() instead of the simple-minded
9131         check.
9132         (ftp_retrieve_list): Ditto.
9133         (ftp_retrieve_dirs): Ditto.
9134         (ftp_retrieve_glob): Ditto.
9135
9136         * retr.c (downloaded_increase): New function.  Notice overflows of
9137         opt.downloaded.
9138         (downloaded_exceeds_quota): Make sure that opt.downloaded is not
9139         used if it overflowed.
9140
9141         * options.h (struct options): New member downloaded_overflow.
9142
9143 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9144
9145         * wget.h (enum): Remove extra space after last enumeration.
9146
9147 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9148
9149         * main.c (main): Use legible_very_long() for printing
9150         opt.downloaded.
9151
9152         * utils.c (legible_1): New function that operates on strings and
9153         does the brunt of legible()'s work.
9154         (legible): Use legible_1().
9155         (legible_very_long): New function; dump the argument with
9156         sprintf(), and call legible_1().
9157
9158         * options.h (struct options): Use VERY_LONG_TYPE for
9159         opt.downloaded.
9160
9161         * sysdep.h (VERY_LONG_TYPE): Define it to have a 64-bit or greater
9162         type.
9163
9164         * config.h.in: Make sure that SIZEOF_LONG and SIZEOF_LONG_LONG get
9165         defined.  Define HAVE_LONG_LONG if long long is available.
9166
9167 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9168
9169         * utils.c (long_to_string): Update with a later, better version.
9170
9171 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9172
9173         * url.c (path_simplify_with_kludge): New function.
9174         (path_simplify_with_kludge): Disable it.  Instead...
9175         (parse_dir): ...make sure that at this point the right thing is
9176         done, i.e. that "query" part of the URL (?...) is always assigned
9177         to the file, never to the directory portion of the path.
9178
9179 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9180
9181         * retr.c (retrieve_url): Detect redirection cycles.
9182
9183 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9184
9185         * url.c (get_urls_html): Decode HTML entities using
9186         html_decode_entities.
9187
9188         * html.c (htmlfindurl): Don't count the `#' in numeric entities
9189         (&#NNN;) as an HTML fragemnt.
9190         (html_decode_entities): New function.
9191
9192 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9193
9194         * html.c (htmlfindurl): Fix recognition of # HTML fragments.
9195
9196 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9197
9198         * url.c (construct): Rewritten for clarity.  Avoids the
9199         unnecessary copying and stack-allocation the old version
9200         performed.
9201
9202 2000-10-31  Hrvoje Niksic  <hniksic@arsdigita.com>
9203
9204         * ftp.c (getftp): Ditto.
9205
9206         * http.c (gethttp): Rewind the stream when retrying from scratch.
9207
9208 2000-10-31  Hrvoje Niksic  <hniksic@arsdigita.com>
9209
9210         * retr.c (retrieve_url): Use url_concat() to handle relative
9211         redirections instead of /ad hoc/ code.
9212
9213         * url.c (url_concat): New function encapsulating weird
9214         construct().
9215         (urllen_http_hack): New function.
9216         (construct): When constructing new URLs, recognize that `?' does
9217         not form part of the file name in HTTP.
9218
9219 2000-10-13  Adrian Aichner  <adrian@xemacs.org>
9220
9221         * retr.c: Add msec timing support for WINDOWS.
9222         * retr.c (reset_timer): GetSystemTime() on WINDOWS.
9223         * retr.c (elapsed_time): Calculate delta time to msec on WINDOWS.
9224
9225 2000-10-27  Dan Harkless  <wget@harkless.org>
9226
9227         * retr.c (retrieve_url): Manually applied T. Bharath
9228         <TBharath@responsenetworks.com>'s patch to get wget to grok
9229         illegal relative URL redirects.  Reformatted and re-commented it.
9230
9231 2000-10-23  Dan Harkless  <wget@harkless.org>
9232
9233         * connect.c (make_connection and bindport): Manually applied Rob
9234         Mayoff <mayoff@dqd.com>'s 1.5.3 patch to add --bind-address,
9235         changing coding style to GNU's.
9236
9237         * ftp.c (ftp_loop_internal): --delete-after wasn't implemented for
9238         files downloaded via FTP.  Per a comment, .listing files were not
9239         counted towards number of bytes and files downloaded because they're
9240         deleted anyway.  Well, they aren't under -nr, so count them then.
9241
9242         * init.c: Manually applied Rob Mayoff's 1.5.3 patch to add
9243         --bind-address, alphabetizing, changing coding style to GNU's,
9244         commenting, and renaming cmd_ip_address() to cmd_address() to
9245         imply hostnames also okay.
9246
9247         * main.c (main): --delete-after didn't delete the root of the
9248         tree.  Ignore --convert-links if --delete-after was specified.
9249         Manually applied Rob Mayoff's 1.5.3 patch to add --bind-address,
9250         fixing duplicate use of added-since-1.5.3 case value.
9251         (print_help): Clarified that --delete-after deletes local files.
9252         Rob forgot to add a line for his new --bind-address option.
9253
9254         * options.h (struct options): Manually applied Rob Mayoff's patch
9255         to add --bind-address (bind_address structure member).
9256
9257         * recur.c (recursive_retrieve): Improved comment; added DEBUGP().
9258         Ignore --convert-links if --delete-after was specified.
9259
9260         * retr.c (retrieve_from_file): Just added a DEBUGP().
9261
9262 2000-10-19  Dan Harkless  <wget@harkless.org>
9263
9264         * ftp.c (ftp_loop_internal): downloaded_file() enumerators changed.
9265         (getftp): Applied Piotr Sulecki <Piotr.Sulecki@ios.krakow.pl>'s
9266         patch to work around FTP servers that incorrectly respond to the
9267         "REST" command with the remaining size rather than the total file size.
9268
9269         * http.c (gethttp): Improved a comment and added code to tack on
9270         ".html" to text/html files without that extension when -E specified.
9271         (http_loop): Use new downloaded_file() enumerators and deal with
9272         the case of gethttp() called xrealloc() on u->local.
9273
9274         * init.c (commands): Added new "htmlextension" command.
9275         Also renamed John Daily's cmd_quad() to the more descriptive
9276         cmd_lockable_boolean(), alpha-sorted the CMD_DECLARE()s and
9277         removed duplicate cmd_boolean() declaration.
9278
9279         * main.c (print_help): Added my new -E / --html-extension option.
9280         (main): Undocumented --email-address option previously used -E synonym.
9281         Stole it away for the much more deserving --html-extension's use.
9282
9283         * options.h (struct options): Added html_extension field.
9284
9285         * url.c (convert_links): URL X that we saved as X.html locally due
9286         to -E needs to be backed up as X.orig, not X.html.orig.  Added comments.
9287         (downloaded_file): Now remembers if we added .html extension to a file.
9288
9289         * url.h (downloaded_file_t): Added extra enumerators to support above.
9290         (downloaded_file): Now takes and returns a downloaded_file_t.
9291
9292         * wget.h (unnamed "dt" enum): Added ADDED_HTML_EXTENSION enumerator.
9293
9294 2000-10-09  Dan Harkless  <wget@harkless.org>
9295
9296         * html.c (htmlfindurl): Added unneeded initialization to quiet warning.
9297
9298         * main.c (print_help): Clarified what --retr-symlinks does.
9299
9300 2000-09-15  John Daily  <jdaily@cyberdude.com>
9301
9302         * init.c: Add support for "always" and "never" values to allow
9303         .wgetrc to override commandline (useful e.g. with .pm files
9304         calling `wget --passive-ftp' when your firewall doesn't allow that).
9305
9306         * ftp.c (getftp): passive_ftp is first option to support always/never.
9307
9308 2000-08-30  Dan Harkless  <wget@harkless.org>
9309
9310         * ftp.c (ftp_retrieve_list): Use new INFINITE_RECURSION #define.
9311
9312         * html.c: htmlfindurl() now takes final `dash_p_leaf_HTML' parameter.
9313         Wrapped some > 80-column lines.  When -p is specified and we're at a
9314         leaf node, do not traverse <A>, <AREA>, or <LINK> tags other than
9315         <LINK REL="stylesheet">.
9316
9317         * html.h (htmlfindurl): Now takes final `dash_p_leaf_HTML' parameter.
9318
9319         * init.c: Added new -p / --page-requisites / page_requisites option.
9320
9321         * main.c (print_help): Clarified that -l inf and -l 0 both allow
9322         infinite recursion.  Changed the unhelpful --mirrior description
9323         to simply give the options it's equivalent to.  Added new -p option.
9324         (main): Added some comments; handle new -p / --page-requisites.
9325
9326         * options.h (struct options): Added new page_requisites field.
9327
9328         * recur.c: Changed "URL-s" to "URLs" and "HTML-s" to "HTMLs".
9329         Calculate and pass down new `dash_p_leaf_HTML' parameter to
9330         get_urls_html().  Use new INFINITE_RECURSION #define.
9331
9332         * retr.c: Changed "URL-s" to "URLs".  get_urls_html() now takes
9333         final `dash_p_leaf_HTML' parameter.
9334
9335         * url.c: get_urls_html() and htmlfindurl() now take final
9336         `dash_p_leaf_HTML' parameter.
9337
9338         * url.h (get_urls_html): Now takes final `dash_p_leaf_HTML' parameter.
9339
9340         * wget.h: Added some comments and new INFINITE_RECURSION #define.
9341
9342 2000-08-23  Dan Harkless  <wget@harkless.org>
9343
9344         * main.c (print_help): -B / --base was not mentioned.
9345
9346 2000-08-22  Dan Harkless  <wget@harkless.org>
9347
9348         * main.c (print_help): Modified -nc description to mention that it
9349         also prevents the creation of multiple versions of the same file
9350         with ".<number>" suffixes.
9351
9352 2000-07-14  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
9353
9354         * retr.c (retrieve_url): Consistently strdup opt.referer when
9355         setting u->referer.
9356
9357 2000-06-09  Dan Harkless  <wget@harkless.org>
9358
9359         * main.c (print_help): --help output for --waitretry was over 80 cols.
9360
9361 2000-06-09  Hrvoje Niksic  <hniksic@iskon.hr>
9362
9363         * url.c (encode_string): Fix comment.
9364         Suggested by Herold Heiko <Heiko.Herold@previnet.it>.
9365
9366 2000-06-01  Const Kaplinsky  <const@ce.cctpu.edu.ru>
9367
9368         * ftp.c (ftp_retrieve_list): Change permissions only on plain
9369         files.
9370
9371 2000-06-01  Hrvoje Niksic  <hniksic@iskon.hr>
9372
9373         * url.c (str_url): Print the port number only if it's different
9374         from the default port number for that protocol.
9375
9376 2000-05-22  Dan Harkless  <wget@harkless.org>
9377
9378         * main.c (print_help): Added --help line for Damir Dzeko
9379         <ddzeko@zesoi.fer.hr>'s until-now-undocumented --referer option.
9380         Removed comments that --referer and --waitretry were undocumented.
9381         Changed "`.wgetrc' command" to "`.wgetrc'-style command" on --help
9382         line for --execute.
9383
9384 2000-05-18  Hrvoje Niksic  <hniksic@iskon.hr>
9385
9386         * ftp.c (getftp): Ditto.
9387
9388         * http.c (gethttp): Check for return value of fclose/fflush.
9389
9390 2000-04-12  Hrvoje Niksic  <hniksic@iskon.hr>
9391
9392         * host.c (store_hostaddress): Instead of shifting ADDR, start
9393         copying from the correct address.
9394
9395 2000-04-12  Hrvoje Niksic  <hniksic@iskon.hr>
9396
9397         * http.c (gethttp): Don't free REQUEST -- it was allocated with
9398         alloca().
9399         Pointed out by Gisle Vanem <gvanem@eunet.no>.
9400
9401 2000-04-04  Dan Harkless  <wget@harkless.org>
9402
9403         * host.c (store_hostaddress): R. K. Owen's patch introduces a
9404         "left shift count >= width of type" warning on 32-bit
9405         architectures.  Got rid of it by tricking the compiler w/ a variable.
9406
9407         * url.c (UNSAFE_CHAR): The macro didn't include all the illegal
9408         characters per RFC1738, namely everything above '~'.  It also
9409         generated a warning on OSes where char =~ unsigned char.  Fixed.
9410
9411 1998-10-17  Hrvoje Niksic  <hniksic@srce.hr>
9412
9413         * http.c (http_process_type): Removed needless strdup(), a memory
9414         leak.
9415
9416 1998-09-25  Hrvoje Niksic  <hniksic@srce.hr>
9417
9418         * html.c (htmlfindurl): Set PH to the first occurrence of `#'.
9419
9420 1998-09-25  Simon Munton  <simonm@m4data.co.uk>
9421
9422         * init.c (wgetrc_file_name): Don't free HOME under Windows.
9423
9424 1998-12-01  "R. K. Owen"  <rkowen@Nersc.GOV>
9425
9426         * host.c (store_hostaddress): Fix for big endian 64-bit machines.
9427
9428 1998-12-01  Hrvoje Niksic  <hniksic@srce.hr>
9429
9430         * url.c (UNSAFE_CHAR): New macro.
9431         (contains_unsafe): Use it.
9432         (encode_string): Ditto.
9433
9434 1998-12-01  Hrvoje Niksic  <hniksic@srce.hr>
9435
9436         * main.c (i18n_initialize): Use LC_MESSAGES only if available.
9437
9438 2000-03-31  Hrvoje Niksic  <hniksic@srce.hr>
9439
9440         * Use TOUPPER/TOLOWER.
9441
9442 1998-12-22  Alexander V. Lukyanov  <lav@yars.free.net>
9443
9444         * ftp-opie.c (btoe): Zero-terminate OSTORE.
9445
9446 2000-03-21  Hrvoje Niksic  <hniksic@iskon.hr>
9447
9448         * wget.h (DO_REALLOC_FROM_ALLOCA): Ditto.
9449
9450         * sysdep.h (ISALNUM): New macro.
9451         (TOLOWER): Ditto.
9452         (TOUPPER): Ditto.
9453
9454 2000-03-10  Dan Harkless  <wget@harkless.org>
9455
9456         * html.c (idmatch): Implemented checking of my new --follow-tags
9457         and --ignore-tags options.
9458
9459         * init.c (commands): Added comment reminding people adding new
9460         entries doing allocation to add corresponding freeing in cleanup().
9461         (commands): Added new followtags and ignoretags commands.
9462         (cleanup): Free storage for new followtags and ignoretags.
9463
9464         * main.c: Use of "comma-separated list" was random -- normalized
9465         it.  Did some alphabetization.  Added comments pointing out
9466         "Options without arguments" and "Options accepting an argument"
9467         sections of long_options[].  Added new options --follow-tags and
9468         -G / --ignore-tags.  Added comment that Damir's --referer is
9469         currently undocumented.  Added comment that Heiko's --waitretry is
9470         partially undocumented (mentioned in --help but not in
9471         wget.texi).  Moved improperly sorted 24, 129, and 'G' cases.
9472
9473         * options.h (struct options): Added new fields follow_tags and
9474         ignore_tags.
9475
9476         * wget.h: Added "#define EQ 0" so we can say "strcmp(a, b) == EQ".
9477
9478 2000-03-02  Dan Harkless  <wget@harkless.org>
9479
9480         * ftp.c (ftp_loop_internal): Heiko introduced "suggest explicit
9481         braces to avoid ambiguous `else'" warnings.  Eliminated them.
9482
9483         * http.c (gethttp): Dan Berger's query string patch is totally
9484         bogus.  If you have two different URLs, gen_page.cgi?page1 and
9485         get_page.cgi?page2, they'll both be saved as get_page.cgi and the
9486         second will overwrite the first.  Also, parameters to implicit
9487         CGIs, like "http://www.host.com/db/?2000-03-02" cause the URLs to
9488         be printed with trailing garbage characters, and could seg fault.
9489         Backing out the patch, which Dan B. informed me by email was just
9490         a kludge to download StarOffice from Sun made necessary due to
9491         wget's unconditional escaping of certain characters (room for an
9492         option there?).
9493         (http_loop): Heiko introduced "suggest explicit braces to avoid
9494         ambiguous `else'" warnings.  Eliminated them.
9495
9496         * main.c: Heiko's --wait / --waitretry backwards compatibility
9497         code looks to have been totally untested -- automatic variable
9498         'wr' was used without being initialized, and a long int was passed
9499         into setval()'s char* val parameter.
9500
9501         * recur.c (parse_robots): Applied Edward J. Sabol
9502         <sabol@alderaan.gsfc.nasa.gov>'s patch for Guan Yang's reported
9503         problem with "User-agent:<space>*<space>" lines in robots.txt.
9504
9505         * url.c (parseurl, str_url): Removing Dan Berger's code (see
9506         http.c above for explanation).
9507
9508 1999-08-25  Heiko Herold  <Heiko.Herold@previnet.it>
9509
9510         * ftp.c: Respect new option waitretry.
9511
9512 2000-01-30  Damir Dzeko  <ddzeko@zesoi.fer.hr>
9513
9514         * http.c (gethttp): Send custom Referer, if required.
9515
9516 1999-09-24  Charles G Waldman  <cgw@fnal.gov>
9517
9518         * netrc.c (parse_netrc): Allow passwords to contain spaces.
9519
9520         * netrc.c (parse_netrc): New function.
9521
9522 1999-09-17  Dan Berger  <dberger@ix.netcom.com>
9523
9524         * http.c (gethttp): Send it.
9525
9526         * url.c (parseurl): Detect query string in HTTP URL-s.
9527         (str_url): Print it.
9528
9529 2000-03-02  HIROSE Masaaki  <hirose31@t3.rim.or.jp>
9530
9531         * html.c (html_allow): Add <link href=...> and <script src=...>.
9532
9533 1999-05-02  andrew deryabin  <djsf@softhome.net>
9534
9535         * http.c (gethttp): Specify port in `Host' header only if it's
9536         different from 80.
9537
9538 1998-11-03  Edward J. Sabol  <sabol@alderaan.gsfc.nasa.gov>
9539
9540         * recur.c (recursive_retrieve): If a finite maximum depth is
9541         specified, and we're are already at that depth, don't download the
9542         HTML file for parsing.
9543
9544 2000-03-01  Dan Harkless  <wget@harkless.org>
9545
9546         * ftp.c (ftp_loop_internal): Call new downloaded_file() function,
9547         even though we don't do conversion on HTML files retrieved via
9548         FTP, so _current_ usage of downloaded_file() makes this call unneeded.
9549         (ftp_retrieve_list): Added a comment saying where we need to
9550         stat() a .orig file if FTP'd HTML file conversion is ever implemented.
9551         (ftp_retrieve_list): "Local file '%s' is more recent," is sometimes
9552         a lie -- reworded as "Server file no newer than local file '%s' --".
9553
9554         * http.c (http_loop): Fixed a typo and clarified a comment.
9555         (http_loop): When -K and -N are specified together, compare size
9556         and timestamp of server file X against local file X.orig (if
9557         extant) rather than converted local file X.
9558         (http_loop): "Local file '%s' is more recent," is sometimes a lie
9559         -- reworded as "Server file no newer than local file '%s' --".
9560         (http_loop): Call new downloaded_file() function to prevent
9561         wrongful overwriting of .orig file when -N is specified.
9562
9563         * url.c (convert_links): When -K specified, only rename X to
9564         X.orig if downloaded_file() returns TRUE.  Otherwise when we skip
9565         file X due to -N, we clobber an X.orig from a previous invocation.
9566         (convert_links): Call the failsafe xstrdup(), not the real strdup().
9567         (convert_links): Added a note asking anyone who understands how
9568         multiple URLs can correspond to a single file to comment it.
9569         (downloaded_file): Added this new function.
9570
9571         * url.h (downloaded_file): Added prototype for this new function
9572         as well as its downloaded_file_t enum type.
9573
9574         * wget.h (boolean): Added this new typedef and TRUE and FALSE #defines.
9575
9576 2000-02-29  Dan Harkless  <wget@harkless.org>
9577
9578         * version.c: Upped version to developer-only "1.5.3+dev".
9579
9580 2000-02-18  Dan Harkless  <wget@harkless.org>
9581
9582         * init.c (backup_converted): Added this new option.
9583
9584         * main.c (-K / --backup-converted): Added this new option.
9585
9586         * options.h (backup_converted): Added this new option.
9587
9588         * url.c (convert_links): When backup_converted is specified, save
9589         file X as X.orig before converting.
9590
9591         * url.h (urlpos): Fixed typo -- said "Rekative" instead of "Relative".
9592
9593 1998-09-21  Hrvoje Niksic  <hniksic@srce.hr>
9594
9595         * version.c: Wget 1.5.3 is released.
9596
9597 1998-09-21  Hrvoje Niksic  <hniksic@srce.hr>
9598
9599         * host.c (ftp_getaddress): Don't warn when reverse-lookup of local
9600         address doesn't yield FQDN.
9601
9602 1998-09-21  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
9603
9604         * cmpt.c (strerror): Fix declaration of sys_errlist.
9605
9606 1998-09-11  Hrvoje Niksic  <hniksic@srce.hr>
9607
9608         * main.c (main): Don't use an array subscript as the first
9609         argument to STRDUP_ALLOCA.
9610         From Kaveh R. Ghazi.
9611
9612 1998-09-11  Szakacsits Szabolcs  <szaka@sienet.hu>
9613
9614         * html.c (htmlfindurl): Download table background.
9615
9616 1998-09-11  Hans Grobler  <grobh@conde.ee.sun.ac.za>
9617
9618         * init.c (parse_line): Would free *com before allocating it.
9619         (parse_line): Would free com instead of *com.
9620
9621 1998-09-10  Howard Gayle  <howard@fjst.com>
9622
9623         * url.c (get_urls_html): Would drop the last character of the
9624         link.
9625
9626 1998-09-10  Hrvoje Niksic  <hniksic@srce.hr>
9627
9628         * http.c (http_loop): Don't print status code if quiet.
9629
9630 1998-09-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9631
9632         * log.c: Use <stdarg.h> only when __STDC__.
9633
9634 1998-09-10  Adam D. Moss  <adam@foxbox.org>
9635
9636         * html.c (htmlfindurl): Download <layer src=...>.
9637
9638 1998-09-10  Howard Gayle  <howard@fjst.com>
9639
9640         * ftp.c (ftp_retrieve_list): Don't update the time stamp of a file
9641         not retrieved.
9642
9643 1998-06-27  Hrvoje Niksic  <hniksic@srce.hr>
9644
9645         * utils.c: Include <libc.h> on NeXT.
9646
9647 1998-06-26  Heinz Salzmann  <heinz.salzmann@intermetall.de>
9648
9649         * url.c (get_urls_html): Fix calculation of URL position.
9650
9651 1998-06-23  Hrvoje Niksic  <hniksic@srce.hr>
9652
9653         * version.c: Wget 1.5.2 is released.
9654
9655 1998-06-23  Dave Love  <d.love@dl.ac.uk>
9656
9657         * ftp.c, init.c, netrc.c: Include errno.h.
9658
9659         * http.c: Include errno.h and time header.
9660
9661         * Makefile.in (exext): Define.
9662         (install.bin, uninstall.bin): Use it.
9663
9664 1998-06-21  Hrvoje Niksic  <hniksic@srce.hr>
9665
9666         * http.c (http_loop): Don't attempt to compare local and remote
9667         sizes if the remote size is unknown.
9668
9669 1998-06-16  Hrvoje Niksic  <hniksic@srce.hr>
9670
9671         * url.c (get_urls_html): Use malloc() instead of alloca in the
9672         loop.
9673
9674 1998-06-13  Hrvoje Niksic  <hniksic@srce.hr>
9675
9676         * version.c: Wget 1.5.2-b4 is released.
9677
9678 1998-06-13  Hrvoje Niksic  <hniksic@srce.hr>
9679
9680         * url.c (get_urls_html): Ignore spaces before and after the URI.
9681
9682 1998-06-08  Wanderlei Antonio Cavassin  <cavassin@conectiva.com.br>
9683
9684         * ftp.c (getftp): Translate `done'.
9685
9686 1998-06-06  Hrvoje Niksic  <hniksic@srce.hr>
9687
9688         * version.c: Wget 1.5.2-b3 is released.
9689
9690 1998-06-06  Alexander Kourakos  <awk@bnt.com>
9691
9692         * init.c (cleanup): Close dfp, don't free it.
9693
9694 1998-06-06  Hrvoje Niksic  <hniksic@srce.hr>
9695
9696         * utils.c (make_directory): Twiddle.
9697
9698         * config.h.in: Added template for access().
9699
9700 1998-06-05  Mathieu Guillaume  <mat@cythere.com>
9701
9702         * html.c (htmlfindurl): Download <input src=...>
9703
9704 1998-06-03  Hrvoje Niksic  <hniksic@srce.hr>
9705
9706         * utils.c (file_exists_p): Use access() with two arguments.
9707
9708 1998-05-27  Martin Kraemer  <Martin.Kraemer@mch.sni.de>
9709
9710         * netrc.c (parse_netrc): Correct logic.
9711
9712 1998-05-27  Hrvoje Niksic  <hniksic@srce.hr>
9713
9714         * ftp.c (getftp): Added `break'; suggested by Lin Zhe Min
9715         <ljm@ljm.wownet.net>.
9716
9717 1998-05-24  Hrvoje Niksic  <hniksic@srce.hr>
9718
9719         * version.c: Wget 1.5.2-b2 is released.
9720
9721 1998-05-18  Juan Jose Rodriguez  <jcnsoft@jal1.telmex.net.mx>
9722
9723         * mswindows.h: Don't translate mkdir to _mkdir under Borland.
9724
9725 1998-05-17  Hrvoje Niksic  <hniksic@srce.hr>
9726
9727         * retr.c (elapsed_time): Return correct value when
9728         HAVE_GETTIMEOFDAY is undefined.
9729
9730 1998-05-13  Hrvoje Niksic  <hniksic@srce.hr>
9731
9732         * version.c: Wget 1.5.2-b1 is released.
9733
9734 1998-05-08  Hrvoje Niksic  <hniksic@srce.hr>
9735
9736         * getopt.c (_getopt_internal): Use exec_name instead of argv[0].
9737         (_getopt_internal): Don't translate `#if 0'-ed strings.
9738
9739 1998-05-06  Douglas E. Wegscheid  <wegscd@whirlpool.com>
9740
9741         * mswindows.c (ws_handler): Use fork_to_background().
9742
9743 1998-05-05  Hrvoje Niksic  <hniksic@srce.hr>
9744
9745         * version.c: Wget 1.5.1 is released.
9746
9747 1998-05-05  Hrvoje Niksic  <hniksic@srce.hr>
9748
9749         * http.c (parse_http_status_line): Avoid `minor' and `major'
9750         names.
9751
9752 1998-05-02  Hrvoje Niksic  <hniksic@srce.hr>
9753
9754         * utils.c (mkdirhier): Renamed to make_directory.
9755
9756 1998-05-01  Hrvoje Niksic  <hniksic@srce.hr>
9757
9758         * mswindows.c (fork_to_background): Define under Windows.
9759
9760         * utils.c (fork_to_background): New function.
9761
9762         * html.c (htmlfindurl): Removed rerdundant casts.
9763
9764 1998-05-01  Douglas E. Wegscheid  <wegscd@whirlpool.com>
9765
9766         * mswindows.c (ws_mypath): Cache the path.
9767
9768 1998-04-30  Douglas E. Wegscheid  <wegscd@whirlpool.com>
9769
9770         * ftp.h: Prefix enum ftype members with FT_.
9771
9772         * ftp-ls.c, ftp.c, html.h: Adjust accordingly.
9773
9774         * mswindows.h: Use stat under Borland, _stat under MSVC.
9775
9776 1998-04-28  Hrvoje Niksic  <hniksic@srce.hr>
9777
9778         * http.c (known_authentication_scheme_p): New function.
9779         (gethttp): Handle authorization more correctly.
9780
9781         * ftp-basic.h: Removed.
9782
9783         * cmpt.h: Removed.
9784
9785         * utils.c: Include <unistd.h> before <pwd.h>; needed under SunOS
9786         with gcc 2.8.
9787         (numdigit): Use `while' loop.
9788
9789         * http.c (create_authorization_line): Detect authentication
9790         schemes case-insensitively.
9791
9792         * http.c (extract_header_attr): Use strdupdelim().
9793         (digest_authentication_encode): Move declaration of local
9794         variables to smaller scope.
9795         (digest_authentication_encode): Reset REALM, OPAQUE and NONCE.
9796         (create_authorization_line): Detect authentication schemes
9797         case-insensitively.
9798
9799         * utils.c (touch): Constify.
9800
9801         * http.c (gethttp): Report a nicer error when no data is received.
9802
9803         * rbuf.h (RBUF_READCHAR): Ditto.
9804
9805         * ftp-basic.c (ftp_response): Use sizeof.
9806
9807 1998-04-27  Hrvoje Niksic  <hniksic@srce.hr>
9808
9809         * retr.c (print_percentage): EXPECTED is long, not int.
9810         (print_percentage): Use floating-point arithmetic to avoid
9811         overflow with large files' sizes multiplied with 100.
9812
9813 1998-04-27  Gregor Hoffleit  <flight@mathi.uni-heidelberg.de>
9814
9815         * config.h.in: Added pid_t stub.
9816
9817         * sysdep.h (S_ISREG): Moved here from mswindows.h (NeXT doesn't
9818         define it).
9819
9820 1998-04-20  Hrvoje Niksic  <hniksic@srce.hr>
9821
9822         * version.c: Wget 1.5.0 is released.
9823
9824 1998-04-18  Hrvoje Niksic  <hniksic@srce.hr>
9825
9826         * url.c (str_url): Ditto.
9827
9828         * ftp-basic.c (ftp_rest): Use new name.
9829
9830         * utils.c (long_to_string): Renamed from prnum().
9831
9832 1998-04-16  Hrvoje Niksic  <hniksic@srce.hr>
9833
9834         * version.c: Wget 1.5-b17 is released.
9835
9836 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
9837
9838         * headers.c (header_get): New argument FLAGS.
9839
9840         * http.c (gethttp): If request is malformed, bail out of the
9841         header loop.
9842         (gethttp): Check for empty header *after* the status line checks.
9843         (gethttp): Disallow continuations for status line.
9844
9845 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
9846
9847         * version.c: Wget 1.5-b16 is released.
9848
9849 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
9850
9851         * init.c (commands): Renamed `always_rest' to `continue'.
9852
9853 1998-04-05  Hrvoje Niksic  <hniksic@srce.hr>
9854
9855         * all: Use it.
9856
9857         * log.c (logputs): New argument.
9858         (logvprintf): Ditto.
9859         (logprintf): Ditto.
9860
9861 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
9862
9863         * http.c (http_atotm): Update comment.
9864
9865         * main.c (i18n_initialize): Set LC_MESSAGES, not LC_ALL.
9866
9867         * wget.h: Renamed ENABLED_NLS to HAVE_NLS.
9868
9869         * main.c (i18n_initialize): New function.
9870         (main): Use it.
9871
9872         * log.c: Include <unistd.h>.
9873
9874         * retr.c (show_progress): Cast alloca to char *.
9875
9876 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
9877
9878         * version.c: Wget 1.5-b15 is released.
9879
9880 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
9881
9882         * utils.h: Declare file_non_directory_p().
9883
9884 1998-04-03  Hrvoje Niksic  <hniksic@srce.hr>
9885
9886         * main.c (main): It's `tries', not `numtries' now.
9887
9888 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
9889
9890         * init.c (getperms): Removed.
9891
9892 1998-04-01  Tim Charron  <tcharron@interlog.com>
9893
9894         * log.c (logvprintf): Don't use ARGS twice.
9895
9896 1998-04-01  John  <john@futuresguide.com>
9897
9898         * mswindows.c: Cleaned up.
9899
9900 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
9901
9902         * version.c: Wget 1.5-b14 is released.
9903
9904 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
9905
9906         * ftp-opie.c (STRLEN4): New macro.
9907         (btoe): Use it.
9908
9909 1998-04-01  Junio Hamano  <junio@twinsun.com>
9910
9911         * http.c: Document all the Digest functions.
9912
9913 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
9914
9915         * utils.c (file_non_directory_p): Renamed from isfile().
9916
9917         * mswindows.h (S_ISREG): New macro, suggested by Tim Adam.
9918
9919 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
9920
9921         * utils.c (mkdirhier): Use 0777 instead of opt.dirmode.
9922
9923         * init.c (cmd_spec_dotstyle): Use 48 dots per line for binary
9924         style.
9925         (cmd_permissions): Removed.
9926
9927         * config.h.in: Add template for WORDS_BIGENDIAN.
9928
9929 1998-03-31  Junio Hamano  <junio@twinsun.com>
9930
9931         * http.c (HEXD2asc): New macro.
9932         (dump_hash): Use it.
9933
9934 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
9935
9936         * version.c: Wget 1.5-b13 is released.
9937
9938 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
9939
9940         * main.c (main): Don't try to use `com'.
9941
9942 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
9943
9944         * init.c (cmd_permissions): New function.
9945
9946 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
9947
9948         * version.c: Wget 1.5-b12 is released.
9949
9950 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
9951
9952         * init.c (commands): Renamed `numtries' to `tries'.
9953         (cmd_spec_debug): Removed.
9954         (home_dir): Under Windows, return `C:\' if HOME is undefined.
9955
9956 1998-03-29  Hrvoje Niksic  <hniksic@srce.hr>
9957
9958         * config.h.in: Define _XOPEN_SOURCE.
9959
9960         * init.c (check_user_specified_header): New function.
9961         (cmd_spec_header): Use it.
9962         (cmd_spec_useragent): New function.
9963
9964 1998-03-29  Hrvoje Niksic  <hniksic@srce.hr>
9965
9966         * version.c: Wget 1.5-b11 is released.
9967
9968 1998-03-28  Hrvoje Niksic  <hniksic@srce.hr>
9969
9970         * wget.h: Include <libintl.h> only if NLS is enabled.
9971
9972 1998-03-26  Hrvoje Niksic  <hniksic@srce.hr>
9973
9974         * options.h (struct options): Made `wait' a long.
9975         (struct options): Ditto for `timeout'.
9976
9977 1998-03-19  Hrvoje Niksic  <hniksic@srce.hr>
9978
9979         * utils.c (exists): Renamed to file_exists_p.
9980         (file_exists_p): Use access() if available.
9981
9982 1998-03-17  Hrvoje Niksic  <hniksic@srce.hr>
9983
9984         * utils.c (memfatal): Set save_log_p to 0 to avoid potential
9985         infloop.
9986
9987         * log.c: do_logging -> save_log_p.
9988
9989         * config.h.in: Added template for HAVE_VSNPRINTF.
9990
9991 1998-03-16  Hrvoje Niksic  <hniksic@srce.hr>
9992
9993         * init.c: Ditto.
9994
9995         * http.c: Protect declaration against non-ANSI compiler.
9996
9997         * log.c (logvprintf): Use vsnprintf() if available.
9998
9999         * getopt.c (main): Don't translate test stuff.
10000
10001 1998-03-16  Hrvoje Niksic  <hniksic@srce.hr>
10002
10003         * version.c: Wget 1.5-b10 is released.
10004
10005 1998-03-11  Hrvoje Niksic  <hniksic@srce.hr>
10006
10007         * ftp.c (getftp): Don't translate "CWD %s".
10008
10009         * wget.h (GCC_FORMAT_ATTR): Renamed from FORMAT_ATTR.
10010
10011 1998-03-07  Hrvoje Niksic  <hniksic@srce.hr>
10012
10013         * ftp-opie.c (btoe): Use memcpy() instead of strncat().
10014
10015         * log.c (logputs): New function.
10016         (logvprintf): Renamed from vlogmsg; use logputs().
10017
10018         * retr.c (show_progress): Print `[100%]' when the retrieval is
10019         finished.
10020
10021         * init.c (run_wgetrc): Use FILE, not PATH.
10022         (wgetrc_file_name): Ditto.
10023
10024 1998-03-07  Tim Adam  <tma@osa.com.au>
10025
10026         * recur.c (parse_robots): Correctly reset `entries' on empty
10027         disallow.
10028
10029 1998-03-07  Hrvoje Niksic  <hniksic@srce.hr>
10030
10031         * init.c (cmd_spec_debug): Use cmd_boolean().
10032
10033 1998-02-23  Hrvoje Niksic  <hniksic@srce.hr>
10034
10035         * http.c (gethttp): Create proxy-authorization correctly.
10036
10037 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
10038
10039         * md5.c: Ditto.
10040
10041         * getopt.c: Use ANSI function definitions.
10042
10043         * ftp-opie.c: New file.
10044
10045         * options.h: Don't redefine EXTERN.
10046
10047         * init.c: Sort it correctly.
10048
10049 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
10050
10051         * version.c: Wget 1.5-b9 is released.
10052
10053 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
10054
10055         * recur.c (recursive_retrieve): Reset `first_time'.
10056
10057         * ftp.c (getftp): Added `default' clause to switches of uerr_t.
10058
10059         * rbuf.c (rbuf_peek): Simplified.
10060         (rbuf_flush): Use MINVAL.
10061
10062         * wget.h (MINVAL): Moved from url.h.
10063
10064         * rbuf.h (RBUF_FD): New macro.
10065
10066         * url.c (add_url): Add to the head of the list.
10067
10068         * ftp.c (ftp_retrieve_list): Set the permissions to downloaded
10069         file.
10070         (getftp): Set the default permissions to 0600.
10071
10072 1998-02-21  Hrvoje Niksic  <hniksic@srce.hr>
10073
10074         * url.c (get_urls_html): Ditto.
10075         (convert_links): Ditto.
10076
10077         * recur.c (parse_robots): Ditto.
10078
10079         * html.c (ftp_index): Ditto.
10080
10081         * ftp-ls.c (ftp_parse_unix_ls): Open file as binary.
10082
10083         * init.c (defaults): Initialize `opt' to zero via memset.
10084
10085         * http.c (digest_authentication_encode): goto considered harmful.
10086
10087 1998-02-19  Hrvoje Niksic  <hniksic@srce.hr>
10088
10089         * ftp.c (delelement): Simplify and fix leak.
10090
10091 1998-02-18  Hrvoje Niksic  <hniksic@srce.hr>
10092
10093         * http.c (dump_hash): Use HEXD2ASC instead of home-grown stuff.
10094
10095         * url.h (HEXD2ASC): Removed warning.
10096
10097         * init.c (comind): Use binary search.
10098         (commands): Reorganized.
10099         (setval): Ditto.
10100         (cmd_boolean): New function.
10101         (cmd_number): Ditto.
10102         (cmd_number_inf): Ditto.
10103         (cmd_string): Ditto.
10104         (cmd_vector): Ditto.
10105         (cmd_directory_vector): Ditto.
10106         (cmd_bytes): Ditto.
10107         (cmd_time): Ditto.
10108         (cmd_spec_debug): Ditto.
10109         (cmd_spec_dirmode): Ditto.
10110         (cmd_spec_dirstruct): Ditto.
10111         (cmd_spec_dotstyle): Ditto.
10112         (cmd_spec_header): Ditto.
10113         (cmd_spec_htmlify): Ditto.
10114         (cmd_spec_mirror): Ditto.
10115         (cmd_spec_outputdocument): Ditto.
10116         (cmd_spec_recursive): Ditto.
10117         (settime): Merged with cmd_time().
10118         (setbytes): Merged with cmd_bytes().
10119         (setonoff): Merged with cmd_boolean().
10120         (onoff): Ditto.
10121
10122 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
10123
10124         * Makefile.in (distclean): Remove `config.h'.
10125
10126 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
10127
10128         * version.c: Wget 1.5-b8 is released.
10129
10130 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
10131
10132         * http.c (digest_authentication_encode): New function.
10133         (create_authorization_line): Use it.
10134         (dump_hash): New function.
10135         (digest_authentication_encode): Use it.
10136
10137         * fnmatch.c: Renamed from `mtch.c'.
10138
10139 1998-02-15  Karl Eichwalder  <ke@suse.de>
10140
10141         * main.c (main): Tag "Written by..." string as translatable.
10142
10143 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
10144
10145         * wget.h (FREE_MAYBE): New macro.
10146
10147         * http.c (create_authorization_line): Don't use ANSI C string
10148         concatenation feature.
10149         (basic_authentication_encode): Use alloca() for temporary
10150         variables.
10151
10152         * recur.h: Ditto.
10153
10154         * http.c: Ditto.
10155
10156         * headers.h: Ditto.
10157
10158         * ftp-basic.c: Protect declaration against non-ANSI compiler.
10159
10160         * http.c (create_authorization_line): Cast `unsigned char *' to
10161         `char *' for sprintf, to shut up the noisy Digital Unix cc.
10162
10163 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
10164
10165         * version.c: Wget 1.5-b7 is released.
10166
10167 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
10168
10169         * cmpt.c (strstr): Synched with glibc-2.0.6.
10170
10171         * ftp-basic.c (calculate_skey_response): Ditto.
10172         (calculate_skey_response): Use alloca().
10173
10174         * http.c (create_authorization_line): Work with FSF's version of
10175         md5.c.
10176
10177         * md5.c: New file, from GNU libc.
10178
10179 1998-02-14  Hrvoje Niksic  <hniksic@srce.hr>
10180
10181         * url.h (URL_CLEANSE): Name the temporary variable more carefully.
10182
10183 1998-02-13  Hrvoje Niksic  <hniksic@srce.hr>
10184
10185         * http.c (basic_authentication_encode): New function, instead of
10186         the macro.
10187
10188 1998-02-13  Junio Hamano  <junio@twinsun.com>
10189
10190         * http.c: Add HTTP-DA support.
10191         * ftp-basic.c: Add Opie/S-key support.
10192         * config.h.in, Makefile.in: Add HTTP-DA and Opie/S-key support.
10193         * md5.c, md5.h: New files.
10194
10195 1998-02-13  Hrvoje Niksic  <hniksic@srce.hr>
10196
10197         * http.c (http_process_range): Renamed from hprocrange().
10198         (http_process_range): Parse the whole header.
10199
10200         * headers.c: New file.
10201         (header_process): New function.
10202         (header_get): Renamed from fetch_next_header.
10203
10204         * all: Include utils.h only where necessary.
10205
10206         * wget.h: Declare xmalloc(), xrealloc() and xstrdup() here.
10207
10208         * wget.h: Add provisions for dmalloc.
10209
10210 1998-02-12  Hrvoje Niksic  <hniksic@srce.hr>
10211
10212         * version.c: Wget 1.5-b6 is released.
10213
10214 1998-02-12  Hrvoje Niksic  <hniksic@srce.hr>
10215
10216         * ftp.c (ftp_loop): Determine `filename' more precisely.
10217
10218         * init.c (setval): Don't set `opt.quiet' if output-document is
10219         `-'.
10220
10221         * log.c (log_init): Print to STDERR instead of STDOUT.
10222         (vlogmsg): Use STDERR by default.
10223         (logflush): Ditto.
10224
10225 1998-02-11  Simon Josefsson  <jas@pdc.kth.se>
10226
10227         * host.c: Use addr_in again.
10228
10229 1998-02-08  Karl Eichwalder  <karl@suse.de>
10230
10231         * http.c (gethttp): Fixed typo.
10232
10233 1998-02-08  Hrvoje Niksic  <hniksic@srce.hr>
10234
10235         * version.c: Wget 1.5-b5 is released.
10236
10237 1998-02-08  Hrvoje Niksic  <hniksic@srce.hr>
10238
10239         * retr.c (show_progress): Use it.
10240
10241         * log.c (logflush): New function.
10242
10243         * wget.h: Utilize __attribute__ if on gcc.
10244
10245 1998-02-07  Hrvoje Niksic  <hniksic@srce.hr>
10246
10247         * http.c (base64_encode_line): New argument LENGTH.
10248         (BASIC_AUTHENTICATION_ENCODE): Use it.
10249         (BASIC_AUTHENTICATION_ENCODE): Take length of HEADER into account.
10250
10251         * main.c (main): Fixed fprintf() format mismatch.
10252
10253 1998-02-06  Hrvoje Niksic  <hniksic@srce.hr>
10254
10255         * version.c: Wget 1.5-b4 is released.
10256
10257 1998-02-03  Simon Josefsson  <jas@pdc.kth.se>
10258
10259         * host.c: use sockaddr_in instead of addr_in.
10260
10261 1998-02-04  Hrvoje Niksic  <hniksic@srce.hr>
10262
10263         * init.c (cleanup): Use it.
10264
10265         * recur.c (recursive_cleanup): New function.
10266
10267         * retr.c (retrieve_from_file): Ditto.
10268
10269         * main.c (main): Use it.
10270
10271         * recur.c (recursive_reset): New function.
10272
10273         * retr.c (retrieve_from_file): Ditto.
10274
10275         * main.c (main): Simplify call to recursive_retrieve().
10276
10277         * recur.c (recursive_retrieve): Removed FLAGS argument.
10278
10279         * http.c (gethttp): Changed call to iwrite().
10280
10281 1998-02-03  Hrvoje Niksic  <hniksic@srce.hr>
10282
10283         * url.c (get_urls_html): Ditto.
10284         (free_urlpos): Ditto.
10285         (mkstruct): Ditto.
10286         (construct): Ditto.
10287
10288         * retr.c (retrieve_url): Move declaration of local variables to
10289         smaller scope.
10290
10291         * url.c (urlproto): Use it.
10292         (parseurl): Ditto.
10293         (str_url): Ditto.
10294         (get_urls_html): Ditto.
10295
10296         * utils.h (ARRAY_SIZE): New macro.
10297
10298         * url.c (proto): Moved from url.h.
10299
10300         * url.h (URL_CLEANSE): Reformatted.
10301         (USE_PROXY_P): Renamed from USE_PROXY.
10302
10303         * ftp-basic.c: Adjust to the new interface of iwrite().
10304
10305         * ftp-basic.c (ftp_port): Use alloca().
10306
10307 1998-02-03  Hrvoje Niksic  <hniksic@srce.hr>
10308
10309         * version.c: Wget 1.5-b3 is released.
10310
10311         * host.c (ftp_getaddress): Don't print to stderr directly.
10312
10313         * init.c (setbytes): Support `g' for gigabytes.
10314         (cmdtype): New specification CTIME.
10315         (setval): Use it with settime().
10316         (commands): Use it for WAIT and TIMEOUT.
10317
10318 1998-02-02  Hrvoje Niksic  <hniksic@srce.hr>
10319
10320         * http.c (BASIC_AUTHENTICATION_ENCODE): New macro.
10321         (gethttp): Use it.
10322
10323         * utils.c (unique_name_1): Moved from url.c.
10324         (unique_name): Ditto.
10325
10326         * url.c (url_filename): Ditto.
10327
10328         * log.c (redirect_output): Changed call to unique_name().
10329
10330         * url.c (unique_name_1): Renamed from unique_name().
10331         (unique_name): Changed interface.
10332
10333         * init.c (enum cmdid): Moved from init.h.
10334         (cmdtype): Ditto.
10335         (struct cmd): Ditto.
10336
10337         * main.c (main): Use it.
10338         (main): Moved `--backups' to not have a short option.
10339
10340         * options.h (struct options): New member BACKGROUND.
10341
10342         * main.c (print_help): Rearranged.
10343         (main): New long options for -n* short options: --no-directories,
10344         --no-host-directories, --non-verbose, --no-host-lookup and
10345         --dont-remove-listing.
10346
10347 1998-02-01  Hrvoje Niksic  <hniksic@srce.hr>
10348
10349         * main.c (main): Use log_close().
10350
10351         * log.c: New variable LOGFP.
10352         (vlogmsg): Use it.
10353         (redirect_output): Don't open /dev/null; set LOGFP to stdin
10354         instead.
10355         (log_close): New function.
10356
10357         * options.h (struct options): Removed LFILE.
10358
10359         * log.c (log_enable): Removed.
10360
10361         * main.c (main): Use it.
10362
10363         * log.c (log_init): New function.
10364
10365         * url.c (get_urls_html): Removed needless assignment to BASE.
10366
10367         * host.c (add_hlist): Don't set CMP needlessly.
10368
10369         * utils.c (match_backwards): Ditto.
10370         (in_acclist): Ditto.
10371
10372         * url.c (findurl): Ditto.
10373
10374         * netrc.c (parse_netrc): Ditto.
10375
10376         * log.c (log_dump): Ditto.
10377
10378         * html.c (html_quote_string): Ditto.
10379
10380         * ftp-basic.c (ftp_request): Made static.
10381
10382         * connect.c: Made global variables static.
10383
10384         * url.c (construct): Ditto.
10385
10386         * init.c (init_path): Avoid assignment inside `if'-condition.
10387
10388         * ftp.c: Don't include in.h or winsock.h.
10389
10390         * ftp.c (ftp_loop): Use SZ.
10391
10392         * connect.c (bindport): Cast &addrlen to int *.
10393         (conaddr): Ditto.
10394
10395         * init.c (initialize): Don't use SYSTEM_WGETRC unconditionally.
10396
10397 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
10398
10399         * ftp.c (getftp): Initialize opt.ftp_pass here.
10400         (ftp_retrieve_dirs): Use alloca().
10401
10402         * init.c (defaults): Don't initialize opt.ftp_pass.
10403
10404         * sysdep.h (S_ISLNK): Declare for OS/2; ditto for lstat.
10405         From Ivan F. Martinez <ivanfm@ecodigit.com.br>.
10406
10407 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
10408
10409         * recur.c (parse_robots): Check for comments more correctly.
10410
10411         * host.c (ftp_getaddress): Use STRDUP_ALLOCA.
10412         (ftp_getaddress): Add diagnostics when reverse-lookup yields only
10413         hostname.
10414
10415 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
10416
10417         * version.c: Wget 1.5-b2 is released.
10418
10419         * netrc.c (NETRC_FILE_NAME): Moved from netrc.h.
10420
10421         * utils.c (proclist): Pass FNM_PATHNAME to fnmatch().
10422
10423         * ftp-basic.c (ftp_pasv): Avoid unnecessary casting to unsigned
10424         char.
10425
10426         * log.c: Don't attempt to hide arguments from ansi2knr.
10427
10428         * cmpt.c: Synched strptime() and mktime() with glibc-2.0.6.
10429
10430         * ansi2knr.c: Use a later version, from fileutils-3.16l alpha.
10431
10432         * ftp.c (getftp): Ditto.
10433
10434         * http.c (gethttp): Use it.
10435
10436         * retr.c (get_contents): New argument EXPECTED; pass it to
10437         show_progress().
10438         (show_progress): New argument EXPECTED; use it to display
10439         percentages.
10440
10441         * init.c (setval): Ditto.
10442
10443         * http.c (gethttp): Ditto.
10444         (http_loop): Ditto.
10445
10446         * ftp.c (getftp): Ditto.
10447         (ftp_loop_internal): Ditto.
10448
10449         * ftp-ls.c (ftp_parse_unix_ls): Use abort() instead of assert(0).
10450
10451         * sysdep.h (CLOSE): Simplify; use DEBUGP.
10452
10453         * netrc.c (search_netrc): Use alloca().
10454
10455         * init.c (defaults): Initialize no_flush.
10456
10457         * log.c (vlogmsg): Don't flush if no_flush.
10458
10459         * options.h (struct options): New variable no_flush.
10460
10461         * main.c (main): Don't play games with buffering.
10462
10463         * log.c (vlogmsg): Flush the output after every message.
10464
10465 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
10466
10467         * init.c (parse_line): Ditto.
10468
10469         * url.c (get_urls_html): Ditto.
10470
10471         * main.c (main): Don't cast to unsigned char.
10472
10473         * init.c (run_wgetrc): Don't cast to unsigned char.
10474         (parse_line): Accept char instead of unsigned char.
10475
10476         * html.c (htmlfindurl): Use char instead of unsigned char.
10477
10478         * all: Use them.
10479
10480         * sysdep.h: Add wrappers to ctype macros to make them
10481         eight-bit-clean:
10482
10483 1998-01-30  Hrvoje Niksic  <hniksic@srce.hr>
10484
10485         * html.c (htmlfindurl): Download <img lowsrc=...>
10486
10487         * main.c (main): Ignore SIGPIPE.
10488
10489         * connect.c (select_fd): New argument WRITEP.
10490         (iwrite): Call select_fd().
10491
10492 1997-02-27  Fila Kolodny <fila@ibi.com>
10493
10494         * ftp.c (ftp_retrieve_list): If retrieving symlink and the proper
10495         one already exists, just skip it.
10496
10497 1998-01-30  Hrvoje Niksic  <hniksic@srce.hr>
10498
10499         * http.c (gethttp): Cosmetic changes.
10500
10501         * http.c (check_end): Allow `+D...' instead of `GMT'.
10502         From Fabrizio Pollastri <pollastri@cstv.to.cnr.it>.
10503
10504         * url.c (process_ftp_type): New function.
10505         (parseurl): Use it.
10506
10507         * connect.c (iwrite): Allow writing in a few chunks.
10508         (bindport): Made SRV static, so addr can point to it.
10509         (select_fd): Removed HPUX kludge.
10510
10511         * host.c (free_hlist): Incorporated into clean_hosts().
10512
10513 1998-01-29  Hrvoje Niksic  <hniksic@srce.hr>
10514
10515         * host.c (hlist): Made static.
10516         (search_address): Cosmetic change.
10517
10518 1998-01-29  Hrvoje Niksic  <hniksic@srce.hr>
10519
10520         * version.c: Wget v1.5-b1 is released.
10521
10522         * http.c (hgetlen): Use sizeof() to get the header length.
10523         (hgetrange): Ditto.
10524         (hgettype): Ditto.
10525         (hgetlocation): Ditto.
10526         (hgetmodified): Ditto.
10527         (haccepts_none): Ditto.
10528
10529         * main.c (main): Updated `--version' and `--help' output, as per
10530         Francois Pinard's suggestions.
10531
10532         * main.c: Include locale.h; call setlocale(), bindtextdomain() and
10533         textdomain().
10534
10535         * config.h.in: Define stubs for I18N3.
10536
10537         * wget.h: Include libintl.h.
10538
10539 1998-01-28  Hrvoje Niksic  <hniksic@srce.hr>
10540
10541         * url.c (mkstruct): Check for opt.cut_dirs.
10542         (mkstruct): alloca()-te more, xmalloc() less.
10543
10544         * utils.c (load_file): Check for ferror().
10545
10546         * url.c (get_urls_file): Close only the files we opened.
10547         (get_urls_html): Ditto.
10548         (count_slashes): New function.
10549
10550         * http.h: Removed.
10551
10552         * http.c (gethttp): Respect username and password provided by
10553         proxy URL.
10554         (base64_encode_line): Write into an existing buffer instead of
10555         malloc-ing a new one.
10556         (struct http_stat): Moved from http.h
10557
10558         * retr.c (retrieve_url): Free SUF.
10559
10560         * all: Removed lots of unnecessary .h dependencies.
10561
10562         * html.c (global_state): Made static.
10563
10564         * utils.h (ALLOCA_ARRAY): New macro.
10565
10566         * main.c (main): New option `--cut-dirs'.
10567
10568         * url.c (construct): Use alloca() for T.
10569
10570         * utils.c (mkdirhier): Use STRDUP_ALLOCA.
10571
10572         * host.c (_host_t): Moved from host.h.
10573         (struct host): Renamed from _host_t.
10574         (store_hostaddress): Use STRDUP_ALLOCA for INET_S.
10575         (realhost): Ditto.
10576
10577         * host.h: Don't include url.h.
10578
10579         * ftp.c (LIST_FILENAME): Moved from ftp.h.
10580
10581         * init.c (DEFAULT_FTP_ACCT): Moved from ftp.h.
10582
10583         * main.c (main): Enable log if the output goes to a TTY.
10584
10585         * connect.h: Removed unused constant `BACKLOG'.
10586
10587         * config.h.in: Check for isatty().
10588
10589         * Makefile.in (LINK): Use CFLAGS when linking.
10590
10591 1998-01-27  Hrvoje Niksic  <hniksic@srce.hr>
10592
10593         * mswindows.c (ws_hangup): Use redirect_output().
10594
10595         * main.c (redirect_output_signal): New function; use
10596         redirect_output().
10597
10598         * log.c (redirect_output): New function, based on hangup(), which
10599         is deleted.
10600
10601         * log.c (vlogmsg): New function.
10602
10603         * wget.h (DEBUGP): Use debug_logmsg().
10604
10605         * main.c (hangup): Use it.
10606
10607         * log.c (log_dump): New function.
10608
10609         * utils.h (DO_REALLOC): Use `long' for various sizes.
10610
10611         * http.c (hskip_lws): Use `while', for clarity.
10612         (HTTP_DYNAMIC_LINE_BUFFER): New constant.
10613         (fetch_next_header): Use it instead of DYNAMIC_LINE_BUFFER.
10614
10615         * ftp-basic.c (FTP_DYNAMIC_LINE_BUFFER): New constant.
10616         (ftp_response): Use it instead of DYNAMIC_LINE_BUFFER.
10617
10618         * utils.c (DYNAMIC_LINE_BUFFER): Moved from utils.c.
10619         (LEGIBLE_SEPARATOR): Ditto.
10620         (FILE_BUFFER_SIZE): Ditto.
10621
10622         * retr.c (BUFFER_SIZE): Moved from retr.h.
10623
10624         * log.c: New file.
10625         (logmsg): Moved from utils.c.
10626         (debug_logmsg): New function.
10627
10628         * mswindows.h: Include it here.
10629
10630         * init.c: Ditto.
10631
10632         * utils.c: Don't include <windows.h>.
10633
10634 1998-01-25  Hrvoje Niksic  <hniksic@srce.hr>
10635
10636         * host.c (ftp_getaddress): Ditto.
10637
10638         * main.c (main): Use it.
10639
10640         * utils.h (STRDUP_ALLOCA): New macro.
10641
10642         * init.c: Prepend `wget: ' to error messages printed on stderr.
10643
10644         * utils.c (mkdirhier): Renamed from mymkdir.
10645         (touch): Renamed from my_touch.
10646         (pwd_cuserid): Renamed from my_cuserid().
10647
10648 1998-01-24  Andy Eskilsson  <andy.eskilsson@telelogic.se>
10649
10650         * utils.c (accdir): Process wildcards.
10651         (proclist): New function.
10652         (accdir): Use it to avoid code repetition.
10653
10654 1998-01-24  Hrvoje Niksic  <hniksic@srce.hr>
10655
10656         * recur.c (parse_robots): Respect opt.useragent; use alloca().
10657
10658         * http.c (gethttp): Construct useragent accordingly.
10659
10660         * version.c: Changed version string to numbers-only.
10661
10662         * main.c (print_help): List all the options.
10663
10664         * mswindows.c (windows_main_junk): Initialize argv0 here.
10665
10666 1998-01-24  Karl Heuer  <kwzh@gnu.org>
10667
10668         * netrc.c (search_netrc): Initialize `l' only after processing
10669         netrc.
10670
10671         * main.c (main): Don't trap SIGHUP if it's being ignored.
10672
10673 1998-01-24  Hrvoje Niksic  <hniksic@srce.hr>
10674
10675         * all: Use logmsg().
10676
10677         * utils.c (time_str): Moved from retr.c.
10678         (logmsg): New function.
10679         (logmsg_noflush): Ditto.
10680
10681         * rbuf.c: New file, moved buf_* functions here.
10682
10683         * ftp.c (ftp_expected_bytes): Moved from ftp-basic.c.
10684
10685         * ftp-basic.c (ftp_rest): Use prnum().
10686
10687         * ftp-basic.c: Ditto.
10688
10689         * ftp.c: Use the new reading functions and macros.
10690
10691         * retr.c (buf_initialize): New function.
10692         (buf_initialized_p): Ditto.
10693         (buf_uninitialize): Ditto.
10694         (buf_fd): Ditto.
10695
10696         * http.c (fetch_next_header): Use the BUF_READCHAR macro for
10697         efficiency.
10698         (gethttp): Use alloca() where appropriate.
10699
10700         * retr.c (buf_readchar): Use it.
10701         (buf_peek): Use rstreams.
10702
10703         * retr.h (BUF_READCHAR): New macro.
10704
10705         * init.c (home_dir): Rewritten for clarity.
10706         (init_path): Ditto.
10707
10708         * mswindows.c (ws_backgnd): Made static.
10709         (read_registry): Ditto.
10710         (ws_cleanup): Ditto.
10711         (ws_handler): Ditto.
10712
10713 1998-01-23  Hrvoje Niksic  <hniksic@srce.hr>
10714
10715         * alloca.c: New file.
10716
10717         * Makefile.in (ALLOCA): Define.
10718
10719         * mswindows.c (ws_help): Constify.
10720         (ws_help): Use alloca.
10721
10722         * mswindows.c: Reformat.
10723
10724         * all: Added _(...) annotations for I18N snarfing and translation.
10725
10726         * host.c (ftp_getaddress): Nuke SYSINFO.
10727         (ftp_getaddress): Don't use getdomainname().
10728         (ftp_getaddress): Use uname(), where available.
10729
10730         * http.c (gethttp): Protect a stray fprintf().
10731
10732         * init.c (settime): New function.
10733         (setval): Treat WAIT specially, allowing suffixes like `m' for
10734         minutes, etc.
10735
10736 1998-01-21  Hrvoje Niksic  <hniksic@srce.hr>
10737
10738         * url.c (get_urls_html): Use alloca() for TEMP.
10739
10740 1998-01-21  Jordan Mendelson  <jordy@wserv.com>
10741
10742         * url.c (rotate_backups): New function.
10743
10744         * http.c (gethttp): Ditto.
10745
10746         * ftp.c (getftp): Rotate backups.
10747
10748 1997-12-18  Hrvoje Niksic  <hniksic@srce.hr>
10749
10750         * all: Renamed nmalloc(), nrealloc() and nstrdup() to xmalloc(),
10751         xrealloc() and xstrdup().  Use the new functions.
10752
10753         * url.c (decode_string): Made static.
10754         (has_proto): Ditto.
10755         (parse_dir): Ditto.
10756         (parse_uname): Ditto.
10757         (mkstruct): Ditto.
10758         (construct): Ditto.
10759         (construct_relative): Ditto.
10760
10761         * retr.c (show_progress): Made static.
10762
10763         * recur.c (robots_url): Made static.
10764         (retrieve_robots): Ditto.
10765         (parse_robots): Ditto.
10766         (robots_match): Ditto.
10767
10768         * main.h: Removed.
10769
10770         * main.c (printhelp): Made static.
10771         (hangup): Ditto.
10772
10773         * init.c (comind): Made static.
10774         (defaults): Ditto.
10775         (init_path): Ditto.
10776         (run_wgetrc): Ditto.
10777         (onoff): Ditto.
10778         (setonoff): Ditto.
10779         (setnum): Ditto.
10780         (myatoi): Ditto.
10781         (getperms): Ditto.
10782         (setbytes): Ditto.
10783
10784         * http.c (fetch_next_header): Made static.
10785         (hparsestatline): Ditto.
10786         (hskip_lws): Ditto.
10787         (hgetlen): Ditto.
10788         (hgetrange): Ditto.
10789         (hgettype): Ditto.
10790         (hgetlocation): Ditto.
10791         (hgetmodified): Ditto.
10792         (haccepts_none): Ditto.
10793         (gethttp): Ditto.
10794         (base64_encode_line): Ditto.
10795         (mktime_from_utc): Ditto.
10796         (http_atotm): Ditto.
10797
10798         * html.c (idmatch): Made static.
10799
10800         * host.c (search_host): Made static.
10801         (search_address): Ditto.
10802         (free_hlist): Ditto.
10803
10804         * ftp.c (getftp): Made static.
10805         (ftp_loop_internal): Ditto.
10806         (ftp_get_listing): Ditto.
10807         (ftp_retrieve_list): Ditto.
10808         (ftp_retrieve_dirs): Ditto.
10809         (ftp_retrieve_glob): Ditto.
10810         (freefileinfo): Ditto.
10811         (delelement): Ditto.
10812
10813         * ftp-ls.c (symperms): Made static.
10814         (ftp_parse_unix_ls): Ditto.
10815
10816         * connect.c (select_fd): Made static.
10817
10818         * utils.c (xmalloc): Renamed from nmalloc.
10819         (xrealloc): Renamed from nrealloc.
10820         (xstrdup): Renamed from nstrdup.
10821
10822         * getopt.c (exchange): Use alloca.
10823
10824         * mswindows.c (mycuserid): Use strncpy.
10825
10826         * New files mswindows.c, mswindows.h, sysdep.h.  winjunk.c,
10827         systhings.h, windecl.h and winjunk.h removed.
10828
10829         * mswindows.c (sleep): New function.
10830
10831         * utils.c: Include <windows.h> under Windows.
10832
10833 1997-06-12  Darko Budor  <dbudor@zesoi.fer.hr>
10834
10835         * url.h (URL_UNSAFE): Change default under Windows.
10836
10837         * retr.c (retrieve_from_file): Respect opt.delete_after.
10838
10839         * main.c (main): Call ws_help on Windows.
10840
10841         * winjunk.c (windows_main_junk): New function.
10842
10843         * main.c (main): Junk-process argv[0].
10844
10845         * http.c (mktime_from_utc): Return -1 if mktime failed.
10846
10847         * http.c (http_loop): Ditto.
10848
10849         * ftp.c (ftp_loop_internal): Change title on Windows when using a
10850         new URL.
10851
10852         * winjunk.c (getdomainname): Lots of functions.
10853
10854 1997-06-12  Hrvoje Niksic  <hniksic@srce.hr>
10855
10856         * cmpt.c (strptime_internal): Handle years more correctly for
10857         `%y'.
10858
10859 1997-06-09  Mike Thomas <mthomas@reality.ctron.com>
10860
10861         * http.c (gethttp): Allocate enough space for
10862         `Proxy-Authorization' header.
10863
10864 1997-05-10  Hrvoje Niksic  <hniksic@srce.hr>
10865
10866         * version.c: Wget/1.4.5 is released.
10867
10868 1997-05-10  Hrvoje Niksic  <hniksic@srce.hr>
10869
10870         * retr.c (get_contents): Check return value of fwrite more
10871         carefully.
10872
10873 1997-03-30  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
10874
10875         * cmpt.c (strptime_internal) [case 'Y']: Always subtract 1900 from
10876         year, regardless of century.
10877
10878 1997-03-30  Hrvoje Niksic  <hniksic@srce.hr>
10879
10880         * utils.c (isfile): Use `lstat' instead of `stat'.
10881
10882 1997-03-29  Hrvoje Niksic  <hniksic@srce.hr>
10883
10884         * utils.c (numdigit): Use explicit test.
10885
10886 1997-03-21  Hrvoje Niksic  <hniksic@srce.hr>
10887
10888         * http.c (http_loop): Always use `url_filename' to get u->local.
10889
10890 1997-03-20  Hrvoje Niksic  <hniksic@srce.hr>
10891
10892         * url.c: Recognize https.
10893
10894 1997-03-13  Hrvoje Niksic  <hniksic@srce.hr>
10895
10896         * recur.c (recursive_retrieve): Lowercase just the host name.
10897
10898 1997-03-09  Hrvoje Niksic  <hniksic@srce.hr>
10899
10900         * url.c (get_urls_file): Use the correct test.
10901         (get_urls_html): Ditto.
10902
10903 1997-03-07  Hrvoje Niksic  <hniksic@srce.hr>
10904
10905         * connect.c: Reverted addrlen to int.
10906
10907         * init.c (parse_line): Check for -1 instead of NONE.
10908
10909         * version.c: Changed version to 1.4.5.
10910
10911 1997-02-17  Hrvoje Niksic  <hniksic@srce.hr>
10912
10913         * init.c: New option netrc.
10914         (initialize): Don't parse .netrc.
10915
10916         * cmpt.c (recursive): Return rp.
10917         (strptime_internal): Match the long strings first, the abbreviated
10918         second.
10919
10920 1997-02-16  Hrvoje Niksic  <hniksic@srce.hr>
10921
10922         * http.c (check_end): New function.
10923         (http_atotm): Use it.
10924
10925 1997-02-13  gilles Cedoc  <gilles@cedocar.fr>
10926
10927         * http.c (gethttp): Use them.
10928
10929         * init.c: New options proxy_user and proxy_passwd.
10930
10931 1997-02-14  Hrvoje Niksic  <hniksic@srce.hr>
10932
10933         * ftp.c (ftp_retrieve_list): Create links even if not relative.
10934
10935 1997-02-10  Hrvoje Niksic  <hniksic@srce.hr>
10936
10937         * recur.c (recursive_retrieve): Lowercase the host name, if the
10938         URL is not "optimized".
10939
10940         * host.c (realhost): Return l->hostname, even if it matches with
10941         host.
10942
10943 1997-02-10  Marin Purgar  <pmc@asgard.hr>
10944
10945         * connect.c: Make addrlen size_t instead of int.
10946         (conaddr): Ditto.
10947
10948 1997-02-09  Gregor Hoffleit  <flight@mathi.uni-heidelberg.DE>
10949
10950         * systhings.h: Define S_ISLNK on NeXT too.
10951
10952 1997-02-09  Hrvoje Niksic  <hniksic@srce.hr>
10953
10954         * version.c: Released 1.4.3.
10955
10956         * url.c: Futher update to list of protostrings.
10957         (skip_proto): Skip `//' correctly for FTP and HTTP.
10958
10959         * url.c (get_urls_html): Handle bogus `http:' things a little
10960         different.
10961
10962         * main.c (main): Removed `follow-ftp' from `f'.
10963         (main): Dumped the `prefix-files' and `file-prefix' options and
10964         features; old and bogus.
10965         (main): Exit on failed setval() in `-e'.
10966
10967         * http.c (fetch_next_header): Use it to detect header continuation
10968         correctly.
10969
10970         * retr.c (buf_peek): New function.
10971
10972 1997-02-08  Hrvoje Niksic  <hniksic@srce.hr>
10973
10974         * wget.h: Include time.h and stuff.
10975
10976 1997-02-08  Roger Beeman  <beeman@cisco.com>
10977
10978         * ftp.c: Include <time.h>
10979
10980 1997-02-07  Hrvoje Niksic  <hniksic@srce.hr>
10981
10982         * url.c (findurl): Would read over buffer limits.
10983
10984 1997-02-06  Hrvoje Niksic  <hniksic@srce.hr>
10985
10986         * ftp-ls.c (ftp_parse_unix_ls): Allow spaces in file names.
10987
10988 1997-02-05  Hrvoje Niksic  <hniksic@srce.hr>
10989
10990         * http.c (http_atotm): Initialize tm.is_dst.
10991
10992 1997-02-02  Hrvoje Niksic  <hniksic@srce.hr>
10993
10994         * http.c (gethttp): Don't print the number of retrieved headers.
10995
10996         * main.c (main): New option `--no-clobber', alias for `-nc'.
10997
10998         * url.c: Recognize `https://'.
10999
11000 1997-02-01  Hrvoje Niksic  <hniksic@srce.hr>
11001
11002         * host.c (herrmsg): Don't use h_errno.
11003
11004 1997-01-30  Hrvoje Niksic  <hniksic@srce.hr>
11005
11006         * host.c (accept_domain): Use it.
11007
11008         * main.c (main): New option `--exclude-domains'.
11009
11010         * retr.c (retrieve_url): Use it.
11011         (retrieve_url): Bail out when an URL is redirecting to itself.
11012
11013         * url.c (url_equal): New function.
11014
11015 1997-01-29  Hrvoje Niksic  <hniksic@srce.hr>
11016
11017         * connect.c: Include arpa/inet.h instead of arpa/nameser.h.
11018
11019         * http.c (mk_utc_time): New function.
11020         (http_atotm): Use it; handle time zones correctly.
11021
11022 1997-01-28  Hrvoje Niksic  <hniksic@srce.hr>
11023
11024         * http.c: Ditto.
11025
11026         * ftp-basic.c: Use it instead of WRITE.
11027
11028         * connect.c (iwrite): New function.
11029
11030 1997-01-27  Hrvoje Niksic  <hniksic@srce.hr>
11031
11032         * cmpt.c (mktime): New function.
11033
11034         * netrc.c: Include <sys/types.h>.
11035
11036         * main.c (main): Wouldn't recognize --spider.
11037
11038         * retr.c (rate): Use `B', `KB' and `MB'.
11039         (reset_timer,elapsed_time): Moved from utils.c.
11040
11041         * ftp.c (ftp_retrieve_list): Ditto.
11042
11043         * http.c (http_loop): Don't touch the file if opt.dfp.
11044
11045 1997-01-24  Hrvoje Niksic  <hniksic@srce.hr>
11046
11047         * cmpt.c: New file.
11048
11049         * ftp.c (ftp_retrieve_glob): New argument semantics.
11050         (ftp_retrieve_dirs): Use it.
11051         (ftp_loop): Ditto.
11052
11053         * html.c (htmlfindurl): Recognize `'' as the quote char.
11054
11055 1997-01-23  Hrvoje Niksic  <hniksic@srce.hr>
11056
11057         * ftp.c (ftp_loop_internal): Use it.
11058
11059         * utils.c (remove_link): New function.
11060
11061 1997-01-22  Hrvoje Niksic  <hniksic@srce.hr>
11062
11063         * retr.c (retrieve_url): Require STRICT redirection URL.
11064
11065         * url.c (parseurl): New argument STRICT.
11066
11067         * http.c (hparsestatline): Be a little-bit less strict about
11068         status line format.
11069
11070 1997-01-21  Hrvoje Niksic  <hniksic@srce.hr>
11071
11072         * http.c (gethttp): Use it.
11073
11074         * main.c (main): Don't use '<digit>' as options.
11075
11076         * init.c: New option ignore_length.
11077
11078         * http.c (gethttp): Ditto.
11079         (http_loop): Check for redirection without Location:.
11080         (gethttp): Don't print Length unless RETROKF.
11081
11082         * ftp.c (getftp): Use it.
11083
11084         * url.c (mkalldirs): New function.
11085
11086         * utils.c (mymkdir): Don't check for existing non-directory.
11087
11088         * url.c (mkstruct): Don't create the directory.
11089
11090 1997-01-20  Hrvoje Niksic  <hniksic@srce.hr>
11091
11092         * init.c (setval): Removed NO_RECURSION checks.
11093
11094 1997-01-19  Hrvoje Niksic  <hniksic@srce.hr>
11095
11096         * version.c: "Released" 1.4.3-pre2.
11097
11098         * recur.c (recursive_retrieve): Bypass host checking only if URL
11099         is ftp AND parent URL is not ftp.
11100
11101         * ftp-basic.c (ftp_request): Print out Turtle Power.
11102
11103         * ftp.c (ftp_loop): Call ftp_retrieve_glob with 0 if there's no
11104         wildcard.
11105         (ftp_retrieve_glob): Call ftp_loop_internal even on empty list, if
11106         not glob.
11107
11108         * http.c (gethttp): Be a little bit smarter about status codes.
11109
11110         * recur.c (recursive_retrieve): Always reset opt.recursive when
11111         dealing with FTP.
11112
11113 1997-01-18  Hrvoje Niksic  <hniksic@srce.hr>
11114
11115         * retr.c (retrieve_url): New variable location_changed; use it for
11116         tests instead of mynewloc.
11117         (retrieve_url): Allow heuristic adding of html.
11118
11119         * url.c (url_filename): Don't use the `%' in Windows file names.
11120
11121         * http.c (http_loop): Always time-stamp the local file.
11122
11123         * http.c (http_loop): Ditto.
11124
11125         * ftp.c (ftp_retrieve_list): Use it.
11126
11127         * utils.c (my_touch): New function.
11128
11129         * ftp.c (ftp_retrieve_list): Use #ifdef HAVE_STRUCT_UTIMBUF
11130         instead of #ifndef NeXT.
11131
11132         * utils.c (strptime): New version, by Ulrich Drepper.
11133
11134 1997-01-17  Hrvoje Niksic  <hniksic@srce.hr>
11135
11136         * http.c (haccepts_none): Renamed from `haccepts_bytes'.
11137         (gethttp): If haccepts_none(), disable ACCEPTRANGES.
11138         (http_loop): Would remove ACCEPTRANGES.
11139
11140         * ftp.c (getftp): Call ftp_list with NULL.
11141
11142 1997-01-15  Hrvoje Niksic  <hniksic@srce.hr>
11143
11144         * html.c (ftp_index): Don't print minutes and seconds if we don't
11145         know them; beautify the output.
11146
11147         * ftp.c (getftp): Don't close the socket on FTPNSFOD.
11148
11149 1997-01-14  Hrvoje Niksic  <hniksic@srce.hr>
11150
11151         * utils.c (strptime): New function.
11152         (strptime): Don't use get_alt_number.
11153         (strptime): Don't use locale.
11154         (match_string): Made it a function.
11155
11156 1997-01-12  Hrvoje Niksic  <hniksic@srce.hr>
11157
11158         * http.c (http_atotm): New function.
11159         (http_loop): Use it.
11160
11161         * atotm.c: Removed from the distribution.
11162
11163         * http.c (base64_encode_line): Rewrite.
11164
11165 1997-01-09  Hrvoje Niksic  <hniksic@srce.hr>
11166
11167         * ftp.c (getftp): Use ftp_expected_bytes; print size.
11168
11169         * ftp-basic.c (ftp_response): Use ftp_last_respline.
11170         (ftp_expected_bytes): New function.
11171
11172         * ftp.c (getftp): Print the unauthoritative file length.
11173
11174         * ftp-ls.c: Renamed from ftp-unix.c.
11175         (ftp_parse_ls): Moved from ftp.c.
11176         (ftp_parse_unix_ls): Recognize seconds in time spec.
11177         (ftp_parse_unix_ls): Recognize year-less dates of the previous
11178         year.
11179
11180 1997-01-08  Hrvoje Niksic  <hniksic@srce.hr>
11181
11182         * ftp-basic.c: Don't declare errno if #defined.
11183
11184         * host.c (ftp_getaddress): Check for sysinfo legally.
11185
11186 1997-01-08  Darko Budor  <dbudor@diana.zems.fer.hr>
11187
11188         * connect.c (iread): Use READ.
11189
11190 1996-12-23  Hrvoje Niksic  <hniksic@srce.hr>
11191
11192         * url.c: Recognize finger, rlogin, tn3270, mid and cid as valid
11193         schemes.
11194
11195 1996-12-22  Hrvoje Niksic  <hniksic@srce.hr>
11196
11197         * host.c (ftp_getaddress): Allow `.' in hostname.
11198
11199 1996-12-26  Darko Budor <dbudor@zems.fer.hr>
11200
11201         * wget.h: READ and WRITE macros for use instead of read and write
11202         on sockets, grep READ *.c, grep WRITE *.c
11203
11204         * wsstartup.c: new file - startup for winsock
11205
11206         * wsstartup.h: new file
11207
11208         * win32decl.h: new file - fixup for <errno.h> and winsock trouble
11209
11210         * configure.bat: Configure utility for MSVC
11211
11212         * src/Makefile.ms,config.h.ms: new files for use with MSVC 4.x
11213
11214 1996-12-22  Hrvoje Niksic  <hniksic@srce.hr>
11215
11216         * version.c: Released 1.4.3-pre.
11217
11218         * utils.c (prnum): Accept long.
11219         (legible): Use prnum().
11220
11221         * connect.c (make_connection): Accept port as short.
11222         (bindport): Ditto.
11223
11224         * http.c (gethttp): Use search_netrc.
11225
11226 1996-12-21  Hrvoje Niksic  <hniksic@srce.hr>
11227
11228         * ftp.c (getftp): Use search_netrc.
11229
11230         * netrc.c (free_netrc): New function.
11231
11232         * init.c (home_dir): New function.
11233
11234         * url.c (convert_links): Allow REL2ABS changes.
11235
11236 1996-12-21  Gordon Matzigkeit  <gord@gnu.ai.mit.edu>
11237
11238         * netrc.c: New file.
11239         (parse_netrc, maybe_add_to_list): New functions.
11240
11241 1996-12-17  Hrvoje Niksic  <hniksic@srce.hr>
11242
11243         * retr.c (retrieve_url): Reset opt.recursion before calling
11244         ftp_loop if it is reached through newloc.
11245
11246         * init.c (run_wgetrc): Print the wgetrc path too, when reporting
11247         error; don't use "Syntax error", since we don't know if it is
11248         really a syntax error.
11249
11250 1996-12-16  Hrvoje Niksic  <hniksic@srce.hr>
11251
11252         * utils.c (acceptable): Extract the filename part of the path.
11253
11254         * recur.c (recursive_retrieve): Call acceptable() with the right
11255         argument; would bug out on wildcards.
11256
11257         * init.c (parse_line): Likewise.
11258
11259         * html.c (htmlfindurl): Cast to char * when calling stuff.
11260
11261 1996-12-15  Hrvoje Niksic  <hniksic@srce.hr>
11262
11263         * ftp.c (getftp): Use ftp_pasv.
11264
11265         * ftp-basic.c (ftp_request): Accept NULL value.
11266         (ftp_pasv): New function.
11267
11268         * options.h (struct options): Add passive FTP option.
11269
11270 1996-12-15  Hrvoje Niksic  <hniksic@srce.hr>
11271
11272         * url.c (parseurl): Debug output.
11273
11274         * utils.c (path_simplify): New one, adapted from bash's
11275         canonicalize_pathname().
11276
11277 1996-12-14  Hrvoje Niksic  <hniksic@srce.hr>
11278
11279         * ftp.c (getftp): Don't discard the buffer.
11280
11281         * retr.c (get_contents): New parameter nobuf.
11282
11283 1996-12-13  Shawn McHorse  <riffraff@txdirect.net>
11284
11285         * html.c (htmlfindurl): Recognize <meta contents="d; URL=...".
11286
11287         * init.c (setval): Strip the trailing slashes on CVECDIR.
11288
11289 1996-12-13  Hrvoje Niksic  <hniksic@srce.hr>
11290
11291         * init.c: Make excludes and includes under CVECDIR instead of
11292         CVEC.
11293
11294 1996-12-13  Shawn McHorse  <riffraff@txdirect.net>
11295
11296         * url.c (get_urls_html): Skip "http:".
11297
11298 1996-12-13  Hrvoje Niksic  <hniksic@srce.hr>
11299
11300         * utils.c (strcasecmp): From glibc.
11301         (strncasecmp): Also.
11302         (strstr): Also.
11303
11304         * url.c: Added javascript: to the list of URLs prefixes.
11305
11306 1996-12-12  Shawn McHorse  <riffraff@txdirect.net>
11307
11308         * recur.c (retrieve_robots): Print the warning message only if
11309         verbose.
11310
11311 1996-12-12  Gregor Hoffleit  <flight@mathi.uni-heidelberg.DE>
11312
11313         * ftp.c (ftp_retrieve_list): Use NeXT old utime interface.
11314
11315 1996-12-12  Hrvoje Niksic  <hniksic@srce.hr>
11316
11317         * systhings.h: New file.
11318
11319         * ../configure.in: Check for utime.h
11320
11321         * ftp.c: Check whether we have unistd.h.
11322
11323 1996-11-27  Hrvoje Niksic  <hniksic@srce.hr>
11324
11325         * recur.c (recursive_retrieve): Send the canonical URL as referer.
11326         (recursive_retrieve): Call get_urls_html with the canonical URL.
11327
11328 1996-12-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11329
11330         * (configure.in, config.h.in, src/Makefile.in, src/*.[ch]): Add
11331         ansi2knr support for compilers which don't support ANSI style
11332         function prototypes and signatures.
11333
11334         * (aclocal.m4, src/ansi2knr.c, src/ansi2knr.1): New files.
11335
11336 1996-11-26  Hrvoje Niksic  <hniksic@srce.hr>
11337
11338         * url.c: Use it; Recognize paths ending with "." and ".." as
11339         directories.
11340         (url_filename): Append .n whenever file exists and could be a
11341         directory.
11342
11343         * url.h (ISDDOT): New macro.
11344
11345         * init.c (parse_line): Use unsigned char.
11346
11347         * url.c (get_urls_html): Cast to unsigned char * when calling
11348         htmlfindurl.
11349
11350         * html.c (htmlfindurl): Use unsigned char.
11351
11352         * version.c: Changed version to 1.4.3.
11353
11354 1996-11-25  Hrvoje Niksic  <hniksic@srce.hr>
11355
11356         * version.c: Released 1.4.2.
11357
11358         * ftp.c (getftp): Simplified assertion.
11359         (ftp_loop_internal): Remove symlink before downloading.
11360         (ftp_retrieve_list): Unlink the symlink name before attempting to
11361         create a symlink!
11362
11363         * options.h (struct options): Renamed print_server_response to
11364         server_response.
11365
11366         * ftp.c (rel_constr): Removed.
11367         (ftp_retrieve_list): Don't use it.
11368         (ftp_retrieve_list): Use opt.retr_symlinks.
11369
11370 1996-11-24  Hrvoje Niksic  <hniksic@srce.hr>
11371
11372         * main.c (main): New option retr_symlinks.
11373
11374         * url.c (convert_links): Print verbose message.
11375
11376 1996-11-24  Hrvoje Niksic  <hniksic@srce.hr>
11377
11378         * http.c (http_loop): Reset newloc in the beginning of function;
11379         would cause FMR in retrieve_url.
11380
11381 1996-11-23  Hrvoje Niksic  <hniksic@srce.hr>
11382
11383         * recur.c (convert_all_links): Find the URL of each HTML document,
11384         and feed it to get_urls_html; would bug out.
11385         (convert_all_links): Check for l2 instead of dl; removed dl.
11386
11387         * url.c (convert_links): Don't refer to freed newname.
11388
11389         * recur.c (recursive_retrieve): Add this_url to urls_downloaded.
11390
11391         * main.c (main): Print the OS_TYPE in the debug output, too.
11392
11393         * recur.c (recursive_retrieve): Check for opt.delete_after.
11394
11395         * main.c (main): New option delete-after.
11396
11397         * init.c (setval): Cleaned up.
11398
11399 1996-11-21  Hrvoje Niksic  <hniksic@srce.hr>
11400
11401         * Makefile.in (wget): Make `wget' the default target.
11402
11403         * ftp.c (ftp_loop_internal): Move noclobber checking out of the
11404         loop.
11405         (ftp_retrieve_list): Warn about non-matching sizes.
11406
11407         * http.c (http_loop): Made -nc non-dependent on opt.recursive.
11408
11409         * init.c (setnum): Renamed from setnuminf; New argument flags.
11410         (setval): Use it.
11411
11412         * main.c (main): Sorted the options.
11413         (main): New option --wait.
11414
11415 1996-11-21  Shawn McHorse  <riffraff@txdirect.net>
11416
11417         * html.c (htmlfindurl): Reset s->in_quote after getting out of
11418         quotes.
11419
11420 1996-11-20  Hrvoje Niksic  <hniksic@srce.hr>
11421
11422         * version.c: Changed version to 1.4.2.
11423
11424 1996-11-20  Hrvoje Niksic  <hniksic@srce.hr>
11425
11426         * version.c: Released 1.4.1.
11427
11428         * html.c (html_quote_string): New function.
11429         (ftp_index): Use it.
11430         (htmlfindurl): A more gentle ending debug message.
11431
11432         * ftp.c (ftp_loop): Check for opt.htmlify.
11433
11434         * init.c: New command htmlify.
11435
11436         * ftp.c (getftp): Nicer error messages, with `'-encapsulated
11437         strings.
11438         (ftp_loop): Print size of index.html.
11439
11440         * init.c (setval): Implement "styles".
11441
11442         * main.c (main): New option dotstyle.
11443
11444 1996-11-19  Hrvoje Niksic  <hniksic@srce.hr>
11445
11446         * ftp.c (getftp): Close the master socket in case of errors, after
11447         bindport().
11448
11449         * connect.c (bindport): Initialize msock to -1.
11450
11451         * ftp.c (getftp): Initialize dtsock to -1.
11452
11453         * connect.c (closeport): Don't close sock if sock == -1.
11454
11455 1996-11-18  Hrvoje Niksic  <hniksic@srce.hr>
11456
11457         * init.c (setnuminf): Nuked default value -- just leave unchanged.
11458         (setval): Don't send default values.
11459         (defaults): Use DEFAULT_TIMEOUT -- aaargh.
11460
11461         * options.h (struct options): Use long for dot_bytes.
11462
11463         * init.c (setquota): Renamed to setbytes.
11464         (setval): Use setbytes on DOTBYTES.
11465
11466 1996-11-17  Hrvoje Niksic  <hniksic@srce.hr>
11467
11468         * ftp.c (getftp): Initialize con->dltime.
11469
11470         * recur.c (recursive_retrieve): Use same_host instead of
11471         try_robots; simply load robots_txt whenever the host is changed.
11472         (recursive_retrieve): Free forbidden before calling parse_robots.
11473
11474 1996-11-16  Hrvoje Niksic  <hniksic@srce.hr>
11475
11476         * retr.c (show_progress): Use them.
11477
11478         * options.h (struct options): New options dot_bytes, dots_on_line
11479         and dot_spacing.
11480
11481 1996-11-16  Mark Boyns  <boyns@sdsu.edu>
11482
11483         * recur.c (recursive_retrieve): Retrieve directories regardless of
11484         acc/rej rules; check for empty u->file.
11485
11486 1996-11-14  Hrvoje Niksic  <hniksic@srce.hr>
11487
11488         * init.c (setval): Use it.
11489
11490         * utils.c (merge_vecs): New function.
11491
11492         * init.c (setval): Reset the list-type functions when encountering
11493         "".
11494
11495 1996-11-14  Shawn McHorse  <riffraff@txdirect.net>
11496
11497         * recur.c (recursive_retrieve): Use base_url instead of this_url
11498         for no_parent.
11499
11500 1996-11-14  Shawn McHorse  <riffraff@txdirect.net>
11501
11502         * html.c (htmlfindurl): Reset s->in_quote after exiting the quote.
11503
11504 1996-11-13  Hrvoje Niksic  <hniksic@srce.hr>
11505
11506         * utils.c (sepstring): Rewrote; don't use strtok.
11507
11508         * recur.c (recursive_retrieve): Enter assorted this_url to slist
11509         when running the first time.
11510         (retrieve_robots): Warn to ignore errors when robots are loaded.
11511
11512         * utils.c (load_file): Moved from url.c.
11513
11514         * http.c: Made static variables const too in h* functions.
11515
11516         * main.c (main): Renamed --continue-ftp to --continue.
11517
11518         * recur.c (recursive_retrieve): Use it.
11519
11520         * utils.c (frontcmp): New function.
11521
11522         * url.c (accdir): New function.
11523
11524         * html.c (htmlfindurl): Recognize <area href=...>.
11525
11526         * ftp.c (ftp_retrieve_dirs): Implemented opt.includes.
11527
11528         * init.c (setval): Free the existing opt.excludes and
11529         opt.includes, if available.
11530
11531         * main.c (main): New option -I.
11532
11533 1996-11-12  Hrvoje Niksic  <hniksic@srce.hr>
11534
11535         * ftp.c (ftp_retrieve_glob): Do not weed out directories.
11536
11537         * version.c: Changed version to 1.4.1.
11538
11539 1996-11-11  Hrvoje Niksic  <hniksic@srce.hr>
11540
11541         * version.c: Released 1.4.0.
11542
11543 1996-11-10  Hrvoje Niksic  <hniksic@srce.hr>
11544
11545         * main.c (main): Free com and val after parse_line.
11546         (printhelp): Reorder the listing.
11547
11548         * http.c: More robust header parsing.
11549
11550         * http.c: Allow any number of spaces, or no spaces, precede ':'.
11551         (hskip_lws): New function.
11552         (haccepts_bytes): New function.
11553         (gethttp): Use it.
11554
11555         * init.c (setval): Check header sanity.
11556         (setval): Allow resetting of headers.
11557
11558 1996-11-10  Hrvoje Niksic  <hniksic@srce.hr>
11559
11560         * http.c (http_loop): Don't use has_wildcards.
11561
11562         * http.c (gethttp): Free all_headers -- would leak.
11563
11564         * recur.c (recursive_retrieve): Initialize depth to 1 instead of
11565         0 -- this fixes a long-standing bug in -rl.
11566
11567 1996-11-09  Hrvoje Niksic  <hniksic@srce.hr>
11568
11569         * ftp.c: Use -1 as "impossible" value for con->fd.
11570
11571         * url.h (URL_SEPARATOR): Don't treat `*' and `+' as separators.
11572
11573         * init.c (parse_line): Use isalpha.
11574
11575         * ftp-unix.c: Use HAVE_UNISTD_H.
11576
11577         * mtch.c (has_wildcards): Don't match \.
11578
11579         * http.c (http_loop): Warn on HTTP wildcard usage.
11580
11581 1996-11-08  Hrvoje Niksic  <hniksic@srce.hr>
11582
11583         * url.c (url_filename): Do not create numbered suffixes if
11584         opt.noclobber -- would bug out on -nc.
11585
11586 1996-11-07  Hrvoje Niksic  <hniksic@srce.hr>
11587
11588         * recur.c (parse_robots): Don't chuck out the commands without
11589         arguments (`Disallow:<empty>' didn't work).
11590         (parse_robots): Compare versions lowercase.
11591         (parse_robots): Match on base_version, not version_string!
11592         (parse_robots): Handle comments properly.
11593         (parse_robots): Match versions in a sane way.
11594
11595         * init.c: Print nicer error messages.
11596
11597         * version.c: Changed version to 1.4.0.
11598
11599 1996-11-06  Hrvoje Niksic  <hniksic@srce.hr>
11600
11601         * version.c: Released 1.4.0-test2.
11602
11603         * init.c (run_wgetrc): Close fp.
11604
11605         * ftp.c (ftp_retrieve_dirs): Allocate the correct length for
11606         u->dir.
11607
11608 1996-11-06  Hrvoje Niksic  <hniksic@srce.hr>
11609
11610         * init.c (setquota): Allow inf as quota specification.
11611
11612 1996-11-05  Hrvoje Niksic  <hniksic@srce.hr>
11613
11614         * ftp.c (ftp_retrieve_dirs): Return QUOTEXC if quota exceeded.
11615         (ftp_retrieve_glob): Return QUOTEXC on quota exceeded.
11616
11617         * main.c (main): Check for quota by comparison with downloaded
11618         stuff, not from status.
11619
11620         * connect.c (select_fd): Should compile on HPUX without warnings now.
11621
11622         * ftp.c (ftp_get_listing): Check whether ftp_loop_internal
11623         returned RETROK.
11624
11625 1996-11-04  Hrvoje Niksic  <hniksic@srce.hr>
11626
11627         * ftp.c (ftp_retrieve_glob): Print the pattern nicely.
11628         (getftp): Return FTPRETRINT on control connection error.
11629
11630         * html.c (htmlfindurl): Recognize <embed src=...> and
11631         <bgsound src=...>.
11632         (ftp_index): Handle username and password correctly.
11633
11634         * main.c (main): Made `-np' a synonim for --no-parent.
11635
11636 1996-11-02  Hrvoje Niksic  <hniksic@srce.hr>
11637
11638         * ftp.c (ftp_loop): Check for opt.ftp_glob too before calling
11639         ftp_retrieve_glob.
11640
11641         * version.c: Changed version to 1.4.0-test2.
11642
11643 1996-11-02  Hrvoje Niksic  <hniksic@srce.hr>
11644
11645         * version.c: Released 1.4.0-test1.
11646
11647         * url.c (str_url): Don't use sprintf when creating %2F-prefixed
11648         directory.
11649         (convert_links): Removed definition of make_backup.
11650
11651         * http.h: Removed definition of MAX_ERROR_LENGTH.
11652
11653         * host.c (ftp_getaddress): Check for "(none)" domains.
11654
11655         * ftp.c (ftp_retrieve_dirs): Docfix.
11656
11657         * http.c (gethttp): Use ou->referer instead of u->referer.
11658
11659         * retr.c (retrieve_url): Reset u to avoid freeing pointers twice;
11660         this was known to cause coredumps on Linux.
11661
11662         * html.c (ftp_index): Cast the argument to local_time to time_t *.
11663
11664 1996-11-01  Hrvoje Niksic  <hniksic@srce.hr>
11665
11666         * connect.c (select_fd): Use exceptfds -- once and for all.
11667
11668         * retr.c (retrieve_from_file): Free filename after
11669         recursive_retrieve.
11670         (retrieve_from_file): Send RFIRST_TIME to recursive_retrieve on
11671         first-time retrieval.
11672         (retrieve_from_file): Return uerr_t; new argument, count.
11673         (retrieve_from_file): Break on QUOTEXC.
11674
11675         * init.c (setquota): Fixed a bug that caused rejection of
11676         non-postfixed values..
11677
11678 1996-10-30  Hrvoje Niksic  <hniksic@srce.hr>
11679
11680         * version.c: Changed name to wget.
11681
11682         * connect.c (iread): Smarter use of select.
11683         (select_fd): Set errno on timeout.  If not timeout, return 1
11684         instead of 0.
11685
11686 1996-10-29  Hrvoje Niksic  <hniksic@srce.hr>
11687
11688         * ftp.c (ftp_loop_internal): Don't use con->cmd before
11689         establishing it.
11690
11691 1996-10-26  Hrvoje Niksic  <hniksic@srce.hr>
11692
11693         * http.c (gethttp): Send correct referer when using proxy.
11694         (gethttp): Use struct urlinfo ou to access the relevant data; send
11695         correct authorization in all cases.
11696
11697         * host.c (same_host): Use skip_uname to skip username and
11698         password.
11699
11700         * url.c (skip_uname): New function.
11701         (parseurl): Use it.
11702
11703         * host.c (same_host): Do not assume HTTP -- same_host should now
11704         be totally foolproof.
11705
11706         * url.c (skip_proto): New function.
11707         (parse_uname): Use it.
11708
11709         * http.c (gethttp): Create local user and passwd from what is
11710         given.
11711
11712         * url.c (parseurl): Check for HTTP username and password too.
11713
11714 1996-10-25  Hrvoje Niksic  <hniksic@srce.hr>
11715
11716         * config.h.in: Removed #define gethostbyname R...
11717
11718 1996-10-22  Hrvoje Niksic  <hniksic@srce.hr>
11719
11720         * version.c: Changed version to 1.4.0-test1.
11721
11722 1996-10-21  Hrvoje Niksic  <hniksic@srce.hr>
11723
11724         * version.c: "Released" 1.4b29.
11725
11726         * recur.c (recursive_retrieve): Check for no_parent.
11727
11728         * init.c (setval): Option update.
11729
11730         * main.c (main): New option no-parent.
11731
11732         * options.h (struct options): New variable no_parent.
11733
11734         * recur.c (recursive_retrieve): Only files are checked for
11735         opt.accepts and opt.rejects.
11736         (recursive_retrieve): Check directories for opt.excludes.
11737         (recursive_retrieve): Make the dir absolute when checking
11738         opt.excludes.
11739
11740         * html.c (htmlfindurl): Recognize <applet code=...> and <script
11741         src=...>
11742
11743 1996-10-18  Hrvoje Niksic  <hniksic@srce.hr>
11744
11745         * ftp.c (getftp): Do not line-break assert entries at all.
11746         (ftp_retrieve_dirs): docfix.
11747
11748         * connect.c (select_fd): Use fd + 1 as nfds.
11749
11750         * version.c: Changed version to 1.4b29.
11751
11752 1996-10-18  Hrvoje Niksic  <hniksic@srce.hr>
11753
11754         * version.c: "Released" 1.4b28.
11755
11756         * ftp.c (ftp_loop_internal): Check whether f->size == len and
11757         don't continue the loop if it is.
11758         (ftp_get_listing): Remove list_filename on unsuccesful loop.
11759
11760 1996-10-17  Hrvoje Niksic  <hniksic@srce.hr>
11761
11762         * ftp.c (ftp_loop_internal): Use strcpy to initialize tmp.
11763         (getftp): Do not use multiline assert.
11764
11765         * http.c (hparsestatline): Use mjr and mnr instead of major and
11766         minor, which don't compile on Ultrix.
11767         (http_loop): Use strcpy() to initialize tmp.
11768
11769         * all: Geturl -> Fetch
11770
11771 1996-10-17  Hrvoje Niksic  <hniksic@srce.hr>
11772
11773         * recur.c (parse_robots): Fixed an off-by-one bug when looking for
11774         ':'.
11775
11776         * html.c (htmlfindurl): Fixed several possible off-by-one bugs by
11777         moving `bufsize &&' to the beginning of each check in for-loops.
11778
11779         * recur.c (parse_robots): Close fp on exit.
11780
11781         * url.c (mymkdir): Check for each directory before creating.
11782
11783 1996-10-16  Hrvoje Niksic  <hniksic@srce.hr>
11784
11785         * version.c: Changed version to 1.4b28.
11786
11787 1996-10-16  Hrvoje Niksic  <hniksic@srce.hr>
11788
11789         * version.c: "Released" 1.4b27.
11790
11791         * init.c (parse_line): Use isspace.
11792         (parse_line): Free *com on all errors.
11793
11794         * ftp.c (ftp_loop): Change FTPOK to RETROK before exiting.
11795         (delelement): Use next instead of f->next and prev instead of
11796         f->prev.
11797         (delelement): Free the members of the deleted element.
11798
11799         * http.c (http_loop): Do not return RETROK on code != 20x.
11800
11801         * init.c (cleanup): Free opt.user_header.
11802         (cleanup): Free opt.domains.
11803
11804         * url.c (freelists): Moved to cleanup().
11805
11806         * http.c (hparsestatline): Docfix.
11807
11808         * main.c (main): Return with error status on unsuccesful
11809         retrieval.
11810
11811         * init.c (setval): Do not remove listing when mirroring.
11812
11813         * url.c (url_filename): Use opt.fileprefix.
11814
11815         * ftp.c (ftp_get_listing): Use url_filename to get filename for
11816         .listing.
11817
11818         * main.c (main): New option: -rn.
11819
11820 1996-10-15  Hrvoje Niksic  <hniksic@srce.hr>
11821
11822         * Makefile.in (RM): Added RM = rm -f.
11823
11824         * host.c (clean_hosts): New function.
11825         (free_hlist): Just free the list, no reset.
11826
11827         * version.c: Changed version to 1.4b27.
11828
11829 1996-10-13  Hrvoje Niksic  <hniksic@srce.hr>
11830
11831         * version.c: "Released" 1.4b26.
11832
11833         * retr.c (retrieve_from_file): If call get_urls_html with
11834         opt.spider to make it silent in spider mode.
11835
11836         * url.c (str_url): Use CLEANDUP instead of URL_CLEANSE.
11837
11838         * url.h (CLEANDUP): New macro.
11839
11840         * http.c (gethttp): Fixed a bug that freed location only when it
11841         was NULL.
11842
11843         * retr.c (retrieve_url): Free url if it will not be stored,
11844         i.e. newloc is NULL.
11845
11846         * html.c (htmlfindurl): Handle exiting from quotes correctly; the
11847         old version would bug out on <a href="x#a"href="y">.
11848
11849         * html.h (state_t): New member in_quote.
11850
11851         * html.c (htmlfindurl): Free s->attr at the beginning of
11852         attr-loop.
11853
11854         * recur.c (recursive_retrieve): Recognize RCLEANUP.
11855         (tried_robots): Make hosts a global variable.
11856         (recursive_retrieve): Free constr after URL host optimization.
11857         (tried_robots): Free urlinfo before exiting.
11858
11859         * utils.c (free_slist): New function.
11860
11861         * recur.c (recursive_retrieve): Use flags to add cleanup
11862         possibility.
11863
11864         * main.c (main): Free filename after recursive_retrieve.
11865
11866         * http.c (gethttp): Store successful responses too.
11867
11868 1996-10-12  Hrvoje Niksic  <hniksic@srce.hr>
11869
11870         * all: Constified the whole source.  This required some minor
11871         changes in many functions in url.c, possibly introducing bugs -- I
11872         hope not.
11873
11874         * ftp-basic.c: Removed last_respline.
11875
11876         * http.c (gethttp): Free type.
11877
11878         * host.c (same_host): Free real1 and real2.
11879
11880         * main.c (main): New option --spider.
11881
11882         * retr.c (get_contents): Don't reset errno.
11883
11884         * main.c (main): Sorted the options.
11885
11886         * connect.c (iread): Set errno to ETIMEDOUT only if it was left
11887         uninitialized by select().
11888
11889         * http.c (http_loop): Print the time when the connection is
11890         closed.
11891         (gethttp): Debug-print the HTTP request.
11892
11893 1996-10-11  Hrvoje Niksic  <hniksic@srce.hr>
11894
11895         * connect.c (iread): Do not try reading after timeout.
11896
11897         * main.c (main): Would bug out on -T.
11898
11899         * connect.c (select_fd): Do not use exceptfds.
11900         (iread): Set ETIMEDOUT on select_fd <= 0.
11901
11902         * version.c: Changed version to 1.4b26.
11903
11904 1996-10-10  Hrvoje Niksic  <hniksic@srce.hr>
11905
11906         * version.c: "Released" 1.4b25.
11907
11908         * ftp-unix.c (ftp_parse_unix_ls): Ignore lines without file name
11909         or link name.
11910
11911         * http.c (gethttp): Add errcode to struct hstat.
11912         (http_loop): Use it.
11913
11914         * url.c (no_proxy_match): Simplify using char** for no_proxy.
11915
11916         * options.h (struct options): Make opt.no_proxy a vector.
11917
11918         * utils.c (sepstring): Use !*s instead of !strlen(s).
11919
11920         * init.c (setval): Set opt.maxreclevel to 0 on --mirror.
11921         (getperms): Use ISODIGIT instead of isdigit.
11922
11923         * ftp.c (getftp): Print time.
11924
11925         * main.c (main): Use legible output of downloaded quantity.
11926
11927         * ftp.c (getftp): Use elapsed_time().
11928         (ftp_loop_internal): Use rate().
11929
11930         * http.c (http_loop): Add download ratio output; Use rate().
11931
11932         * utils.c (rate): New function.
11933
11934 1996-10-09  Hrvoje Niksic  <hniksic@srce.hr>
11935
11936         * http.c (http_loop): Use timer.
11937
11938         * ftp.c: Split to ftp-basic.c and ftp.c
11939
11940         * utils.c (reset_timer): New function.
11941         (elapsed_time): New function.
11942
11943         * retr.c (show_progress): Make bytes_in_line and offs long; should
11944         work on 16-bit machines.
11945
11946 1996-10-08  Hrvoje Niksic  <hniksic@srce.hr>
11947
11948         * url.c (in_acclist): New argument backward.
11949
11950         * ftp.c (ftp_retrieve_glob): Use acceptable() to determine whether
11951         a file should be retrieved according to suffix.
11952         (ftp_get_listing): Check the return value of unlink; Do not call
11953         ftp_retrieve_dirs if depth reached maxreclevel.
11954         (ftp_retrieve_dirs): Check whether the directory is in
11955         exclude-list.
11956
11957         * main.c (main): Print the version number at the beginning of
11958         DEBUG output.
11959         (main): Use strrchr when creating exec_name.
11960
11961         * ftp.c (ftp_retrieve_glob): Do not close control connection.
11962
11963         * version.c: Changed version to 1.4b25.
11964
11965 1996-10-07  Hrvoje Niksic  <hniksic@srce.hr>
11966
11967         * version.c: "Released" 1.4b24.
11968
11969         * Makefile.in: Rewrite.
11970
11971         * ftp.c (ftp_loop_internal): Likewise.
11972
11973         * retr.c (time_str): Check for failed time().
11974
11975         * html.c (htmlfindurl): Recognize <fig src> and <overlay src> from
11976         HTML3.0.
11977
11978         * retr.c (time_str): Return time_t *.
11979
11980         * connect.c (bindport): Close msock on unsuccesful bind.
11981         (bindport): The same for getsockname and listen.
11982
11983         * retr.c (retrieve_url): Allow any number of retries on
11984         proxy.
11985
11986         * http.c (gethttp): Do not treat errno == 0 as timeout.
11987         (http_loop): Likewise.
11988         (http_loop): Cosmetic changes.
11989
11990         * connect.c (iread): Set errno to ETIMEDOUT in case of timeout.
11991
11992         * retr.c (get_contents): Reset errno.
11993
11994         * ftp.c (getftp): Minor fixes.
11995
11996 1996-10-06  Hrvoje Niksic  <hniksic@srce.hr>
11997
11998         * http.c: Do not use backups.
11999
12000         * geturl.1 (WARNING): Warn that man-page could be obsolete.
12001
12002         * getopt.c (getopt_long): Moved to getopt.c
12003
12004         * geturl.texi: Enhanced.
12005
12006         * main.c (main): Use it.
12007
12008         * recur.c (convert_all_links): New function.
12009
12010         * utils.c (add_slist): New argument flags.
12011
12012         * recur.c (recursive_retrieve): Update a list of downloaded URLs.
12013         (parse_robots): Do not chuck out empty value fields.
12014         (parse_robots): Make yourself welcome on empty Disallow.
12015
12016         * version.c: Changed version to 1.4b24.
12017
12018 1996-10-06  Hrvoje Niksic  <hniksic@srce.hr>
12019
12020         * version.c: "Released" 1.4b23.
12021
12022         * ftp.c (ftp_loop_internal): Get the time after getftp.
12023
12024         * Makefile.in (install.info): New target.
12025         (install): Use it.
12026
12027         * http.c (http_loop): Fix output when doing -O.
12028
12029 1996-10-05  Hrvoje Niksic  <hniksic@srce.hr>
12030
12031         * geturl.texi: New file.
12032
12033         * main.c (main): Do not print the warnings and download summary if
12034         opt.quiet is set.
12035
12036         * version.c: Changed version to 1.4b23.
12037
12038 1996-10-05  Hrvoje Niksic  <hniksic@srce.hr>
12039
12040         * "Released" 1.4b22.
12041
12042         * atotm.c (atotm): Use True and False instead of TRUE and FALSE,
12043         to avoid redefinition warnings.
12044
12045         * host.c (store_hostaddress): Use memcpy() to copy the address
12046         returned by inet_addr.
12047
12048         * version.c: Changed version to 1.4b22.
12049
12050 1996-10-04  Hrvoje Niksic  <hniksic@srce.hr>
12051
12052         * version.c: "Released" 1.4b21.
12053
12054         * ftp-unix.c (ftp_parse_ls): Renamed to ftp_parse_unix_ls.
12055
12056         * ftp.c (ftp_port): Use conaddr.
12057         (getftp): Print the file length.
12058         (ftp_retrieve_list): Check the stamps of plain files only.
12059
12060         * connect.c (closeport): Do not call shutdown().
12061         (conaddr): New function.
12062
12063         * html.c (ftp_index): Made it dfp-aware.
12064
12065         * init.c (cleanup): New name of freemem. Close opt.dfp.
12066
12067         * ftp.c (getftp): Use opt.dfp if it is set.
12068
12069         * ftp-unix.c (ftp_parse_ls): Recognize time in h:mm format.
12070
12071         * ftp.c (ftp_retrieve_dirs): Fixed a bug that caused incorrect
12072         CWDs to be sent with recursive FTP retrievals.
12073
12074 1996-10-03  Hrvoje Niksic  <hniksic@srce.hr>
12075
12076         * recur.c (parse_robots): Made it more compliant with "official"
12077         specifications.
12078
12079         * http.c: New function.
12080
12081         * ftp-unix.c (ftp_parse_ls): Added better debug output.
12082
12083         * ftp.c (getftp): Print out the LIST in case of
12084         opt.print_server_response.
12085
12086         * version.c: Changed version to 1.4b21.
12087
12088 1996-10-01  Hrvoje Niksic  <hniksic@srce.hr>
12089
12090         * version.c: "Released" 1.4b20.
12091
12092         * README: Update.
12093
12094         * http.c (gethttp): Preset lengths of various headers instead of
12095         calculating them dynamically.
12096         (gethttp): Check for 206 partial contents.
12097
12098 1996-09-30  Hrvoje Niksic  <hniksic@srce.hr>
12099
12100         * configure.in: Set SYSTEM_GETURLRC to $libdir/geturlrc
12101
12102         * http.c (gethttp): Send the port number in the Host: header.
12103
12104 1996-09-29  Hrvoje Niksic  <hniksic@srce.hr>
12105
12106         * http.c (gethttp): Send host: header.
12107         (gethttp): Add the possibility of user-defined headers.
12108         (gethttp): Move decision about pragma: no-cache to http_loop,
12109         where it belongs.
12110         (gethttp): Pass a struct instead of enormous argument list.
12111         (http_loop): Use a new, fancier display format.
12112         (ftp_loop): Likewise.
12113
12114         * main.c: (hangup): Turn off buffering of the new log file.
12115
12116         * install-sh: Likewise.
12117
12118         * config.sub: Replace with the one in autoconf-2.10
12119
12120         * geturl.1: Update.
12121
12122         * init.c: New options httpuser and httppasswd.
12123
12124         * http.c: (base64_encode_line): New function.
12125         (gethttp): Send authentication.
12126
12127         * connect.c (make_connection): Use store_hostaddress.
12128
12129 1996-09-28  Hrvoje Niksic  <hniksic@srce.hr>
12130
12131         * host.c (store_hostaddress): New function.
12132
12133         * NEWS: Update.
12134
12135         * http.c (hgetrange): New function.
12136         (gethttp): Use ranges.
12137
12138         * utils.c (numdigit): Accept long instead of int.
12139
12140         * http.c (http_loop): Add restart capabilities.
12141
12142         * ftp.c (ftp_retrieve_glob): Fixed a bug that could cause matchres
12143         being used uninitialized.
12144         (ftp_retrieve_list): Similar fix.
12145
12146         * host.c (add_hlist): Fixed a bug that could cause cmp being used
12147         uninitialized.
12148
12149         * url.c (construct_relative): New function.
12150
12151         * recur.c (recursive_retrieve): Use it.
12152
12153         * retr.c (convert_links): New function.
12154
12155 1996-09-27  Hrvoje Niksic  <hniksic@srce.hr>
12156
12157         * url.c (free_urlpos): New function.
12158
12159         * recur.c (recursive_retrieve): Adapt.
12160
12161         * url.c (get_urls_html): Return a linked list instead of a vector.
12162
12163         * url.c (get_urls_file): Return a linked list instead of a vector.
12164
12165         * geturl.1: Update.
12166
12167         * http.c (gethttp): Implement it.
12168
12169         * init.c (setval): New option: SAVEHEADERS
12170
12171         * ftp.c (ftp_loop_internal): Do not set restval if listing is to
12172         be retrieved. Lack of this test caused bugs when the connection
12173         was lost during listing.
12174
12175         * retr.c (retrieve_url): Fixed a bug that caused
12176         coredumps. *newloc is now reset by default.
12177         (retrieve_url): Lift the twenty-tries limit on proxies.
12178
12179         * version.c: Changed version to 1.4b20.
12180
12181 1996-09-20  Hrvoje Niksic  <hniksic@srce.hr>
12182
12183         * version.c: "Released" 1.4b19.
12184
12185 1996-09-19  Hrvoje Niksic  <hniksic@srce.hr>
12186
12187         * ftp.c (ftp_loop_internal): Renamed from ftp_1fl_loop.
12188         (getftp): Changed prototype to accept ccon *.
12189
12190 1996-09-17  Hrvoje Niksic  <hniksic@srce.hr>
12191
12192         * ftp.c (ftp_retrieve_list): Fixed a bug that caused setting
12193         incorrect values to files pointed to by symbolic links.
12194         (ftp_1fl_loop): Do not count listings among the downloaded URL-s.
12195
12196 1996-09-16  Hrvoje Niksic  <hniksic@srce.hr>
12197
12198         * url.c (mkstruct): Do not prepend "./" in front of a pathname.
12199
12200         * main.c (main): New option: --user-agent.
12201
12202         * geturl.1: Ditto.
12203
12204         * init.h: Ditto.
12205
12206         * init.c (setval): Ditto.
12207
12208         * main.c (main): Rename "server-headers" to "server-response".
12209
12210         * ftp-unix.c (ftp_parse_ls): Check for asterisks at the end of
12211         executables in 'ls -F' listings.
12212
12213 1996-09-15  Hrvoje Niksic  <hniksic@srce.hr>
12214
12215         * url.c (parseurl): Remove realloc() and sprintf().
12216         (str_url): Get rid of sprintf().
12217
12218         * recur.c (recursive_retrieve): Enable FTP recursion through proxy
12219         servers.
12220
12221         * url.h (URL_CLEANSE): Made it else-resistant.
12222         (USE_PROXY): New macro.
12223
12224 1996-09-14  Hrvoje Niksic  <hniksic@srce.hr>
12225
12226         * NEWS: Update.
12227
12228         * version.c: Changed version to 1.4b19.
12229
12230 1996-09-14  Hrvoje Niksic  <hniksic@srce.hr>
12231
12232         * version.c: "Released" 1.4b18.
12233
12234         * url.c: Made it reallocate space exponentially.
12235
12236 1996-09-14  Drazen Kacar  <dave@fly.cc.fer.hr>
12237
12238         * html.c (htmlfindurl): Added <frame src> and <iframe src> among
12239         the list of stuff to fetch.
12240
12241 1996-09-13  Hrvoje Niksic  <hniksic@srce.hr>
12242
12243         * url.c (get_urls_html): Fixed a bug that caused SIGSEGV's with
12244         -Fi.
12245
12246         * html.c (htmlfindurl): Rewrite.
12247
12248         * http.c (gethttp): Use opt.proxy_cache.
12249
12250         * main.c (main): Added --cache option.
12251
12252         * ftp.c (ftp_response): Print server response if opt.print_server
12253         response is set.
12254         (getftp): Print newlines after each request if the server response
12255         is to be printed.
12256         (ftp_response): Copy the last response line to last_respline.
12257
12258         * http.c (gethttp): Add Pragma: nocache for retried
12259         proxy-retrievals.
12260
12261         * ftp.c (getftp): Use it.
12262
12263         * retr.c (buf_discard): New function.
12264
12265         * ftp.c (ftp_response): Use buf_readchar().
12266         (getftp): Flush the control connection buffer before calling
12267         get_contents().
12268
12269         * retr.c (buf_readchar): New function.
12270         (buf_flush): New function.
12271         (get_contents): Use buf_readchar() instead of read(x, x, 1).
12272         (get_contents): Use buf_flush.
12273
12274 1996-09-12  Hrvoje Niksic  <hniksic@srce.hr>
12275
12276         * ftp.c: Incorporate changes to ftp_response.
12277
12278         * ftp.c (ftp_response): Allocate the server response dynamically,
12279         as in read_whole_line and fetch_next_header.
12280
12281         * utils.c (read_whole_line): Fixed a bug that prevented reading
12282         the last line if it is not \n-terminated. Also fixed a possible
12283         memory overflow.
12284
12285         * http.c (fetch_next_header): Return malloc-ed string as large as
12286         needed.
12287         (gethttp): Use new fetch_next_header.
12288
12289 1996-09-12  Hrvoje Niksic  <hniksic@srce.hr>
12290
12291         * http.c (hgetlen): Compute the header length the first time only.
12292         (hgettype): Ditto.
12293         (hgetlocation): Ditto.
12294         (hgetmodified): Ditto.
12295
12296 1996-09-11  Hrvoje Niksic  <hniksic@srce.hr>
12297
12298         * sample.geturlrc: Update.
12299
12300 1996-09-10  Hrvoje Niksic  <hniksic@srce.hr>
12301
12302         * http.c (http_loop): Ditto.
12303
12304         * ftp.c (getftp): Open the output file as binary.
12305
12306         * version.c: Changed version to 1.4b18.
12307
12308 1996-09-10  Hrvoje Niksic  <hniksic@srce.hr>
12309
12310         * version.c: "Released" 1.4b17.
12311
12312         * ftp-unix.c (ftp_parse_ls): If unable to open file, return NULL
12313         instead of failed assertion.
12314
12315 1996-09-09  Hrvoje Niksic  <hniksic@srce.hr>
12316
12317         * ftp.c (ftp_get_listing): Add a numbered suffix to LIST_FILENAME
12318         if a file of that name already exists.
12319
12320 1996-09-05  Hrvoje Niksic  <hniksic@srce.hr>
12321
12322         * ftp.c (ftp_1fl_loop): Handler FTPPORTERR and FOPENERR correctly.
12323
12324         * config.h.in: Define gethostbyname as Rgethostbyname when using
12325         Socks.
12326
12327         * configure.in: Check for -lresolv if using Socks.
12328
12329         * version.c: Changed version to 1.4b17.
12330
12331 1996-07-15  Hrvoje Niksic  <hniksic@srce.hr>
12332
12333         * version.c: "Released" 1.4b16.
12334
12335         * http.c (gethttp): More intelligent check for first line of HTTP
12336         response.
12337         (gethttp): Would bug out on time-stamping.
12338
12339         * version.c: Changed version to 1.4b16.
12340
12341 1996-07-11  Hrvoje Niksic  <hniksic@srce.hr>
12342
12343         * version.c: Released 1.4b15.
12344
12345         * http.c (http_loop): Print \n after the loop entry, not before.
12346
12347         * url.c (url_filename): Use ISDOT.
12348
12349         * url.h (ISDOT): New macro.
12350
12351         * recur.c (recursive_retrieve): Change only opt.recursive for
12352         following FTP.
12353
12354 1996-07-11  Antonio Rosella <antonio.rosella@agip.it>
12355
12356         * socks/geturl.cgi: Fixed version No.
12357
12358         * socks/download-netscape.html: Ditto.
12359
12360         * socks/download.html: Changed socks.html to download.html.
12361
12362 1996-07-11  Hrvoje Niksic  <hniksic@srce.hr>
12363
12364         * url.c (url_filename): Check for opt.dirstruct instead for
12365         opt.recursive && opt.dirstruct.
12366
12367         * init.c (defaults): Ditto.
12368         (defaults): Reset dirstruct by default.
12369         (setval): Set opt.dirstruct whenever setting recursive.
12370
12371         * init.h: Removed FORCEDIRHIER.
12372
12373         * INSTALL: Added -L to socks-description.
12374
12375         * version.c: Changed version to 1.4b15.
12376
12377 1996-07-10  Hrvoje Niksic  <hniksic@srce.hr>
12378
12379         * version.c: "Released" 1.4b14.
12380
12381         * geturl.1: Update AUTHOR to include Rosella as contributor.
12382
12383         * NEWS: Update.
12384
12385         * socks/geturl.cgi: Simplified command creation, nuked <blink>.
12386
12387         * socks/geturl.cgi: Wrap nutscape extensions within if $netscape.
12388         (cal_time): Fix == to eq.
12389
12390         * socks/geturl.cgi: GPL-ized with permission of A. Rosella.
12391
12392         * geturl.1 (hostname): Moved URL CONVENTIONS to the beginning.
12393
12394         * Makefile.in: Use @VERSION@.
12395
12396         * configure.in: Check version from version.c.
12397
12398         * socks/geturl.cgi: Changed /pub/bin/perl to /usr/bin/perl.
12399
12400         * socks/download.html: Created from download-netscape.html, made
12401         HTML-2.0 compliant.
12402
12403         * recur.c (recursive_retrieve): Set opt.force_dir_hier when
12404         following FTP links from recursions.
12405
12406 1996-07-09  Hrvoje Niksic  <hniksic@srce.hr>
12407
12408         * url.c (mymkdir): Fixed a bug that prevented mymkdir() to create
12409         absolute directories correctly.
12410
12411         * version.c: Changed version to 1.4b14.
12412
12413 1996-07-09  Hrvoje Niksic  <hniksic@srce.hr>
12414
12415         * version.c: "Released" 1.4b13.
12416
12417         * url.c (make_backup): New function.
12418
12419         * http.c (http_loop): Make a backup copy of the local file (using
12420         rename(2)) before opening it.
12421
12422         * main.c (main): Added --backups.
12423
12424         * host.c (ftp_getaddress): Bail out on failed mycuserid().
12425         (ftp_getaddress): Check for leading dot on MY_DOMAIN.
12426         (ftp_getaddress): Check for empty, null or (null) domain.
12427
12428         * url.c (get_urls_html): If this_url is NULL, the base must have a
12429         protocol.
12430         (parseurl): Use has_proto.
12431
12432         * retr.c (retrieve_url): Warn when proxy is used with more than 20
12433         retries.
12434
12435         * url.c (mkstruct): Create the directory (calling mymkdir()) only
12436         if it is not already there.
12437         (has_proto): New function.
12438         (get_urls_html): Eliminate the remaining call to findurl -- use
12439         has_proto.
12440
12441         * geturl.1: Ditto.
12442
12443         * main.c: Change -X to -x.
12444
12445         * url.c (url_filename): Simplify creation of filename if
12446         prefix_files is set.
12447         (url_filename): Simplify everything. And I do mean *everything*.
12448         (mkstruct): Add dir_prefix before hostname.
12449         (path_simplify): Fixed a bug that caused writing outside the path
12450         string in case of "." and ".." path strings.
12451
12452 1996-07-06  Hrvoje Niksic  <hniksic@srce.hr>
12453
12454         * init.c: Added --mirror.
12455
12456         * main.c (main): Added -X to force saving of directory hierarchy.
12457
12458         * ftp.c (ftp_retrieve_list): Added recursion depth counter.
12459         (ftp_retrieve_list): Check whether quota is exceeded.
12460
12461         * url.c (get_urls_html): Skip leading blanks for absolute URIs.
12462
12463         * http.c (gethttp): Use referer if present.
12464
12465         * recur.c (recursive_retrieve): Set u->referer before calling
12466         retrieve_url.
12467
12468         * url.c (newurl): Use memset to nullify the struct members.
12469         (freeurl): Free the referer field too.
12470
12471         * url.h: Added referer to urlinfo.
12472
12473         * geturl.1: Updated the manual to document some of the new features.
12474
12475         * utils.c (numdigit): Moved from url.c.
12476
12477         * README: Rewritten.
12478
12479         * config.h.in: Add the support for socks.
12480
12481         * configure.in: Add the support for socks.
12482
12483         * url.c (url_filename): If the dir_prefix is ".", work with just
12484         the file name.
12485         (url_filename): Do not look for .n extensions if timestamping if
12486         turned on.
12487
12488         * retr.c (show_progress): Skip the over-abundant restval data, and
12489         print the rest of it with ',' instead of '.'.
12490
12491 1996-07-05  Hrvoje Niksic  <hniksic@srce.hr>
12492
12493         * retr.c (show_progress): Changed second arg. to long (as it
12494         should be).
12495         (show_progress): Moved to retr.c.
12496         (get_contents): Moved to retr.c.
12497
12498         * version.c: Change version to 1.4b13.
12499
12500 1996-07-05  Hrvoje Lacko <hlacko@fly.cc.fer.hr>
12501
12502         * url.c (in_acclist): Would return after the first suffix.
12503
12504 1996-07-04  Hrvoje Niksic  <hniksic@srce.hr>
12505
12506         * version.c: "Released" 1.4b12.
12507
12508         * url.c (path_simplify): More kludgifications.
12509         (get_urls_html): Use new parameters for htmlfindurl.
12510
12511         * html.c: Removed memorizing "parser states", since the new
12512         organization does not require them.
12513
12514         * init.c (run_geturlrc): Use read_whole_line.
12515
12516         * ftp-unix.c (ftp_parse_ls): Use read_whole_line.
12517
12518         * recur.c (parse_robots): Use read_whole_line.
12519
12520         * utils.c (read_whole_line): New function.
12521
12522         * recur.c (tried_robots): Use add_slist/in_slist, *much* cleaner.
12523
12524         * host.c (ngethostbyname): Call inet_addr just once. Yet to be
12525         tested on OSF and Ultrix.
12526         (add_hlist): New function.
12527         (free_hlist): New function.
12528         (search_host): New function.
12529         (search_address): New function.
12530         (realhost): Use search_host, search_address and add_hlist.
12531         (same_host): Replaced realloc() with strdupdelim(), made
12532         case-insensitive, fixed a memory leak.
12533
12534         * html.c (ftp_index): Fixed tm_min and tm_sec to be tm_hour and
12535         tm_min, like intended.
12536
12537         * version.c: Change user agent information to
12538         Geturl/version.
12539
12540 1996-07-03  Hrvoje Niksic  <hniksic@srce.hr>
12541
12542         * utils.c: Renamed nmalloc.c to utils.c, .h likewise.
12543
12544         * url.c (acceptable): Always accept directories.
12545
12546         * ftp-unix.c (ftp_parse_ls): Support brain-damaged "ls -F"-loving
12547         servers by stripping trailing @ from symlinks and trailing / from
12548         directories.
12549
12550         * ftp.c (ftp_loop): Debugged the "enhanced" heuristics. :-)
12551
12552         * url.c (skip_url): Use toupper instead of UCASE.
12553
12554         * host.c (sufmatch): Made it case-insensitive.
12555
12556         * url.c (match_backwards_or_pattern): Fixed i == -1 to j == -1.
12557         (match_backwards): New function, instead of
12558         match_backwards_or_pattern.
12559
12560         * recur.c (recursive_retrieve): Increased performance by
12561         introducing inl, which reduces number of calls to in_slist to only
12562         one.
12563
12564         * ftp.c (ftp_loop): Enhanced the heuristics that decides which
12565         routine to use.
12566
12567         * main.c (printhelp): Removed the warranty stuff.
12568
12569 1996-07-02  Hrvoje Niksic  <hniksic@srce.hr>
12570
12571         * url.c (add_slist): Simplify.
12572         (match_backwards_or_pattern): New function.
12573         (in_acclist): Use match_backwards_or_pattern.
12574         (matches): Remove.
12575
12576 1996-06-30  Hrvoje Niksic  <hniksic@srce.hr>
12577
12578         * ftp.c (ftp_loop): Call ftp_index on empty file names, if not
12579         recursive.
12580
12581         * html.c (ftp_index): Fixed to work. Beautified the output.
12582
12583         * ftp.c (ftp_retrieve_glob): Another argument to control whether
12584         globbing is to be used.
12585         (ftp_retrieve_list): Compare the time-stamps of local and remote
12586         files to determine whether to download.
12587
12588 1996-06-29  Hrvoje Niksic  <hniksic@srce.hr>
12589
12590         * ftp.c (rel_constr): New function.
12591
12592         * retr.c (retrieve_from_file): Check for text/html before
12593         retrieving recursively.
12594
12595         * main.c (main): Check whether the file is HTML before going into
12596         recursive HTML retrieving.
12597
12598         * ftp.c (ftp_retrieve_list): Manage directories.
12599         (ftp_retrieve_glob): Pass all the file-types to ftp_retrieve_list.
12600         (ftp_1fl_loop): Fixed a bug that caused con->com to be incorrectly
12601         initialized, causing bugchecks in getftp to fail.
12602
12603         * configure.in: Check for symlink.
12604
12605         * ftp.c (ftp_retrieve_list): Added support for symlinks.
12606
12607         * version.c: "Released" 1.4b10.
12608
12609         * atotm.c (atotm): Redeclared as time_t.
12610
12611         * init.c: New variable "timestamping".
12612
12613         * main.c (main): New option 'N'.
12614
12615         * http.c (hgetlocation): Case-insensitive match.
12616         (hgetmodified): New function.
12617         (http_loop): Implement time-stamping.
12618
12619 1996-06-28  Hrvoje Niksic  <hniksic@srce.hr>
12620
12621         * version.c: Changed version to 1.4b10
12622
12623         * atotm.c: New file, from phttpd.
12624
12625         * options.h (struct options): New parameter timestamping.
12626
12627         * version.c: 1.4b9 "released".
12628
12629         * recur.c (recursive_retrieve): Used linked list (ulist) for
12630         faster storing of URLs.
12631
12632         * url.c (get_urls_html): Removed the old kludge with comparing the
12633         outputs of htmlfindurl and findurl.
12634         (get_urls_html): Added better protocol support here.
12635         (create_hash): Removed, as well as add_hash and in_hash.
12636         (addslist): New function.
12637         (in_slist): ditto
12638
12639         * version.c: Released 1.4b8, changed version to b9.
12640
12641 1996-06-27  Hrvoje Niksic  <hniksic@srce.hr>
12642
12643         * ftp.c (freefileinfo): New function.
12644         (delelement): New function.
12645
12646         * everywhere: GPL!
12647
12648         * ftp.c (ftp_loop): Use ccon.
12649         (ftp_retrieve_glob): Likewise.
12650
12651         * ftp.h: Define ccon, to define status of control connection.
12652
12653         * ftp.c (ftp_get_listing): New function.
12654         (ftp_retrieve_more): New function.
12655         (ftp_retrieve_glob): New function.
12656
12657 1996-06-25  Hrvoje Niksic  <hniksic@srce.hr>
12658
12659         * configure.in: Removed the search for cuserid().
12660
12661         * init.c (getmode): Renamed to getperms.
12662
12663 1996-06-24  Hrvoje Niksic  <hniksic@srce.hr>
12664
12665         * version.c: New version.
12666
12667         * main.c (hangup): New function, that handles hangup. Hangup
12668         signal now causes geturl to stop writing on stdout, and to write
12669         to a log file.
12670
12671         * ftp.c (getftp): "Released" 1.4b7.
12672
12673         * html.c (htmlfindurl): Ignore everything inside <head>...</head>.
12674         (ftp_index): Use fileinfo/urlinfo.
12675
12676         * ftp-unix.c (ftp_parse_ls): New function.
12677         (symperms): New function.
12678
12679         * ftp.c (ftp_1fl_loop): New function, to handle 1-file loops.
12680
12681         * retr.c (retrieve_url): Added FTP support.
12682
12683 1996-06-23  Hrvoje Niksic  <hniksic@srce.hr>
12684
12685         * geturl.h: Removed NOTFTP2HTML enum.
12686         Added DO_LOGIN, DO_CWD and DO_LIST. LIST_ONLY is obsolete.
12687
12688         * ftp.c (getftp): Resynched with urlinfo.
12689         (getftp): Removed HMTL-ization of index.html from getftp.
12690
12691         * version.c: 1.4b6 "released".
12692
12693         * options.h (options): New struct, to keep options in.
12694
12695         * http.c (http_loop,gethttp): Synched with proxy.
12696
12697         * retr.c (retrieve_url): Implemented proxy retrieval.
12698
12699         * main.c (main): Use retrieve_from_file.
12700
12701 1996-06-22  Hrvoje Niksic  <hniksic@srce.hr>
12702
12703         * retr.c (retrieve_from_file): New function.
12704
12705         * url.c (parseurl): Modified to return URLOK if all OK. Protocol
12706         can be found in u->proto.
12707
12708         * ftp.c (ftp_response): Fixed to accept multi-line responses as
12709         per RFC 959.
12710
12711         * recr.c (recursive_retrieve): Take newloc from retrieve_url.
12712
12713         * url.c (mymkdir): Removed the file of the same name, if one
12714         exists.
12715         (isfile): New function.
12716         (mkstruct): Fixed the '/' glitches.
12717         (path_simplify): Hacked to treat something/.. correctly.
12718
12719 1996-06-21  Hrvoje Niksic  <hniksic@srce.hr>
12720
12721         * http.c (gethttp): Close the socket after error in headers.
12722         (http_loop): HEOF no longer a fatal header.
12723
12724         * loop.c (retrieve_url): When dt is NULL, do not modify it. This
12725         simplifies the syntax of calling retrieve_url.
12726
12727         * recr.c (recursive_retrieve): Modified to use get_urls_html.
12728
12729         * url.c (get_urls_file): New function.
12730         (get_urls_html): New function.
12731
12732         * recr.c (recursive_retrieve): Patched up to conform to the
12733         standards.
12734
12735         * http.c (gethttp): Synched with the rest...
12736         (gethttp): Treat only CONREFUSED specially, with connection
12737         errors.
12738
12739         * init.c,geturl.1,http.c (http_loop): Removed kill_error.
12740
12741 1996-06-20  Hrvoje Niksic  <hniksic@srce.hr>
12742
12743         * http.c (http_loop): New function.
12744
12745         * loop.c: Removed *lots* of stuff from retrieve_url.
12746
12747         * url.c (parseurl): Changed to work with urlinfo. Integrated
12748         username finding and path parsing.
12749         (newurl): New function.
12750         (freeurl): New function.
12751         (mkstruct): Removed the old bogosities, made it urlinfo-compliant.
12752         (url_filename): Likewise.
12753         (path_simplify): Accept relative paths too.
12754         (opt_url): Made urlinfo-compliant, removed bogosities.
12755         (path_simplify): Expanded to accept relative paths.
12756         (str_url): A replacement for hide_url
12757         (decode_string): Fixed a bug that caused malfunctioning when
12758         encountering an illegal %.. combination.
12759         (opt_url): Removed the argument. Dot-optimizations are now default.
12760
12761         * nmalloc.c (strdupdelim): New function.
12762
12763         * url.h: Added the urlinfo structure
12764
12765 1996-06-19  Hrvoje Niksic  <hniksic@srce.hr>
12766
12767         * url.c (hide_url): Thrown out the protocol assertion. Do not
12768         change the URL if the protocol if not recognized.
12769         (findurl): Put continue instead of break.
12770
12771 1996-06-18  Hrvoje Niksic  <hniksic@srce.hr>
12772
12773         * sample.geturlrc: Changed the defaults to be commented out and
12774         harmless (previous defaults caused pains if copied to
12775         ~/.geturlrc).
12776
12777         * http.c (gethttp): Print the HTTP request in debug mode.
12778
12779         * connect.c (iread): Added EINTR check loop to select-ing
12780         too. EINTR is now correctly handled with select().
12781
12782         * TODO: new file
12783
12784 1996-05-07  Hrvoje Niksic  <hniksic@srce.hr>
12785
12786         * host.c (same_host): Made the function a little bit more
12787         intelligent regarding diversified URL syntaxes.
12788
12789         * url.c (skip_url): Spaces are now skipped after URL:
12790
12791         * Released 1.3.1 with the patch to prevent crashing when sending
12792         NULL to robot* functions and the patch to compile "out of the box"
12793         on AIX.
12794
12795         * recr.c (recursive_retrieve): Added checking whether this_url is
12796         NULL when calling the robot functions.
12797
12798         * ChangeLog: New file.